/* Acréscimos da versão real ao estilo do protótipo */
.carregando{min-height:100vh; display:grid; place-items:center; background:#090E1A; color:#7A8197; font-family:Manrope, system-ui, sans-serif; font-size:13px; letter-spacing:.2em; text-transform:uppercase}
.qr{background:#fff; padding:12px; border-radius:6px; width:max-content; justify-self:center}
.qr img{display:block; width:180px; height:180px}
.segredo{font-family:ui-monospace, Consolas, monospace; font-size:12px; word-break:break-all; color:var(--ink-2); text-align:center}
.erro-login{color:var(--crit); font-size:13px; margin:0}
.vazio{padding:28px 0 8px; color:var(--ink-2); font-size:14px; line-height:1.6}
.vazio b{color:var(--ink); font-weight:600}
.fila-grupo{border-top:1px solid var(--line); padding:18px 0; display:grid; gap:12px}
.fila-grupo:first-of-type{border-top:0}
.fila-cab{display:flex; flex-wrap:wrap; gap:12px 18px; align-items:center; justify-content:space-between}
.fila-cab .t{font-weight:600}
.fila-cab .small{display:block}
.fila-acoes{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.fila-lista{display:grid; gap:4px; padding-left:2px}
.fila-lista .mono{font-size:12px}
select.box, input.box{min-height:36px}
.box.sm{padding:6px 10px; font-size:13px; min-height:32px}
.busca{max-width:360px}
.pub-ctrl{display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; margin-top:10px; font-size:13px}
.pub-ctrl label{display:inline-flex; gap:6px; align-items:center}
.dados-proc{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.senha-temp{font-family:ui-monospace, Consolas, monospace; font-size:16px; padding:10px 14px; background:var(--surface-2); border:1px dashed var(--gold); border-radius:4px; user-select:all}
@media (max-width:820px){ .dados-proc{grid-template-columns:minmax(0,1fr)} }
html, body{height:100%; margin:0; background:#090E1A}
#root{min-height:100%}
.login{min-height:100vh}

/* ---------- Mesa de trabalho ---------- */
.abas{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:8px 0 22px}
.aba{all:unset; box-sizing:border-box; cursor:pointer; display:grid; gap:6px; padding:20px 22px; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); border-top:3px solid var(--line); transition:border-color .15s, background .15s}
.aba:hover{background:var(--surface-2)}
.aba:focus-visible{outline:2px solid var(--gold-2); outline-offset:2px}
.aba .l{font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); font-weight:600}
.aba .v{font-family:var(--f-display); font-size:44px; line-height:1; color:var(--ink)}
.aba .d{font-size:12.5px; color:var(--ink-2)}
.aba.gold{border-top-color:var(--gold)} .aba.warn{border-top-color:var(--warn)} .aba.crit{border-top-color:var(--crit)}
.aba[aria-pressed="true"]{background:var(--surface-2); border-color:var(--gold); box-shadow:0 0 0 1px var(--gold) inset}
.abas + .chips{margin-bottom:18px}
.pub-lista{display:grid}
.pub-linha{display:grid; grid-template-columns:72px minmax(0,1fr) auto 18px; gap:18px; align-items:center; padding:16px 6px; border-top:1px solid var(--line); cursor:pointer}
.pub-linha:first-child{border-top:0}
.pub-linha:hover{background:var(--surface-2)}
.pub-linha:focus-visible{outline:2px solid var(--gold-2)}
.pl-data{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; text-align:center}
.pl-data b{display:block; font-family:var(--f-display); font-size:26px; color:var(--ink); letter-spacing:0; font-weight:400}
.pl-tit{font-weight:600; color:var(--ink); display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.pl-proc{font-size:12.5px; color:var(--ink-2); margin-top:3px}
.pl-proc b{color:var(--gold-ink); font-weight:600}
.pl-res{font-size:13px; color:var(--ink-2); margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pl-est{display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end}

/* ---------- Modo conferência ---------- */
.progresso{height:4px; background:var(--line); border-radius:2px; margin:-6px 0 22px; overflow:hidden}
.progresso i{display:block; height:100%; background:var(--gold-2); transition:width .3s}
.rev{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:start}
.rev textarea.box{min-height:auto; resize:vertical}
.txt-oficial{white-space:pre-wrap; font-size:13px; line-height:1.6; color:var(--ink-2); max-height:560px; overflow:auto; font-family:var(--f-text)}
.rev-acoes{position:sticky; bottom:0; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; padding:16px 0; margin-top:8px; background:var(--bg); border-top:1px solid var(--line); z-index:5}
.btn[disabled]{opacity:.4; pointer-events:none}

/* ---------- Página do processo ---------- */
.conf-barra{display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center; padding:18px 22px; margin:0 0 18px; border:1px solid var(--gold); border-left:4px solid var(--gold); border-radius:var(--r); background:var(--gold-soft)}
.conf-barra b{display:block; color:var(--ink)}
.conf-barra.ok{border-color:var(--line); border-left-color:var(--ok); background:var(--surface)}
details.dobra{padding:0}
details.dobra > summary{list-style:none; cursor:pointer; display:flex; flex-wrap:wrap; gap:8px 16px; align-items:baseline; justify-content:space-between; padding:22px 28px}
details.dobra > summary::-webkit-details-marker{display:none}
details.dobra > summary h2{margin:0}
details.dobra > summary::after{content:"+"; font-size:20px; color:var(--gold-2); margin-left:auto}
details.dobra[open] > summary::after{content:"–"}
details.dobra > form{padding:0 28px 26px}
.pub-ctrl .pill{margin-right:4px}

@media (max-width:1000px){ .abas{grid-template-columns:repeat(2,minmax(0,1fr))} .rev{grid-template-columns:minmax(0,1fr)} }
@media (max-width:640px){ .pub-linha{grid-template-columns:52px minmax(0,1fr) 14px} .pl-est{grid-column:2; justify-content:flex-start} .aba .v{font-size:34px} }

.seg-conf{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0 0 16px}
.seg-conf button{all:unset; box-sizing:border-box; cursor:pointer; display:grid; gap:2px; padding:12px 16px; border:1px solid var(--line); border-radius:var(--r); color:var(--ink-2); font-size:13px}
.seg-conf button b{font-family:var(--f-display); font-size:24px; font-weight:400; color:var(--ink)}
.seg-conf button small{font-size:11.5px; color:var(--muted)}
.seg-conf button[aria-pressed="true"]{border-color:var(--gold); background:var(--gold-soft); color:var(--ink)}
.seg-conf button:focus-visible{outline:2px solid var(--gold-2)}
.conf-lote{display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; justify-content:space-between; padding:12px 16px; margin:0 0 10px; border:1px dashed var(--line-2); border-radius:var(--r)}
@media (max-width:640px){ .seg-conf{grid-template-columns:1fr} }
/* ================= Acabamento (19/10): mais leve e mais fino ================= */
.partes{font-family:var(--f-display); font-weight:400; letter-spacing:.005em}
.partes .x{color:var(--gold); margin:0 .45em; font-family:var(--f-ui); font-weight:300; opacity:.8}
.partes .falta{color:var(--muted); font-family:var(--f-ui); font-size:.82em; font-style:normal; border-bottom:1px dotted var(--muted)}
h1.h-partes{font-size:clamp(26px, 3.1vw, 40px); line-height:1.15; font-weight:400}
.rev-partes{font-size:19px; margin:2px 0 6px}
.proc-row .nm{font-size:17px}
.proc-row .nm .pill, .pl-tit .pill, .tl-head .pill{font-family:var(--f-ui)}
.proc-row .last .nosso{display:block; margin-top:6px; color:var(--muted)}
.tl-meta{font-size:11.5px; color:var(--muted); letter-spacing:.02em; margin:-2px 0 10px}
.pill{font-size:10.5px; padding:3px 9px; letter-spacing:.04em}
.pill.idade{background:transparent; border:1px solid var(--line-2); color:var(--muted)}

/* abas da mesa: régua com divisórias, como os números do protótipo */
.abas{gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:4px 0 26px}
.aba{border:0; border-radius:0; background:transparent; padding:22px 24px 20px; border-top:2px solid transparent; position:relative}
.aba + .aba{border-left:1px solid var(--line)}
.aba:hover{background:transparent}
.aba:hover .v{color:var(--gold-2)}
.aba .v{font-size:40px; font-weight:400}
.aba.gold .v{color:var(--gold-2)} .aba.warn .d{color:var(--warn)} .aba.crit .d{color:var(--crit)}
.aba[aria-pressed="true"]{background:linear-gradient(180deg, var(--gold-soft), transparent 70%); border-top-color:var(--gold-2); box-shadow:none; border-color:transparent}
.aba[aria-pressed="true"] + .aba{border-left-color:var(--line)}

/* listas de publicação */
.pub-linha{grid-template-columns:64px minmax(0,1fr) auto 16px; gap:20px; padding:18px 10px; border-radius:4px}
.pub-linha:hover{background:rgba(255,255,255,.025)}
.pl-data b{font-size:24px}
.pl-partes{font-size:16.5px; color:var(--ink); margin-bottom:4px}
.pl-tit{font-weight:500; font-size:13.5px; color:var(--ink-2)}
.pl-res{font-size:13px; color:var(--ink-2); opacity:.85}
.pl-proc{font-size:11.5px; color:var(--muted); margin-top:6px}

/* seletor retidas / visíveis: abas de texto em vez de caixas */
.seg-conf{display:flex; gap:28px; border-bottom:1px solid var(--line); margin:0 0 8px}
.seg-conf button{border:0; border-bottom:2px solid transparent; border-radius:0; padding:10px 0 12px; display:flex; align-items:baseline; gap:8px}
.seg-conf button b{font-size:20px}
.seg-conf button[aria-pressed="true"]{background:transparent; border-bottom-color:var(--gold-2)}
.conf-lote{border-style:solid; border-color:var(--line); background:rgba(255,255,255,.015); margin-top:12px}

/* faixa de conferência do processo: discreta */
.conf-barra{border:0; border-left:2px solid var(--gold-2); background:linear-gradient(90deg, var(--gold-soft), transparent 60%); padding:16px 20px}
.conf-barra.ok{border-left-color:var(--ok); background:transparent}

/* blocos recolhidos */
details.dobra > summary{padding:18px 26px}
details.dobra > summary h2{font-size:19px}
details.dobra > summary .sub{font-size:12px}

/* completar partes */
.partes-rapido{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) auto; gap:12px; align-items:center; padding:14px 0; border-top:1px solid var(--line)}
.partes-rapido:first-of-type{border-top:0}
.pr-nome{font-size:15px; margin-bottom:2px}
@media (max-width:820px){ .partes-rapido{grid-template-columns:minmax(0,1fr)} .aba + .aba{border-left:0} }
/* ================= Painel das escolas ================= */
table.heat{border-collapse:separate; border-spacing:4px; width:100%; min-width:720px}
table.heat th{font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); font-weight:600; text-align:center; padding:6px 4px; border:0}
table.heat thead th:first-child, table.heat tbody th{text-align:left}
table.heat tbody th{padding:10px 12px 10px 0; vertical-align:middle; font-weight:400}
table.heat tbody tr{cursor:pointer}
table.heat tbody tr:hover th .hm-nome{color:var(--gold-2)}
.hm-nome{display:block; font-family:var(--f-display); font-size:16px; color:var(--ink)}
td.hm{--a:.3; text-align:center; padding:12px 6px 9px; border-radius:4px; background:rgba(232,201,106,var(--a)); border:1px solid transparent; min-width:84px}
td.hm b{display:block; font-family:var(--f-display); font-size:22px; font-weight:400; color:var(--ink); line-height:1.1}
td.hm small{display:block; font-size:10.5px; color:var(--ink-2); margin-top:2px}
td.hm.forte b, td.hm.forte small{color:#141A2B}
td.hm.fraco{border:1px dashed rgba(232,201,106,.75)}
td.hm.nao{background:transparent; border:1px dashed var(--line-2); color:var(--muted)}
td.hm-elim{text-align:center}
td.hm-elim b{font-family:var(--f-display); font-size:22px; font-weight:400; color:var(--ink)}
.cartoes{display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:16px; margin-bottom:22px}
.cartao-escola{display:grid; gap:14px; padding:22px 24px; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); cursor:pointer; transition:border-color .15s}
.cartao-escola:hover, .cartao-escola:focus-visible{border-color:var(--gold); outline:none}
.cartao-escola header{display:flex; justify-content:space-between; gap:12px; align-items:flex-start}
.cartao-escola h3{margin:0 0 2px; font-family:var(--f-display); font-weight:400; font-size:19px; color:var(--ink)}
.ce-nivel{display:flex; flex-wrap:wrap; gap:6px}
.mbs{display:grid; gap:7px}
.mb{display:grid; grid-template-columns:16px minmax(0,1fr) 30px; gap:10px; align-items:center; font-size:11px; color:var(--muted); font-weight:600}
.mb i{display:block; height:6px; background:var(--line); border-radius:3px; overflow:hidden}
.mb i b{display:block; height:100%; background:var(--gold-2); border-radius:0 3px 3px 0}
.mb em{font-style:normal; text-align:right; color:var(--ink); font-weight:500}
.cartao-escola footer{display:flex; flex-wrap:wrap; gap:6px 18px; padding-top:12px; border-top:1px solid var(--line); font-size:12px; color:var(--ink-2)}
.cartao-escola footer b{font-family:var(--f-display); font-size:17px; font-weight:400; color:var(--ink); margin-right:3px}
.aviso-ensaio{margin:0 0 18px; padding:14px 18px; border-left:2px solid var(--warn); background:linear-gradient(90deg, var(--warn-soft), transparent 70%); font-size:13px; color:var(--ink-2); line-height:1.55}
.aviso-ensaio b{color:var(--warn)}
/* ajustes do mapa (19/10) */
table.heat{min-width:640px; table-layout:fixed}
table.heat thead th:first-child{width:26%}
table.heat tbody th{text-transform:none; letter-spacing:0}
table.heat tbody th .small{display:block; text-transform:none; letter-spacing:0; margin-top:2px}
td.hm{min-width:0; padding:10px 4px 8px}
td.hm b, td.hm-elim b{font-size:20px}
table.heat tbody th, table.heat tbody th .hm-nome{white-space:normal; overflow-wrap:anywhere; overflow:hidden}

.link-novo{display:grid; gap:10px; margin-top:16px; padding:16px; border:1px dashed var(--gold); border-radius:var(--r)}
.link-novo .senha-temp{font-size:13px; word-break:break-all}

/* trilha própria e calendário de obrigações (20/10) */
.box-sm{height:34px; min-height:34px; padding:0 10px; font-size:13px}
.li .row{flex-wrap:wrap; gap:8px; justify-content:flex-end}
.te-n{display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; border:1px solid var(--line-2); font-size:12px; color:var(--ink-2)}
.trilha-eixos{display:grid; gap:10px; margin-top:14px}
.te{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:var(--r); background:var(--surface)}
.te b{display:block; font-weight:600}
.te .small{display:block; margin-top:2px}
.te.em_andamento{border-color:var(--gold); background:linear-gradient(90deg, var(--gold-soft), transparent 70%)}
.te.em_andamento .te-n{border-color:var(--gold); color:var(--gold-ink)}
.te.concluido .te-n{background:var(--gold-soft)}
.te .steps{margin-top:8px}
.aviso-prazos{border-left:2px solid var(--warn)}
.aviso-prazos .li[data-escola]{cursor:pointer}
@media (max-width:640px){ .te{grid-template-columns:auto minmax(0,1fr)} .te > .pill{grid-column:2; justify-self:start} }

/* Relatório trimestral: "Baixar PDF" imprime só o dossiê */
@media print {
  body { background: #fff; }
  .side, .mobile-nav, .top, .no-print, .toast { display: none !important; }
  .app, .main, .content { display: block !important; margin: 0 !important; padding: 0 !important; }
  .dossie { box-shadow: none !important; break-inside: auto; }
}

/* Relatório trimestral: "Baixar PDF" imprime só o dossiê */
@media print {
  body { background: #fff; }
  .side, .mobile-nav, .top, .no-print, .toast { display: none !important; }
  .app, .main, .content { display: block !important; margin: 0 !important; padding: 0 !important; }
  .dossie { box-shadow: none !important; break-inside: auto; }
}
