/* Nilara ERP
   Base: tokens do Multiatendimento (padrão Nilara). Tela de trabalho: densa, legível, números alinhados.
   Regras da casa: status com ponto + texto (nunca pílula), sem degradê em texto, sem caixa alta em rótulos. */
:root{
  --brand:#1374a6;--brand-2:#0f5f88;--brand-soft:rgba(19,116,166,.09);--brand-ring:rgba(19,116,166,.24);
  --page:#e3eef6;--surface:#f7fbfe;--surface-2:#edf4fa;--soft:rgba(19,116,166,.055);--soft-2:rgba(19,116,166,.1);
  --line:rgba(19,74,110,.11);--line-2:rgba(19,74,110,.19);
  --text:#0f172a;--text-2:#334155;--muted:#5f7184;--faint:#94a3b8;
  --ok:#059669;--ok-soft:rgba(5,150,105,.11);--warn:#d97706;--warn-soft:rgba(217,119,6,.12);
  --danger:#e11d48;--danger-soft:rgba(225,29,72,.10);--info:#0284c7;
  --rail:#0f2a3d;--rail-2:#133349;--rail-tx:#a9c6d9;--rail-on:#fff;
  --bar-fut:#1374a6;--bar-fut-2:rgba(19,116,166,.28);--bar-past:#e11d48;--bar-old:#9f1239;
  --r-sm:7px;--r:10px;--r-lg:14px;
  --shadow:0 1px 0 rgba(255,255,255,.7) inset,0 1px 2px rgba(15,23,42,.04),0 14px 34px -24px rgba(15,23,42,.28);
  --shadow-pop:0 24px 60px -20px rgba(15,23,42,.38),0 2px 8px rgba(15,23,42,.08);
  --font:'Plus Jakarta Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --t:150ms cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --page:#0b1018;--surface:#141b26;--surface-2:#1a2230;--soft:rgba(255,255,255,.04);--soft-2:rgba(255,255,255,.075);
  --line:rgba(255,255,255,.07);--line-2:rgba(255,255,255,.13);
  --text:#eef3f8;--text-2:#cbd5e1;--muted:#93a3b6;--faint:#64748b;
  --brand:#38a5dc;--brand-2:#5bb6e4;--brand-soft:rgba(56,165,220,.14);--brand-ring:rgba(56,165,220,.32);
  --ok:#34d399;--ok-soft:rgba(52,211,153,.12);--warn:#fbbf24;--warn-soft:rgba(251,191,36,.12);--danger:#fb7185;--danger-soft:rgba(251,113,133,.12);--info:#38bdf8;
  --rail:#080d14;--rail-2:#0f1722;
  --bar-fut:#38a5dc;--bar-fut-2:rgba(56,165,220,.3);--bar-past:#fb7185;--bar-old:#be123c;
  --shadow:0 14px 34px -22px rgba(0,0,0,.7);--shadow-pop:0 24px 60px -18px rgba(0,0,0,.85);color-scheme:dark}}
:root[data-theme="dark"]{
  --page:#0b1018;--surface:#141b26;--surface-2:#1a2230;--soft:rgba(255,255,255,.04);--soft-2:rgba(255,255,255,.075);
  --line:rgba(255,255,255,.07);--line-2:rgba(255,255,255,.13);
  --text:#eef3f8;--text-2:#cbd5e1;--muted:#93a3b6;--faint:#64748b;
  --brand:#38a5dc;--brand-2:#5bb6e4;--brand-soft:rgba(56,165,220,.14);--brand-ring:rgba(56,165,220,.32);
  --ok:#34d399;--ok-soft:rgba(52,211,153,.12);--warn:#fbbf24;--warn-soft:rgba(251,191,36,.12);--danger:#fb7185;--danger-soft:rgba(251,113,133,.12);--info:#38bdf8;
  --rail:#080d14;--rail-2:#0f1722;
  --bar-fut:#38a5dc;--bar-fut-2:rgba(56,165,220,.3);--bar-past:#fb7185;--bar-old:#be123c;
  --shadow:0 14px 34px -22px rgba(0,0,0,.7);--shadow-pop:0 24px 60px -18px rgba(0,0,0,.85);color-scheme:dark}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--page);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
h1,h2,h3{margin:0;letter-spacing:-.015em}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
svg.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- estrutura ---------- */
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.rail{background:var(--rail);color:var(--rail-tx);padding:16px 12px;display:flex;flex-direction:column;gap:1px;position:sticky;top:0;height:100vh;overflow-y:auto}
.marca{display:flex;align-items:center;gap:10px;padding:4px 8px 20px;color:#fff}
.marca .selo{width:30px;height:30px;border-radius:8px;background:var(--brand);display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff}
.marca b{font-size:16px;letter-spacing:-.02em}
.marca span{display:block;font-size:11.5px;color:var(--rail-tx);font-weight:500;margin-top:-2px}
.rail a{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--r-sm);color:var(--rail-tx);font-weight:600;font-size:13.5px;position:relative}
.rail a:hover{background:rgba(255,255,255,.055);text-decoration:none;color:#fff}
.rail a.on{background:var(--rail-2);color:#fff}
.rail a.on::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}
.rail a .cont{margin-left:auto;font-size:11.5px;font-weight:700;color:#fff;background:rgba(225,29,72,.85);border-radius:6px;padding:0 6px;line-height:18px}
.rail .grupo{margin:18px 10px 6px;font-size:12px;font-weight:600;color:#6c8aa0}
.rail .breve{opacity:.5;cursor:default}
.rail .breve:hover{background:none;color:var(--rail-tx)}
.rail .breve small{margin-left:auto;font-size:11px;font-weight:500}

.area{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:10px 28px;background:color-mix(in srgb,var(--page) 82%,transparent);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line)}
.busca-btn{flex:1;min-width:0;max-width:520px;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--muted);font:inherit;cursor:text;text-align:left}
.busca-btn:hover{border-color:var(--brand)}
.busca-btn kbd{margin-left:auto}
.busca-btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
[data-tema] .sol{display:none}
:root[data-theme="dark"] [data-tema] .sol{display:block}:root[data-theme="dark"] [data-tema] .lua{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) [data-tema] .sol{display:block}:root:not([data-theme="light"]) [data-tema] .lua{display:none}}
kbd{font:600 11px var(--font);border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;color:var(--muted);background:var(--surface-2)}
.topbar .dir{margin-left:auto;display:flex;align-items:center;gap:6px}
.icone-btn{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-sm);border:1px solid transparent;background:none;color:var(--text-2);cursor:pointer;position:relative}
.icone-btn:hover{background:var(--soft-2)}
.icone-btn .ponto{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--page)}
.eu{display:flex;align-items:center;gap:9px;padding:4px 6px 4px 4px;border-radius:var(--r);border:0;background:none;font:inherit;color:var(--text);cursor:pointer;position:relative}
.eu:hover{background:var(--soft-2)}
.avatar{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:12px;color:#fff;background:var(--brand);flex:none}
.avatar.g{width:52px;height:52px;border-radius:12px;font-size:19px}
.menu-eu{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow-pop);padding:6px;display:none;text-align:left}
.menu-eu.aberto{display:block}
.menu-eu .cab{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.menu-eu button,.menu-eu a{display:flex;width:100%;padding:8px 10px;border:0;background:none;font:inherit;color:var(--text);border-radius:6px;cursor:pointer;text-align:left}
.menu-eu button:hover,.menu-eu a:hover{background:var(--soft-2);text-decoration:none}

.main{padding:22px 28px 56px;min-width:0}
.cabeca{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.cabeca h1{font-size:24px;font-weight:750}
.cabeca .sub{color:var(--muted);margin-top:3px}
.trilha{font-size:13px;color:var(--muted);margin-bottom:4px}
.trilha a{color:var(--muted)}
.acoes{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- blocos ---------- */
.bloco{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}
.bloco>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line)}
.bloco>header h2{font-size:14.5px;font-weight:700}
.bloco>header .dica{font-size:12.5px;color:var(--muted);font-weight:500}
.bloco .corpo{padding:16px 18px}
.grade{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-12-8{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.g-8-12{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}
.mb{margin-bottom:16px}

/* ---------- régua de recebimento (peça central do painel) ---------- */
.regua{padding:18px 20px 14px}
.regua-topo{display:flex;flex-wrap:wrap;gap:14px 40px;align-items:flex-end;margin-bottom:18px}
.regua-topo .k{font-size:12.5px;color:var(--muted);font-weight:600}
.regua-topo .v{font-size:26px;font-weight:750;letter-spacing:-.025em;line-height:1.15}
.regua-topo .v.danger{color:var(--danger)}
.regua-topo .v small{font-size:12.5px;font-weight:600;color:var(--muted);letter-spacing:0;margin-left:4px}
.regua-topo .leg{margin-left:auto;display:flex;gap:16px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.regua-svg{width:100%;height:150px;display:block;overflow:visible}
.regua-svg .b{transition:opacity var(--t)}
.regua-svg:hover .b{opacity:.55}
.regua-svg .b:hover{opacity:1}
.regua-svg text{font:600 11px var(--font);fill:var(--muted)}
.regua-svg .hoje-t{fill:var(--text);font-weight:700}

.tip{position:fixed;z-index:60;pointer-events:none;background:var(--text);color:var(--surface);font-size:12.5px;line-height:1.4;padding:7px 10px;border-radius:8px;box-shadow:var(--shadow-pop);opacity:0;transform:translateY(4px);transition:opacity 120ms,transform 120ms;white-space:nowrap}
.tip.on{opacity:1;transform:none}
.tip b{display:block;font-size:13px}

/* ---------- gráfico faturado x recebido ---------- */
.graf{width:100%;height:230px;display:block}
.graf text{font:500 11px var(--font);fill:var(--muted)}
.graf .grid{stroke:var(--line);stroke-width:1}
.graf .fat{fill:var(--bar-fut-2)}
.graf .rec{fill:var(--bar-fut)}
.graf .col:hover .fat{fill:var(--brand-ring)}
.graf .col .hit{fill:transparent}

/* barras horizontais (produto, envelhecimento) */
.hbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center}
.hbar .nome{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbar .nome small{font-weight:500;color:var(--muted);margin-left:6px}
.hbar .val{font-size:13.5px;font-weight:700;text-align:right}
.hbar .trilho{grid-column:1/-1;height:6px;border-radius:4px;background:var(--soft-2);overflow:hidden;margin-bottom:10px}
.hbar .trilho span{display:block;height:100%;border-radius:4px;background:var(--brand)}
.hbar .trilho.d span{background:var(--danger)}
.hbar .trilho.w span{background:var(--warn)}
.hbar .trilho.m span{background:var(--faint)}

/* alertas */
.alerta{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:14px 18px;border-bottom:1px solid var(--line)}
.alerta:last-child{border-bottom:0}
.alerta .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center}
.alerta.danger .ic{background:var(--danger-soft);color:var(--danger)}
.alerta.warn .ic{background:var(--warn-soft);color:var(--warn)}
.alerta h3{font-size:13.5px;font-weight:700}
.alerta p{margin:2px 0 0;color:var(--text-2);font-size:13px;max-width:70ch}
.alerta a{font-size:13px;font-weight:600;white-space:nowrap;align-self:center}

/* linha do tempo */
.tempo{list-style:none;margin:0;padding:6px 18px 12px}
.tempo li{display:grid;grid-template-columns:14px 1fr auto;gap:10px;padding:8px 0;position:relative}
.tempo li::before{content:"";position:absolute;left:6px;top:24px;bottom:-8px;width:1px;background:var(--line-2)}
.tempo li:last-child::before{display:none}
.tempo .pt{width:9px;height:9px;border-radius:50%;margin-top:6px;margin-left:2px;background:var(--faint);box-shadow:0 0 0 3px var(--surface)}
.tempo .ok .pt{background:var(--ok)}.tempo .info .pt{background:var(--info)}.tempo .warn .pt{background:var(--warn)}.tempo .danger .pt{background:var(--danger)}
.tempo .tx{font-size:13.5px;font-weight:600}
.tempo .tx small{display:block;font-weight:500;color:var(--muted);font-size:12.5px}
.tempo time{font-size:12px;color:var(--muted);white-space:nowrap}

/* ---------- tabelas ---------- */
table{width:100%;border-collapse:collapse}
th{font-size:12.5px;font-weight:600;color:var(--muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line-2);white-space:nowrap;background:var(--surface)}
th a{color:inherit;display:inline-flex;align-items:center;gap:4px}
th a:hover{color:var(--text);text-decoration:none}
th a.on{color:var(--text)}
th .seta{font-size:10px}
td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr{transition:background var(--t)}
tbody tr:hover td{background:var(--soft)}
tr.clic{cursor:pointer}
td.r,th.r{text-align:right;white-space:nowrap}
td.num{white-space:nowrap}
td .sec{color:var(--muted);font-size:12.5px;display:block}
td .forte{font-weight:650;color:var(--text)}
tfoot td{font-weight:700;border-top:1px solid var(--line-2);border-bottom:0;background:var(--surface-2)}
.tabela-wrap{overflow-x:auto}
.vazio{padding:36px 16px;text-align:center;color:var(--muted)}
.atraso{font-size:12px;font-weight:600;color:var(--danger);display:block}
.cli{display:flex;align-items:center;gap:10px;min-width:0}
.cli .avatar{width:28px;height:28px;font-size:11px;border-radius:7px}
.cli a{font-weight:600;color:var(--text)}

/* status: ponto + texto */
.st{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:13px;white-space:nowrap}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.st.ok{color:var(--ok)}.st.warn{color:var(--warn)}.st.danger{color:var(--danger)}.st.info{color:var(--info)}.st.muted{color:var(--muted)}

/* ---------- filtros e abas ---------- */
.barra{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.abas{display:flex;gap:2px;overflow-x:auto}
.abas a{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:var(--r-sm);color:var(--muted);font-weight:600;font-size:13.5px;white-space:nowrap}
.abas a:hover{text-decoration:none;color:var(--text);background:var(--soft)}
.abas a.on{color:var(--text);background:var(--soft-2)}
.abas a .n{font-size:12px;color:var(--muted);font-weight:600}
.abas.linha{border-bottom:1px solid var(--line-2);gap:4px;margin-bottom:16px}
.abas.linha a{border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:9px 12px}
.abas.linha a.on{background:none;border-color:var(--brand)}
input[type=search],input[type=text],input[type=password],input[type=date],select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:7px 10px;min-width:0}
input:focus,select:focus{outline:2px solid var(--brand-ring);outline-offset:0;border-color:var(--brand)}
.campo-busca{position:relative}
.campo-busca svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--muted);width:16px;height:16px}
.campo-busca input{padding-left:32px;width:260px}
.btn{display:inline-flex;align-items:center;gap:7px;font:inherit;font-weight:600;font-size:13.5px;border-radius:var(--r-sm);padding:7px 13px;border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--brand-2);border-color:var(--brand-2);text-decoration:none}
.btn.sec{background:var(--surface);color:var(--text);border-color:var(--line-2)}
.btn.sec:hover{background:var(--soft-2)}
.btn[disabled],.btn.off{opacity:.5;cursor:not-allowed}
.btn svg.i{width:16px;height:16px}

/* ---------- ficha do cliente ---------- */
.perfil{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 20px}
.perfil h1{font-size:22px;font-weight:750}
.perfil .meta{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:4px}
.perfil .meta span{display:inline-flex;align-items:center;gap:6px}
.perfil .meta svg{width:15px;height:15px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-top:1px solid var(--line)}
.kpis>div{padding:13px 20px;border-right:1px solid var(--line)}
.kpis>div:last-child{border-right:0}
.kpis .k{font-size:12.5px;color:var(--muted);font-weight:600}
.kpis .v{font-size:19px;font-weight:750;letter-spacing:-.02em;margin-top:1px}
.kpis .v.danger{color:var(--danger)}.kpis .v.ok{color:var(--ok)}
.kpis .d{font-size:12px;color:var(--muted)}
.ficha{display:grid;grid-template-columns:128px minmax(0,1fr);gap:9px 14px;font-size:13.5px;margin:0}
.ficha dt{color:var(--muted)}
.ficha dd{margin:0;word-break:break-word}
.copiar{border:0;background:none;color:var(--muted);cursor:pointer;padding:2px;border-radius:4px;vertical-align:middle}
.copiar:hover{color:var(--brand);background:var(--soft-2)}
.copiar svg{width:14px;height:14px}
.historico-pag{display:flex;gap:3px;align-items:flex-end;height:44px}
.historico-pag span{flex:1;border-radius:3px 3px 0 0;min-height:4px}
.historico-pag .ok{background:var(--ok)}.historico-pag .warn{background:var(--warn)}.historico-pag .danger{background:var(--danger)}.historico-pag .muted{background:var(--faint)}

/* ---------- fatura como documento ---------- */
.doc-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.doc{background:#fff;color:#0f172a;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:40px 44px;border:1px solid var(--line)}
.doc .d-top{display:flex;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:2px solid #0f172a}
.doc .d-marca{font-size:22px;font-weight:800;letter-spacing:-.03em;color:#1374a6}
.doc .d-marca small{display:block;font-size:12px;color:#5f7184;font-weight:500;letter-spacing:0;margin-top:4px;line-height:1.5}
.doc .d-num{text-align:right}
.doc .d-num h2{font-size:24px;font-weight:800}
.doc .d-num .st{margin-top:6px}
.doc .d-partes{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:22px 0;border-bottom:1px solid #e2e8f0;font-size:13.5px}
.doc .d-partes .k{font-size:12px;color:#5f7184;font-weight:600;margin-bottom:4px}
.doc table th{background:none;color:#5f7184;border-color:#cbd5e1;padding:10px 0}
.doc table td{padding:11px 0;border-color:#e2e8f0}
.doc table td.r,.doc table th.r{padding-left:16px}
.doc .d-tot{margin-left:auto;width:min(300px,100%);margin-top:14px;font-size:13.5px}
.doc .d-tot div{display:flex;justify-content:space-between;padding:5px 0}
.doc .d-tot .t{border-top:2px solid #0f172a;margin-top:6px;padding-top:10px;font-size:17px;font-weight:800}
.doc .d-pag{margin-top:26px;padding:16px 18px;border-radius:10px;background:#f1f6fa;font-size:13px}
.doc .d-pag .k{font-size:12px;color:#5f7184;font-weight:600}
.doc .d-pag code{display:block;font:600 13.5px/1.6 var(--font);letter-spacing:.02em;word-break:break-all;color:#0f172a}
.lateral .bloco+.bloco{margin-top:16px}
.passos{list-style:none;margin:0;padding:14px 18px}
.passos li{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:6px 0;position:relative}
.passos li::before{content:"";position:absolute;left:10px;top:28px;bottom:-6px;width:2px;background:var(--line-2)}
.passos li:last-child::before{display:none}
.passos .c{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line-2);background:var(--surface)}
.passos .feito .c{background:var(--ok);border-color:var(--ok);color:#fff}
.passos .falha .c{background:var(--danger);border-color:var(--danger);color:#fff}
.passos .c svg{width:12px;height:12px;stroke-width:3}
.passos b{font-size:13.5px;display:block}
.passos small{color:var(--muted);font-size:12.5px}

/* paginação */
.pag{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;flex-wrap:wrap}
.pag nav{display:flex;gap:4px}
.pag a,.pag span.atual,.pag span.gap{min-width:32px;text-align:center;padding:4px 9px;border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--text-2)}
.pag a:hover{background:var(--soft-2);text-decoration:none}
.pag span.atual{background:var(--brand);color:#fff;border-color:var(--brand)}
.pag span.gap{border-color:transparent}

/* ---------- paleta de busca (⌘K) ---------- */
.paleta-fundo{position:fixed;inset:0;z-index:80;background:rgba(8,15,25,.42);backdrop-filter:blur(3px);display:none;align-items:flex-start;justify-content:center;padding-top:12vh}
.paleta-fundo.aberto{display:flex}
.paleta{width:min(640px,92vw);background:var(--surface);border:1px solid var(--line-2);border-radius:16px;box-shadow:var(--shadow-pop);overflow:hidden}
.paleta .entrada{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.paleta .entrada input{flex:1;border:0;background:none;font-size:16px;padding:2px 0;outline:none}
.paleta .res{max-height:56vh;overflow-y:auto;padding:6px}
.paleta .grp{font-size:12px;font-weight:600;color:var(--muted);padding:10px 10px 4px}
.paleta .it{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:9px;color:var(--text)}
.paleta .it:hover,.paleta .it.sel{background:var(--soft-2);text-decoration:none}
.paleta .it .t{font-weight:600}
.paleta .it .s{font-size:12.5px;color:var(--muted)}
.paleta .it .dir{margin-left:auto;font-size:12.5px;color:var(--muted);white-space:nowrap}
.paleta .rodape{display:flex;gap:16px;padding:9px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}

/* ---------- login ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.login .lado{background:var(--rail);color:#d7e7f2;padding:44px 52px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login .lado h1{color:#fff;font-size:34px;line-height:1.12;max-width:440px;font-weight:750;letter-spacing:-.03em}
.login .lado p{max-width:420px;color:#9fbdd1;font-size:15px}
.login .mini-regua{display:flex;gap:4px;align-items:flex-end;height:90px;margin:28px 0 0;max-width:460px}
.login .mini-regua span{flex:1;border-radius:3px 3px 0 0;background:rgba(56,165,220,.55)}
.login .mini-regua span.p{background:rgba(251,113,133,.7)}
.login .mini-regua span.h{background:#fff}
.login form{align-self:center;justify-self:center;width:min(360px,88vw);display:grid;gap:14px}
.login label{font-weight:600;font-size:13px;display:grid;gap:6px}
.login input{padding:10px 12px}
.erro{color:var(--danger);font-size:13px;font-weight:600}


/* ---------- mensagens e formulários ---------- */
.flash{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:var(--r);margin-bottom:16px;font-weight:600;font-size:13.5px;border:1px solid}
.flash svg{flex:none;margin-top:1px}
.flash.ok{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}
.flash.erro{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}
.form{display:grid;gap:16px}
.form .linha{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.form label,.campo{display:grid;gap:6px;font-weight:600;font-size:13px;color:var(--text-2)}
.form label small,.campo small{font-weight:500;color:var(--muted);font-size:12px}
.form input[type=text],.form input[type=password],.form input[type=number],.form input[type=url],.form input[type=file],.form select,.form textarea,.campo input,.campo select{font:inherit;font-weight:500;color:var(--text);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:8px 10px;width:100%}
.form input[type=file]{padding:6px}
.salvo{font-size:12px;color:var(--ok);font-weight:600}
.secao-form{padding:18px;border-bottom:1px solid var(--line)}
.secao-form:last-child{border-bottom:0}
.secao-form h3{font-size:14px;margin-bottom:4px}
.secao-form>p{margin:0 0 14px;color:var(--muted);font-size:13px;max-width:75ch}
.chave{display:inline-flex;gap:10px;align-items:center;font-weight:600;cursor:pointer}
.chave input{width:38px;height:22px;appearance:none;border-radius:999px;background:var(--line-2);position:relative;cursor:pointer;transition:background var(--t);margin:0}
.chave input::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform var(--t);box-shadow:0 1px 2px rgba(0,0,0,.2)}
.chave input:checked{background:var(--ok)}
.chave input:checked::after{transform:translateX(16px)}
.codigo-url{display:flex;gap:8px;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-size:12.5px;word-break:break-all}
details.acao{border-top:1px solid var(--line)}
details.acao summary{cursor:pointer;padding:12px 18px;font-weight:600;font-size:13.5px;list-style:none;display:flex;justify-content:space-between;align-items:center}
details.acao summary::-webkit-details-marker{display:none}
details.acao summary::after{content:"+";color:var(--muted);font-weight:500}
details.acao[open] summary::after{content:"−"}
details.acao .dentro{padding:0 18px 16px;display:grid;gap:10px}
.btn.perigo{background:var(--surface);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}
.btn.perigo:hover{background:var(--danger-soft)}
.btn.largo{width:100%;justify-content:center}
.estado-modulo{display:flex;gap:18px;align-items:center;flex-wrap:wrap}

/* ---------- responsivo / impressão ---------- */
@media (max-width:1180px){.g-12-8,.g-8-12,.doc-wrap{grid-template-columns:1fr}.regua-topo .leg{margin-left:0;width:100%}}
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:8px 10px;gap:2px}
  .rail .grupo,.rail .breve{display:none}
  .marca{padding:4px 8px;width:100%}
  .rail a.on::before{display:none}
  .topbar{padding:8px 16px}
  .busca-btn kbd,.eu>span:not(.avatar){display:none}
  .main{padding:16px}
  .g2,.g3{grid-template-columns:1fr}
  .perfil{grid-template-columns:auto 1fr}.perfil .acoes{grid-column:1/-1}
  .doc{padding:24px 20px}.doc .d-partes{grid-template-columns:1fr}
  .login{grid-template-columns:1fr}.login .lado{display:none}
  .campo-busca input{width:100%}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{
  .rail,.topbar,.lateral,.cabeca .acoes,.no-print{display:none!important}
  .app{display:block}.main{padding:0}body{background:#fff}
  .doc-wrap{display:block}.doc{box-shadow:none;border:0;padding:0}
}
