/* AVS — estilos das telas (extraídos do layout) e peças do sistema (menus, diálogos, avisos, impressão) */
body{margin:0;background:#F3F2EC}
a{color:#2C7258}a:hover{color:#123D2E}
.tk input,.tk select,.tk textarea{font:inherit}
.hidden,[hidden]{display:none!important}

/* ---------- status e reposição ---------- */
.chip.ates{background:#E4E9F5;color:#2F3F73}
.chip.sab{background:#E9E4F1;color:#4D3A72}
.chip.rosa{background:#F7E1EE;color:#7A1F55}
.chip.ceu{background:#DFF0F8;color:#1B5675}
.chip.teal{background:#DDF0EE;color:#145B56}
.chip.lima{background:#EEF4D2;color:#4A5A12}
.chip.marrom{background:#EFE4DA;color:#5E3B22}
.chip.grafite{background:#E3E6EA;color:#2E3640}
.chip.printed{background:#E4E9F5;color:#2F3F73}
.chip.nee{background:#E3EEE6;color:#1A5340;border:1px solid #9CC2AB}
.rep{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:2px 10px 2px 8px;border-radius:8px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid #D2D0C4;color:#44524B;background:#FCFBF7}
.rep .ic{width:13px;height:13px;stroke-width:2.3}
.rep.wait{border-color:#E6CF86;color:#6E4D00}
.rep.done{border-color:#A9D3B8;color:#1B5E3A;background:#E2F1E7}
.rep.bill{border-color:#F0B9A3;color:#9A3A17;background:#FADFD3}
.rep.na{color:#5F6B65;border-style:dashed}
.lg-row{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:center;padding:8px 0;border-top:1px solid #E2E0D6}
.lg-row:first-child{border-top:0}

/* ---------- login / acesso ---------- */
.note{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#DCE7E0;backdrop-filter:blur(6px);max-width:340px}
.note .i{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none}
.school-opt{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 16px;border-radius:18px;border:1px solid #D2D0C4;background:#FFFFFF;cursor:pointer;transition:border-color .2s,box-shadow .25s,transform .25s cubic-bezier(.2,.75,.15,1)}
.school-opt:hover{border-color:#2C7258;transform:translateY(-2px);box-shadow:0 14px 28px -18px rgba(10,42,31,.4)}
.school-opt.on,.school-opt:has(input:checked){border-color:#123D2E;box-shadow:inset 0 0 0 1px #123D2E;background:#E3EEE6}
.school-opt input{position:absolute;opacity:0;pointer-events:none}
.dots-step{display:flex;gap:6px}
.dots-step span{height:6px;width:22px;border-radius:99px;background:#D2D0C4;transition:background .3s,width .3s}
.dots-step span.on{background:#123D2E;width:38px}
.big-ico{width:56px;height:56px;border-radius:16px;display:grid;place-items:center}

/* ---------- faltas (tela principal) ---------- */
.fchip{border:1px solid #D2D0C4;background:transparent;color:#44524B;min-height:36px;padding:0 14px;transition:background .25s,color .2s,border-color .2s}
a.fchip:hover,.fchip:hover{border-color:#44524B;color:#44524B}
.fchip.on,a.fchip.on:hover{background:#123D2E;border-color:#123D2E;color:#FFFFFF}
.kpi-btn{text-align:left;width:100%;color:inherit;transition:transform .4s cubic-bezier(.2,.75,.15,1),box-shadow .4s,border-color .3s}
.kpi-btn:hover{transform:translateY(-3px);box-shadow:0 18px 36px -18px rgba(10,42,31,.30);border-color:#D2D0C4;color:inherit}
.kpi-btn.on{outline:2px solid #CDEB6E;outline-offset:2px}
.gh{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:16px 18px;background:#F7F6F1;border-bottom:1px solid #E2E0D6}
.gico{width:42px;height:42px;border-radius:12px;background:#123D2E;color:#CDEB6E;display:grid;place-items:center;flex:none}
.sb{display:flex;flex-wrap:wrap;gap:4px 18px;padding:12px 18px;border-bottom:1px solid #E2E0D6;transition:background .25s}
.sb:last-child{border-bottom:0}
.sb:hover{background:#FAF9F4}
.sb-id{flex:1 1 230px;max-width:300px;display:flex;align-items:flex-start;gap:12px;padding-top:4px;min-width:0}
.sb-lines{flex:999 1 560px;min-width:0;display:flex;flex-direction:column}
.ln{display:grid;grid-template-columns:24px minmax(140px,1fr) 118px 164px minmax(170px,1fr) 36px;align-items:center;gap:6px 14px;min-height:44px;padding:3px 0}
.ln.sem-status{grid-template-columns:24px minmax(140px,1fr) 164px minmax(170px,1fr) 36px}
.ln + .ln{border-top:1px dashed #E2E0D6}
.ln input,.tbl input[type=checkbox]{width:16px;height:16px;accent-color:#123D2E;margin:0}
.more{width:36px;height:36px;border-radius:10px;border:1px solid #E2E0D6;background:#FCFBF7;color:#44524B;display:grid;place-items:center;cursor:pointer}
.more:hover{border-color:#D2D0C4;background:#fff}
.sb-lines{container-type:inline-size}
@container (max-width:680px){
  .ln{grid-template-columns:24px minmax(0,1fr) auto 36px;grid-template-areas:"c d s m" ". r g g";row-gap:4px;padding:6px 0}
  .ln > :nth-child(1){grid-area:c}.ln > :nth-child(2){grid-area:d}.ln > :nth-child(3){grid-area:s}
  .ln > :nth-child(4){grid-area:r}.ln > :nth-child(5){grid-area:g}.ln > :nth-child(6){grid-area:m}
  .ln.sem-status{grid-template-columns:24px minmax(0,1fr) auto 36px;grid-template-areas:"c d r m" ". g g g"}
  .ln.sem-status > :nth-child(3){grid-area:r}.ln.sem-status > :nth-child(4){grid-area:g}.ln.sem-status > :nth-child(5){grid-area:m}
}
@media (max-width:760px){.sb-id{max-width:none}}

/* ---------- painel ---------- */
.drow{display:grid;grid-template-columns:150px minmax(0,1fr) 36px;gap:12px;align-items:center;padding:7px 0}
.dk-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:rgba(255,255,255,.06);color:#DCE7E0}
.dk-row:hover{background:rgba(255,255,255,.1);color:#FFFFFF}

/* ---------- registrar falta ---------- */
.origin{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;border:1px solid #D2D0C4;background:#FFFFFF;text-align:left;flex:1 1 220px;color:#0F1F19;transition:border-color .2s,box-shadow .2s}
.origin:hover{border-color:#2C7258;color:#0F1F19}
.origin.on{border-color:#123D2E;box-shadow:inset 0 0 0 1px #123D2E;background:#E3EEE6}
.origin.off{opacity:.5;pointer-events:none}
.mrow{padding:12px 20px;border-bottom:1px solid #E2E0D6;display:flex;flex-direction:column;gap:10px;transition:background .25s}
.mrow:last-child{border-bottom:0}
.mrow.abs{background:#FFFBEF}
.mhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.days{display:flex;flex-direction:column;gap:8px;padding-left:50px}
.dayg{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.daybtn{border:1px solid #E2E0D6;background:#FCFBF7;border-radius:8px;font-family:var(--f-mono);font-size:11.5px;font-weight:500;color:#44524B;min-height:32px;padding:0 10px;min-width:112px;text-align:left}
.daybtn:hover{border-color:#44524B}
.daybtn.on{background:#123D2E;border-color:#123D2E;color:#CDEB6E}
.dp{min-height:32px;padding:0 12px;border-radius:999px;border:1px dashed #D2D0C4;background:#FFFFFF;font-size:12.5px;font-weight:600;color:#5F6B65;display:inline-flex;align-items:center;gap:6px;transition:background .2s,border-color .2s,color .2s}
.dp:hover{border-color:#44524B;color:#0F1F19}
.dp.on{background:#F8EDC8;border:1px solid #D9A91A;color:#6E4D00}
.dp.ja{background:#ECEBE4;border:1px solid #ECEBE4;color:#4B514D;cursor:default}
.dp .ic{width:13px;height:13px;stroke-width:2.4}
.dp:not(.on):not(.ja) .ic{display:none}
.flag{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 14px 0 8px;border-radius:999px;border:1px solid #D2D0C4;background:#FFFFFF;font-weight:600;font-size:13px;color:#44524B}
.flag.on{background:#123D2E;border-color:#123D2E;color:#FFFFFF}
.flag .toggle{pointer-events:none;width:34px;height:20px}
.flag .toggle::after{width:14px;height:14px}
.flag.on .toggle{background:#CDEB6E}
.flag.on .toggle::after{transform:translateX(14px);background:#123D2E}
.dnav{display:flex;align-items:center;gap:10px;width:100%;text-align:left;min-height:44px;padding:6px 12px;border-radius:12px;border:0;background:transparent;font-size:13.5px;font-weight:500;color:#0F1F19}
.dnav:hover{background:#ECEBE4}
.dnav.on{background:#123D2E;color:#FFFFFF}
.dnav .cnt{margin-left:auto;font-size:11px;font-weight:600;min-width:22px;text-align:center;padding:1px 7px;border-radius:99px;background:#ECEBE4;color:#44524B}
.dnav .cnt.hot{background:#F8EDC8;color:#6E4D00}
.dnav.on .cnt{background:#CDEB6E;color:#123D2E}
.srow{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 20px;border-bottom:1px solid #E2E0D6;cursor:pointer}
.srow:last-child{border-bottom:0}
.srow.abs{background:#FFFBEF}
.srow input{width:18px;height:18px;accent-color:#B98A0E;margin:0}
.sumbar{position:sticky;bottom:16px;z-index:3;background:#123D2E;border-color:#123D2E;color:#DCE7E0;display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;box-shadow:0 24px 48px -24px rgba(10,42,31,.6)}
.sumbar .input{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#FFFFFF;height:40px}
.sumbar .input option{color:#0F1F19}
.sumbar .label{color:#B9CCC2}
@media (max-width:760px){.days{padding-left:0}}

/* ---------- operador / usuários (escolhas) ---------- */
.choice{font-size:13px;min-height:44px;cursor:pointer}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice:has(input:checked){border-color:var(--forest);background:var(--forest-100);box-shadow:inset 0 0 0 1px var(--forest)}
.choice:has(input:checked) .radio{border:6px solid var(--forest)}
.choice.multi{align-items:flex-start;padding:12px 14px}
.choice.multi .radio{margin-top:2px}
.choice:has(input:focus-visible){outline:2px solid var(--forest-500);outline-offset:2px}

/* ---------- calendário ---------- */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #E2E0D6;min-width:720px}
.cal .wd{padding:10px 12px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#5F6B65;background:#F7F6F1;border-bottom:1px solid #E2E0D6}
.cal .d{min-height:112px;padding:8px;border-right:1px solid #E2E0D6;border-bottom:1px solid #E2E0D6;display:flex;flex-direction:column;gap:4px;min-width:0}
.cal .d:nth-child(7n){border-right:0}
.cal .d .n{font-size:12.5px;font-weight:600;color:#44524B}
.cal .d.wk{background:#F7F6F1}
.cal .d.out .n{color:#B9B6AA}
.cal .d.today .n{background:#123D2E;color:#CDEB6E;border-radius:99px;padding:1px 8px;align-self:flex-start}
.ev{display:block;font-size:11.5px;font-weight:600;padding:4px 7px;border-radius:7px;line-height:1.3;overflow:hidden;text-overflow:ellipsis}
a.ev:hover{filter:brightness(.96)}
.ev.rep{background:#F8EDC8;color:#6E4D00}
.ev.prova{background:#123D2E;color:#FFFFFF}
.ev.ativ,.chip.ativ{background:#E4E9F5;color:#2F3F73}
.ev.fer{background:#ECEBE4;color:#4B514D}

/* ---------- avaliações ---------- */
.pick{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid #D2D0C4;background:#FFFFFF;font-weight:600;font-size:13px;color:#44524B;cursor:pointer}
.pick input{width:16px;height:16px;accent-color:#123D2E;margin:0}
.pick.on,.pick:has(input:checked){background:#E3EEE6;border-color:#123D2E;color:#123D2E}
.pick.oculto{display:none}
.tbl .input{height:38px;border-radius:10px}
.file-pick{position:relative;overflow:hidden}
.file-pick input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}

/* ---------- mecanografia ---------- */
.obs{border:1px dashed #D2D0C4;background:transparent;border-radius:10px;min-height:32px;padding:0 10px;font-size:12.5px;color:#5F6B65;cursor:pointer;text-align:left}
.obs:hover{border-color:#44524B;color:#0F1F19}
.obs.tem{border-style:solid;border-color:transparent;color:#0F1F19;padding:0}
.split{display:flex;flex-direction:column;gap:2px;align-items:flex-end}
.ctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* ---------- professor / turmas ---------- */
.tc{display:flex;flex-direction:column;gap:16px;color:#0F1F19}
.tc:hover{color:#0F1F19}
.tc .go{color:#5F6B65;transition:transform .3s cubic-bezier(.2,.75,.15,1)}
.tc:hover .go{transform:translateX(3px);color:#0F1F19}
button.tc{text-align:left;width:100%;font:inherit}

/* ---------- alunos ---------- */
.ar{display:grid;grid-template-columns:minmax(240px,1.5fr) 130px 110px 120px minmax(150px,1fr) 120px 28px;gap:8px 18px;align-items:center;padding:12px 18px;border-bottom:1px solid #E2E0D6;min-width:980px;color:#0F1F19;transition:background .25s}
a.ar:hover{background:#F6F5EF;color:#0F1F19}
a.ar:hover .go{transform:translateX(3px);color:#0F1F19}
.ar.head{background:#F7F6F1;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#5F6B65}
.ar .go{color:#5F6B65;transition:transform .3s cubic-bezier(.2,.75,.15,1)}

/* ---------- professores (vínculos) ---------- */
.plist{display:flex;flex-direction:column;gap:2px;max-height:720px;overflow:auto;padding:6px}
.pi{display:flex;gap:10px;align-items:center;width:100%;text-align:left;padding:10px 12px;border-radius:12px;border:0;background:transparent;color:#0F1F19;transition:background .2s}
.pi:hover{background:#F3F2EC;color:#0F1F19}
.pi.on{background:#E3EEE6;box-shadow:inset 0 0 0 1px #9CC2AB}
.pdot{width:8px;height:8px;border-radius:50%;flex:none}
.dcard{border:1px solid #E2E0D6;border-radius:16px;padding:14px 16px;background:#FFFFFF;display:flex;flex-direction:column;gap:12px}
.tchip{display:inline-flex;align-items:center;gap:2px;min-height:30px;padding:0 12px;border-radius:999px;background:#E3EEE6;color:#123D2E;font-size:12.5px;font-weight:600}
.picker{border-top:1px dashed #D2D0C4;padding-top:12px;display:flex;flex-direction:column;gap:8px}
.prow{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.plabel{min-width:92px;min-height:32px;border:0;background:transparent;text-align:left;font-size:12px;font-weight:600;color:#44524B;text-decoration:underline dotted;padding:0;cursor:pointer}
.pk{min-height:32px;padding:0 12px;border-radius:999px;border:1px solid #D2D0C4;background:#FFFFFF;font-size:12.5px;font-weight:600;color:#44524B;display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.pk:hover{border-color:#44524B}
.pk input{position:absolute;opacity:0;pointer-events:none}
.pk:has(input:checked){background:#123D2E;border-color:#123D2E;color:#FFFFFF}
.pk .who{font-weight:500;color:#9A3A17;font-size:11px}
.pk:has(input:checked) .who{color:#CDEB6E}
.pk.nova{border-style:dashed}
.tnav{display:flex;align-items:center;gap:10px;width:100%;text-align:left;min-height:42px;padding:6px 12px;border-radius:12px;border:0;background:transparent;font-size:13.5px;font-weight:500;color:#0F1F19}
.tnav:hover{background:#ECEBE4;color:#0F1F19}
.tnav.on{background:#123D2E;color:#FFFFFF}
.tnav .cnt{margin-left:auto;font-size:11px;font-weight:600;padding:1px 7px;border-radius:99px;background:#FADFD3;color:#9A3A17}
.tnav .cnt.ok{background:#E2F1E7;color:#1B5E3A}
.tnav.on .cnt{background:#CDEB6E;color:#123D2E}

/* ---------- períodos / relatórios / logs / configurações ---------- */
.yr{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 16px;border-radius:16px;border:1px solid #D2D0C4;background:#FFFFFF;color:#0F1F19}
.yr:hover{border-color:#2C7258;color:#0F1F19}
.yr.on{border-color:#123D2E;box-shadow:inset 0 0 0 1px #123D2E;background:#E3EEE6}
.rc{display:flex;flex-direction:column;gap:12px}
.rc .ico{width:40px;height:40px;border-radius:11px;background:#E3EEE6;color:#123D2E;display:grid;place-items:center}
.diff{display:inline-flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}
.diff s{color:#5F6B65}
.sr-row{display:grid;grid-template-columns:56px minmax(180px,1fr) 150px 150px 140px 140px 70px;gap:10px 16px;align-items:center;padding:12px 18px;border-bottom:1px solid #E2E0D6;min-width:960px}
.sr-row.head{background:#F7F6F1;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#5F6B65}
.sr-row:last-child{border-bottom:0}
.sr-row.removido{opacity:.45}
.sr-row.removido .input{text-decoration:line-through}
.grip{display:flex;flex-direction:column;gap:2px}
.grip button{width:26px;height:20px;border:1px solid #E2E0D6;border-radius:6px;background:#FCFBF7;display:grid;place-items:center;color:#5F6B65;padding:0}
.grip button:hover{border-color:#44524B;color:#0F1F19}
.grip .ic{width:12px;height:12px}
.sw{display:flex;align-items:center;gap:10px}
.tgl{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.tgl input{position:absolute;opacity:0;pointer-events:none}
.tgl .toggle{pointer-events:none}
.tgl input:checked + .toggle{background:var(--forest)}
.tgl input:checked + .toggle::after{transform:translateX(18px)}
.tgl input:focus-visible + .toggle{outline:2px solid var(--forest-500);outline-offset:2px}
.tgl .sim{display:none}.tgl input:checked ~ .sim{display:inline}.tgl input:checked ~ .nao{display:none}

/* ---------- área técnica ---------- */
.dev .side{background:#061C14}
.dev .main{background:#0A2A1F;color:#DCE7E0}
.dev .topbar{background:#0A2A1F;border-color:rgba(255,255,255,.08)}
.dev .search{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);color:#8FA89C}
.dev .search input{color:#FFFFFF}
.dev .kbd{background:transparent;border-color:rgba(255,255,255,.18);color:#8FA89C}
.dev .side-toggle{background:#0F3326;border-color:rgba(255,255,255,.16);color:#DCE7E0}
.dev .side-toggle:hover{background:#CDEB6E;border-color:#CDEB6E;color:#0A2A1F}
.dev .side-toggle .tip-pill,.dev.nav-mini .nav a[data-tip]::after{background:#CDEB6E;color:#0A2A1F}
.dev.nav-mini .nav .count{box-shadow:0 0 0 2px #061C14}
.dev a{color:#CDEB6E}.dev a:hover{color:#FFFFFF}
.dev .nav a{color:#B9CCC2}.dev .nav a:hover{color:#fff}.dev .nav a.on{color:var(--forest-900)}
.dev .brand{color:#fff}
.dk{background:#0F3326;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:22px;min-width:0}
.dk-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.t1{color:#FFFFFF}.t2{color:#B9CCC2}.t3{color:#8FA89C}
.dk .eyebrow{color:#CDEB6E}
.dk .h2{color:#FFFFFF}
.dline{height:1px;background:rgba(255,255,255,.08)}
.svc{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.svc:last-child{border-bottom:0}
.dtbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:820px}
.dtbl.sm{min-width:560px}
.dtbl th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8FA89C;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.1)}
.dtbl td{padding:12px;border-bottom:1px solid rgba(255,255,255,.06);color:#DCE7E0;vertical-align:middle}
.dtbl tbody tr{transition:background .2s}
.dtbl tbody tr:hover{background:rgba(255,255,255,.03)}
.bars{display:flex;align-items:flex-end;gap:3px;height:64px}
.bars span{flex:1;border-radius:3px 3px 0 0;background:rgba(205,235,110,.35);transform-origin:bottom;animation:tk-grow-y .8s cubic-bezier(.2,.75,.15,1) backwards;min-height:2px}
.bars span:last-child{background:#CDEB6E}
.dmeter{height:6px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}
.dmeter > span{display:block;height:100%;border-radius:99px;transform-origin:left center;animation:tk-grow-x 1.2s cubic-bezier(.2,.75,.15,1) backwards;background:#CDEB6E}
.ok-dot{width:8px;height:8px;border-radius:50%;background:#4CC38A;flex:none}
.warn-dot{width:8px;height:8px;border-radius:50%;background:#E8B93A;flex:none}
.dchip{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:rgba(255,255,255,.08);color:#DCE7E0;white-space:nowrap}
.dchip.ok{background:rgba(76,195,138,.16);color:#8FE0B5}
.dchip.warn{background:rgba(232,185,58,.16);color:#F0CF74}
.dchip.crit{background:rgba(232,104,130,.16);color:#F3A5B5}
.dchip.lime{background:#CDEB6E;color:#0A2A1F}
.kv{font-family:var(--f-display);font-weight:700;font-size:40px;letter-spacing:-.045em;line-height:1}
.vbars{display:flex;align-items:flex-end;gap:10px;height:120px}
.vbars > span{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.vbars i{display:block;width:100%;border-radius:6px 6px 0 0;background:rgba(205,235,110,.4);min-height:2px}
.vbars > span:last-child i{background:#CDEB6E}
.dk .input,.dev .input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#FFFFFF}
.dk .input option,.dev .input option{color:#0F1F19}
.dk .label,.dev .label{color:#B9CCC2}
.dev .btn{color:#0F1F19}.dev .btn.outline-dark{color:#fff}.dev .btn.lime{color:#0A2A1F}
.dev .pager a,.dev .pager span{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#DCE7E0}

/* ---------- menus suspensos ---------- */
.dd{position:relative}
.dd-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-2);padding:6px;display:none;flex-direction:column;gap:2px}
.dd-menu.up{top:auto;bottom:calc(100% + 6px)}
.dd-menu.left{right:auto;left:0}
.dd.open > .dd-menu{display:flex;animation:tk-rise-sm .2s var(--ease)}
.dd-menu a,.dd-menu button{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:6px 10px;border:0;border-radius:9px;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:500;text-align:left;cursor:pointer}
.dd-menu a:hover,.dd-menu button:hover{background:var(--sunken);color:var(--ink)}
.dd-menu .perigo{color:var(--crit-ink)}
.dd-menu .sep{height:1px;background:var(--line);margin:4px 2px}
.dd-menu .grupo{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:8px 10px 2px}
.dd-menu .on{background:var(--forest-100);font-weight:600}
.side .dd-menu{left:0;right:auto;color:var(--ink)}
.year-menu{max-height:60vh;overflow:auto;min-width:260px}

/* ---------- diálogos ---------- */
dialog.dlg{border:0;border-radius:var(--r-lg);padding:0;width:min(560px,calc(100% - 32px));max-height:calc(100vh - 48px);background:var(--surface);color:var(--ink);box-shadow:var(--sh-3)}
dialog.dlg.lg{width:min(760px,calc(100% - 32px))}
dialog.dlg::backdrop{background:rgba(10,42,31,.5);backdrop-filter:blur(2px)}
dialog.dlg[open]{animation:tk-rise .35s var(--ease)}
.dlg-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 0}
.dlg-b{padding:18px 24px;display:flex;flex-direction:column;gap:14px}
.dlg-f{display:flex;justify-content:flex-end;gap:10px;padding:0 24px 22px;flex-wrap:wrap}
.dlg-x{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--ink-2);cursor:pointer;flex:none}
.dlg-x:hover{border-color:var(--line-2)}

/* ---------- avisos ---------- */
/* Avisos de alteração ("Dados salvos."): no canto de baixo, o mais novo embaixo, subindo ao aparecer. */
.toasts{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;max-width:min(420px,calc(100vw - 40px))}
.toast{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;background:var(--forest-900);color:#E8EFE9;box-shadow:var(--sh-3);font-size:13.5px;animation:tk-rise .45s var(--ease)}
.toast .ic{color:var(--lime);margin-top:1px}
.toast.erro{background:#5A1426}
.toast.erro .ic{color:#F3A5B5}
.toast button{margin-left:auto;background:transparent;border:0;color:inherit;opacity:.7;cursor:pointer;padding:0 0 0 8px;font-size:18px;line-height:1}
.toast.sai{opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;font-size:13px}
.alert.erro{background:var(--crit-bg);color:var(--crit-ink)}
.alert.info{background:var(--forest-100);color:var(--forest-700)}
.alert.warn{background:var(--warn-bg);color:var(--warn-ink)}
.alert ul{margin:0;padding-left:18px;list-style:disc}
.err{color:var(--crit-ink);font-size:12px;font-weight:500}
.input.invalido,.field:has(.err) .input{border-color:#D98A9C}

/* ---------- barra de seleção em lote ---------- */
.bulk{position:sticky;bottom:16px;z-index:5;display:none;align-items:center;gap:12px 18px;flex-wrap:wrap;padding:12px 14px 12px 20px;border-radius:999px;background:var(--forest);color:#DCE7E0;box-shadow:0 24px 48px -24px rgba(10,42,31,.7);align-self:center;max-width:100%}
.bulk.on{display:flex;animation:tk-rise .35s var(--ease)}
.bulk .strong{color:#fff}

/* ---------- paginação ---------- */
.pager{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pager a,.pager span{min-width:36px;height:36px;padding:0 10px;border-radius:10px;border:1px solid #E2E0D6;background:#FCFBF7;font-weight:600;font-size:13px;display:inline-grid;place-items:center;color:var(--ink)}
.pager a:hover{border-color:var(--line-2)}
.pager .on{background:#123D2E;border-color:#123D2E;color:#FFFFFF}
.pager .off{opacity:.45}

/* ---------- vazio ---------- */
.vazio{padding:48px 24px;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}
.vazio .ic{width:28px;height:28px;color:var(--muted)}

/* ---------- impressão A4 ---------- */
.print-bar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;background:var(--forest-900);color:#DCE7E0}
.print-bar a,.print-bar .muted{color:#B9CCC2}
.folhas{display:flex;flex-direction:column;align-items:center;gap:24px;padding:24px 12px 48px;background:#ECEBE4;min-height:100vh}
.folha{width:794px;max-width:100%;min-height:1123px;background:#FFFFFF;padding:44px 52px 40px;display:flex;flex-direction:column;gap:16px;font-size:12px;box-shadow:0 1px 3px rgba(15,31,25,.12);color:#0F1F19}
.folha .pt{width:100%;border-collapse:collapse;font-size:12px}
.folha .pt th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#44524B;padding:5px 6px;border-bottom:1.5px solid #0F1F19}
.folha .pt td{padding:7px 6px;border-bottom:1px solid #D2D0C4;color:#0F1F19;vertical-align:top}
.folha .pt.alto td{padding:0 6px;height:30px;vertical-align:middle}
.folha .pt tr.g td{background:#F3F2EC;font-weight:600;border-bottom:1px solid #0F1F19}
.folha .pt tr.t td{border-top:1.5px solid #0F1F19;font-weight:700}
.folha .pt .r{text-align:right}
.folha .pt .c{text-align:center}
.folha .sec-t{font-family:var(--f-display);font-weight:700;font-size:14px;letter-spacing:-.01em;padding-bottom:6px;border-bottom:1px solid #0F1F19;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.folha .kbox{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #D2D0C4;border-radius:8px}
.folha .kbox b{font-family:var(--f-display);font-size:24px;letter-spacing:-.03em;line-height:1.1}
.folha .sig{display:flex;flex-direction:column;gap:6px;flex:1}
.folha .sig span:first-child{height:30px;border-bottom:1px solid #0F1F19}
.folha .box{display:inline-block;width:14px;height:14px;border:1.5px solid #0F1F19;border-radius:3px;vertical-align:middle}
.folha .neet{display:inline-block;padding:1px 6px;border:1.5px solid #0F1F19;border-radius:4px;font-weight:700;font-size:10.5px}
.folha .info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #D2D0C4;border-radius:8px}
.folha .info div{padding:8px 10px;display:flex;flex-direction:column;gap:2px;border-right:1px solid #D2D0C4}
.folha .info div:last-child{border-right:0}
.folha .info span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#44524B}
.folha .linha{height:22px;border-bottom:1px solid #D2D0C4}
.folha .tg{display:inline-block;padding:1px 6px;border:1px solid #0F1F19;border-radius:4px;font-size:10.5px;font-weight:600}
.folha .tg.at{border-style:dashed}
.folha .cab{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:12px;border-bottom:3px solid #123D2E}
/* cabeçalho da escola: sigla, nome, unidade e contato à esquerda; documento e ano letivo à direita */
.folha .cab-esc{display:flex;align-items:center;gap:12px;min-width:0}
.folha .cab-sigla{flex:none;width:46px;height:46px;border-radius:10px;background:#123D2E;color:#CDEB6E;border:1.5px solid #123D2E;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:700;font-size:17px;letter-spacing:-.02em;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.folha .cab-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.folha .cab-nome{font-family:var(--f-display);font-weight:700;font-size:19px;letter-spacing:-.03em;line-height:1.05}
.folha .cab-contato{font-size:11px}
.folha .cab-doc{flex:none;max-width:42%;display:flex;flex-direction:column;gap:2px;text-align:right}
.folha .rod{display:flex;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid #D2D0C4;color:#44524B;font-size:12px;margin-top:auto}
.folha .over{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#1A5340}
.folha .cinza{color:#44524B}
.envelope{border:1.5px dashed #0F1F19;border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:14px;break-inside:avoid}
.corte{display:flex;align-items:center;gap:10px;color:#44524B;font-size:11px}
.corte::before,.corte::after{content:"";flex:1;border-top:1px dashed #44524B}
/* A4: as margens ficam na própria página, então valem também nas páginas de continuação
   (lista que passa de uma folha). O número da página vai na margem de baixo. */
@page{
  size:A4 portrait;margin:12mm 12mm 13mm;
  @bottom-right{content:"pág. " counter(page) " de " counter(pages);font-family:system-ui,"Segoe UI",Arial,sans-serif;font-size:8pt;color:#7A847E;vertical-align:top;padding-top:3mm}
}
@page paisagem{size:A4 landscape}
.folha.paisagem{width:1123px;min-height:794px;page:paisagem}
@media print{
  html,body,.folhas{background:#FFFFFF!important}
  .print-bar{display:none!important}
  .folhas{padding:0;gap:0;display:block;min-height:0}
  /* altura útil: 297 − 25 mm (retrato) e 210 − 25 mm (paisagem), com 1 mm de folga para não gerar página em branco */
  .folha{box-shadow:none;width:auto;max-width:none;min-height:271mm;padding:0;gap:12px;break-after:page}
  .folha.paisagem{width:auto;min-height:184mm}
  .folha:last-child{break-after:auto}
  .tk *{animation:none!important;transition:none!important}
  .folha .pt td{padding:5px 6px}
  .folha .pt thead{display:table-header-group}
  .folha .pt tr{break-inside:avoid}
  .folha .pt tr.g{break-after:avoid}
  .folha .cab,.folha .info,.folha .sess,.folha .kbox,.folha .sig,.folha .rod,.folha .envelope,.folha .fim{break-inside:avoid}
  .folha>section:not(:has(table)){break-inside:avoid}
  .folha .sec-t,.folha .titulo-folha{break-after:avoid}
}

/* ---------- segmentos com links ---------- */
.seg a{display:inline-flex;align-items:center;border:0;background:transparent;min-height:36px;padding:0 15px;border-radius:999px;font-weight:600;font-size:12.5px;color:var(--ink-2);white-space:nowrap;transition:background .3s var(--ease),color .2s,box-shadow .3s}
.seg a:hover{color:var(--ink)}
.seg a.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(15,31,25,.12)}
.seg.dark a{color:#B9CCC2}
.seg.dark a.on{background:var(--lime);color:var(--forest-900)}
.seg .n{font-size:11px;padding:1px 7px;border-radius:99px;background:var(--sunken);color:var(--ink-2);margin-left:6px}
button.me{width:100%;font:inherit;text-align:left;cursor:pointer}
.card.flush.ov{overflow:visible}
.card.flush.ov > .gh{border-radius:var(--r) var(--r) 0 0}
.card.flush.ov > .sb:last-child{border-radius:0 0 var(--r) var(--r)}
.dd.open{z-index:45}

/* ---------- menu recolhido: esconde textos que têm display inline ---------- */
@media (min-width:901px){
  .nav-mini .side{flex:0 0 76px;width:76px}
  .nav-mini .school>:not(.school-logo),
  .nav-mini .me>:not(.av),
  .nav-mini .side-foot .nav>:not(a):not(.nav-btn):not(.dd-menu),
  .nav-mini .brand>:not(.brand-mark){display:none!important}
  .nav-mini .school,.nav-mini .me{justify-content:center;padding:8px;width:100%}
  .nav-mini .side .dd-menu{left:calc(100% + 10px);bottom:0}
  .nav-mini .nav a{width:100%}
}

/* ---------- botão Ajuda no menu lateral (abre um menu, por isso é <button>) ---------- */
.nav .nav-btn{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:11px;background:transparent;color:#B9CCC2;font:inherit;font-weight:500;font-size:13.5px;text-align:left;cursor:pointer;transition:background .25s var(--ease),color .25s,transform .25s var(--ease)}
.nav .nav-btn:hover,.nav.dd.open .nav-btn{background:rgba(255,255,255,.07);color:#fff}
.nav .nav-btn:hover{transform:translateX(2px)}
.nav .nav-btn.on{background:var(--lime);color:var(--forest-900);font-weight:600}
.nav .nav-btn.on:hover{transform:none}
.nav .nav-btn.on .count{background:var(--forest-900);color:var(--lime)}
@media (min-width:901px){
  .nav-mini .nav .nav-btn{justify-content:center;gap:0;padding:8px 0;font-size:0}
  .nav-mini .nav .nav-btn:hover{transform:none}
}
/* pedidos de ajuda (tela Ajuda) */
.pedido{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.pedido .resp{padding:12px 14px;border-radius:12px;background:var(--forest-100);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}

/* ---------- avatar escolhido em Minha conta ---------- */
.av.av-img{overflow:hidden;background:var(--forest-100);padding:0}
.av.av-img img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.av.dark.av-img{background:rgba(255,255,255,.12)}
.av.xl{width:84px;height:84px;font-size:26px;font-family:var(--f-display);box-shadow:0 0 0 4px var(--surface),0 10px 24px -12px rgba(10,42,31,.45)}
.perfil-cabeca{display:flex;align-items:center;gap:18px;min-width:0;flex:1 1 420px}
.avatar-escolha{border:0;padding:0;margin:0;min-width:0}
.avatar-galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin-top:18px}
.avatar-opcao{position:relative;cursor:pointer;min-width:0}
.avatar-opcao input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;padding:0}
.avatar-cartao{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 6px 10px;border:2px solid var(--line);border-radius:16px;background:var(--surface);transition:border-color .15s,background .15s,transform .25s var(--ease)}
.avatar-cartao > img,.avatar-cartao > .av{width:64px;height:64px;border-radius:50%}
.avatar-cartao > .av{font-size:20px;font-family:var(--f-display)}
.avatar-rotulo{font-size:11.5px;font-weight:600;text-align:center;line-height:1.3}
.avatar-marca{position:absolute;right:6px;top:6px;display:none;width:22px;height:22px;border-radius:50%;background:var(--forest);color:var(--lime);place-items:center}
.avatar-marca .ic{width:12px;height:12px;stroke-width:3}
.avatar-opcao:hover .avatar-cartao{border-color:var(--forest-500);transform:translateY(-2px)}
.avatar-opcao input:checked + .avatar-cartao{border-color:var(--forest);background:var(--forest-100)}
.avatar-opcao input:checked + .avatar-cartao .avatar-marca{display:grid}
.avatar-opcao input:focus-visible + .avatar-cartao{outline:3px solid var(--forest-500);outline-offset:3px}
.sessao{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.sessao:last-of-type{border-bottom:0}
label.tgl.sessao{display:flex;width:100%}

/* Busca dentro de uma coluna: não deixa a base de 240px virar altura */
[style*="flex-direction: column"] > .search{flex:none}

/* Abas: a linha de base vira sombra interna e o indicador fica dentro da faixa (sem rolagem vertical de 1px) */
.tabs{overflow-y:hidden;border-bottom:0;box-shadow:inset 0 -1px 0 var(--line);scrollbar-width:thin}
.tabs .on::after{bottom:0}
/* Mapa de calor: espaço para o zoom da célula no hover sem gerar barra de rolagem */
.heat{padding:6px}

/* ---------- configurações: paleta de cores do status ---------- */
.sr-row{grid-template-columns:56px minmax(170px,1fr) 214px 130px 130px 130px 90px 64px;min-width:1060px}
.paleta{display:flex;gap:4px;align-items:center;border:0;margin:0;padding:0;min-width:0}
.pal{position:relative;width:24px;height:24px;border-radius:50%;background:var(--c);cursor:pointer;display:grid;place-items:center;flex:none;box-shadow:inset 0 0 0 1px rgba(15,31,25,.12);transition:transform .2s var(--ease),box-shadow .2s}
.pal:hover{transform:scale(1.12)}
.pal input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.pal span{display:none;color:#fff;pointer-events:none}
.pal span .ic{width:13px;height:13px;stroke-width:3}
.pal:has(input:checked){box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--c)}
.pal:has(input:checked) span{display:grid}
.pal:has(input:focus-visible){outline:2px solid var(--forest-500);outline-offset:4px}
.sr-row.removido .paleta{pointer-events:none}

/* ---------- menu lateral fixo na tela (desktop) ----------
   Marca e instituição no topo e Ajuda + perfil no rodapé ficam sempre visíveis;
   só a lista de módulos do meio rola quando a tela é baixa. */
@media (min-width:901px){
  .side{position:sticky;top:0;align-self:flex-start;height:100vh;height:100dvh;overflow:hidden}
  .side > .brand,.side > .school,.side > .side-foot{flex:none}
  .side .navs{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;margin:0 -8px;padding:0 8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
  .side .navs::-webkit-scrollbar{width:6px}
  .side .navs::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:6px}
  .side .side-foot{margin-top:0;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
  .side::before{inset:auto 0 0 0}
  .nav-mini .side{overflow:hidden}
  /* dicas e menus saem da barra pelo JS (posição fixa), já que a barra agora rola */
  .nav-mini .nav a[data-tip]::after{display:none}
  .side .dd-menu{position:fixed}
}
.side-tip{position:fixed;z-index:90;pointer-events:none;white-space:nowrap;background:var(--forest-900);color:#fff;font-family:var(--f-ui);font-size:12px;font-weight:600;line-height:1;padding:7px 10px;border-radius:9px;box-shadow:var(--sh-2);transform:translateY(-50%);opacity:0;transition:opacity .15s}
.side-tip.on{opacity:1}
.dev .side-tip,.dev ~ .side-tip{background:#CDEB6E;color:#0A2A1F}

/* ---------- seletor de cor que expande (status da falta) ---------- */
.sr-row{grid-template-columns:56px minmax(170px,1fr) 150px 130px 130px 130px 90px 64px;min-width:1000px}
.cor-atual{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 10px 0 8px;border-radius:12px;border:1px solid var(--line-2);background:#fff;font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .2s,box-shadow .2s}
.cor-atual:hover{border-color:var(--ink-2)}
.cor-pick.open .cor-atual{border-color:var(--forest-500);box-shadow:0 0 0 4px rgba(44,114,88,.16)}
.cor-atual .ic{color:var(--muted);transition:transform .25s var(--ease)}
.cor-pick.open .cor-atual .ic{transform:rotate(180deg)}
.cor-dot{width:18px;height:18px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(15,31,25,.12);flex:none}
.cor-menu{min-width:0;width:auto;padding:10px 12px 12px;border:1px solid var(--line);margin:0}
.cor-menu .grupo{padding:0 0 8px;float:none}
.cor-menu .paleta{display:grid;grid-template-columns:repeat(5,28px);gap:8px}
.cor-menu .pal{width:28px;height:28px}
.dd[data-fixo] .dd-menu{position:fixed;right:auto}

/* ---------- relatórios: montador da lista de assinatura ---------- */
.tabs{scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.gopt{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border-radius:14px;border:1px solid #D2D0C4;background:#FFFFFF;text-align:left;min-height:64px;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.gopt:hover{border-color:#2C7258}
.gopt input{position:absolute;opacity:0;pointer-events:none}
.gopt:has(input:checked){border-color:#123D2E;box-shadow:inset 0 0 0 1px #123D2E;background:#E3EEE6}
.gopt:has(input:focus-visible){outline:2px solid var(--forest-500);outline-offset:2px}
.colp{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid #D2D0C4;background:#FFFFFF;font-size:12.5px;font-weight:600;color:#44524B;cursor:pointer}
.colp input{position:absolute;opacity:0;pointer-events:none}
.colp:has(input:checked){background:#123D2E;border-color:#123D2E;color:#FFFFFF}
.colp:has(input:focus-visible){outline:2px solid var(--forest-500);outline-offset:2px}
.colp.fix{background:#ECEBE4;border-color:#ECEBE4;color:#5F6B65;cursor:default}
.colp.oculta{display:none}
.sheet{background:#FFFFFF;border-radius:6px;box-shadow:0 18px 36px -18px rgba(10,42,31,.35),0 0 0 1px rgba(15,31,25,.08);padding:22px 24px;display:flex;flex-direction:column;gap:10px;font-size:10px;color:#0F1F19;min-height:520px;overflow:hidden}
.sheet .hd{display:flex;justify-content:space-between;align-items:center;padding-bottom:6px;border-bottom:2px solid #123D2E;font-size:9.5px;color:#44524B}
.st{width:100%;border-collapse:collapse;font-size:9.5px}
.st th{text-align:left;font-size:8px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#44524B;padding:4px;border-bottom:1.2px solid #0F1F19}
.st td{padding:0 4px;height:22px;border-bottom:1px solid #D2D0C4;vertical-align:middle}
.st td.sig{min-width:80px}
.st td.box span{display:inline-block;width:9px;height:9px;border:1.2px solid #0F1F19;border-radius:2px}
.st td.nee span{display:inline-block;padding:0 4px;border:1.2px solid #0F1F19;border-radius:3px;font-weight:700;font-size:8px}
.gchip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:#ECEBE4;font-size:12px;font-weight:600;color:#44524B}
.gchip.on{background:#CDEB6E;color:#123D2E}
#previa-assinatura.carregando .sheet{opacity:.55;transition:opacity .2s}
/* folha A4 da lista de assinatura */
.folha .sess{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:2px solid #0F1F19;border-radius:8px}
.folha .sess b{font-family:var(--f-display);font-size:16px;letter-spacing:-.02em}
.folha .pt.assin td{height:42px;padding:0 6px;vertical-align:middle}
.folha .hr{display:inline-block;width:48px;border-bottom:1px solid #0F1F19;height:14px}
/* tr.g das folhas: neutraliza a classe .g (campo de nota) do CSS base */
.folha .pt tr.g{width:auto;height:auto;text-align:left;border:0;background:none;font-variant-numeric:normal}
.folha .pt tr.g td{text-align:left}
.folha .sess > span:last-child{white-space:nowrap}
/* calendário: turmas do dia de reposição, por série */
.tpick{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto;padding-right:2px}
.tpick-l{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tpick .pick{min-height:32px;padding:0 11px;font-size:12.5px}
.tpick-s{min-width:74px;height:32px;padding:0 10px;border-radius:8px;border:1px dashed #C9C6B8;background:transparent;font:inherit;font-size:12px;font-weight:700;color:#5E6B64;cursor:pointer;text-align:left}
.tpick-s:hover{border-color:#123D2E;color:#123D2E}
.tpick-s.on{border-style:solid;border-color:#123D2E;background:#123D2E;color:#FFFFFF}
/* lista por dia e disciplina: contagem do bloco à direita */
.folha .pt tr.g .gn{float:right;font-weight:500;color:#44524B}
.st tr.stg td{background:#F3F2EC;font-weight:600;height:20px;color:#0F1F19}
.st tr.stg td span{float:right;font-weight:500;color:#44524B}
/* lista de assinatura: larguras fixas por coluna (Aluno fica com o resto); as que não cabem em retrato viram paisagem */
.folha .pt.assin{table-layout:fixed}
.folha .pt.assin th{font-size:10px;padding:4px 5px;vertical-align:bottom}
.folha .pt.assin td{padding:0 5px;overflow-wrap:anywhere}
.folha .pt.assin .w-n{width:26px}
.folha .pt.assin .w-mat{width:72px}
.folha .pt.assin .w-turma{width:56px}
.folha .pt.assin .w-disc{width:110px}
.folha .pt.assin .w-dia{width:64px}
.folha .pt.assin .w-dia.hs{width:80px}
.folha .pt.assin .w-versao{width:54px}
.folha .pt.assin .w-pres{width:64px}
.folha .pt.assin .w-hora{width:56px}
.folha .pt.assin .w-sig{width:auto}
.folha .pt.assin .hr{width:100%;max-width:44px}
/* impressão: fechamento compacto; linha de assinatura com 10 mm de altura */
@media print{
  .folha .pt.assin td{height:36px}
  .folha .fim{gap:10px!important}
  .folha .kbox{padding:6px 10px}
  .folha .kbox b{font-size:20px}
  .folha .linha{height:20px}
  .folha .sig span:first-child{height:24px}
}
/* conferência das provas (lista por dia/sala): uma linha só, para o fechamento caber na folha */
.folha .contagem{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #D2D0C4;border-radius:8px;color:#44524B}
.folha .contagem span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:5px 10px;border-right:1px solid #D2D0C4;font-size:11px;white-space:nowrap}
.folha .contagem span:last-child{border-right:0}
.folha .contagem b{font-family:var(--f-display);font-size:14px;color:#0F1F19}
.folha .contagem b.campo{display:inline-block;width:44px;height:16px;border-bottom:1px solid #0F1F19}
/* linhas de grupo (turma, disciplinas, inclusões) não herdam a altura da linha de assinatura */
.folha .pt.assin tr.g td{height:auto;padding:6px 8px;background:#E3EEE6;color:#123D2E;border-bottom:1px solid #123D2E;border-left:4px solid #123D2E;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.folha .pt.assin tr.g .cinza,.folha .pt.assin tr.g .gn{color:#1A5340}
.folha .pt.assin tr.g.inc td{background:#F3F2EC;color:#44524B;border-color:#B9B6AA}
.folha .pt.assin tr.g.inc .gn{color:#44524B}
/* lista de presença: quadro da sessão (data, horário, sala e aplicador) */
.folha .info.sess-dados{grid-template-columns:1.1fr 1fr 1fr 1.6fr;border:1.5px solid #0F1F19}
.folha .info.sess-dados b{font-size:13px}
.folha .info .campo{display:block;height:16px;border-bottom:1px solid #0F1F19}
@media print{
  .folha{gap:10px!important}
  .folha .rod{font-size:10.5px;padding-top:6px}
  .folha .rod span:last-child{white-space:nowrap}
}
/* deitada: ocorrências e assinaturas lado a lado, para o fechamento ocupar menos altura */
.folha.paisagem .fim{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;align-items:end}
.folha.paisagem .fim>.contagem,.folha.paisagem .fim>.rod{grid-column:1/-1}
@media print{.folha.paisagem .pt.assin td{height:34px}.folha.paisagem .pt.assin tr.g td{height:auto}}

/* Ajuda › Base de conhecimento (ajuda.blade.php, ajuda-artigo.blade.php e a prévia em dev/artigo-form) */
.kb{display:flex;flex-direction:column;gap:18px}
.kb-busca{display:flex;align-items:center;gap:8px;flex:1 1 280px;max-width:420px;margin-left:auto}
.kb-busca .search{flex:1;max-width:none}
.kb-tema{display:flex;flex-direction:column;gap:8px}
.kb-tema-t{margin:0;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--forest-500)}
.kb-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:8px}
.kb-item{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:44px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);text-decoration:none;transition:border-color .2s,background .2s}
.kb-item:hover{border-color:var(--forest-500);background:#fff;color:var(--ink)}
.kb-item>.ic:last-child{color:var(--muted);flex:none}
.kb-i{width:32px;height:32px;border-radius:10px;background:var(--forest-100);color:var(--forest);display:grid;place-items:center;flex:none}
.kb-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.artigo-texto{font-size:15.5px;line-height:1.7;max-width:72ch;overflow-wrap:anywhere}
.artigo-texto>*:first-child{margin-top:0}
.artigo-texto>*:last-child{margin-bottom:0}
.artigo-texto p,.artigo-texto ul,.artigo-texto ol{margin:0 0 14px}
.artigo-texto ul,.artigo-texto ol{padding-left:22px}
.artigo-texto li{margin-bottom:6px}
.artigo-texto h1,.artigo-texto h2,.artigo-texto h3{font-family:var(--f-display);letter-spacing:-.02em;line-height:1.2;margin:22px 0 10px}
.artigo-texto h1,.artigo-texto h2{font-size:21px}
.artigo-texto h3{font-size:18px}
.artigo-texto code{font-family:var(--f-mono);font-size:.9em;padding:2px 6px;border-radius:6px;background:var(--sunken)}
.artigo-texto a{text-decoration:underline;text-underline-offset:3px}
.artigo-texto blockquote{margin:0 0 14px;padding:10px 16px;border-radius:12px;background:var(--forest-100);color:var(--forest)}
.dk .artigo-texto code{background:rgba(255,255,255,.1)}
.dk .artigo-texto blockquote{background:rgba(205,235,110,.1);color:#DCE7E0}
.artigo-util{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-top:18px;border-top:1px solid var(--line)}
@media (max-width:640px){.kb-busca{max-width:none;margin-left:0}}
