:root {
    --bg:#10141a;
    --card:#171c23;
    --text:#e3e8ee;
    --muted:#9aa4b2;
    --accent:#3b82f6;
    --danger:#ef4444;
    --header-bg:#0b0f14;
    --nav-hover:#1f252f;
    --nav-active:#2a2f3a;
    --submenu-bg:#141920;
    --border:#2a3340;
    --input-bg:#0f141b;
    --btn-secondary:#374151;
    --alert-bg:#3b1d1d;
    --alert-text:#ffb4b4;
    --btn-action-bg:#1f252f;
    --btn-action-hover:#2a3140;
    --btn-action-secondary:#2a3140;
    --btn-action-text:#e3e8ee;
    --btn-action-danger-bg:#3b1d1d;
    --btn-action-danger-hover:#4d2323;
    --btn-action-danger-text:#ffb4b4;
    --tooltip-bg:#141920;
    --tooltip-color:#e3e8ee;
    --card-shadow:0 8px 24px rgba(0,0,0,.25);
    --tooltip-shadow:0 8px 16px rgba(0,0,0,.4);
    --surface-alt:#111720;
    --positive:#22c55e;
    --positive-soft:rgba(34,197,94,0.24);
    --negative:#ef4444;
    --negative-soft:rgba(239,68,68,0.24);
    --warning:#f59e0b;
    --warning-soft:rgba(245,158,11,0.24);
    --info:#3b82f6;
    --info-soft:rgba(59,130,246,0.24);
}

body.theme-classic {
    --bg:#f2ede3;
    --card:#ffffff;
    --text:#2c2a27;
    --muted:#5f564b;
    --accent:#b7791f;
    --danger:#c53030;
    --header-bg:#faf7f0;
    --nav-hover:#ebe1d5;
    --nav-active:#e0ccb3;
    --submenu-bg:#ffffff;
    --border:#d8c8b4;
    --input-bg:#ffffff;
    --btn-secondary:#e7dccd;
    --alert-bg:#fff7ed;
    --alert-text:#92400e;
    --btn-action-bg:#e7dccd;
    --btn-action-hover:#d9c7ac;
    --btn-action-secondary:#d9c7ac;
    --btn-action-text:#2c2a27;
    --btn-action-danger-bg:#fee2e2;
    --btn-action-danger-hover:#fecaca;
    --btn-action-danger-text:#b91c1c;
    --tooltip-bg:#2c2a27;
    --tooltip-color:#fdfcf9;
    --card-shadow:0 12px 26px rgba(149,118,72,.18);
    --tooltip-shadow:0 12px 20px rgba(44,42,39,.24);
    --surface-alt:#fffaf3;
    --positive:#047857;
    --positive-soft:rgba(4,120,87,0.18);
    --negative:#b91c1c;
    --negative-soft:rgba(185,28,28,0.18);
    --warning:#b7791f;
    --warning-soft:rgba(183,121,31,0.22);
    --info:#2563eb;
    --info-soft:rgba(37,99,235,0.18);
}

body.theme-futurista {
    --bg:#050b1a;
    --card:#0f172a;
    --text:#dbeafe;
    --muted:#94a3b8;
    --accent:#22d3ee;
    --danger:#f87171;
    --header-bg:#050a18;
    --nav-hover:#111c32;
    --nav-active:#1f2937;
    --submenu-bg:#0b1224;
    --border:#202f45;
    --input-bg:#091226;
    --btn-secondary:#1e293b;
    --alert-bg:#2f1120;
    --alert-text:#fda4af;
    --btn-action-bg:#111c32;
    --btn-action-hover:#1a2540;
    --btn-action-secondary:#1a2540;
    --btn-action-text:#dbeafe;
    --btn-action-danger-bg:#33131c;
    --btn-action-danger-hover:#471924;
    --btn-action-danger-text:#fda4af;
    --tooltip-bg:#0b1224;
    --tooltip-color:#e2e8f0;
    --card-shadow:0 14px 28px rgba(6,12,30,.55);
    --tooltip-shadow:0 16px 32px rgba(6,12,30,.6);
    --surface-alt:#0b1220;
    --positive:#34d399;
    --positive-soft:rgba(52,211,153,0.28);
    --negative:#f87171;
    --negative-soft:rgba(248,113,113,0.28);
    --warning:#fbbf24;
    --warning-soft:rgba(251,191,36,0.30);
    --info:#22d3ee;
    --info-soft:rgba(34,211,238,0.30);
}

body.theme-aurora {
    --bg:#f6f3ff;
    --card:#ffffff;
    --text:#312e81;
    --muted:#6b7280;
    --accent:#a855f7;
    --danger:#dc2626;
    --header-bg:#ffffff;
    --nav-hover:#ede9fe;
    --nav-active:#ddd6fe;
    --submenu-bg:#ffffff;
    --border:#d8d5f5;
    --input-bg:#ffffff;
    --btn-secondary:#ede9fe;
    --alert-bg:#fef2f2;
    --alert-text:#b91c1c;
    --btn-action-bg:#ede9fe;
    --btn-action-hover:#ddd6fe;
    --btn-action-secondary:#ddd6fe;
    --btn-action-text:#312e81;
    --btn-action-danger-bg:#fef2f2;
    --btn-action-danger-hover:#fee2e2;
    --btn-action-danger-text:#b91c1c;
    --tooltip-bg:#4338ca;
    --tooltip-color:#f8fafc;
    --card-shadow:0 12px 28px rgba(79,70,229,.16);
    --tooltip-shadow:0 14px 24px rgba(79,70,229,.28);
    --surface-alt:#f9f6ff;
    --positive:#22c55e;
    --positive-soft:rgba(34,197,94,0.22);
    --negative:#dc2626;
    --negative-soft:rgba(220,38,38,0.20);
    --warning:#f59e0b;
    --warning-soft:rgba(245,158,11,0.22);
    --info:#7c3aed;
    --info-soft:rgba(124,58,237,0.24);
}

body.theme-selva {
    --bg:#0f1f17;
    --card:#152a1f;
    --text:#e5f4ec;
    --muted:#93b4a2;
    --accent:#34d399;
    --danger:#f87171;
    --header-bg:#0b1912;
    --nav-hover:#1c3326;
    --nav-active:#254536;
    --submenu-bg:#12241a;
    --border:#1f3a2c;
    --input-bg:#11261b;
    --btn-secondary:#1c3326;
    --alert-bg:#3a241d;
    --alert-text:#fca5a5;
    --btn-action-bg:#1c3326;
    --btn-action-hover:#274836;
    --btn-action-secondary:#274836;
    --btn-action-text:#e5f4ec;
    --btn-action-danger-bg:#3a1d1d;
    --btn-action-danger-hover:#4d2626;
    --btn-action-danger-text:#fca5a5;
    --tooltip-bg:#13271d;
    --tooltip-color:#dcfce7;
    --card-shadow:0 14px 28px rgba(15,31,23,.45);
    --tooltip-shadow:0 16px 32px rgba(15,31,23,.5);
    --surface-alt:#14261d;
    --positive:#34d399;
    --positive-soft:rgba(52,211,153,0.30);
    --negative:#f87171;
    --negative-soft:rgba(248,113,113,0.28);
    --warning:#fbbf24;
    --warning-soft:rgba(251,191,36,0.30);
    --info:#38bdf8;
    --info-soft:rgba(56,189,248,0.30);
}

body.light,
body.theme-light {
    --bg:#f4f6fb;
    --card:#ffffff;
    --text:#0f172a;
    --muted:#475569;
    --accent:#2563eb;
    --danger:#dc2626;
    --header-bg:#ffffff;
    --nav-hover:#e2e8f0;
    --nav-active:#dbeafe;
    --submenu-bg:#ffffff;
    --border:#cbd5f5;
    --input-bg:#ffffff;
    --btn-secondary:#e2e8f0;
    --alert-bg:#fee2e2;
    --alert-text:#b91c1c;
    --btn-action-bg:#e2e8f0;
    --btn-action-hover:#cbd5f0;
    --btn-action-secondary:#cbd5f0;
    --btn-action-text:#1e293b;
    --btn-action-danger-bg:#fee2e2;
    --btn-action-danger-hover:#fecaca;
    --btn-action-danger-text:#b91c1c;
    --tooltip-bg:#0f172a;
    --tooltip-color:#f8fafc;
    --card-shadow:0 10px 24px rgba(15,23,42,.12);
    --tooltip-shadow:0 10px 18px rgba(15,23,42,.22);
    --surface-alt:#ffffff;
    --positive:#16a34a;
    --positive-soft:rgba(22,163,74,0.20);
    --negative:#dc2626;
    --negative-soft:rgba(220,38,38,0.20);
    --warning:#f59e0b;
    --warning-soft:rgba(245,158,11,0.20);
    --info:#2563eb;
    --info-soft:rgba(37,99,235,0.20);
}
*{ box-sizing:border-box; }
body{ margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, 'Helvetica Neue', Arial; background:var(--bg); color:var(--text); transition:background .2s ease,color .2s ease; }
header{ display:flex; justify-content:space-between; align-items:center; padding:16px 24px; background:var(--header-bg); position:sticky; top:0; border-bottom:1px solid var(--border); transition:background .2s ease; }
header .brand{ display:flex; align-items:center; gap:10px; font-weight:600; font-size:18px; letter-spacing:0.02em; color:var(--text); text-decoration:none; }
header .brand:hover{ opacity:0.92; }
.brand-logo{ position:relative; width:42px; height:42px; border-radius:14px; box-shadow:0 12px 28px rgba(15,23,42,0.35); color:#fff; display:flex; align-items:center; justify-content:center; font-size:17px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; overflow:hidden; isolation:isolate; }
.brand-logo::after{ content:''; position:absolute; inset:0; border-radius:inherit; box-shadow:0 0 18px rgba(255,255,255,0.18); opacity:0.4; pointer-events:none; }
.brand-logo::before{ content:''; position:absolute; width:120%; height:120%; top:-10%; left:-10%; background:radial-gradient(circle at 30% 30%, rgba(255,255,255,0.35), transparent 60%); mix-blend-mode:screen; opacity:0.6; pointer-events:none; }
.brand-logo--image{ width:auto; height:42px; padding:0; border-radius:8px; background:none; box-shadow:none; overflow:visible; }
.brand-logo--image::before,
.brand-logo--image::after{ display:none; }
.brand-logo--image img{ display:block; height:100%; width:auto; max-height:42px; }
.brand-name{ font-size:17px; letter-spacing:0.12em; text-transform:uppercase; }
body.light .brand-logo,
body.theme-light .brand-logo,
body.theme-classic .brand-logo,
body.theme-aurora .brand-logo{ box-shadow:0 8px 18px rgba(15,23,42,0.18); }
body.light .brand-logo--image,
body.theme-light .brand-logo--image,
body.theme-classic .brand-logo--image,
body.theme-aurora .brand-logo--image{ box-shadow:none; }
header h1{ margin:0; font-size:18px; }
nav.menu{ display:flex; align-items:center; gap:12px; }
nav.menu a,
nav.menu summary{ color:var(--text); text-decoration:none; padding:6px 10px; border-radius:6px; cursor:pointer; list-style:none; }
nav.menu summary::-webkit-details-marker{ display:none; }
nav.menu details{ position:relative; }
nav.menu a:hover,
nav.menu summary:hover{ background:var(--nav-hover); }
nav.menu details[open] > summary,
nav.menu a.active,
nav.menu summary.active{ background:var(--nav-active); }
nav.menu .menu-icon{
    width:36px;
    height:36px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--btn-secondary);
    border-radius:10px;
    font-size:18px;
    color:var(--text);
    transition:background .2s ease, transform .2s ease;
}
nav.menu .menu-icon:hover{ background:var(--nav-hover); transform:translateY(-1px); }
nav.menu details .submenu{ display:none; position:absolute; top:100%; left:0; flex-direction:column; background:var(--submenu-bg); border:1px solid var(--border); border-radius:10px; min-width:200px; padding:6px 0; box-shadow:0 12px 24px rgba(0,0,0,.2); z-index:99; }
nav.menu details[open] .submenu{ display:flex; }
nav.menu details .submenu a{ display:block; padding:8px 14px; margin:0; }
nav.menu details .submenu a:hover{ background:var(--nav-hover); }
main{ padding:24px; }
.card{ background:var(--card); padding:16px; border-radius:12px; box-shadow: var(--card-shadow); width:min(100%, 1100px); margin: 0 auto 24px; transition:background .2s ease, box-shadow .2s ease; }
.card.card-wide{ width:min(100%, 1500px); }
.card.card-wide-left{ width:100%; margin:0 0 24px; }
.card.card-full{ width:100%; margin:0 0 24px; }
.card.card-atendimentos{ width:100%; max-width:1300px; }
.card-atendimentos{ max-width:1100px; }
.grid{ display:grid; gap:12px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
label{ display:flex; flex-direction:column; gap:6px; font-size:14px; color:var(--muted); }
input, select { padding:10px 12px; border-radius:8px; border:1px solid var(--border); background:var(--input-bg); color:var(--text); transition:background .2s ease,color .2s ease,border-color .2s ease; }
button, .btn{ background:var(--accent); color:#fff; border:none; padding:10px 14px; border-radius:8px; cursor:pointer; text-decoration:none; display:inline-block; }
.btn-secondary{ background:var(--btn-secondary); color:var(--text); text-decoration:none; padding:10px 14px; border-radius:8px; }
.alert{ background:var(--alert-bg); color:var(--alert-text); padding:10px; border-radius:8px; margin-bottom:12px; }
table{ width:100%; border-collapse:collapse; margin-top:10px; font-size:13px; }
th, td{ text-align:left; padding:8px 10px; border-bottom:1px solid var(--border); white-space:nowrap; }
.status-pill{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:600;
    letter-spacing:0.01em;
    border:1px solid transparent;
    background:rgba(148,163,184,0.18);
    color:var(--text);
}
.status-pill--info{
    background:var(--info-soft);
    color:var(--info);
    border-color:var(--info-soft);
}
.status-pill::before{
    content:'';
    width:8px;
    height:8px;
    border-radius:50%;
    background:currentColor;
    opacity:0.9;
}
.status-pill--negociacao,
.status-pill--agendado,
.status-pill--aberto,
.status-pill--pendente,
.status-pill--em-andamento{
    background:rgba(245,158,11,0.18);
    border-color:rgba(245,158,11,0.35);
    color:#fbbf24;
}
.status-pill--concluido,
.status-pill--ativo,
.status-pill--ativa,
.status-pill--realizada,
.status-pill--pago,
.status-pill--alta-terapeutica,
.status-pill--alta-administrativa,
.status-pill--conclusao,
.status-pill--egresso,
.status-pill--transferido,
.status-pill--ressocializacao,
.status-pill--saida-temporaria,
.status-pill--realizado,
.status-pill--disponivel,
.status-pill--livre{
    background:rgba(16,185,129,0.22);
    border-color:rgba(16,185,129,0.4);
    color:#34d399;
}
.status-pill--ocupado,
.status-pill--ocupada,
.status-pill--higienizacao,
.status-pill--reservada{
    background:rgba(245,158,11,0.18);
    border-color:rgba(245,158,11,0.35);
    color:#fbbf24;
}
.status-pill--manutencao{
    background:rgba(129,140,248,0.18);
    border-color:rgba(129,140,248,0.35);
    color:#a5b4fc;
}
.status-pill--cancelado,
.status-pill--cancelada,
.status-pill--inativo,
.status-pill--inativa,
.status-pill--evasao,
.status-pill--abandono{
    background:rgba(239,68,68,0.18);
    border-color:rgba(239,68,68,0.35);
    color:#fca5a5;
}
.status-pill--em-analise,
.status-pill--processando {
    background:rgba(96,165,250,0.18);
    border-color:rgba(96,165,250,0.35);
    color:#93c5fd;
}
body.light .status-pill,
body.theme-light .status-pill,
body.theme-classic .status-pill,
body.theme-aurora .status-pill{color:#0f172a;}
body.light .status-pill--negociacao,
body.theme-light .status-pill--negociacao,
body.theme-classic .status-pill--negociacao,
body.theme-aurora .status-pill--negociacao,
body.light .status-pill--agendado,
body.theme-light .status-pill--agendado,
body.theme-classic .status-pill--agendado,
body.theme-aurora .status-pill--agendado,
body.light .status-pill--aberto,
body.theme-light .status-pill--aberto,
body.theme-classic .status-pill--aberto,
body.theme-aurora .status-pill--aberto,
body.light .status-pill--pendente,
body.theme-light .status-pill--pendente,
body.theme-classic .status-pill--pendente,
body.theme-aurora .status-pill--pendente,
body.light .status-pill--em-andamento,
body.theme-light .status-pill--em-andamento,
body.theme-classic .status-pill--em-andamento,
body.theme-aurora .status-pill--em-andamento{color:#92400e; border-color:rgba(245,158,11,0.45);}
body.light .status-pill--concluido,
body.theme-light .status-pill--concluido,
body.theme-classic .status-pill--concluido,
body.theme-aurora .status-pill--concluido,
body.light .status-pill--ativo,
body.theme-light .status-pill--ativo,
body.theme-classic .status-pill--ativo,
body.theme-aurora .status-pill--ativo,
body.light .status-pill--ativa,
body.theme-light .status-pill--ativa,
body.theme-classic .status-pill--ativa,
body.theme-aurora .status-pill--ativa,
body.light .status-pill--realizada,
body.theme-light .status-pill--realizada,
body.theme-classic .status-pill--realizada,
body.theme-aurora .status-pill--realizada,
body.light .status-pill--pago,
body.theme-light .status-pill--pago,
body.theme-classic .status-pill--pago,
body.theme-aurora .status-pill--pago,
body.light .status-pill--alta-terapeutica,
body.theme-light .status-pill--alta-terapeutica,
body.theme-classic .status-pill--alta-terapeutica,
body.theme-aurora .status-pill--alta-terapeutica,
body.light .status-pill--alta-administrativa,
body.theme-light .status-pill--alta-administrativa,
body.theme-classic .status-pill--alta-administrativa,
body.theme-aurora .status-pill--alta-administrativa,
body.light .status-pill--conclusao,
body.theme-light .status-pill--conclusao,
body.theme-classic .status-pill--conclusao,
body.theme-aurora .status-pill--conclusao,
body.light .status-pill--egresso,
body.theme-light .status-pill--egresso,
body.theme-classic .status-pill--egresso,
body.theme-aurora .status-pill--egresso,
body.light .status-pill--transferido,
body.theme-light .status-pill--transferido,
body.theme-classic .status-pill--transferido,
body.theme-aurora .status-pill--transferido,
body.light .status-pill--ressocializacao,
body.theme-light .status-pill--ressocializacao,
body.theme-classic .status-pill--ressocializacao,
body.theme-aurora .status-pill--ressocializacao,
body.light .status-pill--saida-temporaria,
body.theme-light .status-pill--saida-temporaria,
body.theme-classic .status-pill--saida-temporaria,
body.theme-aurora .status-pill--saida-temporaria,
body.light .status-pill--realizado,
body.theme-light .status-pill--realizado,
body.theme-classic .status-pill--realizado,
body.theme-aurora .status-pill--realizado,
body.light .status-pill--disponivel,
body.theme-light .status-pill--disponivel,
body.theme-classic .status-pill--disponivel,
body.theme-aurora .status-pill--disponivel,
body.light .status-pill--livre,
body.theme-light .status-pill--livre,
body.theme-classic .status-pill--livre,
body.theme-aurora .status-pill--livre{color:#047857; border-color:rgba(16,185,129,0.45);}
body.light .status-pill--ocupado,
body.theme-light .status-pill--ocupado,
body.theme-classic .status-pill--ocupado,
body.theme-aurora .status-pill--ocupado,
body.light .status-pill--ocupada,
body.theme-light .status-pill--ocupada,
body.theme-classic .status-pill--ocupada,
body.theme-aurora .status-pill--ocupada,
body.light .status-pill--higienizacao,
body.theme-light .status-pill--higienizacao,
body.theme-classic .status-pill--higienizacao,
body.theme-aurora .status-pill--higienizacao,
body.light .status-pill--reservada,
body.theme-light .status-pill--reservada,
body.theme-classic .status-pill--reservada,
body.theme-aurora .status-pill--reservada{color:#92400e; border-color:rgba(245,158,11,0.45);}
body.light .status-pill--manutencao,
body.theme-light .status-pill--manutencao,
body.theme-classic .status-pill--manutencao,
body.theme-aurora .status-pill--manutencao{color:#4c1d95; border-color:rgba(129,140,248,0.45);}
body.light .status-pill--cancelado,
body.theme-light .status-pill--cancelado,
body.theme-classic .status-pill--cancelado,
body.theme-aurora .status-pill--cancelado,
body.light .status-pill--cancelada,
body.theme-light .status-pill--cancelada,
body.theme-classic .status-pill--cancelada,
body.theme-aurora .status-pill--cancelada,
body.light .status-pill--inativo,
body.theme-light .status-pill--inativo,
body.theme-classic .status-pill--inativo,
body.theme-aurora .status-pill--inativo,
body.light .status-pill--inativa,
body.theme-light .status-pill--inativa,
body.theme-classic .status-pill--inativa,
body.theme-aurora .status-pill--inativa,
body.light .status-pill--evasao,
body.theme-light .status-pill--evasao,
body.theme-classic .status-pill--evasao,
body.theme-aurora .status-pill--evasao,
body.light .status-pill--abandono,
body.theme-light .status-pill--abandono,
body.theme-classic .status-pill--abandono,
body.theme-aurora .status-pill--abandono{color:#b91c1c; border-color:rgba(239,68,68,0.45);}
body.light .status-pill--em-analise,
body.theme-light .status-pill--em-analise,
body.theme-classic .status-pill--em-analise,
body.theme-aurora .status-pill--em-analise,
body.light .status-pill--processando,
body.theme-light .status-pill--processando,
body.theme-classic .status-pill--processando,
body.theme-aurora .status-pill--processando{color:#1d4ed8; border-color:rgba(96,165,250,0.45);}
.footer{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:16px 24px; color:var(--muted); font-size:13px; background:var(--header-bg); border-top:1px solid var(--border); }

.financeiro-tipo{
    font-weight:700;
}
.financeiro-tipo.receber{ color:#10b981; }
.financeiro-tipo.pagar{ color:#ef4444; }
.toolbar{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
.inline { display:inline-flex; gap:8px; align-items:center; }
.row{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.row.between{ justify-content:space-between; width:100%; }
.muted{ color:var(--muted); font-size:12px; }
.name-highlight{ font-weight:600; }
.module-select{ border:1px solid var(--border); border-radius:10px; padding:16px; margin:16px 0; }
.module-select.disabled{ opacity:0.6; }
.module-select legend{ padding:0 6px; font-size:13px; color:var(--text); }
.module-grid{ display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:12px; }
.module-option{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text); }
.module-option input{ margin:0; width:16px; height:16px; }
.kpi-grid{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:12px;
}
.kpi-box{
    background:var(--surface-alt);
    border:1px solid var(--border);
    border-left:4px solid var(--accent);
    border-radius:12px;
    padding:14px 16px;
    display:flex;
    flex-direction:column;
    gap:6px;
    min-height:108px;
    flex:1 1 220px;
    box-shadow:0 10px 24px rgba(15,23,42,0.14);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.kpi-box:hover{ transform:translateY(-2px); box-shadow:0 14px 28px rgba(15,23,42,0.18); }
.kpi-box .kpi-label{ font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--muted); }
.kpi-box .kpi-value{ font-size:26px; font-weight:700; color:var(--text); }
.kpi-box-header{ display:flex; align-items:center; justify-content:space-between; width:100%; }
.kpi-icon{
    width:34px;
    height:34px;
    border-radius:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    background:var(--info-soft);
    color:var(--info);
}
.kpi-box.positive .kpi-icon{ background:var(--positive-soft); color:var(--positive); }
.kpi-box.negative .kpi-icon{ background:var(--negative-soft); color:var(--negative); }
.kpi-box.warning .kpi-icon{ background:var(--warning-soft); color:var(--warning); }
.kpi-box.neutral .kpi-icon{ background:var(--info-soft); color:var(--info); }
.kpi-box.positive{ background:var(--surface-alt); background:color-mix(in srgb, var(--positive-soft) 45%, var(--surface-alt)); }
.kpi-box.negative{ background:var(--surface-alt); background:color-mix(in srgb, var(--negative-soft) 45%, var(--surface-alt)); }
.kpi-box.warning{ background:var(--surface-alt); background:color-mix(in srgb, var(--warning-soft) 45%, var(--surface-alt)); }
.kpi-box.neutral{ background:var(--surface-alt); background:color-mix(in srgb, var(--info-soft) 38%, var(--surface-alt)); }
.kpi-box.positive{ border-left-color:var(--positive); }
.kpi-box.negative{ border-left-color:var(--negative); }
.kpi-box.warning{ border-left-color:var(--warning); }
.kpi-box.neutral{ border-left-color:var(--info); }
body.light .kpi-box,
body.theme-light .kpi-box,
body.theme-classic .kpi-box,
body.theme-aurora .kpi-box{
    box-shadow:0 8px 18px rgba(15,23,42,0.12);
}

.kpi-row{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:24px; }
.card.kpi{ flex:1 1 220px; display:flex; flex-direction:column; gap:6px; align-items:flex-start; justify-content:center; min-height:110px; }
.kpi-label{ font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:0.04em; }
.kpi-value{ font-size:32px; font-weight:600; color:var(--text); }
.chart-wrapper{ position:relative; height:320px; max-width:100%; }
.chart-cards{ display:flex; flex-wrap:wrap; gap:16px; margin:18px 0; }
.chart-card{ flex:1 1 320px; }
.chart-bars{ display:flex; align-items:flex-end; gap:12px; min-height:220px; padding:12px 8px; border:1px dashed var(--border); border-radius:12px; position:relative; }
.chart-bars__item{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:6px; min-width:66px; }
.chart-bars__item span{ font-size:12px; color:var(--muted); }
.chart-bars__bar{ width:22px; border-radius:8px 8px 0 0; background:var(--border); position:relative; display:block; transition:height .3s ease; }
.chart-bars__bar--entrada{ background:rgba(5,150,105,0.8); }
.chart-bars__bar--saida{ background:rgba(220,38,38,0.8); }
.chart-value{font-size:11px;color:var(--text);margin-top:4px;display:block;white-space:nowrap;}
.chart-value--entrada{color:#10b981;}
.chart-value--saida{color:#ef4444;}
.chart-value--saldo{color:#22d3ee;}
.chart-bars--saldo .chart-bars__bar{ width:28px; border-radius:8px; }
.chart-bars__bar--saldo-positive{ background:rgba(6,95,70,0.8); }
.chart-bars__bar--saldo-negative{ background:rgba(185,28,28,0.8); }
.chart-bars--saldo{ align-items:flex-end; }
.chart-legend{ display:flex; gap:12px; margin-top:12px; }
.pill{ display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:4px 10px; border-radius:999px; border:1px solid var(--border); }
.pill--entrada{ background:rgba(16,185,129,0.12); color:#10b981; border-color:rgba(16,185,129,0.35); }
.pill--saida{ background:rgba(239,68,68,0.12); color:#ef4444; border-color:rgba(239,68,68,0.35); }
.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;background:#e2e8f0;color:#1f2937;}
.badge-success{background:rgba(34,197,94,0.18);color:#15803d;}
.badge-warning{background:rgba(234,179,8,0.18);color:#92400e;}
.badge-danger{background:rgba(248,113,113,0.18);color:#b91c1c;}
.badge-info{background:rgba(59,130,246,0.18);color:#1d4ed8;}
.chart-placeholder{ text-align:center; font-size:12px; color:var(--muted); width:100%; padding:12px 0; }
.cloud-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--card);}
form .full{grid-column:1/-1;}
.chart-wrapper canvas{ width:100% !important; height:100% !important; }
.parcelas-list{ display:flex; flex-direction:column; gap:10px; }
.parcelas-list label{ flex-direction:row; align-items:center; justify-content:space-between; }
.parcelas-list label span{ color:var(--text); font-size:13px; }
.parcelas-list input{ flex:1; margin-left:12px; }
.relatorios-nav{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.relatorios-nav .btn.active{ background:var(--accent); }
.action-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    width:auto;
    background:var(--surface-alt);
    border:1px solid var(--border);
    border-radius:12px;
    padding:8px 10px;
}
.btn-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border-radius:10px;
    border:none;
    background:var(--btn-action-bg);
    color:var(--btn-action-text);
    text-decoration:none;
    font-size:16px;
    line-height:1;
    position:relative;
    cursor:pointer;
}
.btn-action:hover{ background:var(--btn-action-hover); }
.btn-action.secondary{ background:var(--btn-action-secondary); }
.btn-action.danger{ background:var(--btn-action-danger-bg); color:var(--btn-action-danger-text); }
.btn-action.danger:hover{ background:var(--btn-action-danger-hover); }
.btn-action::after{
    content: attr(data-label);
    position:absolute;
    bottom:calc(100% + 8px);
    left:50%;
    transform: translate(-50%, 4px) scale(.9);
    background:var(--tooltip-bg);
    color:var(--tooltip-color);
    padding:4px 8px;
    border-radius:6px;
    font-size:12px;
    white-space:nowrap;
    opacity:0;
    pointer-events:none;
    box-shadow:var(--tooltip-shadow);
    transition: opacity .16s ease, transform .16s ease;
    z-index:200;
}
.btn-action:hover::after,
.btn-action:focus-visible::after{
    opacity:1;
    transform: translate(-50%, -2px) scale(1);
}
.btn-action span{ font-size:18px; line-height:1; }
.sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.action-buttons form{ margin:0; display:inline-flex; }
.action-buttons button.btn-action{ border:none; }
.row-actions__container{
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px 0;
}
.table-actions-stack tbody tr.row-actions td{
    padding-top:0;
    border-top:0;
    border-bottom:1px solid var(--border);
}
.table-actions-stack tbody tr.row-actions .action-buttons{
    margin-left:6px;
}
.table-actions-stack tbody tr:not(.row-actions) td{
    border-bottom:0;
}
.row-actions__container > .muted{
    font-size:12px;
}
.table-actions{ min-width:180px; padding:14px 10px !important; vertical-align:top; }
.table-actions--wide{ min-width:220px; width:100%; }
.status-legend{ display:flex; flex-wrap:wrap; gap:16px; margin-top:16px; }
.status-card{ flex:1 1 200px; min-width:180px; background:var(--card); border:1px solid var(--border); border-radius:12px; padding:14px; box-shadow:var(--card-shadow); display:flex; align-items:center; gap:12px; transition:transform .15s ease, box-shadow .15s ease; }
.status-card:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(15,23,42,.18); }
.status-card .dot{ width:14px; height:14px; border-radius:50%; }
.status-card .info{ display:flex; flex-direction:column; gap:4px; }
.status-card .label{ font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:0.04em; }
.status-card .value{ font-size:20px; font-weight:600; color:var(--text); }
