:root{--bg:#f3f7fa;--card:#fff;--ink:#1b2f56;--muted:#5f6f85;--line:#dfe7ef;--brand:#1b2f56;--brand2:#1e6fd9;--green:#2e8b6a;--lime:#8bc34a;--ok:#2e8b6a;--warn:#c98a00;--bad:#c62828;--soft:#eaf2fa;--r:10px}
*{box-sizing:border-box}html,body{margin:0;height:100%}body{font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
.hidden{display:none!important}a{color:var(--brand2)}button{font:inherit}
.login{min-height:100vh;display:grid;place-items:center;padding:16px;background:linear-gradient(150deg,#1b2f56 0%,#1e6fd9 55%,#2e8b6a 100%)}
.login-logo{text-align:center;margin:4px 0 14px}.login-logo img{max-width:300px;width:100%;height:auto}
.sidebar .mark{width:40px;height:40px;border-radius:10px;background:#fff;padding:4px;flex:none}
.login-card{width:min(420px,100%);padding:28px}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:18px}.brand small{display:block;color:var(--muted);font-size:12px}
.logo{width:40px;height:40px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;font-size:20px;flex:none}
.sidebar .brand b,.sidebar .brand small{color:#fff}.sidebar .brand small{opacity:.75}.sidebar .logo{background:#fff;color:var(--brand)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
label{display:block;margin:10px 0;font-size:12.5px;color:var(--muted)}label input,label select,label textarea{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink);background:#fff}
textarea{min-height:90px}
.btn{padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;color:var(--ink)}.btn:hover{background:var(--soft)}
.btn.primary{background:var(--brand2);border-color:var(--brand2);color:#fff}.btn.primary:hover{background:#155ec0}.btn.danger{color:var(--bad);border-color:#f3c5c5}.btn.sm{padding:4px 9px;font-size:12.5px}
.btn:disabled{opacity:.5;cursor:default}.w100{width:100%;margin-top:8px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:12px}.tab{background:none;border:0;padding:8px 12px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent}.tab.active{color:var(--brand2);border-bottom-color:var(--green);font-weight:600}
.msg{min-height:20px;color:var(--bad);font-size:13px}.msg.ok{color:var(--ok)}
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.sidebar{background:linear-gradient(180deg,#1b2f56,#17346a);color:#fff;padding:18px 14px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;overflow:auto}
.ctx label{color:#cfdcea;margin:6px 0}.ctx select{background:#fff;color:var(--ink)}
nav a{display:block;padding:8px 10px;border-radius:8px;color:#e6eef7;text-decoration:none}nav a:hover{background:rgba(255,255,255,.08)}nav a.active{background:#fff;color:var(--brand2);font-weight:600;box-shadow:inset 3px 0 0 var(--lime)}
nav .sec{font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.6;margin:10px 10px 2px}
.side-foot{margin-top:auto;font-size:12px;color:#cfdcea}.side-foot a{color:#fff}
main{padding:22px 26px;min-width:0}
h1{font-size:20px;margin:0 0 4px}h2{font-size:15px;margin:18px 0 8px}.sub{color:var(--muted);margin:0 0 16px}
.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.kpi{padding:14px 16px}.kpi .v{font-size:clamp(15px,1.45vw,20px);font-weight:700;margin-top:4px;color:var(--brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi{border-top:3px solid var(--brand2)}.kpi .l{font-size:12px;color:var(--muted)}.kpi .d{font-size:12px;color:var(--muted);margin-top:2px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin:10px 0 12px}.toolbar label{margin:0;min-width:140px}.toolbar .btn{height:37px}
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:var(--soft);font-weight:600;color:var(--brand);position:sticky;top:0}
tr.click{cursor:pointer}tr.click:hover td{background:#f8fbff}td.r,th.r{text-align:right}td.wrap{white-space:normal;min-width:240px}
.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--soft);color:#3b4654}
.tag.alta,.tag.bad,.tag.vencido,.tag.quebrado,.tag.erro{background:#fdecea;color:var(--bad)}.tag.media,.tag.warn,.tag.pendente,.tag.proposto,.tag.pausada,.tag.liberado,.tag.sugerida{background:#fff4d6;color:#8a5b00}
.tag.leve,.tag.ok,.tag.pago,.tag.paga,.tag.ativo,.tag.ativa,.tag.enviado,.tag.cumprido,.tag.concluido{background:#e6f5ec;color:var(--ok)}
.empty{padding:22px;color:var(--muted);text-align:center}
.drawer{position:fixed;inset:0;background:rgba(20,30,45,.35);z-index:20}.drawer-inner{position:absolute;right:0;top:0;bottom:0;width:min(900px,100%);background:#fff;overflow:auto;padding:22px 24px;box-shadow:-4px 0 24px rgba(0,0,0,.15)}
.close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:26px;cursor:pointer;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#1c2430;color:#fff;padding:10px 16px;border-radius:8px;z-index:30;box-shadow:0 6px 20px rgba(0,0,0,.25)}.toast.bad{background:var(--bad)}
.bars{display:flex;align-items:flex-end;gap:6px;height:120px;padding:8px 4px 0;margin-bottom:22px}.bar{max-width:80px}.bar{flex:1;background:linear-gradient(180deg,var(--brand2),var(--green));border-radius:4px 4px 0 0;position:relative;min-width:14px}.bar span{position:absolute;bottom:-18px;left:0;right:0;font-size:10px;color:var(--muted);text-align:center}.bar i{position:absolute;top:-16px;left:0;right:0;font-size:10px;text-align:center;font-style:normal}
.pre{white-space:pre-wrap;background:var(--soft);padding:10px;border-radius:8px;font-size:13px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mt{margin-top:12px}.muted{color:var(--muted)}.right{text-align:right}
.money{font-variant-numeric:tabular-nums}
form.inline{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end}form.inline label{margin:0}
.menu-btn{display:none}
@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}main{padding:14px}.menu-btn{display:inline-block}}
/* chaves de API: grade de permissões */
label.chk{display:flex;align-items:center;gap:8px;color:var(--ink);cursor:pointer}label.chk input{display:inline-block;width:auto;margin:0}
table.perms th,table.perms td{text-align:center}table.perms th:first-child,table.perms td:first-child{text-align:left}table.perms input{width:16px;height:16px;margin:0;cursor:pointer}table.perms input:disabled{opacity:.3;cursor:default}

.disparo .row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:13px}.disparo details{margin-top:8px}.disparo summary{cursor:pointer;color:var(--brand);font-weight:600}.disparo .pre{max-width:100%}

/* ═════ Tema da apresentação "Cobrança condominial em escala" (30/09/2026): Poppins, menu azul-marinho, cartões brancos,
   botões em degradê azul → verde. Camada por cima do tema anterior (backup em style.css.bak-20260930tema). ═════ */
:root{--bg:#f3f6fa;--ink:#0f1f3d;--muted:#6b7a90;--line:#e4eaf2;--brand:#0f2553;--brand2:#1f6fd1;--green:#3aa757;--lime:#8cc63f;--sky:#4fb3e8;--navy:#13306b;--soft:#f1f5fb;--r:14px;
  --grad:linear-gradient(90deg,#1f6fd1 0%,#2c8fb0 55%,#3aa757 100%);--sombra:0 2px 12px rgba(15,37,83,.07)}
body{font-family:Poppins,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:13.5px;background:var(--bg)}
h1{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.01em}h2{font-size:15px;font-weight:600;color:var(--ink)}h3{font-weight:600;color:var(--ink)}
.sub{color:var(--muted)}
.app{grid-template-columns:250px 1fr}
.sidebar{background:linear-gradient(180deg,#13306b 0%,#0f2553 100%);padding:22px 14px}
.brand{flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:8px}.brand .brand-logo{width:190px;height:auto;display:block}.brand small{color:#b9c8e2;padding-left:6px}
.brand .mark,.brand b{display:none}
.ctx label{color:#b9c8e2;font-size:11.5px}.ctx select{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:10px}.ctx select option{color:var(--ink)}
nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:2px 0;border-radius:10px;color:#dbe6f5;font-size:13.5px;border-left:3px solid transparent}
nav a::before{content:"";width:13px;height:13px;border-radius:3px;background:rgba(255,255,255,.22);flex:none}
nav a:hover{background:rgba(255,255,255,.07)}
nav a.active{background:#1e4d4a;color:#fff;font-weight:500;box-shadow:none;border-left-color:var(--lime)}nav a.active::before{background:rgba(255,255,255,.45)}
nav .sec{color:#8fa3c4;opacity:1;font-weight:600;margin:14px 12px 4px}
.side-foot{color:#b9c8e2}
main{padding:26px 32px}
.card{border:0;border-radius:16px;box-shadow:var(--sombra);padding:20px}
.btn{border-radius:10px;border-color:var(--line);font-weight:500}.btn:hover{background:var(--soft)}
.btn.primary{background:var(--grad);border:0;color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(31,111,209,.25)}.btn.primary:hover{filter:brightness(1.05);background:var(--grad)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#4a5a73;font-size:12.5px;cursor:pointer}
.pill input{border:0;padding:0;margin:0;font:inherit;color:inherit;background:none;width:auto;display:inline}
.kpi{border-top:0;padding:18px 20px}.kpi .l{font-size:12.5px}.kpi .v{font-size:clamp(18px,1.9vw,26px);font-weight:700;color:var(--ink);margin-top:8px}.kpi .d{margin-top:6px;font-size:12px}
.kpi.escuro{background:linear-gradient(135deg,#123a78,#0f2553);color:#fff}.kpi.escuro .l{color:#c9d6ee}.kpi.escuro .v{color:#fff}.kpi.escuro .d{color:#8cc63f}
.up{color:#2e9a52}.down{color:#2e9a52}.bad-t{color:#c0392b}
.tbl-wrap{border:0;border-radius:12px}th{background:transparent;color:var(--muted);font-weight:500;border-bottom:1px solid var(--line)}td{border-bottom:1px solid #eef2f7}
.tag{font-weight:500;padding:3px 10px}
.drawer-inner{border-radius:16px 0 0 16px}
.topo{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px}.topo .acoes{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.topo h1{margin:0}.topo .sub{margin:4px 0 0}
/* painel de cobrança */
.pc-grid{display:grid;gap:18px;grid-template-columns:repeat(4,minmax(0,1fr))}.pc-2{display:grid;gap:18px;grid-template-columns:1.45fr 1fr;margin-top:18px}
@media (max-width:1100px){.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pc-2{grid-template-columns:1fr}}
@media (max-width:560px){.pc-grid{grid-template-columns:1fr}}
.colunas{display:flex;align-items:flex-end;gap:18px;height:300px;padding:22px 6px 0;border-bottom:1px solid var(--line)}
.colunas .c{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.colunas .c b{font-size:12px;margin-bottom:6px;color:var(--ink)}.colunas .c i{display:block;width:100%;max-width:92px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#4fb3e8,#1f6fd1);min-height:3px}
.colunas .c.ult i{background:linear-gradient(180deg,#8cc63f,#3aa757)}.colunas-rot{display:flex;gap:18px;padding:8px 6px 0}.colunas-rot span{flex:1;text-align:center;color:var(--muted);font-size:12px}
.donut-box{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:20px 4px}.donut{width:220px;height:220px;border-radius:50%;display:grid;place-items:center;flex:none}
.donut div{width:150px;height:150px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center}.donut b{font-size:30px;display:block;color:var(--ink)}.donut small{color:var(--muted);font-size:14px}
.legenda{list-style:none;padding:0;margin:0}.legenda li{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:13px;color:#3d4c63}.legenda i{width:13px;height:13px;border-radius:3px;display:inline-block}
/* régua */
.regua-linha{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;padding:14px 0 4px}
.regua-linha::before{content:"";position:absolute;left:4%;right:4%;top:36px;height:4px;border-radius:2px;background:linear-gradient(90deg,#8cc63f,#4fb3e8 45%,#1f6fd1 75%,#0f2553)}
.etapa{text-align:center;position:relative}.etapa .bola{width:48px;height:48px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;border:3px solid #fff;box-shadow:0 2px 8px rgba(15,37,83,.2);position:relative;z-index:1}
.etapa b{display:block;font-size:13px;color:var(--ink)}.etapa small{display:block;color:var(--muted);font-size:11.5px;margin-top:4px;line-height:1.6}
.etapa .acao{display:inline-block;margin-top:6px;font-size:10.5px;padding:2px 8px;border-radius:999px;background:var(--soft);color:#4a5a73}
.canal-bar{margin:14px 0}.canal-bar .row{justify-content:space-between;font-size:13px}.canal-bar .trilho{height:7px;border-radius:4px;background:#eef2f7;margin-top:6px;overflow:hidden}.canal-bar .trilho i{display:block;height:100%;border-radius:4px;background:var(--grad)}
.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.mini div{background:var(--soft);border-radius:12px;padding:12px 14px}.mini small{color:var(--muted);font-size:11.5px}.mini b{display:block;font-size:20px;margin-top:4px;color:var(--ink)}
.status-regua{background:var(--grad);color:#fff;border:0}.status-regua.off{background:#fff;color:var(--muted);border:1px solid var(--line)}
.aviso-apr{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff8e6;border:1px solid #f3dca4;border-radius:14px;padding:12px 16px;margin-bottom:18px}
.etapa-ed{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:10px 0;display:grid;gap:8px;grid-template-columns:90px 80px 1fr 1fr 150px;align-items:end}
.etapa-ed label{margin:0}.etapa-ed .full{grid-column:1/-1}.etapa-ed .canais{display:flex;gap:14px;align-items:center;font-size:12.5px}
/* simulador */
.sim-grid{display:grid;gap:18px;grid-template-columns:1.25fr 1fr}@media (max-width:1100px){.sim-grid{grid-template-columns:1fr}}
.total-box{display:flex;justify-content:space-between;align-items:center;background:var(--soft);border-radius:12px;padding:16px 18px;margin-top:14px}.total-box b{font-size:22px;color:var(--brand)}
.opc{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0;cursor:pointer;background:#fff}
.opc:hover{border-color:#b9d3f3}.opc.sel{border:2px solid #3aa757;background:#f3faf4}.opc.off{opacity:.55;cursor:not-allowed}.opc b{font-size:15px}.opc .sel-tag{font-size:11px;background:#dff2e3;color:#2e7d45;padding:2px 8px;border-radius:999px;margin-left:8px}
.acoes-sim{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.acoes-sim .btn{padding:11px;text-align:center}
.checks{color:var(--muted);font-size:12px;margin-top:12px;line-height:1.7}
/* menu lateral ajustável (30/09/2026): largura em --side-w (arrastar a borda), ocultável pelo botão ☰ ou Ctrl+B */
.app{grid-template-columns:var(--side-w,250px) 1fr;transition:grid-template-columns .15s}
.app.side-oculta{grid-template-columns:0 1fr}.app.side-oculta .sidebar{display:none}
.sidebar{position:sticky}.brand .brand-logo{width:min(190px,100%)}
.side-alca{position:absolute;top:0;right:0;bottom:0;width:6px;cursor:col-resize;z-index:5}.side-alca:hover,body.arrastando .side-alca{background:rgba(140,198,63,.55)}
body.arrastando{cursor:col-resize;user-select:none}
.side-toggle{position:fixed;top:12px;left:calc(var(--side-w,250px) + 8px);z-index:15;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--brand);font-size:17px;line-height:1;cursor:pointer;box-shadow:var(--sombra)}
.side-toggle:hover{background:var(--soft)}
#app.side-oculta ~ .side-toggle{left:10px}
#app.hidden ~ .side-toggle{display:none}
main{padding-left:52px}
@media (max-width:900px){.app{grid-template-columns:1fr!important}.side-toggle{display:none}.side-alca{display:none}main{padding-left:14px}}
/* esteira de cobrança (01/10/2026) */
.est-quadro{background:var(--bg);padding:4px 2px 8px}
.est-colunas{display:grid;grid-template-columns:repeat(6,minmax(210px,1fr));gap:16px;align-items:start;overflow-x:auto;padding-bottom:6px}
.est-col{background:#fff;border-radius:16px;box-shadow:var(--sombra);padding:14px 12px 10px;min-height:120px}
.est-col header{display:flex;justify-content:space-between;align-items:center;gap:8px;border-left:4px solid;padding-left:10px;margin-bottom:2px}.est-col header b{font-size:14px;color:var(--ink)}
.est-n{background:var(--soft);color:#4a5a73;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}
.est-tot{display:block;padding-left:14px;margin-bottom:10px;font-size:11.5px}
.est-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 10px;background:#fff}.est-card b{font-size:13px;color:var(--ink)}
.est-cond{display:block;color:#6b7a90;font-size:11px;margin-top:2px}
.est-chips{margin-top:8px;gap:6px}.chip{display:inline-block;border:0;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:500;cursor:pointer;text-decoration:none;font-family:inherit}
.chip.wa{background:#e3f4e7;color:#2e7d45}.chip.hist{background:#e5effc;color:#1f5fb8}.chip.off{background:#eef1f5;color:#9aa6b6;cursor:default}
.est-vazio{font-size:12px;text-align:center;padding:14px 0}
.est-quadro.exportando .est-colunas{overflow:visible}.est-quadro.exportando{padding:18px}
/* prescrição (01/10/2026): débito 100% prescrito segue na inadimplência, mas não é cobrável */
.tag.prescrita{background:#ece9f5;color:#5b4b8a}
.aviso-presc{background:#f4f2fa;border:1px solid #ddd6ee;color:#4b3f73;border-radius:12px;padding:9px 13px;font-size:12.5px;margin:8px 0 12px}
.aviso-presc-mini{display:block;color:#5b4b8a;font-size:11px;margin-top:4px}
.est-card.presc{background:#fafafc;border-style:dashed}
/* quadros em duas linhas (Painel do condomínio): colunas = metade dos quadros, definida pelo app.js */
.kpi-2l{grid-template-columns:repeat(var(--n,4),minmax(0,1fr))}
@media (max-width:900px){.kpi-2l{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* logo da administradora sem versão para fundo escuro: aparece sobre um fundo branco no menu */
.brand-logo.logo-chip{background:#fff;padding:8px 10px;border-radius:10px;box-sizing:border-box}
