@import url('https://barra.sistema.gov.br/v1/fonts/rawline/css/rawline.css');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css');

/* ============================================================
   ASES Web — Gov.br Design System Refined Alignment
   ============================================================ */

/* Global Typography */
body {
    font-family: 'Rawline', 'Raleway', sans-serif !important;
    font-size: 18px !important; /* Increased scale from 16px */
    line-height: 1.6;
    color: #333;
}

/* Fix for VLibras and general mobile lock */
[vw] {
    z-index: 2000 !important;
}

[vw].enabled {
    pointer-events: auto !important;
}

h1, h2, h3, h4, h5, h6 {
    font-family: Rawline, sans-serif !important;
}

h1 { font-size: 36px; font-weight: 700; }
h2 { font-size: 28px; font-weight: 700; }
h3 { font-size: 22px; font-weight: 600; }

/* Content Padding */
.ases-main-content {
    padding: 32px 0;
    min-height: 60vh;
}

/* --- High Contrast (Pure Black) --- */
html.contraste, html.contraste body, 
html.contraste .custom-govbr-header, 
html.contraste .custom-navbar,
html.contraste .ases-main-content,
html.contraste .portal-footer,
html.contraste .footer-wrapper {
    background-color: #000 !important;
    background-image: none !important;
    color: #fff !important;
}

html.contraste a, html.contraste span, html.contraste p, html.contraste div, 
html.contraste h1, html.contraste h2, html.contraste h3, html.contraste h4, 
html.contraste li, html.contraste td, html.contraste label {
    color: #fff !important;
    text-decoration: underline !important;
}

html.contraste .icon-btn i, html.contraste .fas, html.contraste .fa {
    color: #fff !important;
    filter: brightness(0) invert(1);
}

html.contraste .custom-navbar, html.contraste .custom-navbar .nav-item a {
    border: 1px solid #fff;
}

html.contraste input, html.contraste textarea, html.contraste select {
    background: #000 !important;
    color: #fff !important;
    border: 1px solid #fff !important;
}

html.contraste button, html.contraste .br-button {
    background: #000 !important;
    color: #fff !important;
    border: 2px solid #fff !important;
}

/* Custom Header Refinement */
/* Official GovBR Top Bar (Barra Govbr) Styles */
.br-header {
    background: #fff;
    font-family: 'rawline', sans-serif;
    color: #333;
    border-bottom: 1px solid #e1e5e8; /* Default subtle border */
}

.br-header .header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 8px;
    padding-bottom: 8px;
    font-size: 14px;
}

.br-header .header-logo {
    display: flex;
    align-items: center;
}

.br-header .header-logo img {
    height: 32px;
}

.br-header .br-divider.vertical {
    width: 1px;
    height: 32px;
    background: #e1e5e8;
    margin: 0 16px;
}

.br-header .nome-orgao {
    color: #555;
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    line-height: 1.2;
}

.br-header .header-actions {
    display: flex;
    align-items: center;
}

.br-header .links-governo {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 16px;
}
 
/* Fix for header dropdowns on mobile (Acesso Rápido and Funcionalidades) */
@media (max-width: 991px) {
    .br-header .header-actions .dropdown .br-list {
        right: 0 !important;
        left: auto !important;
        position: absolute !important;
        top: 100% !important;
        margin-top: 10px;
        min-width: 280px;
        z-index: 10000;
        box-shadow: 0 8px 16px rgba(0,0,0,0.3) !important;
        display: none;
        pointer-events: none;
    }
 
    /* Use both class names Gov.br uses for active states */
    .br-header .header-actions .dropdown.show .br-list,
    .br-header .header-actions .dropdown.active .br-list,
    .br-header .header-actions .dropdown.open .br-list {
        display: block !important;
        pointer-events: auto !important;
    }
    
    .br-header, .br-header .container-lg, .br-header .header-top {
        overflow: visible !important;
    }
}

html {
    height: auto;
    min-height: 100%;
}

body {
    height: auto;
    min-height: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

/* Footer — seguir espaçamentos nativos do Design System */
.br-footer .logo {
    padding: 0 0 var(--spacing-scale-6x) 0;
}

.br-footer .logo img {
    max-height: 48px;
    max-width: 180px;
    filter: brightness(0) invert(1);
}

/* Ícone Acesso à Informação - garantir visibilidade no fundo escuro */
.br-footer .assigns .footer-acesso-info {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.br-footer .assigns .footer-acesso-info:hover {
    opacity: 0.8;
}

@media (max-width: 991px) {
    .br-footer .logo {
        padding-left: 0;
    }
}

.br-header .links-governo a {
    color: #1351b4;
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
}

.br-header .links-governo a:hover {
    text-decoration: underline;
}

.br-header .wrapper {
    display: flex;
    gap: 8px;
    align-items: center;
}

.br-header .br-button.circle {
    background: #f2f2f2;
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1351b4;
    cursor: pointer;
    font-size: 14px;
    transition: background 0.2s;
}

.br-header .br-button.circle:hover {
    background: #e1e5e8;
}

.br-header .header-sign-in .br-sign-in {
    background: #1351b4;
    color: #fff;
    border: none;
    border-radius: 20px;
    padding: 6px 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    cursor: pointer;
    font-size: 14px;
    margin-left: 16px;
    transition: background 0.2s;
}

.br-header .header-sign-in .br-sign-in:hover {
    background: #0c326f;
}

.br-header .header-sign-in .br-sign-in .login-text::after {
    content: 'Entrar com gov.br';
}

/* Header Sticky - Apenas Desktop */
@media (min-width: 992px) {
    .br-header[data-sticky], .br-header.is-sticky {
        position: sticky !important;
        top: 0;
        z-index: 1000 !important;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }
}

/* Forçar breadcrumb relativo no mobile para evitar quebra de scroll */
@media (max-width: 991px) {
    .br-breadcrumb, .br-breadcrumb .crumb-list {
        position: relative !important;
        top: auto !important;
        margin-top: 0 !important;
    }
}

/* Manter titulo sem quebra de tela apenas na rolagem */
.br-header.compact .header-title,
.br-header.is-sticky .header-title {
    white-space: nowrap !important;
}

/* Fix jump when elements hide on sticky */
.br-header.is-sticky .header-top {
    height: 0;
    overflow: hidden;
    padding-top: 0;
    padding-bottom: 0;
}

/* Main Title Area (underneath the Barra Govbr) */
.main .header-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    box-sizing: border-box;
}

.main .site-name-wrapper {
    display: flex;
    align-items: center;
    gap: 20px;
}

.main .ico-navegacao {
    background: transparent;
    border: none;
    color: #1351b4;
    font-size: 24px;
    cursor: pointer;
    padding: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background-color 0.2s;
}

.main .ico-navegacao:hover {
    background-color: #f2f2f2;
}

.main .site-name a {
    font-size: 24px;
    font-weight: 500;
    color: #333;
    text-decoration: none;
    line-height: 1.2;
}

.main .site-name a:hover {
    text-decoration: underline;
}

/* GovBR specific Search input replica */
.govbr-busca-header .aa-Form {
    display: flex;
    align-items: center;
    background-color: #f2f2f2;
    border-radius: 4px;
    padding: 4px 12px;
    width: 280px;
    border: 1px solid transparent;
}

.govbr-busca-header .aa-Form:focus-within {
    background-color: #fff;
    border-color: #1351b4;
    box-shadow: 0 0 0 1px #1351b4;
}

.govbr-busca-header .aa-InputWrapper {
    flex-grow: 1;
}

.govbr-busca-header .aa-Input {
    border: none;
    background: transparent;
    width: 100%;
    font-size: 14px;
    font-style: italic;
    color: #555;
    padding: 8px 0;
    outline: none;
}

.govbr-busca-header .aa-SubmitButton {
    background: transparent;
    border: none;
    color: #1351b4;
    font-size: 16px;
    cursor: pointer;
    padding: 8px;
}

/* Transparent Overlay for Dropdown */
.sidebar-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: transparent;
    z-index: 1500;
    display: none;
}

.sidebar-overlay.active {
    display: block;
}

/* Dropdown Navigation Menu */
.govbr-sidebar-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 300px;
    background-color: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 2000;
    display: none;
    flex-direction: column;
    border-radius: 4px;
    border: 1px solid #e1e5e8;
    margin-top: 8px; /* Gap below header anchor */
}

/* Fix br-menu z-index and height so it doesnt cover the display flow */
.br-menu#main-navigation {
    position: absolute;
    left: -9999px; /* Hide initially outside viewport to prevent blank space */
    z-index: 10000;
}
.br-menu#main-navigation.active {
    left: 0;
}
.br-menu#main-navigation .menu-container {
     position: fixed;
     top: 0;
     left: -9999px; /* Fix: hide fixed element since it ignores parent coordinates */
     height: 100vh;
     z-index: 10001;
}
.br-menu#main-navigation.active .menu-container {
     left: 0; /* Bring back to viewport when active */
}

.br-header .header-bottom .header-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.br-header .header-bottom .header-info .header-subtitle {
     font-size: 13px;
     font-weight: 400;
     color: #555;
     margin-top: 2px;
}

.govbr-sidebar-menu.active {
    display: flex;
}

.govbr-sidebar-menu .nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.govbr-sidebar-menu .nav-list .nav-item {
    border-bottom: 1px solid #e0e0e0;
}

.govbr-sidebar-menu .nav-list .nav-item:last-child {
    border-bottom: none;
}

.govbr-sidebar-menu .nav-list a {
    display: block;
    padding: 12px 20px;
    color: #1351b4;
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    transition: background-color 0.2s;
}

.govbr-sidebar-menu .nav-list a:hover {
    background-color: #f2f2f2;
    text-decoration: underline;
}

.govbr-sidebar-menu .nav-list a:hover {
    background-color: #f2f2f2;
    text-decoration: underline;
    color: #0c326f;
}

/* High Contrast Override for Sidebar */
html.contraste .govbr-sidebar-menu {
    background-color: #000 !important;
    box-shadow: 2px 0 12px rgba(255,255,255,0.2);
}
html.contraste .govbr-sidebar-menu .sidebar-header {
    background-color: #111 !important;
    border-bottom-color: #fff !important;
}
html.contraste .govbr-sidebar-menu .sidebar-title,
html.contraste .govbr-sidebar-menu .nav-list a {
    color: #fff !important;
}
html.contraste .govbr-sidebar-menu .nav-item {
    border-bottom-color: #555 !important;
}
html.contraste .govbr-sidebar-menu .nav-list a:hover {
    background-color: rgba(255,255,255,0.1);
}

/* Breadcrumbs */
.br-breadcrumb, .br-breadcrumb .crumb-list {
    margin-bottom: 0;
    margin-left: 0;
    padding-left: 0;
}

.br-breadcrumb .crumb.home i.fa-home {
    color: var(--blue-warm-vivid-70, #1351b4) !important;
}

.ases-breadcrumbs a {
    color: #1351b4;
    text-decoration: none;
}

.ases-breadcrumbs .fas {
    margin: 0 8px;
    font-size: 10px;
    color: #666;
}

/* Sitemap hierarchical lists (mapa.jsp) */
#mapaSite {
    list-style: none;
    padding: 0;
    text-align: left !important; /* Force left alignment */
}

#mapaSite > li {
    margin-bottom: 32px;
    text-align: left !important;
}

#mapaSite h3 {
    font-size: 24px; /* Increased */
    font-weight: 700;
    color: #0c326f;
    border-bottom: 2px solid #e0e0e0;
    padding-bottom: 12px;
    margin-bottom: 16px;
    text-align: left !important;
}

#mapaSite ul {
    list-style: disc;
    padding-left: 32px;
    text-align: left !important;
}

#mapaSite li.linhasMapa {
    margin-bottom: 12px;
    text-align: left !important;
}

#mapaSite a {
    color: #1351b4;
    text-decoration: none;
    font-size: 18px; /* Increased */
}


#mapaSite a:hover {
    text-decoration: underline;
}


a.oculto {
    display: inline-block;
    font-size: 0;
    text-indent: -20000px;
}

/* --- Seções de Conteúdo --- */
.ases-section {
    background: var(--bg-color, #fff);
    border-radius: 4px;
    padding: 24px;
    margin-bottom: 24px;
    border: 1px solid var(--gray-10, #e0e0e0);
}

.outstanding-header {
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--blue-warm-vivid-70, #1351b4);
}

.outstanding-title {
    font-family: 'Rawline', 'Open Sans', sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--blue-warm-vivid-80, #0c326f);
    margin: 0;
}

.hr_linhaDupla {
    border: none;
    border-top: 2px solid var(--gray-10, #e0e0e0);
    margin: 24px 0;
}

/* --- Tabelas de Avaliação (Resumo eMAG) --- */
#tabelaErros,
#tabelaErros2,
.tabelaCriterioSucesso {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Rawline', 'Open Sans', sans-serif;
    font-size: 0.875rem;
    margin-bottom: 16px;
}

#tabelaErros caption,
#tabelaErros2 caption,
.tabelaCriterioSucesso caption {
    font-weight: 600;
    text-align: left;
    padding: 8px 12px;
    font-size: 1rem;
    color: var(--blue-warm-vivid-80, #0c326f);
}

.topo, .topo2, .topoCriterios {
    background-color: var(--blue-warm-vivid-70, #1351b4);
    color: #fff;
    font-weight: 600;
    padding: 10px 12px;
    text-align: left;
    border: 1px solid var(--blue-warm-vivid-70, #1351b4);
}

.celula, .celulaCriterios {
    padding: 10px 12px;
    border: 1px solid var(--gray-10, #e0e0e0);
    vertical-align: top;
}

.celula a, .celulaCriterios a {
    color: var(--blue-warm-vivid-70, #1351b4);
    text-decoration: underline;
}

.celula a:hover, .celulaCriterios a:hover {
    color: var(--blue-warm-vivid-80, #0c326f);
}

/* Alternância de cor nas linhas */
#tabelaErros tbody tr:nth-child(even),
#tabelaErros2 tbody tr:nth-child(even),
.tabelaCriterioSucesso tbody tr:nth-child(even) {
    background-color: var(--gray-2, #f8f8f8);
}

/* --- Tabelas da listaResultado (Erros/Avisos) --- */
table[class$="_error"],
table[class$="_warning"] {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Rawline', 'Open Sans', sans-serif;
    font-size: 0.875rem;
    margin-bottom: 16px;
}

table[class$="_error"] caption,
table[class$="_warning"] caption {
    font-weight: 600;
    text-align: left;
    padding: 8px 12px;
    font-size: 1rem;
}

.imgErro, .imgErro span {
    color: var(--red-vivid-50, #e52207);
}

.imgAviso, .imgAviso span {
    color: var(--gold-vivid-30, #ffbe2e);
}

table[class$="_error"] caption {
    color: var(--red-vivid-50, #e52207);
    border-left: 4px solid var(--red-vivid-50, #e52207);
}

table[class$="_warning"] caption {
    color: var(--gold-vivid-50, #b38c00);
    border-left: 4px solid var(--gold-vivid-30, #ffbe2e);
}

/* --- Score Badge --- */
#block {
    text-align: center;
    margin: 16px 0;
}

#webaxscore {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    text-align: center;
    box-sizing: border-box;
    color: #fff;
    font-family: 'Rawline', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.03em;
    line-height: 1.3;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
    border: 4px solid rgba(255, 255, 255, 0.3);
}

#webaxscore strong {
    display: block;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 2px;
}

#webaxscore span {
    display: block;
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1;
    margin-top: 2px;
}

/* Score colors — Gov.br palette with better contrast */
.scoreB_bom {
    background: linear-gradient(135deg, #168821 0%, #1a9e28 100%);
    color: #fff;
}
.scoreB_razoavel {
    background: linear-gradient(135deg, #e5b800 0%, #ffcd07 100%);
    color: #1a1a1a;
    border-color: rgba(0, 0, 0, 0.1);
}
.scoreB_razoavel strong,
.scoreB_razoavel span {
    color: #1a1a1a;
}
.scoreB_ruim {
    background: linear-gradient(135deg, #e07000 0%, #ff8c00 100%);
    color: #fff;
}
.scoreB_pessimo {
    background: linear-gradient(135deg, #c41d04 0%, #e52207 100%);
    color: #fff;
}

/* Legenda */
#legenda {
    margin: 16px 0;
    border: none;
    width: auto;
    float: none;
    padding: 0;
}

#legenda label {
    font-weight: 600;
    display: block;
    margin-bottom: 8px;
}

#legenda ul {
    list-style: none;
    padding: 0;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

.legenda img {
    height: 32px;
}

/* --- Layout Score + Legenda + Tabela (Flexbox) --- */
.avaliacao-resumo-layout {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: flex-start;
    margin: 16px 0;
}

.avaliacao-resumo-layout .avaliacao-score-col {
    flex: 0 0 auto;
    text-align: center;
}

.avaliacao-resumo-layout .avaliacao-tabela-col {
    flex: 1 1 400px;
    min-width: 0;
}

/* --- Tabs de Avaliação (Seções eMAG) --- */
.containerAvaliacao {
    margin-top: 16px;
}

.avaliacao-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: 2px solid var(--blue-warm-vivid-70, #1351b4);
    margin-bottom: 0;
}

.avaliacao-tab-btn {
    padding: 10px 20px;
    background: var(--gray-2, #f8f8f8);
    border: 1px solid var(--gray-10, #e0e0e0);
    border-bottom: none;
    border-radius: 4px 4px 0 0;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--blue-warm-vivid-70, #1351b4);
    transition: background-color 0.2s;
    font-family: 'Rawline', 'Open Sans', sans-serif;
}

.avaliacao-tab-btn:hover {
    background: var(--gray-5, #f0f0f0);
}

.avaliacao-tab-btn.active {
    background: var(--blue-warm-vivid-70, #1351b4);
    color: #fff;
    border-color: var(--blue-warm-vivid-70, #1351b4);
}

.avaliacao-tab-content {
    display: none;
    padding: 16px;
    border: 1px solid var(--gray-10, #e0e0e0);
    border-top: none;
    border-radius: 0 0 4px 4px;
}

.avaliacao-tab-content.active {
    display: block;
}

/* Legacy CSS-only tab support (keep for backwards compat) */
.tabAvaliacao {
    margin-bottom: 0;
}

.tabAvaliacao input[type="radio"] {
    display: none;
}

.rariosAvaliacao {
    display: inline-block;
    padding: 10px 20px;
    background: var(--gray-2, #f8f8f8);
    border: 1px solid var(--gray-10, #e0e0e0);
    border-radius: 4px 4px 0 0;
    cursor: pointer;
    font-weight: 600;
    color: var(--blue-warm-vivid-70, #1351b4);
    transition: background-color 0.2s;
}

.rariosAvaliacao:hover {
    background: var(--gray-5, #f0f0f0);
}

.tabAvaliacao input[type="radio"]:checked + .rariosAvaliacao {
    background: var(--blue-warm-vivid-70, #1351b4);
    color: #fff;
    border-color: var(--blue-warm-vivid-70, #1351b4);
}

.contenteudoAvaliacao {
    display: none;
    padding: 16px;
    border: 1px solid var(--gray-10, #e0e0e0);
    border-top: none;
    border-radius: 0 0 4px 4px;
}

.tabAvaliacao input[type="radio"]:checked ~ .contenteudoAvaliacao {
    display: block;
}

/* --- Collapse Box (Código Avaliado) --- */
.codigo-collapse {
    border: 1px solid var(--gray-10, #e0e0e0);
    border-radius: 4px;
    margin: 16px 0;
}

.codigo-collapse summary {
    padding: 12px 16px;
    cursor: pointer;
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--blue-warm-vivid-80, #0c326f);
    background: var(--gray-2, #f8f8f8);
    border-radius: 4px;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: background 0.2s;
}

.codigo-collapse summary::-webkit-details-marker {
    display: none;
}

.codigo-collapse summary::after {
    content: '\f078';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.75rem;
    transition: transform 0.3s;
    color: var(--blue-warm-vivid-70, #1351b4);
}

.codigo-collapse[open] summary::after {
    transform: rotate(180deg);
}

.codigo-collapse summary:hover {
    background: var(--gray-5, #f0f0f0);
}

.codigo-collapse .codigo-collapse-body {
    padding: 0;
}

.codigo-collapse .codigo-collapse-body pre {
    margin: 0;
    border: none;
    border-top: 1px solid var(--gray-10, #e0e0e0);
    border-radius: 0 0 4px 4px;
    max-height: 500px;
    overflow: auto;
}

/* --- Responsive Table Wrapper --- */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.table-responsive table {
    min-width: 500px;
}

/* --- Back Button --- */
.btn-voltar {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 20px;
    background-color: transparent;
    color: var(--blue-warm-vivid-70, #1351b4);
    border: 1px solid var(--blue-warm-vivid-70, #1351b4);
    border-radius: 100em;
    font-weight: 600;
    font-size: 0.875rem;
    font-family: 'Rawline', 'Open Sans', sans-serif;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s;
    margin-bottom: 16px;
}

.btn-voltar:hover {
    background-color: var(--blue-warm-vivid-70, #1351b4);
    color: #fff;
}

.btn-voltar i {
    font-size: 0.75rem;
}

/* --- Export / Formulários --- */
fieldset {
    border: 1px solid var(--gray-10, #e0e0e0);
    border-radius: 4px;
    padding: 16px;
}

fieldset legend {
    font-weight: 600;
    color: var(--blue-warm-vivid-80, #0c326f);
    padding: 0 8px;
}

input.submit,
input[type="submit"] {
    background-color: var(--blue-warm-vivid-70, #1351b4);
    color: #fff;
    border: none;
    padding: 10px 24px;
    border-radius: 100em;
    font-weight: 600;
    cursor: pointer;
    font-family: 'Rawline', 'Open Sans', sans-serif;
    transition: background-color 0.2s;
}

input.submit:hover,
input[type="submit"]:hover {
    background-color: var(--blue-warm-vivid-80, #0c326f);
}

/* --- Código Fonte (pre/code) --- */
pre {
    background: var(--gray-2, #f8f8f8);
    border: 1px solid var(--gray-10, #e0e0e0);
    border-radius: 4px;
    padding: 16px;
    overflow-x: auto;
    font-size: 0.8125rem;
    line-height: 1.6;
    color: #333;
}

code {
    font-family: 'Courier New', monospace;
    color: #333;
}

pre a {
    color: var(--blue-warm-vivid-70, #1351b4);
}

/* --- Critérios de Sucesso --- */
.subtitulo {
    color: var(--blue-warm-vivid-70, #1351b4);
    font-size: 1.1rem;
    margin-top: 24px;
    margin-bottom: 8px;
}

.criterios {
    font-size: 0.9375rem;
    line-height: 1.6;
    margin-bottom: 16px;
}

.indice0 { width: 50%; }
.indice1 { width: 15%; }
.indice2 { width: 35%; }

.indiceAvaliar0 { width: 50%; }
.indiceAvaliar1 { width: 15%; }

.indiceDetalhes0 { width: 15%; }
.indiceDetalhes1 { width: 50%; }

/* --- Perguntas Frequentes --- */
.perguntasRespostas {
    list-style: none;
    padding: 0;
}

.perguntasRespostas li {
    padding: 10px 0;
    border-bottom: 1px solid var(--gray-10, #e0e0e0);
    line-height: 1.6;
}

.perguntasRespostas a {
    color: var(--blue-warm-vivid-70, #1351b4);
}

/* --- Mapa do Site --- */
#mapaSite {
    list-style: none;
    padding: 0;
}

#mapaSite h3 {
    color: var(--blue-warm-vivid-70, #1351b4);
    font-size: 1.1rem;
    margin-bottom: 8px;
}

.linhasMapa {
    padding: 6px 0 6px 16px;
}

.linhasMapa a {
    color: var(--blue-warm-vivid-70, #1351b4);
    text-decoration: underline;
}

/* --- Alertas/Warnings --- */
.warning {
    color: #805600;
    background-color: #fff3cd;
    border: 1px solid #ffecb5;
    border-left: 4px solid #ffbe2e;
    padding: 12px 16px;
    margin: 10px 0;
    border-radius: 4px;
}

/* --- Links gerais --- */
.sublinharLink {
    color: var(--blue-warm-vivid-70, #1351b4);
    text-decoration: underline;
}

.sublinharLink:hover {
    color: var(--blue-warm-vivid-80, #0c326f);
}

/* --- Ocultar nota quando vazia --- */
.sem_nota {
    display: none;
}

/* --- Loading --- */
.imgLoading {
    padding-top: 30px;
    height: 105px;
    font-size: 14px;
    text-align: center;
}

/* --- Responsivo --- */
@media (max-width: 768px) {
    .ases-main-content {
        padding: 16px 12px;
    }

    .ases-section {
        padding: 16px;
    }

    #webaxscore {
        width: 110px;
        height: 110px;
        padding-top: 20px;
    }

    .outstanding-title {
        font-size: 1.1rem;
    }
}

/* --- Alto Contraste (preservado) --- */
.contraste,
.contraste .br-header,
.contraste .br-footer,
.contraste .ases-main-content,
.contraste .ases-section,
.contraste div,
.contraste ul,
.contraste p {
    background: #000 !important;
    color: #fff !important;
}

.contraste a {
    color: #fc0 !important;
}

.contraste a:hover {
    text-decoration: underline !important;
}

.contraste img {
    border: 2px solid #fc0 !important;
    padding: 5px;
}

.contraste .topo,
.contraste .topo2,
.contraste .topoCriterios {
    background-color: #333 !important;
    color: #fc0 !important;
    border-color: #fc0 !important;
}

.contraste .celula,
.contraste .celulaCriterios {
    border-color: #555 !important;
}

.contraste input[type="submit"],
.contraste input.submit {
    background-color: #161616 !important;
    color: #fc0 !important;
    border: 1px solid #fc0;
}

.contraste pre,
.contraste code {
    background-color: #161616 !important;
    color: #fc0 !important;
}

.contraste .br-header {
    border-bottom: 1px solid #fc0 !important;
}

.contraste .br-footer {
    border-top: 1px solid #fc0 !important;
}

/* ==========================================================================
   PORTAL FOOTER REFERENCE STYLES (Overrides Govbr-DS)
   ========================================================================== */
.portal-footer {
    background-color: #071D41;
    color: #fff;
    font-family: 'Rawline', sans-serif;
    padding: 2.5rem 0 0 0;
    margin-top: 2rem;
}

.portal-footer .container-lg {
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    flex-direction: column;
}

.portal-footer .govbr-logo {
    width: 120px;
    height: 40px;
    background: url('https://www.gov.br/governodigital/++theme++padrao_govbr/img/govbr.png') no-repeat left center;
    background-size: contain;
    filter: brightness(0) invert(1);
    margin-bottom: 2rem;
}

/* --- Footer Navigation Grid (Desktop: horizontal, Mobile: vertical collapsible) --- */
.portal-footer .footer-nav-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-bottom: 2rem;
}

.portal-footer .footer-col {
    flex: 1 1 0;
    min-width: 160px;
    padding-right: 1.5rem;
    margin-bottom: 1.5rem;
}

.portal-footer .footer-col:last-child {
    padding-right: 0;
}

/* --- Theme Titles (larger, bold, uppercase) --- */
.portal-footer .footer-col-title {
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.875rem;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.2);
    line-height: 1.4;
    letter-spacing: 0.02em;
}

.portal-footer .footer-col-title:hover {
    text-decoration: underline;
    color: #fff;
}

/* Hide collapse icon on desktop */
.portal-footer .footer-collapse-icon {
    display: none;
}

/* --- Sub-links (tight line-height, two-lines style) --- */
.portal-footer .footer-col-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.portal-footer .footer-col-links li {
    margin-bottom: 0.125rem;
}

.portal-footer .footer-col-links a {
    color: #fff;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 400;
    opacity: 0.85;
    line-height: 1.35;
    display: block;
    padding: 0.15rem 0;
}

.portal-footer .footer-col-links a:hover {
    text-decoration: underline;
    opacity: 1;
}

/* --- LGPD / Cookies --- */
.portal-footer .lgpd-reset-cookies {
    margin-bottom: 2rem;
}

.portal-footer .reset-cookies {
    color: #fff;
    text-decoration: underline;
    font-size: 0.875rem;
}

/* --- Social / Logos row --- */
.portal-footer .redes-e-logos {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    border-top: 1px solid rgba(255,255,255,0.2);
    padding-top: 2rem;
}

.portal-footer .redes-sociais .titulo {
    font-weight: 700;
    font-size: 0.875rem;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.portal-footer .portal-redes {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 1rem;
}

.portal-footer .portal-redes a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 2rem;
    height: 2rem;
    background: transparent;
    color: transparent;
    text-indent: -9999px;
    position: relative;
    border: 1px solid rgba(255,255,255,0.5);
    border-radius: 50%;
}

.portal-footer .portal-redes a:hover {
    background-color: rgba(255,255,255,0.1);
}

.portal-footer .portalredes-instagram a::before {
    content: '\f16d';
    font-family: 'Font Awesome 5 Free', 'Font Awesome 5 Brands';
    color: #fff;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    text-indent: 0;
    font-weight: 900;
}

.portal-footer .portalredes-twitter a::before {
    content: '\E61B';
    font-family: 'Font Awesome 5 Free', 'Font Awesome 5 Brands';
    color: #fff;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    text-indent: 0;
    font-weight: 900;
}

.portal-footer .logo-acesso-footer {
    display: block;
}

/* --- Copyright bar --- */
.portal-footer .texto-copyright {
    text-align: center;
    padding: 1rem;
    font-size: 0.875rem;
    color: rgba(255,255,255,0.8);
    background-color: #04162B;
    margin-top: 2rem;
}

.portal-footer .texto-copyright a {
    color: #fff;
    text-decoration: underline;
    font-weight: 700;
}

/* --- MOBILE / TABLET: Vertical collapsible list (<=991px) --- */
@media (max-width: 991px) {
    .portal-footer .footer-nav-grid {
        flex-direction: column;
        gap: 0;
    }

    .portal-footer .footer-col {
        min-width: 100%;
        padding-right: 0;
        margin-bottom: 0;
        border-bottom: 1px solid rgba(255,255,255,0.15);
    }

    .portal-footer .footer-col:last-child {
        border-bottom: none;
    }

    .portal-footer .footer-col-title {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 1rem 0;
        margin-bottom: 0;
        border-bottom: none;
        cursor: pointer;
    }

    .portal-footer .footer-collapse-icon {
        display: inline-block;
        font-size: 0.875rem;
        transition: transform 0.3s ease;
        margin-left: 0.5rem;
        flex-shrink: 0;
    }

    .portal-footer .footer-col-links {
        padding-bottom: 0.75rem;
    }

    .portal-footer .footer-col-links li {
        margin-bottom: 0.25rem;
    }

    .portal-footer .footer-col-links a {
        padding: 0.35rem 0 0.35rem 0.5rem;
    }

    .portal-footer .redes-e-logos {
        flex-direction: column;
        align-items: flex-start;
        gap: 2rem;
    }
}
