/* Tarefa Conferida — tokens e cartões do protótipo (referencia/prototipo-tarefa-conferida.html) */
:root{
  color-scheme:light;
  --bg:#F4F6F9; --surface:#FFFFFF; --sunk:#EBEEF3; --ink:#1B2233; --muted:#5B6477; --line:#DCE1E8;
  --accent:#2446A8; --accent-ink:#FFFFFF; --accent-soft:#E3E9FA;
  --hi:#F7D54A; --hi-ink:#1B2233;
  --kid1:#0F8A7E; --kid2:#B4376B; --kid3:#7A5AC8;
  --danger:#C62828; --danger-soft:#FBE7E6; --ok:#2E7D32; --ok-soft:#E4F2E5; --warn:#A35F00; --warn-soft:#FDF0DC;
  --display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --body:"Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --r:10px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#10141C; --surface:#191F2B; --sunk:#141922; --ink:#E8EBF2; --muted:#9AA3B5; --line:#2B3342;
    --accent:#88A2F2; --accent-ink:#0E1320; --accent-soft:#1F2A47;
    --hi:#D9B933; --hi-ink:#14171F;
    --kid1:#3CC3B3; --kid2:#EB7AA7; --kid3:#A98BF0;
    --danger:#F07167; --danger-soft:#3A1D1E; --ok:#6BCB77; --ok-soft:#1B3020; --warn:#E6AE55; --warn-soft:#382A14;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#10141C; --surface:#191F2B; --sunk:#141922; --ink:#E8EBF2; --muted:#9AA3B5; --line:#2B3342;
  --accent:#88A2F2; --accent-ink:#0E1320; --accent-soft:#1F2A47;
  --hi:#D9B933; --hi-ink:#14171F;
  --kid1:#3CC3B3; --kid2:#EB7AA7; --kid3:#A98BF0;
  --danger:#F07167; --danger-soft:#3A1D1E; --ok:#6BCB77; --ok-soft:#1B3020; --warn:#E6AE55; --warn-soft:#382A14;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--body)}
h1,h2,h3,h4{font-family:var(--display);text-wrap:balance;margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.kc-kid1{--kc:var(--kid1)} .kc-kid2{--kc:var(--kid2)} .kc-kid3{--kc:var(--kid3)}

.wrap{max-width:1180px;margin:0 auto;padding:16px 16px 60px;display:flex;flex-direction:column;gap:16px}
@media (min-width:700px){.wrap{padding-inline:20px}}

/* cabeçalho e navegação */
header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}
.brand{text-decoration:none;color:inherit}
.brand h1{font-size:clamp(24px,6vw,32px);font-weight:800;letter-spacing:-.02em;line-height:1.05}
.brand h1 .tick{display:inline-block;background:var(--hi);color:var(--hi-ink);padding:0 .18em;border-radius:4px;transform:rotate(-2deg)}
.top-sub{margin:4px 0 0;color:var(--muted);font-size:14px}
.top-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
nav.menu{display:flex;gap:2px;background:var(--sunk);border-radius:9px;padding:3px;overflow-x:auto;scrollbar-width:none}
nav.menu::-webkit-scrollbar{display:none}
nav.menu a{flex:none;text-decoration:none;padding:7px 12px;border-radius:7px;font-weight:700;color:var(--muted);font-size:14px;white-space:nowrap}
nav.menu a[aria-current="page"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}

/* botões */
.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 14px;font-weight:700;display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);line-height:1.3}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.small{padding:5px 10px;font-size:13px}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{color:var(--ink);border-color:var(--line)}
.btn.danger{color:var(--danger);border-color:var(--danger)}
.btn.do{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.check{background:var(--ok);color:var(--surface);border-color:var(--ok)}
.btn:disabled{opacity:.5;cursor:default}
form.inline{display:inline}

/* avisos */
.banner{background:var(--warn-soft);color:var(--ink);border-radius:var(--r);padding:10px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;font-size:14px}
.banner.ok{background:var(--ok-soft)}
.banner.err{background:var(--danger-soft)}

/* resumo */
.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:720px){.summary{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}
.stat b{font-family:var(--display);font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.stat span{color:var(--muted);font-size:13px}
.stat.alert b{color:var(--danger)}
.stat.today b{background:var(--hi);color:var(--hi-ink);align-self:flex-start;padding:2px 6px;border-radius:4px}
.stat.check b{color:var(--warn)}
.stat:hover{border-color:var(--muted)}

/* filtros */
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:14px;display:inline-flex;gap:7px;align-items:center;text-decoration:none;color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chip[aria-pressed="true"] .muted{color:inherit;opacity:.75}
.dot{width:10px;height:10px;border-radius:50%;background:var(--kc,var(--muted));flex:none;display:inline-block}

/* semana */
.weeknav{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.weeknav .label{font-weight:700}
.week{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;align-items:start}
.day{background:var(--sunk);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:110px}
.day.is-late{background:var(--danger-soft)}
.day-h{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.day-h h3{font-size:15px;font-weight:600;text-transform:capitalize}
.day-h .mono{font-size:12px;color:var(--muted)}
.day.is-today .day-h h3{background:var(--hi);color:var(--hi-ink);padding:0 6px;border-radius:4px}
.day.is-late .day-h h3{color:var(--danger)}
.classes{font-size:12.5px;color:var(--muted);line-height:1.35}
.empty{font-size:14px;color:var(--muted);padding:6px 2px;margin:0}

/* cartão de tarefa */
.task{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 11px;display:flex;flex-direction:column;gap:5px}
.task.late{border-color:var(--danger)}
.task.s-conferida{opacity:.72}
.t-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.subj{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.tag{font-size:11px;font-weight:700;border-radius:4px;padding:1px 6px;text-transform:uppercase;letter-spacing:.04em}
.tag.prova{background:var(--danger-soft);color:var(--danger)}
.tag.trabalho,.tag.evento{background:var(--accent-soft);color:var(--accent)}
.tag.material{background:var(--sunk);color:var(--muted)}
.tag.revisao{background:var(--ok-soft);color:var(--ok)}
.tag.reforco,.tag.reforco.atencao{background:var(--warn-soft);color:var(--warn)}
.tag.reforco.critico{background:var(--danger-soft);color:var(--danger)}
.task h4{font-family:var(--body);font-size:15.5px;line-height:1.3}
.task .det{margin:0;font-size:13.5px;color:var(--muted);white-space:pre-wrap}
.t-meta{display:flex;align-items:center;gap:4px 6px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.t-meta .late-txt{color:var(--danger);font-weight:700}
.t-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:3px}
.t-act form{display:inline}
.state{font-size:12.5px;font-weight:700;border-radius:4px;padding:2px 7px;background:var(--sunk)}
.state.feita{background:var(--warn-soft);color:var(--warn)}
.state.conferida{background:var(--ok-soft);color:var(--ok)}
.t-top .edit{margin-left:auto;font-size:13px;color:var(--muted)}
.t-top .edit:hover{color:var(--ink)}

/* listas */
.list{display:flex;flex-direction:column;gap:22px}
.group h2{font-size:18px;font-weight:600;display:flex;gap:8px;align-items:baseline;margin-bottom:8px}
.group h2 .n{font-family:var(--mono);font-size:13px;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}

/* caixas e formulários */
.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:14px}
.box h2{font-size:19px}
.box h3{font-size:16px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.form{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:560px){.form{grid-template-columns:1fr 1fr}}
.form .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:700}
.field input,.field select,.field textarea{font-weight:400;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:9px 10px;font-size:16px;min-width:0;width:100%}
.field textarea{resize:vertical}
.field .ajuda{font-weight:400;font-size:12.5px}
.check-line{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.check-line input{width:20px;height:20px;flex:none;margin-top:2px}
.hint{font-size:13.5px;color:var(--muted);margin:0}
.acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.acts .spacer{flex:1}
.sugg{font-size:13px;color:var(--accent);background:none;border:0;padding:0;text-align:left;text-decoration:underline}
.err-txt{color:var(--danger);font-weight:700;font-size:14px;margin:0}

/* grade */
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.grade{border-collapse:collapse;width:100%;min-width:640px}
table.grade th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:6px}
table.grade td{padding:3px}
table.grade input{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:7px 8px;font-size:14px}
table.grade td.h input{font-family:var(--mono);width:84px}

/* filhos */
.kids{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.kid{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:8px}
.kid h3{font-size:18px;display:flex;gap:8px;align-items:center}
.kid .dot{width:12px;height:12px}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap;background:var(--sunk);color:var(--muted)}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.critico{background:var(--danger-soft);color:var(--danger)}
.pill.atencao{background:var(--warn-soft);color:var(--warn)}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
table.simples{border-collapse:collapse;width:100%}
table.simples th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}
table.simples td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:middle}
table.simples td input,table.simples td select{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:6px 8px;font-size:14px}

/* login */
.centro{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.cartao{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px 20px;max-width:440px;width:100%;display:flex;flex-direction:column;gap:14px}
.cartao h1{font-size:clamp(28px,8vw,36px);font-weight:800;letter-spacing:-.02em}
.cartao h1 .tick{display:inline-block;background:var(--hi);color:var(--hi-ink);padding:0 .18em;border-radius:4px;transform:rotate(-2deg)}
.cartao .btn.primary{justify-content:center;padding:11px 14px;font-size:16px}
.pin input{font-family:var(--mono);letter-spacing:.3em;font-size:22px}

/* painel do filho */
.foco-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.foco-panel h2{font-size:18px}
.foco-list{display:flex;flex-wrap:wrap;gap:8px}

.foco-dicas{margin:0;padding-left:18px;font-size:15px;display:flex;flex-direction:column;gap:3px}

/* boletim */
.bol{display:flex;flex-direction:column;gap:22px}
.bol section{display:flex;flex-direction:column;gap:8px}
.bol h3{font-size:17px}
.bol-head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between}
.bol-head h2{font-size:24px}
.bol-head .sub{color:var(--muted);font-size:14px}
.sect-h{display:flex;justify-content:space-between;align-items:baseline;gap:4px 10px;flex-wrap:wrap}
.kpis{display:flex;gap:22px;flex-wrap:wrap}
.kpi b{display:block;font-family:var(--display);font-size:26px;line-height:1.05;font-variant-numeric:tabular-nums}
.kpi span{font-size:12.5px;color:var(--muted)}
.alerts{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.alert{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.alert.critico{border-color:var(--danger)}
.alert h4{font-size:16px;display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.alert h4 .nm{display:flex;gap:8px;align-items:center}
.alert h4 .mono{font-size:13px}
.alert ul{margin:0;padding-left:18px;font-size:14px;color:var(--muted);display:flex;flex-direction:column;gap:3px}
.scroll.card{border:1px solid var(--line);border-radius:var(--r)}
table.notas{border-collapse:collapse;width:100%;min-width:760px;background:var(--surface)}
table.notas th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:right;padding:8px 10px;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
table.notas th:first-child,table.notas td:first-child{text-align:left}
table.notas td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:13.5px;white-space:nowrap}
table.notas td.nm{font-family:var(--body);font-size:14.5px;font-weight:700}
table.notas td.low{color:var(--danger);font-weight:700}
table.notas td.na{color:var(--muted)}
.multiples{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.mult{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.mult-h{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.mult-h strong{font-size:14px}
.mult-h .mono{font-size:13px}
.mult .foot{font-size:12px;color:var(--muted)}
svg.spark{width:100%;height:auto;display:block;overflow:visible}
.sp-grade{stroke:var(--line);stroke-width:1}
.sp-ref{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.sp-txt{font-size:10px;fill:var(--muted);font-family:var(--mono)}
.sp-linha{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.sp-ponto{fill:var(--accent);stroke:var(--surface);stroke-width:2}
.sp-fim{stroke:var(--surface);stroke-width:2;fill:var(--ok)}
.sp-fim.critico{fill:var(--danger)} .sp-fim.atencao{fill:var(--warn)}
.bol-rv td input{width:58px;text-align:right;font-family:var(--mono);font-size:14px;padding:6px 5px}
.bol-rv td input.nm{width:170px;text-align:left;font-family:var(--body)}

/* estudos */
.fr{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;font-family:var(--mono);font-size:.85em;line-height:1.05;margin:0 .15em}
.fr span:first-child{border-bottom:1.5px solid currentColor;padding:0 .2em}
.fr span:last-child{padding:0 .2em}
a.kid.estudo{text-decoration:none;color:var(--ink)}
a.kid.estudo:hover{border-color:var(--muted)}
.sumario{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:4px}
.topico h2{display:flex;gap:10px;align-items:center}
.n-top{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--hi);color:var(--hi-ink);font-size:16px;flex:none}
.explica p{margin:0 0 10px;font-size:16.5px;line-height:1.55}
.explica p:last-child{margin-bottom:0}
figure.visual{margin:0;padding:12px;background:var(--sunk);border-radius:var(--r);overflow-x:auto}
figure.visual svg{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}
.videos h3{font-size:15px;margin-bottom:4px}
.videos ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.lista-simples{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.linha-recorte{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;background:var(--sunk);border-radius:8px;padding:8px 10px;font-size:14px}
fieldset.field{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;margin:0}
fieldset.field legend{padding:0 4px}
.questao{border:1px solid var(--line)}
.questao.certa{border-left:4px solid var(--ok)}
.questao.errada{border-left:4px solid var(--danger)}
.q-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.q-num{font-family:var(--display);font-weight:800;font-size:15px;padding:0 4px}
.q-enun{margin:0;font-size:17px;font-weight:700;line-height:1.45}
.alts{display:flex;flex-direction:column;gap:8px}
.alt{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;font-size:16px;min-height:48px}
.alt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.alt input{width:20px;height:20px;flex:none;margin:0}
.alt .letra{font-family:var(--mono);color:var(--muted)}
.expl{margin:0;font-size:15px}
.expl.erro{color:var(--danger)}
.resultado .kpi b{font-size:34px}
.sec-titulo{font-size:19px}
.btn.estudar{border-color:var(--accent);color:var(--accent)}
/* desenhos dos pacotes (SVG próprio): cores pelo tema */
.v-fill{fill:var(--accent);stroke:var(--ink);stroke-width:1.5}
.v-vazio{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}
.v-grupo{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 3}
.v-grupo-destaque{fill:var(--hi);fill-opacity:.35;stroke:var(--warn);stroke-width:2}
.v-linha{stroke:var(--ink);stroke-width:2;fill:none;stroke-linecap:round}
.v-linha-p{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.v-ponto{fill:var(--danger);stroke:var(--surface);stroke-width:2}
.v-txt{fill:var(--ink);font-family:var(--body);font-size:14px}
.v-peq{font-size:12px}
.v-grande{font-family:var(--display);font-size:26px;font-weight:800}
.v-ok-txt{fill:var(--ok);font-weight:700}
.v-erro-txt{fill:var(--danger);font-weight:700}
.v-palito rect{fill:var(--warn);opacity:.55}
.v-palito-d rect{fill:var(--warn)}
.v-copo{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round}
.v-agua{fill:#7FB8F0;opacity:.55}
.v-agua-doce{fill:#7FB8F0;opacity:.75}
.v-tinta{fill:var(--kid2);opacity:.6}
.v-oleo{fill:#E9C23A;opacity:.85}
.v-areia{fill:#B98A4E}
.v-acucar{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}
.v-po{fill:var(--kid2)}
.v-rocha{fill:var(--sunk);stroke:var(--ink);stroke-width:1.5}
.v-min1{fill:#E8E4DA;stroke:var(--ink)} .v-min2{fill:#D98C8C} .v-min3{fill:#3A3A3A}
.v-gas1{fill:var(--accent);opacity:.7} .v-gas2{fill:var(--ok);opacity:.7} .v-gas3{fill:var(--warn);opacity:.8}
.v-rotulo{fill:var(--surface);stroke:var(--ink);stroke-width:1}
.v-fill-claro{fill:var(--accent-soft);stroke:var(--ink);stroke-width:1.5}
.v-linha-fina line,.v-linha-fina{stroke:var(--ink);stroke-width:1}
.v-linha line{stroke:var(--ink);stroke-width:2}
.v-regua{fill:#F3E3A8;stroke:var(--ink);stroke-width:1.5}
/* barras Cuisenaire (cores do material) */
.v-cz-laranja{fill:#F08A24;stroke:var(--ink)} .v-cz-amarela{fill:#F5D130;stroke:var(--ink)} .v-cz-vermelha{fill:#D93A34;stroke:var(--ink)}
.v-cla{fill:var(--accent-ink)}
.v-contorno{fill:none;stroke:var(--ok);stroke-width:4}
.v-sol{fill:#F5C542;stroke:#E0A800;stroke-width:2}
.v-sal{fill:#F4F4F4;stroke:var(--muted);stroke-width:.5}
.v-po-cafe,.v-cafe{fill:#6B4226}
.v-cafe{opacity:.8}
.v-ima{fill:#D93A34;stroke:var(--ink);stroke-width:1.5}
.v-ferro,.v-ferro g,.v-ferro circle{fill:#5C6470}
.v-ferro-bloco{fill:#8A929E;stroke:var(--ink);stroke-width:1.5}
.v-ferrugem{fill:#C0602A;stroke:var(--ink);stroke-width:1.5}
.v-farinha{fill:#F2EBDD;stroke:var(--muted)}
.v-gelo{fill:#CFE8FA;stroke:#6FA8D6;stroke-width:2}
.v-gota circle,.v-gota{fill:#7FB8F0}
.v-planta{fill:#3E9E54;stroke:var(--ink);stroke-width:1}
.v-caule{stroke:#6B8E3A;stroke-width:6;stroke-linecap:round}
.v-raiz{fill:none;stroke:#8B6A3E;stroke-width:3;stroke-linecap:round}
.v-nuvem{fill:#E4E9F0;stroke:var(--muted);stroke-width:1.5}
.v-clara-crua{fill:#F4F1DE;fill-opacity:.55;stroke:var(--muted)}
.v-clara{fill:#FFFFFF;stroke:var(--muted)}
.v-gema{fill:#F2B705}
.v-milho{fill:#F2C230;stroke:#B58A12;stroke-width:1.5}
.v-pipoca{fill:#FFF8E7;stroke:#D9B54A;stroke-width:1.5}
.v-caule-bloco{fill:#8B6A3E;stroke:var(--ink);stroke-width:1}
.v-latex{fill:#F4F1DE;stroke:var(--muted)}
/* barbantes */
.v-fio-azul,.v-fio-vermelho,.v-fio-verde,.v-fio-amarelo{stroke-width:6;stroke-linecap:round}
.v-fio-azul{stroke:#3B6FD9} .v-fio-vermelho{stroke:#D93A34} .v-fio-verde{stroke:#2E9E5B} .v-fio-amarelo{stroke:#E0B520}

footer.rodape{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-top:10px}
footer.rodape form{display:inline-flex;gap:4px;align-items:center}
footer.rodape button{border:0;background:none;color:var(--muted);text-decoration:underline;padding:2px 4px;font-size:13px}
footer.rodape button[aria-pressed="true"]{color:var(--ink);font-weight:700;text-decoration:none}
@media (prefers-reduced-motion:no-preference){.task{transition:opacity .2s}}
/* Semana de provas e calendário da escola */
fieldset.mods{border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:6px;margin:6px 0 0}
fieldset.mods legend{padding:0 4px;font-weight:700;font-size:14px}
.provas-painel .agora{background:var(--warn-soft);border-radius:8px;padding:8px 12px;margin:0 0 8px}
ol.provas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
ol.provas li{display:flex;gap:12px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
ol.provas li.proxima{border-color:var(--warn);box-shadow:0 0 0 1px var(--warn)}
ol.provas li.passou{opacity:.55}
ol.provas .p-dia{min-width:78px;font-weight:700}
ol.provas .p-info{display:flex;flex-direction:column;gap:4px;flex:1}
ol.provas .p-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.classes.escola{color:var(--warn);font-weight:600}
.cal-escola li.passado{opacity:.5}
tr.hoje td{background:var(--ok-soft)}
/* Conteúdo do ano: abas por livro (botões de opção, sem JS) > matérias que abrem e fecham > módulos em uma linha */
.arvore{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.arvore input.aba{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.arvore label.aba{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:700;cursor:pointer}
.arvore input.aba:checked+label.aba{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.arvore input.aba:focus-visible+label.aba{outline:2px solid var(--accent);outline-offset:2px}
.arvore .marca{width:8px;height:8px;border-radius:50%;background:var(--warn)}
.arvore .marca.critico{background:var(--danger)}
.arvore .painel-livro{display:none;flex-basis:100%;flex-direction:column;gap:6px;margin-top:4px}
.arvore input.aba:nth-of-type(1):checked~.painel-livro:nth-of-type(1),.arvore input.aba:nth-of-type(2):checked~.painel-livro:nth-of-type(2),
.arvore input.aba:nth-of-type(3):checked~.painel-livro:nth-of-type(3),.arvore input.aba:nth-of-type(4):checked~.painel-livro:nth-of-type(4),
.arvore input.aba:nth-of-type(5):checked~.painel-livro:nth-of-type(5),.arvore input.aba:nth-of-type(6):checked~.painel-livro:nth-of-type(6){display:flex}
.arvore details{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.arvore summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:46px}
.arvore summary::-webkit-details-marker{display:none}
.arvore summary::before{content:"▸";font-size:14px;color:var(--muted);transition:transform .15s}
.arvore details[open]>summary::before{transform:rotate(90deg)}
.arvore summary .t{font-weight:700;flex:1}
.arvore summary .n{font-size:12px;color:var(--muted);background:var(--sunk);border-radius:999px;padding:1px 8px;white-space:nowrap}
.arvore ul.modulos{list-style:none;margin:0;padding:0 6px 6px;display:flex;flex-direction:column;gap:2px}
.arvore ul.modulos a,.arvore ul.modulos label{display:flex;gap:10px;align-items:center;padding:7px 8px;border-radius:8px;text-decoration:none;color:var(--ink);min-height:40px}
.arvore ul.modulos a:hover{background:var(--sunk)}
.arvore ul.modulos li.foco a,.arvore ul.modulos li.foco label{background:var(--warn-soft)}
.arvore .num{min-width:26px;font-weight:700;text-align:right}
.arvore .tit{flex:1;min-width:0}
.arvore .pag{font-size:12px;color:var(--muted);white-space:nowrap}
.arvore ul.modulos li.sem-pacote .tit{color:var(--muted)}
/* BNCC: resumo por matéria, lista de habilidades e habilidades do módulo */
.bncc-resumo{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.bncc-resumo a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--ink);min-height:44px}
.bncc-resumo a:hover{background:var(--sunk)}
.bncc-resumo .t{min-width:130px;font-weight:600}
.bncc-resumo .n{font-size:13px;color:var(--muted);white-space:nowrap}
progress.barra{flex:1;height:10px;border:0;border-radius:999px;background:var(--sunk);overflow:hidden;appearance:none;-webkit-appearance:none}
progress.barra::-webkit-progress-bar{background:var(--sunk);border-radius:999px}
progress.barra::-webkit-progress-value{background:var(--ok);border-radius:999px}
progress.barra::-moz-progress-bar{background:var(--ok);border-radius:999px}
.bncc-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.bncc-lista details{border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.bncc-lista summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;padding:8px 10px;min-height:44px}
.bncc-lista .cod{font-weight:700;font-size:13px}
.bncc-lista .tx{flex:1;min-width:180px}
.bncc-lista li.falta .cod{color:var(--warn)}
.bncc-lista details>p,.bncc-lista .bncc-mods{margin:0 10px 8px}
.bncc-mods{padding-left:18px}
.bncc-modulo{margin-top:10px;font-size:14px}
.bncc-modulo summary{cursor:pointer;color:var(--muted)}
.bncc-modulo ul{padding-left:18px}
/* Revisão espaçada */
a.aviso-revisao{display:block;text-decoration:none;color:var(--ink);background:var(--warn-soft);border-color:var(--warn)}
.revisao .kpis{margin-top:8px}
/* Checagem "Entendi?" */
.entendi{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.entendi form{margin:0}
.checagem .retorno{margin-top:8px;padding:10px 12px;border-radius:8px}
.checagem .retorno.ok{background:var(--ok-soft)}
.checagem .retorno.erro{background:var(--danger-soft)}
.checagem .num-linha{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.js-so{display:none}
.tem-js .js-so{display:inline-flex}
.segunda-explicacao{border-color:var(--accent)}
.dica-casa{margin-top:6px}
.dica-casa summary{cursor:pointer;color:var(--accent)}
ul.estudado{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
ul.estudado li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}
form.inline{display:inline;margin-left:6px}
/* Tela inicial (IDEIAS 8.1 e 8.2) */
.info{display:inline-block;position:relative;vertical-align:middle;font-family:var(--body,inherit)}
.info>summary{list-style:none;cursor:pointer;width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;font-size:15px;font-weight:700;color:var(--accent);border:1px solid var(--line);background:var(--surface)}
.info>summary::-webkit-details-marker{display:none}
.info[open]>summary{background:var(--accent);color:var(--accent-ink)}
.info>p{position:absolute;z-index:30;left:50%;transform:translateX(-50%);top:34px;width:min(280px,86vw);margin:0;background:var(--ink);color:var(--bg);padding:10px 12px;border-radius:8px;font-size:13.5px;font-weight:400;line-height:1.45;text-transform:none;letter-spacing:0;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.info-ico{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--line);color:var(--accent);font-size:12px}
.hoje-amanha h2,.proximas h2{display:flex;align-items:center;gap:8px}
.ha-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:15px}
.chip-nome{font-weight:700;display:inline-flex;align-items:center;gap:6px;margin-right:4px}
.ok-txt{color:var(--ok);font-weight:600}
.camadas{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:12px 0}
.camadas .chip{min-height:40px}
.agenda{display:grid;gap:12px}
@media (min-width:900px){.agenda{grid-template-columns:330px minmax(0,1fr);grid-template-areas:"cal semana" "prox semana";align-items:start}.agenda-cal{grid-area:cal}.agenda-prox{grid-area:prox}.agenda-semana{grid-area:semana}}
.agenda-cal,.agenda-prox{min-width:0}
@media (max-width:899px){table.mc td a{min-height:36px}}
details.mini-cal>summary{cursor:pointer;list-style:none;font-weight:700;min-height:28px}
details.mini-cal>summary::-webkit-details-marker{display:none}
details.mini-cal>summary::before{content:"▸ ";color:var(--muted)}
details.mini-cal[open]>summary::before{content:"▾ "}
.mc-nav{display:flex;align-items:center;justify-content:space-between;margin:8px 0;font-weight:600;text-transform:capitalize}
table.mc{width:100%;border-collapse:separate;border-spacing:2px;table-layout:fixed}
table.mc th{font-size:11px;color:var(--muted);font-weight:600;padding:2px 0}
table.mc td{padding:0}
table.mc td a{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;min-height:42px;padding:4px 0;border-radius:6px;text-decoration:none;color:var(--ink)}
table.mc td a:hover{background:var(--sunk)}
table.mc td.sem-aula a{background:var(--sunk);color:var(--muted)}
table.mc td.fora a{opacity:.4}
table.mc td.na-semana a{box-shadow:inset 0 0 0 2px var(--accent-soft)}
table.mc td.hoje .n{background:var(--hi);color:var(--hi-ink);border-radius:4px;padding:0 4px;font-weight:700}
table.mc .n{font-size:13px;font-variant-numeric:tabular-nums}
table.mc .pontos{display:flex;gap:2px;align-items:center;font-size:10px;line-height:1;min-height:6px}
.mc i,.legenda i{display:inline-block;width:7px;height:7px;border-radius:50%}
.p-escola{background:var(--warn)}
.p-tarefas{background:var(--accent)}
.p-prova{background:var(--danger)}
.p-revisoes{background:var(--ok)}
.legenda{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--muted);margin:10px 0 0}
.legenda span{display:inline-flex;align-items:center;gap:4px}
.legenda .sa{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--sunk);border:1px solid var(--line)}
.lista-datas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:14.5px}
.lista-datas li{display:flex;gap:10px;align-items:baseline}
.lista-datas .mono{min-width:76px;color:var(--muted);font-size:13px}
.agenda-semana .weeknav{margin-bottom:8px}
.semana-lista{display:flex;flex-direction:column;gap:8px}
details.dia{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
details.dia>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:12px 14px;min-height:52px;position:relative;padding-right:36px}
details.dia>summary::-webkit-details-marker{display:none}
details.dia>summary::after{content:"▸";position:absolute;right:14px;top:14px;color:var(--muted);transition:transform .15s}
details.dia[open]>summary::after{transform:rotate(90deg)}
.dia-t{display:flex;align-items:baseline;gap:8px;text-transform:capitalize}
.dia-t .mono{font-size:12.5px;color:var(--muted);text-transform:none}
details.dia.is-today .dia-t strong{background:var(--hi);color:var(--hi-ink);padding:0 6px;border-radius:4px}
details.dia.is-late{border-color:var(--danger);background:var(--danger-soft)}
details.dia.is-late .dia-t strong{color:var(--danger)}
.faixa-escola{font-size:13.5px;color:var(--warn);font-weight:600;background:var(--warn-soft);border-radius:6px;padding:3px 8px;align-self:flex-start}
.faixa-escola .rot{font-weight:700}
.resumo-dia{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;align-items:center}
.tipo-dia{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.tag.mini{font-size:11.5px;padding:0 6px;background:var(--sunk);color:var(--ink);border-radius:999px}
.dia-corpo{padding:0 10px 12px;display:flex;flex-direction:column;gap:8px}
.tour{border-color:var(--accent);background:var(--accent-soft)}
.tour-passos{padding-left:22px;margin:8px 0 12px;display:flex;flex-direction:column;gap:6px;line-height:1.45}
.top-act{display:flex;gap:8px;align-items:center}
/* Meu dicionário (Inglês) */
.vocab{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.vocab li{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.vocab-pal{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:16px}
.vocab-pal input[type=checkbox]{width:20px;height:20px;margin:0}
.vocab-ex{font-size:14px;color:var(--ink)}
.vocab li form.inline{margin:4px 0 0;align-self:flex-start}
.vocab-topico{display:flex;flex-direction:column;gap:8px}
.vocab-topico h3{font-size:15px;margin:0}
.vocab-topico form{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.falar{border:1px solid var(--line);background:var(--sunk);border-radius:999px;min-width:36px;min-height:36px;cursor:pointer;font-size:16px;line-height:1}
.caixas{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:1px}
.cartao-vocab{text-align:center;align-items:center}
.cartao-frente{font-size:32px;margin:12px 0;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}
.cartao-frente .falar{min-width:48px;min-height:48px;font-size:22px}
.cartao-verso{width:100%}
.cartao-verso>summary{list-style:none;display:inline-flex;margin:0 auto}
.cartao-verso>summary::-webkit-details-marker{display:none}
.cartao-resp{font-size:24px;font-weight:700;margin:12px 0 4px}
.cartao-verso .acts{justify-content:center}
.teste-res{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:10px}
.teste-res .certo{color:var(--ok)}
.teste-res .errado{color:var(--danger)}
.teste-res li>span,.teste-res li>strong{color:var(--ink)}
