/* =========================================================
   GLEICOS BIBLIOTECA
   Sistema de Gestão de Acervo e Circulação
   ========================================================= */

.acervo-cadastro-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.cadastro-capa {
    margin-top: 20px;
}

.cadastro-link {
    color: var(--gleicos-gold-dark);
    text-decoration: underline;
}

.cadastro-capa img {
    max-width: 150px;
    max-height: 210px;
    object-fit: contain;
}

@media (max-width: 600px) {
    .acervo-cadastro-acoes {
        flex-direction: column;
    }
}

.system-body {
    min-height: 100vh;
    background: #f4f6f8;
}


/* =========================================================
   CABEÇALHO
   ========================================================= */

.system-header {
    height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;

    padding: 0 28px;

    background: var(--branco);
    border-bottom: 3px solid var(--gleicos-gold);
}

.system-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.system-brand img {
    width: 52px;
    height: 52px;
    object-fit: contain;
}

.system-brand div {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.system-brand strong {
    color: var(--gleicos-navy);
    font-size: 1.05rem;
}

.system-brand span {
    margin-top: 3px;

    color: var(--gleicos-gold-dark);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.system-header-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 38px;
    padding: 8px 15px;

    color: var(--gleicos-navy-2);
    border: 1px solid #dce1e5;
    border-radius: 6px;

    font-size: 0.85rem;
    font-weight: 700;
}

.system-header-actions a:hover {
    border-color: var(--gleicos-gold);
    color: var(--gleicos-gold-dark);
}


/* =========================================================
   ESTRUTURA
   ========================================================= */

.system-layout {
    min-height: calc(100vh - 76px);
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
}


/* =========================================================
   MENU LATERAL
   ========================================================= */

.system-sidebar {
    background: var(--gleicos-navy);
    padding: 24px 14px;
}

.system-menu {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.system-menu a {
    display: block;

    padding: 10px 14px;

    color: rgba(255, 255, 255, 0.78);
    border-radius: 5px;

    font-size: 0.9rem;
    font-weight: 600;

    transition: 0.2s ease;
}

.system-menu a:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--branco);
}

.system-menu a.active {
    background: var(--gleicos-gold);
    color: var(--branco);
}

.system-menu-title {
    display: block;

    margin: 22px 14px 7px;

    color: rgba(255, 255, 255, 0.42);

    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}


/* =========================================================
   CONTEÚDO
   ========================================================= */

.system-main {
    min-width: 0;
    padding: 36px;
}

.system-page-header {
    max-width: 1200px;
    margin: 0 auto;
}

.system-page-header span {
    display: block;

    margin-bottom: 5px;

    color: var(--gleicos-gold-dark);

    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.system-page-header h1 {
    color: var(--gleicos-navy);

    font-size: clamp(1.7rem, 2.5vw, 2.25rem);
    line-height: 1.15;
}

.system-page-header p {
    margin-top: 8px;

    color: var(--texto-claro);
    font-size: 0.95rem;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 800px) {

    .system-header {
        height: 68px;
        padding: 0 16px;
    }

    .system-brand img {
        width: 44px;
        height: 44px;
    }

    .system-brand strong {
        font-size: 0.95rem;
    }

    .system-brand span {
        font-size: 0.61rem;
    }

    .system-layout {
        min-height: calc(100vh - 68px);
        grid-template-columns: 1fr;
    }

    .system-sidebar {
        padding: 8px 12px;

        overflow-x: auto;
    }

    .system-menu {
        min-width: max-content;
        flex-direction: row;
        align-items: center;
    }

    .system-menu-title {
        display: none;
    }

    .system-menu a {
        padding: 9px 12px;
        white-space: nowrap;
    }

    .system-main {
        padding: 24px 18px;
    }
}


@media (max-width: 480px) {

    .system-brand span {
        display: none;
    }

    .system-header-actions a {
        padding: 7px 10px;
        font-size: 0.76rem;
    }

    .system-main {
        padding: 22px 15px;
    }
}

/* =========================================================
   OPERAÇÃO DO PAINEL
   Estilos exclusivos do sistema; a identidade vem de site.css.
   ========================================================= */

.dashboard-section {
    max-width: 1200px;
    margin: 28px auto 0;
    padding: 24px;
    background: var(--branco);
    border: 1px solid #e1e6e9;
    border-radius: 8px;
    box-shadow: 0 5px 18px rgba(36, 45, 115, 0.05);
}

.dashboard-section-header h2 {
    color: var(--gleicos-navy);
    font-size: 1.2rem;
    line-height: 1.35;
}

.dashboard-section-header p {
    margin-top: 6px;
    color: var(--texto-claro);
    font-size: 0.9rem;
}

.dashboard-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 20px;
}

.dashboard-action {
    min-width: 0;
    min-height: 76px;
    padding: 14px 18px;
    text-align: left;
    font: inherit;
    color: var(--gleicos-navy);
    background: var(--cinza-claro);
    border: 1px dashed #c6ced2;
    border-radius: 6px;
    opacity: 1;
    cursor: not-allowed;
}

.dashboard-action span {
    display: block;
    font-weight: 700;
}

.dashboard-action small {
    display: block;
    margin-top: 4px;
    color: var(--texto-claro);
    font-size: 0.8rem;
}

.dashboard-records {
    list-style: none;
    margin-top: 20px;
}

.dashboard-record {
    padding: 18px 0;
    border-top: 1px solid #e1e6e9;
}

.dashboard-record:last-child {
    padding-bottom: 0;
}

.dashboard-record-fields {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
}

.dashboard-record-fields dt {
    margin-bottom: 4px;
    color: var(--texto-claro);
    font-size: 0.75rem;
    font-weight: 700;
}

.dashboard-record-fields dd {
    color: var(--gleicos-navy);
    font-size: 0.95rem;
    overflow-wrap: anywhere;
}

.dashboard-code {
    font-weight: 700;
}

.dashboard-badge {
    display: inline-block;
    margin-bottom: 12px;
    padding: 3px 10px;
    border-radius: 5px;
    font-size: 0.78rem;
    font-weight: 700;
}

.dashboard-badge-alert {
    color: #a83e3e;
    background: #fbeeee;
}

.dashboard-badge-today {
    color: var(--gleicos-navy);
    background: #eef0fa;
}

.dashboard-empty {
    padding: 18px;
    border-radius: 6px;
    background: var(--cinza-claro);
    color: var(--texto-claro);
    font-size: 0.95rem;
}

@media (max-width: 1050px) {
    .dashboard-record-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .dashboard-section {
        padding: 18px;
        margin-top: 20px;
    }

    .dashboard-actions,
    .dashboard-record-fields {
        grid-template-columns: 1fr;
    }

    .dashboard-record-fields {
        gap: 12px;
    }
}

/* =========================================================
   RESERVAS E FORMULÁRIOS OPERACIONAIS
   ========================================================= */

.system-page-header-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.system-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 10px 20px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: var(--gleicos-gold-dark);
    color: var(--branco);
    font: inherit;
    font-weight: 700;
    text-align: center;
    cursor: pointer;
}

.system-page-header-actions > .system-button {
    flex-shrink: 0;
}

.system-button:hover {
    background: var(--gleicos-navy);
}

.system-button-secondary {
    background: var(--branco);
    color: var(--gleicos-navy);
    border-color: #c6ced2;
}

.system-button-secondary:hover {
    background: var(--cinza-claro);
}

.dashboard-action-link {
    display: block;
    border-style: solid;
    border-color: var(--gleicos-gold-dark);
    background: #edf7ef;
    cursor: pointer;
}

.dashboard-action-link:hover {
    background: #e2f1e6;
}

.system-body a:focus-visible,
.system-body button:focus-visible,
.system-form select:focus-visible,
.system-form textarea:focus-visible,
.system-form input:focus-visible {
    outline: 3px solid var(--gleicos-navy-2);
    outline-offset: 3px;
}

.reserva-fields,
.emprestimo-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reserva-status {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 5px;
    color: var(--gleicos-gold-dark);
    background: #edf7ef;
    font-size: 0.85rem;
    font-weight: 700;
}

.system-messages {
    max-width: 1200px;
    margin: 0 auto 24px;
    list-style: none;
}

.system-message {
    padding: 14px 18px;
    border-left: 4px solid var(--gleicos-gold-dark);
    border-radius: 6px;
    background: #edf7ef;
    color: var(--gleicos-gold-dark);
    overflow-wrap: anywhere;
}

.system-form {
    margin-top: 24px;
}

.system-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.system-form-field {
    min-width: 0;
}

.system-form-field label {
    display: block;
    margin-bottom: 8px;
    color: var(--gleicos-navy);
    font-weight: 700;
}

.system-form-field select,
.system-form-field textarea,
.system-form-field input {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #b7c2c8;
    border-radius: 6px;
    background: var(--branco);
    color: var(--texto);
    font: inherit;
    font-size: 1rem;
}

.system-form-field select:disabled {
    background: var(--cinza-claro);
    color: var(--texto-claro);
}

.system-field-help {
    margin-top: 8px;
    color: var(--texto-claro);
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}

.system-form-errors {
    padding: 16px;
    margin-bottom: 24px;
    background: #fbeeee;
    border-left: 4px solid #a83e3e;
    border-radius: 6px;
    color: #a83e3e;
}

.system-form-errors ul,
.system-form .errorlist {
    padding-left: 20px;
}

.system-form .errorlist {
    margin-top: 8px;
    color: #a83e3e;
    font-size: 0.9rem;
}

.system-form [aria-invalid="true"] {
    border-color: #a83e3e;
}

.system-form-actions,
.record-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.dashboard-badge-future {
    color: var(--gleicos-gold-dark);
    background: #edf7ef;
}

.retirada-details,
.retirada-feedback {
    margin-top: 20px;
}

.retirada-explanation {
    margin-top: 24px;
    padding: 20px;
    border-left: 4px solid var(--gleicos-gold-dark);
    border-radius: 6px;
    background: var(--cinza-claro);
    color: var(--gleicos-navy);
}

.retirada-explanation h3 {
    font-size: 1rem;
}

.retirada-explanation ul {
    padding-left: 20px;
    margin: 10px 0;
}

.retirada-explanation p {
    color: var(--texto-claro);
}

@media (max-width: 1050px) {
    .reserva-fields,
    .emprestimo-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .system-page-header-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .reserva-fields,
    .emprestimo-fields,
    .system-form-grid {
        grid-template-columns: 1fr;
    }

    .system-form-actions,
    .record-actions {
        flex-direction: column;
    }
}

/* =========================================================
   INDICADORES DO PAINEL
   ========================================================= */

.dashboard-stats {
    max-width: 1200px;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;

    margin: 30px auto 0;
}

.stat-card {
    position: relative;
    overflow: hidden;

    min-height: 145px;
    padding: 22px;

    background: var(--branco);
    border: 1px solid #e1e6e9;
    border-radius: 8px;

    box-shadow: 0 5px 18px rgba(36, 45, 115, 0.05);
}

.stat-card-link {
    display: block;
}

.stat-card-link:hover {
    border-color: var(--gleicos-gold-dark);
}

.stat-card-link:hover .stat-label {
    text-decoration: underline;
}

.stat-card::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 4px;
    height: 100%;

    background: var(--gleicos-gold);
}

.stat-label {
    display: block;

    color: var(--texto-claro);

    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.stat-card strong {
    display: block;

    margin: 7px 0 2px;

    color: var(--gleicos-navy);

    font-size: 2.15rem;
    line-height: 1.1;
}

.stat-card small {
    color: var(--texto-claro);
    font-size: 0.8rem;
}

.stat-card-alert::before {
    background: #c94b4b;
}

.stat-card-alert strong {
    color: #a83e3e;
}


@media (max-width: 900px) {

    .dashboard-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


@media (max-width: 520px) {

    .dashboard-stats {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 24px;
    }

    .stat-card {
        min-height: auto;
        padding: 18px 20px;
    }

    .stat-card strong {
        font-size: 1.8rem;
    }
}

/* =========================================================
   ACERVO
   ========================================================= */

.acervo-filtros {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr) auto;
    gap: 18px;
    align-items: end;
    margin-top: 24px;
    padding: 20px;
    background: var(--cinza-claro);
    border-radius: 8px;
}

.acervo-filtros > div {
    min-width: 0;
}

.acervo-filtros label {
    display: block;
    margin-bottom: 7px;
    color: var(--gleicos-navy);
    font-size: 0.82rem;
    font-weight: 700;
}

.acervo-filtros input,
.acervo-filtros select {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 9px 12px;
    border: 1px solid #b7c2c8;
    border-radius: 6px;
    background: var(--branco);
    color: var(--texto);
    font: inherit;
}

.acervo-filtros input:focus-visible,
.acervo-filtros select:focus-visible {
    outline: 3px solid var(--gleicos-navy-2);
    outline-offset: 2px;
}

.acervo-filtros-acoes {
    display: flex;
    align-items: center;
    gap: 14px;
}

.acervo-filtros-acoes a {
    color: var(--gleicos-navy-2);
    font-size: 0.86rem;
    font-weight: 700;
}

.acervo-filtros-acoes a:hover {
    text-decoration: underline;
}

.acervo-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    margin-top: 26px;
}

.acervo-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--branco);
    border: 1px solid #e1e6e9;
    border-radius: 10px;
    box-shadow: 0 5px 18px rgba(36, 45, 115, 0.05);
}

.acervo-capa {
    height: 230px;
    background: #eef0f3;
}

.acervo-capa img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.acervo-sem-capa {
    width: 100%;
    height: 100%;
    min-height: 215px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background:
        linear-gradient(
            145deg,
            var(--gleicos-navy),
            var(--gleicos-navy-2)
        );
}

.acervo-sem-capa span {
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.acervo-card-conteudo {
    min-width: 0;
    padding: 20px;
}

.acervo-codigo {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--gleicos-gold-dark);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.acervo-card h3 {
    color: var(--gleicos-navy);
    font-size: 1.15rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.acervo-card-conteudo > p {
    margin-top: 8px;
    color: var(--texto-claro);
    font-size: 0.86rem;
    line-height: 1.45;
}

.acervo-card-conteudo > p strong {
    color: var(--texto);
}

.acervo-indicadores {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 16px;
}

.acervo-indicador {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 9px;
    border-radius: 5px;
    font-size: 0.76rem;
    font-weight: 700;
}

.acervo-indicador-total {
    background: #eef0fa;
    color: var(--gleicos-navy);
}

.acervo-indicador-disponivel {
    background: #edf7ef;
    color: var(--gleicos-gold-dark);
}

.acervo-indicador-reservado {
    background: #eef0fa;
    color: var(--gleicos-navy);
}

.acervo-indicador-emprestado {
    background: #fff5df;
    color: #8a5a00;
}

.acervo-indicador-indisponivel {
    background: #fbeeee;
    color: #a83e3e;
}

.acervo-grid > .dashboard-empty {
    grid-column: 1 / -1;
}

.acervo-card-conteudo {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.acervo-indicadores {
    margin-bottom: 16px;
}

.acervo-detalhes-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 38px;
    margin-top: auto;
    padding: 7px 12px;

    border: 1px solid var(--gleicos-navy-2);
    border-radius: 6px;

    color: var(--gleicos-navy-2);
    background: var(--branco);

    font-size: 0.82rem;
    font-weight: 700;
}

.acervo-detalhes-link:hover {
    color: var(--branco);
    background: var(--gleicos-navy);
    border-color: var(--gleicos-navy);
}

/* =========================================================
   DETALHE DO LIVRO
   ========================================================= */

.livro-detalhe {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}

.livro-detalhe-capa {
    width: 100%;
    aspect-ratio: 2 / 3;
    overflow: hidden;
    border-radius: 9px;
    background: #eef0f3;
}

.livro-detalhe-capa img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.livro-detalhe-sem-capa {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        145deg,
        var(--gleicos-navy),
        var(--gleicos-navy-2)
    );
}

.livro-detalhe-sem-capa span {
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.livro-detalhe-conteudo {
    min-width: 0;
}

.livro-detalhe-conteudo h2 {
    margin-top: 4px;
    color: var(--gleicos-navy);
    font-size: 1.65rem;
    line-height: 1.2;
}

.livro-detalhe-subtitulo {
    margin-top: 7px;
    color: var(--texto-claro);
    font-size: 1rem;
}

.livro-detalhe-dados {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 28px;
    margin-top: 24px;
}

.livro-detalhe-dados dt {
    margin-bottom: 4px;
    color: var(--texto-claro);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.livro-detalhe-dados dd {
    color: var(--texto);
    font-size: 0.95rem;
    overflow-wrap: anywhere;
}

.livro-detalhe-sinopse {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid #e1e6e9;
}

.livro-detalhe-sinopse h3 {
    color: var(--gleicos-navy);
    font-size: 1rem;
}

.livro-detalhe-sinopse p {
    margin-top: 8px;
    color: var(--texto-claro);
    line-height: 1.65;
}


/* =========================================================
   EXEMPLARES DO LIVRO
   ========================================================= */

.exemplares-lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 22px;
}

.exemplar-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid #e1e6e9;
    border-radius: 8px;
    background: var(--cinza-claro);
}

.exemplar-card-cabecalho {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.exemplar-card-cabecalho > div {
    min-width: 0;
}

.exemplar-card-cabecalho > div > span {
    display: block;
    margin-bottom: 3px;
    color: var(--texto-claro);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.exemplar-card-cabecalho strong {
    color: var(--gleicos-navy);
    font-size: 1.05rem;
}

.exemplar-situacao {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 5px;
    font-size: 0.76rem;
    font-weight: 700;
}

.exemplar-situacao-disponivel {
    color: var(--gleicos-gold-dark);
    background: #e5f5e9;
}

.exemplar-situacao-reservado {
    color: var(--gleicos-navy);
    background: #e8ebfa;
}

.exemplar-situacao-emprestado {
    color: #8a5a00;
    background: #fff1cf;
}

.exemplar-situacao-indisponivel {
    color: #a83e3e;
    background: #fbe5e5;
}

.exemplar-dados {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #dce2e5;
}

.exemplar-dados dt {
    margin-bottom: 3px;
    color: var(--texto-claro);
    font-size: 0.72rem;
    font-weight: 700;
}

.exemplar-dados dd {
    color: var(--texto);
    font-size: 0.88rem;
    overflow-wrap: anywhere;
}

.exemplar-observacoes {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #dce2e5;
}

.exemplar-observacoes strong {
    color: var(--gleicos-navy);
    font-size: 0.8rem;
}

.exemplar-observacoes p {
    margin-top: 5px;
    color: var(--texto-claro);
    font-size: 0.85rem;
    line-height: 1.5;
}


/* =========================================================
   DETALHE DO LIVRO — RESPONSIVO
   ========================================================= */

@media (max-width: 800px) {

    .livro-detalhe {
        grid-template-columns: 170px minmax(0, 1fr);
        gap: 22px;
    }

    .livro-detalhe-dados {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .exemplares-lista {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 520px) {

    .livro-detalhe {
        grid-template-columns: 1fr;
    }

    .livro-detalhe-capa {
        width: min(210px, 100%);
        margin: 0 auto;
    }

    .exemplar-card-cabecalho {
        flex-direction: column;
    }

    .exemplar-dados {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   ACERVO — RESPONSIVO
   ========================================================= */

@media (max-width: 1180px) {

    .acervo-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}


@media (max-width: 980px) {

    .acervo-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


@media (max-width: 760px) {

    .acervo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


@media (max-width: 760px) {

    .acervo-filtros {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .acervo-filtros-acoes {
        flex-wrap: wrap;
    }
}


@media (max-width: 520px) {

    .acervo-card {
        grid-template-columns: 1fr;
    }

    .acervo-capa,
    .acervo-sem-capa {
        height: 260px;
        min-height: 260px;
    }

    .acervo-card-conteudo {
        padding: 16px;
    }

    .acervo-card h3 {
        font-size: 1rem;
    }

    .acervo-filtros {
        padding: 16px;
    }

    .acervo-filtros-acoes {
        align-items: stretch;
        flex-direction: column;
    }

    .acervo-filtros-acoes .system-button {
        width: 100%;
    }
}

/* =========================================================
   LEITORES
   ========================================================= */

.leitores-stats {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.leitores-filtros {
    grid-template-columns: minmax(0, 2fr) minmax(180px, 0.8fr) auto;
}

.leitores-fields {
    grid-template-columns: minmax(0, 1.7fr) minmax(110px, 0.7fr) minmax(0, 1.4fr) minmax(110px, 0.7fr);
}

.leitores-actions {
    margin-top: 16px;
}

.leitores-actions .system-button {
    min-height: 38px;
    padding: 7px 14px;
    font-size: 0.84rem;
}

.leitores-field-wide {
    grid-column: span 2;
}

@media (max-width: 1050px) {
    .leitores-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .leitores-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .leitores-filtros {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .leitores-stats,
    .leitores-fields {
        grid-template-columns: 1fr;
    }

    .leitores-field-wide {
        grid-column: auto;
    }
}

/* Leitores */
.leitores-codigo-info {
    margin: 0 0 1.25rem;
    color: #53606f;
}

.leitores-form-subtitle {
    margin: 1.5rem 0 1rem;
    font-size: 1.05rem;
    color: #172a72;
}

.leitores-form-subtitle small {
    font-size: .78rem;
    font-weight: 500;
    color: #6b7280;
}


/* Leitores — formulário compacto */
.leitores-page-header {
    margin-bottom: 14px;
}

.leitores-form-section {
    margin-top: 14px;
    padding: 18px 24px;
}

.leitores-form {
    margin-top: 0;
}

.leitores-form-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 16px;
}

.leitores-form .system-form-field label {
    margin-bottom: 4px;
    font-size: .9rem;
}

.leitores-form .system-form-field input,
.leitores-form .system-form-field select {
    min-height: 40px;
    padding: 7px 10px;
    font-size: .94rem;
}

.leitores-span-2 {
    grid-column: span 2;
}

.leitores-form .leitores-form-subtitle {
    margin: 14px 0 9px;
}

.leitores-form-actions {
    margin-top: 16px;
}

.leitores-cep-status {
    display: block;
    min-height: 16px;
    margin-top: 3px;
    color: var(--gleicos-gold-dark);
    font-size: .76rem;
}

.leitores-cep-status.is-error {
    color: #a83e3e;
}

@media (max-width: 980px) {
    .leitores-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .leitores-form-section {
        padding: 16px;
    }

    .leitores-form-grid {
        grid-template-columns: 1fr;
    }

    .leitores-span-2 {
        grid-column: auto;
    }
}


/* =========================================================
   GLEICOS BIBLIOTECA — camada visual oficial
   ========================================================= */
.system-body{background:#f3f5f7;color:var(--texto)}
.system-header{height:72px;padding:0 24px;background:#fff;border-bottom:1px solid var(--borda);box-shadow:0 1px 0 rgba(11,31,58,.02)}
.system-brand{gap:11px}.system-brand-copy strong{font-size:1rem;color:var(--gleicos-navy);letter-spacing:.01em}.system-brand-copy strong b{color:var(--gleicos-gold-dark)}.system-brand-copy>span{margin-top:2px;color:var(--texto-claro);font-size:.62rem;letter-spacing:.06em}.system-brand-copy small{margin-top:2px;color:var(--gleicos-gold-dark);font-size:.62rem;font-weight:700}.system-header-actions{display:flex;align-items:center;gap:8px}.system-header-actions a,.auth-logout button{min-height:34px;padding:7px 11px;border:1px solid var(--borda);border-radius:7px;color:var(--gleicos-navy);background:#fff;font-size:.78rem;font-weight:700}.system-header-actions a:hover,.auth-logout button:hover{border-color:#cbb88d;color:var(--gleicos-gold-dark)}.system-user{padding-right:6px;color:var(--texto-claro);font-size:.76rem}.header-link-muted{color:var(--texto-claro)!important}
.system-layout{min-height:calc(100vh - 72px);grid-template-columns:218px minmax(0,1fr)}.system-sidebar{position:relative;display:flex;flex-direction:column;padding:20px 12px;background:linear-gradient(180deg,#0b1f3a,#08192e)}.sidebar-product{padding:4px 12px 15px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:12px}.sidebar-product span,.sidebar-product strong{display:block}.sidebar-product span{color:#caa552;font-size:.6rem;font-weight:800;letter-spacing:.14em}.sidebar-product strong{margin-top:2px;color:#fff;font-size:.9rem}.system-menu{gap:3px}.system-menu-title{margin:17px 12px 6px;color:rgba(255,255,255,.35);font-size:.6rem}.system-menu a{padding:9px 12px;border-radius:7px;color:rgba(255,255,255,.72);font-size:.84rem}.system-menu a:hover{background:rgba(255,255,255,.07);color:#fff}.system-menu a.active{position:relative;background:rgba(199,154,59,.14);color:#f2d88f}.system-menu a.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--gleicos-gold)}.system-menu a.is-disabled{opacity:.45;cursor:default}.system-menu a.is-disabled small{float:right;font-size:.56rem;text-transform:uppercase}.sidebar-footer{margin-top:auto;padding:20px 12px 4px;color:rgba(255,255,255,.35)}.sidebar-footer span,.sidebar-footer small{display:block}.sidebar-footer span{color:rgba(255,255,255,.55);font-size:.68rem;font-weight:700}.sidebar-footer small{margin-top:2px;font-size:.55rem}
.system-main{padding:28px 30px 40px}.system-page-header{max-width:1320px}.system-page-header span{margin-bottom:4px;color:var(--gleicos-gold-dark);font-size:.65rem}.system-page-header h1{color:var(--gleicos-navy);font-size:clamp(1.55rem,2.2vw,2rem);letter-spacing:-.025em}.system-page-header p{margin-top:5px;font-size:.88rem}.dashboard-section{max-width:1320px;margin-top:20px;padding:20px;border:1px solid var(--borda);border-radius:10px;box-shadow:0 4px 15px rgba(11,31,58,.035)}.dashboard-section-header h2{color:var(--gleicos-navy);font-size:1.05rem}.dashboard-stats{max-width:1320px}.stat-card{border-color:var(--borda)!important;border-top:3px solid #d8c18a!important;border-radius:9px!important;box-shadow:0 3px 12px rgba(11,31,58,.035)!important}.stat-card strong{color:var(--gleicos-navy)!important}.stat-label{color:var(--gleicos-gold-dark)!important}.stat-card-alert{border-top-color:#a85c4b!important}.system-button{background:var(--gleicos-navy)!important;border-color:var(--gleicos-navy)!important;color:#fff!important;border-radius:7px!important}.system-button:hover{background:var(--gleicos-navy-2)!important}.system-button-secondary{background:#fff!important;border-color:#ccd5dc!important;color:var(--gleicos-navy)!important}.system-button-secondary:hover{border-color:var(--gleicos-gold)!important;color:var(--gleicos-gold-dark)!important}.dashboard-action-link{background:#f8f9fa!important;border:1px solid var(--borda)!important;color:var(--gleicos-navy)!important}.dashboard-action-link:hover{border-color:#d6c28f!important;background:#fbf8f0!important}.reserva-status,.acervo-indicador{border-radius:999px!important}.acervo-detalhes-link,.cadastro-link{color:var(--gleicos-gold-dark)!important}.system-form input:focus,.system-form select:focus,.system-form textarea:focus,.acervo-filtros input:focus,.acervo-filtros select:focus{border-color:var(--gleicos-gold)!important;outline:3px solid rgba(199,154,59,.14)!important}.system-message{border-left-color:var(--gleicos-gold)!important}.acervo-card{border-color:var(--borda)!important;border-radius:10px!important;box-shadow:0 3px 12px rgba(11,31,58,.035)!important}.acervo-codigo,.dashboard-code{color:var(--gleicos-gold-dark)!important}
@media(max-width:800px){.system-header{height:66px;padding:0 14px}.system-layout{min-height:calc(100vh - 66px);grid-template-columns:1fr}.system-sidebar{padding:7px 10px}.sidebar-product,.sidebar-footer{display:none}.system-menu{flex-direction:row;overflow-x:auto}.system-menu a{white-space:nowrap}.system-menu a.active:before{left:8px;right:8px;top:auto;bottom:1px;width:auto;height:2px}.system-main{padding:20px 15px 30px}.system-user,.header-link-muted{display:none}}
@media(max-width:480px){.system-brand-copy>span,.system-brand-copy small{display:none}.system-header-actions{gap:5px}.system-header-actions a,.auth-logout button{padding:6px 9px}}


/* =========================================================
   IDENTIDADE CORPORATIVA GLEICOS — camada final
   Mantém a estrutura operacional e aplica a marca-mãe.
   ========================================================= */
.system-body{background:#F2F4F6}
.system-header{
    height:82px;
    padding:0 24px;
    gap:20px;
    background:var(--gleicos-navy);
    border-bottom:1px solid rgba(212,175,55,.45);
}
.system-brand{display:flex;align-items:center;gap:18px;min-width:0}
.system-brand img{
    width:auto;
    height:62px;
    max-width:250px;
    object-fit:contain;
}
.system-product-name{
    padding-left:18px;
    border-left:1px solid rgba(255,255,255,.18);
    color:#fff!important;
    font-size:1.02rem!important;
    font-weight:800!important;
    text-transform:none!important;
    letter-spacing:.01em!important;
    margin:0!important;
}
.system-header-context{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.system-header-context span{color:rgba(255,255,255,.48);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.system-header-context strong{margin-top:3px;color:var(--gleicos-gold-soft);font-size:.8rem}
.system-header-actions{display:flex;align-items:center;gap:8px}
.system-user{color:rgba(255,255,255,.76);font-size:.82rem}
.system-header-actions a,.system-header-actions .auth-logout button{
    min-height:36px;padding:7px 12px;border:1px solid rgba(255,255,255,.16);border-radius:6px;
    background:transparent;color:rgba(255,255,255,.84);font:inherit;font-size:.8rem;font-weight:700;cursor:pointer
}
.system-header-actions a:hover,.system-header-actions .auth-logout button:hover{
    border-color:rgba(212,175,55,.65);color:var(--gleicos-gold-soft)
}
.system-layout{min-height:calc(100vh - 82px);grid-template-columns:220px minmax(0,1fr)}
.system-sidebar{display:flex;flex-direction:column;padding:22px 12px 16px;background:linear-gradient(180deg,#071A2E,#09213A)}
.sidebar-product{padding:0 10px 17px;margin-bottom:10px;border-bottom:1px solid rgba(255,255,255,.09)}
.sidebar-product span,.sidebar-product strong,.sidebar-product small{display:block}
.sidebar-product span{color:var(--gleicos-gold-soft);font-size:.61rem;font-weight:850;letter-spacing:.15em}
.sidebar-product strong{margin-top:3px;color:#fff;font-size:.95rem}
.sidebar-product small{margin-top:3px;color:rgba(255,255,255,.42);font-size:.63rem}
.system-menu a{position:relative;padding:9px 11px;color:rgba(255,255,255,.74);border-radius:5px;font-size:.84rem}
.system-menu a:hover{background:rgba(255,255,255,.055);color:#fff}
.system-menu a.active{
    background:rgba(255,255,255,.09);
    color:#fff;
    box-shadow:inset 3px 0 0 var(--gleicos-gold);
}
.system-menu a.active::after{content:"";position:absolute;right:10px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:var(--gleicos-gold)}
.system-menu-title{margin:18px 11px 6px;color:rgba(255,255,255,.34);font-size:.61rem}
.system-menu a.is-disabled{opacity:.42}
.sidebar-footer{margin-top:auto;padding:18px 10px 0;border-top:1px solid rgba(255,255,255,.08)}
.sidebar-footer span,.sidebar-footer small{display:block}
.sidebar-footer span{color:rgba(255,255,255,.68);font-size:.68rem;font-weight:700}
.sidebar-footer small{margin-top:2px;color:rgba(255,255,255,.34);font-size:.57rem}
.system-main{padding:32px 34px}
.system-page-header span{color:#9D7611}
.system-page-header h1{color:var(--gleicos-navy)}
.system-page-header p{color:var(--muted)}
.dashboard-card,.metric-card,.system-card,.panel-card{border-top-color:var(--gleicos-gold-2)!important}
@media(max-width:800px){
    .system-header{height:72px;padding:0 14px;gap:12px}
    .system-brand img{height:52px}
    .system-product-name{padding-left:12px;font-size:.88rem!important}
    .system-header-context{display:none}
    .system-layout{min-height:calc(100vh - 72px);grid-template-columns:1fr}
    .system-sidebar{padding:7px 10px}
    .sidebar-product,.sidebar-footer{display:none}
    .system-main{padding:24px 18px}
}
@media(max-width:520px){
    .system-brand img{height:46px}
    .system-product-name{display:none}
    .system-user,.header-link-muted{display:none!important}
}


/* =========================================================
   DESIGN SYSTEM GLEICOS V1 — refinamentos finais
   ========================================================= */

/* Marca: presença um pouco maior, sem aumentar o cabeçalho */
.system-brand img{
    height:66px;
    max-width:268px;
}

/* Usuário: deixa de parecer uma segunda assinatura da empresa */
.system-user{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 10px;
    border-radius:6px;
    background:rgba(255,255,255,.055);
    color:rgba(255,255,255,.82);
    font-size:.78rem;
    font-weight:650;
}
.system-user::before{
    content:"";
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--gleicos-gold);
    box-shadow:0 0 0 3px rgba(212,175,55,.12);
}

/* Cards: borda suave; dourado continua sendo a assinatura */
.metric-card,
.dashboard-card,
.system-card,
.panel-card{
    border:1px solid #D8E0E6 !important;
    border-top:3px solid var(--gleicos-gold-2) !important;
    box-shadow:0 3px 10px rgba(7,26,46,.035) !important;
}

/* Estados críticos continuam vermelhos, mas sem moldura pesada */
.metric-card.is-danger,
.dashboard-card.is-danger,
.system-card.is-danger,
.panel-card.is-danger,
.metric-card.alert,
.dashboard-card.alert{
    border:1px solid #E4D8D6 !important;
    border-top:3px solid #B85B4A !important;
}

/* Ações rápidas: mesmo vocabulário dos cards */
.quick-actions,
.dashboard-actions{
    border:1px solid #E1E6EA !important;
    box-shadow:0 3px 12px rgba(7,26,46,.025) !important;
}
.quick-actions a,
.dashboard-actions a{
    border:1px solid #E1E6EA !important;
    background:#FBFCFD !important;
}
.quick-actions a:hover,
.dashboard-actions a:hover{
    border-color:#D9C27A !important;
    background:#FFFDF7 !important;
}

/* Licenciado ocupa o centro-direita sem competir com a marca */
.system-header-context{
    min-width:190px;
    padding-right:6px;
}

/* Responsividade da marca */
@media(max-width:800px){
    .system-brand img{height:56px;max-width:220px}
}
@media(max-width:520px){
    .system-brand img{height:50px;max-width:190px}
    .system-user{display:none}
}


/* Design System GLEICOS V1 — correção de contraste do link Produto */
.system-header-actions a.header-link-muted,
.system-header-actions .header-link-muted{
    color:rgba(255,255,255,.84) !important;
    border-color:rgba(255,255,255,.16) !important;
    background:transparent !important;
}
.system-header-actions a.header-link-muted:hover,
.system-header-actions .header-link-muted:hover{
    color:var(--gleicos-gold-soft) !important;
    border-color:rgba(212,175,55,.65) !important;
    background:rgba(255,255,255,.035) !important;
}


/* Acervo V1 — assistente de consulta ISBN */
.isbn-assistente{
    grid-column:1/-1;
    padding:12px 14px;
    border:1px solid #D8E0E6;
    border-left:3px solid var(--gleicos-gold);
    border-radius:10px;
    background:#fff;
}
.isbn-assistente-linha{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#isbn-status{margin-top:8px}
#isbn-capa-preview{margin-top:12px;max-width:180px}
#isbn-capa-preview img{display:block;max-width:150px;max-height:220px;object-fit:contain;border-radius:6px}


/* Acervo V1 — consulta ISBN compacta */
.system-form .isbn-assistente{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    gap:12px;
    min-height:0;
    padding:8px 10px;
    border:1px solid #D8E0E6;
    border-left:3px solid var(--gleicos-gold);
    border-radius:8px;
    background:#fff;
}
.system-form .isbn-assistente .system-button{flex:0 0 auto}
.system-form .isbn-assistente #isbn-status{margin:0}
@media (max-width:700px){
    .system-form .isbn-assistente{align-items:flex-start;flex-direction:column}
}

/* Configuração do licenciado */
.system-header-context{display:flex;align-items:center;gap:8px}.licensed-client-logo{width:38px;height:38px;object-fit:contain;border-radius:6px;background:#fff}.licensed-logo-preview{margin:0 0 16px}.licensed-logo-preview img{max-width:180px;max-height:90px;object-fit:contain}.field-error{display:block;color:#9b1c1c;margin-top:4px}

/* Configuração V1 — acabamento comercial */
.config-form{display:block}.config-section{margin-bottom:16px}.config-identity-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:22px;align-items:start}.config-fields{margin:0}.config-field-wide{grid-column:1/-1}.config-logo-panel{padding:14px;border:1px solid #E1E6EA;border-radius:10px;background:#FBFCFD}.config-logo-panel>label{display:block;font-weight:700;margin-bottom:8px}.config-logo-panel>small{display:block;margin-top:7px;color:#667788;line-height:1.35}.licensed-logo-preview{min-height:88px;margin:0 0 10px;padding:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;border:1px dashed #CBD4DB;border-radius:8px;background:#fff}.licensed-logo-preview span{font-size:.78rem;color:#6B7785}.licensed-logo-preview img{max-width:190px;max-height:78px;object-fit:contain}.licensed-logo-preview.is-empty{color:#7B8792}.config-unit{font-weight:500;color:#6B7785;font-size:.86em}.config-actions{margin-top:4px}.config-form input[type="number"]{-moz-appearance:textfield}.config-form input[type="number"]::-webkit-outer-spin-button,.config-form input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@media(max-width:900px){.config-identity-layout{grid-template-columns:1fr}.config-logo-panel{max-width:none}}@media(max-width:700px){.config-field-wide{grid-column:auto}}
