:root,[data-theme="light"]{
  --font-body:'Satoshi','Inter',sans-serif;
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --color-bg:#f3f4f6;--color-surface:#ffffff;--color-surface-2:#f9fafb;
  --color-surface-offset:#f9fafb;--color-surface-dynamic:#f3f4f6;
  --color-divider:#e5e7eb;--color-border:#e5e7eb;
  --color-text:#111827;--color-text-muted:#6b7280;--color-text-faint:#9ca3af;
  --color-text-inverse:#ffffff;
  --color-primary:#0d9488;--color-primary-hover:#0f766e;--color-primary-highlight:#ccfbf1;
  --color-success:#10b981;--color-success-hover:#059669;--color-success-highlight:#d1fae5;
  --color-error:#ef4444;--color-error-hover:#dc2626;--color-error-highlight:#fee2e2;
  --color-warning:#f59e0b;--color-warning-highlight:#fef3c7;
  --color-orange:#f97316;--color-orange-highlight:#ffedd5;
  --color-accent:#8b5cf6;--color-accent-highlight:#ede9fe;
  --radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:9999px;
  --transition-interactive:300ms cubic-bezier(.4,0,.2,1);
  --shadow-sm:0 1px 2px rgba(0,0,0,0.04), 0 2px 4px rgba(0,0,0,0.04);
  --shadow-md:0 4px 6px rgba(0,0,0,0.03), 0 8px 16px rgba(0,0,0,0.04);
  --shadow-lg:0 10px 15px rgba(0,0,0,0.03), 0 20px 40px rgba(0,0,0,0.04);
  --sidebar-width:240px;--sidebar-width-collapsed:72px;--header-height:64px;
}
[data-theme="dark"]{
  --color-bg:#0f1115;--color-surface:#181b21;--color-surface-2:#1f232b;
  --color-surface-offset:#1f232b;--color-surface-dynamic:#282d38;
  --color-divider:#282d38;--color-border:#282d38;
  --color-text:#f3f4f6;--color-text-muted:#9ca3af;--color-text-faint:#6b7280;
  --color-text-inverse:#111827;
  --color-primary:#14b8a6;--color-primary-hover:#2dd4bf;--color-primary-highlight:rgba(20,184,166,0.15);
  --color-success:#34d399;--color-success-hover:#6ee7b7;--color-success-highlight:rgba(52,211,153,0.15);
  --color-error:#f87171;--color-error-hover:#fca5a5;--color-error-highlight:rgba(248,113,113,0.15);
  --color-warning:#fbbf24;--color-warning-highlight:rgba(251,191,36,0.15);
  --color-orange:#fb923c;--color-orange-highlight:rgba(251,146,60,0.15);
  --color-accent:#a78bfa;--color-accent-highlight:rgba(167,139,250,0.15);
  --shadow-sm:0 1px 2px rgba(0,0,0,0.3);
  --shadow-md:0 4px 6px rgba(0,0,0,0.4), 0 8px 16px rgba(0,0,0,0.4);
  --shadow-lg:0 10px 15px rgba(0,0,0,0.4), 0 20px 40px rgba(0,0,0,0.5);
}
@media(prefers-color-scheme:dark){:root:not([data-theme]){
  --color-bg:#0f1115;--color-surface:#181b21;--color-surface-2:#1f232b;
  --color-surface-offset:#1f232b;--color-surface-dynamic:#282d38;--color-divider:#282d38;--color-border:#282d38;
  --color-text:#f3f4f6;--color-text-muted:#9ca3af;--color-text-faint:#6b7280;
  --color-text-inverse:#111827;
  --color-primary:#14b8a6;--color-primary-hover:#2dd4bf;--color-primary-highlight:rgba(20,184,166,0.15);
  --color-success:#34d399;--color-success-hover:#6ee7b7;--color-success-highlight:rgba(52,211,153,0.15);
  --color-error:#f87171;--color-error-hover:#fca5a5;--color-error-highlight:rgba(248,113,113,0.15);
  --color-warning:#fbbf24;--color-warning-highlight:rgba(251,191,36,0.15);
  --color-orange:#fb923c;--color-orange-highlight:rgba(251,146,60,0.15);
  --color-accent:#a78bfa;--color-accent-highlight:rgba(167,139,250,0.15);
  --shadow-sm:0 1px 2px rgba(0,0,0,0.3);
  --shadow-md:0 4px 6px rgba(0,0,0,0.4), 0 8px 16px rgba(0,0,0,0.4);
  --shadow-lg:0 10px 15px rgba(0,0,0,0.4), 0 20px 40px rgba(0,0,0,0.5);
}}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;height:100%;overflow:hidden;}
body{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg);height:100dvh;overflow:hidden;}
img,svg{display:block;max-width:100%;}
input,button,textarea,select{font:inherit;color:inherit;}
button{cursor:pointer;background:none;border:none;}
a,button,[role="button"]{transition:color var(--transition-interactive),background var(--transition-interactive),border-color var(--transition-interactive),box-shadow var(--transition-interactive);}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm);}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full);}
.app{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:auto 1fr;height:100dvh;transition:grid-template-columns var(--transition-interactive);}
.app.sidebar-collapsed{grid-template-columns:var(--sidebar-width-collapsed) 1fr;}
.sidebar{grid-row:1/-1;background:linear-gradient(180deg,var(--color-surface) 0%,var(--color-surface-offset) 100%);border-right:1px solid var(--color-border);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;transition:width var(--transition-interactive);}
.sidebar-logo{padding:calc(var(--space-4) + env(safe-area-inset-top, 0px)) var(--space-4) var(--space-4) max(var(--space-4), env(safe-area-inset-left, 0px));display:flex;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-border);min-height:calc(var(--header-height) + env(safe-area-inset-top, 0px));white-space:nowrap;overflow:hidden;}
.logo-text{font-size:var(--text-base);font-weight:700;color:var(--color-primary);letter-spacing:-.02em;transition:opacity var(--transition-interactive);}
.sidebar-nav{padding:var(--space-3) var(--space-2) var(--space-3) max(var(--space-2), env(safe-area-inset-left, 0px));flex:1;display:flex;flex-direction:column;gap:2px;}
.nav-section-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-3) var(--space-2) var(--space-1);white-space:nowrap;overflow:hidden;transition:opacity var(--transition-interactive);}
.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;overflow:hidden;text-decoration:none;transition:all var(--transition-interactive);}
.nav-item:hover{background:var(--color-surface-offset);color:var(--color-text);transform:translateX(2px);}
.nav-item.active{background:var(--color-primary-highlight);color:var(--color-primary);font-weight:600;}
.nav-item svg{flex-shrink:0;width:18px;height:18px;}
.sidebar-footer{padding:var(--space-3) max(var(--space-2), env(safe-area-inset-left, 0px)) calc(var(--space-3) + env(safe-area-inset-bottom, 0px)) max(var(--space-2), env(safe-area-inset-left, 0px));border-top:1px solid var(--color-border);}
.sidebar-toggle{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted);}
.sidebar-toggle:hover{background:var(--color-surface-offset);color:var(--color-text);}
.sidebar.collapsed .logo-text,.sidebar.collapsed .nav-section-label,.sidebar.collapsed .nav-item span,.sidebar.collapsed .sidebar-toggle span{opacity:0;pointer-events:none;width:0;overflow:hidden;}
.sidebar.collapsed .sidebar-logo{padding:var(--space-4) var(--space-2);justify-content:center;}
.sidebar.collapsed .nav-item{justify-content:center;padding:var(--space-2);}
.sidebar.collapsed .sidebar-toggle{justify-content:center;}
.sidebar.collapsed .nav-section-label{height:0;padding:0;overflow:hidden;}
.header{grid-column:2;background:var(--color-surface);border-bottom:1px solid var(--color-border);height:calc(var(--header-height) + env(safe-area-inset-top, 0px));display:flex;align-items:center;gap:var(--space-4);padding:env(safe-area-inset-top, 0px) max(var(--space-6), env(safe-area-inset-right, 0px)) 0 max(var(--space-6), env(safe-area-inset-left, 0px));position:sticky;top:0;z-index:10;}
.header-title{font-size:var(--text-base);font-weight:600;color:var(--color-text);flex:1;}
.header-actions{display:flex;align-items:center;gap:var(--space-2);}
.btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-muted);}
.btn-icon:hover{background:var(--color-surface-offset);color:var(--color-text);}
.avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-text-inverse);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;flex-shrink:0;}
.month-selector{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);background:var(--color-surface);cursor:pointer;color:var(--color-text);}
.month-selector:hover{background:var(--color-surface-offset);}
.main{grid-column:2;overflow-y:auto;overscroll-behavior:contain;background:var(--color-bg);padding:var(--space-6) max(var(--space-6), env(safe-area-inset-right, 0px)) max(var(--space-6), env(safe-area-inset-bottom, 0px)) max(var(--space-6), env(safe-area-inset-left, 0px));}
.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-interactive);}
.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff;border:none;}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px oklch(from var(--color-primary) l c h / 0.35);}
.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);}.btn-secondary:hover{background:var(--color-surface-offset);border-color:var(--color-primary);}
.btn-ghost{background:transparent;color:var(--color-text-muted);}.btn-ghost:hover{background:var(--color-surface-offset);color:var(--color-primary);}
.btn-danger{background:linear-gradient(135deg,var(--color-error),var(--color-error-hover));color:#fff;border:none;}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 4px 12px oklch(from var(--color-error) l c h / 0.35);}
.btn svg{width:16px;height:16px;}
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:transform var(--transition-interactive),box-shadow var(--transition-interactive);}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);}
.card-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text);}
.card-subtitle{font-size:var(--text-xs);color:var(--color-text-muted);}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4);margin-bottom:var(--space-6);}
.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm);transition:transform var(--transition-interactive),box-shadow var(--transition-interactive);}
.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.kpi-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2);}
.kpi-value{font-size:var(--text-xl);font-weight:700;font-variant-numeric:tabular-nums lining-nums;color:var(--color-text);line-height:1.1;}
.kpi-value.positive{color:var(--color-success);}.kpi-value.negative{color:var(--color-error);}
.kpi-meta{display:flex;align-items:center;gap:var(--space-1);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);}
.kpi-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3);}
.kpi-icon.teal{background:var(--color-primary-highlight);}.kpi-icon.green{background:var(--color-success-highlight);}
.kpi-icon.red{background:var(--color-error-highlight);}.kpi-icon.orange{background:var(--color-orange-highlight);}
.kpi-icon svg{width:18px;height:18px;}
.kpi-icon.teal svg{color:var(--color-primary);}.kpi-icon.green svg{color:var(--color-success);}
.kpi-icon.red svg{color:var(--color-error);}.kpi-icon.orange svg{color:var(--color-orange);}
.charts-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4);margin-bottom:var(--space-6);}
@media(max-width:900px){.charts-grid{grid-template-columns:1fr;}}
.chart-container{position:relative;height:240px;}
.table-wrapper{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:var(--text-sm);}
thead th{padding:var(--space-3) var(--space-4);background:var(--color-surface-offset);text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);white-space:nowrap;}
tbody td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-divider);color:var(--color-text);font-variant-numeric:tabular-nums;vertical-align:middle;}
tbody tr:hover td{background:var(--color-surface-offset);}
tbody tr:last-child td{border-bottom:none;}
.amount-positive{color:var(--color-success);font-weight:600;}.amount-negative{color:var(--color-error);font-weight:600;}
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;white-space:nowrap;}
.badge-success{background:var(--color-success-highlight);color:var(--color-success);}
.badge-error{background:var(--color-error-highlight);color:var(--color-error);}
.badge-warning{background:var(--color-warning-highlight);color:var(--color-warning);}
.badge-muted{background:var(--color-surface-offset);color:var(--color-text-muted);}
.badge-primary{background:var(--color-primary-highlight);color:var(--color-primary);}
.form-group{margin-bottom:var(--space-4);}
.form-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2);}
.form-label span{color:var(--color-error);margin-left:2px;}
.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);transition:border-color var(--transition-interactive),box-shadow var(--transition-interactive);}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px oklch(from var(--color-primary) l c h/.15);}
.form-input::placeholder{color:var(--color-text-faint);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);}
.modal-overlay{position:fixed;inset:0;background:oklch(0 0 0/.6);display:flex;align-items:center;justify-content:center;z-index:100;padding:max(var(--space-4), env(safe-area-inset-top, 0px)) max(var(--space-4), env(safe-area-inset-right, 0px)) max(var(--space-4), env(safe-area-inset-bottom, 0px)) max(var(--space-4), env(safe-area-inset-left, 0px));opacity:0;pointer-events:none;transition:opacity var(--transition-interactive);backdrop-filter:blur(4px);}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-6);width:100%;max-width:520px;max-height:90dvh;overflow-y:auto;transform:translateY(16px) scale(.97);transition:transform var(--transition-interactive),box-shadow var(--transition-interactive);border:1px solid var(--color-border);}
.modal-overlay.open .modal{transform:none;}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5);}
.modal-title{font-size:var(--text-base);font-weight:700;color:var(--color-text);}
.modal-footer{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);}
.page{display:none;}.page.active{display:block;}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);}
.page-title{font-size:var(--text-lg);font-weight:700;color:var(--color-text);}
.filters{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-4);}
.filter-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);min-width:180px;}
.filter-input:focus{outline:none;border-color:var(--color-primary);}
.filter-select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;}
.tabs{display:flex;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-5);}
.tab-btn{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;border-radius:0;transition:color var(--transition-interactive),border-color var(--transition-interactive);}
.tab-btn:hover{color:var(--color-text);}
.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary);}
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-16) var(--space-8);color:var(--color-text-muted);}
.empty-state-icon{width:48px;height:48px;margin-bottom:var(--space-4);color:var(--color-text-faint);}
.empty-state h3{font-size:var(--text-base);font-weight:600;color:var(--color-text);margin-bottom:var(--space-2);}
.empty-state p{max-width:36ch;margin-bottom:var(--space-5);font-size:var(--text-sm);}
.toast-container{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:999;display:flex;flex-direction:column;gap:var(--space-3);}
.toast{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:500;min-width:280px;max-width:360px;animation:slideInToast .3s cubic-bezier(.4,0,.2,1);border-left:3px solid;}
.toast.success{border-left-color:var(--color-success);}.toast.error{border-left-color:var(--color-error);}.toast.info{border-left-color:var(--color-primary);}
.toast.success .toast-icon{color:var(--color-success);}.toast.error .toast-icon{color:var(--color-error);}.toast.info .toast-icon{color:var(--color-primary);}
@keyframes slideInToast{from{transform:translateX(100%);opacity:0;}to{transform:none;opacity:1;}}
.type-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-4);}
.type-toggle-btn{flex:1;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:500;background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;text-align:center;transition:all var(--transition-interactive);}
.type-toggle-btn.active.receita{background:var(--color-success);color:#fff;}
.type-toggle-btn.active.despesa{background:var(--color-error);color:#fff;}
.type-toggle-btn.active.pagar{background:var(--color-error);color:#fff;}
.type-toggle-btn.active.receber{background:var(--color-success);color:#fff;}
.type-toggle-btn.active.transferencia{background:var(--color-primary);color:#fff;}
.type-toggle-btn.active.unico, .type-toggle-btn.active.parcelado, .type-toggle-btn.active.fixo {background:var(--color-primary);color:#fff;}
.cat-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;}
.action-btns{display:flex;gap:var(--space-1);}
.action-btn{width:30px;height:30px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);}
.action-btn:hover{background:var(--color-surface-offset);color:var(--color-text);}
.bulk-actions-bar {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-surface);
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius-lg);
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  gap: 1.5rem;
  z-index: 1000;
  border: 1px solid var(--color-border);
  animation: bulkSlideUp 0.3s ease forwards;
}
@keyframes bulkSlideUp { from { transform: translate(-50%, 100%); opacity:0; } to { transform: translate(-50%, 0); opacity:1; } }
.bulk-info { display: flex; flex-direction: column; gap: 0.125rem; }
.bulk-count { font-size: var(--text-sm); font-weight: 600; color: var(--color-primary); white-space: nowrap; }
.bulk-total { font-size: 0.75rem; font-weight: 600; white-space: nowrap; }
.checkbox-col { width: 40px; text-align: center; }
.row-checkbox { width: 18px; height: 18px; cursor: pointer; accent-color: var(--color-primary); vertical-align: middle; }
.action-btn svg{width:14px;height:14px;}

.bulk-btn {
    display: flex; align-items: center; gap: 6px;
    background: transparent; border: none; color: var(--color-text);
    font-size: var(--text-sm); font-weight: 500; cursor: pointer;
    padding: 6px 10px; border-radius: var(--radius-md); transition: background 0.15s;
}
.bulk-btn:hover { background: var(--color-surface-offset); }
.bulk-btn.danger { color: var(--color-error); }
.bulk-btn.danger:hover { background: var(--color-error-highlight); }
.bulk-close {
    background: transparent; border: none; color: var(--color-text-faint); cursor: pointer;
    padding: 4px; display: flex; align-items: center; justify-content: center;
    border-radius: 50%; margin-left: 8px; transition: all 0.15s;
}
.bulk-close:hover { background: var(--color-surface-offset); color: var(--color-text); }
/* loading skeleton */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.skeleton{background:linear-gradient(90deg,var(--color-surface-offset) 25%,var(--color-surface-dynamic) 50%,var(--color-surface-offset) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm);}
.skeleton-row td{padding:var(--space-3) var(--space-4);}
.sk{display:inline-block;height:14px;border-radius:var(--radius-sm);}
.cartao-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(110px, 1fr));gap:var(--space-3);margin-bottom:var(--space-3);}
.cartao-proj-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(100px, 1fr));gap:var(--space-2);}
.mobile-menu-btn { display: none; }
@media(max-width:768px){.app{grid-template-columns:0 1fr;}.sidebar{position:fixed;left:-220px;z-index:50;height:100dvh;transition:left var(--transition-interactive);width:var(--sidebar-width);}.sidebar.mobile-open{left:0;box-shadow:var(--shadow-lg);}.main{padding:var(--space-4) max(var(--space-4), env(safe-area-inset-right, 0px)) max(var(--space-4), env(safe-area-inset-bottom, 0px)) max(var(--space-4), env(safe-area-inset-left, 0px));}.kpi-grid{grid-template-columns:1fr 1fr;}.charts-grid{grid-template-columns:1fr;}.form-row{grid-template-columns:1fr;}.cartao-kpi-grid{grid-template-columns:1fr;}.cartao-proj-grid{grid-template-columns:1fr;} .mobile-menu-btn { display: flex !important; }}
tfoot td{border-top:2px solid var(--color-border);padding:var(--space-3) var(--space-4);background:var(--color-surface-offset);}
tfoot tr:hover td{background:var(--color-surface-offset) !important;}
.banco-combobox{position:relative;}
.banco-combobox-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:999;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:240px;overflow-y:auto;}
.banco-combobox-item{padding:.55rem var(--space-3);font-size:var(--text-sm);cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--color-divider);}
.banco-combobox-item:last-child{border-bottom:none;}
.banco-combobox-item:hover{background:var(--color-surface-offset);}
.banco-combobox-item.selected{background:var(--color-primary-muted, rgba(1,105,111,.12));color:var(--color-primary);font-weight:600;}
.banco-combobox-empty{color:var(--color-text-muted);font-style:italic;cursor:default;}
/* ESTILOS DE LOGIN ESPECÍFICOS */
.login-container{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-bg);position:relative;overflow:hidden;}
.login-card{width:100%;max-width:420px;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-8) var(--space-6);position:relative;z-index:10;border:1px solid var(--color-border);}
.login-logo{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-8);}
.login-logo svg{width:32px;height:32px;}
.login-logo span{font-size:1.5rem;font-weight:700;color:var(--color-primary);letter-spacing:-.02em;}
.login-title{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2);text-align:center;}
.login-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-8);text-align:center;}
.login-btn{width:100%;justify-content:center;padding:var(--space-3);font-size:var(--text-base);margin-top:var(--space-2);}
.login-error{background:var(--color-error-highlight);color:var(--color-error);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-2);border:1px solid rgba(239,68,68,0.2);}
.logo-icon{width:40px;height:40px;border-radius:10px;background:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.logo-icon svg{width:22px;height:22px;}
.pass-wrap{position:relative;}
.pass-wrap input{padding-right:2.75rem;}
.pass-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:.25rem;display:flex;}
.pass-toggle:hover{color:var(--color-text);}

/* Autocomplete Dropdown */
.autocomplete-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--color-surface-offset);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-top: 4px;
    padding: 8px 0;
    list-style: none;
    max-height: 200px;
    overflow-y: auto;
    z-index: 1000;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -4px rgba(0, 0, 0, 0.5);
}
.autocomplete-dropdown li {
    padding: 8px 16px;
    color: var(--color-text);
    cursor: pointer;
    font-size: 0.9em;
    transition: background 0.2s;
}
.autocomplete-dropdown li:hover {
    background: var(--color-surface-hover);
}
.autocomplete-dropdown::-webkit-scrollbar {
    width: 6px;
}
.autocomplete-dropdown::-webkit-scrollbar-track {
    background: transparent;
}
.autocomplete-dropdown::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.1);
    border-radius: 3px;
}

