/* ALVO PRF · design system "Operacional / Rodovia".
   Tokens → base → peças → telas. Tudo usa as custom properties abaixo; ver #styleguide. */

/* ───────── fontes (locais, funcionam offline) ───────── */
@font-face{font-family:"Barlow Condensed";font-weight:600;font-display:swap;src:url(../fonts/barlow-condensed-600.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-700.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:800;font-display:swap;src:url(../fonts/barlow-condensed-800.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-sans-400.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/ibm-plex-sans-400i.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-sans-500.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-display:swap;src:url(../fonts/ibm-plex-sans-600.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-display:swap;src:url(../fonts/jetbrains-mono-500.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:700;font-display:swap;src:url(../fonts/jetbrains-mono-700.woff2) format("woff2")}

/* ───────── tokens ───────── */
:root{
  --asfalto-0:#07080A;--asfalto-1:#0E1013;--asfalto-2:#15181D;--asfalto-3:#1D2128;--linha:#2A2F37;
  --texto:#F2F4F7;--texto-2:#A7AEB9;--texto-3:#7C8491;
  --sinal:#FFC21A;--sinal-tinta:#1A1300;--sinal-txt:#FFC21A;
  --azul-prf:#1F4FD8;--azul-claro:#7C9CF8;--azul-noite:#0A1F4D;--placa-verde:#0E6B3A;
  --acerto:#2FBF71;--erro:#FF5A4E;--atencao:#FF8A1F;
  --acerto-f:rgba(47,191,113,.12);--erro-f:rgba(255,90,78,.12);--atencao-f:rgba(255,138,31,.10);--sinal-f:rgba(255,194,26,.14);--azul-f:rgba(31,79,216,.18);
  --marca-texto:rgba(255,194,26,.26);
  --luz:inset 0 1px 0 rgba(255,255,255,.06);
  --sombra:0 1px 2px rgba(0,0,0,.4),0 12px 32px -12px rgba(0,0,0,.6);
  --vidro:rgba(9,10,13,.72);
  --r-xl:24px;--r-md:14px;--r-sm:12px;--r-pil:999px;
  --f-cond:"Barlow Condensed","Arial Narrow",sans-serif;--f:"IBM Plex Sans",system-ui,-apple-system,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --t12:.75rem;--t14:.875rem;--t16:1rem;--t18:1.125rem;--t22:1.375rem;--t28:1.75rem;--t36:2.25rem;--t48:3rem;
  --fs-leitura:17px;
  --nav-h:64px;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);
  --mola:cubic-bezier(.2,.9,.25,1.15);--saida:cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;
}
:root[data-theme="light"]{
  --asfalto-0:#F2F0EB;--asfalto-1:#FFFFFF;--asfalto-2:#F8F7F4;--asfalto-3:#EFEDE7;--linha:#DEDAD2;
  --texto:#121417;--texto-2:#4A505A;--texto-3:#646B76;
  --sinal:#E5A800;--sinal-tinta:#1A1300;--sinal-txt:#8A6400;
  --azul-claro:#1F4FD8;--acerto:#17804A;--erro:#D63A2F;--atencao:#C25E00;
  --acerto-f:rgba(23,128,74,.10);--erro-f:rgba(214,58,47,.09);--atencao-f:rgba(194,94,0,.09);--sinal-f:rgba(229,168,0,.16);--azul-f:rgba(31,79,216,.09);
  --marca-texto:rgba(229,168,0,.34);
  --luz:inset 0 1px 0 rgba(255,255,255,.9);
  --sombra:0 1px 2px rgba(18,20,23,.06),0 12px 28px -14px rgba(18,20,23,.18);
  --vidro:rgba(250,249,246,.78);
  color-scheme:light;
}

/* ───────── base ───────── */
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--asfalto-0);scroll-padding-top:calc(64px + var(--sat))}
html{overscroll-behavior-y:none}
body{margin:0;font:400 var(--t16)/1.5 var(--f);color:var(--texto);background:var(--asfalto-0);min-height:100dvh;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
/* ruído leve: tira o aspecto chapado das superfícies */
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
:root[data-theme="light"] body::before{opacity:.05;filter:invert(1)}
body.bloq{overflow:hidden}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
h1,h2,h3,.cond{font-family:var(--f-cond);font-weight:800;letter-spacing:-.01em;line-height:1.02}
h1{font-size:var(--t36)}h2{font-size:var(--t28)}h3{font-size:var(--t22);font-weight:700}
b,strong{font-weight:600}
a{color:var(--azul-claro)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0;touch-action:manipulation}
img,svg{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--sinal);outline-offset:2px;border-radius:6px}
::selection{background:var(--marca-texto)}
.mono,.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:-.02em}
.t2{color:var(--texto-2)}.t3,.muted{color:var(--texto-3)}.small{font-size:var(--t14)}.mini{font-size:var(--t12)}
.center{text-align:center}.grow{flex:1;min-width:0}
.mt{margin-top:12px}.mt2{margin-top:20px}.mb{margin-bottom:12px}.mb2{margin-bottom:20px}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.sb{justify-content:space-between}.row.nw{flex-wrap:nowrap}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
[hidden]{display:none!important}
.ic{width:1.25em;height:1.25em;flex:none;display:inline-block;vertical-align:-.22em}
.ok-t{color:var(--acerto)}.bad-t{color:var(--erro)}.warn-t{color:var(--atencao)}.sinal-t{color:var(--sinal-txt)}.azul-t{color:var(--azul-claro)}
/* rótulo condensado: usado com parcimônia (placas, painéis) */
.k{font:700 var(--t14)/1 var(--f-cond);letter-spacing:.09em;text-transform:uppercase;color:var(--texto-3)}
.k.sinal{color:var(--sinal-txt)}.k.azul{color:var(--azul-claro)}
.km-mono{font:500 var(--t12)/1.3 var(--f-mono);letter-spacing:0;color:var(--texto-3)}

/* ───────── estrutura ───────── */
.wrap{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:8px 20px calc(var(--nav-h) + var(--sab) + 24px)}
body.imersivo .wrap{padding-bottom:calc(var(--sab) + 108px)}
body.imersivo .top,body.imersivo .nav{display:none}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:calc(var(--sat) + 10px) 20px 10px;max-width:560px;margin:0 auto;transition:background .2s,border-color .2s;border-bottom:1px solid transparent}
.top.rolou{background:var(--vidro);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);border-color:var(--linha)}
.marca{display:flex;align-items:center;gap:9px;font:800 1.5rem/1 var(--f-cond);letter-spacing:.01em;color:var(--texto)}
.marca svg{width:30px;height:30px;color:var(--sinal)}
.marca b{font-weight:800;color:var(--sinal-txt)}
.top .sp{flex:1}
.km-pill{display:flex;align-items:center;gap:7px;height:44px;padding:0 13px;border:1px solid var(--linha);border-radius:var(--r-sm);background:var(--asfalto-1);box-shadow:var(--luz);font:500 var(--t16)/1 var(--f-mono);font-variant-numeric:tabular-nums}
.km-pill .ic{color:var(--sinal-txt);width:18px;height:18px}.km-pill small{font:400 var(--t14)/1 var(--f);color:var(--texto-3)}
.ibtn{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid var(--linha);border-radius:var(--r-sm);background:var(--asfalto-1);box-shadow:var(--luz);color:var(--texto);transition:transform .25s var(--mola),background .15s}
.ibtn .ic{width:20px;height:20px}
.ibtn.nu{border-color:transparent;background:none;box-shadow:none;color:var(--texto-2)}
.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--texto-3);flex:none}
.sync-dot.ok{background:var(--acerto)}.sync-dot.pend{background:var(--sinal)}.sync-dot.erro{background:var(--erro)}.sync-dot.off{background:var(--atencao)}
.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:700 var(--t18)/1 var(--f-cond);color:#fff;flex:none;border:1px solid rgba(255,255,255,.14)}
.avatar.g{width:56px;height:56px;font-size:var(--t28)}

/* barra inferior: vidro fosco, nada aparece por baixo */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:0 8px var(--sab);background:var(--vidro);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);border-top:1px solid var(--linha)}
.nav-in{position:relative;display:grid;grid-template-columns:repeat(6,1fr);max-width:560px;margin:0 auto;height:var(--nav-h)}
.nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:44px;color:var(--texto-3);font:500 var(--t12)/1 var(--f);transition:color .2s,transform .25s var(--mola)}
.nav button .ic{width:24px;height:24px}
.nav button .i-f{display:none}
.nav button.on{color:var(--texto);font-weight:600}
.nav button.on .i-b{display:none}.nav button.on .i-f{display:block}
.nav-ind{position:absolute;top:-1px;left:0;width:calc(100% / 6);height:3px;display:grid;place-items:center;pointer-events:none;transform:translateX(calc(var(--i,0) * 100%));transition:transform .42s var(--mola)}
.nav-marca{display:none}
.nav-ind::before{content:"";width:32px;height:3px;border-radius:0 0 3px 3px;background:var(--sinal);box-shadow:0 2px 10px rgba(255,194,26,.45)}
.badge-n{position:absolute;top:8px;left:calc(50% + 6px);min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--erro);color:#fff;font:700 10px/17px var(--f-mono);text-align:center}

/* ───────── botões ───────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--r-sm);border:1px solid var(--linha);background:var(--asfalto-2);box-shadow:var(--luz);color:var(--texto);font:600 var(--t16)/1.1 var(--f);text-decoration:none;transition:transform .28s var(--mola),background .15s,border-color .15s,opacity .15s;user-select:none;-webkit-user-select:none}
.btn .ic{width:18px;height:18px}
.btn.pri{background:var(--sinal);border-color:transparent;color:var(--sinal-tinta);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 20px -8px rgba(255,194,26,.5)}
.btn.big{min-height:56px;font:700 var(--t22)/1 var(--f-cond);letter-spacing:.01em;border-radius:var(--r-md)}
.btn.sm{min-height:36px;padding:0 12px;font-size:var(--t14);border-radius:10px}
.btn.ghost{background:none;border-color:transparent;box-shadow:none;color:var(--texto-2)}
.btn.block{display:flex;width:100%}
.btn.ok{background:var(--acerto-f);border-color:var(--acerto);color:var(--acerto)}
.btn.bad{background:var(--erro-f);border-color:var(--erro);color:var(--erro)}
.btn.linha{background:none;box-shadow:none}
.btn:disabled,.btn[disabled]{opacity:.38;pointer-events:none}
.lnk{color:var(--texto-2);font-weight:500;min-height:44px;padding:0 14px;display:inline-flex;align-items:center;gap:6px}
/* toque: encolhe e volta com mola. Nada de :hover grudado no celular. */
.btn:active,.ibtn:active,.toca:active,.nav button:active{transform:scale(.97);transition-duration:.06s}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:var(--asfalto-3)}.btn.pri:hover{background:color-mix(in srgb,var(--sinal) 90%,#fff)}.btn.ghost:hover{background:var(--asfalto-2)}
  .ibtn:hover{background:var(--asfalto-3)}.toca:hover{background:var(--asfalto-3)}
}
.toca{transition:transform .28s var(--mola),background .15s;cursor:pointer}

/* ───────── superfícies ───────── */
.card{position:relative;background:var(--asfalto-2);border:1px solid var(--linha);border-radius:var(--r-xl);box-shadow:var(--luz);padding:20px;margin-bottom:16px}
.card.in{border-radius:var(--r-md);padding:14px 16px;background:var(--asfalto-1);margin-bottom:10px}
.card.flat{background:none;box-shadow:none;border-style:dashed}
.card h2{font-size:var(--t22);font-weight:700}.card h3{font-size:var(--t18);font-family:var(--f);font-weight:600;letter-spacing:0;line-height:1.3;margin-bottom:8px}
.sep{height:1px;background:var(--linha);margin:16px 0}
.sec-h{font:700 var(--t22)/1.1 var(--f-cond);margin:28px 0 12px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.sec-h small{font:400 var(--t14)/1 var(--f);color:var(--texto-3)}
.pg-h{margin:14px 0 20px}
.pg-h .data{color:var(--texto-2);font-size:var(--t16);margin-bottom:2px}
.pg-h h1{font-size:2.5rem}
.pg-h p{color:var(--texto-2);margin-top:8px}
.volta{display:inline-flex;align-items:center;gap:4px;min-height:44px;margin:0 0 4px -6px;padding:0 10px 0 4px;color:var(--texto-2);font-weight:500}
.volta .ic{width:18px;height:18px}

/* placas de rodovia: azul (próxima sessão) e verde (próxima parada) */
.placa{position:relative;border-radius:var(--r-xl);padding:26px 26px 22px;margin-bottom:16px;color:#fff;box-shadow:var(--sombra);overflow:hidden;isolation:isolate}
.placa::before{content:"";position:absolute;inset:6px;border:1.5px solid rgba(255,255,255,.92);border-radius:18px;pointer-events:none;z-index:-1}
.placa::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.07) 46%,transparent 58%);pointer-events:none}
.placa.azul{background:linear-gradient(160deg,#0D2A66,var(--azul-noite) 55%,#081a40)}
.placa.verde{background:linear-gradient(160deg,#128045,var(--placa-verde) 60%,#0a5730);padding:20px 24px}
.placa .k{color:#FFC21A}.placa .sub{color:#B9C7EE;font-weight:500}
.placa h2{font-size:var(--t36);margin:8px 0 18px;text-wrap:balance}
.placa .resumo{color:#DCE4F8;font-size:var(--t16);margin:14px 0 16px}
.placa .lnk{color:#B9C7EE}
.br-escudo{display:inline-grid;place-items:center;height:26px;padding:0 9px;border-radius:7px;background:#fff;color:#0b1a12;font:800 var(--t16)/1 var(--f-cond);letter-spacing:.02em}
.placa.verde h2{font-size:var(--t36);margin:10px 0 0;letter-spacing:.005em}
.placa.verde .km{font:500 var(--t22)/1 var(--f-mono);font-variant-numeric:tabular-nums}

/* faixa de rodovia = barra de progresso */
.faixa{position:relative;height:8px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--asfalto-3) 0 11px,transparent 11px 17px);overflow:hidden}
.faixa>i{position:absolute;inset:0 auto 0 0;width:var(--p,0%);background:var(--sinal);border-radius:2px;transform-origin:left;animation:desenha .9s var(--saida) both}
.faixa.fina{height:5px}.faixa.lisa{background:var(--asfalto-3);border-radius:3px}.faixa.lisa>i{border-radius:3px}
.faixa.cheia>i::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.75) 50%,transparent 70%);animation:reflexo 1.6s .5s ease-out both}
.faixa.verde>i{background:var(--acerto)}.faixa.azul>i{background:var(--azul-claro)}
@keyframes desenha{from{transform:scaleX(0)}}
@keyframes reflexo{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
/* os 5 blocos da sessão */
.seg5{display:flex;gap:4px}
.seg5>span{height:7px;border-radius:2px;background:var(--asfalto-3);position:relative;overflow:hidden}
.seg5>span:nth-child(1){--c:#6C8CF5}.seg5>span:nth-child(2){--c:#FFC21A}.seg5>span:nth-child(3){--c:#F2F4F7}.seg5>span:nth-child(4){--c:#FF8A1F}.seg5>span:nth-child(5){--c:#2FBF71}
.seg5.cor>span{background:var(--c)}
.seg5>span>i{position:absolute;inset:0 auto 0 0;width:var(--p,0%);background:var(--c);transition:width .6s var(--saida)}
:root[data-theme="light"] .seg5:not(.cor)>span:nth-child(3){--c:#4A505A}
.seg5-l{display:flex;gap:4px;margin-top:7px;font-size:var(--t14);color:#B9C7EE}
.seg5-l span{white-space:nowrap;overflow:hidden}
/* incidência: três barras de sinal */
.inc{display:inline-flex;align-items:flex-end;gap:3px;height:20px}
.inc i{width:6px;border-radius:1.5px;background:currentColor;opacity:.25}.inc i:nth-child(1){height:9px}.inc i:nth-child(2){height:14px}.inc i:nth-child(3){height:20px}
.inc[data-n="1"] i:nth-child(-n+1),.inc[data-n="2"] i:nth-child(-n+2),.inc[data-n="3"] i,.inc[data-n="4"] i,.inc[data-n="5"] i{opacity:1}
.inc.p{height:13px;gap:2px}.inc.p i{width:4px}.inc.p i:nth-child(1){height:6px}.inc.p i:nth-child(2){height:9.5px}.inc.p i:nth-child(3){height:13px}

/* linha de métricas com divisores (substitui grades de cartões iguais) */
.mline{display:flex;border:1px solid var(--linha);border-radius:var(--r-md);background:var(--asfalto-1);box-shadow:var(--luz)}
.mline>div{flex:1;padding:12px 6px;text-align:center;border-left:1px solid var(--linha);min-width:0}
.mline>div:first-child{border-left:0}
.mline b{display:block;font:500 var(--t18)/1.1 var(--f-mono);font-variant-numeric:tabular-nums}
.mline>div>span{display:block;margin-top:5px;font-size:var(--t12);color:var(--texto-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi{padding:14px;border:1px solid var(--linha);border-radius:var(--r-md);background:var(--asfalto-1)}
.kpi b{display:block;font:500 var(--t22)/1.1 var(--f-mono);font-variant-numeric:tabular-nums}.kpi>span{font-size:var(--t12);color:var(--texto-3)}

/* listas */
.lista{list-style:none;padding:0;margin:0}
.lista>li,.li{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 0;border-top:1px solid var(--linha)}
.lista>li:first-child{border-top:0}
.li-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--asfalto-3);color:var(--texto-2);flex:none}
.li-ic .ic{width:22px;height:22px}
.li b{display:block;font-weight:600}.li small,.lista small{display:block;color:var(--texto-3);font-size:var(--t14);margin-top:1px}
.chev{color:var(--texto-3);flex:none}.chev .ic{width:16px;height:16px}
.grupo{background:var(--asfalto-2);border:1px solid var(--linha);border-radius:var(--r-xl);box-shadow:var(--luz);padding:4px 16px;margin-bottom:16px}
.grupo .li{width:100%;text-align:left}
ul.list{list-style:none;padding:0;margin:0}ul.list>li{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 0;border-top:1px solid var(--linha)}ul.list>li:first-child{border-top:0}
.click{cursor:pointer}

/* chips: poucos, e só quando são estado ou filtro removível */
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--linha);background:var(--asfalto-1);font:500 var(--t12)/1 var(--f);color:var(--texto-2);white-space:nowrap}
.chip.ok{color:var(--acerto);border-color:transparent;background:var(--acerto-f)}.chip.bad{color:var(--erro);border-color:transparent;background:var(--erro-f)}
.chip.warn{color:var(--atencao);border-color:transparent;background:var(--atencao-f)}.chip.acc{color:var(--sinal-txt);border-color:transparent;background:var(--sinal-f)}.chip.blue{color:var(--azul-claro);border-color:transparent;background:var(--azul-f)}
.chip.x{height:36px;padding:0 6px 0 12px;font-size:var(--t14);color:var(--texto)}
.chip.x button{display:grid;place-items:center;width:28px;height:28px;color:var(--texto-3)}.chip.x .ic{width:14px;height:14px}
.selo{display:inline-flex;align-items:center;gap:4px;font:500 var(--t12)/1 var(--f-mono);color:var(--atencao);border:1px dashed currentColor;border-radius:6px;padding:4px 6px}
.selo .ic{width:13px;height:13px}

/* toggle: amarelo = ligado, sem ambiguidade */
.tg{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:52px;width:100%;text-align:left;border-top:1px solid var(--linha)}
.tg:first-child{border-top:0}
.tg small{display:block;color:var(--texto-3);font-size:var(--t14)}
.tg input{position:absolute;opacity:0;pointer-events:none}
.tg i{position:relative;flex:none;width:50px;height:30px;border-radius:999px;background:var(--asfalto-3);border:1px solid var(--linha);transition:background .2s,border-color .2s}
.tg i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--texto-3);transition:transform .3s var(--mola),background .2s}
.tg input:checked+i{background:var(--sinal);border-color:var(--sinal)}.tg input:checked+i::after{transform:translateX(20px);background:var(--sinal-tinta)}
.tg input:focus-visible+i{outline:2px solid var(--sinal);outline-offset:2px}
label.chk{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:10px 0;cursor:pointer}
label.chk input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--sinal);flex:none}

/* segmented control com indicador deslizante e fade nas bordas */
.seg{position:relative;margin:0 -20px 20px;padding:0 20px;overflow-x:auto;scrollbar-width:none;-webkit-mask:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent);mask:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent)}
.seg::-webkit-scrollbar{display:none}
.seg-in{position:relative;display:inline-flex;gap:2px;padding:4px;border-radius:var(--r-md);background:var(--asfalto-1);border:1px solid var(--linha);min-width:100%}
.seg-in button{position:relative;z-index:1;flex:1;min-height:38px;padding:0 10px;border-radius:10px;font:500 var(--t14)/1 var(--f);color:var(--texto-3);white-space:nowrap;transition:color .2s}
.seg-in button.on{color:var(--texto);font-weight:600}
.seg-ind{position:absolute;top:4px;bottom:4px;left:0;width:0;border-radius:10px;background:var(--asfalto-3);border:1px solid var(--linha);box-shadow:var(--luz);transition:transform .38s var(--mola),width .38s var(--mola)}
/* abas sublinhadas (aula) */
.abas{display:flex;gap:26px;margin:0 -20px 20px;padding:0 20px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--linha);position:sticky;top:0;z-index:5;background:var(--asfalto-0)}
.abas::-webkit-scrollbar{display:none}
.abas button{position:relative;min-height:48px;font-size:var(--t18);color:var(--texto-3);white-space:nowrap}
.abas button.on{color:var(--texto);font-weight:600}
.abas button.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2.5px;background:var(--sinal);border-radius:2px}

/* formulários */
label.f{display:block;font-size:var(--t14);color:var(--texto-2);font-weight:500}
label.f>input,label.f>select,label.f>textarea,.inp{display:block;width:100%;margin-top:6px;min-height:48px;padding:10px 14px;border-radius:var(--r-sm);border:1px solid var(--linha);background:var(--asfalto-1);color:var(--texto);font-size:var(--t16);transition:border-color .15s,box-shadow .15s}
label.f>textarea,textarea.inp{min-height:96px;line-height:1.5;resize:vertical}
select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%237C8491'%3E%3Cpath d='M216.5 104.5l-80 80a12 12 0 0 1-17 0l-80-80a12 12 0 0 1 17-17L128 159l71.500-71.500a12 12 0 0 1 17 17z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:14px!important;padding-right:36px!important}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sinal);box-shadow:0 0 0 3px var(--sinal-f)}
input[type=file].inp{padding:11px}
table.t{width:100%;border-collapse:collapse;font-size:var(--t14)}
table.t th{text-align:left;font-weight:500;color:var(--texto-3);padding:8px 10px 8px 0;border-bottom:1px solid var(--linha);white-space:nowrap}
table.t td{padding:10px 10px 10px 0;border-bottom:1px solid var(--linha);font-variant-numeric:tabular-nums}
table.t tr:last-child td{border-bottom:0}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px}
/* tabela de conteúdo (quadros, comentários): tabela de verdade, rolável no celular */
.tbl-w{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--linha);border-radius:var(--r-md);margin:14px 0;background:var(--asfalto-1)}
.tbl{width:100%;min-width:max-content;border-collapse:collapse;font-size:.94em;line-height:1.4}
.tbl th{position:sticky;top:0;text-align:left;padding:10px 14px;background:var(--asfalto-3);font:700 var(--t14)/1.2 var(--f-cond);letter-spacing:.06em;text-transform:uppercase;color:var(--texto-2);white-space:nowrap}
.tbl td{padding:10px 14px;border-top:1px solid var(--linha);vertical-align:top;max-width:260px;min-width:96px}
.tbl td:first-child{font-weight:600}
.tbl-t{font:700 var(--t18)/1.2 var(--f-cond);margin:20px 0 -4px}

/* folha (bottom sheet), toast, celebração */
.modal-bg{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center}
.modal{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--asfalto-1);border:1px solid var(--linha);border-bottom:0;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:6px 20px calc(var(--sab) + 24px);box-shadow:0 -20px 60px rgba(0,0,0,.5);overscroll-behavior:contain}
.modal h2{font-size:var(--t28);margin-bottom:6px}
.grab-area{padding:8px 0 12px;display:grid;place-items:center;touch-action:none}.grab{width:40px;height:4px;border-radius:2px;background:var(--linha)}
@media (min-width:744px){.modal-bg{align-items:center}.modal{border-radius:var(--r-xl);border-bottom:1px solid var(--linha);max-height:86dvh}.grab-area{visibility:hidden;padding:6px}}
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + var(--sab) + 14px);z-index:80;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:min(92vw,480px);padding:12px 14px 12px 16px;border-radius:var(--r-md);background:var(--asfalto-3);border:1px solid var(--linha);box-shadow:var(--sombra),var(--luz);font-size:var(--t14);animation:toast-in .4s var(--mola) both}
body.imersivo .toast{bottom:calc(var(--sab) + 96px)}
.toast .ic{color:var(--sinal-txt)}.toast button{color:var(--sinal-txt);font-weight:600;min-height:32px;padding:0 6px;white-space:nowrap}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,14px) scale(.96)}}
.celeb{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:some .25s both}
.celeb-card{width:100%;max-width:360px;text-align:center;padding:28px 24px 22px;border-radius:var(--r-xl);background:var(--asfalto-1);border:1px solid var(--linha);box-shadow:var(--sombra),var(--luz)}
.celeb-card h2{font-size:var(--t36);margin:14px 0 6px}
.celeb-card .xp{display:inline-block;margin:14px 0 4px;padding:7px 12px;border-radius:10px;background:var(--sinal);color:var(--sinal-tinta);font:700 var(--t16)/1 var(--f-mono)}
.medalha{position:relative;display:grid;place-items:center;width:104px;height:104px;margin:6px auto 0;border-radius:50%;background:radial-gradient(circle at 35% 28%,#3a3f49,var(--asfalto-2) 70%);border:1px solid var(--linha);color:var(--sinal);box-shadow:0 0 0 6px var(--asfalto-1),0 0 0 7px var(--sinal),0 18px 40px -10px rgba(255,194,26,.35);overflow:hidden}
.medalha .ic{width:52px;height:52px}
.medalha::after{content:"";position:absolute;inset:-40%;background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.5) 50%,transparent 58%);animation:reflexo 1.3s .35s ease-out both}
@keyframes some{from{opacity:0}}
/* skeleton com brilho */
.sk{border-radius:var(--r-md);background:linear-gradient(100deg,var(--asfalto-2) 30%,var(--asfalto-3) 50%,var(--asfalto-2) 70%);background-size:300% 100%;animation:shimmer 1.3s linear infinite;min-height:18px}
.sk.xl{height:220px;border-radius:var(--r-xl);margin-bottom:16px}.sk.md{height:120px;margin-bottom:16px;border-radius:var(--r-xl)}.sk.tx{height:16px;margin:10px 0;border-radius:6px}
@keyframes shimmer{from{background-position:100% 0}to{background-position:-100% 0}}
.empty{padding:36px 16px;text-align:center;color:var(--texto-3)}
.vazio{text-align:center;padding:32px 20px}.vazio .ic{width:40px;height:40px;color:var(--texto-3);margin:0 auto 12px}.vazio b{display:block;font-size:var(--t18)}.vazio p{color:var(--texto-3);margin-top:4px;font-size:var(--t14)}

/* entrada de listas: stagger */
@keyframes sobe{from{opacity:0;transform:translateY(8px)}}
.st>*{animation:sobe .5s var(--saida) both;animation-delay:calc(var(--i,0) * 36ms)}
.km-voa{position:fixed;z-index:95;pointer-events:none;padding:5px 9px;border-radius:9px;background:var(--sinal);color:var(--sinal-tinta);font:700 var(--t14)/1 var(--f-mono)}

/* ───────── HOJE ───────── */
.painel-g{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px;align-items:center;margin-top:10px}
.gauge{position:relative}
.gauge svg{width:100%;overflow:visible}
.gauge .tr{stroke:var(--asfalto-3)}.gauge .ar{stroke:var(--sinal);transition:stroke-dashoffset 1.1s var(--saida)}
.gauge .tk{stroke:var(--asfalto-2);stroke-width:3}
.gauge-c{position:absolute;left:0;right:0;bottom:2px;text-align:center}
.gauge-c b{display:block;font:500 2.4rem/1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.gauge-c>span{font-size:var(--t14);color:var(--texto-3)}
.gauge.bateu .ar{filter:drop-shadow(0 0 8px rgba(255,194,26,.5))}
.inst{display:grid;gap:13px}
.inst>div{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:center}
.inst .ic{width:24px;height:24px}
.inst b{display:block;font:500 var(--t22)/1 var(--f-mono);font-variant-numeric:tabular-nums}.inst b small{color:var(--texto-3);font-size:1em}
.inst>div>div>span{display:block;margin-top:3px;font-size:var(--t14);color:var(--texto-3)}
.semana{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:20px}
.semana div{text-align:center;font-size:var(--t14);color:var(--texto-3)}
.semana i{display:block;height:8px;margin-bottom:9px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--asfalto-3) 0 8px,transparent 8px 12px)}
.semana .on i{background:var(--sinal)}.semana .est i{background:var(--azul-claro)}.semana .falta i{background:var(--erro);opacity:.5}
.semana .hoje{color:var(--texto);font-weight:600}
.mis{display:flex;align-items:center;gap:14px;min-height:60px;padding:8px 0;border-top:1px solid var(--linha)}
.mis-c{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;border:1.5px solid var(--linha);background:var(--asfalto-1);flex:none;color:transparent;transition:background .3s,border-color .3s}
.mis-c .ic{width:16px;height:16px;transform:scale(0);transition:transform .45s var(--mola) .1s}
.mis.ok .mis-c{background:var(--acerto);border-color:var(--acerto);color:#06210f}.mis.ok .mis-c .ic{transform:none}
.mis.ok .mis-t{color:var(--texto-3);text-decoration:line-through}
.mis-t{font-size:var(--t18);font-weight:500}.mis .faixa{margin-top:8px}
.mis-v{font:500 var(--t14)/1 var(--f-mono);color:var(--texto-3);font-variant-numeric:tabular-nums}
.peg-dia q{display:block;quotes:none;font-size:var(--t18);line-height:1.45;margin:10px 0 14px}
.br-rodape{display:flex;justify-content:space-between;gap:12px;margin:10px 2px 24px;font-size:var(--t14);color:var(--texto-2)}
.medalhas-l{display:flex;gap:8px;margin-top:12px}
.med-p{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--asfalto-1);border:1px solid var(--sinal);color:var(--sinal-txt)}.med-p .ic{width:22px;height:22px}
.med-p.off{border-color:var(--linha);color:var(--texto-3);opacity:.6}

/* ───────── ESTUDAR ───────── */
.bloco-h{display:flex;align-items:baseline;gap:10px;margin:26px 0 10px;font:700 var(--t14)/1 var(--f-cond);letter-spacing:.09em;text-transform:uppercase;color:var(--texto-3)}
.bloco-h::after{content:"";flex:1;height:1px;background:var(--linha)}
.disc{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;width:100%;padding:14px 0;text-align:left;border-top:1px solid var(--linha)}
.disc:first-child{border-top:0}
.disc-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--asfalto-3);color:var(--dc,var(--texto-2))}.disc-ic .ic{width:26px;height:26px}
.disc b{font-size:var(--t18);font-weight:600;display:block;line-height:1.2}
.disc .faixa{margin:9px 0 7px}
.disc small{font-size:var(--t14);color:var(--texto-3)}
.dhero{padding:4px 0 8px}
.dhero .disc-ic{width:56px;height:56px;border-radius:16px}.dhero .disc-ic .ic{width:32px;height:32px}
.dhero h1{margin:14px 0 6px;text-wrap:balance}
.tp{display:grid;grid-template-columns:24px 1fr auto;gap:12px;align-items:center;width:100%;min-height:56px;padding:10px 0;text-align:left;border-top:1px solid var(--linha)}
.tp:first-child{border-top:0}
.tp .ic.st{width:22px;height:22px}
.tp b{font-weight:500;line-height:1.3;display:block}.tp small{display:block;font:500 var(--t12)/1.4 var(--f-mono);color:var(--texto-3);margin-top:2px}
.st-0{color:var(--texto-3)}.st-1{color:var(--azul-claro)}.st-2{color:var(--sinal-txt)}.st-3{color:var(--acerto)}
.legenda{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:var(--t14);color:var(--texto-2)}.legenda span{display:inline-flex;align-items:center;gap:6px}

/* ───────── QUESTÃO ───────── */
.qtop{display:flex;align-items:center;gap:14px;margin:6px 0 14px}
.qtop .grow{min-width:0}
.qtop-l{display:flex;justify-content:space-between;gap:10px;font-size:var(--t14);color:var(--texto-2);margin-bottom:9px}
.qplacar{display:flex;align-items:center;gap:18px;font:500 var(--t16)/1 var(--f-mono);margin-bottom:18px}
.qplacar span{display:inline-flex;align-items:center;gap:6px}.qplacar .ic{width:16px;height:16px}
.qplacar .liq{color:var(--texto-2);font-family:var(--f);font-weight:400}.qplacar .liq b{color:var(--texto);font:700 var(--t16)/1 var(--f-mono)}
.qmeta{font:500 var(--t12)/1.5 var(--f-mono);color:var(--texto-3);text-transform:none;letter-spacing:0}
.qtopico{font:700 var(--t18)/1.2 var(--f-cond);color:var(--sinal-txt);margin:4px 0 12px}
.qtxt{font-size:calc(var(--fs-leitura) + 2px);line-height:1.5;margin-bottom:22px;text-wrap:pretty}
.ce{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ce-b{display:flex;align-items:center;justify-content:center;gap:10px;min-height:64px;border-radius:var(--r-md);border:1.5px solid var(--linha);background:var(--asfalto-1);box-shadow:var(--luz);font:800 var(--t28)/1 var(--f-cond);letter-spacing:.03em;color:var(--texto);transition:transform .28s var(--mola),border-color .2s,background .2s,color .2s,box-shadow .2s}
.ce-b:active{transform:scale(.97)}
.ce-b .ic{width:22px;height:22px}
.ce-b.off{color:var(--texto-3);box-shadow:none}
.ce-b.on.ok{border-color:var(--acerto);background:var(--acerto-f);box-shadow:0 0 0 4px var(--acerto-f)}.ce-b.on.ok .ic{color:var(--acerto)}
.ce-b.on.bad{border-color:var(--erro);background:var(--erro-f);box-shadow:0 0 0 4px var(--erro-f)}.ce-b.on.bad .ic{color:var(--erro)}
.ce-b.gab{border-color:var(--acerto);border-style:dashed}
.ce-b.sel{border-color:var(--sinal);background:var(--sinal-f)}
.qaux{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.fb{margin-top:18px;border:1px solid var(--linha);border-radius:var(--r-xl);background:var(--asfalto-2);overflow:hidden;box-shadow:var(--luz)}
.fb-h{display:flex;align-items:center;gap:12px;padding:16px 18px}
.fb-h.ok{background:var(--acerto-f)}.fb-h.bad{background:var(--erro-f)}.fb-h.br{background:var(--asfalto-3)}
.fb-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;flex:none;color:#06210f;background:var(--acerto)}
.fb-h.bad .fb-ic{background:var(--erro);color:#2b0703}.fb-h.br .fb-ic{background:var(--texto-3);color:var(--asfalto-0)}
.fb-ic .ic{width:18px;height:18px}
.fb-h b{display:block;font:800 var(--t22)/1 var(--f-cond)}.fb-h small{font-size:var(--t14);color:var(--texto-2)}.fb-h small b{display:inline;font:600 1em var(--f);color:var(--texto)}
.km-g{margin-left:auto;padding:8px 11px;border-radius:9px;background:var(--sinal);color:var(--sinal-tinta);font:700 var(--t14)/1 var(--f-mono);white-space:nowrap}
.km-g.zero{background:var(--asfalto-3);color:var(--texto-2)}
.fb-b{padding:16px 18px 18px}
.fb-b .k{margin-bottom:8px}
.fb-b .por{font-size:var(--fs-leitura);line-height:1.55;white-space:pre-line}
.com-l{margin:8px 0 0;padding-left:18px}.com-l li{margin:4px 0}
.lei{margin-top:14px;padding:14px 16px;border:1px solid var(--linha);border-radius:var(--r-md);background:var(--asfalto-1)}
.lei-k{display:flex;align-items:center;gap:8px;font:500 var(--t12)/1.3 var(--f-mono);color:var(--azul-claro);letter-spacing:.02em;text-transform:uppercase;margin-bottom:8px}
.lei-k .ic{width:16px;height:16px}.lei-k .grow{text-transform:none}
.lei p,.lei{font-size:calc(var(--fs-leitura) - 1px);line-height:1.6;color:var(--texto-2)}
.lei p+p{margin-top:4px}
mark{background:var(--marca-texto);color:var(--texto);padding:1px 3px;margin:0 -1px;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.peg{display:grid;grid-template-columns:24px 1fr;gap:12px;margin-top:14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--atencao) 45%,transparent);border-radius:var(--r-md);background:var(--atencao-f)}
.peg .ic{width:22px;height:22px;color:var(--atencao)}
.peg b.t{display:block;font:700 var(--t18)/1.1 var(--f-cond);color:var(--atencao);margin-bottom:3px}
.peg ul{margin:0;padding-left:18px}.peg li{margin:5px 0}
.barra-fixa{position:fixed;left:0;right:0;bottom:0;z-index:35;padding:12px 20px calc(var(--sab) + 14px);background:var(--vidro);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);border-top:1px solid var(--linha)}
.barra-fixa>div{display:flex;gap:10px;max-width:520px;margin:0 auto}
.barra-fixa .btn.pri{flex:1}
.texto-base{margin-top:10px;padding:14px 16px;border-radius:var(--r-md);background:var(--asfalto-1);border:1px solid var(--linha);font-size:calc(var(--fs-leitura) - 1px);line-height:1.6;white-space:pre-wrap;color:var(--texto-2);max-height:46dvh;overflow:auto}
.texto-base:has(p){white-space:normal}
.texto-base p{margin:0 0 .75em;text-indent:1.4em;text-align:left;hyphens:auto}
.texto-base p.tb-tit{text-indent:0;font-weight:600;color:var(--texto)}
.texto-base p:last-child{margin-bottom:0}
.texto-base p.tb-fonte{text-indent:0;text-align:right;font-size:.86em;color:var(--texto-3)}
.texto-base p.tb-cmd{text-indent:0;text-align:left;font-style:italic;color:var(--texto-3);border-top:1px solid var(--linha);padding-top:.6em}
.texto-base p.tb-lin{text-indent:0;text-align:left;font-family:var(--mono,monospace);font-size:.92em}
.enun{margin:10px 0 8px;padding:12px 14px;border-radius:var(--r-md);background:var(--asfalto-1);border:1px solid var(--linha)}
.enun p{margin:4px 0 0;line-height:1.55}
.enun .k,.prop .k{font-size:12px;letter-spacing:.02em;color:var(--texto-3);text-transform:uppercase}
.prop{margin:8px 0 4px;padding:10px 14px;border-left:3px solid var(--sinal);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--asfalto-2,var(--asfalto-1))}
.prop .qtxt{margin:4px 0 0}
details.tb{margin-bottom:14px}details.tb summary{min-height:44px;display:flex;align-items:center;gap:8px;font-weight:500;color:var(--azul-claro);cursor:pointer;list-style:none}details.tb summary::-webkit-details-marker{display:none}
.qimg{max-width:100%;border-radius:var(--r-md);margin:0 0 14px;background:#fff}
.item-text{font-size:var(--fs-leitura);line-height:1.55}
.filtros-at{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 16px}
.opts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 18px}
.opt{min-height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--linha);background:var(--asfalto-2);font-size:var(--t14);font-weight:500;color:var(--texto-2);transition:transform .28s var(--mola)}
.opt.on{background:var(--sinal);border-color:var(--sinal);color:var(--sinal-tinta);font-weight:600}
.termo{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}
.termo b{display:block;font:500 var(--t28)/1 var(--f-mono);margin:4px 0 8px}

/* ───────── AULA ───────── */
.aula-h{margin:8px 0 6px}
.aula-h h1{font-size:var(--t48);margin:6px 0 8px;text-wrap:balance}
.aula-sub{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--texto-2);font-size:var(--t16)}
.leitura{font-size:var(--fs-leitura);line-height:1.55}
.leitura p{margin:0 0 .85em;text-wrap:pretty}
.leitura ul,.leitura ol{margin:0 0 .85em;padding-left:1.25em}.leitura li{margin:.35em 0}.leitura li::marker{color:var(--texto-3)}
.leitura h2{font-size:var(--t28);margin:34px 0 14px;text-wrap:balance}
.leitura h4{font:600 1em/1.3 var(--f);margin:1.2em 0 .4em}
.leitura blockquote{margin:0 0 .85em;padding:10px 14px;border-left:3px solid var(--sinal);background:var(--sinal-f);border-radius:0 10px 10px 0}
.leitura code{font:500 .9em var(--f-mono);background:var(--asfalto-3);padding:1px 5px;border-radius:5px}
.leitura s{color:var(--texto-3)}
.ess{padding:20px 22px;border-radius:var(--r-xl);background:var(--asfalto-2);border:1px solid var(--linha);box-shadow:var(--luz);margin-bottom:8px}
.ess ol{list-style:none;padding:0;margin:12px 0 0}
.ess li{display:grid;grid-template-columns:46px 1fr;gap:4px;padding:7px 0;font-size:var(--fs-leitura);line-height:1.4}
.ess li>span{font:500 .92em/1.5 var(--f-mono);color:var(--texto-3)}
.ess li.n0{grid-template-columns:18px 1fr}.ess li.n0>span::before{content:"";display:block;width:6px;height:6px;margin-top:.62em;border-radius:1px;background:var(--sinal)}
.ess s{color:var(--texto-3)}
.sec{border-top:1px solid var(--linha)}
.sec>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;cursor:pointer;list-style:none;font:800 var(--t28)/1.05 var(--f-cond);padding:14px 0;text-wrap:balance}
.sec>summary::-webkit-details-marker{display:none}
.sec>summary .ic{width:18px;height:18px;color:var(--texto-3);transition:transform .3s var(--mola);flex:none}
.sec[open]>summary .ic{transform:rotate(180deg)}
.sec .leitura{padding-bottom:10px}
.ckp{margin:6px 0 24px;padding:20px 22px;border-radius:var(--r-xl);background:linear-gradient(160deg,#0D2A66,var(--azul-noite));border:1px solid #23428f;color:#fff}
.ckp .k{display:flex;align-items:center;gap:8px;color:#FFC21A;margin-bottom:10px}.ckp .k .ic{width:18px;height:18px}
.ckp p{font-size:var(--fs-leitura);line-height:1.45}
.ckp .btn{margin-top:14px;background:transparent;border-color:rgba(255,255,255,.55);color:#fff;box-shadow:none}
.ckp .resp{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.18);color:#DCE4F8;animation:sobe .4s var(--saida)}
.ckp .resp-b{display:flex;gap:10px;margin-top:12px}.ckp .resp-b .btn{margin:0;flex:1}
.ckp.feito{opacity:.8}
.pegc{padding:16px 18px;border-radius:var(--r-md);border:1px solid var(--linha);background:var(--asfalto-2);margin-bottom:12px;transition:border-color .25s,background .25s}
.pegc p{font-size:var(--fs-leitura);line-height:1.45;margin-bottom:12px}
.pegc .ce-b{min-height:48px;font-size:var(--t22)}
.pegc.ok{border-color:var(--acerto)}.pegc.bad{border-color:var(--erro)}
.pegc .pq{margin-top:12px;padding-top:12px;border-top:1px solid var(--linha);color:var(--texto-2);animation:sobe .4s var(--saida)}
.pegc .pq b.g{font:800 var(--t18)/1 var(--f-cond);letter-spacing:.03em;margin-right:6px}
.resumo-f{list-style:none;padding:0;margin:0;counter-reset:r}
.resumo-f li{position:relative;padding:10px 0 10px 40px;border-top:1px solid var(--linha);counter-increment:r;font-size:var(--fs-leitura);line-height:1.45}
.resumo-f li::before{content:counter(r,decimal-leading-zero);position:absolute;left:0;top:13px;font:500 var(--t14)/1 var(--f-mono);color:var(--sinal-txt)}
.ler-prog{position:fixed;top:0;left:0;right:0;height:3px;z-index:50;background:transparent;pointer-events:none}.ler-prog i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;background:var(--sinal)}
.fonte-ctl{display:flex;border:1px solid var(--linha);border-radius:var(--r-md);background:var(--asfalto-2);overflow:hidden;flex:none}
.fonte-ctl button{width:52px;min-height:56px;font:800 var(--t22)/1 var(--f-cond)}.fonte-ctl button+button{border-left:1px solid var(--linha)}
.fonte-ctl button:active{background:var(--asfalto-3)}
.duv{color:var(--texto-3)}.duv.on{color:var(--sinal-txt)}
mark.meu{background:rgba(124,156,248,.3);cursor:pointer}
.sel-pop{position:absolute;z-index:45;display:flex;gap:2px;padding:4px;border-radius:12px;background:var(--asfalto-3);border:1px solid var(--linha);box-shadow:var(--sombra)}
.sel-pop button{min-height:38px;padding:0 12px;border-radius:8px;font-size:var(--t14);font-weight:600;display:flex;align-items:center;gap:6px}

/* ───────── SESSÃO ───────── */
.ses-top{position:sticky;top:0;z-index:20;margin:0 -20px 18px;padding:calc(var(--sat) + 10px) 20px 12px;background:var(--asfalto-0);border-bottom:1px solid var(--linha)}
.ses-top .r1{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.ses-top small{display:block;color:var(--texto-2);font-size:var(--t14)}
.ses-top b{display:block;font:800 var(--t22)/1.1 var(--f-cond)}
.timer-p{display:flex;align-items:center;gap:10px;height:48px;padding:0 6px 0 14px;border:1px solid var(--linha);border-radius:var(--r-sm);background:var(--asfalto-1);font:700 var(--t22)/1 var(--f-mono);font-variant-numeric:tabular-nums}
.timer-p.fim{color:var(--atencao);border-color:var(--atencao)}
.timer-p button{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--asfalto-3)}.timer-p button .ic{width:16px;height:16px}
.bloco-i{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--linha)}
.bloco-i:first-child{border-top:0}
.bloco-n{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--asfalto-3);font:800 var(--t22)/1 var(--f-cond);color:var(--c,var(--texto))}
.fim-km{font:500 4rem/1 var(--f-mono);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.fim-km small{font:400 var(--t22)/1 var(--f);color:var(--texto-3);letter-spacing:0}
.rec{padding:18px 20px;border-radius:var(--r-xl);border:1px solid var(--linha);background:var(--asfalto-2);margin-bottom:12px}
.rec p{font-size:var(--t18);line-height:1.4}.rec .r{margin-top:12px;padding-top:12px;border-top:1px solid var(--linha);color:var(--texto-2);animation:sobe .4s var(--saida)}

/* ───────── CARDS ───────── */
.deck{position:relative;height:210px;margin:8px 16px 26px}
.deck>span{position:absolute;inset:0;border-radius:var(--r-xl);background:var(--asfalto-2);border:1px solid var(--linha);box-shadow:var(--sombra),var(--luz);transition:transform .6s var(--mola)}
.deck>span:nth-child(1){transform:rotate(-5deg) translate(-10px,10px);background:var(--asfalto-1)}
.deck>span:nth-child(2){transform:rotate(3.5deg) translate(9px,5px);background:color-mix(in srgb,var(--asfalto-2) 60%,var(--asfalto-1))}
.deck>span:nth-child(3){display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px}
.deck b{font:500 4.5rem/1 var(--f-mono);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.deck small{color:var(--texto-3)}
.fc-area{perspective:1400px;margin:8px 0 18px;touch-action:pan-y}
.fc{position:relative;min-height:340px;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.3,.9,.3,1);cursor:grab;will-change:transform}
.fc.virado{transform:rotateY(180deg)}
.fc-f,.fc-v{position:absolute;inset:0;display:flex;flex-direction:column;padding:22px;border-radius:var(--r-xl);background:var(--asfalto-2);border:1px solid var(--linha);box-shadow:var(--sombra),var(--luz);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:auto}
.fc-v{transform:rotateY(180deg);background:var(--asfalto-1)}
.fc-txt{flex:1;display:flex;flex-direction:column;justify-content:center;font-size:calc(var(--fs-leitura) + 3px);line-height:1.42;text-wrap:pretty;padding:14px 0}
.fc-v .fc-txt{font-size:calc(var(--fs-leitura) + 1px)}
.fc-dica{text-align:center;color:var(--texto-3);font-size:var(--t14)}
.fc-tinta{position:absolute;inset:0;border-radius:var(--r-xl);pointer-events:none;opacity:0;display:grid;place-items:center;font:800 var(--t36)/1 var(--f-cond);letter-spacing:.04em;color:#fff;z-index:3}
.cloze{padding:0 6px;border-radius:5px;background:var(--marca-texto);font-weight:600}
.rate{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rate button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:60px;border-radius:var(--r-sm);border:1px solid var(--linha);background:var(--asfalto-2);font:700 var(--t18)/1 var(--f-cond);transition:transform .28s var(--mola)}
.rate button:active{transform:scale(.96)}
.rate small{font:500 var(--t12)/1 var(--f-mono);color:var(--texto-3)}
.rate .r1{color:var(--erro)}.rate .r2{color:var(--atencao)}.rate .r3{color:var(--acerto)}.rate .r4{color:var(--azul-claro)}

/* ───────── PROVAS ───────── */
.pv{padding:18px 20px}
.pv h3{font:800 var(--t28)/1 var(--f-cond);margin:4px 0 8px}
.pv-meta{color:var(--texto-2);font-size:var(--t14);margin-bottom:14px}
.pv-res{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:var(--asfalto-1);border:1px solid var(--linha);margin-bottom:14px}
.pv-res b{font:500 var(--t28)/1 var(--f-mono)}
.folha{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px}
.folha button{min-height:44px;border-radius:9px;border:1px solid var(--linha);background:var(--asfalto-2);font:500 var(--t12)/1 var(--f-mono)}
.folha .C{border-color:var(--acerto);color:var(--acerto)}.folha .E{border-color:var(--erro);color:var(--erro)}.folha .cur{box-shadow:0 0 0 2px var(--sinal)}
.prova-barra{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 -20px 16px;padding:calc(var(--sat) + 10px) 20px 10px;background:var(--asfalto-0);border-bottom:1px solid var(--linha)}
.nota-g{font:500 5rem/1 var(--f-mono);letter-spacing:-.05em}
textarea.editor{width:100%;min-height:52dvh;padding:16px;border-radius:var(--r-md);border:1px solid var(--linha);background:var(--asfalto-1);font-size:var(--fs-leitura);line-height:1.7}

/* ───────── BIZUS (HTML nativo) ───────── */
.bz{padding:20px 22px}
.bz h3{font:800 var(--t28)/1.05 var(--f-cond);margin:6px 0 4px;text-wrap:balance}
.mnem{display:grid;gap:0;margin-top:12px}
.mnem>div{display:grid;grid-template-columns:64px 62px 1fr;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--linha)}
.mnem>div:first-child{border-top:0}
.mnem .s{font:800 var(--t28)/1 var(--f-cond);letter-spacing:.02em}
.mnem .v{font:700 var(--t28)/1 var(--f-mono);color:var(--sinal-txt);font-variant-numeric:tabular-nums}
.mnem .d{color:var(--texto-2);font-size:var(--t14);line-height:1.35}.mnem .d b{color:var(--texto);font-weight:700}
.grav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.grav>div{padding:12px 6px;border-radius:var(--r-md);background:var(--asfalto-1);border:1px solid var(--linha);text-align:center;border-top:3px solid var(--c)}
.grav b{display:block;font:700 var(--t36)/1 var(--f-mono);color:var(--c)}
.grav>div>span{display:block;font:700 var(--t14)/1.1 var(--f-cond);letter-spacing:.06em;text-transform:uppercase;margin-top:6px}
.grav small{display:block;font:500 var(--t12)/1.2 var(--f-mono);color:var(--texto-2);margin-top:6px}
.limiar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.limiar>div{padding:14px 10px;border-radius:var(--r-md);background:var(--asfalto-1);border:1px solid var(--linha)}
.limiar b{display:block;font:700 var(--t36)/1 var(--f-mono)}.limiar>div>span{display:block;font-size:var(--t12);color:var(--texto-2);margin-top:6px;line-height:1.3}

/* ───────── MAPA MENTAL ───────── */
.mm-tela{position:fixed;inset:0;z-index:25;display:flex;flex-direction:column;background:var(--asfalto-0)}
.mm-topo{padding:calc(var(--sat) + 10px) 16px 10px;border-bottom:1px solid var(--linha);background:var(--asfalto-0);z-index:2}
.mm-topo .r1{display:flex;align-items:center;gap:12px}
.mm-topo b{display:block;font:800 var(--t22)/1.05 var(--f-cond);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mm-topo small{display:block;color:var(--texto-3);font:500 var(--t12)/1.3 var(--f-mono)}
.mm-placar{display:flex;align-items:center;gap:14px;margin-top:10px;font:500 var(--t14)/1 var(--f-mono)}
.mm-placar .faixa{flex:1}
.mm-canvas{position:relative;flex:1;overflow:hidden;touch-action:none;cursor:grab;background-image:radial-gradient(var(--linha) 1px,transparent 1px);background-size:22px 22px}
.mm-mundo{position:absolute;left:0;top:0;transform-origin:0 0;width:430px;padding:20px 24px 80px 20px;will-change:transform}
.mm-mundo svg.fios{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.mm-raiz{display:inline-block;max-width:300px;padding:14px 18px;border-radius:16px;background:linear-gradient(160deg,#0D2A66,var(--azul-noite));border:1.5px solid rgba(255,255,255,.85);color:#fff;font:800 var(--t22)/1.1 var(--f-cond);box-shadow:var(--sombra)}
.mm-fil{margin-left:34px;display:grid;gap:8px;padding-top:10px}
.mm-fil.n2{margin-left:26px;gap:6px;padding-top:6px}
.mm-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .38s var(--saida)}
.mm-wrap>div{overflow:hidden;min-height:0}
.mm-no.fech>.mm-wrap{grid-template-rows:0fr}
.mm-b{display:inline-flex;align-items:center;gap:9px;max-width:330px;min-height:44px;padding:8px 12px 8px 10px;border-radius:12px;background:color-mix(in srgb,var(--rc) 16%,var(--asfalto-2));border:1.5px solid var(--rc);font:700 var(--t18)/1.15 var(--f-cond);text-align:left;color:var(--texto);box-shadow:var(--luz)}
.mm-b .ic{color:var(--rc);width:20px;height:20px}
.mm-b .n{font:500 var(--t12)/1 var(--f-mono);color:var(--texto-2);padding:4px 6px;border-radius:6px;background:var(--asfalto-0)}
.mm-b .seta{width:14px;height:14px;color:var(--texto-3);transition:transform .3s var(--mola)}
.mm-no.fech>.mm-b .seta{transform:rotate(-90deg)}
.mm-f{display:inline-block;max-width:330px;padding:7px 11px;border-radius:9px;background:var(--asfalto-2);border:1px solid var(--linha);border-left:3px solid var(--rc);font-size:var(--t14);line-height:1.35;text-align:left;color:var(--texto)}
.mm-f.sub{background:var(--asfalto-1)}
.mm-f b{font-weight:600}.mm-art{font:500 .92em var(--f-mono);color:var(--azul-claro)}
.mm-no.oculto>.mm-wrap .mm-f{filter:blur(6px);user-select:none;-webkit-user-select:none}
.mm-rev{display:none;gap:8px;margin:8px 0 0 34px}
.mm-no.oculto>.mm-toca,.mm-no.visto>.mm-rev{display:flex}
.mm-toca{display:none;margin:8px 0 0 34px;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:10px;border:1px dashed var(--rc);color:var(--texto-2);font-size:var(--t14)}
.mm-no.sabia>.mm-b{border-color:var(--acerto)}.mm-no.nsabia>.mm-b{border-color:var(--atencao)}
.mm-fab{position:absolute;right:14px;bottom:calc(var(--sab) + 16px);display:grid;gap:8px;z-index:3}
.mm-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;width:100%;text-align:left;min-height:56px;padding:10px 0;border-top:1px solid var(--linha)}.mm-item:first-child{border-top:0}
.mm-item b{display:block;font-weight:500;line-height:1.3}.mm-item small{font:500 var(--t12)/1.4 var(--f-mono);color:var(--texto-3)}

/* ───────── VIAGEM ───────── */
.vg-mapa{position:relative;border-radius:var(--r-xl);border:1px solid var(--linha);background:radial-gradient(120% 90% at 70% 30%,#101827,var(--asfalto-1));overflow:hidden;margin-bottom:16px}
:root[data-theme="light"] .vg-mapa{background:radial-gradient(120% 90% at 70% 30%,#e8eef7,#f6f4ef)}
.vg-mapa svg{width:100%;height:auto}
.bm-br{fill:var(--asfalto-3);stroke:var(--linha);stroke-width:1.2;stroke-linejoin:round}
:root[data-theme="light"] .bm-br{fill:#fff;stroke:#c9c4b8}
.bm-rota{fill:none;stroke:var(--texto-3);stroke-width:2.2;stroke-dasharray:1 5;stroke-linecap:round}
.bm-feito{fill:none;stroke:var(--sinal);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.bm-p{fill:var(--asfalto-0);stroke:var(--texto-3);stroke-width:1.4}.bm-p.ok{fill:var(--sinal);stroke:var(--asfalto-0)}
.bm-nome{font:700 11px var(--f-cond);fill:var(--texto-2);letter-spacing:.03em}.bm-nome.on{fill:var(--texto);font-size:13px}
.bm-vt circle{fill:var(--asfalto-0);stroke:var(--sinal);stroke-width:2}
.parada{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:start;padding:14px 0;border-top:1px solid var(--linha)}
.parada:first-child{border-top:0}
.parada-n{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--linha);font:500 var(--t14)/1 var(--f-mono);color:var(--texto-3)}
.parada.ok .parada-n{background:var(--sinal);border-color:var(--sinal);color:var(--sinal-tinta)}.parada.on .parada-n{border-color:var(--sinal);color:var(--sinal-txt)}
.parada-n .ic{width:16px;height:16px}
.parada b{font:700 var(--t22)/1.1 var(--f-cond)}.parada.fut b{color:var(--texto-3)}

/* ───────── PERFIL / MAIS ───────── */
.perfil{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:center}
.perfil b{font:800 var(--t28)/1 var(--f-cond);display:block}
.perfil small{display:block;color:var(--texto-3);font-size:var(--t14);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nivel{margin-top:18px}
.nivel .r{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:9px}
.conq{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.conq>div{padding:16px 8px 14px;border-radius:var(--r-md);background:var(--asfalto-2);border:1px solid var(--linha);text-align:center}
.conq .med-p{margin:0 auto 10px;width:52px;height:52px}.conq .med-p .ic{width:26px;height:26px}
.conq b{display:block;font:700 var(--t16)/1.1 var(--f-cond)}.conq small{display:block;font-size:var(--t12);color:var(--texto-3);margin-top:4px;line-height:1.3}
.conq>div:not(.on) b{color:var(--texto-3)}
.tema-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tema-opts button{padding:10px;border-radius:var(--r-md);border:1.5px solid var(--linha);font-size:var(--t14);font-weight:500}
.tema-opts button.on{border-color:var(--sinal)}
.tema-opts .prev{display:block;height:44px;border-radius:8px;margin-bottom:8px;border:1px solid var(--linha)}
.menu-conta{position:fixed;top:calc(var(--sat) + 62px);right:16px;z-index:70;width:270px;padding:8px;border-radius:var(--r-md);background:var(--asfalto-2);border:1px solid var(--linha);box-shadow:var(--sombra)}
.menu-conta button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 10px;border-radius:9px;text-align:left}.menu-conta button:active{background:var(--asfalto-3)}
.menu-conta .mc-top{display:flex;gap:10px;align-items:center;padding:8px 10px 12px;border-bottom:1px solid var(--linha);margin-bottom:6px}

/* ───────── LOGIN ───────── */
#login-root:empty{display:none}
.login{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--sat) + 24px) 24px calc(var(--sab) + 24px);background:#07080A;color:#F2F4F7;overflow:hidden}
.estrada{position:absolute;left:0;right:0;top:0;height:62%;perspective:380px;perspective-origin:50% 34%;overflow:hidden;pointer-events:none;-webkit-mask:linear-gradient(#0000 26%,#000 42%,#000 50%,#0000 61%);mask:linear-gradient(#0000 26%,#000 42%,#000 50%,#0000 61%)}
.estrada::before{content:"";position:absolute;left:50%;bottom:0;width:340px;height:1500px;margin-left:-170px;transform-origin:50% 100%;transform:rotateX(80deg);
  background:linear-gradient(90deg,transparent 0 3%,rgba(242,244,247,.55) 3% 4.2%,transparent 4.2% 95.8%,rgba(242,244,247,.55) 95.8% 97%,transparent 97%),repeating-linear-gradient(180deg,#FFC21A 0 80px,transparent 80px 200px) 50% 0/9px 100% no-repeat,linear-gradient(#0B0D10,#111419);
  animation:estrada 1.9s linear infinite}
@keyframes estrada{to{background-position:0 0,50% 200px,0 0}}
.login-c{position:relative;width:100%;max-width:400px;margin:0 auto}
.login .marca{font-size:2.6rem;gap:12px;margin-bottom:6px}.login .marca svg{width:46px;height:46px}
.login .slogan{color:#A7AEB9;font-size:var(--t18);margin-bottom:22px}
.login form{display:grid;gap:14px;padding:22px;border-radius:var(--r-xl);background:rgba(21,24,29,.86);border:1px solid #2A2F37;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.login label.f{color:#A7AEB9}
.login label.f>input{background:#0E1013;border-color:#2A2F37;color:#F2F4F7}
.senha{position:relative}.senha input{padding-right:52px}
.senha button{position:absolute;right:2px;bottom:2px;width:44px;height:44px;display:grid;place-items:center;color:#7C8491}
.login .erro{display:flex;gap:8px;align-items:flex-start;color:#FF8A80;font-size:var(--t14);line-height:1.35}.login .erro.ok{color:#5FD598}.login .erro:empty{display:none}
.login .rod{display:flex;align-items:center;gap:12px;margin-top:18px;color:#7C8491;font-size:var(--t12);line-height:1.4}
.login .rod img{width:26px;height:auto;opacity:.9;flex:none}
.spin{width:18px;height:18px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:gira .7s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}

/* ───────── gráficos simples ───────── */
.svgchart{width:100%;height:auto}.svgchart text{font:500 11px var(--f-mono);fill:var(--texto-3)}
.grade12{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}.grade12>div{display:grid;gap:3px}.grade12 i{aspect-ratio:1;border-radius:3px;background:var(--asfalto-3)}
.grade12 i.n1{background:color-mix(in srgb,var(--sinal) 35%,var(--asfalto-3))}.grade12 i.n2{background:color-mix(in srgb,var(--sinal) 68%,var(--asfalto-3))}.grade12 i.n3{background:var(--sinal)}.grade12 i.fut{background:transparent}

/* ───────── styleguide ───────── */
.sg-sw{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}
.sg-sw div{font:500 var(--t12)/1.3 var(--f-mono);color:var(--texto-2)}.sg-sw i{display:block;height:52px;border-radius:10px;border:1px solid var(--linha);margin-bottom:6px}
.sg-esc>div{display:flex;align-items:baseline;gap:14px;padding:6px 0;border-top:1px solid var(--linha)}.sg-esc small{width:40px;font:500 var(--t12) var(--f-mono);color:var(--texto-3)}

/* ───────── transições de tela ───────── */
@view-transition{navigation:none}
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s;animation-timing-function:var(--saida)}
.vt-frente::view-transition-old(root){animation:vt-sai .2s var(--saida) both}
.vt-frente::view-transition-new(root){animation:vt-entra .24s var(--saida) both}
.vt-volta::view-transition-old(root){animation:vt-sai-d .2s var(--saida) both}
.vt-volta::view-transition-new(root){animation:vt-entra-e .24s var(--saida) both}
@keyframes vt-sai{to{opacity:0;transform:translateX(-18px)}}@keyframes vt-entra{from{opacity:0;transform:translateX(18px)}}
@keyframes vt-sai-d{to{opacity:0;transform:translateX(18px)}}@keyframes vt-entra-e{from{opacity:0;transform:translateX(-18px)}}
.vt-tema::view-transition-old(root){animation:none;z-index:1}
.vt-tema::view-transition-new(root){animation:vt-circulo .55s var(--saida) both;z-index:2}
@keyframes vt-circulo{from{clip-path:circle(0 at var(--vx,90%) var(--vy,40px))}to{clip-path:circle(150vmax at var(--vx,90%) var(--vy,40px))}}
::view-transition-group(heroi){animation-duration:.36s;animation-timing-function:var(--saida)}
::view-transition-old(heroi),::view-transition-new(heroi){height:100%;object-fit:cover;object-position:top left}
.top,.nav{view-transition-name:none}
.nav{view-transition-name:barra}.top{view-transition-name:topo}
::view-transition-group(barra),::view-transition-group(topo){z-index:5}
::view-transition-old(barra),::view-transition-new(barra),::view-transition-old(topo),::view-transition-new(topo){animation:none}
.entra{animation:vt-entra .22s var(--saida) both}

@media (min-width:744px){.wrap,.top{max-width:640px}h1{font-size:var(--t48)}}
@media (max-width:359px){.wrap{padding-left:16px;padding-right:16px}.placa{padding:22px 20px 18px}.painel-g{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .estrada::before,.sk{animation:none!important}
  ::view-transition-old(root),::view-transition-new(root){animation:some .15s both!important}
  ::view-transition-group(heroi){animation-duration:.01ms!important}
}
@media print{.top,.nav,.barra-fixa{display:none}}

/* ───────── ajustes finais ───────── */
.card>.tg:first-of-type,.mt>.tg:first-child,.mt2>.tg:first-child{border-top:0}
details>summary{list-style:none}details>summary::-webkit-details-marker{display:none}
details.grupo[open]>summary .chev .ic{transform:rotate(180deg)}details.grupo>summary .chev .ic{transition:transform .3s var(--mola)}
.card .senha{display:block}
.bz .tbl-t{font-size:var(--t16)}
.mm-topo .seg-in{min-width:100%}
.pv-res{box-shadow:var(--luz)}
.spin{display:inline-block;vertical-align:-3px}
.login .spin{margin:8px 0}
.btn .spin{width:16px;height:16px}
.btn{white-space:nowrap}
.gauge-c{bottom:6px}.gauge-c b{font-size:2.15rem}.gauge-c>span{font-size:var(--t12);display:block;margin-top:2px}
.painel-g{align-items:end}
.login{--asfalto-0:#07080A;--asfalto-1:#0E1013;--asfalto-2:#15181D;--asfalto-3:#1D2128;--linha:#2A2F37;--texto:#F2F4F7;--texto-2:#A7AEB9;--texto-3:#7C8491;--sinal:#FFC21A;--sinal-tinta:#1A1300;--sinal-txt:#FFC21A;--azul-claro:#7C9CF8;--luz:inset 0 1px 0 rgba(255,255,255,.06);color-scheme:dark}
.login .lnk{color:#A7AEB9}
.marca-s{min-height:44px;display:inline-flex;align-items:center}
.btn.sm{min-height:40px}

/* ───────── computador (≥1024px): navegação lateral e conteúdo ocupando a tela ───────── */
@media (min-width:1024px){
  :root{--lat:248px}
  body{padding-left:var(--lat)}
  body.imersivo{padding-left:0}
  .nav{top:0;right:auto;bottom:0;width:var(--lat);padding:0 14px 20px;border-top:0;border-right:1px solid var(--linha);background:var(--asfalto-1);-webkit-backdrop-filter:none;backdrop-filter:none;display:flex;flex-direction:column}
  .nav-marca{display:flex;align-items:center;height:76px;padding:0 12px;text-decoration:none;flex:none}
  .nav-in{display:flex;flex-direction:column;gap:4px;height:auto;max-width:none;margin:8px 0 0}
  .nav button{flex-direction:row;justify-content:flex-start;gap:14px;height:48px;min-height:48px;padding:0 14px;border-radius:12px;font:500 var(--t16)/1 var(--f);transition:color .2s,background .15s,transform .25s var(--mola)}
  .nav button.on{background:var(--asfalto-2);font-weight:600}
  .nav button .ic{width:22px;height:22px}
  .nav-ind{top:0;left:-14px;width:3px;height:48px;transform:translateY(calc(var(--i,0) * 52px))}
  .nav-ind::before{width:3px;height:26px;border-radius:0 3px 3px 0}
  .badge-n{top:15px;left:auto;right:14px}
  .top{max-width:none;margin:0;padding:14px 40px;min-height:76px}
  .top .marca-s{display:none}
  .wrap{max-width:1240px;padding:8px 40px 72px}
  body.imersivo .wrap{max-width:860px}
  .barra-fixa{left:var(--lat)}
  body.imersivo .barra-fixa{left:0}
  .toast{left:calc(50% + var(--lat) / 2);bottom:28px}
  body.imersivo .toast{left:50%}
  .ler-prog{left:var(--lat)}body.imersivo .ler-prog{left:0}
}
@media (min-width:1024px) and (hover:hover){.nav button:not(.on):hover{background:var(--asfalto-2);color:var(--texto)}}
@media (min-width:1024px){
  .pg-h{margin:10px 0 24px}
  .seg{margin-left:0;margin-right:0;padding:0;max-width:720px;-webkit-mask:none;mask:none}
  /* colunas equilibradas: Hoje, Mais, Configurações, Painel */
  #main[data-t="hoje"],#main[data-t="mais"][data-s=""],#main[data-s="config"],#main[data-s="painel"]{columns:2;column-gap:24px}
  #main[data-t="hoje"]>*,#main[data-t="mais"][data-s=""]>*,#main[data-s="config"]>*,#main[data-s="painel"]>*{break-inside:avoid}
  #main[data-t="hoje"]>.pg-h,#main[data-t="mais"][data-s=""]>.pg-h,#main[data-s="config"]>.pg-h,#main[data-s="config"]>.volta,#main[data-s="painel"]>.pg-h,#main[data-s="painel"]>.volta{column-span:all}
  #main[data-t="hoje"]>.faixa,#main[data-t="hoje"]>.br-rodape{break-before:avoid}
  #main[data-t="hoje"]>.br-rodape{margin-bottom:16px}
  #main[data-t="mais"][data-s=""]>.sec-h,#main[data-s="painel"]>.sec-h{break-after:avoid;margin-top:8px}
  .painel-g{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  /* listas em colunas */
  .grupo:has(>.disc),.grupo:has(>.tp){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:44px;padding:6px 24px}
  .grupo:has(>.disc)>.disc:nth-child(2),.grupo:has(>.tp)>.tp:nth-child(2){border-top:0}
  .grupo:has(>.mm-item){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:36px;padding:6px 24px}
  .grupo:has(>.mm-item)>.mm-item:nth-child(-n+3){border-top:0}
  .bz-l{columns:2;column-gap:20px}.bz-l>*{break-inside:avoid}
  .st:has(>article.card){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
  .st:has(>article.card)>article.card{margin-bottom:0}
  #qarea:has(>section.card:nth-child(2):last-child){display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  .conq{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
  /* telas de foco: largura de leitura, centralizadas */
  #main[data-t="cards"][data-s=""],#main[data-s="mapa"],#main[data-s="conta"],#main[data-s="aparencia"],#main[data-s="backup"]{max-width:900px}
  /* Ciclo: fila à esquerda, quadro e opções à direita */
  #main[data-s="ciclo"]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:24px;align-items:start}
  #main[data-s="ciclo"]>.pg-h,#main[data-s="ciclo"]>.seg{grid-column:1/-1}
  #main[data-s="ciclo"]>section.card:nth-of-type(1){grid-column:1;grid-row:3/span 3}
  #main[data-s="ciclo"]>section.card:nth-of-type(n+2){grid-column:2}
  /* Viagem: mapa fixo à esquerda, paradas à direita */
  #main[data-s="viagem"]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;align-items:start}
  #main[data-s="viagem"]>*{grid-column:2}
  #main[data-s="viagem"]>.volta,#main[data-s="viagem"]>.pg-h{grid-column:1/-1}
  #main[data-s="viagem"]>.vg-mapa{grid-column:1;grid-row:3/span 8;position:sticky;top:92px}
  #main[data-s="viagem"]>.vg-mapa svg{height:calc(100vh - 128px);min-height:480px}
  #main[data-s="viagem"]>.sec-h{margin-top:12px}
}
@media (min-width:1024px){
  #main[data-s="painel"]>.tbl-w,#main[data-s="painel"]>.sec-h{column-span:all}
  .login{justify-content:center;align-items:center}
  .login-c{max-width:440px;margin-top:22vh}
  .estrada{height:56%}
  .estrada::before{width:760px;margin-left:-380px}
}

/* insígnia do usuário e menu da conta */
.av{--s:40px;--r:2px;position:relative;display:inline-grid;width:var(--s);height:var(--s);flex:none;border-radius:50%;padding:var(--r);
  background:conic-gradient(from 0deg,var(--sinal) calc(var(--p,0) * 1turn),var(--asfalto-3) 0)}
.av-g{display:grid;border-radius:50%;padding:var(--r);background:var(--asfalto-0)}
.menu-conta .av-g,.card .av-g,.modal .av-g{background:var(--asfalto-2)}.modal .av-g{background:var(--asfalto-1)}
.av-c{position:relative;display:grid;place-items:center;overflow:hidden;border-radius:50%;color:var(--tx,#fff);isolation:isolate;
  background:radial-gradient(120% 90% at 22% 12%,rgba(255,255,255,.42),transparent 46%),linear-gradient(150deg,var(--a),var(--b) 82%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),inset 0 -8px 14px -6px rgba(0,0,0,.45)}
.av-c b{font:800 calc(var(--s) * .44)/1 var(--f-cond);letter-spacing:-.01em;text-shadow:0 1px 2px rgba(0,0,0,.28)}
.av-c b.duas{font-size:calc(var(--s) * .36)}
.av-c .ic{width:calc(var(--s) * .46);height:calc(var(--s) * .46);filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}
.av-c img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.av.f-placa .av-c{border-radius:30%}
.av.f-escudo .av-c{border-radius:0;clip-path:path("M0 0");clip-path:polygon(50% 0,96% 14%,96% 52%,86% 76%,50% 100%,14% 76%,4% 52%,4% 14%);box-shadow:inset 0 -8px 14px -6px rgba(0,0,0,.45)}
.av.f-hexa .av-c{border-radius:0;clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);box-shadow:inset 0 -8px 14px -6px rgba(0,0,0,.45)}
.av.g{--s:56px;--r:2.5px}.av.m{--s:44px;--r:0px;background:none;padding:0}.av.m .av-g{padding:0;background:none}
.av.gg{--s:132px;--r:5px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))}
.av-nv{position:absolute;right:-2px;bottom:-2px;min-width:38px;height:38px;padding:0 9px;display:grid;place-items:center;border-radius:19px;background:var(--sinal);color:var(--sinal-tinta);font:800 var(--t18)/1 var(--f-cond);font-style:normal;border:4px solid var(--asfalto-1);box-shadow:0 4px 12px rgba(0,0,0,.35)}
.av-topo{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;transition:transform .28s var(--mola)}.av-topo:active{transform:scale(.92)}
.av-bt{border-radius:50%;flex:none;display:grid;transition:transform .28s var(--mola)}.av-bt:active{transform:scale(.94)}
.menu-conta{width:300px;padding:10px;border-radius:var(--r-lg,20px);animation:sobe .22s var(--saida) both;transform-origin:100% 0}
.menu-conta .mc-top{align-items:flex-start;gap:14px;padding:8px 8px 14px}
.menu-conta .mc-top b{font:800 var(--t22)/1.1 var(--f-cond);display:block}
.mc-nv{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-size:var(--t12);color:var(--texto-2)}
.mc-bar{height:4px;margin-top:6px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--asfalto-3) 0 6px,transparent 6px 9px);overflow:hidden}.mc-bar i{display:block;height:100%;background:var(--sinal);border-radius:2px}
.menu-conta button{gap:12px;padding:0 10px;min-height:48px;font-weight:500}
.menu-conta button .ic{width:20px;height:20px;color:var(--texto-2);flex:none}
.menu-conta button small{display:block;font-size:var(--t12);font-weight:400;color:var(--texto-3);margin-top:1px}
.menu-conta hr{border:0;border-top:1px solid var(--linha);margin:6px 4px}
.menu-conta .sair,.menu-conta .sair .ic{color:var(--erro)}
.corta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.av-palco{position:relative;display:grid;place-items:center;height:196px;margin:0 -20px 6px;overflow:hidden;
  background:radial-gradient(60% 80% at 50% 46%,color-mix(in srgb,var(--a,#3B7BFF) 34%,transparent),transparent 70%);transition:background .4s}
.av-palco::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--linha),transparent)}
.av-op{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.av-op button,.av-mono{position:relative;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;border:1.5px solid var(--linha);background:var(--asfalto-2);color:var(--texto);transition:transform .28s var(--mola),border-color .15s,box-shadow .15s}
.av-op button:active{transform:scale(.92)}
.av-op .ic{width:24px;height:24px}
.av-op .on,.av-mono.on{border-color:var(--sinal);box-shadow:0 0 0 3px color-mix(in srgb,var(--sinal) 28%,transparent)}
.av-op.pint{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.av-op.pint button{width:100%;height:auto;aspect-ratio:1;max-width:48px;justify-self:center;border-radius:50%;border:0;padding:3px;background:none}
.av-op.pint i{display:block;width:100%;height:100%;border-radius:50%;background:radial-gradient(120% 90% at 22% 12%,rgba(255,255,255,.45),transparent 46%),linear-gradient(150deg,var(--a),var(--b) 82%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.av-op.pint .on{box-shadow:0 0 0 2px var(--asfalto-1),0 0 0 4px var(--sinal)}
.av-op.forma{display:grid;grid-template-columns:repeat(4,1fr)}
.av-op.forma button{width:auto;height:auto;padding:12px 4px 9px;gap:8px}.av-op.forma small{font-size:var(--t12);color:var(--texto-2)}
.av-mono{width:66px}.av-mono input{width:100%;height:100%;border:0;background:none;color:inherit;text-align:center;font:800 var(--t22)/1 var(--f-cond);text-transform:uppercase;outline:0;border-radius:inherit}
.av-mono:focus-within{border-color:var(--sinal)}
@media (hover:hover){.menu-conta button:hover{background:var(--asfalto-3)}}
@media (min-width:1024px){.menu-conta{top:70px;right:40px}}
.top .marca{white-space:nowrap}
@media (max-width:430px){.top{gap:8px;padding-left:16px;padding-right:16px}.top .marca{font-size:1.3rem;gap:7px}.top .marca svg{width:26px;height:26px}.top .km-pill{padding:0 10px;gap:6px}.top .km-pill small{display:none}.top .ibtn,.top .av-topo{width:40px;height:40px}.top .av{--s:38px}}

/* ---------- Redação ---------- */
.rd-t{background:var(--sinal-f);border-radius:3px;padding:0 2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-style:normal}
.rd-c{color:var(--azul-claro);font-weight:600;font-style:normal}
.rd-e{background:var(--acerto-f);border-radius:3px;padding:0 2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-style:normal}
.rd-limpo .rd-t,.rd-limpo .rd-c,.rd-limpo .rd-e{background:none;color:inherit;font-weight:inherit;padding:0}
.rd-oc{color:var(--texto-3);letter-spacing:.12em}
.rd-tema{font-size:var(--t22);line-height:1.25;margin-top:10px}
.rd-folha .rd-par{margin:16px 0 0}
.rd-folha .rd-par p{margin:6px 0 0;text-indent:1.6em;line-height:1.75}
.rd-papel{font:700 var(--t12)/1 var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:var(--texto-3)}
.rd-leg{display:flex;flex-wrap:wrap;gap:6px 14px;margin:2px 2px 12px;color:var(--texto-2)}
.rd-ph{color:var(--sinal-txt);font-weight:600}
.rd-frase{padding:11px 13px;border:1px solid var(--linha);border-radius:10px;margin:8px 0 0;line-height:1.55;background:var(--asfalto-1)}
.rd-blur .rd-frase:not(.ver){filter:blur(6px);cursor:pointer;user-select:none}
.rd-blur .rd-frase{transition:filter .2s}
.rd-ul{padding-left:1.2em;margin:8px 0 0}.rd-ul li{margin:6px 0;line-height:1.5}
.rd-passos{counter-reset:p;list-style:none;padding:0;margin:0}
.rd-passos li{counter-increment:p;position:relative;padding:0 0 14px 38px}
.rd-passos li::before{content:counter(p);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--sinal-f);color:var(--sinal-txt);font:700 var(--t14)/1 var(--f-mono)}
.rd-passos p{margin:6px 0 0;line-height:1.5}
.rd-licao{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--sinal-f);color:var(--texto)}
.rd-licao .ic{flex:none;margin-top:2px;color:var(--sinal-txt)}
.rd-asp{display:grid;grid-template-columns:1fr 84px;gap:10px;margin-top:10px}
.termo3{grid-template-columns:repeat(3,1fr)}
.conf{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 12px;padding:4px;border-radius:12px;background:var(--asfalto-1);border:1px solid var(--linha)}
.conf-b{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border-radius:9px;border:0;background:none;color:var(--texto-2);font:500 var(--t14)/1 var(--f)}
.conf-b.on{background:var(--asfalto-3);color:var(--texto);box-shadow:inset 0 0 0 1px var(--linha)}
.conf-b .ic{width:16px;height:16px}
/* ---------- Foco ---------- */
.fo-li{align-items:center}
.fo-li b{font-weight:500;line-height:1.35}
.fo-li small{white-space:normal;line-height:1.45}
.fo-n{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--asfalto-3);color:var(--texto-2);font-size:var(--t12)}
.fo-p{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.fo-p b{font-size:var(--t14)}
.rd-estudo p{line-height:1.65;margin:10px 0 0}
.rd-termos{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
/* ---------- Lei seca ---------- */
.ls-art{padding:14px 16px;border-bottom:1px solid var(--linha)}
.ls-art:last-child{border-bottom:0}
.ls-nota{margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--sinal-f);border-left:3px solid var(--sinal);white-space:pre-wrap;line-height:1.5;font-size:var(--t14)}
.ls-bt{margin-top:10px;gap:8px}.ls-bt .btn{flex:1;min-height:40px}
.ls-art details{margin-top:8px}
.aviso-com{display:flex;gap:8px;align-items:flex-start;padding:9px 11px;margin-bottom:10px;border-radius:9px;background:color-mix(in srgb,var(--atencao) 14%,transparent);color:var(--texto);font-size:var(--t14);line-height:1.45}
.aviso-com .ic{flex:none;margin-top:2px;color:var(--atencao)}

.voto-com{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.voto-com .btn{min-height:44px}
p.voto-com .ic{margin-right:4px;vertical-align:-2px}
