/* =====================================================================
   Diário Online v4.0.0 — SME São Gonçalo do Amarante
   Padrão visual SME SGA: Poppins, azul institucional, FA6 monocromático
   ===================================================================== */
:root{
  --pri:#1565C0; --pri-h:#0d47a1; --pri-2:#1976D2; --pri-l:#BBDEFB; --pri-s:#E3F2FD;
  --tx:#1e293b; --mut:#64748b; --bd:#e2e8f0; --card:#fff;
  --ok:#2e7d32; --ok-s:#e8f5e9; --no:#c62828; --no-s:#ffebee; --ju:#b26a00; --ju-s:#fff4e0;
  --gr:#475569; --gr-s:#f1f5f9; --r:14px; --sh:0 1px 3px rgba(15,23,42,.06),0 4px 14px rgba(15,23,42,.04);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{font-family:'Poppins',sans-serif;background:linear-gradient(180deg,#f0f4f8,#e2e8f0);color:var(--tx);min-height:100vh;font-size:14px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid rgba(21,101,192,.28);outline-offset:2px}
[hidden],.hidden{display:none!important}
a{color:var(--pri)}

/* ---------- loading / toast ---------- */
#loading{position:fixed;inset:0;background:rgba(255,255,255,.55);display:none;align-items:center;justify-content:center;z-index:300}
#loading.show{display:flex}
.spinner{width:44px;height:44px;border:4px solid var(--pri-l);border-top-color:var(--pri);border-radius:50%;animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
#toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(16px);background:#1e293b;color:#fff;padding:11px 16px;border-radius:12px;font-size:13px;font-weight:600;opacity:0;transition:.25s;z-index:320;display:flex;gap:8px;align-items:center;pointer-events:none;max-width:min(92vw,560px)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.success i{color:#4ade80}#toast.error{background:#7f1d1d}#toast.warning i{color:#fbbf24}

/* ---------- login (template AEE) ---------- */
#login{min-height:100vh;background:var(--pri);display:none;align-items:center;justify-content:center;padding:20px}
.login-card{background:#fff;border-radius:20px;max-width:420px;width:100%;padding:40px;box-shadow:0 20px 50px rgba(0,0,0,.2);text-align:center}
.login-logo{width:80px;height:80px;border-radius:20px;background:var(--pri-s);color:var(--pri);display:grid;place-items:center;font-size:36px;margin:0 auto 14px}
.login-title{font-size:22px;font-weight:700;color:var(--pri)}
.login-sub{font-size:13px;color:var(--mut);margin-bottom:22px}
.login-form{text-align:left;display:grid;gap:6px}
.login-form label{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.05em;display:flex;gap:6px;align-items:center;margin-top:8px}
.input-wrap{position:relative}
.input-wrap i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:13px}
.input-wrap input{width:100%;border:1px solid var(--bd);border-radius:12px;padding:12px 12px 12px 38px;font-size:14px}
.input-wrap input:focus{border-color:var(--pri);outline:none}
.btn-login{margin-top:16px;border:0;border-radius:12px;background:var(--pri);color:#fff;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:13px;cursor:pointer}
.btn-login:hover{background:var(--pri-h)}.btn-login:disabled{opacity:.6}
.lgpd-note{margin-top:18px;display:flex;gap:8px;text-align:left;font-size:11.5px;color:var(--mut);background:var(--gr-s);border-radius:10px;padding:10px}
.login-footer{margin-top:16px;font-size:12px;color:var(--mut);font-weight:600}
.login-version{font-size:11px;color:#94a3b8;margin-top:4px}

#troca-senha{position:fixed;inset:0;background:var(--pri);display:flex;align-items:center;justify-content:center;padding:20px;z-index:200}
.troca-card{background:#fff;border-radius:20px;max-width:440px;width:100%;padding:30px}
.troca-card h2{font-size:17px;color:var(--pri);margin:8px 0 4px}
.troca-card p{font-size:12.5px;color:var(--mut)}
.troca-card>i{font-size:28px;color:var(--ju)}
.troca-form{display:grid;gap:8px;margin-top:14px}
.troca-form label{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase}
.troca-form input{border:1px solid var(--bd);border-radius:10px;padding:10px 12px}
.troca-actions{display:flex;gap:8px;margin-top:8px}

/* ---------- shell / topo ---------- */
#shell{display:none;flex-direction:column;min-height:100vh}
.top{background:#fff;border-bottom:4px solid var(--pri);position:sticky;top:0;z-index:50}
.top-in{max-width:1280px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto}
.brand-logo{width:38px;height:38px;border-radius:10px;background:var(--pri);color:#fff;display:grid;place-items:center;font-size:17px}
.brand h1{font-size:17px;font-weight:800;color:var(--pri);line-height:1.1}
.brand small{font-size:11px;color:var(--mut)}
.escola-badge{display:flex;align-items:center;gap:8px;background:var(--pri-s);border:1px solid var(--pri-l);border-radius:10px;padding:5px 12px;color:var(--pri);max-width:340px}
.escola-badge strong{display:block;font-size:12.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.escola-badge small{display:block;font-size:10.5px;color:var(--mut);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-btn{border:1px solid var(--bd);background:#fff;border-radius:10px;padding:7px 11px;font-size:12px;font-weight:700;color:var(--gr);cursor:pointer;display:flex;gap:6px;align-items:center;text-decoration:none}
.top-btn:hover{border-color:var(--pri);color:var(--pri)}
.tabs{max-width:1280px;margin:0 auto;padding:0 16px 10px;display:flex;gap:4px;flex-wrap:wrap}
.tab{border:0;background:transparent;padding:8px 14px;border-radius:10px;font-weight:600;font-size:13px;color:var(--mut);cursor:pointer;display:flex;gap:7px;align-items:center}
.tab:hover{background:var(--gr-s)}
.tab.on{background:var(--pri);color:#fff}
.tab .sub{font-weight:500;opacity:.85}
.tab .car{font-size:10px;margin-left:2px;transition:transform .15s}
.dd{position:relative}
.dd.open .car{transform:rotate(180deg)}
.menu{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--bd);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.14);padding:6px;min-width:260px;display:none;z-index:60}
.dd.open .menu{display:block}
.menu button{width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer;display:flex;gap:10px;align-items:flex-start}
.menu button:hover,.menu button.on{background:var(--pri-s)}
.menu button.on b{color:var(--pri)}
.menu b{display:block;font-size:13px;font-weight:600}
.menu small{display:block;font-size:11px;color:var(--mut);line-height:1.35}
.menu i{margin-top:3px;color:var(--pri);width:16px;text-align:center}

main.container{width:100%;max-width:1280px;margin:0 auto;padding:16px 16px 40px;flex:1}
.view{display:none}.view.on{display:block}

/* ---------- barras ---------- */
.ctx{background:#fff;border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);padding:12px 14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end;margin-bottom:12px}
.fld label{display:block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-bottom:4px}
.fld select,.fld input{width:100%;border:1px solid var(--bd);border-radius:10px;padding:8px 10px;background:#fff;font-size:13.5px}
.fld select:focus,.fld input:focus{border-color:var(--pri);outline:none}
.fld select.set{border-color:var(--pri-l);background:var(--pri-s);color:var(--pri);font-weight:600}
.state{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.spacer{flex:1}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700;background:var(--gr-s);color:var(--gr)}
.pill.new{background:var(--pri-s);color:var(--pri)}
.pill.edit{background:#ede7f6;color:#4527a0}
.pill.warn{background:var(--ju-s);color:var(--ju)}
.pill.ok{background:var(--ok-s);color:var(--ok)}
.pill.no{background:var(--no-s);color:var(--no)}
.pill .x{cursor:pointer;opacity:.7}.pill .x:hover{opacity:1}

.alert{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:11px 14px;font-size:13px;margin-bottom:12px;background:var(--pri-s);color:#0b3d7a;border:1px solid var(--pri-l)}
.alert.warn{background:var(--ju-s);color:#7a4a00;border-color:#f5d69a}
.alert.no{background:var(--no-s);color:#8e1c1c;border-color:#f5b5b5}
.alert i{margin-top:2px}

/* ---------- KPIs ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.kpi{font:inherit;color:inherit;text-align:left;background:#fff;border:1px solid var(--bd);border-radius:12px;padding:10px 12px;box-shadow:var(--sh)}
button.kpi{cursor:pointer}button.kpi:hover{border-color:var(--pri-l)}
button.kpi.sel{outline:2px solid var(--pri);outline-offset:-1px}
.kpi span{display:block;font-size:11px;font-weight:600;color:var(--mut);line-height:1.3}
.kpi strong{font-size:22px;font-weight:800;line-height:1.2}
.kpi.p strong{color:var(--ok)}.kpi.f strong{color:var(--no)}.kpi.j strong{color:var(--ju)}.kpi.t strong{color:var(--pri)}

/* ---------- painéis ---------- */
.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px;align-items:start}
.panel{background:#fff;border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;margin-bottom:12px}
.split .panel{margin-bottom:0}
.ph{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--bd);flex-wrap:wrap}
.ph h3{font-size:14px;font-weight:700}
.ph p{font-size:11.5px;color:var(--mut)}
.pb{padding:12px 14px}
.sticky{position:sticky;top:122px}

.btn{border:0;border-radius:10px;padding:8px 13px;font-weight:700;font-size:12.5px;cursor:pointer;display:inline-flex;gap:7px;align-items:center;white-space:nowrap;text-decoration:none}
.btn.pri{background:var(--pri);color:#fff}.btn.pri:hover{background:var(--pri-h)}
.btn.sec{background:var(--gr-s);color:var(--gr)}.btn.sec:hover{background:#e2e8f0}
.btn.gh{background:transparent;color:var(--pri);padding:6px 8px}
.btn.dan{background:var(--no);color:#fff}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.grow{flex:1;justify-content:center}

/* ---------- pendentes / componentes do dia ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip-btn{border:1px solid var(--bd);background:#fff;border-radius:12px;padding:8px 12px;cursor:pointer;text-align:left;display:flex;gap:10px;align-items:center;font-size:12.5px}
.chip-btn:hover{border-color:var(--pri);background:#fafcff}
.chip-btn.on{border-color:var(--pri);background:var(--pri-s);box-shadow:inset 0 0 0 1px var(--pri)}
.chip-btn b{display:block;font-weight:700}
.chip-btn small{display:block;color:var(--mut);font-size:11px}
.chip-btn .st{font-size:15px}
.chip-btn .st.ok{color:var(--ok)}.chip-btn .st.pend{color:var(--ju)}.chip-btn .st.out{color:#94a3b8}
.chip-btn.dis{opacity:.55}

/* ---------- pendentes (só professor, recolhido) ---------- */
.pend-strip{background:#fff;border:1px solid #f5d69a;border-left:4px solid var(--ju);border-radius:12px;padding:8px 12px;margin-bottom:12px}
.pend-head{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:#7a4a00}
.pend-head>i{color:var(--ju)}
.pend-strip .chips{margin-top:10px}

/* ---------- chamada ---------- */
.roll{list-style:none}
.roll li{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto auto;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid #f1f5f9}
.roll li:last-child{border-bottom:0}
.roll li:hover{background:#fafcff}
.num{font-size:12px;color:var(--mut);font-weight:600;text-align:right}
.nm{font-weight:600;font-size:13.5px;overflow-wrap:anywhere}
.nm small{display:block;font-weight:500;font-size:11px;color:var(--mut)}
.tag{display:inline-block;font-size:10px;font-weight:700;border-radius:6px;padding:1px 6px;margin-left:6px;background:var(--pri-s);color:var(--pri);vertical-align:middle}
.fq{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--gr-s);color:var(--gr);white-space:nowrap}
.fq.lo{background:var(--no-s);color:var(--no)}.fq.mid{background:var(--ju-s);color:var(--ju)}
.seg{display:inline-flex;border:1px solid var(--bd);border-radius:10px;overflow:hidden}
.seg button{border:0;background:#fff;width:40px;height:34px;font-weight:800;font-size:12.5px;color:var(--mut);cursor:pointer}
.seg button+button{border-left:1px solid var(--bd)}
.seg button.P.on{background:var(--ok);color:#fff}
.seg button.F.on{background:var(--no);color:#fff}
.seg button.J.on{background:var(--ju);color:#fff}
.seg button:disabled{cursor:not-allowed}
.obs{border:0;background:transparent;color:#94a3b8;width:32px;height:32px;border-radius:8px;cursor:pointer;display:grid;place-items:center}
.obs:hover,.obs.has{color:var(--pri);background:var(--pri-s)}
.obs:disabled{opacity:.3;cursor:default;background:transparent}
.roll li.off{background:#fafafa}
.roll li.off .nm{color:#94a3b8}
.roll li.off .seg{opacity:.35;pointer-events:none}
.roll li.changed{box-shadow:inset 3px 0 0 var(--pri-2)}

.plan{background:var(--pri-s);border:1px solid var(--pri-l);border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.5}
.plan b{display:block;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--pri);margin-bottom:3px}
.plan + .plan{margin-top:8px}
.plan.vazio{background:var(--gr-s);border-color:var(--bd);color:var(--mut)}
textarea{width:100%;min-height:150px;border:1px solid var(--bd);border-radius:12px;padding:10px 12px;resize:vertical;line-height:1.5;font-size:13px}
textarea:focus{border-color:var(--pri);outline:none}
textarea:disabled{background:#f8fafc}
.hint{font-size:11.5px;color:var(--mut);margin-top:6px;display:flex;gap:6px;align-items:flex-start}
.hint i{margin-top:3px}

/* ---------- barra de salvar ---------- */
.savebar{position:sticky;bottom:12px;margin-top:12px;background:#0f2a4a;color:#fff;border-radius:14px;padding:10px 12px 10px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 10px 30px rgba(15,42,74,.25);flex-wrap:wrap;z-index:40}
.savebar .st{display:flex;flex-direction:column;line-height:1.3}
.savebar .st b{font-size:13px;display:flex;gap:7px;align-items:center}
.savebar .st small{font-size:11.5px;color:#cbd5e1}
.savebar .dot{width:8px;height:8px;border-radius:50%;background:#fbbf24;display:inline-block}
.savebar.saved .dot{background:#4ade80}
.savebar.ro .dot{background:#94a3b8}
.savebar .btn.pri{background:#fff;color:var(--pri);padding:10px 16px;font-size:13px}
.savebar .btn.pri:hover{background:var(--pri-s)}
.savebar .btn.lnk{background:transparent;color:#cbd5e1}
.savebar .btn.lnk:hover{color:#fff}

/* ---------- tabelas ---------- */
.search{position:relative}
.search i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:12px}
.search input{border:1px solid var(--bd);border-radius:10px;padding:7px 10px 7px 30px;font-size:13px;width:230px;background:#fff}
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{background:#f8fafc;text-align:left;font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.03em;padding:9px 12px;border-bottom:1px solid var(--bd);white-space:nowrap}
th.s{cursor:pointer;user-select:none}
th.s:hover{color:var(--pri)}
th.s i{margin-left:4px;font-size:10px}
td{padding:8px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
tbody tr:hover td{background:#fafcff}
.c{text-align:center}.r{text-align:right}
.ro{color:var(--mut)}
.b{font-weight:600}
.ni{width:72px;border:1px solid var(--bd);border-radius:8px;padding:6px 8px;text-align:center;font-weight:700}
.ni.bad{border-color:var(--no);background:var(--no-s)}
.ni.chg{border-color:var(--pri-2);background:var(--pri-s)}
.ni:disabled{background:#f8fafc;border-style:dashed;color:var(--mut)}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap}
.chip.ok{background:var(--ok-s);color:var(--ok)}.chip.no{background:var(--no-s);color:var(--no)}.chip.ju{background:var(--ju-s);color:var(--ju)}.chip.gr{background:var(--gr-s);color:var(--gr)}
.bar{height:6px;background:#e2e8f0;border-radius:99px;overflow:hidden;min-width:80px;flex:1}
.bar span{display:block;height:100%;background:var(--pri-2)}
.bar.lo span{background:var(--no)}.bar.mid span{background:var(--ju)}
.barw{display:flex;align-items:center;gap:8px;max-width:200px}
.barw small{font-size:11.5px;font-weight:600;color:var(--gr);min-width:46px}
.empty{padding:36px 16px;text-align:center;color:var(--mut)}
.empty i{font-size:26px;color:#cbd5e1;display:block;margin:0 auto 8px}

/* ---------- grade curricular ---------- */
.grade-tab td,.grade-tab th{text-align:center;padding:6px}
.grade-tab th:first-child,.grade-tab td:first-child{width:70px;color:var(--mut);font-weight:700}
.grade-tab select{width:100%;min-width:118px;border:1px solid var(--bd);border-radius:8px;padding:6px 6px;font-size:12px;background:#fff}
.grade-tab select.set{background:var(--pri-s);border-color:var(--pri-l);color:#0b3d7a;font-weight:600}
.grade-tab .prof{display:block;font-size:10.5px;color:var(--mut);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.cel{border-radius:8px;padding:6px;background:var(--pri-s);font-size:12px;font-weight:600;color:#0b3d7a;text-align:left}
.cel small{display:block;font-weight:500;color:var(--mut);font-size:10.5px}
.cel.choque{background:var(--no-s);color:var(--no)}
.cel.vazia{background:transparent}
.resumo-comp{list-style:none;font-size:12.5px}
.resumo-comp li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #f1f5f9}
.resumo-comp li:last-child{border-bottom:0}
.resumo-comp small{display:block;color:var(--mut);font-size:11px}

#grade-area .split{grid-template-columns:minmax(0,3fr) minmax(0,1fr)}

/* ---------- boletim ---------- */
.bol-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:14px;border-bottom:1px solid var(--bd)}
.bol-head h3{font-size:16px;font-weight:700}
.bol-head p{font-size:12px;color:var(--mut)}
.bol-nav{margin-left:auto;display:flex;gap:6px;align-items:center;font-size:12px;color:var(--mut)}
.bol-nav button{border:1px solid var(--bd);background:#fff;width:32px;height:32px;border-radius:8px;cursor:pointer;display:grid;place-items:center}
.bol-nav button:hover{border-color:var(--pri);color:var(--pri)}
.bol-print{display:none}

/* ---------- diário de classe mensal ---------- */
.dc{font-size:11.5px}
.dc th,.dc td{padding:5px 3px;text-align:center;border:1px solid #eef2f7}
.dc th{font-size:10px;letter-spacing:0}
.dc td.n{text-align:left;padding:5px 8px;white-space:nowrap;font-weight:600;position:sticky;left:0;background:#fff;z-index:1;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.dc th.n{text-align:left;position:sticky;left:0;z-index:2}
.dc .we{background:#f1f5f9}
.dc .sem{background:#f8fafc;color:#cbd5e1}
.dc .fora{background:repeating-linear-gradient(45deg,#f8fafc,#f8fafc 3px,#eef2f7 3px,#eef2f7 6px)}
.dc .F{color:var(--no);font-weight:800}.dc .J{color:var(--ju);font-weight:800}.dc .P{color:var(--ok)}
.dc .tot{font-weight:700;background:#f8fafc}
.reg{list-style:none}
.reg li{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:9px 14px;border-bottom:1px solid #f1f5f9;font-size:12.5px;line-height:1.45}
.reg li:last-child{border-bottom:0}
.reg time{font-weight:700;color:var(--pri)}
.rodape-dc{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:12px 14px;border-top:1px solid var(--bd);font-size:12.5px}
.rodape-dc b{display:block;font-size:10.5px;text-transform:uppercase;color:var(--mut);letter-spacing:.04em}
.assin{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:30px 14px 16px}
.assin div{border-top:1px solid #94a3b8;text-align:center;font-size:11.5px;color:var(--mut);padding-top:4px}

/* ---------- modais ---------- */
.mb{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;z-index:250;padding:16px}
.mb.on{display:flex}
.mc{background:#fff;border-radius:18px;max-width:440px;width:100%;padding:20px}
.mc h3{font-size:15px;font-weight:700;margin-bottom:4px;display:flex;gap:8px;align-items:center;color:var(--pri)}
.mc p{font-size:12.5px;color:var(--mut);margin-bottom:12px}
.mc .ma{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;flex-wrap:wrap}

/* ---------- impressão ---------- */
.print-banner{display:none}
@media print{
  @page{margin:12mm}
  body{background:#fff}
  .top,.savebar,.ctx,.state,.kpis-nao-imprime,.bol-nav,.no-print,#toast,#loading{display:none!important}
  .print-banner{display:block;border-bottom:2px solid var(--pri);margin-bottom:10px;padding-bottom:6px}
  .print-banner h2{font-size:15px;color:var(--pri)}
  .print-banner p{font-size:11px;color:#333}
  .panel{box-shadow:none;border-color:#ccc;break-inside:auto}
  .split{grid-template-columns:1fr}
  .sticky{position:static}
  main.container{max-width:none;padding:0}
  .bol-print{display:block}
  .bol-print .panel{break-after:page}
  .so-tela{display:none!important}
  .dc{font-size:9px}
}

/* ---------- responsivo ---------- */
@media (max-width:900px){
  .split{grid-template-columns:1fr}
  .sticky{position:static}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .search{flex:1}.search input{width:100%}
}
@media (max-width:560px){
  .top{position:static}
  .roll li{grid-template-columns:24px minmax(0,1fr) auto auto;row-gap:6px}
  .roll li .seg{grid-column:2/5;display:flex}
  .roll li .seg button{flex:1}
  .brand small,.top-btn span,.escola-badge small{display:none}
  .escola-badge{max-width:170px}
  .savebar .st small{display:none}
  .savebar .btn.pri{flex:1;justify-content:center}
  .login-card{padding:28px 22px}
}

