:root{--bg:#000;--surface:#02090a;--surface-2:#061a1c;--surface-3:#0a2527;--fg:#fff;--muted:#a1a1aa;--meta:#8b8b95;--border:#1e2c31;--border-strong:#3f3f46;--accent:#36f4a4;--accent-on:#00140c;--warn:#eab308;--danger:#ef4444;--font-display:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-body:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--radius:12px;--radius-sm:8px;--pill:999px;--shadow:0 1px 0 #ffffff08 inset, 0 8px 26px #0000004d;--focus:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--fg);font-family:var(--font-body);font-feature-settings:"ss03" 1;margin:0;font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}button,select,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}svg{stroke-width:1.8px;display:block}::selection{background:var(--accent);color:var(--accent-on)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid var(--bg);border-radius:var(--pill)}:focus-visible{box-shadow:var(--focus);outline:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--fg);color:var(--bg);border-radius:var(--radius-sm);padding:10px 14px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.num,.amount,.metric strong,.asset-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.positive{color:var(--accent)!important}.negative{color:#f77!important}.warning{color:var(--warn)!important}.app-shell{grid-template-columns:232px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{z-index:20;background:var(--surface);border-right:1px solid var(--border);flex-direction:column;height:100vh;padding:24px 16px 20px;display:flex;position:sticky;top:0}.brand,.auth-logo{font:500 18px/1 var(--font-display);align-items:center;gap:12px;display:flex}.brand{height:48px;margin-bottom:20px;padding:0 12px}.brand-mark{background:var(--fg);width:40px;height:40px;color:var(--bg);border-radius:11px;flex:none;place-items:center;display:grid}.brand-mark svg{width:19px}.nav-group{gap:4px;display:grid}.nav-label{color:var(--muted);font:400 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:14px 12px 8px}.nav-item{border-radius:var(--radius-sm);min-height:44px;color:var(--muted);align-items:center;gap:12px;padding:0 12px;font-weight:500;transition:color .18s,background .18s;display:flex}.nav-item svg{flex:none;width:19px}.nav-item:hover,.nav-item[aria-current=page]{color:var(--fg);background:var(--surface-2)}.sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding-top:16px}.user-mini{grid-template-columns:38px minmax(0,1fr) 34px;align-items:center;gap:10px;display:grid}.avatar{border:1px solid var(--border);background:var(--surface-2);border-radius:50%;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.user-copy{min-width:0}.user-copy strong,.user-copy span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.user-copy span{color:var(--muted);margin-top:2px;font-size:11px}.logout-button{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.logout-button:hover{color:var(--fg);background:var(--surface-2)}.logout-button svg{width:17px}.main{min-width:0}.container{width:100%;max-width:1280px;margin-inline:auto}.content{padding:36px clamp(24px,4vw,64px) 96px}.bottom-nav{display:none}.screen-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px;display:flex}.screen-head h1{font:380 clamp(34px,5vw,54px)/1 var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:0}.screen-head p{max-width:64ch;color:var(--muted);margin:10px 0 0;font-size:13px}.head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.demo-note{color:var(--muted);align-items:center;gap:8px;margin-bottom:16px;font-size:11px;display:flex}.demo-note:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;box-shadow:0 0 16px #36f4a48c}.btn{border-radius:var(--pill);min-height:46px;font:500 15px/1.4 var(--font-display);cursor:pointer;justify-content:center;align-items:center;gap:9px;padding:10px 22px;transition:background .18s,color .18s,border-color .18s,transform .18s cubic-bezier(.2,.8,.2,1);display:inline-flex}.btn svg{width:18px}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.55;cursor:wait}.btn-primary{border:1px solid var(--fg);background:var(--fg);color:var(--bg)}.btn-primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-on)}.btn-ghost{border:1px solid var(--border-strong);color:var(--fg);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--fg);background:var(--surface-2)}.btn-danger{border:1px solid color-mix(in oklab,var(--danger),var(--border) 60%);color:#ff9090;background:0 0}.btn-block{width:100%}.text-link{min-height:44px;color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.text-link:hover{color:var(--fg);-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.icon-btn{border:1px solid var(--border-strong);background:var(--surface);width:44px;min-height:44px;color:var(--fg);cursor:pointer;border-radius:50%;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2)}.icon-btn svg{width:19px}.inline-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.select-wrap{position:relative}.select-wrap>svg{pointer-events:none;width:17px;position:absolute;top:50%;left:13px;transform:translateY(-50%)}select{appearance:none;border:1px solid var(--border-strong);border-radius:var(--pill);background:var(--surface);min-height:44px;color:var(--fg);cursor:pointer;padding:0 38px 0 40px}.select-wrap:after{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);pointer-events:none;width:6px;height:6px;position:absolute;top:18px;right:15px;transform:rotate(45deg)}.field>select{border-radius:var(--radius-sm);background:var(--surface-2);width:100%;min-height:48px;padding-left:14px}.field{color:#e4e4e7;gap:7px;font-size:12px;font-weight:600;display:grid}.field input,.field textarea,.input,.search input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;min-height:48px;color:var(--fg);caret-color:var(--accent);padding:12px 14px;font-weight:450}.field textarea{resize:vertical;min-height:88px}input::placeholder,textarea::placeholder{color:#9a9aa3}.field input:hover,.field textarea:hover,.input:hover{border-color:var(--muted)}.field input:focus,.field textarea:focus,.input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:0}.field small{color:var(--muted);font-weight:400}.field-error{color:#ff8b8b!important}.form-grid{gap:16px;display:grid}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-alert{border-radius:var(--radius-sm);background:color-mix(in oklab,var(--danger) 13%,var(--surface));color:#ffb1b1;padding:12px 14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.metric{flex-direction:column;justify-content:space-between;min-height:142px;padding:22px;display:flex}.metric-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:650}.metric strong{margin-top:12px;font-size:clamp(20px,2.3vw,29px);font-weight:500;line-height:1.05;display:block}.metric small{color:var(--muted);margin-top:14px;font-size:11px;display:block}.panel{padding:22px}.section-head{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;display:flex}.section-head h2{font:400 24px/1.15 var(--font-display);letter-spacing:-.01em;margin:0}.section-head p{color:var(--muted);margin:6px 0 0;font-size:11px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:16px;margin-bottom:16px;display:grid}.stack{gap:16px;display:grid}.segmented{border:1px solid var(--border);border-radius:var(--pill);background:var(--bg);width:fit-content;max-width:100%;padding:3px;display:flex;overflow-x:auto}.segmented button{border-radius:var(--pill);min-height:36px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:6px 13px}.segmented button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.status{border-radius:var(--pill);background:var(--surface-2);width:fit-content;min-height:26px;color:var(--muted);align-items:center;padding:4px 9px;font-size:10px;font-weight:650;display:inline-flex}.status.good{color:var(--accent);background:color-mix(in oklab,var(--accent) 9%,var(--surface))}.status.warn{color:var(--warn);background:color-mix(in oklab,var(--warn) 10%,var(--surface))}.status.danger{color:#ff8f8f;background:color-mix(in oklab,var(--danger) 12%,var(--surface))}.toolbar{grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:12px;margin-bottom:16px;padding:14px;display:grid}.search{position:relative}.search svg{z-index:1;width:18px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search input{padding-left:42px}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px}th{color:var(--meta);font:500 10px/1 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;text-align:left;padding:0 12px 12px}td{border-top:1px solid var(--border);color:#d4d4d8;vertical-align:middle;min-height:58px;padding:14px 12px}td:last-child,th:last-child{text-align:right}.cell-title,.cell-sub{display:block}.cell-title{color:var(--fg);font-weight:600}.cell-sub{color:var(--muted);margin-top:3px;font-size:10px}.row-actions{justify-content:flex-end;gap:4px;display:flex}.row-action{width:34px;min-height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:inline-grid}.row-action:hover{background:var(--surface-2);color:var(--fg)}.row-action svg{width:16px}.progress-list{gap:18px;display:grid}.progress-head{justify-content:space-between;gap:14px;margin-bottom:8px;font-size:12px;display:flex}.progress-head strong{font-family:var(--font-mono)}.track{border-radius:var(--pill);background:var(--border);height:7px;overflow:hidden}.track span{border-radius:inherit;background:var(--accent);max-width:100%;height:100%;display:block}.track.warn span{background:var(--warn)}.track.danger span{background:var(--danger)}.bar-segments{border-radius:var(--pill);background:var(--border);gap:2px;height:14px;margin-bottom:18px;display:flex;overflow:hidden}.bar-segments span{min-width:2px}.legend-list{gap:12px;display:grid}.legend-row{color:var(--muted);grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.legend-row i{border-radius:50%;width:8px;height:8px}.legend-row strong{color:var(--fg);font-family:var(--font-mono);font-size:12px}.chart{height:250px;position:relative}.chart svg{width:100%;height:100%;overflow:visible}.grid-line{stroke:var(--border);stroke-width:1px;stroke-dasharray:3 5}.axis-label{fill:var(--meta);font:10px var(--font-mono)}.line-income{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.line-expense{fill:none;stroke:#ff7373;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:5 6}.chart-legend{color:var(--muted);gap:16px;font-size:11px;display:flex}.chart-legend span{align-items:center;gap:7px;display:flex}.chart-legend i{border-radius:50%;width:8px;height:8px}.donut{--progress:0%;aspect-ratio:1;background:conic-gradient(var(--accent) 0 var(--progress),var(--border) var(--progress) 100%);border-radius:50%;flex:none;place-items:center;width:118px;display:grid;position:relative}.donut:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:12px}.donut-copy{z-index:1;text-align:center;position:relative}.donut-copy strong{font:600 22px/1 var(--font-mono);display:block}.donut-copy span{color:var(--muted);margin-top:5px;font-size:9px;display:block}.hero-stat{align-items:center;gap:20px;display:flex}.hero-stat-copy>strong{font:600 24px/1.1 var(--font-mono);display:block}.hero-stat-copy>span{max-width:30ch;color:var(--muted);margin-top:7px;font-size:11px;display:block}.transaction-list{display:grid}.transaction-row{border-top:1px solid var(--border);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;display:grid}.transaction-row:first-child{border-top:0}.tx-icon{border:1px solid var(--border);background:var(--surface-2);border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.tx-icon svg{width:17px}.tx-copy{min-width:0}.tx-copy strong,.tx-copy span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.tx-copy span{color:var(--muted);margin-top:2px;font-size:10px}.tx-amount{text-align:right;font:600 12px/1.3 var(--font-mono)}.tx-amount span{color:var(--muted);font:400 9px/1.3 var(--font-body);margin-top:2px;display:block}.asset-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.asset-card{box-shadow:none;padding:18px}.asset-card h3{font:500 18px/1.2 var(--font-display);margin:22px 0 4px}.asset-card p{min-height:34px;color:var(--muted);margin:0;font-size:11px}.asset-value{margin:22px 0 10px;font-size:20px;display:block}.asset-meta{color:var(--muted);justify-content:space-between;gap:10px;font-size:10px;display:flex}.timeline{display:grid}.timeline-item{border-left:1px solid var(--border);min-height:58px;padding:3px 0 16px 22px;position:relative}.timeline-item:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;left:-4px}.timeline-item:last-child{border-left-color:#0000;padding-bottom:0}.timeline-item strong,.timeline-item span{display:block}.timeline-item strong{font-size:12px}.timeline-item span{color:var(--muted);margin-top:4px;font-size:10px}.limit-editor{gap:10px;display:grid}.limit-row{grid-template-columns:minmax(0,1fr) minmax(120px,.65fr) 36px;align-items:end;gap:10px;display:grid}dialog{width:min(560px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--fg);background:0 0;border:0;border-radius:14px;padding:0;overflow-y:auto}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000c7}.modal{border:1px solid var(--border-strong);background:var(--surface);border-radius:14px;padding:24px;box-shadow:0 28px 90px #000000b3}.modal-head{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;display:flex}.modal-head h2{font:400 28px/1.1 var(--font-display);letter-spacing:-.02em;margin:0}.modal-head p{color:var(--muted);margin:7px 0 0;font-size:11px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.toast{z-index:100;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--fg);max-width:min(390px,100% - 32px);color:var(--bg);padding:13px 17px;animation:.32s cubic-bezier(.2,.8,.2,1) toast-in;position:fixed;bottom:24px;right:24px;box-shadow:0 14px 50px #00000073}.toast.error{color:#400;background:#ffd2d2}@keyframes toast-in{0%{opacity:0;filter:blur(5px);transform:translateY(14px)}}.state-panel,.empty-state{text-align:center;align-content:center;place-items:center;gap:10px;min-height:260px;padding:36px;display:grid}.state-panel p,.empty-state p{max-width:46ch;color:var(--muted);margin:0}.state-panel strong,.empty-state h3{font:500 20px/1.2 var(--font-display);margin:0}.loader{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-mark{border:1px solid var(--border);width:48px;height:48px;color:var(--muted);background:var(--surface-2);border-radius:14px;place-items:center;display:grid}.empty-mark svg{width:22px}.auth-check{place-items:center;min-height:100dvh;display:grid}.auth-page{grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);min-height:100dvh;display:grid}.auth-brand{background:var(--surface-2);align-items:end;padding:clamp(36px,7vw,96px);display:grid;position:relative;overflow:hidden}.auth-brand:before{content:"";border:70px solid #36f4a414;border-radius:50%;width:680px;height:680px;position:absolute;top:-380px;right:-270px}.auth-brand:after{content:"";background:linear-gradient(#0000,#00000059);height:42%;position:absolute;inset:auto 0 0}.auth-brand-inner{z-index:1;position:relative}.auth-brand h1{max-width:680px;font:380 clamp(52px,7vw,94px)/.92 var(--font-display);letter-spacing:-.04em;margin:30px 0 22px}.auth-brand p{color:#b9c9c9;max-width:52ch;margin:0;font-size:17px}.auth-signal{color:#d8e5e4;align-items:center;gap:12px;margin-top:44px;font-size:12px;display:flex}.auth-signal span{background:var(--accent);border-radius:50%;width:8px;height:8px;box-shadow:0 0 20px #36f4a4bf}.auth-panel{background:var(--bg);place-items:center;padding:36px;display:grid}.auth-form-wrap{width:min(420px,100%)}.auth-logo{width:fit-content;margin-bottom:70px}.auth-copy{margin-bottom:28px}.auth-copy h2{font:400 34px/1.1 var(--font-display);letter-spacing:-.025em;margin:0}.auth-copy p{color:var(--muted);margin:9px 0 0}.auth-switch{color:var(--muted);text-align:center;margin:22px 0 0}.auth-switch a{color:var(--fg);text-underline-offset:4px;font-weight:700;text-decoration:underline}@media (max-width:1000px){.metric-grid,.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-panel{min-height:100dvh}}@media (max-width:760px){body{font-size:13px}.app-shell{display:block}.sidebar{display:none}.content{padding:28px 16px 104px}.screen-head{align-items:flex-start}.screen-head h1{font-size:36px}.screen-head p{margin-top:7px}.head-actions{justify-content:flex-start;width:100%}.head-actions>*,.head-actions .select-wrap select{width:100%}.screen-head{flex-direction:column;gap:16px}.head-actions .btn{width:100%}.metric-grid{grid-template-columns:1fr;gap:10px}.metric{min-height:128px;padding:16px}.metric strong{font-size:clamp(18px,5.4vw,24px)}.grid-2,.toolbar{grid-template-columns:1fr}.toolbar .segmented{width:100%}.toolbar .segmented button{flex:1}.asset-grid{grid-template-columns:1fr}.bottom-nav{z-index:30;height:76px;padding:8px 4px max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#02090af5;grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-width:0;color:var(--meta);align-content:center;place-items:center;gap:4px;font-size:9px;display:grid}.bottom-nav a[aria-current=page]{color:var(--accent)}.bottom-nav svg{width:19px}.section-head{flex-wrap:wrap}.chart{height:220px}dialog{border-radius:16px 16px 0 0;width:100%;max-height:90dvh;margin:auto 0 0}.modal{padding:20px 16px max(20px,env(safe-area-inset-bottom));border-radius:16px 16px 0 0}.field-row{grid-template-columns:1fr}.modal-actions .btn{flex:1;padding-inline:12px}.toast{bottom:92px;right:16px}.limit-row{grid-template-columns:1fr 1fr 36px}}@media (max-width:430px){.metric-grid{grid-template-columns:1fr}.metric{min-height:112px}.hero-stat{align-items:flex-start}.donut{width:96px}.auth-panel{padding:24px 18px}.auth-logo{margin-bottom:48px}.auth-copy h2{font-size:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
