/* Alvo Revalida - barra do topo igual em todas as páginas (mesmo visual da página inicial) + botão de tema.
   Carregado por getCustomColorsCSS() em includes/site-config.php (20/10/2026). */
.header:not(.sf2-header) .header-inner{height:50px!important;min-height:0!important}
.header:not(.sf2-header) .header-logo{width:30px!important;height:30px!important}
.header:not(.sf2-header) #mainNav{align-items:center!important}
.header:not(.sf2-header) #mainNav > a{padding:6px 9px!important;font-size:15.5px!important}
.header:not(.sf2-header) .user-info{transform:scale(.85);transform-origin:right center}
.header:not(.sf2-header) #mainNav > a,.header:not(.sf2-header) #mainNav button{font-weight:500!important;letter-spacing:0!important}
.header:not(.sf2-header) #mainNav > a.active,.header:not(.sf2-header) #mainNav > a[aria-current]{font-weight:600!important}
#nfx-nav{top:50px!important}
#nfx-nav a{font-weight:500!important}
#nfx-nav .grp b{font-weight:600!important}
.header:not(.sf2-header) .user-info .btn-ghost{color:#cbd5e1!important;font-weight:500!important}
.header:not(.sf2-header) .user-info .btn-ghost:hover{color:#fff!important}

/* botão modo escuro / claro */
.tm-btn{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#e2e8f0;display:inline-grid;place-items:center;cursor:pointer;padding:0;margin-right:6px;transition:background .2s,transform .2s}
.tm-btn:hover{background:rgba(255,255,255,.14);transform:rotate(-12deg)}
.tm-btn:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}
.tm-btn svg{width:17px;height:17px}
.tm-btn .tm-sol{display:none}
html[data-tema="escuro"] .tm-btn .tm-sol{display:block}
html[data-tema="escuro"] .tm-btn .tm-lua{display:none}

/* modo escuro: base (o resto é ajustado por public/js/alvo-tema.js) */
html[data-tema="escuro"]{color-scheme:dark;background:#0b1220}
html[data-tema="escuro"] body{background-color:#0b1220}
html.tm-wait body{opacity:0}
html[data-tema="escuro"] ::placeholder{color:#7b8aa3}

/* barra de progresso nos cards de prova (index.php) */
.exam-prog{margin:0 0 10px}
.exam-card-meta:has(+ .exam-prog){display:none!important}
.exam-prog-tx{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12.5px;color:#64748b;margin-bottom:5px}
.exam-prog-tx b{font-size:12px;color:#94a3b8;font-variant-numeric:tabular-nums}
.exam-prog-bar{height:5px;border-radius:99px;background:#e2e8f0;overflow:hidden}
.exam-prog-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#06b6d4,#2563eb);transition:width .6s ease}
.exam-prog.and .exam-prog-tx span{color:#0e7490;font-weight:600}.exam-prog.and .exam-prog-tx b{color:#0e7490}
.exam-prog.fim .exam-prog-bar i{background:linear-gradient(90deg,#10b981,#059669)}
.exam-prog.fim .exam-prog-tx span{color:#047857;font-weight:600}.exam-prog.fim .exam-prog-tx b{color:#047857}

/* cards de prova todos do mesmo tamanho (título até 3 linhas, descrição até 2; barra e botão no rodapé) */
.exams-grid .exam-card{height:342px!important;display:flex!important;flex-direction:column!important}
.exams-grid .exam-card .exam-card-image{flex:none}
.exams-grid .exam-card .exam-card-body{flex:1 1 auto!important;display:flex!important;flex-direction:column!important;min-height:0;overflow:hidden}
.exams-grid .exam-card .exam-card-title{display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:none}
.exams-grid .exam-card .exam-card-description{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:none}
.exams-grid .exam-card .exam-card-body>.exam-card-meta,.exams-grid .exam-card .exam-card-body>.exam-prog{margin-top:auto!important}
.exams-grid .exam-card .exam-card-body>.btn{flex:none;margin-top:0!important}
.exams-grid .exam-card .exam-card-badge{max-width:calc(100% - 16px);letter-spacing:.2px!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;font-size:10px!important;padding:4px 10px 4px 22px!important;line-height:1.3!important}
/* filtro "Treine por tema" (index.php): a lista abria cortada pelo overflow do topo */
.hero:has(.dropdown-custom.open){overflow:visible!important;z-index:60}
