/* ===== Zé Finanças — padrão família Zé (Zé Click / Zé Folha) ===== */
/* Tokens espelhados do Zé Click: verde esmeralda de marca, base neutra, Inter + Geist Mono. */
:root{
  --background:#ffffff; --muted-bg:#f7f8f7; --card:#ffffff; --sidebar:#fafafa;
  --ink:#171717; --ink-2:#404040; --muted:#737373; --muted-2:#a1a1a1;
  --border:#e5e5e5; --border-2:#efefef; --secondary:#f5f5f5;
  --primary:#009868; --primary-2:#00b37a; --primary-fg:#ffffff;
  --accent:#ecfdf5; --accent-fg:#0d7a54;            /* hover verde clarinho */
  --ok:#009868; --ok-soft:#e9faf2;
  --warn:#a8620a; --warn-soft:#fdf3e3;
  --danger:#e11d48; --danger-soft:#fdeef1;
  --dup:#7c3aed; --dup-soft:#f3effe;
  --info:#0369a1; --info-soft:#eef7fd;
  --grad:linear-gradient(135deg,#10b981,#0d9488);
  --radius:0.85rem;
  --shadow-sm:0 1px 2px rgba(16,24,40,.06);
  --shadow:0 1px 3px rgba(16,24,40,.06),0 10px 28px -12px rgba(16,24,40,.12);
  --shadow-primary:0 8px 22px -10px rgba(0,152,104,.5);
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root{
  --background:#141414; --muted-bg:#0f0f0f; --card:#1e1e1e; --sidebar:#1a1a1a;
  --ink:#fafafa; --ink-2:#d4d4d4; --muted:#9a9a9a; --muted-2:#6f6f6f;
  --border:#2a2a2a; --border-2:#232323; --secondary:#232323;
  --primary:#00c281; --primary-2:#00d68e; --primary-fg:#052e21;
  --accent:rgba(0,194,129,.14); --accent-fg:#00c281;
  --ok:#22c55e; --ok-soft:rgba(0,194,129,.14);
  --warn:#f59e0b; --warn-soft:rgba(245,158,11,.13);
  --danger:#fb7185; --danger-soft:rgba(251,113,133,.14);
  --dup:#a78bfa; --dup-soft:rgba(167,139,250,.14);
  --info:#38bdf8; --info-soft:rgba(56,189,248,.12);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow:0 1px 3px rgba(0,0,0,.5),0 12px 40px -12px rgba(0,0,0,.6);
  --shadow-primary:0 8px 22px -10px rgba(0,194,129,.4);
}}
:root[data-theme="light"]{
  --background:#ffffff; --muted-bg:#f7f8f7; --card:#ffffff; --sidebar:#fafafa;
  --ink:#171717; --ink-2:#404040; --muted:#737373; --muted-2:#a1a1a1;
  --border:#e5e5e5; --border-2:#efefef; --secondary:#f5f5f5;
  --primary:#009868; --primary-2:#00b37a; --primary-fg:#ffffff;
  --accent:#ecfdf5; --accent-fg:#0d7a54; --ok:#009868; --ok-soft:#e9faf2;
  --warn:#a8620a; --warn-soft:#fdf3e3; --danger:#e11d48; --danger-soft:#fdeef1;
  --dup:#7c3aed; --dup-soft:#f3effe; --info:#0369a1; --info-soft:#eef7fd;
  --shadow-sm:0 1px 2px rgba(16,24,40,.06);
  --shadow:0 1px 3px rgba(16,24,40,.06),0 10px 28px -12px rgba(16,24,40,.12);
  --shadow-primary:0 8px 22px -10px rgba(0,152,104,.5);
}
:root[data-theme="dark"]{
  --background:#141414; --muted-bg:#0f0f0f; --card:#1e1e1e; --sidebar:#1a1a1a;
  --ink:#fafafa; --ink-2:#d4d4d4; --muted:#9a9a9a; --muted-2:#6f6f6f;
  --border:#2a2a2a; --border-2:#232323; --secondary:#232323;
  --primary:#00c281; --primary-2:#00d68e; --primary-fg:#052e21;
  --accent:rgba(0,194,129,.14); --accent-fg:#00c281; --ok:#22c55e; --ok-soft:rgba(0,194,129,.14);
  --warn:#f59e0b; --warn-soft:rgba(245,158,11,.13); --danger:#fb7185; --danger-soft:rgba(251,113,133,.14);
  --dup:#a78bfa; --dup-soft:rgba(167,139,250,.14); --info:#38bdf8; --info-soft:rgba(56,189,248,.12);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow:0 1px 3px rgba(0,0,0,.5),0 12px 40px -12px rgba(0,0,0,.6);
  --shadow-primary:0 8px 22px -10px rgba(0,194,129,.4);
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--sans);background:var(--muted-bg);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased}
.hidden{display:none !important}
.muted{color:var(--muted)}
.mono{font-family:var(--mono)}
button{cursor:pointer;font-family:inherit}
button:disabled{cursor:wait;opacity:.65}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--accent-fg);outline-offset:2px}
svg{display:block}
::selection{background:var(--accent);color:var(--accent-fg)}

/* ---- Botões ---- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--ink);font-size:13.5px;font-weight:500;transition:.15s;box-shadow:var(--shadow-sm)}
.btn:hover{background:var(--accent);border-color:transparent;color:var(--accent-fg)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-fg);box-shadow:var(--shadow-primary)}
.btn.primary:hover{background:var(--primary-2);border-color:var(--primary-2);color:var(--primary-fg)}
.btn.lg{padding:12px;justify-content:center;width:100%}
.btn.sm{padding:6px 11px;font-size:12.5px;border-radius:10px}
.btn.ok{background:var(--primary);border-color:var(--primary);color:var(--primary-fg)}
.btn.ok:hover{background:var(--primary-2);color:var(--primary-fg)}
.btn.danger{color:var(--danger);border-color:transparent;background:var(--danger-soft)}
.btn.danger:hover{border-color:var(--danger);color:var(--danger)}
.btn.ghost{background:transparent}
.btn svg{width:16px;height:16px}

/* ---- Login ---- */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(1100px 460px at 50% -10%,var(--accent),transparent)}
.login-card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:34px 30px;width:372px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}
.login-badge{width:56px;height:56px;border-radius:16px;background:var(--grad);display:grid;place-items:center;margin:0 auto;box-shadow:var(--shadow-primary)}
.login-badge svg{width:38px;height:38px;color:#fff}
.login-card h1{font-size:21px;margin:0;text-align:center;letter-spacing:-.02em;font-weight:700}
.login-card h1 span{color:var(--primary)}
.login-card .sub{color:var(--muted);font-size:13px;margin:0 0 6px;text-align:center}
.fld{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);font-weight:500}
.fld input{padding:11px 12px;border-radius:11px;border:1px solid var(--border);background:var(--background);color:var(--ink);font-size:14px}
.fld input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--accent)}
.login-card .hint{color:var(--muted);font-size:11px;text-align:center;font-family:var(--mono)}
.erro{color:var(--danger);font-size:13px;min-height:16px;text-align:center}

/* ---- Shell ---- */
#app{display:flex;height:100vh;overflow:hidden;background:var(--muted-bg)}
.sidebar{width:256px;flex:none;display:flex;flex-direction:column;background:var(--sidebar);border-right:1px solid var(--border);padding:16px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;padding:8px;text-decoration:none;color:inherit}
.brand-badge{width:40px;height:40px;border-radius:12px;background:var(--grad);display:grid;place-items:center;box-shadow:var(--shadow-primary);flex:none}
.brand-badge svg{width:28px;height:28px;color:#fff}
.brand-name{font-size:18px;font-weight:600;letter-spacing:-.01em}
.brand-name b{color:var(--primary);font-weight:600}

/* Cliente ativo (padrão Zé) */
.cliente-picker{margin-top:14px;border:1px solid var(--border);background:var(--card);border-radius:12px;padding:8px}
.cp-label{display:flex;align-items:center;gap:6px;padding:0 2px 5px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-family:var(--mono)}
.cp-label svg{width:12px;height:12px;color:var(--primary)}
.cp-sel{position:relative}
.cp-sel select{width:100%;appearance:none;-webkit-appearance:none;cursor:pointer;border:1px solid var(--border);background:var(--background);color:var(--ink);border-radius:9px;padding:8px 28px 8px 10px;font-size:13.5px;font-weight:600;font-family:var(--sans);text-overflow:ellipsis}
.cp-sel select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--accent)}
.cp-chev{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}
.nav-sep{height:1px;background:var(--border);margin:8px 6px}
.nav-group{padding:12px 12px 4px;font-size:9.5px;line-height:1;text-transform:uppercase;letter-spacing:.09em;color:var(--muted-2);font-family:var(--mono);font-weight:700}
.nav-group:first-child{padding-top:2px}

.nav{margin-top:14px;display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:0;background:transparent;color:var(--muted);font-size:14px;font-weight:500;text-align:left;transition:.14s;width:100%}
.nav-item:hover{background:var(--accent);color:var(--accent-fg)}
.nav-item.active{background:var(--primary);color:var(--primary-fg);box-shadow:var(--shadow-sm);font-weight:500}
.nav-item svg{width:18px;height:18px;flex:none}
.nav-item .lbl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-badge{background:var(--warn);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:20px;display:grid;place-items:center;padding:0 6px;font-family:var(--mono)}
.nav-item.active .nav-badge{background:rgba(255,255,255,.25);color:#fff}

.side-foot{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.theme-btn{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:11px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:13px;font-weight:500}
.theme-btn:hover{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.theme-btn svg{width:16px;height:16px}
.user-card{display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:var(--card);border-radius:12px;padding:10px 12px}
.user-ico{color:var(--primary);flex:none}
.user-ico svg{width:30px;height:30px}
.user-meta{min-width:0;flex:1;line-height:1.25}
.user-meta b{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-meta span{font-size:11.5px;color:var(--muted);text-transform:capitalize}
.logout{background:transparent;border:0;color:var(--muted);padding:6px;border-radius:9px;display:grid;place-items:center}
.logout:hover{background:var(--accent);color:var(--danger)}
.logout svg{width:16px;height:16px}

/* ---- Main ---- */
.main{flex:1;min-width:0;height:100vh;overflow-x:hidden;overflow-y:auto}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:22px 32px 16px;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--muted-bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}
.ph-title h1{margin:0;font-size:24px;letter-spacing:-.02em;font-weight:700}
.ph-title p{margin:3px 0 0;font-size:13.5px;color:var(--muted)}
.head-actions{display:flex;align-items:center;gap:9px}
.action-step{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--secondary);color:var(--muted);font:700 10px/1 var(--mono);flex:none}
.btn.primary .action-step{background:rgba(255,255,255,.2);color:inherit}
.ops-status{display:flex;align-items:center;gap:9px;padding:7px 11px;border:1px solid var(--border);border-radius:12px;background:var(--card);box-shadow:var(--shadow-sm);min-height:38px}
.ops-dot{width:8px;height:8px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft);flex:none}
.ops-copy{display:flex;flex-direction:column;line-height:1.15;white-space:nowrap}
.ops-copy b{font-size:11.5px;font-weight:700;color:var(--ink-2)}
.ops-copy small{font-size:10px;color:var(--muted);margin-top:2px}
.ops-status.automatico .ops-dot{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}
.ops-status.monitor-off .ops-copy small{color:var(--warn)}
.view{padding:6px 32px 60px}

/* ---- Stat cards ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:22px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm);transition:.2s}
.card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.card .c-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--secondary);color:var(--muted)}
.card .c-ico svg{width:17px;height:17px}
.card .n{font-size:28px;font-weight:700;letter-spacing:-.03em;margin-top:10px;line-height:1;font-variant-numeric:tabular-nums}
.card .l{color:var(--muted);font-size:12.5px;margin-top:5px;font-weight:500}
.card.ok .c-ico{background:var(--ok-soft);color:var(--ok)} .card.ok .n{color:var(--ok)}
.card.warn .c-ico{background:var(--warn-soft);color:var(--warn)} .card.warn .n{color:var(--warn)}
.card.err .c-ico{background:var(--danger-soft);color:var(--danger)} .card.err .n{color:var(--danger)}
.card.dup .c-ico{background:var(--dup-soft);color:var(--dup)} .card.dup .n{color:var(--dup)}
.work-cards .card{display:flex;align-items:center;gap:12px;text-align:left;color:inherit;cursor:pointer;min-width:0}
.work-cards .card-copy{min-width:0}
.work-cards .card .n{font-size:24px;margin:0}
.work-cards .card .l{margin-top:2px;color:var(--ink);font-weight:650}
.work-cards .card small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px}
.work-cards .card-arrow{margin-left:auto;color:var(--muted-2);font-size:18px;transition:.15s}
.work-cards .card:hover .card-arrow{color:var(--primary);transform:translateX(2px)}

/* ---- Panel ---- */
.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border)}
.panel-head h2{margin:0;font-size:15px;font-weight:600}
.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.inp{padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--ink);font-size:13px}
.inp:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--accent)}
select.inp{min-width:150px}

/* ---- Process rows ---- */
.plist{display:flex;flex-direction:column}
.prow{display:grid;grid-template-columns:1fr auto;gap:6px 18px;padding:14px 18px;border-bottom:1px solid var(--border-2);cursor:pointer;transition:.12s}
.prow:last-child{border-bottom:0}
.prow:hover{background:var(--muted-bg)}
.prow .p-title{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow .p-meta{font-size:12px;color:var(--muted);margin-top:2px;display:flex;gap:12px;flex-wrap:wrap}
.prow .p-meta b{color:var(--ink-2);font-weight:600}
.prow .p-right{display:flex;flex-direction:column;align-items:flex-end;gap:7px;justify-self:end}
.p-id{font-size:11px;color:var(--muted-2);font-family:var(--mono)}

/* ---- Esteira (stepper) ---- */
.stepper{display:flex;align-items:center;margin-top:9px}
.stepper.big{margin:6px 0 2px}
.step{display:flex;align-items:center}
.step .dot{width:15px;height:15px;border-radius:50%;border:2px solid var(--border);background:var(--card);display:grid;place-items:center;font-size:8px;color:transparent;flex:none;transition:.2s}
.stepper.big .dot{width:20px;height:20px;font-size:10px}
.step.done .dot{background:var(--primary);border-color:var(--primary);color:#fff}
.step.current .dot{border-color:var(--primary);background:var(--card);box-shadow:0 0 0 3px var(--accent)}
.step.current .dot::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--primary)}
.step.branch .dot{background:var(--warn);border-color:var(--warn);color:#fff}
.step.branch.err .dot{background:var(--danger);border-color:var(--danger)}
.step.branch.dup .dot{background:var(--dup);border-color:var(--dup)}
.bar{width:24px;height:2px;background:var(--border);flex:none}
.stepper.big .bar{width:38px}
.bar.done{background:var(--primary)}
.step .lbl{display:none}
.stepper.big .step .lbl{display:block;font-size:11px;color:var(--muted);margin:0 6px 0 5px;font-weight:500;white-space:nowrap}
.stepper.big .step.done .lbl{color:var(--ink-2)}
.stepper.big .step.current .lbl{color:var(--primary)}
.stepper.big .step.branch .lbl{color:var(--warn)}

/* ---- Pills ---- */
.pill{font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:20px;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;font-family:var(--mono)}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st-lancado_no_omie{background:var(--ok-soft);color:var(--ok)}
.st-rejeitado,.st-erro_integracao{background:var(--danger-soft);color:var(--danger)}
.st-duplicidade_encontrada{background:var(--dup-soft);color:var(--dup)}
.st-aguardando_analise_humana,.st-aguardando_informacao{background:var(--warn-soft);color:var(--warn)}
.st-recebido,.st-em_leitura,.st-cliente_identificado,.st-documento_interpretado,.st-em_validacao,.st-aprovado_para_lancamento{background:var(--secondary);color:var(--muted)}

/* ---- Confidence meter ---- */
.meter{display:flex;align-items:center;gap:8px}
.meter-bar{width:74px;height:7px;border-radius:20px;background:var(--secondary);overflow:hidden}
.meter-fill{display:block;height:100%;border-radius:20px}
.meter-fill.hi{background:var(--primary)} .meter-fill.mid{background:var(--warn)} .meter-fill.lo{background:var(--danger)}
.conf{font-weight:700;font-size:12.5px;font-family:var(--mono)}
.conf.hi{color:var(--primary)} .conf.mid{color:var(--warn)} .conf.lo{color:var(--danger)}
.amount{font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:13.5px}

/* ---- Table ---- */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;color:var(--muted);font-weight:500;padding:11px 18px;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-family:var(--mono)}
td{padding:12px 18px;border-bottom:1px solid var(--border-2)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--muted-bg)}

/* ---- Empty ---- */
.empty{text-align:center;padding:56px 20px;color:var(--muted)}
.empty .e-ico{width:52px;height:52px;border-radius:16px;background:var(--secondary);display:grid;place-items:center;margin:0 auto 14px;color:var(--muted)}
.empty .e-ico svg{width:26px;height:26px}
.empty h3{margin:0 0 6px;color:var(--ink);font-size:16px}
.empty p{margin:0 0 16px;font-size:13.5px}

/* ---- Drawer ---- */
.drawer{position:fixed;inset:0;z-index:40}
.drawer-bg{position:absolute;inset:0;background:rgba(9,14,22,.45);backdrop-filter:blur(3px);animation:fade .2s}
.drawer-panel{position:absolute;right:0;top:0;height:100%;width:min(660px,96vw);background:var(--muted-bg);border-left:1px solid var(--border);overflow-y:auto;animation:slide .22s cubic-bezier(.2,.8,.2,1)}
@keyframes slide{from{transform:translateX(30px);opacity:.6}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.dp-head{padding:22px 24px 16px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:2}
.dp-head .close{position:absolute;top:16px;right:18px}
.dp-head h2{margin:0 0 4px;font-size:18px;letter-spacing:-.01em;padding-right:30px;font-weight:700}
.dp-sub{font-size:12.5px;color:var(--muted);font-family:var(--mono)}
.dp-body{padding:20px 24px 40px;display:flex;flex-direction:column;gap:16px}
.dp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.sec{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}
.sec h3{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px;font-weight:600;font-family:var(--mono)}
.sec.piloto{border-color:var(--primary);box-shadow:var(--shadow-primary)}
.cfg-switch{display:flex;align-items:center;gap:12px}
.cfg-switch .sw{position:relative;flex:none;width:44px;height:24px;cursor:pointer;display:inline-block}
.cfg-switch .sw input{position:absolute;opacity:0;width:0;height:0}
.cfg-switch .sw-track{position:absolute;inset:0;background:var(--secondary);border:1px solid var(--border);border-radius:20px;transition:.15s}
.cfg-switch .sw-track::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:.15s;box-shadow:var(--shadow-sm)}
.cfg-switch .sw input:checked+.sw-track{background:var(--primary);border-color:var(--primary)}
.cfg-switch .sw input:checked+.sw-track::after{transform:translateX(20px)}
.kv{display:grid;grid-template-columns:130px 1fr;gap:8px 14px;font-size:13.5px}
.kv .k{color:var(--muted)}
.kv .v{color:var(--ink);font-weight:500}
.alert{padding:10px 13px;border-radius:11px;margin-bottom:8px;font-size:13px;display:flex;gap:9px;align-items:flex-start}
.alert:last-child{margin-bottom:0}
.alert .a-tag{font-weight:700;font-family:var(--mono);font-size:12px}
.alert.alta{background:var(--danger-soft);color:var(--danger)}
.alert.media{background:var(--warn-soft);color:var(--warn)}
.alert.baixa{background:var(--secondary);color:var(--ink-2);border:1px solid var(--border)}
.alert.ok{background:var(--ok-soft);color:var(--ok)}
.notif{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--background);margin-bottom:9px}
.notif:last-child{margin-bottom:0}
.notif-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.notif-head b{font-size:12.5px}
.notif-to{font-size:10.5px;color:var(--muted);font-family:var(--mono);margin:4px 0 8px;overflow-wrap:anywhere}
.notif-body{font-size:12px;color:var(--ink-2);white-space:pre-wrap;line-height:1.45;max-height:150px;overflow:auto;margin-bottom:8px}
.notif-error{font-size:11.5px;color:var(--danger);background:var(--danger-soft);border-radius:7px;padding:6px 8px;margin-bottom:8px}
.timeline{display:flex;flex-direction:column}
.tl{display:grid;grid-template-columns:16px 1fr;gap:12px;padding-bottom:14px;position:relative}
.tl:not(:last-child)::before{content:"";position:absolute;left:7px;top:16px;bottom:0;width:2px;background:var(--border)}
.tl .tl-dot{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--primary);margin-top:1px;z-index:1}
.tl .tl-body{font-size:13px}
.tl .tl-time{font-size:11.5px;color:var(--muted);font-family:var(--mono)}
.editgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.editgrid label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:4px;font-weight:500;font-family:var(--mono)}
.editgrid input{padding:8px 10px;border-radius:9px;border:1px solid var(--border);background:var(--background);color:var(--ink);font-size:13px;font-family:var(--sans)}
.editgrid input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--accent)}
.attach{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--border);font-size:13px}
.attach:last-child{border-bottom:0}
.attach .a-type{font-size:11px;color:var(--muted);background:var(--secondary);padding:2px 7px;border-radius:6px;font-family:var(--mono)}
.tag{font-size:11px;padding:2px 9px;border-radius:20px;background:var(--accent);color:var(--accent-fg);font-weight:600;font-family:var(--mono)}
.tag.ok{background:var(--ok-soft);color:var(--ok)}
.tag.warn{background:var(--warn-soft);color:var(--warn)}
.tag.danger{background:var(--danger-soft);color:var(--danger)}

/* ---- Modal ---- */
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px}
.modal-bg{position:absolute;inset:0;background:rgba(9,14,22,.45);backdrop-filter:blur(3px)}
.modal-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);width:min(520px,96vw);max-height:88vh;overflow-y:auto;padding:24px}
.modal-card h2{margin:0 0 4px;font-size:18px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.form-grid label{font-size:11.5px;color:var(--muted);display:flex;flex-direction:column;gap:5px;font-weight:500}
.form-grid label.full{grid-column:1 / -1}
.form-grid input{padding:9px 11px;border-radius:10px;border:1px solid var(--border);background:var(--background);color:var(--ink);font-size:13.5px}
.form-grid input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--accent)}
.modal-foot{display:flex;justify-content:flex-end;gap:9px;margin-top:8px}

/* ---- Config ---- */
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.cfg-item{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;background:var(--card);border:1px solid var(--border);border-radius:12px}
.cfg-item .ci-k{font-size:13px;color:var(--muted)}
.cfg-item .ci-v{font-weight:700}

/* ---- Cockpit do cliente ---- */
.client-hero{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin-bottom:18px;box-shadow:var(--shadow-sm)}
.client-hero .ch-badge{width:48px;height:48px;border-radius:13px;background:var(--grad);display:grid;place-items:center;color:#fff;font-weight:700;font-size:19px;flex:none}
.client-hero h2{margin:0;font-size:19px;letter-spacing:-.01em}
.client-hero .ch-meta{font-size:12.5px;color:var(--muted);margin-top:4px;display:flex;gap:12px;flex-wrap:wrap;font-family:var(--mono)}
.client-hero .ch-right{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.work-focus{display:flex;align-items:center;gap:16px;padding:20px 22px;margin-bottom:16px;border:1px solid var(--border);border-radius:16px;background:var(--card);box-shadow:var(--shadow-sm)}
.work-focus.needs-action{border-color:color-mix(in srgb,var(--warn) 35%,var(--border));background:linear-gradient(110deg,var(--card) 58%,var(--warn-soft))}
.work-focus.all-clear{border-color:color-mix(in srgb,var(--ok) 30%,var(--border));background:linear-gradient(110deg,var(--card) 58%,var(--ok-soft))}
.wf-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--warn-soft);color:var(--warn);flex:none}
.all-clear .wf-icon{background:var(--ok-soft);color:var(--ok)}
.wf-icon svg{width:22px;height:22px}
.wf-copy{min-width:0;flex:1}
.wf-kicker{display:block;font:700 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--warn);margin-bottom:6px}
.all-clear .wf-kicker{color:var(--ok)}
.wf-copy h2{margin:0;font-size:18px;letter-spacing:-.01em}
.wf-copy p{margin:4px 0 0;color:var(--muted);font-size:12.5px}
.wf-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:6px}
.tile{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;cursor:pointer;transition:.15s;box-shadow:var(--shadow-sm);text-align:left;width:100%;color:inherit;font-family:inherit}
.tile:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-1px)}
.tile .t-ico{width:38px;height:38px;border-radius:11px;background:var(--accent);color:var(--primary);display:grid;place-items:center;flex:none}
.tile .t-ico svg{width:19px;height:19px}
.tile b{display:block;font-size:14px}
.tile small{color:var(--muted);font-size:12px}
.block-title{font-size:14px;font-weight:600;margin:24px 0 12px;display:flex;align-items:center;gap:8px}
.block-title a{margin-left:auto;font-size:12.5px;color:var(--primary);cursor:pointer;font-weight:500}

/* ---- Relatórios ---- */
.rep-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:760px){.rep-grid{grid-template-columns:1fr}}
.barrow{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:10px 0;border-bottom:1px solid var(--border-2)}
.barrow:last-child{border-bottom:0}
.barrow .bl{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.barrow .bv{font-family:var(--mono);font-size:12.5px;font-weight:600;text-align:right}
.barrow .track{grid-column:1 / -1;height:6px;border-radius:20px;background:var(--secondary);overflow:hidden}
.barrow .fill{height:100%;background:var(--primary);border-radius:20px}

/* ---- Relatórios financeiros ---- */
.rep-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.rep-tab{padding:8px 14px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}
.rep-tab:hover{color:var(--ink)}
.rep-tab.active{background:var(--primary);border-color:var(--primary);color:var(--primary-fg)}
.big-num{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.pos{color:var(--primary)} .neg{color:var(--danger)}
.dre-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border-2);font-size:14px}
.dre-line:last-child{border-bottom:0}
.dre-line .val{font-family:var(--mono);font-weight:600}
.dre-total{display:flex;justify-content:space-between;gap:12px;padding:13px 18px;border-radius:12px;background:var(--secondary);margin-top:12px;font-weight:700;font-size:15px}
.dre-total .val{font-family:var(--mono)}
.mini2{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);margin-top:2px}
.dot-e{width:9px;height:9px;border-radius:3px;background:var(--primary);display:inline-block}
.dot-s{width:9px;height:9px;border-radius:3px;background:var(--danger);display:inline-block}
.fluxrow{display:grid;grid-template-columns:64px 1fr auto;gap:6px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border-2)}
.fluxrow:last-child{border-bottom:0}
.fluxrow .fm{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.fluxrow .fbars{display:flex;flex-direction:column;gap:4px}
.fluxrow .fb{height:8px;border-radius:20px;background:var(--secondary);overflow:hidden}
.fluxrow .fb i{display:block;height:100%;border-radius:20px}
.fluxrow .fb.e i{background:var(--primary)} .fluxrow .fb.s i{background:var(--danger)}
.fluxrow .fsaldo{font-family:var(--mono);font-weight:700;text-align:right;font-size:13px}

/* ---- Paleta categórica (validada CVD, dataviz) ---- */
:root{ --cat-1:#2a78d6; --cat-2:#009868; --cat-3:#e87ba4; --cat-4:#eda100; --cat-5:#1baf7a; --cat-6:#eb6834; --cat-7:#4a3aa7; --cat-8:#8a8a8a; }
@media (prefers-color-scheme:dark){:root{ --cat-1:#3987e5; --cat-2:#00c281; --cat-3:#d55181; --cat-4:#c98500; --cat-5:#199e70; --cat-6:#d95926; --cat-7:#9085e9; --cat-8:#9a9a9a; }}
:root[data-theme="light"]{ --cat-1:#2a78d6; --cat-2:#009868; --cat-3:#e87ba4; --cat-4:#eda100; --cat-5:#1baf7a; --cat-6:#eb6834; --cat-7:#4a3aa7; --cat-8:#8a8a8a; }
:root[data-theme="dark"]{ --cat-1:#3987e5; --cat-2:#00c281; --cat-3:#d55181; --cat-4:#c98500; --cat-5:#199e70; --cat-6:#d95926; --cat-7:#9085e9; --cat-8:#9a9a9a; }

/* ---- Cores financeiras vivas (CFO) ---- */
:root{ --fin-rec:#009868; --fin-desp:#e8590c; --fin-res:#2a78d6; }
@media (prefers-color-scheme:dark){:root{ --fin-rec:#12b886; --fin-desp:#fd7e14; --fin-res:#4dabf7; }}
:root[data-theme="light"]{ --fin-rec:#009868; --fin-desp:#e8590c; --fin-res:#2a78d6; }
:root[data-theme="dark"]{ --fin-rec:#12b886; --fin-desp:#fd7e14; --fin-res:#4dabf7; }

/* ---- DRE comparativo (CFO) ---- */
.dre-table{width:100%;border-collapse:collapse;font-size:13px}
.dre-table th{font-family:var(--mono);font-size:10.5px;text-align:right;padding:8px 12px}
.dre-table th:first-child{text-align:left}
.dre-table td{padding:9px 12px;border-bottom:1px solid var(--border-2);text-align:right;font-family:var(--mono)}
.dre-table td:first-child{text-align:left;font-family:var(--sans)}
.dre-table tr.grupo td{background:var(--surface-2);font-weight:700;font-family:var(--sans)}
.dre-table tr.res td{border-top:2px solid var(--border);font-weight:800;font-size:14px}
.dre-table .up{color:var(--ok)} .dre-table .down{color:var(--danger)}
.chip-delta{font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 7px;border-radius:20px}
.chip-delta.up{background:var(--ok-soft);color:var(--ok)} .chip-delta.down{background:var(--danger-soft);color:var(--danger)}
.mover{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:9px 0;border-bottom:1px solid var(--border-2)}
.mover:last-child{border-bottom:0}
.mover .mn{font-size:13px} .mover .mv{font-family:var(--mono);font-weight:700}
.mover .track{grid-column:1/-1;height:5px;border-radius:20px;background:var(--secondary);overflow:hidden}
.mover .fill{height:100%;border-radius:20px}
.tendencia{display:inline-flex;gap:6px;align-items:center;font-family:var(--mono);font-size:12px;font-weight:700;padding:3px 10px;border-radius:20px}

/* ---- Stat tiles premium (evolução) ---- */
.stats-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-bottom:20px}
.stat-tile{position:relative;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px 20px 14px;box-shadow:var(--shadow);overflow:hidden;animation:rise .5s ease both}
.stat-tile::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--primary-2))}
.stat-tile.warn::before{background:linear-gradient(90deg,#eda100,#eb6834)}
.stat-tile.neg::before{background:linear-gradient(90deg,#e34948,#eb6834)}
.st-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.st-label{font-size:12.5px;color:var(--muted);font-weight:500}
.st-value{font-size:30px;font-weight:800;letter-spacing:-.03em;margin-top:8px;font-variant-numeric:tabular-nums;line-height:1}
.st-spark{margin-top:10px;height:38px}
.st-spark svg{width:100%;height:38px;display:block}
.delta{font-size:11.5px;font-weight:700;font-family:var(--mono);padding:3px 9px;border-radius:20px;display:inline-flex;gap:3px;align-items:center;white-space:nowrap}
.delta.up{background:var(--ok-soft);color:var(--ok)} .delta.down{background:var(--danger-soft);color:var(--danger)}

/* ---- Donut ---- */
.donut-wrap{display:flex;gap:24px;align-items:center;flex-wrap:wrap;padding:8px 6px}
.donut-svg{width:200px;height:200px;flex:none}
.donut-center{font-family:var(--mono)}
.donut-legend{flex:1;min-width:220px;display:flex;flex-direction:column;gap:8px}
.dleg{display:grid;grid-template-columns:12px 1fr auto auto;gap:10px;align-items:center;font-size:13px}
.dleg .dot{width:12px;height:12px;border-radius:4px}
.dleg .dv{font-family:var(--mono);font-weight:600}
.dleg .dp{font-family:var(--mono);color:var(--muted);font-size:12px;min-width:38px;text-align:right}

/* ---- Animações ---- */
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.ch-anim{stroke-dasharray:2800;stroke-dashoffset:2800;animation:draw 1.2s cubic-bezier(.4,0,.2,1) forwards}
.ch-fade{animation:fadein 1s ease .2s both}
@media (prefers-reduced-motion:reduce){.ch-anim{animation:none;stroke-dashoffset:0}.ch-fade,.stat-tile{animation:none}}

/* ---- Gráficos (SVG) ---- */
.chart{width:100%;height:auto;display:block;overflow:visible}
.ch-grid{stroke:var(--border);stroke-width:1;opacity:.55;stroke-dasharray:2 5}
.ch-glow{filter:drop-shadow(0 3px 6px rgba(16,24,40,.18))}
@media (prefers-color-scheme:dark){.ch-glow{filter:drop-shadow(0 3px 8px rgba(0,0,0,.55))}}
.ch-endpill{font-family:var(--mono);font-weight:800;font-size:12px}

/* ---- Mapa de calor ---- */
.heat{display:flex;flex-direction:column;gap:4px;min-width:520px}
.heat-row{display:grid;gap:4px;align-items:center}
.heat-lbl{font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:6px}
.heat-head{font-family:var(--mono);font-size:10.5px;color:var(--muted);text-align:center}
.heat-cell{height:32px;border-radius:7px;display:grid;place-items:center;font-size:10px;font-family:var(--mono);color:var(--ink-2);border:1px solid var(--border-2);transition:transform .1s}
.heat-cell:hover{transform:scale(1.06);z-index:1;box-shadow:var(--shadow)}
.ch-axis{fill:var(--muted);font-size:11px;font-family:var(--mono)}
.ch-zero{stroke:var(--muted);stroke-width:1.5}
.ch-in{stroke:var(--primary);fill:none;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.ch-out{stroke:var(--danger);fill:none;stroke-width:2.4;stroke-dasharray:6 4;stroke-linejoin:round;stroke-linecap:round}
.ch-in-dot{fill:var(--primary)} .ch-out-dot{fill:var(--danger)}
.ch-area-pos{fill:var(--primary);opacity:.14}
.ch-area-neg{fill:var(--danger);opacity:.18}
.ch-line{stroke:var(--ink);fill:none;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.ch-dot{fill:var(--card);stroke:var(--ink);stroke-width:2}
.ch-dot-neg{fill:var(--danger);stroke:var(--card);stroke-width:2}
.ch-lbl{font-size:11.5px;font-weight:700;font-family:var(--mono)}
circle.pt{transition:r .1s;cursor:pointer} circle.pt:hover{r:6}
.legend-row{display:flex;gap:18px;justify-content:center;margin-top:10px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.legend-row .lg{display:inline-flex;align-items:center;gap:7px}
.legend-row .sw{width:20px;height:3px;border-radius:2px;display:inline-block}
.legend-row .sw.dash{height:0;border-top:3px dashed var(--danger);background:none !important}

.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:16px}
.kpi .k{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow-sm)}
.kpi .k .kl{font-size:12px;color:var(--muted)}
.kpi .k .kv{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums}
.saldo-input{display:flex;align-items:center;gap:8px;margin-top:6px}
.saldo-input input{width:150px;padding:8px 10px;border-radius:9px;border:1px solid var(--border);background:var(--background);color:var(--ink);font-family:var(--mono);font-weight:700;font-size:16px}
.saldo-input input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--accent)}

/* ---- Perguntar ao Zé (chat) ---- */
.chat-wrap{max-width:820px;margin:0 auto;display:flex;flex-direction:column;height:calc(100vh - 170px);min-height:420px;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.chat-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}
.chat-msgs{flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.cmsg{display:flex;gap:10px;max-width:88%}
.cmsg.user{align-self:flex-end;flex-direction:row-reverse}
.cmsg-av{width:32px;height:32px;border-radius:9px;background:var(--grad);display:grid;place-items:center;flex:none;box-shadow:var(--shadow-primary)}
.cmsg-av svg{width:24px;height:24px;color:#fff}
.cbubble{background:var(--secondary);border-radius:14px;padding:10px 14px;font-size:14px;line-height:1.55}
.cmsg.user .cbubble{background:var(--primary);color:var(--primary-fg)}
.chat-sug{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 12px}
.chip-sug{font-size:12.5px;border:1px solid var(--border);background:var(--card);color:var(--ink-2);border-radius:20px;padding:7px 13px;cursor:pointer;transition:.12s}
.chip-sug:hover{border-color:var(--primary);color:var(--primary);background:var(--accent)}
.chat-input{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--border)}
.chat-input input{flex:1;padding:11px 14px;border-radius:12px;border:1px solid var(--border);background:var(--background);color:var(--ink);font-size:14px}
.chat-input input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--accent)}
.insight{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink-2)}
.insight span{flex:none}

/* ---- Triagem inteligente ---- */
.tri-stream{display:flex;flex-direction:column}
.tri-card{border-left:4px solid var(--border);border-bottom:1px solid var(--border-2);padding:14px 18px;cursor:pointer;transition:.12s}
.tri-card:last-child{border-bottom:0}
.tri-card:hover{background:var(--muted-bg)}
.tri-card.ok{border-left-color:var(--ok)} .tri-card.warn{border-left-color:var(--warn)} .tri-card.dup{border-left-color:var(--dup)}
.tri-card.danger{border-left-color:var(--danger)} .tri-card.proc{border-left-color:var(--info)} .tri-card.muted{border-left-color:var(--muted-2)}
.tri-top{display:flex;align-items:center;gap:12px}
.tri-canal{font-size:18px;flex:none}
.tri-h{flex:1;min-width:0}
.tri-assunto{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tri-sub{font-size:12px;color:var(--muted);margin-top:2px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tri-dec{font-size:11.5px;font-weight:700;padding:5px 11px;border-radius:20px;white-space:nowrap;flex:none}
.tri-dec.ok{background:var(--ok-soft);color:var(--ok)} .tri-dec.warn{background:var(--warn-soft);color:var(--warn)} .tri-dec.dup{background:var(--dup-soft);color:var(--dup)}
.tri-dec.danger{background:var(--danger-soft);color:var(--danger)} .tri-dec.proc{background:var(--accent);color:var(--accent-fg)} .tri-dec.muted{background:var(--secondary);color:var(--muted)}
.tri-body{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:12px}
@media(max-width:760px){.tri-body{grid-template-columns:1fr}}
.tri-lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-family:var(--mono);margin-bottom:5px}
.tri-cli{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600}
.tri-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tri-chip{font-size:12px;background:var(--secondary);border:1px solid var(--border-2);border-radius:7px;padding:3px 8px;font-family:var(--mono)}
.tri-foot{display:flex;align-items:center;gap:12px;margin-top:12px}
.badge-ok{color:var(--ok);font-weight:700;font-size:11.5px}
.badge-warn{color:var(--warn);font-weight:700;font-size:11.5px}
#tri-live{color:var(--ok);animation:pulse 2s ease-in-out infinite;font-size:12px;font-weight:700;display:flex;align-items:center}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ---- Triagem v2: barra, funil, callout, kanban ---- */
.tri-bar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.tri-bar .toolbar{margin-left:auto}
/* Funil da jornada */
.funnel{display:flex;align-items:stretch;gap:0;margin-bottom:12px;overflow-x:auto;border:1px solid var(--border);border-radius:16px;background:var(--card);box-shadow:var(--shadow-sm)}
.fn-stage{flex:1;min-width:140px;padding:15px 18px;display:flex;align-items:center;justify-content:center;gap:11px;text-align:left;position:relative}
.fn-stage+.fn-stage{border-left:1px solid var(--border-2)}
.fn-ico{font-size:19px;line-height:1}
.fn-n{font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1;font-family:var(--mono)}
.fn-l{font-size:11.5px;color:var(--muted);margin-top:5px;font-weight:600}
.fn-stage.ok .fn-n{color:var(--ok)}
.fn-arrow{display:flex;align-items:center;padding:0 2px;color:var(--muted-2);font-size:18px;font-weight:700;flex:none}
.tri-callout{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:18px;padding:0 4px}
.tc-item{font-size:13px}
.tc-item.warn{color:var(--warn)} .tc-item.warn b{font-size:15px}
.tc-item.muted{color:var(--muted)} .tc-item.muted b{color:var(--ink)}
/* Kanban — jornada em colunas */
.kanban{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:14px;align-items:start}
@media(min-width:1680px){.kanban{grid-template-columns:repeat(4,minmax(280px,1fr))}}
.lane{background:var(--muted-bg);border:1px solid var(--border);border-radius:16px;padding:11px 11px 6px;min-width:0}
.lane-head{display:flex;align-items:center;gap:7px;padding:5px 6px 12px;font-weight:700;font-size:13px}
.lane-head .cnt{margin-left:auto;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:1px 9px;font-family:var(--mono);font-size:12px;font-weight:700}
.lane.analise .lane-head{color:var(--info)} .lane.aprovacao .lane-head{color:var(--warn)}
.lane.humano .lane-head{color:var(--danger)} .lane.lancado .lane-head{color:var(--ok)}
.lane-empty{color:var(--muted-2);font-size:12px;text-align:center;padding:14px 0 18px}
.kcard{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:12px;padding:13px 14px;margin-bottom:9px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .12s,box-shadow .12s}
.kcard:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.lane.analise .kcard{border-left-color:var(--info)} .lane.aprovacao .kcard{border-left-color:var(--warn)}
.lane.humano .kcard{border-left-color:var(--danger)} .lane.lancado .kcard{border-left-color:var(--ok)}
.kcard-top{display:flex;align-items:center;gap:8px}
.kcard-canal{font-size:15px;flex:none}
.kcard-assunto{font-weight:650;font-size:13.5px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kcard-time{font-size:10.5px;color:var(--muted);font-family:var(--mono);white-space:nowrap;flex:none}
.kcard-sub{font-size:11.5px;color:var(--muted);margin-top:4px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.kcard-mid{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:10px}
.kcard-forn{font-size:12.5px;font-weight:650;overflow-wrap:anywhere}
.kcard-val{font-family:var(--mono);font-weight:800;font-size:13.5px;margin-left:auto}
.kcard-cli{display:flex;align-items:center;gap:7px;margin-top:8px;min-width:0;flex-wrap:wrap}
.kcard-client{color:var(--muted);font-size:12px;min-width:0;overflow-wrap:anywhere}
.kcard-missing{font-size:12px;color:var(--warn);font-weight:650}
.kcard-reason{display:grid;gap:3px;margin-top:10px;padding:9px 10px;border-radius:9px;background:var(--danger-soft);color:var(--danger);font-size:11.5px;line-height:1.35}
.kcard-reason b{font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-family:var(--mono)}
.kflag{font-size:10.5px;background:var(--secondary);border:1px solid var(--border-2);border-radius:6px;padding:2px 6px;white-space:nowrap}
.kflag.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}
.kcard .stepper{margin-top:10px}
.kcard-actions{display:flex;gap:7px;margin-top:10px}
.kcard-actions .btn{flex:1;justify-content:center}
.kcard-actions .btn.danger{flex:none;padding:6px 10px}
/* categoria no card — sugestão + reconhecer/alterar */
.kcat-wrap{margin-top:10px;padding-top:9px;border-top:1px dashed var(--border-2)}
.kcat-head{font-size:11px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap}
.kcat-sug{display:flex;align-items:center;gap:7px;margin-bottom:9px;flex-wrap:wrap}
.kcat-name{font-weight:700;font-size:13.5px}
.kcat-dec{display:flex;gap:7px}
.kcat-dec .btn{flex:1;justify-content:center}
.kcat-defined{display:flex;align-items:center;gap:7px;font-size:13px;flex-wrap:wrap}
.kcat-defined b{font-weight:700}
.klink{background:none;border:0;color:var(--primary);font-size:11.5px;cursor:pointer;padding:2px 4px;text-decoration:underline;margin-left:auto}
.klink:hover{color:var(--primary-2)}
.kcat-row{display:flex;gap:6px;margin-top:8px}
.kcat-row .kcat{flex:1;min-width:0;font-size:12px;padding:5px 8px}
.kcat-row .btn.sm{flex:none;padding:5px 9px}
.kcat-tag{margin-top:9px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}
/* barra de % de acerto (ebook) */
/* boleto vencido no card */
.kvenc{margin-top:9px;background:var(--danger-soft);border-radius:9px;padding:8px 10px;font-size:12px;color:var(--danger)}
.kvenc .kdata{margin-left:4px;font-size:12px;padding:3px 6px;border:1px solid var(--danger);border-radius:6px;background:var(--card);color:var(--fg)}
.kvenc-obs{color:var(--muted);font-size:10.5px;margin-top:4px}
.acc-bar{height:5px;background:var(--secondary);border-radius:3px;margin-top:4px;overflow:hidden;max-width:130px}
.acc-bar i{display:block;height:100%;background:var(--primary);border-radius:3px}
.tbl-wrap{overflow-x:auto}

/* ---- Fluxo mensal com drill-down ---- */
.fx-head,.fx-row{display:grid;grid-template-columns:90px 1fr 1fr 1fr;gap:12px;align-items:center;padding:10px 16px}
.fx-head{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border)}
.fx-head span:not(:first-child),.fx-row .fx-val,.fx-row .fx-saldo{text-align:right}
.fx-row{border-bottom:1px solid var(--border-2)}
.fx-row .fx-mes{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.fx-val{font-family:var(--mono);font-weight:700;cursor:pointer;border-radius:7px;padding:3px 7px;transition:.12s;text-decoration:none;color:var(--ink)}
.fx-val:hover{background:var(--accent);color:var(--accent-fg)}
.fx-val.rec{color:var(--fin-rec)} .fx-val.desp{color:var(--fin-desp)}
.fx-val.active{background:var(--primary);color:var(--primary-fg)}
.fx-saldo{font-family:var(--mono);font-weight:700}
.fx-detail{background:var(--surface-2);border-bottom:1px solid var(--border-2)}
.fx-detail:empty{display:none}
.fx-item{display:grid;grid-template-columns:70px 1fr auto auto;gap:12px;align-items:center;padding:8px 20px;font-size:12.5px;border-bottom:1px solid var(--border-2)}
.fx-item:last-child{border-bottom:0}
.fx-item span:first-child{font-family:var(--mono);color:var(--muted)}
.fx-item-val{font-family:var(--mono);font-weight:700;text-align:right}
.fx-item-st{font-family:var(--mono);font-size:10.5px;padding:2px 7px;border-radius:20px;background:var(--secondary);color:var(--muted)}
.fx-item-st.pago{background:var(--ok-soft);color:var(--ok)} .fx-item-st.atraso{background:var(--danger-soft);color:var(--danger)}
.fx-item-nome{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* clicáveis genéricos (barrow, células e linhas de tabela) */
.barrow.fx-clik{cursor:pointer;border-radius:8px;margin:0 -6px;padding-left:6px;padding-right:6px}
.barrow.fx-clik:hover{background:var(--accent)}
tr.fx-clik{cursor:pointer} tr.fx-clik:hover{background:var(--muted-bg)} tr.fx-clik.active > td{background:var(--accent)}
.mover.fx-clik{cursor:pointer;border-radius:8px;margin:0 -6px;padding-left:6px;padding-right:6px}
.mover.fx-clik:hover{background:var(--accent)} .mover.fx-clik.active{background:var(--accent)}
.dre-table td.fx-clik{cursor:pointer} .dre-table td.fx-clik:hover{background:var(--accent);color:var(--accent-fg)} .dre-table td.fx-clik.active{background:var(--primary);color:var(--primary-fg)}
.fx-detail-tr > td{padding:0 !important;border-bottom:1px solid var(--border-2) !important}

/* ---- Alçadas ---- */
.alc-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 0}
.alc-row .ate{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.alc-row input{width:120px;padding:7px 9px;border-radius:8px;border:1px solid var(--border);background:var(--background);color:var(--ink);font-family:var(--mono)}
.alc-row select{padding:7px 9px;border-radius:8px;border:1px solid var(--border);background:var(--background);color:var(--ink);font-weight:600}
.alc-row .rm{color:var(--danger);background:transparent;border:0;font-size:16px}

/* ---- Toast ---- */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--background);padding:12px 20px;border-radius:12px;z-index:60;font-size:14px;font-weight:500;box-shadow:var(--shadow);animation:up .2s}
@keyframes up{from{transform:translate(-50%,10px);opacity:0}to{transform:translate(-50%,0);opacity:1}}

@media (max-width:860px){
  .sidebar{width:68px;padding:12px 10px}
  .brand-name,.nav-item .lbl,.theme-btn span,.user-meta,.nav-group{display:none}
  .nav-item{justify-content:center}.user-card{justify-content:center}
  .page-head{padding:14px 18px;align-items:center}.view{padding:10px 18px 50px}
  .ops-status{display:none}
}
@media(max-width:760px){
  .head-actions .btn{padding:9px}.head-actions .btn{font-size:0}.head-actions .btn svg{width:18px;height:18px}.head-actions .action-step{display:none}
  .ph-title h1{font-size:20px}.ph-title p{display:none}
  .kanban{grid-template-columns:1fr}
  .work-focus{align-items:flex-start;flex-wrap:wrap}.wf-actions{width:100%;justify-content:stretch}.wf-actions .btn{flex:1;justify-content:center}
  .funnel{display:grid;grid-template-columns:repeat(2,1fr)}
  .fn-stage{min-width:0;justify-content:flex-start}.fn-arrow{display:none}.fn-stage+.fn-stage{border-left:1px solid var(--border-2)}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
