:root{--bg-root:#09090b;--bg-primary:#0c0c0f;--bg-secondary:#131316;--bg-tertiary:#1a1a1f;--bg-quaternary:#222228;--bg-hover:#1e1e24;--bg-active:#26262d;--border-primary:#ffffff12;--border-secondary:#ffffff1f;--border-tertiary:#ffffff2e;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-tertiary:#71717a;--text-quaternary:#52525b;--accent:#10b981;--accent-hover:#059669;--accent-muted:#10b9811f;--accent-border:#10b98133;--success:#10b981;--success-muted:#10b9811a;--success-border:#10b9812e;--danger:#ef4444;--danger-muted:#ef44441a;--danger-border:#ef44442e;--warning:#f59e0b;--warning-muted:#f59e0b1a;--warning-border:#f59e0b2e;--info:#3b82f6;--info-muted:#3b82f61a;--info-border:#3b82f62e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--nav-width:240px;--nav-collapsed:64px;--header-height:56px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-xl:0 16px 64px #0009;--btn-primary-bg:#fafafa;--btn-primary-text:#09090b;--btn-primary-hover:#e4e4e7;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.45, 0, .55, 1);--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.3s}[data-theme=light]{--bg-root:#fcfaf8;--bg-primary:#fff;--bg-secondary:#f4f4f5;--bg-tertiary:#e4e4e7;--bg-quaternary:#d4d4d8;--bg-hover:#f0f0f2;--bg-active:#e8e8ec;--border-primary:#0000000f;--border-secondary:#0000001a;--border-tertiary:#00000029;--text-primary:#09090b;--text-secondary:#52525b;--text-tertiary:#71717a;--text-quaternary:#a1a1aa;--accent:#059669;--accent-hover:#047857;--accent-muted:#05966914;--accent-border:#0596692e;--success:#059669;--success-muted:#05966912;--success-border:#05966926;--danger:#dc2626;--danger-muted:#dc26260f;--danger-border:#dc262624;--warning:#d97706;--warning-muted:#d977060f;--warning-border:#d9770624;--info:#2563eb;--info-muted:#2563eb0f;--info-border:#2563eb24;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 32px #0000001a;--shadow-xl:0 16px 64px #0000001f;--btn-primary-bg:#09090b;--btn-primary-text:#fafafa;--btn-primary-hover:#27272a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%}body{background:var(--bg-root);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.006em;height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-weight:400;line-height:1.5;overflow:auto}h1,h2,h3{font-family:IBM Plex Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}#__next,main{height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-tertiary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}input,select,textarea,button{font-family:inherit;font-size:inherit}.mono{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-family:JetBrains Mono,SF Mono,Fira Code,monospace}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes slideIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.fade-up{animation:fadeUp .3s var(--ease-out) both}.fade-in{animation:.2s both fadeIn}.skeleton{background:linear-gradient(90deg, var(--bg-secondary) 25%, var(--bg-tertiary) 50%, var(--bg-secondary) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.8s infinite shimmer}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--nav-width);min-width:var(--nav-width);background:var(--bg-primary);border-right:1px solid var(--border-primary);height:100vh;transition:width var(--duration-slow) var(--ease-out), min-width var(--duration-slow) var(--ease-out);z-index:50;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar.collapsed{width:var(--nav-collapsed);min-width:var(--nav-collapsed)}.sidebar-logo{align-items:center;gap:var(--space-3);padding:0 var(--space-5);height:var(--header-height);border-bottom:1px solid var(--border-primary);flex-shrink:0;display:flex;overflow:hidden}.logo-mark,.logo-icon{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent), #047857);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;box-shadow:0 2px 8px #10b98140}.logo-text{color:var(--text-primary);letter-spacing:-.03em;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.sidebar-nav{padding:var(--space-3) var(--space-3);flex:1;overflow:hidden auto}.nav-label{color:var(--text-quaternary);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-3) var(--space-2) var(--space-1);white-space:nowrap;font-size:10px;font-weight:600}.nav-item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;color:var(--text-tertiary);text-align:left;transition:all var(--duration-fast) ease;white-space:nowrap;background:0 0;border:none;margin-bottom:2px;font-size:13.5px;font-weight:500;display:flex;position:relative;overflow:hidden}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-muted);color:var(--accent)}.nav-icon{opacity:.5;width:18px;height:18px;transition:opacity var(--duration-fast) ease;flex-shrink:0}.nav-item:hover .nav-icon{opacity:.8}.nav-item.active .nav-icon{opacity:1}.nav-item-label{text-overflow:ellipsis;flex:1;overflow:hidden}.sidebar-footer{padding:var(--space-3);border-top:1px solid var(--border-primary);gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.collapse-btn{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;color:var(--text-quaternary);transition:all var(--duration-fast) ease;background:0 0;border:none;font-size:13px;font-weight:500;display:flex}.collapse-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{height:var(--header-height);padding:0 var(--space-6);border-bottom:1px solid var(--border-primary);background:var(--bg-primary);justify-content:space-between;align-items:center;gap:var(--space-4);flex-shrink:0;display:flex}.topbar-left{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.topbar-breadcrumb{color:var(--text-quaternary);font-size:13px;font-weight:500}.topbar-sep{color:var(--text-quaternary);opacity:.5;font-size:14px}.topbar-page{color:var(--text-primary);font-size:13px;font-weight:600}.topbar-right{align-items:center;gap:var(--space-3);display:flex}.balance-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-2);border-radius:var(--radius-full);background:var(--bg-secondary);border:1px solid var(--border-primary);cursor:default;transition:border-color var(--duration-fast) ease;display:flex}.balance-chip:hover{border-color:var(--border-secondary)}.balance-chip-label{color:var(--text-quaternary);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.balance-chip-value{letter-spacing:-.02em;font-size:13px;font-weight:600}.balance-chip-value.positive{color:var(--success)}.balance-chip-value.negative{color:var(--danger)}.page-content{padding:var(--space-8) var(--space-8);flex:1;overflow-y:auto}.page-header{margin-bottom:var(--space-6)}.page-tag{align-items:center;gap:var(--space-1);color:var(--text-quaternary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-2);font-size:11px;font-weight:600;display:inline-flex}.page-title{color:var(--text-primary);letter-spacing:-.02em;font-family:IBM Plex Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:22px;font-weight:600;line-height:1.2}.page-subtitle{color:var(--text-tertiary);margin-top:var(--space-1);font-size:13px;font-weight:400}.card-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);position:relative;overflow:hidden}.card:hover{border-color:var(--border-secondary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card.no-hover{cursor:default}.card.no-hover:hover{box-shadow:none;transform:none}.card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card-label{color:var(--text-tertiary);letter-spacing:.01em;font-size:12px;font-weight:500}.card-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:28px;height:28px;display:flex}.card-icon.green{background:var(--success-muted);color:var(--success)}.card-icon.red{background:var(--danger-muted);color:var(--danger)}.card-icon.blue{background:var(--info-muted);color:var(--info)}.card-icon.amber{background:var(--warning-muted);color:var(--warning)}.card-value{letter-spacing:-.04em;font-size:24px;font-weight:700;line-height:1}.card-value.green{color:var(--success)}.card-value.red{color:var(--danger)}.card-value.blue{color:var(--info)}.card-value.amber{color:var(--warning)}.card-footer{color:var(--text-quaternary);margin-top:var(--space-2);font-size:12px;font-weight:400}.card-glow{filter:blur(40px);opacity:.08;pointer-events:none;border-radius:50%;width:100px;height:100px;position:absolute;top:-30px;right:-30px}.card-glow.green{background:var(--success)}.card-glow.red{background:var(--danger)}.card-glow.blue{background:var(--info)}.progress-section{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-6)}.progress-meta{color:var(--text-tertiary);margin-bottom:var(--space-3);justify-content:space-between;align-items:center;font-size:12px;font-weight:500;display:flex}.progress-track{border-radius:var(--radius-full);background:var(--bg-tertiary);height:3px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);height:100%;transition:width .8s var(--ease-out)}.section{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);margin-bottom:var(--space-6);overflow:hidden}.section-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;display:flex}.section-title{color:var(--text-primary);letter-spacing:-.01em;font-size:13px;font-weight:600}.table-head{padding:var(--space-2) var(--space-5);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);color:var(--text-quaternary);letter-spacing:.06em;text-transform:uppercase;gap:var(--space-3);font-size:11px;font-weight:600;display:grid}.table-row{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-primary);align-items:center;gap:var(--space-3);transition:background var(--duration-fast) ease;cursor:pointer;display:grid}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--bg-hover)}.table-footer{padding:var(--space-3) var(--space-5);background:var(--bg-secondary);border-top:1px solid var(--border-primary);align-items:center;gap:var(--space-3);color:var(--text-secondary);font-size:12px;font-weight:600;display:grid}.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-sm);white-space:nowrap;letter-spacing:.01em;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge.green{background:var(--success-muted);color:var(--success);border:1px solid var(--success-border)}.badge.red{background:var(--danger-muted);color:var(--danger);border:1px solid var(--danger-border)}.badge.amber{background:var(--warning-muted);color:var(--warning);border:1px solid var(--warning-border)}.badge.blue{background:var(--info-muted);color:var(--info);border:1px solid var(--info-border)}.badge.gray{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-primary)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) ease;white-space:nowrap;letter-spacing:-.01em;border:none;flex-shrink:0;font-size:13px;font-weight:500;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.btn-primary:hover{background:var(--btn-primary-hover)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-tertiary)}.btn-danger{background:var(--danger-muted);color:var(--danger);border:1px solid var(--danger-border)}.btn-danger:hover{background:#ef444429}.btn-sm{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:12px}.btn-icon{padding:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border-primary);cursor:pointer;color:var(--text-tertiary);transition:all var(--duration-fast) ease;background:0 0;justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-secondary)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.input{width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;-webkit-appearance:none;outline:none;font-size:13px}.input::placeholder{color:var(--text-quaternary)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.input-label{color:var(--text-tertiary);margin-bottom:var(--space-1);letter-spacing:.01em;font-size:12px;font-weight:500;display:block}.form-group{margin-bottom:var(--space-4)}.filter-row{gap:var(--space-1);flex-wrap:wrap;display:flex}.filter-pill{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border-primary);color:var(--text-tertiary);cursor:pointer;transition:all var(--duration-fast) ease;background:0 0;font-size:12px;font-weight:500}.filter-pill:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-secondary)}.filter-pill.active{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-bg)}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:9999;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#000000b8;justify-content:center;align-items:flex-start;padding:40px 16px;animation:.15s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--bg-primary);border:1px solid var(--border-secondary);border-radius:var(--radius-xl);width:100%;animation:slideIn .25s var(--ease-out);flex-direction:column;flex-shrink:0;display:flex;position:relative;box-shadow:0 24px 80px #0009,0 0 0 1px #ffffff0a}.modal form{display:contents}.modal-header{border-bottom:1px solid var(--border-primary);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.modal-title{color:var(--text-primary);letter-spacing:-.02em;font-size:15px;font-weight:600}.modal-subtitle{color:var(--text-tertiary);margin-top:1px;font-size:12px}.modal-body{padding:16px 20px}.modal-footer{border-top:1px solid var(--border-primary);justify-content:space-between;align-items:center;gap:var(--space-2);background:var(--bg-primary);border-radius:0 0 var(--radius-xl) var(--radius-xl);padding:12px 20px;display:flex}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-icon{width:40px;height:40px;margin:0 auto var(--space-4);color:var(--text-quaternary);opacity:.6}.empty-title{color:var(--text-secondary);margin-bottom:var(--space-1);font-size:14px;font-weight:600}.empty-desc{color:var(--text-quaternary);margin-bottom:var(--space-5);font-size:13px}.type-toggle{gap:var(--space-1);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-primary);grid-template-columns:1fr 1fr;padding:3px;display:grid}.type-toggle-btn{padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-tertiary);transition:all var(--duration-fast) ease;background:0 0;border:none;font-size:13px;font-weight:500}.type-toggle-btn.active-income{background:var(--success-muted);color:var(--success)}.type-toggle-btn.active-expense{background:var(--danger-muted);color:var(--danger)}.alert-error{padding:var(--space-3) var(--space-4);background:var(--danger-muted);border:1px solid var(--danger-border);border-radius:var(--radius-md);color:var(--danger);margin-bottom:var(--space-4);font-size:13px}.text-green{color:var(--success)}.text-red{color:var(--danger)}.text-blue{color:var(--info)}.text-amber{color:var(--warning)}.text-muted{color:var(--text-secondary)}.text-faint{color:var(--text-tertiary)}.green{--green:var(--success)}.red{--red:var(--danger)}.blue{--blue:var(--info)}.amber{--amber:var(--warning)}@media (max-width:768px){.sidebar{z-index:100;transition:transform var(--duration-slow) var(--ease-out);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);width:var(--nav-width)!important;min-width:var(--nav-width)!important}.sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 40px #00000080}.sidebar-overlay{display:block}.topbar{padding:0 var(--space-4);gap:var(--space-2)}.topbar-breadcrumb,.topbar-sep{display:none}.page-content{padding:var(--space-5) var(--space-4)}.card-grid{gap:var(--space-3);grid-template-columns:1fr}.balance-chip-label{display:none}.page-title{font-size:20px}.table-row,.table-footer{padding:var(--space-3)}.reports-metrics-grid{grid-template-columns:1fr 1fr!important}.reports-metrics-item{border-bottom:1px solid var(--border-primary);border-right:none!important}.reports-metrics-item:nth-child(2n){border-left:1px solid var(--border-primary)}.reports-metrics-item:nth-last-child(-n+2){border-bottom:none}.filter-row{justify-content:space-between;width:100%}.filter-pill{text-align:center;flex:1}}@media (min-width:769px){.sidebar-overlay,.mobile-menu-btn{display:none!important}}.sidebar-overlay{z-index:99;background:#00000080;display:none;position:fixed;inset:0}.steps{gap:var(--space-2);padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--border-primary);display:flex}.step-pill{padding:var(--space-1) var(--space-4);border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-fast) ease;background:var(--bg-secondary);color:var(--text-tertiary);border:none;font-size:12px;font-weight:500}.step-pill.active{background:var(--btn-primary-bg);color:var(--btn-primary-text);font-weight:600}.invoice-doc{color:#111;border-radius:var(--radius-md);padding:var(--space-8);background:#fff}.invoice-doc .inv-title{letter-spacing:-.04em;color:#111;font-size:28px;font-weight:800}.line-item-grid{gap:var(--space-2);grid-template-columns:2fr 70px 110px 110px 30px;align-items:center;display:grid}@media (max-width:520px){.line-item-grid{gap:var(--space-2);grid-template-columns:1fr 50px 90px 90px 24px}}@media print{@page{size:A4 portrait;margin:0}html,body{background:#fff!important;height:auto!important;margin:0!important;padding:15mm!important;overflow:visible!important}.app-shell{height:auto!important;display:block!important;overflow:visible!important}.sidebar,.topbar,.no-print{display:none!important}.main-content{width:100%!important;height:auto!important;display:block!important;overflow:visible!important}.page-content{height:auto!important;padding:0!important;overflow:visible!important}.modal-overlay{background:#fff;padding:0}.modal{box-shadow:none;border:none;border-radius:0}.invoice-doc{box-shadow:none}}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.4}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert()}select option{background:var(--bg-secondary);color:var(--text-primary)}
