:root{--marca:#17214a;--marca2:#0f1735;--ouro:#d99a2b;--fundo:#f5f3ed;--cartao:#fffdf8;--txt:#1b1f2a;--borda:#ddd8cb;--sub:#5d6573;
--ok:#1e7a3c;--pend:#b86e00;--erro:#b3261e;--azul:#2d62c8}
@media (prefers-color-scheme:dark){:root{--fundo:#111528;--cartao:#1a1f38;--txt:#eceef6;--borda:#2e355a;--sub:#a3aac6;--marca:#0f1735;--marca2:#0a1028}}
*{box-sizing:border-box}
body{margin:0;font:16px/1.45 system-ui,Segoe UI,Arial,sans-serif;background:var(--fundo);color:var(--txt)}
.topo{background:var(--marca);color:#fff;border-bottom:3px solid var(--ouro)}
.topo-in{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;max-width:980px;margin:0 auto}
.marca{color:#fff;text-decoration:none;font-weight:700;font-size:18px}.marca{display:flex;align-items:center;gap:10px}.marca-logo{background:#fff;border-radius:8px;padding:2px 4px;height:45px;width:auto;display:block}.marca small{font-weight:400;opacity:.75;margin-left:6px;font-size:13px}
.sair{display:flex;align-items:center;gap:10px;margin:0}.quem{font-size:14px;opacity:.9;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu{display:flex;gap:4px;max-width:980px;margin:0 auto;padding:0 12px;overflow-x:auto}
.menu a{color:#d5d9ea;text-decoration:none;padding:8px 12px;border-bottom:3px solid transparent;white-space:nowrap}
.menu a.ativo{color:#fff;border-bottom-color:var(--ouro);font-weight:600}
.miolo{max-width:720px;margin:0 auto;padding:16px 16px 60px}.miolo.largo{max-width:980px}
h1{font-size:24px;margin:8px 0 12px;font-family:Georgia,'Libre Baskerville',serif;color:var(--marca)}
@media (prefers-color-scheme:dark){h1{color:#fff}}
h2{font-size:18px;margin:0}
.sub{margin:0 0 12px;color:var(--sub)}
a{color:var(--azul)}
.cartao{background:var(--cartao);border:1px solid var(--borda);border-radius:12px;padding:18px;margin:12px 0}
.estreito{max-width:400px;margin:28px auto}.vazio{text-align:center;color:var(--sub)}.destaque{border-color:var(--ouro)}
label{display:block;font-size:14px;margin:10px 0;font-weight:500}
input[type=text],input[type=password],input[type=date],select,textarea{display:block;width:100%;margin-top:4px;padding:11px;font:inherit;
border:1px solid var(--borda);border-radius:8px;background:var(--cartao);color:var(--txt)}
textarea{resize:vertical}
.btn{display:inline-block;padding:11px 16px;border:0;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}
.btn-principal{background:var(--marca);color:#fff;width:100%;border-bottom:3px solid var(--ouro)}
.btn-claro{background:#e8e4d8;color:#1b1f2a;width:auto}.btn-auto{width:auto}.btn-peq{padding:6px 10px;font-size:13px}
@media (prefers-color-scheme:dark){.btn-claro{background:#2a3157;color:#eceef6}.btn-principal{background:#2d3a7a}}
.dica{font-size:13px;color:var(--sub)}
.aviso{padding:11px 13px;border-radius:8px;margin:12px 0}.aviso-erro{background:#fdecea;color:#7a1c14}.aviso-ok{background:#e6f4ea;color:#14532d}
.aviso-atencao{background:#fff3d6;color:#6b4300;border:1px solid #e8c779}
.lista,.filhos{list-style:none;padding:0;margin:0}
.filhos{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.filhos li{background:var(--cartao);border:1px solid var(--borda);border-radius:20px;padding:6px 14px;font-size:14px}
.filhos li span{color:var(--sub);margin-left:6px}
.com{display:block;position:relative;background:var(--cartao);border:1px solid var(--borda);border-left:6px solid var(--azul);border-radius:12px;padding:14px;margin:10px 0;text-decoration:none;color:var(--txt)}
.com.cat-URGENTE{border-left-color:var(--erro)}.com.cat-EVENTO{border-left-color:var(--ouro)}.com.cat-LEMBRETE{border-left-color:#7a8599}
.com.novo strong{color:var(--marca)}@media (prefers-color-scheme:dark){.com.novo strong{color:#fff}}
.com strong{display:block;font-size:17px;margin:4px 0}
.meta{display:block;font-size:13px;color:var(--sub)}
.resumo-txt{display:block;color:var(--sub);font-size:15px}
.selo{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:2px 8px;border-radius:10px;background:#dfe6f7;color:#1d3f91}
.selo-URGENTE{background:#fbdcd9;color:#8a1c14}.selo-EVENTO{background:#fbecc9;color:#6b4300}.selo-LEMBRETE{background:#e6e8ee;color:#444c5c}
.tag{display:inline-block;margin-top:8px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:10px}
.tag-pend{background:#fff0cc;color:#7a4b00}.tag-ok{background:#dcf2e3;color:#14532d}.tag-novo{background:#dfe6f7;color:#1d3f91}.tag-sem{background:#ece9df;color:#5d6573}
.leitura .texto{white-space:pre-line;font-size:17px;line-height:1.55;margin-top:6px;overflow-wrap:anywhere}
.leitura{border-top:6px solid var(--azul)}.leitura.cat-URGENTE{border-top-color:var(--erro)}.leitura.cat-EVENTO{border-top-color:var(--ouro)}
.confirma{background:var(--cartao);border:2px solid var(--ouro);border-radius:12px;padding:16px;margin:14px 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0}
.num-card{background:var(--cartao);border:1px solid var(--borda);border-radius:12px;padding:12px 14px}
.num-card b{display:block;font-size:30px;line-height:1.1;color:var(--marca)}.num-card b small{font-size:16px;color:var(--sub);font-weight:400}
.num-card span{font-size:13px;color:var(--sub)}.num-card.alerta{border-color:var(--pend)}.num-card.alerta b{color:var(--pend)}
@media (prefers-color-scheme:dark){.num-card b{color:#fff}}
.barra-topo{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px 0 8px;flex-wrap:wrap}
.tabela-rolagem{overflow-x:auto;background:var(--cartao);border:1px solid var(--borda);border-radius:12px}
.tab{width:100%;border-collapse:collapse;font-size:15px}
.tab th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--sub);padding:10px 12px;border-bottom:1px solid var(--borda)}
.tab td{padding:10px 12px;border-bottom:1px solid var(--borda);vertical-align:top}
.tab tr:last-child td{border-bottom:0}.tab tr.arquivado{opacity:.55}.tab tr.falha td{color:var(--erro)}
progress{width:100%;max-width:200px;height:10px;accent-color:var(--azul)}progress.conf{accent-color:var(--ok)}
.duas{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.marca-check{display:flex;align-items:flex-start;gap:8px;font-weight:400}.marca-check input{margin-top:4px}
fieldset{border:1px solid var(--borda);border-radius:10px;margin:14px 0;padding:8px 14px}legend{font-weight:600;padding:0 6px}
.escolha{margin-top:8px}.oculto{display:none}
.grade-check{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px 12px}
.filtro{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.filtro label{margin:0}
@media (max-width:640px){.filtro,.duas{grid-template-columns:1fr}}
.acoes-cel{white-space:nowrap}.acoes-cel form{display:inline}.acoes-cel .btn{margin:2px 0}
.arquivar{margin-top:16px;text-align:right}
.folha{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.credencial{overflow-wrap:anywhere;background:#fff;color:#000;border:1px dashed #666;border-radius:8px;padding:14px 16px;break-inside:avoid}
.credencial h2{font-size:15px;margin-bottom:8px;border-bottom:2px solid var(--ouro);padding-bottom:4px}
.credencial .dica{color:#444}.linha{margin:6px 0}.mono{font-family:Consolas,monospace;font-size:18px;letter-spacing:1px}
.rodape{text-align:center;font-size:12px;color:var(--sub);padding:12px}
@media print{.topo,.rodape,.nao-imprimir{display:none}body{background:#fff}.miolo{max-width:none;padding:0}.folha{grid-template-columns:1fr 1fr}}
/* biblioteca */
.menu2{background:var(--marca2);max-width:none;padding:0 max(12px,calc((100vw - 980px)/2))}
.menu2 a{padding:6px 12px;font-size:14px}
.sem-sublinhado{text-decoration:none;color:inherit}
.balcao{margin:12px 0}.balcao h2{margin-bottom:6px}
.tres{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media (max-width:640px){.tres{grid-template-columns:1fr}}
.linha-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.linha-form label{flex:1;min-width:180px;margin:0}
.linha-form.compacta{margin-top:8px;align-items:center}.linha-form.compacta select,.linha-form.compacta input{margin:0}
.filtro-simples{display:flex;gap:12px;align-items:flex-end}.filtro-simples label{flex:1;margin:0}
.inline-form{display:inline-block;margin:0}.semlista{list-style:none;padding:0;margin:8px 0}.semlista li{padding:8px 0;border-bottom:1px solid var(--borda)}
.regra-tipo{min-width:110px;align-self:center}.atraso-txt{color:var(--erro)}
.mono{font-family:Consolas,monospace}
.etiquetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.etiqueta{background:#fff;color:#000;border:1px dashed #888;border-radius:6px;padding:8px 10px;text-align:center;break-inside:avoid}
.etiqueta .barras{width:100%;height:44px}.et-tombo{font:700 15px Consolas,monospace;letter-spacing:1px}
.et-titulo{font-size:12px;line-height:1.2}.et-local{font-size:11px;color:#444}
@media print{.menu,.menu2{display:none}.etiquetas{grid-template-columns:repeat(3,1fr);gap:4px}.tab{font-size:12px}}

/* ---- calendario ---- */
.cal-nav{display:flex;gap:8px;margin:0 0 12px;flex-wrap:wrap}
.cal-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--borda);border:1px solid var(--borda);border-radius:10px;overflow:hidden}
.cal-cab{background:var(--marca2,#223070);color:#fff;text-align:center;font-size:12px;font-weight:600;padding:6px 0}
.cal-dia{background:var(--cartao);min-height:84px;padding:4px;display:flex;flex-direction:column;gap:2px;min-width:0}
.cal-dia.fora{opacity:.4}.cal-dia.hoje{outline:2px solid var(--ouro);outline-offset:-2px}
.cal-num{font-size:12px;font-weight:700;color:var(--sub)}
.ev{display:block;border-radius:4px;padding:1px 4px;font-size:11px;line-height:1.3;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:none;color:#14213d;border-left:3px solid transparent}
a.ev:hover{filter:brightness(.95)}
.ev-EVENTO{background:#d9e6fb;border-left-color:#2d62c8}.ev-REUNIAO{background:#e6dcf7;border-left-color:#6d3fc0}
.ev-PROVA{background:#fbdcd9;border-left-color:#c0392b}.ev-FERIADO{background:#d7f0dd;border-left-color:#1f8a4c}
.ev-PASSEIO{background:#d2eef0;border-left-color:#14808a}.ev-FESTA{background:#fde5c8;border-left-color:#d9822b}
.ev-RECESSO{background:#e4e4e4;border-left-color:#777}.ev-BIBLIOTECA{background:#fbecc9;border-left-color:#d99a2b}
.ev-MENSALIDADE{background:#efe3d6;border-left-color:#8a5a2b}
.cal-legenda{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;padding:0;margin:10px 0 18px;font-size:13px;color:var(--sub)}
.cal-legenda li{display:flex;align-items:center;gap:6px}.cal-legenda .ev{width:22px;height:12px;padding:0}
.cal-agenda{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.cal-agenda-dia{margin:0}.cal-agenda-dia.hoje{border-color:var(--ouro);border-width:2px}
.cal-agenda-dia h3{margin:0 0 6px}.cal-agenda-dia h3 small{font-weight:400;color:var(--sub);text-transform:capitalize}
.cal-item{padding:6px 8px;margin:4px 0;border-radius:6px;white-space:normal;overflow:visible;font-size:15px;display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}
.cal-item .hora{font-weight:600}.cal-item .det{color:#3b4252;flex-basis:100%;font-size:14px}
@media (max-width:640px){
  .cal-dia{min-height:46px;align-items:center}
  .cal-dia .ev{width:100%;height:6px;padding:0;font-size:0}.cal-dia .ev-txt{display:none}
  .cal-agenda{grid-template-columns:1fr}
}
@media print{.cal-nav,.barra-topo .btn,.menu{display:none}}

/* dia com atividade fica marcado: fundo com a cor do tipo e numero em circulo */
.m-EVENTO{--mc:45,98,200}.m-REUNIAO{--mc:109,63,192}.m-PROVA{--mc:192,57,43}.m-FERIADO{--mc:31,138,76}
.m-PASSEIO{--mc:20,128,138}.m-FESTA{--mc:217,130,43}.m-RECESSO{--mc:120,120,120}.m-BIBLIOTECA{--mc:217,154,43}.m-MENSALIDADE{--mc:138,90,43}
.cal-dia.tem{background-image:linear-gradient(rgba(var(--mc),.17),rgba(var(--mc),.17));box-shadow:inset 0 3px 0 rgb(var(--mc))}
.cal-dia.tem .cal-num{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:11px;background:rgb(var(--mc));color:#fff;padding:0 5px}
.cal-dia.fora.tem{opacity:.4}

.login-logo{display:block;margin:0 auto 10px;width:150px;height:auto;mix-blend-mode:multiply}
@media (prefers-color-scheme:dark){.login-logo{mix-blend-mode:normal;background:#fff;border-radius:12px;padding:6px}}
.cred-logo{display:block;margin-bottom:6px;height:50px;width:auto}
@media (max-width:480px){.marca small{display:none}}
