:root{--primary: #50652a;--primary-light: #6f8a3f;--primary-dark: #3c4d20;--primary-soft: #cfe99f;--primary-soft-2: #f8fff0;--accent: #f7bd48;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--info: #0ea5e9;--ink: #111827;--ink-soft: #374151;--bg: #f8f9fa;--bg-alt: #f1f3f0;--surface: #ffffff;--surface-2: #f8fff0;--text: #111827;--text-2: #6b7280;--text-3: #9ca3af;--border: #e5e7eb;--border-soft: #f3f4f5;--scrim: rgba(0, 0, 0, .6);--grad-primary: linear-gradient(135deg, #6f8a3f 0%, #50652a 100%);--grad-hero: linear-gradient(135deg, #f0f7e8 0%, #f8f9fa 50%, #fefce8 100%);--grad-success: linear-gradient(135deg, #10b981 0%, #16a34a 100%);--grad-warm: linear-gradient(135deg, #f7bd48 0%, #ef4444 100%);--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .08);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-primary: 0 6px 18px rgba(80, 101, 42, .28);--font: "Manrope", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--sidebar-w: 248px}[data-theme=dark]{--accent: #f7bd48;--success: #34d399;--warning: #fbbf24;--danger: #f87171;--info: #38bdf8;--bg: #0f140c;--bg-alt: #161c12;--surface: #1a2114;--surface-2: #222b18;--text: #f4f5f0;--text-2: #a3b08a;--text-3: #7c8a63;--border: #2c3520;--border-soft: #222b18;--scrim: rgba(17, 24, 39, .5);--primary: #7fae45;--primary-light: #9cc05f;--primary-dark: #cfe99f;--primary-soft: #2d3d1a;--primary-soft-2: #1c2414;--grad-primary: linear-gradient(135deg, #2d3d1a 0%, #7fae45 100%);--grad-hero: linear-gradient(135deg, #1a2114 0%, #0f140c 50%, #1c2414 100%);--grad-success: linear-gradient(135deg, #10b981 0%, #16a34a 100%);--grad-warm: linear-gradient(135deg, #f7bd48 0%, #ef4444 100%)}*{box-sizing:border-box;margin:0;padding:0}.mso{font-family:Material Symbols Outlined;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;font-size:22px;line-height:1;-webkit-user-select:none;user-select:none;display:inline-block;vertical-align:middle}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px 18px}.brand-mark{width:36px;height:36px;border-radius:10px;background:var(--grad-primary);display:grid;place-items:center;color:#fff;font-weight:900;font-size:16px}.brand-name{font-weight:900;letter-spacing:1px;font-size:18px}.brand-sub{font-size:10px;color:var(--text-3);letter-spacing:1px;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--radius-md);color:var(--text-2);font-weight:600;font-size:14px;transition:background .15s,color .15s}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary)}.nav-spacer{flex:1}.nav-ico{width:20px;height:20px;display:grid;place-items:center}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:68px;flex-shrink:0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:var(--bg);position:sticky;top:0;z-index:5}.topbar h1{font-size:22px;font-weight:800;letter-spacing:-.4px}.topbar .sub{font-size:12px;color:var(--text-3)}.content{padding:28px;max-width:1200px;width:100%;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-xs)}.card-pad{padding:20px}.card-cta{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;transition:transform .12s ease,box-shadow .12s ease}.card-cta:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.link{color:var(--primary);cursor:pointer;font-weight:600}.link:hover{text-decoration:underline}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.sidebar{display:none}.content{padding:16px}}.h{font-size:13px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.8px}.big{font-size:28px;font-weight:900;letter-spacing:-.5px}.muted{color:var(--text-2)}.row{display:flex;align-items:center;gap:10px}.row-between{display:flex;align-items:center;justify-content:space-between}.wrap{flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;padding:11px 18px;border-radius:var(--radius-md);font-weight:800;font-size:14px;transition:transform .08s,opacity .15s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--grad-primary);color:#fff;box-shadow:var(--shadow-primary)}.btn-ghost{background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:7px 12px;font-size:13px;border-radius:var(--radius-sm)}.field{margin-bottom:14px}.label{font-size:12px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;display:block}.input,.textarea,.select{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;font-size:15px;color:var(--text);transition:border .15s}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--primary)}.textarea{min-height:84px;resize:vertical}.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:700}.chip{padding:8px 14px;border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--surface-2);font-size:13px;font-weight:700;color:var(--text-2)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.bar{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.bar>span{display:block;height:100%;border-radius:999px;background:var(--grad-success)}.ring{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;position:relative}.ring-inner{width:116px;height:116px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center}.auth-wrap{min-height:100vh;display:grid;place-items:center;background:var(--grad-hero);padding:20px}.auth-card{width:380px;max-width:100%}.empty{text-align:center;padding:48px 20px;color:var(--text-2)}.error-box{display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--danger) 12%,var(--surface));border-radius:var(--radius-md);padding:12px 14px;color:var(--danger);font-size:13px;margin-top:10px}.list{display:flex;flex-direction:column;gap:10px}.list-item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;display:flex;gap:12px;align-items:center}.avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:800;background:var(--grad-primary);flex-shrink:0}.icon-badge{width:38px;height:38px;border-radius:10px;flex-shrink:0;display:grid;place-items:center;font-weight:800}.bubble{max-width:84%;padding:11px 14px;border-radius:18px;font-size:15px;line-height:1.4}.bubble-user{background:var(--grad-primary);color:#fff;border-bottom-right-radius:4px;margin-left:auto}.bubble-ai{background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-input-wrap{display:flex;gap:10px;padding:14px 0 0;align-items:flex-end}.switch{width:46px;height:26px;border-radius:999px;background:var(--border);position:relative;transition:background .2s}.switch.on{background:var(--primary)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .2s}.switch.on:after{left:23px}.table{display:flex;flex-direction:column;gap:2px}.table-row{display:flex;gap:12px;align-items:center;padding:12px 8px;border-bottom:1px solid var(--border);font-size:14px}.table-row:last-child{border-bottom:none}.upgrade-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-full);background:var(--grad-primary);color:#fff;font-weight:800;font-size:13px;border:none;cursor:pointer;box-shadow:var(--shadow-primary);transition:transform .08s,opacity .15s}.upgrade-badge:hover{opacity:.92}.upgrade-badge:active{transform:translateY(1px)}.upgrade-card{border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.upgrade-features{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column;gap:10px}.upgrade-features li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text)}.finance{display:flex;flex-direction:column;gap:16px}.fin-header{display:flex;flex-direction:column;gap:14px}.fin-title{font-size:30px;font-weight:800;letter-spacing:-.5px;color:var(--text)}.fin-budget{display:flex;align-items:center;gap:16px;padding:18px}.fin-budget-main{flex:1;min-width:0}.fin-budget-val{font-size:28px;font-weight:800;letter-spacing:-.5px;color:var(--text);margin-top:2px}.fin-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fin-stat{display:flex;flex-direction:column;gap:4px;padding:16px}.stat-ico{font-size:20px}.fin-stat-val{font-size:20px;font-weight:800;letter-spacing:-.3px}.hist-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:end}.hist-col{display:flex;flex-direction:column;align-items:center;gap:6px}.hist-track{width:100%;height:96px;display:flex;align-items:flex-end;justify-content:center}.hist-bar{width:70%;border-radius:6px 6px 2px 2px;transition:height .3s ease;min-height:4px}.hist-m{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text)}.hist-s{font-size:10px;color:var(--text-3)}.hist-legend{display:flex;gap:18px;justify-content:center;margin-top:14px;font-size:11px;color:var(--text-2)}.hist-legend span{display:inline-flex;align-items:center;gap:6px}.hist-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.cat-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.cat-row:last-child{margin-bottom:0}.cat-badge{border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.cat-body{flex:1;min-width:0}.fin-search{display:flex;align-items:center;gap:8px;margin:0 16px;padding:10px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full)}.fin-search-input{flex:1;border:none;background:none;outline:none;font-size:14px;color:var(--text);font-family:var(--font)}.chips{display:flex;gap:8px;padding:12px 16px 0;flex-wrap:wrap}.tx-list{margin-top:8px}.tx-item{display:flex;align-items:center;gap:12px;padding:12px 16px}.tx-acts{display:flex;gap:4px;margin-left:4px}.icon-btn{width:32px;height:32px;border-radius:10px;border:none;background:var(--surface-2);color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--border)}.icon-btn.danger:hover{background:var(--danger);color:#fff}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center;z-index:50}.sheet{width:100%;max-width:460px;background:var(--surface);border-radius:22px 22px 0 0;max-height:90vh;overflow-y:auto;padding-bottom:12px;animation:sheetUp .3s cubic-bezier(.34,1.4,.64,1)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--border);margin:8px auto}.seg{display:flex;gap:8px}.seg-btn{flex:1;padding:9px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);font-weight:700;font-size:13px;color:var(--text-2);cursor:pointer;font-family:var(--font)}.seg-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}
