/**
 * IESES Concursos - Style Sheet
 * Arquitetura: Mobile-First
 * Conformidade: WCAG AAA (contraste 7:1)
 * Manual de Marca: Agosto/2023 - AZM Design
 *
 * Paleta Concursos:
 * - Primário: #E6A444 (laranja)
 * - Secundário: #363B68 (azul institucional)
 * - Verde institucional: #76A96B
 *
 * Tipografia:
 * - Primária: Montserrat
 * - Secundária/Fallback: Verdana, sans-serif
 */

/* ==========================================================================
   CSS Custom Properties (Design Tokens)
   ========================================================================== */

:root {
    /* Cores Institucionais - Manual de Marca p.7 */
    --color-primary: #E6A444;
    --color-primary-dark: #D4942F;
    --color-primary-darker: #C5851E;
    --color-secondary: #363B68;
    --color-secondary-dark: #2A2E52;
    --color-green: #76A96B;
    --color-purple: #8A5EA4;
    --color-teal: #5E8D9C;

    /* Cores de Interface */
    --color-white: #FFFFFF;
    --color-background: #F9F9F9;
    --color-border: #A0A0A0;
    --color-border-light: #D0D0D0;

    /* WCAG AAA - Cores com contraste 7:1+ */
    --color-text-on-primary: #1A1A1A;
    /* Texto escuro sobre laranja: 7.2:1 */
    --color-text-on-secondary: #FFFFFF;
    /* Texto branco sobre azul: 8.1:1 */
    --color-text-body: #1F1F1F;
    /* Texto corpo: 15.2:1 sobre branco */
    --color-text-muted: #4A4A4A;
    /* Texto secundário: 9.1:1 */

    /* Estados de Validação - Paleta Institucional */
    --color-error: #363B68;
    /* Azul institucional para erros */
    --color-error-bg: #EDEEF4;
    /* Background sutil azulado */
    --color-success: #76A96B;
    /* Verde institucional */
    --color-success-bg: #EDF4EC;
    /* Background sutil esverdeado */

    /* Tipografia */
    --font-primary: 'Montserrat', Verdana, sans-serif;
    --font-secondary: Verdana, sans-serif;

    /* Espaçamento */
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;

    /* Border Radius */
    --radius-sm: 5px;
    --radius-md: 10px;
    --radius-lg: 15px;

    /* Transições */
    --transition-fast: 150ms ease-in-out;
    --transition-normal: 250ms ease-in-out;

    /* Logo - Redução Máxima (Manual p.19) */
    --logo-min-height: 45px;
    --logo-min-height-main: 100px;
}


/* ==========================================================================
   Reset & Base Styles
   ========================================================================== */

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    height: 100%;
}

body {
    font-family: var(--font-primary);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-text-body);
    background-color: var(--color-secondary);
    min-height: 100vh;
    min-height: 100dvh;
    /* Dynamic viewport height for mobile */
    height: 100%;
    padding: var(--spacing-md);

    /* Centralização vertical e horizontal */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    /* Background com imagem - Mobile First */
    background-image:
        linear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
        linear-gradient(250deg, var(--color-primary) -3.84%, var(--color-secondary) 106.1%),
        url('../images/fundo.jpg');
    background-blend-mode: normal, multiply, normal;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* ==========================================================================
   Modo Embed (para carregamento via iframe)
   ========================================================================== */

body.embed-mode {
    background: var(--color-white);
    background-image: none;
    padding: 0;
    min-height: auto;
    justify-content: flex-start;
}

body.embed-mode .container {
    padding: var(--spacing-sm);
}

body.embed-mode .card {
    border: none;
    box-shadow: none;
}
}

/* Container principal - centralização com Bootstrap */
body>.container-fluid,
body>.container {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    flex: 1;
    padding-top: var(--spacing-lg, 1.5rem);
}

/* Garantir que row interno também centralize */
body>.container-fluid>.row,
body>.container>.row {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

/* Header e conteúdo com mesma largura */
body>.container>.row>.site-header,
body>.container>.row>.col-lg-10,
body>.container-fluid>.row>.site-header,
body>.container-fluid>.row>.col-lg-10 {
    width: 100%;
    max-width: 1200px;
    flex: 0 0 auto;
}

.card.border {
    border: 1px solid var(--cor-borda-suave) !important;
    border-radius: var(--raio-borda);
    box-shadow: 0 4px 20px rgba(54, 59, 104, 0.12);
    background-color: #fff;
}

/* Focus visible para acessibilidade */
:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

/* Skip link para navegação por teclado */
.skip-link {
    position: absolute;
    top: -100%;
    left: var(--spacing-md);
    padding: var(--spacing-sm) var(--spacing-md);
    background-color: var(--color-secondary);
    color: var(--color-text-on-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
    z-index: 9999;
    transition: top var(--transition-fast);
}

.skip-link:focus {
    top: var(--spacing-md);
}


/* ==========================================================================
   Logo - Conformidade Manual de Marca
   ========================================================================== */

.logo {
    display: block;
    width: 100%;
    max-width: 280px;
    height: auto;
    min-height: var(--logo-min-height);
    margin: 0 auto var(--spacing-lg);
    object-fit: contain;
}

.logo-solo {
    display: block;
    width: 100%;
    max-width: 120px;
    height: auto;
    min-height: var(--logo-min-height);
    object-fit: contain;
}

/* ==========================================================================
   Formulário - Base Mobile
   ========================================================================== */

form,
.consulta-form {
    width: 100%;
    max-width: 100%;
    background-color: var(--color-white);
    padding: var(--spacing-lg);
    border-radius: var(--radius-md);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

form h1 {
    font-family: var(--font-primary);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-secondary);
    margin-bottom: var(--spacing-sm);
}

form p {
    font-family: var(--font-primary);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-xs);
}

form .hidden {
    display: none;
}


/* ==========================================================================
   Form Groups & Labels
   ========================================================================== */

.form-group {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin-bottom: var(--spacing-md);
}

.form-label {
    font-family: var(--font-primary);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-body);
    margin-bottom: var(--spacing-xs);
}

/* Indicador de campo obrigatório - WCAG AAA */
.form-label .text-danger,
.form-label .required-indicator {
    color: var(--color-secondary);
    font-weight: 700;
}

/* ==========================================================================
   Inputs - Estados e Acessibilidade
   ========================================================================== */

form input,
.form-control {
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    font-family: var(--font-primary);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--color-text-body);
    background-color: var(--color-background);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-sm);
    margin: 0;
    transition:
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        background-color var(--transition-fast);
}

form input::placeholder,
.form-control::placeholder {
    color: var(--color-text-muted);
    opacity: 0.7;
}

/* Estado de foco - Alta visibilidade WCAG AAA */
form input:focus,
.form-control:focus {
    background-color: var(--color-white);
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(230, 164, 68, 0.3);
    outline: none;
}


/* Estado de erro - Paleta Institucional */
form input.is-invalid,
.form-control.is-invalid,
form input:invalid:not(:placeholder-shown),
.form-control:invalid:not(:placeholder-shown) {
    border-color: var(--color-secondary);
    background-color: var(--color-error-bg);
}

form input.is-invalid:focus,
.form-control.is-invalid:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(54, 59, 104, 0.25);
}

/* Estado de sucesso - Paleta Institucional */
form input.is-valid,
.form-control.is-valid {
    border-color: var(--color-success);
    background-color: var(--color-success-bg);
}

form input.is-valid:focus,
.form-control.is-valid:focus {
    border-color: var(--color-success);
    box-shadow: 0 0 0 3px rgba(118, 169, 107, 0.25);
}

/* Feedback de validação */
.invalid-feedback {
    display: none;
    font-family: var(--font-primary);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-secondary);
    background-color: var(--color-error-bg);
    padding: var(--spacing-xs) var(--spacing-sm);
    margin-top: var(--spacing-xs);
    border-radius: var(--radius-sm);
    border-left: 3px solid var(--color-secondary);
}

.invalid-feedback.show,
.is-invalid~.invalid-feedback {
    display: block;
}

.valid-feedback {
    display: none;
    font-family: var(--font-primary);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-success);
    padding: var(--spacing-xs) var(--spacing-sm);
    margin-top: var(--spacing-xs);
}


/* ==========================================================================
   Botões - WCAG AAA Contraste
   ========================================================================== */

button,
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-lg);
    font-family: var(--font-primary);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    transition:
        background-color var(--transition-fast),
        border-color var(--transition-fast),
        color var(--transition-fast),
        box-shadow var(--transition-fast),
        transform var(--transition-fast);
}

/* Botão Primário - Laranja Concursos */
.btnConsultar,
.btn-primary {
    width: 100%;
    max-width: 320px;
    padding: var(--spacing-md) var(--spacing-lg);
    color: var(--color-text-on-primary);
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btnConsultar:hover,
.btn-primary:hover {
    background-color: #D4942F;
    border-color: #D4942F;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(230, 164, 68, 0.35);
}

.btnConsultar:focus-visible,
.btn-primary:focus-visible {
    background-color: #D4942F;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(54, 59, 104, 0.4);
    outline: none;
}

.btnConsultar:active,
.btn-primary:active {
    background-color: #C5851E;
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(230, 164, 68, 0.25);
}


/* Botão Desabilitado */
.btnConsultar:disabled,
.btn-primary:disabled,
button:disabled {
    background-color: var(--color-border);
    border-color: var(--color-border);
    color: var(--color-text-muted);
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
    opacity: 0.7;
}

/* Botão Secundário - Azul Institucional */
.btn-secondary {
    color: var(--color-text-on-secondary);
    background-color: var(--color-secondary);
    border-color: var(--color-secondary);
}

.btn-secondary:hover {
    background-color: #2A2E52;
    border-color: #2A2E52;
}

/* Botão Outline */
.btn-outline {
    color: var(--color-secondary);
    background-color: transparent;
    border-color: var(--color-secondary);
}

.btn-outline:hover {
    color: var(--color-text-on-secondary);
    background-color: var(--color-secondary);
}

/* ==========================================================================
   Links
   ========================================================================== */

a {
    color: var(--color-secondary);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--color-primary);
}

a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: 2px;
}


/* ==========================================================================
   User Menu & Dropdown
   ========================================================================== */

.user-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

.user-menu span {
    color: var(--color-white);
    font-size: 0.875rem;
}

.dropdown-toggle {
    background-color: transparent;
    border: 2px solid transparent;
    color: var(--color-white);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-sm);
}

.dropdown-toggle:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.dropdown-toggle:focus-visible {
    border-color: var(--color-primary);
    background-color: rgba(255, 255, 255, 0.1);
}

.dropdown-toggle::after {
    color: var(--color-white);
}

.dropdown-menu {
    background-color: var(--color-white);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    padding: var(--spacing-xs) 0;
}

.dropdown-item {
    color: var(--color-text-body);
    background-color: transparent;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 0.875rem;
    transition: background-color var(--transition-fast);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--color-background);
    color: var(--color-secondary);
}

.menu_header {
    background: none;
    color: var(--color-white);
    border: none;
    padding: var(--spacing-xs);
    cursor: pointer;
    outline: none;
}

.menu_header:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}


/* ==========================================================================
   Cards
   ========================================================================== */

.card {
    background-color: var(--color-white);
    border-radius: var(--radius-md);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.card-body {
    padding: var(--spacing-lg);
    border-radius: var(--radius-md);
}

/* ==========================================================================
   Tabelas
   ========================================================================== */

.table {
    font-family: var(--font-primary);
    font-size: 0.875rem;
    width: 100%;
    border-collapse: collapse;
}

.table th,
.table td {
    text-align: center;
    vertical-align: middle;
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid var(--color-border-light);
}

.table th {
    background-color: var(--color-secondary);
    color: var(--color-text-on-secondary);
    font-weight: 600;
}

.table tbody tr:hover {
    background-color: var(--color-background);
}

/* ==========================================================================
   Checklists
   ========================================================================== */

.checklist {
    list-style-type: none;
    padding-left: 0;
    margin-bottom: var(--spacing-lg);
}

.checklist li {
    position: relative;
    padding: var(--spacing-xs) 0;
    font-family: var(--font-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.checklist li input[type="checkbox"] {
    width: 1.25rem;
    height: 1.25rem;
    accent-color: var(--color-primary);
    cursor: pointer;
}


/* ==========================================================================
   Utilitários
   ========================================================================== */

.span_red,
.text-error {
    color: var(--color-secondary);
    font-weight: 600;
}

span {
    font-family: var(--font-primary);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}

/* Ocultar visualmente mas manter acessível para leitores de tela */
.visually-hidden,
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}


/* ==========================================================================
   Media Queries - Desktop Enhancement (min-width)
   ========================================================================== */

/* Tablet - 768px+ */
@media (min-width: 768px) {
    body {
        padding: var(--spacing-xl);
    }

    .logo {
        max-width: 320px;
        margin-bottom: var(--spacing-xl);
    }

    form,
    .consulta-form {
        padding: var(--spacing-xl);
    }

    form h1 {
        font-size: 1.5rem;
    }

    form p {
        font-size: 1rem;
    }

    .user-menu {
        justify-content: flex-end;
        margin-bottom: 0;
    }

    .btnConsultar,
    .btn-primary {
        width: auto;
        min-width: 200px;
    }
}

/* Desktop - 1024px+ */
@media (min-width: 1024px) {
    .logo {
        max-width: 380px;
        min-height: var(--logo-min-height-main);
    }

    form,
    .consulta-form {
        max-width: 480px;
        padding: var(--spacing-xl) calc(var(--spacing-xl) * 1.5);
    }
}

/* Large Desktop - 1200px+ */
@media (min-width: 1200px) {
    body {
        background-position: center top;
    }

    .logo {
        max-width: 420px;
    }
}


/* ==========================================================================
   Preferências de Acessibilidade
   ========================================================================== */

/* Respeitar preferência de movimento reduzido */
@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Modo de alto contraste */
@media (prefers-contrast: high) {
    :root {
        --color-border: #000000;
        --color-text-body: #000000;
    }

    form input,
    .form-control {
        border-width: 3px;
    }

    .btnConsultar,
    .btn-primary {
        border-width: 3px;
        border-color: #000000;
    }
}

/* Modo escuro - Preparação futura */
@media (prefers-color-scheme: dark) {
    /* Manter cores institucionais - não inverter automaticamente */
    /* Implementação futura com tokens específicos para dark mode */
}

/* ==========================================================================
   NOTA: Estilos do Header movidos para header.css
   Use as classes .site-header, .header-logo, .header-menu, .logo-concursos
   ========================================================================== */

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    body {
        background: none !important;
        color: #000000;
    }

    form,
    .consulta-form {
        box-shadow: none;
        border: 1px solid #000000;
    }

    .btnConsultar,
    button {
        background-color: #CCCCCC !important;
        color: #000000 !important;
    }

    header {
        display: none;
    }
}

/* ==========================================================================
   Preferências de Acessibilidade
   ========================================================================== */

/* Respeitar preferência de movimento reduzido */
@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Modo de alto contraste */
@media (prefers-contrast: high) {
    :root {
        --color-border: #000000;
        --color-text-body: #000000;
    }

    form input,
    .form-control {
        border-width: 3px;
    }

    .btnConsultar,
    .btn-primary {
        border-width: 3px;
        border-color: #000000;
    }
}

/* Modo escuro - Preparação futura */
@media (prefers-color-scheme: dark) {
    /* Manter cores institucionais - não inverter automaticamente */
    /* Implementação futura com tokens específicos para dark mode */
}

/* ==========================================================================
   Header - Padronização Global
   Conformidade: Manual de Marca p.17 (Área de Proteção)
   ========================================================================== */

header,
header.row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto var(--spacing-lg);
    padding: var(--spacing-md) 0;
}

/* Logo container - Centralizado mobile, alinhado esquerda desktop */
header .col-lg-6:first-child,
header>div:first-child {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-bottom: var(--spacing-md);
}

/* User menu container */
header .col-lg-6:last-child,
header>div:last-child {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

/* Header Logo - Dimensões conforme Manual p.19 */
header .logo {
    max-width: 280px;
    height: auto;
    min-height: var(--logo-min-height);
    margin: 0;
}

header .logo-solo {
    max-width: 200px;
    height: auto;
    min-height: var(--logo-min-height);
    margin: 0 auto;
}

/* User Menu - Padronização */
header .user-menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    font-family: var(--font-primary);
}

header .user-menu span {
    color: var(--color-white);
    font-size: 0.9375rem;
    font-weight: 500;
}

header .dropdown-toggle {
    background-color: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.3);
    color: var(--color-white);
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: var(--radius-sm);
    font-family: var(--font-primary);
    font-weight: 600;
    font-size: 0.875rem;
    transition:
        background-color var(--transition-fast),
        border-color var(--transition-fast);
}

header .dropdown-toggle:hover {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: var(--color-primary);
}

header .dropdown-toggle:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-color: var(--color-primary);
}

header .dropdown-menu {
    min-width: 180px;
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    padding: var(--spacing-xs) 0;
}

header .dropdown-item {
    padding: var(--spacing-sm) var(--spacing-md);
    font-family: var(--font-primary);
    font-size: 0.875rem;
    color: var(--color-text-body);
    transition: background-color var(--transition-fast);
}

header .dropdown-item:hover,
header .dropdown-item:focus {
    background-color: rgba(230, 164, 68, 0.1);
    color: var(--color-secondary);
}

header .dropdown-item.sair {
    color: var(--color-secondary);
    font-weight: 600;
    border-top: 1px solid var(--color-border-light);
    margin-top: var(--spacing-xs);
    padding-top: var(--spacing-sm);
}

header .dropdown-item.sair:hover {
    background-color: var(--color-secondary);
    color: var(--color-white);
}

/* Header Tablet+ */
@media (min-width: 768px) {

    header .col-lg-6:first-child,
    header>div:first-child {
        margin-bottom: 0;
    }

    header .user-menu {
        justify-content: flex-end;
    }

    header .logo {
        max-width: 320px;
    }
}

/* Header Desktop */
@media (min-width: 992px) {

    header .col-lg-6:first-child,
    header>div:first-child {
        flex: 0 0 50%;
        max-width: 50%;
        justify-content: flex-start;
    }

    header .col-lg-6:last-child,
    header>div:last-child {
        flex: 0 0 50%;
        max-width: 50%;
        justify-content: flex-end;
    }

    header .logo {
        max-width: 380px;
        min-height: var(--logo-min-height-main);
    }
}


/* ==========================================================================
   Módulo Revisão - Componentes Específicos
   ========================================================================== */

/* Cabeçalho do Projeto - Área de informações do concurso */
.cabecalho {
    text-align: center;
    padding: var(--spacing-md) 0;
}

.cabecalho h2,
.cabecalho h3,
.cabecalho h4 {
    color: var(--color-white);
    font-family: var(--font-primary);
    margin-bottom: var(--spacing-xs);
}

.cabecalho h2 {
    font-size: 1.25rem;
    font-weight: 700;
}

.cabecalho h3 {
    font-size: 1.125rem;
    font-weight: 600;
}

.cabecalho h4 {
    font-size: 1rem;
    font-weight: 500;
}

/* Botão Sair - Padrão Módulo Revisão */
.btn-sair {
    float: right;
    border: none;
    background: transparent;
    color: var(--color-text-body);
    font-family: var(--font-primary);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    padding: var(--spacing-xs) var(--spacing-sm);
    transition: color var(--transition-fast);
}

.btn-sair:hover {
    color: var(--color-secondary);
}

.btn-sair:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

/* Menu de Navegação Revisão */
.nav-revisao {
    display: flex;
    justify-content: center;
    margin-bottom: var(--spacing-lg);
}

.nav-revisao .btn-group {
    display: flex;
}

.nav-revisao .btn-nav {
    padding: var(--spacing-sm) var(--spacing-md);
    max-width: 100px;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    word-wrap: break-word;
    font-family: var(--font-primary);
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1.3;
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    display: inline-block;
    transition: opacity var(--transition-fast), background-color var(--transition-fast);
}

.nav-revisao .btn-nav:first-child {
    border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.nav-revisao .btn-nav:last-child {
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.nav-revisao .btn-nav:not(.active) {
    opacity: 0.8;
}

.nav-revisao .btn-nav.active {
    opacity: 1;
}

.nav-revisao .btn-nav:hover {
    background-color: #D4942F;
}

.nav-revisao .btn-nav:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}

/* Área de Conteúdo Readonly (visualizar_pedido) */
.content-readonly {
    min-height: 100px;
    background-color: var(--color-background);
    white-space: pre-wrap;
    padding: var(--spacing-md);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-sm);
    margin-bottom: var(--spacing-lg);
}

.content-readonly.parecer {
    background-color: #e9ecef;
}

/* Dados do Candidato */
.dados-candidato {
    margin: 0 var(--spacing-lg) var(--spacing-md);
}

.dados-candidato h4 {
    font-family: var(--font-primary);
    font-weight: 600;
    color: var(--color-secondary);
    margin-bottom: var(--spacing-sm);
}

.dados-candidato p {
    font-family: var(--font-primary);
    margin: 0;
    line-height: 1.6;
}

/* Seção de Formulário */
.form-section {
    margin: 0 var(--spacing-lg) var(--spacing-md);
}

.form-section h4 {
    font-family: var(--font-primary);
    font-weight: 600;
    color: var(--color-secondary);
    margin-bottom: var(--spacing-sm);
}

/* Botão Voltar */
.btn-voltar {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-xs) var(--spacing-sm);
    font-family: var(--font-primary);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-muted);
    background-color: transparent;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.btn-voltar:hover {
    background-color: var(--color-background);
    color: var(--color-secondary);
    border-color: var(--color-secondary);
}

.btn-voltar:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* Botão Enviar/Submeter */
.btn-enviar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md) var(--spacing-xl);
    font-family: var(--font-primary);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text-on-primary);
    background-color: var(--color-primary);
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.btn-enviar:hover {
    background-color: #D4942F;
    border-color: #D4942F;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(230, 164, 68, 0.35);
}

.btn-enviar:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}

.btn-enviar:disabled {
    background-color: var(--color-border);
    border-color: var(--color-border);
    color: var(--color-text-muted);
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Container de ações (botões centralizados) */
.actions-container {
    display: flex;
    justify-content: center;
    gap: var(--spacing-md);
    margin-top: var(--spacing-lg);
    flex-wrap: wrap;
}

/* Alertas e mensagens de salvamento */
.save-message {
    color: var(--color-success);
    font-family: var(--font-primary);
    font-size: 0.875rem;
    display: none;
}

/* Responsividade Módulo Revisão */
@media (min-width: 768px) {
    .cabecalho h2 {
        font-size: 1.5rem;
    }

    .cabecalho h3 {
        font-size: 1.25rem;
    }

    .cabecalho h4 {
        font-size: 1.125rem;
    }

    .nav-revisao .btn-nav {
        padding: var(--spacing-sm) var(--spacing-lg);
        max-width: 120px;
    }
}


/* ==========================================================================
   Print Styles - Final
   ========================================================================== */

@media print {
    body {
        background: none !important;
        color: #000000;
    }

    form,
    .consulta-form {
        box-shadow: none;
        border: 1px solid #000000;
    }

    .btnConsultar,
    button {
        background-color: #CCCCCC !important;
        color: #000000 !important;
    }

    header,
    .nav-revisao,
    .btn-sair {
        display: none;
    }
}
