:root{--color-primary:#12294B;--color-primary-text:#12294B;--color-on-primary:#FFFFFF;--color-accent:#A07A1F;--color-accent-text:#856515;--color-success:#1F6B45;--color-on-success:#FFFFFF;--color-error:#A82A22;--color-live:#C2352B;--color-on-live:#FFFFFF;--color-ceremonial:#6B1F2E;--color-ceremonial-text:#6B1F2E;--color-on-ceremonial:#FFFFFF;--color-surface:#FFFFFF;--color-background:#F6F2EA;--color-text:#191713;--color-text-muted:#6E675C;--color-line:#E4DCCD;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px;--space-4xl:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#3E6FB5;--color-primary-text:#7FA9E0;--color-on-primary:#FFFFFF;--color-accent:#D9B45C;--color-accent-text:#D9B45C;--color-success:#58C48D;--color-on-success:#141210;--color-error:#EF8177;--color-live:#F2665A;--color-on-live:#141210;--color-ceremonial:#8E2A3D;--color-ceremonial-text:#E3899B;--color-on-ceremonial:#FFFFFF;--color-surface:#1C1A16;--color-background:#141210;--color-text:#F2EEE6;--color-text-muted:#A79E90;--color-line:#302B24}}:root[data-theme=dark]{--color-primary:#3E6FB5;--color-primary-text:#7FA9E0;--color-on-primary:#FFFFFF;--color-accent:#D9B45C;--color-accent-text:#D9B45C;--color-success:#58C48D;--color-on-success:#141210;--color-error:#EF8177;--color-live:#F2665A;--color-on-live:#141210;--color-ceremonial:#8E2A3D;--color-ceremonial-text:#E3899B;--color-on-ceremonial:#FFFFFF;--color-surface:#1C1A16;--color-background:#141210;--color-text:#F2EEE6;--color-text-muted:#A79E90;--color-line:#302B24}*{box-sizing:border-box}body{margin:0;background:var(--color-background);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}button{cursor:pointer}button,input{font:inherit}a{color:var(--color-primary-text)}.page{max-width:640px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;gap:var(--space-lg)}.card,.page{padding:var(--space-lg)}.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md)}.muted{color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:48px;padding:0 var(--space-xl);border-radius:var(--radius-md);border:none;font-weight:700;font-size:var(--text-base);background:var(--color-primary);color:var(--color-on-primary);width:100%}a.btn{text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-outline{background:transparent;border:2px solid var(--color-line);color:var(--color-text)}.btn:focus-visible,.option:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.stats-bar{display:flex;align-items:center;gap:var(--space-xl)}.stats-bar .stat{font-weight:800;font-size:var(--text-sm)}.stat.streak{color:var(--color-accent-text)}.stat.xp{color:var(--color-primary-text)}.unit-header{background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg)}.unit-header .topic{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;opacity:.85}.unit-header h2{margin:2px 0 0;font-size:var(--text-lg)}.lesson-path{gap:var(--space-lg);padding:var(--space-xl) 0}.lesson-node,.lesson-path{display:flex;flex-direction:column;align-items:center}.lesson-node{gap:var(--space-xs);background:none;border:none;max-width:200px}.lesson-node .circle{width:64px;height:64px;border-radius:var(--radius-full);display:grid;place-items:center;font-size:var(--text-xl);font-weight:800;border:4px solid var(--color-line);background:var(--color-surface);color:var(--color-text-muted);transition:transform .1s ease}.lesson-node:not(:disabled):hover .circle{transform:scale(1.06)}.lesson-node.done .circle{background:var(--color-success);border-color:var(--color-success);color:var(--color-on-success)}.lesson-node.gold .circle{background:color-mix(in srgb,var(--color-accent) 18%,var(--color-surface));border-color:var(--color-accent);color:var(--color-accent-text);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-accent) 20%,transparent)}.lesson-node.current .circle{width:76px;height:76px;background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);box-shadow:0 0 0 6px color-mix(in srgb,var(--color-primary) 25%,transparent)}.lesson-node.empty .circle{border-style:dashed}.lesson-node:disabled{cursor:not-allowed}.lesson-node .label{font-size:var(--text-sm);font-weight:600;text-align:center;color:var(--color-text-muted)}.lesson-node.current .label,.review-banner{color:var(--color-text)}.review-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);border:1px solid color-mix(in srgb,var(--color-accent) 45%,var(--color-line));background:color-mix(in srgb,var(--color-accent) 12%,var(--color-surface));border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);text-decoration:none;font-weight:700}.progress-track{height:12px;background:var(--color-line);overflow:hidden}.progress-fill,.progress-track{border-radius:var(--radius-full)}.progress-fill{height:100%;background:var(--color-success);transition:width .25s ease}.prompt{font-size:var(--text-lg);font-weight:600;white-space:pre-wrap}.meta-banca{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.options{display:flex;flex-direction:column;gap:var(--space-sm)}.options.duo{flex-direction:row}.options.duo .option{flex:1 1;justify-content:center;font-weight:800}.option{display:flex;align-items:center;gap:var(--space-md);min-height:48px;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border:2px solid var(--color-line);background:var(--color-surface);color:var(--color-text);text-align:left;font-size:var(--text-base)}.option.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));color:var(--color-text);font-weight:700}.option.correct{border-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 14%,var(--color-surface))}.option.wrong{border-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 12%,var(--color-surface))}.fill-input{width:100%;min-height:48px;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border:2px solid var(--color-line);background:var(--color-surface);color:var(--color-text)}.fill-input:focus{outline:none;border-color:var(--color-primary)}.feedback{border-radius:var(--radius-md);padding:var(--space-lg)}.feedback.ok{background:color-mix(in srgb,var(--color-success) 14%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-success) 40%,var(--color-line))}.feedback.nok{background:color-mix(in srgb,var(--color-error) 12%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-error) 40%,var(--color-line))}.feedback h3{margin:0 0 var(--space-xs)}.feedback.ok h3{color:var(--color-success)}.feedback.nok h3{color:var(--color-error)}.feedback p{margin:0;font-size:var(--text-sm)}.result-hero{text-align:center;padding:var(--space-2xl) 0}.result-hero .big{font-size:var(--text-3xl);font-weight:800;margin:0}.result-stats{display:flex;gap:var(--space-md);justify-content:center;margin-top:var(--space-lg)}.result-stats .pill{border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);background:var(--color-surface);border:1px solid var(--color-line);font-weight:800}.pill .pill-label{display:block;font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase}.tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:space-around;background:var(--color-surface);border-top:1px solid var(--color-line);padding:var(--space-sm) 0 calc(var(--space-sm) + env(safe-area-inset-bottom))}.tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);text-decoration:none;background:none;border:none}.tab-item .icon{font-size:20px;line-height:1}.tab-item.active{color:var(--color-primary-text)}.tab-item.disabled{opacity:.35;cursor:default}.tab-item .soon{font-size:9px;font-weight:600;color:var(--color-text-muted)}.has-tab-bar{padding-bottom:104px}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-md);gap:var(--space-md)}.profile-grid .card{text-align:center}.profile-grid .value{font-size:var(--text-2xl);font-weight:800;margin:0}.profile-grid .label{color:var(--color-text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}.home-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.home-header h1{margin:0;font-size:var(--text-xl)}.home-header .context{margin:2px 0 0;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600}.hero-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);text-align:center;padding:var(--space-2xl) var(--space-lg)}.hero-card h2{margin:0;font-size:var(--text-lg)}.hero-card .session-summary{margin:0;font-size:var(--text-sm)}.goal-ring{position:relative;display:grid;place-items:center}.goal-ring svg{position:absolute;inset:0}.goal-ring-center{display:flex;flex-direction:column;align-items:center;line-height:1.15}.goal-ring-value{font-weight:800;font-size:var(--text-lg)}.goal-ring-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.context-card{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);text-decoration:none;color:var(--color-text);font-weight:600}.session-bar{display:flex;gap:4px;flex:1 1}.session-seg{height:12px;border-radius:var(--radius-full);background:var(--color-line);overflow:hidden}.session-seg .seg-fill{height:100%;border-radius:var(--radius-full);transition:width .25s ease}.session-seg.revisar .seg-fill{background:var(--color-accent)}.session-seg.aprender .seg-fill{background:var(--color-primary)}.session-seg.reforcar .seg-fill{background:var(--color-success)}.phase-chip{align-self:flex-start;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.phase-chip.revisar{color:var(--color-accent-text);background:color-mix(in srgb,var(--color-accent) 14%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-accent) 40%,transparent)}.phase-chip.aprender{color:var(--color-primary-text);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-primary) 40%,transparent)}.phase-chip.reforcar{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 12%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-success) 40%,transparent)}.auth-form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-form input{min-height:48px;padding:0 var(--space-lg);border-radius:var(--radius-md);border:2px solid var(--color-line);background:var(--color-surface);color:var(--color-text)}.auth-form input:focus{outline:none;border-color:var(--color-primary)}.error-text{color:var(--color-error);margin:0}.auth-link,.error-text{font-size:var(--text-sm)}.auth-link{align-self:center;color:var(--color-primary-text);font-weight:600;padding:var(--space-xs) var(--space-sm)}.auth-aviso{margin:0;font-size:var(--text-sm);color:var(--color-text)}.btn-ceremonial{background:var(--color-ceremonial);color:var(--color-on-ceremonial)}.simulado-header h1{margin:0;font-size:var(--text-2xl);color:var(--color-ceremonial-text)}.simulado-header p{margin:var(--space-xs) 0 0;font-size:var(--text-sm)}.simulado-card{display:flex;flex-direction:column;gap:var(--space-md)}.simulado-card-topo{display:flex;justify-content:space-between;gap:var(--space-md)}.simulado-card h2{margin:0;font-size:var(--text-lg)}.simulado-meta{margin:2px 0 0;font-size:var(--text-sm)}.simulado-nota{display:flex;flex-direction:column;align-items:center;min-width:64px;padding:var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--color-line)}.simulado-nota strong{font-size:var(--text-xl)}.simulado-nota span{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase}.simulado-nota.passou{border-color:var(--color-success);color:var(--color-success)}.simulado-aviso{margin:0;font-size:var(--text-sm);color:var(--color-text-muted);border-left:3px solid var(--color-ceremonial);padding-left:var(--space-md)}.simulado-aviso.em-curso{color:var(--color-ceremonial-text);font-weight:700}.resultado-observacao,.simulado-historico,.simulado-nota-rodape{margin:0;font-size:var(--text-xs)}.prova{padding-bottom:var(--space-3xl)}.prova-topo{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--space-md);background:var(--color-background);padding:var(--space-md) 0;border-bottom:1px solid var(--color-line)}.prova-cronometro{font-size:var(--text-xl);font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-ceremonial-text)}.prova-cronometro.critico{background:var(--color-ceremonial);color:var(--color-on-ceremonial);padding:0 var(--space-sm);border-radius:var(--radius-sm)}.prova-progresso{flex:1 1;font-size:var(--text-sm)}.prova-grade-toggle{background:none;border:2px solid var(--color-line);color:var(--color-text);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-weight:700}.prova-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));grid-gap:var(--space-sm);gap:var(--space-sm)}.prova-celula{min-height:44px;border-radius:var(--radius-sm);font-weight:700;border:2px solid var(--color-line);background:var(--color-surface);color:var(--color-text-muted)}.prova-celula.respondida{border-color:var(--color-ceremonial);color:var(--color-ceremonial-text);font-weight:800}.prova-celula.marcada{border-style:dashed;border-color:var(--color-accent);color:var(--color-accent-text)}.prova-celula.atual{background:var(--color-ceremonial);color:var(--color-on-ceremonial);border-color:var(--color-ceremonial)}.prova-questao{display:flex;flex-direction:column;gap:var(--space-lg)}.prova-marcar{align-self:flex-start;background:none;border:none;font-weight:700;color:var(--color-text-muted);padding:var(--space-sm) 0}.prova-marcar.ativa{color:var(--color-accent-text)}.prova-confirmar,.prova-navegacao{display:flex;gap:var(--space-md)}.prova-confirmar{flex-direction:column}.prova-confirmar p{margin:0;font-size:var(--text-sm)}.resultado-hero{text-align:center;padding:var(--space-2xl) var(--space-lg);border-radius:var(--radius-lg);background:var(--color-ceremonial);color:var(--color-on-ceremonial)}.resultado-titulo{margin:0;font-size:var(--text-sm);opacity:.85}.resultado-nota{margin:var(--space-xs) 0 0;font-size:64px;font-weight:800;line-height:1}.resultado-corte{margin:var(--space-xs) 0 0;font-size:var(--text-sm);opacity:.85}.resultado-veredito{margin:var(--space-md) 0 0;font-weight:800}.resultado-barra{position:relative;height:14px;border-radius:var(--radius-full);background:var(--color-line);overflow:hidden}.resultado-barra-fill{height:100%;background:var(--color-ceremonial);border-radius:var(--radius-full)}.resultado-barra-fill.passou{background:var(--color-success)}.resultado-barra-corte{position:absolute;top:0;bottom:0;width:2px;background:var(--color-text);z-index:1}.resultado-disciplinas{display:flex;flex-direction:column;gap:var(--space-sm)}.resultado-disciplinas>p{margin:0;font-size:var(--text-sm)}.disciplinas{list-style:none;margin:0;padding:0}.disciplina,.disciplinas{display:flex;flex-direction:column}.disciplina{gap:6px;width:100%;padding:var(--space-sm) 0;background:none;border:none;text-align:left;color:var(--color-text);cursor:pointer}.disciplinas li+li .disciplina{border-top:1px solid var(--color-line)}.disciplina-topo{display:flex;align-items:baseline;gap:var(--space-md)}.disciplina-nome{flex:1 1;min-width:0;font-size:var(--text-sm)}.disciplina.ativa .disciplina-nome{font-weight:700;color:var(--color-ceremonial-text)}.disciplina-conta{font-size:var(--text-sm);font-weight:700;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.disciplina-barra{height:4px;background:var(--color-line);overflow:hidden}.disciplina-barra,.disciplina-barra-fill{display:block;border-radius:var(--radius-full)}.disciplina-barra-fill{height:100%;background:var(--color-ceremonial)}.disciplina-branco{font-size:var(--text-xs)}.resultado-filtro-disciplina{margin:0;font-size:var(--text-sm)}.resultado-limpar{background:none;border:none;padding:0;font:inherit;font-weight:700;color:var(--color-ceremonial-text);text-decoration:underline;cursor:pointer}.resultado-revisao{flex-direction:column}.resultado-filtros,.resultado-revisao{display:flex;gap:var(--space-sm)}.resultado-filtro{flex:1 1;min-height:40px;border-radius:var(--radius-md);font-weight:700;font-size:var(--text-sm);border:2px solid var(--color-line);background:var(--color-surface);color:var(--color-text-muted)}.resultado-filtro.ativo{border-color:var(--color-ceremonial);color:var(--color-ceremonial-text)}.resultado-item{padding:0;overflow:hidden}.resultado-item-topo{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-lg);background:none;border:none;color:var(--color-text);text-align:left}.resultado-marca{font-weight:800;width:20px}.resultado-marca.certa{color:var(--color-success)}.resultado-marca.errada{color:var(--color-error)}.resultado-marca.branca{color:var(--color-text-muted)}.resultado-numero{font-weight:700;white-space:nowrap}.resultado-trecho{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm)}.resultado-detalhe{display:flex;flex-direction:column;gap:var(--space-lg);padding:0 var(--space-lg) var(--space-lg);border-top:1px solid var(--color-line)}.resultado-detalhe .option{cursor:default}.resultado-etiqueta{margin-left:auto;font-size:var(--text-xs);font-style:normal;color:var(--color-text-muted)}.sheet-fundo{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--color-text) 22%,transparent)}.sheet{width:100%;max-width:640px;max-height:78vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-sm) var(--space-lg) calc(var(--space-lg) + env(safe-area-inset-bottom));background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-line);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -8px 24px color-mix(in srgb,var(--color-text) 12%,transparent)}.sheet:focus{outline:none}.sheet-alca{align-self:center;width:40px;height:4px;flex-shrink:0;border-radius:var(--radius-full);background:var(--color-line)}.sheet-topo{display:flex;align-items:flex-start;gap:var(--space-md)}.sheet-topo h2{flex:1 1;margin:0;font-size:var(--text-lg)}.sheet.nok .sheet-topo h2{color:var(--color-error)}.sheet-fechar{min-width:36px;min-height:36px;border-radius:var(--radius-full);border:1px solid var(--color-line);background:none;color:var(--color-text-muted)}.sheet-gabarito{margin:0;font-size:var(--text-sm)}.sheet-bloco{display:flex;flex-direction:column;gap:var(--space-xs)}.sheet-bloco h3{margin:0;font-size:var(--text-xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.sheet-bloco p{margin:0;font-size:var(--text-sm)}.sheet-tese{font-weight:700}.sheet-dispositivo{margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.sheet-dispositivo figcaption{font-size:var(--text-sm);font-weight:700;color:var(--color-primary-text)}.sheet-dispositivo blockquote{margin:0;padding-left:var(--space-md);font-size:var(--text-sm);border-left:3px solid var(--color-accent)}.sheet-vazio{padding:var(--space-md);border-radius:var(--radius-md);border:1px dashed var(--color-line)}.sheet-vazio h3{text-transform:none;letter-spacing:0;font-size:var(--text-sm);color:var(--color-text)}.sheet-vazio p{color:var(--color-text-muted)}.sheet-acoes{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-xs)}.feedback .gatilho-comentario{margin-top:var(--space-sm);width:auto;min-height:40px;padding:0 var(--space-lg)}.legal{gap:var(--space-xl);padding-bottom:var(--space-3xl)}.legal-topo{display:flex;flex-direction:column;gap:var(--space-xs)}.legal-topo h1{margin:0;font-size:var(--text-2xl);line-height:1.2}.legal-topo p{margin:0;font-size:var(--text-sm)}.legal-marca{align-self:flex-start;color:var(--color-accent-text);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:var(--text-xs);text-decoration:none}.legal-texto{display:flex;flex-direction:column;gap:var(--space-md);overflow-wrap:anywhere}.legal-texto h2{margin:var(--space-lg) 0 0;font-size:var(--text-lg);line-height:1.3}.legal-texto h3{margin:var(--space-sm) 0 0;font-size:var(--text-base)}.legal-texto p,.legal-texto ul{margin:0}.legal-texto ul{padding-left:var(--space-lg);gap:var(--space-xs)}.legal-bases,.legal-texto ul{display:flex;flex-direction:column}.legal-bases{margin:0;gap:var(--space-sm)}.legal-bases div{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--color-line);background:var(--color-surface)}.legal-bases dt{font-weight:700}.legal-bases dd{margin:var(--space-xs) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.legal-rodape{display:flex;flex-wrap:wrap;gap:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-line);font-size:var(--text-sm);font-weight:600}.a-confirmar{background:color-mix(in srgb,var(--color-accent) 22%,transparent);color:var(--color-text);padding:0 2px;border-radius:2px;font-weight:600}.aviso-legal{margin:0;text-align:center;font-size:var(--text-xs);color:var(--color-text-muted)}