:root{--bg: #0d1030;--bg-plane: #0a0c26;--card-bg: #161a45;--card-bg-alt: #1e2357;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text-primary: #ffffff;--text-secondary: #a3a9d6;--text-muted: #6f75a3;--gridline: rgba(255, 255, 255, .07);--baseline: rgba(255, 255, 255, .16);--accent-teal: #2dd4bf;--accent-teal-2: #0891b2;--accent-green: #34d399;--accent-green-2: #059669;--accent-orange: #fb923c;--accent-red: #f87171;--accent-purple: #a78bfa;--accent-purple-2: #7c3aed;--accent-pink: #f472b6;--accent-blue: #60a5fa;--accent-yellow: #facc15;--accent-slate: #8b90bb;--gradient-teal: linear-gradient(135deg, #2dd4bf, #0891b2);--gradient-orange: linear-gradient(135deg, #fb923c, #ef4444);--gradient-purple: linear-gradient(135deg, #a78bfa, #7c3aed);--gradient-green: linear-gradient(135deg, #34d399, #059669);--status-good: #34d399;--status-warning: #facc15;--status-critical: #f87171;--series-1: #2dd4bf;--series-2: #4ade80;--series-3: #fb923c;--series-4: #a78bfa;--series-5: #f472b6;--series-6: #60a5fa;--series-7: #facc15;--series-8: #8b90bb;--radius: 22px;--radius-sm: 14px;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);background-image:radial-gradient(circle at 15% 0%,#171b52 0%,transparent 45%),radial-gradient(circle at 85% 20%,#16204f 0%,transparent 40%);background-attachment:fixed;color:var(--text-primary);-webkit-font-smoothing:antialiased}button,input,select{font-family:inherit}a{color:var(--accent-teal)}.app-shell{min-height:100vh;display:flex}.sidebar{width:260px;flex-shrink:0;background:var(--bg-plane);border-right:1px solid var(--border);padding:22px 18px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{font-weight:800;font-size:20px;letter-spacing:.02em;background:var(--gradient-teal);-webkit-background-clip:text;background-clip:text;color:transparent;padding:0 4px}.main-column{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px;border-bottom:1px solid var(--border)}.topbar-links{display:flex;gap:4px;flex-wrap:wrap}.topbar-link{padding:9px 16px;border-radius:999px;color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:600}.topbar-link.active{background:var(--card-bg-alt);color:var(--text-primary)}.page{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:28px 28px 64px}.page-title{font-size:28px;font-weight:800;margin:0 0 4px}.page-subtitle{color:var(--text-secondary);margin:0 0 24px;font-size:15px}.entity-toggle{display:flex;gap:6px;background:var(--card-bg);border-radius:999px;padding:4px}.entity-btn{flex:1;border:none;background:transparent;color:var(--text-secondary);padding:9px 8px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer}.entity-btn.active{background:var(--gradient-teal);color:#06212a}.entity-btn.disconnected.active{background:var(--card-bg-alt);color:var(--text-muted);outline:1px dashed var(--border-strong)}.date-nav-modes{display:flex;flex-wrap:wrap;gap:6px;background:var(--card-bg);border-radius:var(--radius-sm);padding:4px}.date-nav-mode{flex:1 1 30%;border:none;background:transparent;color:var(--text-secondary);padding:7px 4px;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer}.date-nav-mode.active{background:var(--card-bg-alt);color:var(--text-primary)}.date-nav-year{display:flex;align-items:center;justify-content:space-between;color:var(--text-primary);font-weight:700;font-size:15px;padding:4px 2px}.date-nav-year button{background:var(--card-bg);border:1px solid var(--border);color:var(--text-secondary);width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:14px}.date-nav-list{display:flex;flex-direction:column;gap:3px;max-height:360px;overflow-y:auto}.date-nav-item{text-align:left;border:none;background:transparent;color:var(--text-secondary);padding:9px 12px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer}.date-nav-item:hover{background:var(--card-bg)}.date-nav-item.active{background:var(--gradient-teal);color:#06212a}.date-nav-custom{display:flex;flex-direction:column;gap:8px}.sidebar-section-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:22px}.card-title{font-size:15px;font-weight:700;margin:0 0 16px;color:var(--text-primary)}.card-accent-teal{border-top:3px solid var(--accent-teal)}.card-accent-green{border-top:3px solid var(--accent-green)}.card-accent-orange{border-top:3px solid var(--accent-orange)}.card-accent-purple{border-top:3px solid var(--accent-purple)}.icon-chip{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#06212a;margin-bottom:12px}.btn{border:1px solid var(--border);background:var(--card-bg-alt);color:var(--text-primary);padding:10px 18px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer}.btn:hover{border-color:var(--border-strong)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--gradient-teal);border:none;color:#06212a}.btn-primary:hover{filter:brightness(1.08)}.input,.select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;font-size:14px;background:var(--card-bg-alt);color:var(--text-primary)}.input::placeholder{color:var(--text-muted)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px}.stat-tile{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px}.stat-label{font-size:13px;color:var(--text-secondary);margin:0 0 8px;font-weight:600}.stat-value{font-size:clamp(28px,5vw,40px);font-weight:800;margin:0;line-height:1.1;color:var(--text-primary)}.stat-value.positive{color:var(--status-good)}.stat-value.negative{color:var(--status-critical)}.balance-card{background:var(--gradient-teal);border-radius:var(--radius);padding:26px 28px;margin-bottom:22px;color:#06212a}.balance-card .stat-label{color:#06212abf}.balance-card .stat-value{color:#06212a}.table-scroll{overflow-x:auto}table.data-table{width:100%;border-collapse:collapse;font-size:14px}table.data-table th{text-align:left;padding:10px 12px;color:var(--text-secondary);font-weight:700;border-bottom:1px solid var(--gridline);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}table.data-table td{padding:10px 12px;border-bottom:1px solid var(--gridline);vertical-align:middle;font-variant-numeric:tabular-nums;color:var(--text-primary)}table.data-table tr:last-child td{border-bottom:none}.filters-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;align-items:center}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;background:var(--card-bg-alt);color:var(--text-secondary);border:1px solid var(--border)}.badge.uncategorized{color:var(--status-critical);border-color:var(--status-critical)}.banner{border-radius:var(--radius-sm);padding:16px 20px;margin-bottom:20px;display:flex;gap:12px;align-items:flex-start;font-size:14px}.banner-critical{background:#f871711f;border:1px solid var(--status-critical);color:var(--text-primary)}.banner-icon{font-size:20px;line-height:1}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.empty-state-icon{font-size:32px;margin-bottom:10px}.empty-state-title{color:var(--text-primary);font-weight:700;font-size:16px;margin:0 0 6px}.donut-wrap{position:relative;cursor:pointer}.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.donut-center .value{font-size:26px;font-weight:800;color:var(--text-primary)}.donut-center .label{font-size:12px;color:var(--text-secondary);margin-top:2px}.donut-legend{display:flex;flex-direction:column;gap:8px;margin-top:12px}.donut-legend-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;padding:4px 0}.donut-legend-left{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.donut-legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-legend-value{color:var(--text-primary);font-weight:700;font-variant-numeric:tabular-nums}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#050614c7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.modal-panel{background:var(--card-bg);border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;max-width:980px;max-height:90vh;overflow-y:auto;padding:28px;display:grid;grid-template-columns:1.1fr 1fr;gap:28px}.modal-close{position:absolute;top:20px;right:20px;background:var(--card-bg-alt);border:1px solid var(--border);color:var(--text-primary);width:36px;height:36px;border-radius:999px;cursor:pointer;font-size:16px}.modal-detail-panel{background:var(--card-bg-alt);border-radius:var(--radius-sm);padding:20px;display:flex;flex-direction:column;gap:14px;min-height:260px}.modal-detail-title{font-size:18px;font-weight:800}.modal-detail-row{display:flex;justify-content:space-between;font-size:14px;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:10px}.modal-detail-row .value{color:var(--text-primary);font-weight:700}.trend-up{color:var(--status-good)}.trend-down{color:var(--status-critical)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:44px 36px;width:100%;max-width:380px}.login-card h1{font-size:24px;margin:0 0 6px;background:var(--gradient-teal);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}.login-card p{color:var(--text-secondary);font-size:14px;margin:0 0 24px}.login-card .input{width:100%;margin:8px 0 18px}.login-card .btn-primary{width:100%}.error-text{color:var(--status-critical);font-size:14px;margin-top:8px}@media (max-width: 960px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;flex-direction:row;flex-wrap:wrap}.modal-panel{grid-template-columns:1fr}}@media (max-width: 720px){.stat-row{grid-template-columns:1fr}.dashboard-donut-row{grid-template-columns:1fr!important}.page{padding:18px 16px 48px}.card{padding:18px}.topbar{padding:14px 16px}}
