/* ====================================================================
   Caixa-Sicoob  |  CARBON Design System
   v4.0 - Industrial Precision x Fintech Elegance
   ==================================================================== */

*{margin:0;padding:0;box-sizing:border-box}
::selection{background:var(--accent);color:#fff}

:root{
  --font-body: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-data: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --transition-fast: 0.15s ease;
  --transition-med: 0.2s ease;
  --transition-slow: 0.3s ease;
  --radius: 12px;
  --radius-sm: 8px;
  --radius-xs: 6px;
  --gradient-1: linear-gradient(135deg, #00d4aa 0%, #6366f1 100%);
  --gradient-2: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);
}

/* DARK (CARBON) */
[data-theme="dark"]{
  --bg:#0c0e14;--bg-subtle:#10131c;--surface:#12151e;--surface-hover:#1a1e2e;
  --card:#12151e;--card-hover:#1a1e2e;
  --border:rgba(255,255,255,0.06);--border-subtle:rgba(255,255,255,0.04);
  --text:#e8ecf4;--text-secondary:#8b95a8;--muted:#515b6e;
  --primary:#00d4aa;--primary-hover:#00b894;
  --primary-glow:rgba(0,212,170,0.15);--primary-surface:rgba(0,212,170,0.06);
  --accent:#00d4aa;--accent-2:#6366f1;
  --green:#22c55e;--green-glow:rgba(34,197,94,.1);
  --red:#ef4444;--red-glow:rgba(239,68,68,.08);
  --yellow:#f59e0b;--yellow-glow:rgba(245,158,11,.08);
  --orange:#f97316;
  --input-bg:#0c0e14;--input-border:rgba(255,255,255,0.08);
  --topbar-bg:rgba(12,14,20,0.85);
  --badge-blue-bg:rgba(99,102,241,.1);
  --shadow-sm:0 1px 2px rgba(0,0,0,.5);--shadow:0 2px 8px rgba(0,0,0,.5);
  --shadow-lg:0 4px 16px rgba(0,0,0,.6);--shadow-xl:0 8px 32px rgba(0,0,0,.7);
  --shadow-primary:0 2px 12px rgba(0,212,170,.15);
  --card-accent:#00d4aa;--card-accent-glow:rgba(0,212,170,.06);
  --table-stripe:rgba(255,255,255,.015);--table-hover:rgba(255,255,255,.04);
  --scrollbar-track:transparent;--scrollbar-thumb:rgba(255,255,255,.08);--scrollbar-thumb-hover:rgba(255,255,255,.16);
  --skeleton-base:#1a1e2e;--skeleton-shine:rgba(255,255,255,.04);
}

/* LIGHT */
[data-theme="light"]{
  --bg:#f4f6fa;--bg-subtle:#eaecf2;--surface:#ffffff;--surface-hover:#f8f9fb;
  --card:#ffffff;--card-hover:#f8f9fb;
  --border:rgba(0,0,0,0.06);--border-subtle:rgba(0,0,0,0.04);
  --text:#1a1f36;--text-secondary:#3c4257;--muted:#697386;
  --primary:#00a88a;--primary-hover:#008e74;
  --primary-glow:rgba(0,168,138,.1);--primary-surface:rgba(0,168,138,.04);
  --accent:#00a88a;--accent-2:#6366f1;
  --green:#0e6245;--green-glow:rgba(14,98,69,.06);
  --red:#cd3d64;--red-glow:rgba(205,61,100,.06);
  --yellow:#c4841d;--yellow-glow:rgba(196,132,29,.06);
  --orange:#c2410c;
  --input-bg:#ffffff;--input-border:rgba(0,0,0,0.1);
  --topbar-bg:rgba(255,255,255,0.9);
  --badge-blue-bg:rgba(99,102,241,.06);
  --shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow:0 2px 8px rgba(0,0,0,.06);
  --shadow-lg:0 4px 16px rgba(0,0,0,.08);--shadow-xl:0 8px 32px rgba(0,0,0,.1);
  --shadow-primary:0 2px 8px rgba(0,168,138,.1);
  --card-accent:#00a88a;--card-accent-glow:rgba(0,168,138,.04);
  --table-stripe:rgba(0,0,0,.015);--table-hover:rgba(0,0,0,.03);
  --scrollbar-track:transparent;--scrollbar-thumb:rgba(0,0,0,.12);--scrollbar-thumb-hover:rgba(0,0,0,.2);
  --skeleton-base:#eaecf2;--skeleton-shine:rgba(255,255,255,.7);
}

/* MIDNIGHT */
[data-theme="midnight"]{
  --bg:#08090d;--bg-subtle:#0d0f15;--surface:#13151d;--surface-hover:#1a1d28;
  --card:#13151d;--card-hover:#1a1d28;
  --border:rgba(255,255,255,0.06);--border-subtle:rgba(255,255,255,0.04);
  --text:#eef0f6;--text-secondary:#9da4b4;--muted:#5c6478;
  --primary:#818cf8;--primary-hover:#6366f1;
  --primary-glow:rgba(129,140,248,.12);--primary-surface:rgba(129,140,248,.06);
  --accent:#818cf8;--accent-2:#a855f7;
  --green:#34d399;--green-glow:rgba(52,211,153,.08);
  --red:#f87171;--red-glow:rgba(248,113,113,.08);
  --yellow:#fbbf24;--yellow-glow:rgba(251,191,36,.08);
  --orange:#fb923c;
  --input-bg:#0d0f15;--input-border:rgba(255,255,255,0.08);
  --topbar-bg:rgba(8,9,13,0.85);
  --badge-blue-bg:rgba(129,140,248,.1);
  --shadow-sm:0 1px 2px rgba(0,0,0,.5);--shadow:0 2px 8px rgba(0,0,0,.5);
  --shadow-lg:0 4px 16px rgba(0,0,0,.6);--shadow-xl:0 8px 32px rgba(0,0,0,.7);
  --shadow-primary:0 2px 8px rgba(129,140,248,.12);
  --card-accent:#818cf8;--card-accent-glow:rgba(129,140,248,.06);
  --table-stripe:rgba(255,255,255,.015);--table-hover:rgba(255,255,255,.04);
  --scrollbar-track:transparent;--scrollbar-thumb:rgba(255,255,255,.08);--scrollbar-thumb-hover:rgba(255,255,255,.16);
  --skeleton-base:#13151d;--skeleton-shine:rgba(255,255,255,.04);
}

/* OCEAN */
[data-theme="ocean"]{
  --bg:#0a1020;--bg-subtle:#0e1628;--surface:#141e34;--surface-hover:#1a2840;
  --card:#141e34;--card-hover:#1a2840;
  --border:rgba(255,255,255,0.06);--border-subtle:rgba(255,255,255,0.04);
  --text:#e2e8f0;--text-secondary:#94a3b8;--muted:#64748b;
  --primary:#38bdf8;--primary-hover:#0ea5e9;
  --primary-glow:rgba(56,189,248,.12);--primary-surface:rgba(56,189,248,.06);
  --accent:#38bdf8;--accent-2:#2dd4bf;
  --green:#2dd4bf;--green-glow:rgba(45,212,191,.08);
  --red:#fb7185;--red-glow:rgba(251,113,133,.08);
  --yellow:#facc15;--yellow-glow:rgba(250,204,21,.08);
  --orange:#fb923c;
  --input-bg:#0e1628;--input-border:rgba(255,255,255,0.08);
  --topbar-bg:rgba(10,16,32,0.85);
  --badge-blue-bg:rgba(56,189,248,.1);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow:0 2px 8px rgba(0,0,0,.4);
  --shadow-lg:0 4px 16px rgba(0,0,0,.5);--shadow-xl:0 8px 32px rgba(0,0,0,.6);
  --shadow-primary:0 2px 8px rgba(56,189,248,.12);
  --card-accent:#38bdf8;--card-accent-glow:rgba(56,189,248,.06);
  --table-stripe:rgba(255,255,255,.015);--table-hover:rgba(255,255,255,.035);
  --scrollbar-track:transparent;--scrollbar-thumb:rgba(255,255,255,.08);--scrollbar-thumb-hover:rgba(255,255,255,.16);
  --skeleton-base:#141e34;--skeleton-shine:rgba(255,255,255,.04);
}

/* CREAM */
[data-theme="cream"]{
  --bg:#faf8f5;--bg-subtle:#f0ede7;--surface:#ffffff;--surface-hover:#faf8f5;
  --card:#ffffff;--card-hover:#fcfaf7;
  --border:rgba(0,0,0,0.06);--border-subtle:rgba(0,0,0,0.04);
  --text:#1c1917;--text-secondary:#44403c;--muted:#78716c;
  --primary:#b45309;--primary-hover:#92400e;
  --primary-glow:rgba(180,83,9,.1);--primary-surface:rgba(180,83,9,.04);
  --accent:#b45309;--accent-2:#a16207;
  --green:#15803d;--green-glow:rgba(21,128,61,.06);
  --red:#b91c1c;--red-glow:rgba(185,28,28,.06);
  --yellow:#a16207;--yellow-glow:rgba(161,98,7,.06);
  --orange:#c2410c;
  --input-bg:#faf8f5;--input-border:rgba(0,0,0,0.1);
  --topbar-bg:rgba(255,255,255,0.9);
  --badge-blue-bg:rgba(180,83,9,.06);
  --shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow:0 2px 4px rgba(0,0,0,.05);
  --shadow-lg:0 4px 12px rgba(0,0,0,.07);--shadow-xl:0 8px 24px rgba(0,0,0,.1);
  --shadow-primary:0 2px 8px rgba(180,83,9,.08);
  --card-accent:#b45309;--card-accent-glow:rgba(180,83,9,.04);
  --table-stripe:rgba(0,0,0,.015);--table-hover:rgba(0,0,0,.03);
  --scrollbar-track:transparent;--scrollbar-thumb:rgba(0,0,0,.1);--scrollbar-thumb-hover:rgba(0,0,0,.18);
  --skeleton-base:#f0ede7;--skeleton-shine:rgba(255,255,255,.5);
}

/* Scrollbars */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--scrollbar-track)}
::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}
::-webkit-scrollbar-corner{background:transparent}
*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}

/* Body */
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  font-size:14px;
  min-height:100vh;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  transition:background var(--transition-slow),color var(--transition-slow);
}
a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}
a:hover{color:var(--primary-hover)}

button{
  cursor:pointer;border:none;font:inherit;
  border-radius:var(--radius-xs);
  padding:8px 16px;
  transition:all var(--transition-fast);
}

input,select,textarea{
  font:inherit;
  background:var(--input-bg);
  color:var(--text);
  border:1px solid var(--input-border);
  border-radius:var(--radius-xs);
  padding:8px 12px;
  outline:none;
  transition:border var(--transition-fast),box-shadow var(--transition-fast);
}
input:focus,select:focus,textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px var(--primary-glow);
}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.6}

:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-xs)}
button:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* Tables */
table{width:100%;border-collapse:collapse;border-spacing:0}
th,td{
  padding:10px 14px;
  text-align:left;
  border-bottom:1px solid var(--border-subtle);
}
th{
  background:var(--surface);
  font-weight:600;font-size:11px;
  text-transform:uppercase;
  color:var(--muted);
  position:sticky;top:0;
  letter-spacing:.6px;
  border-bottom:1px solid var(--border);
  z-index:2;white-space:nowrap;
}
tr:nth-child(even){background:var(--table-stripe)}
tr:hover{background:var(--table-hover)}
tbody tr{transition:background var(--transition-fast)}

/* Login */
.login-wrap{
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;background:var(--bg);
}
.login-wrap::before{display:none}
.login-box{
  background:var(--surface);
  backdrop-filter:blur(20px);
  padding:44px 40px;
  border-radius:var(--radius);
  border:1px solid var(--border);
  width:400px;
  text-align:center;
  box-shadow:var(--shadow-xl);
  animation:loginAppear .4s var(--ease-out);
}
@keyframes loginAppear{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.login-box h1{
  font-size:24px;margin-bottom:4px;font-weight:800;letter-spacing:-.5px;
  background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.login-box p{color:var(--muted);margin-bottom:28px;font-size:14px;font-weight:500}
.field{margin-bottom:16px;text-align:left}
.field label{
  display:block;font-size:11px;color:var(--muted);margin-bottom:6px;
  text-transform:uppercase;letter-spacing:.6px;font-weight:600;
}
.field input,.field select,.field textarea{width:100%}
.error{color:var(--red);font-size:12px;margin-top:10px;font-weight:500}
.btn-login{
  width:100%;padding:12px;
  background:var(--gradient-1);
  color:#fff;font-weight:700;font-size:14px;
  border-radius:var(--radius-xs);margin-top:10px;
  transition:all var(--transition-fast);
  box-shadow:0 4px 14px rgba(0,212,170,.25);
}
.btn-login:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,212,170,.3)}
.btn-login:active{transform:translateY(0);opacity:.85}

/* Topbar */
.app{display:none}.app.active{display:block}
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 24px;
  background:var(--topbar-bg);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:100;
  transition:background var(--transition-slow);
}
.logo{
  font-weight:800;font-size:18px;letter-spacing:-.5px;
  display:flex;align-items:center;gap:2px;
}
.logo span{
  background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  font-weight:600;
}
.topbar-right{display:flex;align-items:center;gap:12px}
.user-info{font-size:13px;font-weight:500}
.btn-logout{
  padding:6px 14px;background:transparent;
  border:1px solid var(--border);color:var(--muted);font-size:12px;
  border-radius:20px;font-weight:500;
  transition:all var(--transition-fast);
}
.btn-logout:hover{border-color:var(--red);color:var(--red)}
.btn-theme{
  background:transparent;border:1px solid var(--border);
  color:var(--muted);padding:6px 10px;font-size:16px;line-height:1;
  border-radius:20px;
  transition:all var(--transition-fast);
}
.btn-theme:hover{border-color:var(--primary);color:var(--primary)}

/* Tabs */
.tabs{
  display:flex;gap:2px;padding:0 20px;
  background:var(--topbar-bg);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  overflow-x:auto;
  position:sticky;top:45px;z-index:99;
  transition:background var(--transition-slow);
}
.tab{
  padding:10px 16px;cursor:pointer;
  font-size:13px;font-weight:500;
  color:var(--muted);
  border-bottom:2px solid transparent;
  transition:all var(--transition-fast);
  position:relative;
  user-select:none;
  white-space:nowrap;
  border-radius:var(--radius-xs) var(--radius-xs) 0 0;
}
.tab:hover{color:var(--text);background:var(--surface-hover)}
.tab.active{
  color:var(--text);
  font-weight:600;
  border-bottom:2px solid transparent;
  background:transparent;
}
.tab.active::after{
  content:'';position:absolute;bottom:0;left:8px;right:8px;height:2px;
  background:var(--gradient-1);border-radius:2px 2px 0 0;
}

/* Content */
.content{padding:24px;max-width:1440px;margin:0 auto}
.tab-panel{display:none}.tab-panel.active{display:block}

/* Staggered Animation */
@keyframes slideUp{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}
.tab-panel.active .card{animation:slideUp .3s var(--ease-out) both}
.tab-panel.active .card:nth-child(1){animation-delay:0ms}
.tab-panel.active .card:nth-child(2){animation-delay:40ms}
.tab-panel.active .card:nth-child(3){animation-delay:80ms}
.tab-panel.active .card:nth-child(4){animation-delay:120ms}
.tab-panel.active .card:nth-child(5){animation-delay:160ms}
.tab-panel.active .card:nth-child(6){animation-delay:200ms}
.tab-panel.active .card:nth-child(7){animation-delay:240ms}
.tab-panel.active .card:nth-child(8){animation-delay:280ms}
.tab-panel.active .table-wrap{animation:slideUp .3s var(--ease-out) .1s both}
.tab-panel.active .section-title{animation:slideUp .25s var(--ease-out) both}
.tab-panel.active .table-toolbar{animation:slideUp .25s var(--ease-out) .05s both}

/* Cards */
.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:14px;margin-bottom:20px;
}
.card{
  background:var(--card);
  backdrop-filter:blur(20px);
  padding:20px 22px;
  border-radius:var(--radius);
  border:1px solid var(--border);
  min-height:88px;
  transition:all var(--transition-med);
  position:relative;
  overflow:hidden;
}
.card::before{display:none}
.card:hover{
  border-color:rgba(255,255,255,0.12);
  transform:translateY(-2px);
  box-shadow:var(--shadow-lg);
}
.card-label{
  font-size:11px;text-transform:uppercase;color:var(--muted);
  letter-spacing:.6px;margin-bottom:8px;font-weight:600;
  display:flex;align-items:center;gap:6px;
}
.card-label::before{display:none}
.card-value{
  font-family:var(--font-data);font-size:28px;font-weight:700;
  font-variant-numeric:tabular-nums;letter-spacing:-.5px;
  line-height:1.2;
}
.card-sub{font-size:12px;color:var(--muted);margin-top:4px}
.green{color:var(--green)}.red{color:var(--red)}.yellow{color:var(--yellow)}.orange{color:var(--orange)}

/* Card accent variants */
.card--danger{border-left:3px solid var(--red)}
.card--danger .card-label::before{display:none}
.card--danger::before{display:none}
.card--warning{border-left:3px solid var(--yellow)}
.card--warning .card-label::before{display:none}
.card--warning::before{display:none}
.card--success{border-left:3px solid var(--green)}
.card--success .card-label::before{display:none}
.card--success::before{display:none}
.card--info{border-left:3px solid var(--primary)}
.card--info .card-label::before{display:none}

/* Table Wrap */
.table-wrap{
  overflow-x:auto;background:var(--card);
  border-radius:var(--radius);
  border:1px solid var(--border);
  backdrop-filter:blur(20px);
}
.table-toolbar{
  display:flex;align-items:center;gap:10px;
  margin-bottom:12px;flex-wrap:wrap;
}
.section-title{
  font-size:15px;font-weight:700;margin-bottom:12px;
  padding-left:12px;border-left:3px solid var(--primary);
  line-height:1.3;letter-spacing:-.2px;
  color:var(--text);
}

/* Table data classes */
.td-money{
  font-family:var(--font-data);text-align:right;
  font-variant-numeric:tabular-nums;font-weight:600;
  letter-spacing:-.3px;
}
.td-mono{font-family:var(--font-data);font-size:12px;letter-spacing:-.2px}
.row-overdue{background:var(--red-glow)}
.row-paid{opacity:.6}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;font-weight:600;
  border-radius:var(--radius-xs);
  transition:all var(--transition-fast);
  white-space:nowrap;
}
.btn-primary{
  background:var(--gradient-1);color:#fff;
  box-shadow:0 2px 8px var(--primary-glow);
}
.btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 14px var(--primary-glow)}
.btn-primary:active{transform:translateY(0);opacity:.85}
.btn-secondary{
  background:var(--surface);color:var(--text);
  border:1px solid var(--border);
}
.btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-surface)}
.btn-success{background:var(--green);color:#fff}
.btn-success:hover{opacity:.9}
.btn-sm{padding:5px 10px;font-size:11px;border-radius:var(--radius-xs)}

/* WhatsApp Button */
.btn-whatsapp{
  background:#25D366;color:#fff;font-weight:600;
  padding:8px 16px;border-radius:var(--radius-xs);
  transition:all var(--transition-fast);
  display:inline-flex;align-items:center;gap:6px;
}
.btn-whatsapp:hover{background:#1da851}
.btn-whatsapp:active{opacity:.9}
.btn-whatsapp::before{
  content:'';display:inline-block;width:16px;height:16px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E") center/contain no-repeat;
  flex-shrink:0;
}

/* Badges */
.badge{
  display:inline-flex;align-items:center;
  padding:3px 10px;border-radius:20px;
  font-size:11px;font-weight:600;
  letter-spacing:.2px;
}
.badge-green{background:rgba(34,197,94,.12);color:var(--green);border:1px solid rgba(34,197,94,.2)}
.badge-red{background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.15)}
.badge-yellow{background:rgba(245,158,11,.1);color:var(--yellow);border:1px solid rgba(245,158,11,.15)}
.badge-gray{background:rgba(136,136,136,.1);color:var(--muted);border:1px solid rgba(136,136,136,.12)}
.badge-blue{background:var(--badge-blue-bg);color:var(--primary);border:1px solid rgba(99,102,241,.15)}
.badge-purple{background:rgba(168,85,247,.1);color:#a78bfa;border:1px solid rgba(168,85,247,.15)}

/* Import Status Badges */
.badge-importada{background:rgba(34,197,94,.1);color:var(--green);font-size:10px;padding:3px 8px;border-radius:20px;border:1px solid rgba(34,197,94,.15);font-weight:600}
.badge-nao-importada{background:rgba(136,136,136,.08);color:var(--muted);font-size:10px;padding:3px 8px;border-radius:20px;border:1px solid rgba(136,136,136,.1);font-weight:600}

/* Notify */
.notify{
  position:fixed;top:-60px;left:50%;transform:translateX(-50%);
  padding:12px 28px;border-radius:var(--radius);
  font-weight:600;z-index:9999;
  transition:top .3s var(--ease-out);
  font-size:13px;
  border:1px solid var(--border);
  backdrop-filter:blur(20px);
  box-shadow:var(--shadow-lg);
}
.notify.show{top:16px}
.notify-info{background:var(--primary);color:#fff;border-color:var(--primary)}
.notify-success{background:var(--green);color:#fff;border-color:var(--green)}
.notify-error{background:var(--red);color:#fff;border-color:var(--red)}

/* Modals */
.modal-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(4px);
  z-index:1000;align-items:center;justify-content:center;
}
.modal-overlay.active{display:flex}
.modal{
  background:var(--surface);
  backdrop-filter:blur(20px);
  border-radius:var(--radius);
  padding:28px;
  width:440px;max-width:95vw;max-height:90vh;
  overflow-y:auto;
  border:1px solid var(--border);
  box-shadow:var(--shadow-xl);
  animation:modalAppear .25s var(--ease-out);
}
@keyframes modalAppear{
  from{opacity:0;transform:translateY(12px) scale(.96)}
  to{opacity:1;transform:none}
}
.modal h2{margin-bottom:18px;font-size:18px;font-weight:700;letter-spacing:-.3px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}

/* QR Modal */
.modal-qr{width:480px}
.qr-header{text-align:center;margin-bottom:12px}
.qr-header h2{margin-bottom:8px}
.qr-order-info{
  background:var(--card);border-radius:var(--radius-sm);
  padding:12px 14px;text-align:left;
  border:1px solid var(--border);
}
.qr-info-row{
  display:flex;justify-content:space-between;
  padding:3px 0;border-bottom:1px solid var(--border-subtle);
}
.qr-info-row:last-child{border-bottom:none}
.qr-info-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.qr-info-value{font-weight:600;font-size:13px}
.qr-container{text-align:center;padding:12px 0}
.pix-valor{
  font-family:var(--font-data);font-size:34px;font-weight:700;
  color:var(--green);margin-bottom:12px;
  letter-spacing:.5px;font-variant-numeric:tabular-nums;
}
.pix-copia-cola{
  font-family:var(--font-data);font-size:10px;color:var(--muted);
  word-break:break-all;max-height:40px;overflow:hidden;
  margin-top:8px;padding:8px;background:var(--card);
  border-radius:var(--radius-xs);cursor:pointer;
  border:1px solid var(--border);
  transition:border-color var(--transition-fast);
}
.pix-copia-cola:hover{border-color:var(--primary)}
.qr-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:8px 0}
.qr-whatsapp{
  background:var(--card);border-radius:var(--radius-sm);
  padding:12px;margin:10px 0;border:1px solid var(--border);
}
.qr-wa-title{font-weight:700;font-size:13px;margin-bottom:8px;color:var(--green)}
.qr-phone-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.qr-phone-btn{
  padding:6px 12px;border-radius:20px;
  background:var(--surface);border:1px solid var(--border);
  cursor:pointer;font-size:12px;
  transition:all var(--transition-fast);color:var(--text);font-weight:500;
}
.qr-phone-btn:hover{border-color:var(--green);background:rgba(34,197,94,.06)}
.qr-phone-btn .wa-tag{color:var(--green);font-weight:700;margin-left:4px;font-size:10px}

/* Auto PIX */
.modal-auto-pix{border:2px solid var(--green)}
@keyframes autoPixPulse{
  0%,100%{box-shadow:none}
  50%{box-shadow:0 0 0 4px var(--green-glow)}
}
.auto-pix-badge{
  position:absolute;top:-8px;right:-8px;
  background:var(--red);color:#fff;border-radius:50%;
  width:24px;height:24px;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;
}
@keyframes badgePop{from{transform:scale(0)}to{transform:scale(1)}}

/* Live Refresh Animations */
@keyframes liveRowIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@keyframes liveRowOut{from{opacity:1;max-height:80px}to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;border-color:transparent}}
@keyframes liveHighlight{0%{background:rgba(59,130,246,.12)}100%{background:transparent}}
@keyframes liveCardPulse{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}

.live-row-in{animation:liveRowIn .35s var(--ease-out) forwards}
.live-row-out{animation:liveRowOut .35s ease forwards;pointer-events:none;overflow:hidden}
.live-row-changed{animation:liveHighlight 1.2s ease forwards}
.live-card-pulse{animation:liveCardPulse .3s ease}

table tbody tr{transition:opacity .25s ease,background .3s ease}
.card-value{transition:opacity .2s ease,transform .2s ease}
.card-value.live-updating{opacity:.5;transform:scale(.97)}

.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:4px;animation:liveDotPulse 2s ease infinite}
@keyframes liveDotPulse{0%,100%{opacity:1}50%{opacity:.3}}

/* Print */
@media print{
  body{background:#fff;color:#000}
  .topbar,.tabs,.table-wrap,.table-toolbar,.btn,.notify,.modal-overlay{display:none!important}
  .tab-panel{display:none!important}
}

/* Loading Spinner */
.spinner{
  display:inline-block;width:20px;height:20px;
  border:2px solid var(--border);
  border-top-color:var(--primary);
  border-radius:50%;
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* Skeleton Loading */
@keyframes skeletonShimmer{
  0%{background-position:-200px 0}
  100%{background-position:calc(200px + 100%) 0}
}
.skeleton{
  background:var(--skeleton-base);
  background-image:linear-gradient(90deg,var(--skeleton-base) 0,var(--skeleton-shine) 40%,var(--skeleton-base) 80%);
  background-size:200px 100%;
  background-repeat:no-repeat;
  border-radius:var(--radius-xs);
  animation:skeletonShimmer 1.5s ease-in-out infinite;
}
.skeleton-text{height:14px;margin-bottom:8px;width:80%}
.skeleton-value{height:28px;width:60%;margin-bottom:4px}
.skeleton-card{height:88px;border-radius:var(--radius)}

/* Bank Cards */
.card-bank{position:relative;overflow:hidden}
.card-bank::after{display:none}
.card-bank-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.bank-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:var(--radius-sm);
  font-weight:800;font-size:11px;color:#fff;flex-shrink:0;
}
.bank-icon::after{display:none}
.bank-sicoob{background:var(--surface)}
.bank-bb{background:var(--surface)}
.bank-total{background:var(--primary)}
.bank-pix{background:#00bdae}
.bank-name{font-weight:600;font-size:13px;color:var(--muted)}
.card-bank .card-value{font-size:24px}
.card-status{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin-top:6px}
.status-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--muted);display:inline-block;
}
.status-dot.online{background:var(--green)}
@keyframes statusPulse{0%,100%{opacity:1}50%{opacity:.6}}
.status-dot.offline{background:var(--red)}
.card-detail{font-size:11px;color:var(--muted);margin-top:3px}
.card-total{border:1px solid var(--primary);background:var(--primary-surface)}
.card-subtotal{border:1px solid var(--primary);background:var(--surface);opacity:.9}

/* Bank Logo Containers */
.bank-logo-bb{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:var(--radius-sm);
  background:#fce303;color:#003768;font-weight:800;font-size:10px;flex-shrink:0;
}
.bank-logo-bb::after{display:none}
.bank-logo-sicoob{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:var(--radius-sm);
  background:#00695c;color:#fff;font-weight:800;font-size:10px;flex-shrink:0;
}
.bank-logo-sicoob::after{display:none}

/* Dashboard Group Selector */
.dash-group-selector{
  display:flex;gap:0;border-radius:var(--radius-sm);overflow:hidden;
  border:1px solid var(--border);margin-bottom:12px;width:fit-content;
}
.dash-group-btn{
  display:flex;align-items:center;gap:6px;
  padding:8px 16px;background:var(--surface);
  color:var(--text);border:none;font-size:13px;
  font-weight:500;cursor:pointer;
  transition:all var(--transition-fast);
}
.dash-group-btn:hover{background:var(--card-hover)}
.dash-group-btn.active{background:var(--primary);color:#fff}
.dash-group-section{margin-bottom:6px}
.dash-group-label{
  font-size:11px;color:var(--muted);font-weight:700;
  text-transform:uppercase;letter-spacing:.6px;
  margin:0 0 6px;padding-left:2px;
}

/* Bank Selector */
.bank-selector{
  display:flex;gap:0;border-radius:var(--radius-sm);overflow:hidden;
  border:1px solid var(--border);
}
.bank-btn{
  display:flex;align-items:center;gap:8px;
  padding:8px 16px;background:var(--surface);
  color:var(--text);border:none;border-radius:0;
  font-size:13px;font-weight:500;cursor:pointer;
  transition:all var(--transition-fast);
}
.bank-btn:hover{background:var(--card-hover)}
.bank-btn.active{background:var(--primary);color:#fff}
.bank-btn .bank-icon{width:22px;height:22px;font-size:9px;border-radius:4px}

/* Quick Filters */
.quick-filters{
  display:inline-flex;gap:0;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-xs);
  padding:2px;flex-wrap:wrap;
}
.btn-quick{
  padding:5px 12px!important;font-size:12px!important;
  background:transparent;border:none;
  border-radius:4px;color:var(--text);
  transition:all var(--transition-fast);font-weight:500;
}
.btn-quick:hover{background:var(--table-hover);color:var(--primary)}
.btn-quick.active{background:var(--primary);color:#fff}

/* Boleto Status Checkboxes */
.boleto-status-filters{
  display:flex;align-items:center;gap:12px;
  margin-bottom:12px;flex-wrap:wrap;
}
.boleto-status-filters label{
  display:flex;align-items:center;gap:4px;
  font-size:13px;cursor:pointer;user-select:none;
  color:var(--text);font-weight:500;
  transition:color var(--transition-fast);
}
.boleto-status-filters label:hover{color:var(--primary)}
.boleto-status-filters input[type="checkbox"]{
  width:15px;height:15px;accent-color:var(--primary);cursor:pointer;
}
.boleto-status-filters .filter-label{
  font-size:11px;font-weight:700;text-transform:uppercase;
  color:var(--muted);letter-spacing:.5px;
}

/* Boleto Footer */
.boleto-footer{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 16px;background:var(--surface);
  border-top:1px solid var(--border);
  border-radius:0 0 var(--radius) var(--radius);font-size:13px;
}
.boleto-footer .footer-count{color:var(--muted);font-weight:500}
.boleto-footer .footer-total{
  font-family:var(--font-data);font-weight:700;
  font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:-.3px;
}

/* Boleto Detail Modal */
.modal-boleto{width:600px}
.boleto-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.boleto-header .boleto-icon{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:var(--card);border-radius:var(--radius);
  border:1px solid var(--border);
}
.boleto-header .boleto-title{flex:1}
.boleto-header .boleto-title h2{margin:0;font-size:17px}
.boleto-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-bottom:16px}
.boleto-grid .bg-item{padding:8px 0;border-bottom:1px solid var(--border-subtle)}
.boleto-grid .bg-label{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.5px;font-weight:600}
.boleto-grid .bg-value{font-size:14px;font-weight:500;margin-top:2px;word-break:break-all}
.boleto-grid .bg-full{grid-column:1/-1}
.boleto-linhadig{
  font-family:var(--font-data);font-size:13px;
  background:var(--card);padding:10px 12px;
  border-radius:var(--radius-sm);border:1px solid var(--border);
  word-break:break-all;line-height:1.6;
  display:flex;align-items:center;gap:10px;margin-bottom:12px;
}
.boleto-linhadig .ld-text{flex:1}
.boleto-linhadig .ld-copy{
  padding:6px 10px;border-radius:var(--radius-xs);
  background:var(--primary);color:#fff;cursor:pointer;border:none;
  font-size:12px;white-space:nowrap;font-weight:500;
  transition:all var(--transition-fast);
}
.boleto-linhadig .ld-copy:hover{background:var(--primary-hover)}
.boleto-timeline{margin:12px 0;padding-left:16px;border-left:2px solid var(--border)}
.boleto-timeline .bt-item{
  position:relative;padding:6px 0 6px 12px;font-size:12px;
}
.boleto-timeline .bt-item::before{
  content:'';position:absolute;left:-21px;top:10px;
  width:8px;height:8px;border-radius:50%;
  background:var(--muted);border:2px solid var(--surface);
}
.boleto-timeline .bt-item.active::before{background:var(--green)}
.boleto-timeline .bt-date{color:var(--muted)}

/* CP Status Filters */
.cp-status-filters{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.cp-status-filters label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer;user-select:none;color:var(--text);font-weight:500;transition:color var(--transition-fast)}
.cp-status-filters label:hover{color:var(--primary)}
.cp-status-filters input[type="checkbox"]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}
.cp-status-filters .filter-label{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.5px}

/* CP Empresa Filter */
.cp-empresa-filter{
  display:flex;align-items:center;gap:10px;
  margin-bottom:10px;padding:10px 14px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);flex-wrap:wrap;
  backdrop-filter:blur(20px);
}
.cp-empresa-filter label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer;user-select:none;color:var(--text);white-space:nowrap;font-weight:500;transition:color var(--transition-fast)}
.cp-empresa-filter label:hover{color:var(--primary)}
.cp-empresa-filter input[type="checkbox"]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}
.cp-empresa-filter .filter-label{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.5px}

/* SVG Icons */
.svg-icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}
.svg-icon svg,.svg-icon img{width:16px;height:16px}
.tab .svg-icon{margin-right:4px}
.tab .svg-icon svg,.tab .svg-icon img{width:14px;height:14px}

/* Date input */
.input-date{
  padding:5px 10px;border:1px solid var(--border);
  border-radius:var(--radius-xs);background:var(--surface);
  color:var(--text);font-size:13px;
  transition:border-color var(--transition-fast);
}
.input-date:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}
.label-muted{font-size:12px;color:var(--muted);font-weight:500}

/* CP Search */
.cp-search-input{
  background:var(--input-bg);border:1px solid var(--border);
  border-radius:var(--radius-xs);
  color:var(--text);padding:7px 12px;font-size:13px;width:240px;
  font-family:var(--font-body);
  transition:border var(--transition-fast),width var(--transition-med);
}
.cp-search-input:focus{border-color:var(--primary);outline:none;width:300px;box-shadow:0 0 0 3px var(--primary-glow)}
.cp-search-input::placeholder{color:var(--muted);opacity:.6}

/* CP Source Divider */
.cp-source-divider{width:1px;height:28px;background:var(--border);margin:0 4px;align-self:center}

/* Bank Config */
#bankConfigBody select{
  padding:5px 10px;font-size:13px;border:1px solid var(--border);
  background:var(--input-bg);color:var(--text);border-radius:var(--radius-xs);
}
#bankConfigBody select:focus{border-color:var(--primary)}
#bankConfigBody td{padding:8px 12px;vertical-align:middle}

/* Company Filter Pills */
.empresa-filter{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.empresa-pill{
  display:inline-flex;align-items:center;gap:4px;
  padding:5px 14px;border-radius:20px;
  font-size:12px;font-weight:600;cursor:pointer;
  border:1px solid var(--border);
  background:var(--surface);color:var(--text);
  transition:all var(--transition-fast);user-select:none;
}
.empresa-pill:hover{border-color:var(--primary);color:var(--primary)}
.empresa-pill.active{
  border-color:var(--primary);
  background:var(--primary);color:#fff;
}
.empresa-pill::before{
  content:'';display:inline-block;
  width:6px;height:6px;border-radius:50%;
  background:var(--muted);flex-shrink:0;
}
.empresa-pill.active::before{background:#fff}
.empresa-pill[data-color="blue"]::before{background:#3b82f6}
.empresa-pill[data-color="green"]::before{background:#22c55e}
.empresa-pill[data-color="orange"]::before{background:#f97316}
.empresa-pill[data-color="purple"]::before{background:#a855f7}
.empresa-pill[data-color="red"]::before{background:#ef4444}

/* Sort + Selection */
.sort-arrow{font-size:10px;color:var(--primary);margin-left:2px}
th[data-bolsort]:hover{color:var(--primary)}
tr.row-selected{background:rgba(0,212,170,.06)!important}
tr.row-selected td{border-color:rgba(0,212,170,.15)}
#boletosBody tr{cursor:pointer;transition:background .15s}
#boletosBody tr:hover{background:var(--table-hover)}
.selection-bar{
  display:flex;align-items:center;gap:10px;
  padding:10px 16px;margin-bottom:8px;
  background:var(--primary-surface);
  border:1px solid rgba(0,212,170,.2);
  border-radius:var(--radius);
  color:var(--text);font-size:13px;
  backdrop-filter:blur(20px);
}

/* Protest Alert */
.protest-alert{
  display:flex;align-items:center;gap:10px;
  padding:14px 18px;margin-bottom:14px;
  background:var(--red-glow);
  border:1px solid rgba(239,68,68,.2);
  border-radius:var(--radius);
  color:var(--text);font-size:13px;font-weight:500;
  animation:protestSlideIn .3s var(--ease-out);
  backdrop-filter:blur(20px);
}
@keyframes protestSlideIn{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
.protest-alert::before{
  content:'';display:block;width:8px;height:8px;border-radius:50%;
  background:var(--red);flex-shrink:0;
}
.protest-alert .protest-text{flex:1;line-height:1.4}
.protest-alert .protest-count{
  font-family:var(--font-data);font-size:18px;font-weight:700;
  color:var(--red);white-space:nowrap;
}
.protest-alert .protest-dismiss{
  background:transparent;border:1px solid rgba(239,68,68,.2);
  color:var(--muted);padding:3px 8px;border-radius:20px;
  font-size:11px;cursor:pointer;transition:all var(--transition-fast);
}
.protest-alert .protest-dismiss:hover{border-color:var(--red);color:var(--red)}

/* Days Overdue */
.days-overdue{
  display:inline-flex;align-items:center;
  padding:2px 10px;border-radius:20px;
  font-family:var(--font-data);font-size:11px;font-weight:700;white-space:nowrap;
}
.days-overdue.low{background:rgba(245,158,11,.1);color:var(--yellow);border:1px solid rgba(245,158,11,.15)}
.days-overdue.medium{background:rgba(249,115,22,.12);color:var(--orange);border:1px solid rgba(249,115,22,.15)}
.days-overdue.high{background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.15)}
.days-overdue.critical{background:rgba(185,28,28,.15);color:#fca5a5;border:1px solid rgba(185,28,28,.2)}
@keyframes overduePulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 2px var(--red-glow)}}

/* Data refresh */
@keyframes dataRefresh{0%{opacity:1}50%{opacity:.5}100%{opacity:1}}
.data-refreshing{animation:dataRefresh .6s ease}

/* Glass utility */
.glass{background:var(--surface);border:1px solid var(--border);backdrop-filter:blur(20px)}

/* Utility */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.fade-in{animation:fadeIn .2s ease}
.card-flash-success{animation:flashGreen .4s ease-out}
@keyframes flashGreen{0%{box-shadow:0 0 0 2px var(--green-glow)}100%{box-shadow:none}}
.card-flash-error{animation:flashRed .4s ease-out}
@keyframes flashRed{0%{box-shadow:0 0 0 2px var(--red-glow)}100%{box-shadow:none}}
.empty-state{text-align:center;padding:40px 20px;color:var(--muted);font-size:14px}
.empty-state-icon{font-size:32px;margin-bottom:10px;opacity:.4}
.empty-state-text{font-weight:500}
.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}

/* Tooltip */
[data-tooltip]{position:relative}
[data-tooltip]::after{
  content:attr(data-tooltip);
  position:absolute;bottom:calc(100% + 4px);left:50%;
  transform:translateX(-50%) scale(.95);
  background:var(--surface);color:var(--text);
  padding:4px 8px;border-radius:var(--radius-xs);
  font-size:11px;white-space:nowrap;
  border:1px solid var(--border);
  opacity:0;pointer-events:none;
  transition:opacity var(--transition-fast);
  z-index:50;box-shadow:var(--shadow);
}
[data-tooltip]:hover::after{opacity:1;transform:translateX(-50%) scale(1)}

/* Aging Bars (CR) */
.aging-bar{display:flex;gap:4px;margin:8px 0}
.aging-band{flex:1;padding:10px;border-radius:var(--radius-sm);text-align:center}
.aging-band.band-30{background:rgba(245,158,11,.1);color:#d97706}
.aging-band.band-60{background:rgba(249,115,22,.1);color:#ea580c}
.aging-band.band-90{background:rgba(239,68,68,.1);color:#dc2626}
.aging-band.band-120{background:rgba(190,18,60,.1);color:#be123c}
.aging-band.band-plus{background:rgba(127,29,29,.1);color:#991b1b}
.aging-label{font-size:10px;text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.aging-value{font-size:18px;font-weight:700;margin-top:4px}
.aging-qty{font-size:11px;opacity:.7}

/* Conciliation */
.conciliacao-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.conciliacao-section{background:var(--card);border-radius:var(--radius);padding:14px;border:1px solid var(--border);backdrop-filter:blur(20px)}
.match-candidate{padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px;cursor:pointer;transition:all .15s}
.match-candidate:hover{border-color:var(--green);background:rgba(34,197,94,.04)}
.match-candidate.selected{border-color:var(--green);background:rgba(34,197,94,.06)}
.match-score{font-size:10px;padding:2px 6px;border-radius:10px;background:var(--green);color:#fff;font-weight:600}

/* Alert Bell */
.alert-bell{position:relative;cursor:pointer;padding:6px;border-radius:var(--radius-sm);transition:background .15s}
.alert-bell:hover{background:var(--table-hover)}
.alert-count{position:absolute;top:0;right:0;background:var(--red);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.alert-dropdown{position:absolute;top:100%;right:0;width:320px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);z-index:100;max-height:400px;overflow-y:auto;box-shadow:var(--shadow-xl);backdrop-filter:blur(20px)}
.alert-item{padding:10px 12px;border-bottom:1px solid var(--border-subtle);font-size:12px}
.alert-item.unread{background:var(--primary-surface)}
.alert-item .alert-time{font-size:10px;color:var(--muted)}

/* Fluxo de Caixa Chart */
.fluxo-chart{display:flex;align-items:flex-end;gap:3px;height:200px;padding:10px 0}
.fluxo-bar-group{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px}
.fluxo-bar{width:100%;border-radius:3px 3px 0 0;min-height:2px;transition:height .3s}
.fluxo-bar.entrada{background:var(--green)}
.fluxo-bar.saida{background:var(--red)}
.fluxo-label{font-size:9px;color:var(--muted);writing-mode:vertical-rl;transform:rotate(180deg)}
.fluxo-legend{display:flex;gap:14px;justify-content:center;margin-top:8px;font-size:11px}
.fluxo-legend-item{display:flex;align-items:center;gap:4px}
.fluxo-legend-dot{width:8px;height:8px;border-radius:50%}

/* Export Button */
.btn-export{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;font-size:11px;background:rgba(34,197,94,.08);color:var(--green);border:1px solid rgba(34,197,94,.15);border-radius:20px;cursor:pointer;font-weight:600;transition:all .15s}
.btn-export:hover{background:rgba(34,197,94,.14)}

/* Financial Summary */
.fin-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
.fin-card{padding:14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);text-align:center;backdrop-filter:blur(20px);transition:all var(--transition-med)}
.fin-card:hover{border-color:rgba(255,255,255,0.12);transform:translateY(-1px)}
.fin-card .fin-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}
.fin-card .fin-value{font-size:20px;font-weight:700;margin-top:4px;font-family:var(--font-data)}
.fin-card.positive .fin-value{color:var(--green)}
.fin-card.negative .fin-value{color:var(--red)}
.fin-card.neutral .fin-value{color:var(--primary)}

/* Tab Badge */
.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:#fff;font-size:9px;font-weight:700;margin-left:4px}
.tab-badge:empty{display:none}

/* KPI Grid */
.kpi-grid{grid-template-columns:repeat(4,1fr)}
.kpi-trend{font-size:11px;margin-top:2px;font-family:var(--font-data)}
.kpi-trend.up{color:var(--red)}
.kpi-trend.down{color:var(--green)}
.kpi-trend.up-good{color:var(--green)}
.kpi-trend.down-bad{color:var(--red)}
.kpi-trend.neutral{color:var(--muted)}
.fin-sub{font-size:10px;color:var(--muted);margin-top:2px}

.stacked-bar-wrap{position:relative}
.stacked-bar{display:flex;height:28px;border-radius:var(--radius-xs);overflow:hidden;width:100%}
.stacked-seg{height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;font-weight:600;cursor:default;transition:opacity .15s;min-width:2px}
.stacked-seg:hover{opacity:.85}
.stacked-labels{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}
.stacked-label{font-size:10px;color:var(--text-secondary);display:flex;align-items:center;gap:4px}
.stacked-label .dot{width:6px;height:6px;border-radius:2px;flex-shrink:0}

.mini-table{width:100%;border-collapse:collapse;font-size:12px}
.mini-table th{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:4px 8px;border-bottom:1px solid var(--border-subtle);font-weight:600}
.mini-table td{padding:5px 8px;border-bottom:1px solid var(--border-subtle)}
.mini-table tr:last-child td{border-bottom:none}

.badge-red{background:var(--red);color:#fff;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;margin-left:4px}
.badge-green{background:var(--green);color:#fff;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;margin-left:4px}

.fluxo-toggle{display:inline-flex;gap:4px;margin-left:10px;vertical-align:middle}
.fluxo-line-chart{width:100%;min-height:220px;position:relative}
.fluxo-alert{padding:10px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;margin-bottom:8px}
.fluxo-alert-danger{background:var(--red-glow);color:var(--red);border:1px solid rgba(239,68,68,.15)}
.fluxo-alert-ok{background:var(--green-glow);color:var(--green);border:1px solid rgba(34,197,94,.15)}

.cobranca-table{width:100%;border-collapse:collapse;font-size:12px}
.cobranca-table th{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--border-subtle);font-weight:600;white-space:nowrap}
.cobranca-table td{padding:8px 10px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}
.cobranca-table tr:hover{background:var(--table-hover)}
.cobranca-nivel{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:600;white-space:nowrap}
.cobranca-nivel.lembrete{background:rgba(245,158,11,.1);color:var(--yellow)}
.cobranca-nivel.cobranca{background:rgba(249,115,22,.1);color:var(--orange)}
.cobranca-nivel.protesto{background:rgba(239,68,68,.1);color:var(--red)}

/* UTILITY CLASSES */

/* Typography */
.text-xs{font-size:10px}.text-sm{font-size:12px}.text-md{font-size:14px}.text-lg{font-size:16px}
.text-muted{color:var(--muted)}.text-secondary{color:var(--text-secondary)}
.text-green{color:var(--green)}.text-red{color:var(--red)}.text-primary{color:var(--primary)}
.text-right{text-align:right}.text-center{text-align:center}
.font-mono{font-family:var(--font-data)}.font-bold{font-weight:700}.font-medium{font-weight:500}
.font-tabular{font-variant-numeric:tabular-nums}

/* Spacing */
.mt-0{margin-top:0}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mt-24{margin-top:24px}
.mb-0{margin-bottom:0}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}
.ml-auto{margin-left:auto}
.p-0{padding:0}.p-8{padding:8px}.p-12{padding:12px}.p-16{padding:16px}
.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}

/* Flex */
.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}
.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}
.flex-right{display:flex;align-items:center;gap:6px;margin-left:auto}
.inline-flex{display:inline-flex}

/* Grid */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}

/* Display */
.hidden{display:none!important}
.block{display:block}
.sub-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}

/* Standard Inputs */
.input-standard{
  width:100%;padding:7px 10px;
  border-radius:var(--radius-xs);
  border:1px solid var(--border);
  background:var(--input-bg);
  color:var(--text);font-size:13px;
  transition:border-color var(--transition-fast);
}
.input-standard:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}
.input-sm{padding:4px 8px;font-size:12px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--input-bg);color:var(--text)}
.input-sm:focus{border-color:var(--primary)}
.select-sm{padding:4px 8px;font-size:12px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--input-bg);color:var(--text)}

/* Toolbar */
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.toolbar-divider{width:1px;height:24px;background:var(--border);margin:0 4px;align-self:center;flex-shrink:0}
.header-actions{display:flex;align-items:center;gap:6px;margin-left:auto}

/* Section */
.section{margin-top:20px}
.section:first-child{margin-top:0}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}

/* Chat Panel */
.chat-layout{display:flex;height:calc(100vh - 140px);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.chat-sidebar{width:320px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column}
.chat-sidebar-header{padding:12px;border-bottom:1px solid var(--border)}
.chat-sidebar-list{flex:1;overflow-y:auto}
.chat-conv{padding:10px 12px;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--transition-fast)}
.chat-conv:hover{background:var(--table-hover)}
.chat-conv.active{background:var(--primary-surface);border-left:2px solid var(--primary)}
.chat-conv-name{font-weight:600;font-size:13px}
.chat-conv-preview{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-conv-time{font-size:10px;color:var(--muted)}
.chat-main{flex:1;display:flex;flex-direction:column;background:var(--bg)}
.chat-header{padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;gap:10px}
.chat-messages{flex:1;overflow-y:auto;padding:16px}
.chat-msg{max-width:70%;margin-bottom:8px;padding:8px 12px;border-radius:var(--radius);font-size:13px;line-height:1.5}
.chat-msg.incoming{background:var(--card);border:1px solid var(--border);align-self:flex-start}
.chat-msg.outgoing{background:var(--primary);color:#fff;align-self:flex-end;margin-left:auto}
.chat-msg-time{font-size:10px;color:var(--muted);margin-top:2px}
.chat-input-area{padding:12px;border-top:1px solid var(--border);background:var(--surface);display:flex;gap:8px}
.chat-input{flex:1;resize:none;min-height:38px;max-height:120px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--input-bg);color:var(--text);font-size:13px}
.chat-input:focus{border-color:var(--primary)}
.chat-send{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-xs);font-weight:600;cursor:pointer}
.chat-send:hover{background:var(--primary-hover)}

/* Status Indicator */
.status-indicator{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500}
.status-indicator::before{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0}
.status-indicator.online::before{background:var(--green)}
.status-indicator.offline::before{background:var(--red)}
.status-indicator.pending::before{background:var(--yellow)}

/* Divider */
.divider{height:1px;background:var(--border);margin:16px 0}
.divider-subtle{height:1px;background:var(--border-subtle);margin:8px 0}

/* Card variants */
.card-padded{padding:16px}
.card-compact{padding:12px}
.card-clickable{cursor:pointer}
.card-clickable:hover{border-color:var(--primary)}

/* Progress Bar */
.progress-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.progress-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}

/* Pill Tags */
.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:600;border:1px solid}
.pill-green{background:rgba(34,197,94,.08);color:var(--green);border-color:rgba(34,197,94,.15)}
.pill-red{background:rgba(239,68,68,.08);color:var(--red);border-color:rgba(239,68,68,.15)}
.pill-yellow{background:rgba(245,158,11,.08);color:var(--yellow);border-color:rgba(245,158,11,.15)}
.pill-blue{background:var(--primary-surface);color:var(--primary);border-color:rgba(0,212,170,.15)}

/* Load More */
.bol-load-more td{border-bottom:none}
.bol-load-more button{font-weight:500}

/* Stats grid (Cartoes) */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;text-align:center;backdrop-filter:blur(20px);transition:all var(--transition-med)}
.stat-card:hover{border-color:rgba(255,255,255,0.12);transform:translateY(-1px)}
.stat-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:4px}
.stat-value{font-size:20px;font-weight:700;font-family:var(--font-data)}
.table-footer{padding:8px 12px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}

/* Modal header/footer/close/body */
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.modal-header h3{margin:0;font-size:17px;font-weight:700}
.modal-close{background:none;border:none;color:var(--muted);font-size:24px;cursor:pointer;padding:4px;transition:color .15s;line-height:1}
.modal-close:hover{color:var(--text)}
.modal-body{margin-bottom:16px}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:16px;border-top:1px solid var(--border)}

/* Toast Notifications */
.toast-container{
  position:fixed;bottom:20px;right:20px;z-index:10000;
  display:flex;flex-direction:column-reverse;gap:8px;
  pointer-events:none;max-height:calc(100vh - 40px);overflow:hidden;
}
.toast{
  pointer-events:auto;background:var(--card);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:14px 18px;min-width:320px;max-width:400px;
  display:flex;align-items:flex-start;gap:10px;cursor:pointer;
  opacity:0;transform:translateX(100%);
  animation:toast-in .3s var(--ease-out) forwards;
  box-shadow:var(--shadow-xl);
  backdrop-filter:blur(20px);
  transition:opacity .2s ease, transform .2s ease;
}
.toast.toast-out{animation:toast-out .25s ease forwards}
.toast-icon{
  flex-shrink:0;width:20px;height:20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;color:#fff;margin-top:1px;
}
.toast-icon.success{background:var(--green)}
.toast-icon.info{background:var(--primary)}
.toast-icon.warning{background:var(--yellow)}
.toast-icon.error{background:var(--red)}
.toast-icon.pix{background:#32BCAD}
.toast-body{flex:1;min-width:0}
.toast-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:2px}
.toast-msg{font-size:12px;color:var(--text-secondary);line-height:1.4;white-space:pre-line;word-break:break-word}
.toast-close{
  flex-shrink:0;background:none;border:none;color:var(--muted);
  cursor:pointer;font-size:16px;line-height:1;padding:0 0 0 4px;opacity:.5;transition:opacity .15s;
}
.toast-close:hover{opacity:1}
.toast-progress{
  position:absolute;bottom:0;left:0;height:2px;
  background:var(--gradient-1);
  border-radius:0 0 var(--radius) var(--radius);
  animation:toast-progress 5s linear forwards;
}
.toast.toast-pix{border-left:3px solid #32BCAD}
.toast.toast-success{border-left:3px solid var(--green)}
.toast.toast-error{border-left:3px solid var(--red)}

@keyframes toast-in{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@keyframes toast-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
@keyframes toast-progress{from{width:100%}to{width:0}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* WhatsApp Chat Layout */
.wa-layout{display:flex;height:calc(100vh - 120px);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}
.wa-sidebar{width:340px;min-width:300px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column}
.wa-sidebar-header{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;gap:6px;align-items:center}
.wa-search{flex:1;padding:7px 12px;border-radius:20px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:12px;outline:none}
.wa-search:focus{border-color:var(--primary)}
.wa-status-filter{padding:6px 8px;border-radius:20px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:11px;outline:none}
.wa-conv-list{flex:1;overflow-y:auto;font-size:12px}
.wa-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}
.wa-main{flex:1;display:flex;flex-direction:column;background:var(--bg)}
.wa-header{padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;gap:12px;min-height:52px}
.wa-header-avatar{width:36px;height:36px;border-radius:50%;background:var(--bg-subtle);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:var(--text);flex-shrink:0}
.wa-mobile-back{display:none;width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:var(--text);cursor:pointer;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;transition:background .15s}
.wa-mobile-back:hover{background:var(--surface-hover)}
.wa-header-name{font-weight:600;font-size:14px;color:var(--text)}
.wa-header-phone{font-size:11px;color:var(--muted);margin-top:1px}
.wa-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:4px;background:var(--bg)}
[data-theme="dark"] .wa-messages,[data-theme="midnight"] .wa-messages{background:#0b141a}
[data-theme="light"] .wa-messages,[data-theme="cream"] .wa-messages{background:#efeae2}
.wa-input-area{padding:10px 16px;border-top:1px solid var(--border);background:var(--surface);display:flex;gap:8px;align-items:flex-end}
.wa-input{flex:1;padding:8px 14px;border-radius:20px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:13px;resize:none;max-height:100px;font-family:inherit;outline:none;line-height:1.4}
.wa-input:focus{border-color:var(--primary)}
.wa-send-btn{width:40px;height:40px;border-radius:50%!important;padding:0!important;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wa-action-btn{width:40px;height:40px;border-radius:50%;border:none;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.wa-action-btn:hover{background:var(--surface-hover);color:var(--text)}
.wa-mic-btn.recording{background:#ef4444!important;color:#fff!important;animation:micPulse 1s infinite}
@keyframes micPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
.wa-new-conv-btn{width:34px;height:34px;border-radius:50%;border:none;background:var(--primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;box-shadow:var(--shadow-primary)}
.wa-new-conv-btn:hover{background:var(--primary-hover);transform:scale(1.05)}
.wa-attach-preview{padding:8px 16px;border-top:1px solid var(--border);background:var(--surface);display:flex;align-items:center;gap:10px}
.wa-attach-preview-thumb{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border)}
.wa-attach-preview-file{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface);border-radius:var(--radius-sm);flex:1}
.wa-attach-preview-icon{width:36px;height:36px;border-radius:var(--radius-xs);background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.wa-attach-preview-name{font-size:12px;color:var(--text);word-break:break-all}
.wa-attach-preview-size{font-size:11px;color:var(--muted)}
.wa-attach-cancel{width:28px;height:28px;border-radius:50%;border:none;background:var(--red);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.wa-recording-bar{display:flex;align-items:center;gap:10px;flex:1;padding:8px 14px;background:var(--surface);border-radius:20px}
.wa-recording-dot{width:10px;height:10px;border-radius:50%;background:#ef4444;animation:micPulse 1s infinite}
.wa-recording-time{font-size:13px;color:var(--text);font-family:var(--font-data)}
.wa-recording-cancel{font-size:12px;color:var(--muted);cursor:pointer;text-decoration:underline}
.wa-contacts-overlay{position:absolute;inset:0;background:var(--surface);z-index:50;display:flex;flex-direction:column}
.wa-contacts-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:center}
.wa-contacts-back{width:34px;height:34px;border-radius:50%;border:none;background:transparent;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.wa-contacts-back:hover{background:var(--surface-hover)}
.wa-contacts-list{flex:1;overflow-y:auto}
.wa-contact-item{display:flex;align-items:center;gap:14px;padding:12px 16px;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--border-subtle)}
.wa-contact-item:hover{background:var(--surface-hover)}
.wa-contact-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;flex-shrink:0}
.wa-contact-info{flex:1;min-width:0}
.wa-contact-name{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-contact-phone{font-size:13px;color:var(--muted);margin-top:2px}

/* Chat bubbles */
.chat-msg-row{display:flex;padding:1px 0}
.chat-bubble-out,.chat-bubble-in{max-width:75%;padding:6px 10px;border-radius:10px;font-size:13px;line-height:1.45;word-wrap:break-word;position:relative}
.chat-bubble-out{background:#005c4b;color:#e9edef;border-top-right-radius:3px;margin-left:auto}
.chat-bubble-in{background:#202c33;color:#e9edef;border-top-left-radius:3px}
[data-theme="light"] .chat-bubble-out,[data-theme="cream"] .chat-bubble-out{background:#d9fdd3;color:#111b21}
[data-theme="light"] .chat-bubble-in,[data-theme="cream"] .chat-bubble-in{background:white;color:#111b21;border:none;box-shadow:0 1px 1px rgba(0,0,0,.06)}
[data-theme="ocean"] .chat-bubble-in{background:var(--card)}
.chat-text{white-space:pre-wrap}
.chat-time{font-size:10px;color:rgba(255,255,255,.45);text-align:right;margin-top:3px;letter-spacing:.3px}
.chat-bubble-in .chat-time{color:rgba(255,255,255,.35)}
[data-theme="light"] .chat-bubble-out .chat-time,[data-theme="cream"] .chat-bubble-out .chat-time{color:rgba(0,0,0,.35)}
[data-theme="light"] .chat-bubble-in .chat-time,[data-theme="cream"] .chat-bubble-in .chat-time{color:rgba(0,0,0,.35)}
.chat-att-img{margin-bottom:6px}
.chat-att-img img{max-width:320px;min-width:200px;max-height:360px;border-radius:10px;cursor:pointer;display:block}
.chat-att-audio{margin-bottom:6px}
.chat-att-audio audio{width:100%;min-width:240px;max-width:320px;height:42px;border-radius:21px}
.chat-att-video{margin-bottom:6px}
.chat-att-video video{max-width:320px;min-width:200px;border-radius:10px}
.chat-att-file{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(255,255,255,.08);border-radius:10px;margin-bottom:6px;text-decoration:none;color:inherit;transition:background .15s;border:1px solid rgba(255,255,255,.08);min-width:220px}
.chat-att-file:hover{background:rgba(255,255,255,.1)}
[data-theme="light"] .chat-att-file,[data-theme="cream"] .chat-att-file{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.06)}
[data-theme="light"] .chat-att-file:hover,[data-theme="cream"] .chat-att-file:hover{background:rgba(0,0,0,.08)}
.chat-att-file-icon{width:40px;height:40px;border-radius:var(--radius-sm);background:#00a884;color:white;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.chat-att-file-name{flex:1;font-size:13px;word-break:break-all;line-height:1.3}
.chat-att-file svg{width:18px;height:18px;opacity:.5;flex-shrink:0}

/* Email Tab - 3 Column Layout */
.email-layout{display:flex;height:calc(100vh - 120px);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}
.email-folders{width:200px;min-width:180px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:12px 0}
.email-compose-btn{margin:0 12px 12px;padding:10px 16px;font-size:13px;font-weight:600;border-radius:20px;display:flex;align-items:center;justify-content:center;gap:6px}
.email-folder-nav{flex:1;overflow-y:auto}
.email-folder-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;font-size:13px;color:var(--text);transition:background .15s;border-radius:0 20px 20px 0;margin-right:8px}
.email-folder-item:hover{background:var(--bg-subtle)}
.email-folder-item.active{background:var(--primary-surface);color:var(--primary);font-weight:600}
.ef-icon{width:18px;height:18px;flex-shrink:0;opacity:.7}
.email-folder-item.active .ef-icon{opacity:1}
.ef-label{flex:1}
.ef-badge{font-size:11px;font-weight:600;min-width:18px;text-align:center;color:var(--primary)}
.ef-badge:empty{display:none}
.ef-section-title{padding:12px 16px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-top:4px}
.ef-alias-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.email-account-info{padding:12px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}
.email-acct{display:flex;align-items:center;gap:6px}
.email-acct .svg-icon{width:14px;height:14px;opacity:.5}
.email-list-col{width:360px;min-width:300px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column}
.email-list-toolbar{padding:8px 10px;border-bottom:1px solid var(--border);display:flex;gap:6px;align-items:center}
.email-search-input{flex:1;padding:7px 12px;border-radius:20px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:12px;outline:none}
.email-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}
.email-refresh-btn{padding:6px 8px!important}
.email-refresh-btn .svg-icon,.email-refresh-btn svg{width:16px;height:16px}
.email-list-body{flex:1;overflow-y:auto}
.email-list-footer{padding:6px 10px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:8px}
.email-page-info{font-size:11px;color:var(--muted)}
.email-empty-state{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}
.email-empty-state .svg-icon,.email-empty-state svg{width:48px;height:48px}
.em-row{display:flex;gap:8px;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border-subtle);transition:background .12s;align-items:flex-start}
.em-row:hover{background:var(--bg-subtle)}
.em-row.em-selected{background:var(--primary-surface);border-left:3px solid var(--primary);padding-left:9px}
.em-dot{width:10px;flex-shrink:0;padding-top:5px}
.em-dot span{display:block;width:8px;height:8px;border-radius:50%;background:var(--primary)}
.em-content{flex:1;min-width:0}
.em-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1px}
.em-from{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.em-from small{font-size:10px;color:var(--muted);font-weight:400}
.em-date{font-size:10px;color:var(--muted);white-space:nowrap;margin-left:8px}
.em-subject{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.em-snippet{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.em-attach{font-size:10px;color:var(--muted);margin-top:3px;display:flex;align-items:center;gap:3px}
.em-attach svg,.em-attach .svg-icon{width:12px;height:12px}
.em-unread .em-from,.em-unread .em-subject{font-weight:600}
.email-view-col{flex:1;display:flex;flex-direction:column;background:var(--bg);min-width:0}
.email-view-body{flex:1;overflow-y:auto;display:flex;flex-direction:column}
.ev-header{padding:20px 24px;border-bottom:1px solid var(--border);background:var(--surface)}
.ev-subject{font-size:20px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:8px}
.ev-labels{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px}
.ev-label{display:inline-block;padding:2px 10px;font-size:10px;border-radius:20px;border:1px solid;font-weight:500;letter-spacing:.3px}
.ev-meta{display:flex;gap:12px;align-items:flex-start}
.ev-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);color:white;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}
.ev-meta-info{flex:1;min-width:0}
.ev-from-line{font-size:13px;color:var(--text)}
.ev-from-line strong{font-weight:600}
.ev-email{font-size:11px;color:var(--muted);margin-left:4px}
.ev-to-line{font-size:11px;color:var(--muted);margin-top:2px}
.ev-date{font-size:11px;color:var(--muted);white-space:nowrap;flex-shrink:0}
.ev-actions{padding:10px 24px;border-bottom:1px solid var(--border);display:flex;gap:8px}
.ev-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px}
.ev-btn svg,.ev-btn .svg-icon{width:14px;height:14px}
.ev-body{padding:20px 24px;flex:1}
.ev-iframe{width:100%;border:none;min-height:200px;background:white;border-radius:var(--radius-sm)}
.ev-text{white-space:pre-wrap;word-break:break-word;font-family:inherit;margin:0;font-size:13px;line-height:1.6}
.ev-attachments{margin:0 24px 20px;padding:16px;background:var(--bg-subtle);border-radius:var(--radius);border:1px solid var(--border)}
.ev-attach-title{font-size:12px;font-weight:600;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.ev-attach-title svg,.ev-attach-title .svg-icon{width:16px;height:16px;opacity:.6}
.ev-attach-list{display:flex;flex-wrap:wrap;gap:8px}
.ev-attach-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--card);border-radius:var(--radius-sm);border:1px solid var(--border);min-width:160px;cursor:default;transition:all .15s;text-decoration:none}
.ev-attach-item:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow)}
.ev-attach-icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ev-attach-icon svg,.ev-attach-icon .svg-icon{width:18px;height:18px}
.ev-attach-name{font-size:12px;font-weight:500;color:var(--text);word-break:break-all;line-height:1.3}
.ev-attach-size{font-size:10px;color:var(--muted);margin-top:1px}
.ev-attach-dl{width:20px;height:20px;opacity:0;transition:opacity .15s;color:var(--primary);margin-left:auto;flex-shrink:0}
.ev-attach-dl svg{width:18px;height:18px}
.ev-attach-item:hover .ev-attach-dl{opacity:1}
.ec-wrap{padding:20px 24px;display:flex;flex-direction:column;flex:1}
.ec-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.ec-header h3{margin:0;font-size:18px;font-weight:700;color:var(--text)}
.ec-form{display:flex;flex-direction:column;gap:8px;flex:1}
.ec-field{display:flex;align-items:center;gap:8px}
.ec-field label{font-size:12px;color:var(--muted);width:50px;text-align:right;flex-shrink:0;font-weight:500}
.ec-input{flex:1;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:13px;outline:none;font-family:inherit}
.ec-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}
.ec-body{flex:1;min-height:200px;padding:14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:13px;resize:none;font-family:inherit;line-height:1.6;outline:none}
.ec-body:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}
.ec-quote-toggle{margin-top:4px;font-size:12px;color:var(--muted)}
.ec-quote-toggle summary{cursor:pointer;padding:4px 0}
.ec-quote{margin-top:8px;max-height:200px;overflow-y:auto;font-size:12px;border-radius:var(--radius-sm);border:1px solid var(--border);padding:12px;background:var(--card)}
.ec-quote img{max-width:100%;height:auto}
.ec-footer{display:flex;justify-content:flex-end;padding-top:8px;gap:8px}
.ec-send-btn{padding:10px 28px!important;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:8px;border-radius:20px}
.ec-send-btn svg,.ec-send-btn .svg-icon{width:16px;height:16px}

/* Context Menu */
.ctx-menu{position:fixed;z-index:10000;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl);padding:4px 0;animation:ctxFadeIn .12s ease;backdrop-filter:blur(20px)}
@keyframes ctxFadeIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.ctx-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;font-size:13px;color:var(--text);transition:background .1s}
.ctx-item:hover{background:var(--primary);color:#fff}
.ctx-item:hover .ctx-icon{color:#fff}
.ctx-danger{color:var(--red)!important}
.ctx-danger:hover{background:var(--red)!important;color:#fff!important}
.ctx-icon{width:16px;height:16px;color:var(--muted);flex-shrink:0;display:flex;align-items:center}
.ctx-icon svg{width:14px;height:14px}
.ctx-divider{height:1px;background:var(--border);margin:4px 0}

/* Contact Info Modal */
.ctx-modal-overlay{position:fixed;inset:0;z-index:10001;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:ctxFadeIn .15s ease}
.ctx-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;min-width:360px;max-width:480px;box-shadow:var(--shadow-xl)}
.ctx-info-grid{display:flex;flex-direction:column;gap:8px}
.ctx-info-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border-subtle)}
.ctx-info-row:last-child{border-bottom:none}
.ctx-info-label{font-size:12px;color:var(--muted);font-weight:500}
.ctx-info-val{font-size:13px;color:var(--text);font-weight:500}

/* WhatsApp Conversation List */
.wa-conv-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-subtle)}
.wa-conv-item:hover{background:var(--surface-hover)}
.wa-conv-active{background:var(--bg-subtle)!important}
.wa-conv-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.wa-conv-time{font-size:11px;color:var(--muted);white-space:nowrap;flex-shrink:0}
.wa-conv-unread-time{color:var(--green);font-weight:600}
.wa-conv-preview{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.wa-conv-badge{background:var(--green);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 6px;flex-shrink:0}

/* Email responsive - tablet */
@media(max-width:1200px){.email-folders{width:60px;min-width:60px}.ef-label,.email-compose-btn span:last-child,.email-account-info,.ef-section-title{display:none}.email-compose-btn{padding:10px!important;border-radius:50%!important;width:40px;height:40px;margin:0 10px 10px}.email-folder-item{padding:10px;justify-content:center;margin:0;border-radius:8px}.ef-icon{width:20px;height:20px}.ef-alias-dot{width:12px;height:12px}}
@media(max-width:900px){.email-list-col{width:280px;min-width:240px}}

/* RESPONSIVE */
@media (max-width: 768px){
  .content{padding:14px}
  .topbar{padding:10px 14px;flex-wrap:wrap;gap:8px}
  .logo{font-size:16px}
  .topbar-right{gap:8px}
  .user-info{font-size:11px}
  .tabs{padding:0 10px;overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{padding:8px 12px;font-size:12px;white-space:nowrap}
  .cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:12px}
  .card{padding:14px 16px;border-radius:var(--radius-sm)}
  .card-value{font-size:20px}
  .card-bank .card-value{font-size:18px}
  .table-toolbar{gap:6px}
  .table-toolbar input[type="date"]{width:120px;font-size:12px;padding:6px 8px}
  .quick-filters{gap:2px}
  .btn-quick{padding:4px 8px!important;font-size:11px!important}
  .bank-selector{flex-wrap:wrap}
  .bank-btn{padding:7px 10px;font-size:12px}
  .section-title{font-size:14px}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .table-wrap table thead{display:none}
  .table-wrap table tbody tr{
    display:block;margin-bottom:8px;
    border:1px solid var(--border);border-radius:var(--radius-sm);
    padding:12px;background:var(--card);
  }
  .table-wrap table tbody td{
    display:flex;justify-content:space-between;align-items:center;
    padding:4px 0;border:none;font-size:13px;
  }
  .table-wrap table tbody td::before{
    content:attr(data-label);font-weight:600;color:var(--muted);
    font-size:11px;text-transform:uppercase;flex-shrink:0;margin-right:10px;letter-spacing:.4px;
  }
  .table-wrap table tbody td:empty{display:none}
  .table-wrap table tbody tr:hover{background:var(--card)}
  .td-money{text-align:left}
  .btn{min-height:44px;padding:10px 16px}
  .btn-sm{min-height:36px;padding:6px 12px}
  .btn-login{min-height:48px}
  .btn-logout{min-height:36px}
  .modal{width:100vw;max-width:100vw;border-radius:var(--radius) var(--radius) 0 0;max-height:95vh;padding:20px}
  .modal-boleto{width:100vw}
  .modal-qr{width:100vw}
  .boleto-grid{grid-template-columns:1fr}
  .cards{gap:8px}
  .card{min-height:auto}
  .boleto-status-filters,.cp-status-filters{gap:8px}
  .boleto-status-filters label,.cp-status-filters label{font-size:12px}
  .tab-panel.active .card{animation:none}
  .tab-panel.active .table-wrap{animation:none}
  .login-box{width:95vw;padding:24px 20px;border-radius:var(--radius)}
  .login-box h1{font-size:20px}
  .empresa-filter{gap:4px}
  .empresa-pill{padding:3px 8px;font-size:11px}
  .protest-alert{flex-wrap:wrap;padding:10px 12px}
  .protest-alert .protest-count{font-size:16px}
  .cp-empresa-filter{padding:8px 10px;gap:8px}
  .cp-search-input{width:100%}
  .cp-search-input:focus{width:100%}
  .conciliacao-grid{grid-template-columns:1fr}
  .aging-bar{flex-wrap:wrap}
  .aging-band{min-width:calc(50% - 4px);flex:none}
  .aging-value{font-size:15px}
  .fin-summary{grid-template-columns:repeat(2,1fr)}
  .fin-card .fin-value{font-size:17px}

  /* Email mobile */
  .email-layout{flex-direction:column;height:auto;min-height:calc(100vh - 120px)}
  .email-folders{width:100%!important;min-width:100%!important;flex-direction:row;padding:0;border-right:none;border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch}
  .email-folder-nav{display:flex;flex-direction:row;overflow-x:auto;padding:6px 8px;gap:4px;scrollbar-width:none;-ms-overflow-style:none}
  .email-folder-nav::-webkit-scrollbar{display:none}
  .email-compose-btn{margin:6px 8px!important;padding:8px 14px!important;border-radius:20px!important;width:auto!important;height:auto!important;white-space:nowrap;font-size:12px}
  .email-compose-btn span:last-child{display:inline!important}
  .email-folder-item{padding:6px 12px;margin:0;border-radius:16px;white-space:nowrap;flex-shrink:0;gap:6px;font-size:12px}
  .ef-icon{width:16px;height:16px}
  .ef-label{display:inline!important}
  .ef-badge{font-size:10px}
  .ef-section-title{display:none}
  .email-account-info{display:none}
  .email-list-col{width:100%!important;min-width:100%!important;max-height:45vh;border-right:none;border-bottom:1px solid var(--border)}
  .email-view-col{min-height:45vh}
  .ev-header{padding:12px 14px}
  .ev-subject{font-size:16px}
  .ev-actions{padding:8px 14px;flex-wrap:wrap}
  .ev-body{padding:12px 14px}
  .ev-attachments{margin:0 14px 12px}
  .ec-wrap{padding:12px 14px}
  .ec-field{flex-direction:column;gap:4px}
  .ec-field label{width:auto;text-align:left}
  .ec-body{min-height:120px}

  /* WA mobile */
  .wa-layout{flex-direction:column;height:calc(100vh - 120px)}
  .wa-sidebar{width:100%!important;min-width:100%!important;border-right:none;border-bottom:1px solid var(--border);max-height:45vh}
  .wa-main{min-height:45vh}
  .wa-sidebar-header{padding:8px 10px;flex-wrap:wrap;gap:4px}
  .wa-search{font-size:13px;padding:8px 12px}
  .wa-status-filter{font-size:12px;padding:6px 10px}
  .wa-conv-item{padding:10px 12px;gap:10px}
  .wa-conv-name{font-size:13px;max-width:140px}
  .wa-conv-preview{max-width:150px}
  .wa-header{padding:8px 12px;gap:8px}
  .wa-messages{padding:8px 10px}
  .wa-input-area{padding:6px 8px;gap:4px}
  .wa-input{font-size:14px;padding:8px 12px}
  .wa-action-btn{width:36px;height:36px}
  .wa-send-btn{width:36px;height:36px}
  .chat-bubble-out,.chat-bubble-in{max-width:85%;font-size:14px}
  .chat-att-img img{max-width:240px;min-width:150px}
  .chat-att-audio audio{min-width:180px;max-width:260px}
  .chat-att-video video{max-width:240px;min-width:150px}
  .chat-att-file{min-width:180px;padding:8px 10px}
  .ctx-modal{min-width:280px;max-width:90vw;padding:20px}

  /* Tabs scrollable mobile */
  .tabs{gap:0;padding:0 4px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}
  .tabs::-webkit-scrollbar{display:none}
  .tab{white-space:nowrap;padding:8px 10px;font-size:11px;flex-shrink:0}
  .tab .svg-icon,.tab svg{width:14px;height:14px}
  .topbar{padding:6px 10px}
  .logo{font-size:15px}
  .logo span{display:none}
  .user-info strong{max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
  .content{padding:8px}
}

@media (max-width: 600px){
  /* Email stacked view (phone) */
  .email-layout{position:relative}
  .email-list-col{max-height:none;height:auto;min-height:auto}
  .email-view-col{display:none}
  .email-view-col.email-view-open{display:flex;position:absolute;inset:0;z-index:60;background:var(--bg)}
  .email-list-col.email-list-hidden{display:none}
  .em-from{max-width:140px}
  .em-subject,.em-snippet{font-size:11px}

  /* WhatsApp stacked view (phone) */
  .wa-layout{position:relative}
  .wa-sidebar{max-height:none;height:auto;min-height:auto}
  .wa-main{display:none}
  .wa-main.wa-chat-open{display:flex;position:absolute;inset:0;z-index:60;background:var(--bg)}
  .wa-sidebar.wa-sidebar-hidden{display:none}
  .wa-header .wa-mobile-back{display:flex!important}

  /* Toast & notifications */
  .toast-container{bottom:10px;right:10px;left:10px}
  .toast{min-width:auto;max-width:100%}
  .ctx-menu{max-width:calc(100vw - 20px)}
  .alert-dropdown{right:-40px;width:90vw;max-width:360px}
}

@media (max-width: 480px){
  .content{padding:10px}
  .topbar{padding:8px 10px}
  .cards{grid-template-columns:1fr 1fr;gap:6px}
  .card{padding:12px 14px}
  .card-value{font-size:18px}
  .card-label{font-size:10px;letter-spacing:.4px}
  .bank-selector{gap:0}
  .bank-btn{padding:6px 10px;font-size:11px;gap:4px}
  .modal{padding:16px;border-radius:var(--radius) var(--radius) 0 0}
  .boleto-footer{padding:10px 12px;font-size:12px}
  .boleto-footer .footer-total{font-size:13px}
}

@media (max-height: 500px) and (orientation: landscape){
  .login-wrap{min-height:auto;padding:20px 0}
  .login-box{padding:20px 24px}
  .modal{max-height:98vh}
}

@media (min-width: 1600px){
  .content{max-width:1560px}
  .cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
}

/* ── CP Source Buttons (dinâmicos) ────────────────────────────── */
#cpSourceSelector .bank-btn,
#cpSourceSelector + .cp-source-divider + .bank-selector .bank-btn{
  transition:all .2s ease;border:1px solid transparent;border-radius:8px;padding:6px 12px;font-size:12px
}
#cpSourceSelector .bank-btn:hover,
#cpSourceSelector + .cp-source-divider + .bank-selector .bank-btn:hover{
  transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.25)
}
/* Cor de fundo sutil quando ativo — usa a cor do ícone */
.bank-btn.active[data-cpsrc="financeiro"]{background:rgba(16,185,129,.15)!important;border-color:rgba(16,185,129,.4)!important;color:#10b981}
.bank-btn.active[data-cpsrc="nfe"]{background:rgba(139,92,246,.15)!important;border-color:rgba(139,92,246,.4)!important;color:#8b5cf6}
.bank-btn.active[data-cpsrc="erp"]{background:rgba(245,158,11,.15)!important;border-color:rgba(245,158,11,.4)!important;color:#f59e0b}
.bank-btn.active[data-cpsrc="consolidado"]{background:rgba(239,68,68,.15)!important;border-color:rgba(239,68,68,.4)!important;color:#ef4444}
.bank-btn.active[data-cpsrc="mapa"]{background:rgba(59,130,246,.15)!important;border-color:rgba(59,130,246,.4)!important;color:#3b82f6}
.bank-btn.active[data-cpsrc="notas"]{background:rgba(107,114,128,.15)!important;border-color:rgba(107,114,128,.4)!important;color:#9ca3af}
.bank-btn.active[data-cpsrc="cte"]{background:rgba(16,185,129,.15)!important;border-color:rgba(16,185,129,.4)!important;color:#10b981}
.bank-btn.active[data-cpsrc="nfse"]{background:rgba(14,165,233,.15)!important;border-color:rgba(14,165,233,.4)!important;color:#0ea5e9}

/* ── CP Financeiro: Action buttons na tabela ──────────────────── */
#finBody .btn-xs{
  padding:3px 8px;font-size:11px;border-radius:6px;font-weight:500;
  transition:all .15s ease;border:1px solid var(--border)
}
#finBody .btn-xs:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.2)}
#finBody .btn-xs.btn-primary{background:#10b981;border-color:#10b981;color:#fff}
#finBody .btn-xs.btn-primary:hover{background:#059669;border-color:#059669}

/* Botão Venc */
#finBody .btn-xs[title="Editar Vencimento"]{color:#f59e0b;border-color:rgba(245,158,11,.3)}
#finBody .btn-xs[title="Editar Vencimento"]:hover{background:rgba(245,158,11,.15);border-color:#f59e0b}

/* Botão Valor */
#finBody .btn-xs[title="Editar Valor"]{color:#3b82f6;border-color:rgba(59,130,246,.3)}
#finBody .btn-xs[title="Editar Valor"]:hover{background:rgba(59,130,246,.15);border-color:#3b82f6}

/* Botão Detalhes */
#finBody .btn-xs[title="Detalhes"]{color:#8b5cf6;border-color:rgba(139,92,246,.3)}
#finBody .btn-xs[title="Detalhes"]:hover{background:rgba(139,92,246,.15);border-color:#8b5cf6}

/* Botão Anexar */
#finBody .btn-xs[title="Anexar Comprovante"]{color:#0ea5e9;border-color:rgba(14,165,233,.3)}
#finBody .btn-xs[title="Anexar Comprovante"]:hover{background:rgba(14,165,233,.15);border-color:#0ea5e9}

/* Botão Estornar */
#finBody .btn-xs[title="Estornar"]{color:#ef4444;border-color:rgba(239,68,68,.3)}
#finBody .btn-xs[title="Estornar"]:hover{background:rgba(239,68,68,.15);border-color:#ef4444}

/* ── CR Source Buttons ────────────────────────────────────────── */
.bank-btn.active[data-crsrc="financeiro"]{background:rgba(16,185,129,.15)!important;border-color:rgba(16,185,129,.4)!important;color:#10b981}
.bank-btn.active[data-crsrc="conciliador"]{background:rgba(245,158,11,.15)!important;border-color:rgba(245,158,11,.4)!important;color:#f59e0b}
.bank-btn.active[data-crsrc="aging"]{background:rgba(139,92,246,.15)!important;border-color:rgba(139,92,246,.4)!important;color:#8b5cf6}

/* CR action buttons */
#crFinBody .btn-xs{padding:3px 8px;font-size:11px;border-radius:6px;font-weight:500;transition:all .15s ease;border:1px solid var(--border)}
#crFinBody .btn-xs:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.2)}

/* CR View toggle */
#btnCrPendentes.active{background:#10b981!important;border-color:#10b981!important;color:#fff!important}
#btnCrPagas.active{background:#3b82f6!important;border-color:#3b82f6!important;color:#fff!important}
#btnCrVencidos.active{background:#ef4444!important;border-color:#ef4444!important;color:#fff!important}

/* CR Cards hover */
#crViewFinanceiro .card{transition:all .2s ease;cursor:pointer;border:1px solid transparent}
#crViewFinanceiro .card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}

/* ── CP Financeiro: View toggle buttons ──────────────────────── */
#btnFinPendentes,#btnFinPagas,#btnFinVencidos{
  transition:all .15s ease;border-radius:6px;font-weight:500
}
#btnFinPendentes.active{background:#10b981!important;border-color:#10b981!important;color:#fff!important}
#btnFinPagas.active{background:#3b82f6!important;border-color:#3b82f6!important;color:#fff!important}
#btnFinVencidos.active{background:#ef4444!important;border-color:#ef4444!important;color:#fff!important}

/* ── CP Cards hover ──────────────────────────────────────────── */
#cpViewFinanceiro .card{transition:all .2s ease;cursor:pointer;border:1px solid transparent}
#cpViewFinanceiro .card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}
#cpViewFinanceiro .card[style*="outline"]{border-color:var(--accent)!important}

/* ── Cobrança: Source buttons ─────────────────────────────────── */
.bank-btn.active[data-cobsrc="clientes"]{background:rgba(239,68,68,.15)!important;border-color:rgba(239,68,68,.4)!important;color:#ef4444}
.bank-btn.active[data-cobsrc="historico"]{background:rgba(107,114,128,.15)!important;border-color:rgba(107,114,128,.4)!important;color:#9ca3af}
.bank-btn.active[data-cobsrc="templates"]{background:rgba(139,92,246,.15)!important;border-color:rgba(139,92,246,.4)!important;color:#8b5cf6}

/* Cobrança expand suave */
.cob-expand-row{display:none}
.cob-expand-row.active{display:table-row;animation:fadeIn .2s ease}
.cob-expand-content{padding:12px 16px!important;background:var(--bg-secondary)!important}
.cob-action-bar{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.cob-titulos-list table{font-size:12px;width:100%}
.cob-titulos-list th{font-size:11px;color:var(--text-secondary);padding:4px 8px}
.cob-titulos-list td{padding:4px 8px}

/* ── Financeiro: Sortable columns ─────────────────────────────── */
th[data-sort]{user-select:none;position:relative;padding-right:18px!important}
th[data-sort]:hover{background:var(--bg-tertiary)}
th[data-sort]::after{content:'⇅';position:absolute;right:4px;top:50%;transform:translateY(-50%);opacity:.3;font-size:10px}
th.sort-asc::after{content:'▲';opacity:.8;color:var(--accent)}
th.sort-desc::after{content:'▼';opacity:.8;color:var(--accent)}
.filter-row td{padding:2px 4px!important}
.filter-row input,.filter-row select{box-sizing:border-box}

/* ── Financeiro Redesign ─────────────────────────────── */

/* Empresa chips */
.emp-chip{cursor:pointer;user-select:none}
.emp-chip-inner{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;
  border:1.5px solid var(--border);color:var(--muted);background:transparent;transition:all .15s}
.emp-chip input:checked+.emp-chip-inner{
  background:var(--emp-color,var(--primary));color:#fff;border-color:var(--emp-color,var(--primary));
  box-shadow:0 2px 8px color-mix(in srgb,var(--emp-color) 30%,transparent)}
.emp-chip:hover .emp-chip-inner{border-color:var(--emp-color,var(--primary));color:var(--emp-color,var(--primary))}

/* KPI Cards */
.fin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.fin-kpi{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:10px;cursor:pointer;
  background:var(--card);border:1px solid var(--border);transition:all .15s;position:relative;overflow:hidden}
.fin-kpi:hover{border-color:var(--primary);box-shadow:0 2px 12px rgba(0,0,0,.06)}
.fin-kpi.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 5%,var(--card))}
.fin-kpi-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;color:#fff;background:var(--red);flex-shrink:0}
.fin-kpi-body{flex:1;min-width:0}
.fin-kpi-value{font-size:24px;font-weight:800;line-height:1;color:var(--text)}
.fin-kpi-label{font-size:11px;color:var(--muted);font-weight:600;margin-top:2px;text-transform:uppercase;letter-spacing:.3px}
.fin-kpi-sub{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
.fin-kpi--danger .fin-kpi-sub{color:var(--red)}
.fin-kpi--warning .fin-kpi-sub{color:var(--yellow)}
.fin-kpi--danger{border-left:3px solid var(--red)}
.fin-kpi--success{border-left:3px solid var(--green)}
.fin-kpi--success .fin-kpi-sub{color:var(--green)}
.fin-kpi--warning{border-left:3px solid var(--yellow)}
.fin-kpi--info{border-left:3px solid var(--primary)}
@media(max-width:768px){.fin-kpis{grid-template-columns:repeat(2,1fr)}}

/* Toolbar */
.fin-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;padding:6px 0}
.fin-tabs{display:flex;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2px;overflow:hidden}
.fin-tab{padding:6px 16px;font-size:12px;font-weight:600;border:none;background:transparent;color:var(--muted);
  cursor:pointer;border-radius:6px;transition:all .15s;white-space:nowrap}
.fin-tab.active{background:var(--primary);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.1)}
.fin-tab:not(.active):hover{color:var(--text);background:var(--bg-secondary)}
.fin-toolbar-sep{width:1px;height:24px;background:var(--border);flex-shrink:0}
.fin-search{padding:6px 12px;border:1px solid var(--border);background:var(--surface);color:var(--text);
  font-size:12px;border-radius:8px;width:220px;transition:all .2s}
.fin-search:focus{border-color:var(--primary);outline:none;width:300px;box-shadow:0 0 0 3px var(--primary-glow)}
.fin-date-range{display:flex;align-items:center;gap:4px}
.fin-date-range input[type="date"]{padding:5px 8px;border:1px solid var(--border);background:var(--surface);
  color:var(--text);font-size:11px;border-radius:6px;width:125px}

/* Tabela enxuta */
.fin-table td{padding:10px 12px;vertical-align:middle}
.fin-table .fin-row-overdue{border-left:3px solid var(--red);background:color-mix(in srgb,var(--red) 4%,transparent)}
.fin-table .fin-row-today{border-left:3px solid var(--yellow);background:color-mix(in srgb,var(--yellow) 4%,transparent)}
.fin-table .fin-row-paid{border-left:3px solid var(--green);background:color-mix(in srgb,var(--green) 4%,transparent)}
.fin-table .fin-row-ok{border-left:3px solid transparent}
.fin-fornecedor{font-weight:600;font-size:13px;color:var(--text);line-height:1.3}
.fin-fornecedor-emp{font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;color:#fff;margin-right:4px;vertical-align:1px}
.fin-descricao{font-size:12px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-valor{font-size:14px;font-weight:700;text-align:right;white-space:nowrap;font-family:var(--font-data,'JetBrains Mono',monospace)}
.fin-venc{text-align:center;white-space:nowrap}
.fin-venc-date{font-size:12px;font-weight:600;color:var(--text)}
.fin-venc-dias{font-size:10px;font-weight:700;display:block;margin-top:1px}
.fin-status{text-align:center}
.fin-actions{text-align:right;white-space:nowrap}
.fin-btn-baixar{padding:5px 14px;font-size:11px;font-weight:700;border:none;border-radius:6px;cursor:pointer;
  background:var(--primary);color:#fff;transition:all .15s}
.fin-btn-baixar:hover{opacity:.85;transform:translateY(-1px)}
.fin-btn-conciliar{padding:3px 8px;font-size:10px;font-weight:700;border:none;border-radius:4px;cursor:pointer;
  color:#fff;margin-right:4px;transition:all .15s}
.fin-btn-more{padding:4px 8px;font-size:14px;border:none;background:transparent;color:var(--muted);cursor:pointer;
  border-radius:4px;line-height:1}
.fin-btn-more:hover{background:var(--surface);color:var(--text)}
/* More menu dropdown */
.fin-more-menu{position:absolute;right:0;top:100%;z-index:50;background:var(--card);border:1px solid var(--border);
  border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:4px;min-width:160px;display:none}
.fin-more-menu.show{display:block}
.fin-more-menu button{display:block;width:100%;text-align:left;padding:8px 12px;font-size:12px;border:none;
  background:transparent;color:var(--text);cursor:pointer;border-radius:4px;font-weight:500}
.fin-more-menu button:hover{background:var(--surface)}

/* ── Automação Financeira: cards de jobs + config agrupada ─────────── */
.finauto-jobs{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:10px;margin-bottom:14px;
}
.finauto-job{
  background:var(--card);
  border:1px solid var(--border);
  border-left:3px solid var(--border);
  border-radius:var(--radius-sm, 8px);
  padding:11px 13px;
  transition:transform .15s ease, border-color .15s ease;
}
.finauto-job:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.14)}
.finauto-job.ok{border-left-color:var(--green)}
.finauto-job.erro{border-left-color:var(--red);background:linear-gradient(135deg, rgba(239,68,68,.05), var(--card))}
.finauto-job.neutral{border-left-color:var(--muted)}
.finauto-job-head{display:flex;align-items:center;gap:7px;margin-bottom:4px}
.finauto-job-ico{font-size:16px;line-height:1}
.finauto-job-title{font-size:12px;font-weight:700;color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.finauto-job-status{font-size:13px;line-height:1}
.finauto-job-schedule{font-size:10px;color:var(--muted);margin-left:23px;margin-bottom:4px}
.finauto-job-last{font-size:10px;color:var(--muted);margin-left:23px;font-family:var(--font-data);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.finauto-job-actions{margin-top:8px;margin-left:23px}
.finauto-job-actions .btn-sm{font-size:10px;padding:3px 8px}

.finauto-config{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius-sm, 8px);
  padding:14px 16px;
  margin-bottom:14px;
}
.finauto-config-section{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.06))}
.finauto-config-section:last-of-type{border-bottom:none;margin-bottom:8px;padding-bottom:0}
.finauto-config-title{
  font-size:11px;text-transform:uppercase;letter-spacing:.6px;
  color:var(--muted);font-weight:700;margin-bottom:10px;
}
.finauto-config-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:10px 16px;
}
.finauto-field label{
  display:block;font-size:10px;color:var(--muted);font-weight:600;
  margin-bottom:4px;letter-spacing:.2px;
}
.finauto-field input, .finauto-field select{
  width:100%;padding:6px 10px;border-radius:5px;
  border:1px solid var(--border);
  background:var(--bg-subtle, var(--surface));
  color:var(--text);font-size:12px;
  font-family:inherit;
}
.finauto-field input:focus, .finauto-field select:focus{
  outline:none;border-color:var(--primary);
}
.finauto-save{margin-top:6px;width:100%}

/* ── Alertas: dashboard recentes + dropdown do sino ────────────────── */
.dash-alertas-list{display:flex;flex-direction:column;gap:6px}
.dash-alerta{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:10px;padding:9px 12px;
  background:var(--surface, rgba(255,255,255,.03));
  border:1px solid var(--border-subtle, rgba(255,255,255,.06));
  border-left:3px solid var(--border);
  border-radius:6px;
  transition:background .15s ease, border-color .15s ease;
}
.dash-alerta:hover{background:rgba(255,255,255,.05)}
.dash-alerta.info{border-left-color:var(--primary, #3b82f6)}
.dash-alerta.warning{border-left-color:var(--yellow, #eab308)}
.dash-alerta.danger{border-left-color:var(--red)}
.dash-alerta.critical{border-left-color:var(--red);background:rgba(239,68,68,.06)}
.dash-alerta.unread{background:rgba(59,130,246,.06)}
.dash-alerta-ico{font-size:16px;line-height:1;flex-shrink:0}
.dash-alerta-content{min-width:0;flex:1}
.dash-alerta-title{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-alerta-msg{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-alerta-time{font-size:10px;color:var(--muted);font-family:var(--font-data);white-space:nowrap;flex-shrink:0}

/* Dropdown do sino — refinos pra título + mensagem + tempo */
.alert-item{padding:10px 14px;border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.05));display:flex;flex-direction:column;gap:3px;font-size:12px}
.alert-item:last-child{border-bottom:none}
.alert-item.unread{background:rgba(59,130,246,.05)}
.alert-item-head{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}
.alert-item-msg{color:var(--muted);font-size:11px;margin-left:22px}
.alert-time{font-size:10px;color:var(--muted);margin-left:22px;font-family:var(--font-data)}

/* ── Fluxo de Caixa Inteligente: hero + mini-cards + médias ───────── */
.fluxo-hero{
  background:linear-gradient(135deg, var(--primary-surface, #1a2540), var(--card));
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:18px 22px;margin-bottom:14px;
  position:relative;overflow:hidden;
  transition:border-color .2s ease;
}
.fluxo-hero.positive{border-left:4px solid var(--green)}
.fluxo-hero.warning{border-left:4px solid var(--yellow, #eab308)}
.fluxo-hero.negative{border-left:4px solid var(--red);background:linear-gradient(135deg, rgba(239,68,68,.08), var(--card))}
.fluxo-hero-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.fluxo-hero-label{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700}
.fluxo-hero-period{font-size:14px;font-weight:600;color:var(--text);margin-top:2px;font-family:var(--font-data);font-variant-numeric:tabular-nums}
.fluxo-hero-status{font-size:24px;line-height:1}
.fluxo-hero-saldo{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  margin-bottom:12px;padding-bottom:12px;
  border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.06));
}
.fluxo-hero-saldo-label{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:600;letter-spacing:.6px}
.fluxo-hero-saldo-val{font-family:var(--font-data);font-size:32px;font-weight:700;letter-spacing:-.6px;line-height:1.05;font-variant-numeric:tabular-nums}
.fluxo-hero-saldo-gap{font-size:12px;color:var(--red);font-family:var(--font-data);font-weight:600}
.fluxo-hero-flow{display:flex;gap:24px;font-family:var(--font-data);font-size:14px;font-weight:600;margin-bottom:10px;font-variant-numeric:tabular-nums}
.flow-up{color:var(--green)}
.flow-down{color:var(--red)}
.fluxo-hero-detail{
  display:grid;grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:8px 16px;font-size:12px;color:var(--muted);
}
.fluxo-hero-detail-item{display:flex;align-items:center;gap:6px;white-space:nowrap}
.fluxo-hero-detail-item strong{color:var(--text);font-family:var(--font-data);font-weight:700;font-variant-numeric:tabular-nums}
.fluxo-emoji{font-size:14px}
.fluxo-fonte{font-size:10px;color:var(--muted);font-weight:400;margin-left:4px}

.fluxo-section-label{
  font-size:11px;text-transform:uppercase;letter-spacing:.7px;
  color:var(--muted);font-weight:700;margin-bottom:8px;padding-left:2px;
}
.fluxo-mini-cards{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:10px;margin-bottom:14px;
}
.fluxo-mini-card{
  background:var(--card);
  border:1px solid var(--border);
  border-left:3px solid var(--border);
  border-radius:var(--radius-sm, 8px);
  padding:11px 13px;
  transition:transform .15s ease, border-color .15s ease;
  cursor:default;
}
.fluxo-mini-card:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.14)}
.fluxo-mini-card.positive{border-left-color:var(--green)}
.fluxo-mini-card.warning{border-left-color:var(--yellow, #eab308)}
.fluxo-mini-card.negative{border-left-color:var(--red);background:linear-gradient(135deg, rgba(239,68,68,.05), var(--card))}
.fluxo-mini-head{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:6px}
.fluxo-mini-period{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-family:var(--font-data)}
.fluxo-mini-ico{font-size:13px;line-height:1}
.fluxo-mini-saldo{font-family:var(--font-data);font-size:18px;font-weight:700;letter-spacing:-.3px;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--text)}
.fluxo-mini-card.negative .fluxo-mini-saldo{color:var(--red)}
.fluxo-mini-card.positive .fluxo-mini-saldo{color:var(--green)}
.fluxo-mini-flow{
  display:flex;justify-content:space-between;gap:6px;margin-top:6px;
  font-size:10px;font-family:var(--font-data);font-variant-numeric:tabular-nums;font-weight:600;
}

.fluxo-medias{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  padding:10px 14px;background:var(--surface, rgba(255,255,255,.03));
  border:1px solid var(--border-subtle, rgba(255,255,255,.06));
  border-radius:var(--radius-sm, 8px);
  font-size:12px;
}
.fluxo-medias-label{color:var(--muted);font-weight:600}
.fluxo-media-item{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}
.fluxo-media-item strong{color:var(--text);font-family:var(--font-data);font-weight:700;font-variant-numeric:tabular-nums}

@media (max-width:600px){
  .fluxo-hero{padding:14px 16px}
  .fluxo-hero-saldo-val{font-size:24px}
  .fluxo-hero-flow{gap:14px;font-size:12px}
  .fluxo-hero-detail{font-size:11px}
  .fluxo-mini-cards{grid-template-columns:repeat(2, 1fr)}
  .fluxo-mini-saldo{font-size:15px}
}

/* Ícone "?" com tooltip explicativo (KPIs, Resumo Financeiro) */
.info-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:14px;height:14px;border-radius:50%;
  background:var(--surface, rgba(255,255,255,.05));
  color:var(--muted);font-size:9px;font-weight:700;
  cursor:help;margin-left:4px;
  border:1px solid var(--border, rgba(255,255,255,.1));
  vertical-align:middle;line-height:1;
  font-family:system-ui,sans-serif;text-transform:none;letter-spacing:0;
  transition:background .15s ease, color .15s ease;
  position:relative;
}
.info-icon:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.info-icon[data-tooltip]:hover::after{
  content:attr(data-tooltip);
  position:absolute;bottom:calc(100% + 8px);left:50%;
  transform:translateX(-50%);
  background:#0a0a0a;color:#fff;
  padding:9px 12px;border-radius:6px;
  font-size:11px;font-weight:400;letter-spacing:0;
  white-space:normal;min-width:240px;max-width:280px;
  text-align:left;line-height:1.45;
  z-index:1000;pointer-events:none;
  box-shadow:0 6px 18px rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.08);
}
.info-icon[data-tooltip]:hover::before{
  content:'';position:absolute;bottom:calc(100% + 2px);left:50%;
  transform:translateX(-50%);
  border:6px solid transparent;border-top-color:#0a0a0a;
  z-index:1001;pointer-events:none;
}
/* Garante que fin-card não corte o tooltip */
.fin-card{overflow:visible !important}

/* ── Dashboard: cards por grupo (PIX Hoje, Boletos a Receber) ────── */
.dash-group-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:12px;margin-bottom:18px;
}
.dash-group-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px 16px;
  transition:border-color .15s ease, transform .15s ease;
}
.dash-group-card:hover{border-color:rgba(255,255,255,.12)}
.dash-group-card-title{
  font-size:11px;text-transform:uppercase;letter-spacing:.7px;
  color:var(--muted);font-weight:700;margin-bottom:10px;
  padding-bottom:8px;border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.06));
}
.dash-group-card-rows{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.dash-group-card-rows-4{grid-template-columns:repeat(4, 1fr)}
.dash-group-card-row{
  position:relative;padding-left:8px;
  border-left:2px solid var(--border);
}
.dash-group-card-row.green{border-left-color:var(--green)}
.dash-group-card-row.yellow{border-left-color:var(--yellow,#eab308)}
.dash-group-card-row.red{border-left-color:var(--red)}
.dash-group-card-row.orange{border-left-color:var(--orange,#f97316)}
.dash-group-card-row-label{
  font-size:10px;text-transform:uppercase;letter-spacing:.4px;
  color:var(--muted);font-weight:600;margin-bottom:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dash-group-card-row-val{
  font-family:var(--font-data);font-size:18px;font-weight:700;
  font-variant-numeric:tabular-nums;letter-spacing:-.3px;line-height:1.15;
}
.dash-group-card-row.green .dash-group-card-row-val{color:var(--green)}
.dash-group-card-row.yellow .dash-group-card-row-val{color:var(--yellow,#eab308)}
.dash-group-card-row.red .dash-group-card-row-val{color:var(--red)}
.dash-group-card-row.orange .dash-group-card-row-val{color:var(--orange,#f97316)}
.dash-group-card-row-sub{font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:600px){
  .dash-group-cards{grid-template-columns:1fr;gap:10px}
  .dash-group-card-rows-4{grid-template-columns:repeat(2,1fr)}
  .dash-group-card-row-val{font-size:16px}
}

/* Toggle inline ao lado de section-title (ex: Inadimplência) */
.dash-toggle-inline{
  display:inline-flex;align-items:center;gap:6px;
  font-size:11px;font-weight:500;color:var(--muted);
  cursor:pointer;user-select:none;
  text-transform:none;letter-spacing:0;
  padding:4px 9px;border-radius:5px;
  background:var(--surface, rgba(255,255,255,.04));
  border:1px solid var(--border-subtle, rgba(255,255,255,.06));
  transition:border-color .15s ease, color .15s ease;
}
.dash-toggle-inline:hover{border-color:var(--border);color:var(--text)}
.dash-toggle-inline input[type=checkbox]{
  width:13px;height:13px;cursor:pointer;margin:0;accent-color:var(--primary);
}

/* ── Dashboard: Resumo das Contas (grid de mini-cards, escala p/ 20+ contas) ── */
.dash-hero{
  background:linear-gradient(135deg, var(--primary-surface,#1a2540), var(--card));
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px 20px;margin-bottom:14px;
  position:relative;overflow:hidden;
}
.dash-hero-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.dash-hero-left{flex:1;min-width:0}
.dash-hero-label{
  font-size:10px;text-transform:uppercase;color:var(--muted);
  letter-spacing:.7px;font-weight:600;margin-bottom:4px;
}
.dash-hero-value{
  font-family:var(--font-data);font-size:30px;font-weight:700;
  font-variant-numeric:tabular-nums;letter-spacing:-.5px;
  line-height:1.1;
}
.dash-hero-right{text-align:right;font-family:var(--font-data);font-variant-numeric:tabular-nums}
.dash-hero-detail-label{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.6px;font-weight:600}
.dash-hero-detail-value{font-size:16px;font-weight:600;color:var(--text);margin-top:2px}

/* Header de grupo: rótulo (tag) + subtotal destacado */
.dash-group-section{margin-bottom:16px}
.dash-group-section:last-child{margin-bottom:8px}
.dash-group-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;margin:0 0 10px;padding:0 2px 8px;
  border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.07));
  flex-wrap:wrap;
}
.dash-group-header-label{
  font-size:11px;text-transform:uppercase;letter-spacing:.8px;
  color:var(--muted);font-weight:700;
  padding:3px 9px;border-radius:4px;
  background:var(--surface, rgba(255,255,255,.04));
  border:1px solid var(--border-subtle, rgba(255,255,255,.06));
}
.dash-group-header-sub{
  font-size:13px;color:var(--text);
  font-family:var(--font-data);font-variant-numeric:tabular-nums;
  display:flex;align-items:baseline;gap:8px;
}
.dash-group-header-sub-label{
  font-size:10px;text-transform:uppercase;letter-spacing:.6px;
  color:var(--muted);font-weight:600;font-family:inherit;
}
.dash-group-header-sub strong{
  font-weight:700;font-size:17px;letter-spacing:-.3px;
}
.dash-group-header-sub .muted{color:var(--muted);font-size:12px;font-weight:500}

/* Grid denso de mini-cards: auto-fill com 180px mínimo (nomes legíveis) */
.dash-mini-cards{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:10px;
}
.dash-mini-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius-sm, 8px);
  padding:12px 14px;
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
  position:relative;
  min-height:84px;
  display:flex;flex-direction:column;
}
.dash-mini-card:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.14);
  box-shadow:0 4px 10px rgba(0,0,0,.18);
}
.dash-mini-head{display:flex;align-items:flex-start;gap:7px;margin-bottom:6px}
.dash-mini-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;border-radius:4px;
  flex-shrink:0;overflow:hidden;margin-top:1px;
}
.dash-mini-icon img{width:100%;height:100%;object-fit:contain}
.dash-mini-name{
  font-size:12px;font-weight:700;color:var(--text);
  letter-spacing:.1px;line-height:1.25;
  flex:1;min-width:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;word-break:break-word;
}
.dash-mini-status{flex-shrink:0;display:inline-flex;align-items:center;margin-top:4px}
.dash-mini-status .status-dot{width:8px;height:8px}
.dash-mini-saldo{
  font-family:var(--font-data);font-size:19px;font-weight:700;
  font-variant-numeric:tabular-nums;letter-spacing:-.3px;line-height:1.15;
  margin-top:auto;
}
.dash-mini-meta{
  font-size:10px;color:var(--muted);margin-top:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dash-mini-limite{
  font-size:10px;color:var(--muted);margin-top:2px;
  font-family:var(--font-data);font-variant-numeric:tabular-nums;
  opacity:.85;cursor:help;
}

/* Animação ao entrar */
.tab-panel.active .dash-hero{animation:slideUp .3s var(--ease-out, ease) both}
.tab-panel.active .dash-group-section{animation:slideUp .3s var(--ease-out, ease) both}
.tab-panel.active .dash-group-section:nth-child(2){animation-delay:60ms}
.tab-panel.active .dash-group-section:nth-child(3){animation-delay:120ms}

/* Responsivo */
@media (max-width:900px){
  .dash-mini-cards{grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));gap:8px}
  .dash-hero-value{font-size:26px}
}
@media (max-width:600px){
  .dash-hero{padding:12px 14px}
  .dash-hero-value{font-size:22px}
  .dash-hero-detail-value{font-size:13px}
  .dash-mini-cards{grid-template-columns:repeat(2,1fr);gap:8px}
  .dash-mini-card{padding:10px 12px;min-height:70px}
  .dash-mini-saldo{font-size:16px}
  .dash-mini-name{font-size:10px}
}
@media (max-width:380px){
  .dash-mini-cards{grid-template-columns:1fr}
}

/* ── Documentos Fiscais (filtros chips) ───────────────────────── */
.fiscais-filters .fi-grupo { font-size: 11px }
.fi-chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 9px; border-radius: 12px;
  background: var(--muted);
  color: white; font-size: 11px; font-weight: 600;
  cursor: pointer; user-select: none;
  opacity: .45; transition: opacity .15s ease;
  white-space: nowrap;
}
.fi-chip:has(input:checked) { opacity: 1 }
.fi-chip:hover { opacity: .85 }
.fi-chip:has(input:checked):hover { opacity: 1 }

/* Linhas de documento fiscal */
.fiscais-row[data-dup="0"] {
  background: rgba(6, 182, 212, 0.04);
  border-left: 3px solid #06b6d4;
}
.fiscais-row[data-cancelada="1"] {
  opacity: .55;
  text-decoration: line-through;
}
.tipo-badge {
  display: inline-block; padding: 2px 7px; border-radius: 4px;
  color: white; font-size: 10px; font-weight: 700;
  letter-spacing: .3px; min-width: 38px; text-align: center;
}
.tipo-badge.nfe { background: #8b5cf6 }
.tipo-badge.nfse { background: #0ea5e9 }
.tipo-badge.cte { background: #10b981 }

/* SEFAZ NFe topo CP */
#cpSefazNfeBar .sefaz-emp-mini {
  padding: 2px 6px; border-radius: 4px;
  font-size: 10px; font-weight: 600;
  background: rgba(255,255,255,.08); color: #cbd5e1;
  white-space: nowrap;
}
#cpSefazNfeBar .sefaz-emp-mini.bloqueado { background: #ef4444; color: white }
#cpSefazNfeBar .sefaz-emp-mini.cert-missing { background: #f59e0b; color: white }
