﻿ 
/* ==========================================================================
           ESTILOS DAS ABAS E NAVEGAÇÃO
           ========================================================================== */
.registration-tabs-list {
    display: flex !important;
    flex-wrap: nowrap !important;
    list-style: none !important;
    padding-left: 0 !important;
    margin-bottom: 2rem !important;
    border-bottom: 2px solid var(--idero-border);
    gap: 0.25rem;
    overflow-x: auto;
    scrollbar-width: thin;
}

.registration-tabs-list li {
    flex: 1 0 max-content;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

    .registration-tabs-list li::before {
        content: none !important;
    }

.registration-tab {
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    padding: 0.75rem 0.9rem;
    font-weight: 500;
    font-size: 0.95rem;
    color: var(--idero-muted);
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    border-radius: 6px 6px 0 0;
    white-space: nowrap;
    width: 100%;
}

    .registration-tab:hover {
        color: var(--idero-blue-deep);
        background-color: var(--idero-soft);
    }

    .registration-tab.active {
        color: var(--idero-blue-deep);
        border-bottom-color: var(--idero-teal-strong);
        font-weight: 600;
        background-color: var(--idero-soft);
    }

/* ==========================================================================
           ESTILOS DO FORMULÁRIO E INPUTS
           ========================================================================== */
.registration-container {
    max-width: 1100px;
    margin: 0 auto;
    /*  padding: 0 1rem 1rem; */
    padding-top: 2px;
}

.registration-card {
    background: #ffffff;
    border-radius: 8px;
    padding: 2rem;
    box-shadow: 0 18px 42px rgba(0, 88, 144, 0.08);
    border: 1px solid var(--idero-border);
}

.registration-panel__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--idero-blue-deep);
    margin-bottom: 1.5rem;
}

/* Grid Responsivo para os Campos */
.registration-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-bottom: 2rem;
}

@@media (max-width: 992px) {
    .registration-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@@media (max-width: 640px) {
    .registration-grid {
        grid-template-columns: 1fr;
    }
}

.registration-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.registration-field--full {
    grid-column: 1 / -1;
}

.registration-field--span2 {
    grid-column: span 2;
}

@@media (max-width: 640px) {
    .registration-field--span2 {
        grid-column: 1 / -1;
    }
}

.registration-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--idero-blue-deep);
}

/* Inputs e Selects */
.registration-input,
.registration-select {
    width: 100%;
    padding: 0.625rem 0.875rem;
    font-size: 0.95rem;
    color: var(--idero-ink);
    background-color: #ffffff;
    border: 1px solid var(--idero-border);
    border-radius: 8px;
    outline: none;
    transition: all 0.2s ease-in-out;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

    .registration-input:focus,
    .registration-select:focus {
        border-color: var(--idero-teal-strong);
        box-shadow: 0 0 0 3px rgba(112, 200, 208, 0.24);
    }

    .registration-input::placeholder {
        color: var(--idero-muted);
    }

.document-upload-list {
    display: grid;
    gap: 0.875rem;
    grid-column: 1 / -1;
}

.document-upload-row {
    display: grid;
    grid-template-columns: minmax(12rem, 16rem) 1fr auto;
    gap: 0.75rem;
    align-items: center;
}

.document-remove-button {
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--idero-border);
    border-radius: 8px;
    background: #ffffff;
    color: var(--idero-blue-deep);
    cursor: pointer;
    font-weight: 700;
}

    .document-remove-button:hover {
        background-color: var(--idero-soft);
    }

@@media (max-width: 640px) {
    .document-upload-row {
        grid-template-columns: 1fr;
    }

    .document-remove-button {
        width: 100%;
    }
}

/* ==========================================================================
           ESTILOS DOS BOTÕES DE AÇÃO
           ========================================================================== */
.registration-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1.5rem;
    border-top: 1px solid var(--idero-border);
    margin-top: 1.5rem;
}

.registration-btn {
    padding: 0.625rem 1.5rem;
    font-size: 0.95rem;
    font-weight: 600;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: all 0.2s ease;
}

.registration-btn--primary {
    background-color: var(--idero-blue-deep);
    color: #ffffff;
}

    .registration-btn--primary:hover {
        background-color: var(--idero-blue);
    }

.registration-btn--secondary {
    background-color: #ffffff;
    color: var(--idero-blue-deep);
    border-color: var(--idero-border);
}

    .registration-btn--secondary:hover:not(:disabled) {
        background-color: var(--idero-soft);
        color: var(--idero-blue-deep);
    }

    .registration-btn--secondary:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

.registration-btn--submit {
    background-color: var(--idero-success, #087a65);
    color: #ffffff;
}

    .registration-btn--submit:hover {
        background-color: #066d5b;
    }

/* Resumo da Revisão */
.registration-summary p {
    font-size: 1rem;
    color: var(--idero-ink);
    margin-bottom: 0.75rem;
}


@media (max-width: 992px) {
    .registration-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ==========================================================================
           ESTILOS DA PAGINA DE PAGAMENTO
           ========================================================================== */
.payment-page {
    display: grid;
    gap: 1rem;
}

.payment-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.payment-title {
    color: #12384f;
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0;
}

.payment-subtitle {
    color: #557083;
    margin: 0.2rem 0 0;
}

.payment-panel {
    background: #ffffff;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    box-shadow: 0 14px 32px rgba(0, 88, 144, 0.08);
    padding: 1rem;
}

.payment-panel h2 {
    color: #005890;
    font-size: 1rem;
    font-weight: 800;
    margin: 0 0 0.85rem;
}

.payment-search-grid,
.payment-fields-grid {
    display: grid;
    gap: 0.85rem 1rem;
}

.payment-search-grid {
    align-items: end;
    grid-template-columns: minmax(180px, 0.7fr) minmax(260px, 1.3fr) auto;
}

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

.payment-field {
    display: grid;
    gap: 0.35rem;
}

.payment-field label {
    color: #557083;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.payment-field small {
    color: #557083;
    font-weight: 700;
}

.payment-input,
.payment-select {
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    color: #0d2f45;
    min-height: 42px;
    padding: 0.55rem 0.75rem;
    width: 100%;
}

.payment-select[multiple] {
    min-height: 128px;
    padding: 0.45rem 0.65rem;
}

.payment-input[readonly] {
    background: #f8fbfc;
    color: #557083;
}

.payment-button {
    align-items: center;
    background: #005890;
    border: 1px solid #005890;
    border-radius: 8px;
    color: #ffffff;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 42px;
    padding: 0.55rem 0.9rem;
    text-decoration: none;
}

.payment-button:disabled {
    background: #9fb8c7;
    border-color: #9fb8c7;
    cursor: not-allowed;
}

.payment-button--secondary {
    background: #ffffff;
    border-color: #d8e8ee;
    color: #005890;
}

.payment-actions {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    margin-top: 1rem;
}

.payment-message {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    color: #065f46;
    padding: 0.75rem 1rem;
}

.payment-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 8px;
    color: #991b1b;
    padding: 0.75rem 1rem;
}

.validation-summary-errors,
.field-validation-error {
    color: #b42318;
    font-weight: 700;
}

.payment-table {
    border-collapse: collapse;
    width: 100%;
}

.payment-table th,
.payment-table td {
    border-bottom: 1px solid #edf4f7;
    color: #0d2f45;
    padding: 0.75rem;
    text-align: left;
    vertical-align: top;
}

.payment-table th {
    background: #eef9fb;
    color: #557083;
    font-size: 0.78rem;
    text-transform: uppercase;
}

@media (max-width: 980px) {
    .payment-search-grid,
    .payment-fields-grid {
        grid-template-columns: 1fr;
    }

    .payment-header,
    .payment-actions {
        display: grid;
    }
}

/* ==========================================================================
           ESTILOS DA CONSULTA DE INSCRICAO
           ========================================================================== */
.consult-shell {
    max-width: 920px;
    margin: 0 auto;
    padding: 0 1rem 1rem;
}

.consult-search,
.receipt-panel {
    background: #ffffff;
    border: 1px solid var(--idero-border);
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(0, 88, 144, 0.08);
}

.consult-search {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 1rem;
    padding: 1rem;
}

.consult-input {
    border: 1px solid var(--idero-border);
    border-radius: 8px;
    color: var(--idero-ink);
    font-size: 0.98rem;
    outline: none;
    padding: 0.75rem 0.875rem;
    width: 100%;
}

.consult-input:focus {
    border-color: var(--idero-teal-strong);
    box-shadow: 0 0 0 3px rgba(112, 200, 208, 0.24);
}

.consult-button,
.receipt-button {
    align-items: center;
    background: var(--idero-blue-deep);
    border: 1px solid var(--idero-blue-deep);
    border-radius: 8px;
    color: #ffffff;
    cursor: pointer;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 46px;
    padding: 0.65rem 1rem;
    text-decoration: none;
}

.receipt-button--secondary {
    background: #ffffff;
    border-color: var(--idero-border);
    color: var(--idero-blue-deep);
}

.consult-message {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    color: #9a3412;
    margin: 0;
    padding: 1rem;
}

.receipt-panel {
    padding: 1.5rem;
}

.receipt-header {
    align-items: start;
    border-bottom: 1px solid var(--idero-border);
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
}

.receipt-title {
    color: var(--idero-blue-deep);
    font-size: 1.45rem;
    font-weight: 800;
    margin: 0 0 0.35rem;
}

.receipt-number {
    color: var(--idero-muted);
    margin: 0;
}

.receipt-status {
    border: 1px solid var(--idero-border);
    border-radius: 999px;
    color: var(--idero-blue-deep);
    font-weight: 700;
    padding: 0.35rem 0.75rem;
    white-space: nowrap;
}

.receipt-grid {
    display: grid;
    gap: 0.75rem 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 1.25rem;
}

.receipt-item {
    border-bottom: 1px solid #edf4f7;
    display: grid;
    gap: 0.2rem;
    padding-bottom: 0.65rem;
}

.receipt-item span {
    color: var(--idero-muted);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
}

.receipt-item strong {
    color: var(--idero-ink);
    font-size: 0.98rem;
    font-weight: 700;
}

.receipt-section-title {
    color: var(--idero-blue-deep);
    font-size: 1rem;
    font-weight: 800;
    margin: 1.25rem 0 0.75rem;
}

.receipt-documents {
    border: 1px solid var(--idero-border);
    border-radius: 8px;
    overflow: hidden;
}

.receipt-document {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: 1fr 1.4fr auto;
    padding: 0.75rem;
}

.receipt-document + .receipt-document {
    border-top: 1px solid var(--idero-border);
}

.receipt-document span {
    color: var(--idero-muted);
}

.receipt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.print-logo {
    display: none;
}

.print-logo img {
    display: block;
    height: auto;
    max-width: 120px;
}

@media (max-width: 700px) {
    .consult-search,
    .receipt-grid,
    .receipt-document {
        grid-template-columns: 1fr;
    }

    .receipt-header {
        display: grid;
    }
}

@media print {
    .idero-registration-header,
    .idero-registration-footer,
    .consult-search,
    .receipt-actions {
        display: none !important;
    }

    .consult-shell {
        max-width: none;
        padding: 0;
    }

    .receipt-panel {
        border: 0;
        box-shadow: none;
        padding: 0;
    }

    .print-logo {
        display: flex;
        justify-content: center;
        margin: 0 0 1.25rem;
        text-align: center;
        width: 100%;
    }

    .print-logo img {
        max-width: 130px;
    }
}

/* ==========================================================================
           ESTILOS DA CONSULTA PUBLICA DE RESULTADO
           ========================================================================== */
.result-consult-shell {
    display: grid;
    gap: 1rem;
}

.result-panel {
    display: grid;
    gap: 1rem;
}

.result-grid {
    margin-top: 0;
}

.result-status {
    text-transform: uppercase;
}

.result-status--admitido {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #065f46;
}

.result-status--lista_espera {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a3412;
}

.result-status--excluido,
.result-status--excluído {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}

.result-instructions {
    background: #f8fbfc;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    display: grid;
    gap: 0.25rem;
    padding: 1rem;
}

.result-instructions span {
    color: #557083;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.result-instructions strong {
    color: #0d2f45;
    font-weight: 700;
}

@media print {
    .result-panel {
        break-inside: avoid;
    }
}

/* ==========================================================================
           ESTILOS DA LISTAGEM DE INSCRICOES
           ========================================================================== */
.admin-page {
    display: grid;
    gap: 1rem;
}

.admin-title {
    color: #12384f;
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0;
}

.admin-filters,
.admin-table-panel {
    background: #ffffff;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    box-shadow: 0 14px 32px rgba(0, 88, 144, 0.08);
}

.admin-filters {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: 1.2fr repeat(4, minmax(0, 1fr)) auto;
    padding: 1rem;
}

.admin-input,
.admin-select {
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    color: #0d2f45;
    min-height: 42px;
    padding: 0.55rem 0.75rem;
    width: 100%;
}

.admin-button {
    align-items: center;
    background: #005890;
    border: 1px solid #005890;
    border-radius: 8px;
    color: #ffffff;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 42px;
    padding: 0.55rem 0.9rem;
    text-decoration: none;
}

.admin-button:disabled {
    background: #9fb8c7;
    border-color: #9fb8c7;
    cursor: not-allowed;
}

.admin-button--secondary {
    background: #ffffff;
    border-color: #d8e8ee;
    color: #005890;
}

.admin-table-panel {
    overflow: hidden;
}

.admin-table {
    border-collapse: collapse;
    width: 100%;
}

.admin-table th,
.admin-table td {
    border-bottom: 1px solid #edf4f7;
    color: #0d2f45;
    padding: 0.75rem;
    text-align: left;
    vertical-align: top;
}

.admin-table th {
    background: #eef9fb;
    color: #557083;
    font-size: 0.78rem;
    text-transform: uppercase;
}

.status-pill {
    border: 1px solid #d8e8ee;
    border-radius: 999px;
    color: #005890;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 800;
    padding: 0.25rem 0.55rem;
    white-space: nowrap;
}

.admin-table small {
    color: #557083;
    display: block;
    font-size: 0.78rem;
    margin-top: 0.25rem;
}

.edital-status--aberto {
    background: #e7f8ef;
    border-color: #b8e7cb;
    color: #087a42;
}

.edital-status--encerrado {
    background: #fff7e8;
    border-color: #f4d399;
    color: #92400e;
}

.edital-status--arquivado {
    background: #eef2f6;
    border-color: #cfd9e3;
    color: #4a6174;
}

.empty-row {
    color: #557083;
    padding: 1rem;
}

@media (max-width: 1100px) {
    .admin-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ==========================================================================
           ESTILOS DO LANCAMENTO DE NOTAS DE EXAME
           ========================================================================== */
.exam-page {
    gap: 1rem;
}

.exam-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.exam-header p {
    color: #557083;
    margin: 0.25rem 0 0;
}

.exam-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(260px, 1.3fr) auto;
}

.individual-exam-search {
    grid-template-columns: minmax(240px, 1fr) auto;
}

.individual-exam-summary {
    margin-bottom: 1rem;
}

.individual-note-table {
    min-width: 640px;
}

.exam-empty {
    display: grid;
    gap: 0.25rem;
    padding: 1rem;
}

.exam-empty strong {
    color: #12384f;
}

.exam-empty span {
    color: #557083;
}

.exam-form {
    display: grid;
    gap: 1rem;
}

.exam-lock-message {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    color: #92400e;
    font-weight: 700;
    padding: 0.75rem 1rem;
}

.exam-table-panel {
    overflow: hidden;
}

.exam-table-scroll {
    overflow-x: auto;
}

.exam-table {
    min-width: 920px;
}

.exam-table th span {
    color: #6b8798;
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    margin-top: 0.15rem;
    text-transform: none;
}

.exam-table td span {
    color: #557083;
}

.exam-note-input {
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    color: #0d2f45;
    max-width: 96px;
    min-height: 38px;
    padding: 0.45rem 0.55rem;
    text-align: right;
    width: 100%;
}

.exam-note-input:focus {
    border-color: #70c8d0;
    box-shadow: 0 0 0 3px rgba(112, 200, 208, 0.24);
    outline: none;
}

.exam-note-input:disabled {
    background: #f3f7f9;
    color: #6b8798;
    cursor: not-allowed;
}

.exam-actions {
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 1100px) {
    .exam-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .exam-header,
    .exam-actions {
        display: grid;
    }

    .exam-filters {
        grid-template-columns: 1fr;
    }

    .individual-exam-search {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
           ESTILOS DA SELECCAO DE CANDIDATOS
           ========================================================================== */
.selection-page {
    gap: 1rem;
}

.selection-filters {
    grid-template-columns: minmax(160px, 0.8fr) minmax(220px, 1fr) minmax(280px, 1.4fr) auto;
}

.selection-summary {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.selection-summary div {
    background: #ffffff;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    box-shadow: 0 14px 32px rgba(0, 88, 144, 0.08);
    display: grid;
    gap: 0.2rem;
    padding: 0.9rem 1rem;
}

.selection-summary span {
    color: #557083;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.selection-summary strong {
    color: #12384f;
    font-size: 1.15rem;
}

.selection-table {
    min-width: 1040px;
}

.rank-badge {
    align-items: center;
    background: #eef9fb;
    border: 1px solid #cce6ee;
    border-radius: 999px;
    color: #005890;
    display: inline-flex;
    font-weight: 800;
    height: 2rem;
    justify-content: center;
    min-width: 2rem;
    padding: 0 0.55rem;
}

.selection-state--admitido {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #065f46;
}

.selection-state--lista_espera {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a3412;
}

.selection-state--pendente {
    background: #f8fbfc;
    color: #557083;
}

@media (max-width: 900px) {
    .selection-filters,
    .selection-summary {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
           ESTILOS DA PUBLICACAO DE RESULTADOS
           ========================================================================== */
.publication-page {
    gap: 1rem;
}

.publication-filters {
    grid-template-columns: minmax(160px, 0.8fr) minmax(220px, 1fr) minmax(280px, 1.4fr) auto;
}

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

.publication-state {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    color: #065f46;
    display: grid;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
}

.publication-state span {
    color: #356859;
}

.publication-table {
    min-width: 920px;
}

.publication-form {
    align-items: end;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.publication-observation {
    display: grid;
    gap: 0.35rem;
}

.publication-observation span {
    color: #557083;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.publication-observation textarea {
    min-height: 84px;
    resize: vertical;
}

@media (max-width: 900px) {
    .publication-filters,
    .publication-summary,
    .publication-form {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
           ESTILOS DA CONFIGURACAO ADMINISTRATIVA
           ========================================================================== */
.config-page {
    gap: 1rem;
}

.admin-config-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.15fr);
}

.config-form {
    display: grid;
    gap: 0.85rem 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.config-form--usuarios {
    grid-template-areas:
        "nome email perfis"
        "password confirmar perfis"
        "ativo actions actions";
    grid-template-rows: auto auto auto;
}

.config-form--usuarios .payment-field {
    align-content: start;
}

.config-form--usuarios .payment-input {
    height: 42px;
}

.config-form--usuarios .user-form-field--nome {
    grid-area: nome;
}

.config-form--usuarios .user-form-field--email {
    grid-area: email;
}

.config-form--usuarios .user-form-field--perfis {
    grid-area: perfis;
}

.config-form--usuarios .user-form-field--password {
    grid-area: password;
}

.config-form--usuarios .user-form-field--confirmar-password {
    grid-area: confirmar;
}

.config-form--usuarios .user-form-field--ativo {
    grid-area: ativo;
    justify-self: start;
}

.config-form--usuarios .config-form__actions {
    grid-area: actions;
    grid-column: auto;
}

.config-form__wide {
    grid-column: 1 / -1;
}

.config-form__actions {
    align-items: end;
    display: flex;
    grid-column: 1 / -1;
    gap: 0.5rem;
    justify-content: flex-end;
}

.config-split {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.config-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.config-row-actions form {
    margin: 0;
}

.config-check {
    align-items: center;
    align-self: end;
    color: #0d2f45;
    display: inline-flex;
    font-weight: 800;
    gap: 0.45rem;
    min-height: 42px;
}

.config-check input {
    accent-color: #005890;
    height: 1.05rem;
    width: 1.05rem;
}

.config-table {
    min-width: 960px;
}

@media (max-width: 900px) {
    .admin-config-grid,
    .config-form,
    .config-split {
        grid-template-columns: 1fr;
    }

    .config-form__actions {
        justify-content: stretch;
    }

    .config-form__actions .admin-button {
        width: 100%;
    }

    .config-form--usuarios {
        grid-template-areas:
            "nome"
            "email"
            "perfis"
            "password"
            "confirmar"
            "ativo"
            "actions";
    }
}

/* ==========================================================================
           ESTILOS DOS RELATORIOS
           ========================================================================== */
.reports-page {
    gap: 1rem;
}

.reports-filter-panel {
    background: #ffffff;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    box-shadow: 0 14px 32px rgba(0, 88, 144, 0.08);
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 1rem;
}

.reports-filter-panel label {
    display: grid;
    gap: 0.35rem;
}

.reports-filter-panel label span {
    color: #557083;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.reports-filter-panel__search {
    grid-column: span 2;
}

.reports-filter-panel__actions {
    align-items: end;
    display: flex;
    gap: 0.65rem;
    grid-column: 1 / -1;
    justify-content: flex-end;
}

.report-summary {
    align-items: center;
    background: #eef9fb;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.85rem 1rem;
}

.report-summary div {
    display: grid;
    gap: 0.1rem;
}

.report-summary span {
    color: #557083;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
}

.report-summary strong {
    color: #12384f;
    font-size: 1rem;
}

.report-summary p {
    color: #557083;
    margin: 0;
}

.reports-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reports-card {
    background: #ffffff;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    box-shadow: 0 14px 32px rgba(0, 88, 144, 0.08);
    color: #0d2f45;
    display: grid;
    gap: 0.4rem;
    min-height: 148px;
    padding: 1rem;
    text-decoration: none;
}

.reports-card:hover {
    border-color: #70c8d0;
    color: #005890;
}

.reports-card i {
    align-items: center;
    background: #eef9fb;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    color: #005890;
    display: inline-flex;
    font-size: 1.35rem;
    height: 2.6rem;
    justify-content: center;
    width: 2.6rem;
}

.reports-card strong {
    color: #12384f;
    font-size: 1rem;
}

.reports-card span {
    color: #557083;
}

.reports-table {
    min-width: 780px;
}

.reports-table--wide {
    min-width: 1120px;
}

@media (max-width: 1000px) {
    .reports-filter-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

@media (max-width: 700px) {
    .reports-filter-panel,
    .report-summary {
        display: grid;
    }

    .reports-filter-panel {
        grid-template-columns: 1fr;
    }

    .reports-filter-panel__search {
        grid-column: auto;
    }

    .reports-filter-panel__actions {
        justify-content: stretch;
    }

    .reports-filter-panel__actions .admin-button {
        flex: 1;
    }

    .reports-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    .reports-banner,
    .reports-footer,
    .reports-filter-panel,
    .exam-header .admin-button {
        display: none !important;
    }

    .reports-main {
        width: 100%;
    }
}

/* ==========================================================================
           ESTILOS DOS DETALHES DA INSCRICAO
           ========================================================================== */
.detail-page {
    display: grid;
    gap: 1rem;
}

.detail-header,
.detail-card {
    background: #ffffff;
    border: 1px solid #d8e8ee;
    border-radius: 8px;
    box-shadow: 0 14px 32px rgba(0, 88, 144, 0.08);
}

.detail-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
}

.detail-title {
    color: #12384f;
    font-size: 1.45rem;
    font-weight: 800;
    margin: 0 0 0.25rem;
}

.detail-subtitle {
    color: #557083;
    margin: 0;
}

.detail-card {
    padding: 1rem;
}

.detail-card h2 {
    color: #005890;
    font-size: 1rem;
    font-weight: 800;
    margin: 0 0 0.85rem;
}

.detail-grid {
    display: grid;
    gap: 0.75rem 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.detail-item {
    border-bottom: 1px solid #edf4f7;
    display: grid;
    gap: 0.15rem;
    padding-bottom: 0.6rem;
}

.detail-item span {
    color: #557083;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.detail-item strong {
    color: #0d2f45;
    font-weight: 700;
}

.detail-page .status-pill {
    padding: 0.35rem 0.75rem;
}

.status-form {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.detail-page .admin-select,
.detail-page .admin-button {
    border-radius: 8px;
    min-height: 42px;
    padding: 0.55rem 0.75rem;
}

.detail-page .admin-select {
    border: 1px solid #d8e8ee;
    min-width: 250px;
}

.admin-button--success {
    background: #087a65;
    border-color: #087a65;
}

.admin-button--warning {
    background: #ffffff;
    border-color: #f59e0b;
    color: #92400e;
}

.message {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    color: #065f46;
    padding: 0.75rem 1rem;
}

.documents-table {
    border-collapse: collapse;
    width: 100%;
}

.documents-table th,
.documents-table td {
    border-bottom: 1px solid #edf4f7;
    padding: 0.75rem;
    text-align: left;
}

.documents-table th {
    color: #557083;
    font-size: 0.78rem;
    text-transform: uppercase;
}

.document-actions {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

@media (max-width: 900px) {
    .detail-grid {
        grid-template-columns: 1fr;
    }

    .detail-header,
    .status-form {
        display: grid;
    }
}
