:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f1f0ea;font-synthesis:none;--bg:#11110f;--surface:#191917;--surface-raised:#20201d;--border:#30302b;--border-strong:#45443c;--text:#f1f0ea;--muted:#99988d;--primary:#d6ff75;--primary-text:#172000;--positive:#b9eb6c;--negative:#ff8177;--uber:#e8e7df;--bolt:#64c98c;background:#11110f;font-family:Avenir Next,Helvetica Neue,sans-serif}*,:before,:after{box-sizing:border-box;outline:none!important}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}body.modal-open{overflow:hidden}button,input{font:inherit}button{color:inherit}h1,h2,p{margin:0}h1{letter-spacing:-.03em;font-size:25px;line-height:1.2}h2{font-size:16px;line-height:1.25}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--border);background:#141412;justify-content:space-between;align-items:center;height:58px;padding:0 28px;display:flex}.wordmark{letter-spacing:-.02em;font-weight:650}.mark{background:var(--primary);width:26px;height:26px;color:var(--primary-text);border-radius:7px;place-items:center;margin-right:8px;font-size:14px;display:inline-grid}.dashboard{width:min(1360px,100%);margin:0 auto;padding:28px}.page-toolbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-toolbar p,.section-heading p{color:var(--muted);margin-top:5px;font-size:13px}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 14px;font-size:14px;font-weight:620;transition:background-color .14s,border-color .14s,opacity .14s;display:inline-flex}.button:disabled{opacity:.55;cursor:wait}.button.primary{background:var(--primary);color:var(--primary-text)}.button.primary:hover:not(:disabled){background:#e0ff94}.button.secondary{border-color:var(--border-strong);background:var(--surface-raised)}.button.secondary:hover{border-color:#5b5a50}.button.full{width:100%}.icon-button{border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--muted);background:0 0;border-radius:8px;place-items:center;display:grid}.icon-button:hover{color:var(--text);background:var(--surface-raised)}.period-tabs{border-bottom:1px solid var(--border);gap:24px;margin-bottom:18px;display:flex}.period-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 1px 10px;font-size:14px;font-weight:600}.period-tabs button[aria-selected=true]{color:var(--text);border-color:var(--primary)}.balance-panel{border:1px solid var(--border);background:var(--surface);border-radius:10px;grid-template-columns:1fr auto;margin-bottom:18px;display:grid;overflow:hidden}.balance-main{padding:22px 24px}.balance-main>span,.forecast>span{color:var(--muted);margin-bottom:8px;font-size:13px;display:block}.balance-main>strong{letter-spacing:-.045em;font-size:34px;line-height:1.05;display:block}.balance-main>p,.forecast>p{color:var(--muted);margin-top:8px;font-size:13px}.positive{color:var(--positive)}.negative{color:var(--negative)}.forecast{border-left:1px solid var(--border);min-width:270px;padding:22px 24px}.forecast strong{letter-spacing:-.03em;font-size:23px}.stat-row{border-top:1px solid var(--border);grid-column:1/-1;grid-template-columns:repeat(4,1fr);display:grid}.metric{border-right:1px solid var(--border);padding:15px 24px}.metric:last-child{border-right:0}.metric-label{color:var(--muted);align-items:center;gap:7px;margin-bottom:6px;font-size:12px;display:flex}.metric-label svg{width:14px;height:14px}.metric strong{font-variant-numeric:tabular-nums;font-size:17px}.content-grid{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:18px;display:grid}.main-column{gap:18px;min-width:0;display:grid}.panel{border:1px solid var(--border);background:var(--surface);border-radius:10px}.section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:65px;padding:15px 18px;display:flex}.chart-panel{overflow:hidden}.chart{grid-template-columns:auto minmax(0,1fr);gap:10px;height:230px;padding:20px 20px 14px;display:grid}.chart-axis{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;justify-content:space-between;align-items:end;padding-bottom:20px;font-size:10px;display:flex}.chart-plot{align-items:end;gap:clamp(5px,1.1vw,14px);min-width:0;height:100%;display:flex;position:relative;overflow-x:auto}.chart-grid{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0 0 20px}.chart-grid span{border-top:1px solid #2b2b27;width:100%}.bar-column{z-index:1;flex:0 0 clamp(48px,7vw,72px);grid-template-rows:minmax(0,1fr) 12px;align-items:end;gap:8px;height:100%;display:grid;position:relative}.bar-column>span{color:var(--muted);text-align:center;white-space:nowrap;font-size:10px}.bar-stack{border-radius:4px 4px 1px 1px;flex-direction:column;justify-content:end;align-self:end;width:100%;min-height:4px;max-height:100%;display:flex;overflow:hidden}.bar{flex-shrink:0;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.bar-value{color:var(--primary-text);white-space:nowrap;font-size:9px;font-weight:700;line-height:1}.bar.uber,.uber-color{background:var(--uber)}.bar.bolt,.bolt-color{background:var(--bolt)}.legend{color:var(--muted);justify-content:flex-end;gap:16px;padding:0 20px 14px;font-size:11px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i,.platform-title i{border-radius:2px;width:8px;height:8px}.entries-panel{overflow:hidden}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{color:var(--muted);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}td{white-space:nowrap;font-variant-numeric:tabular-nums;border-bottom:1px solid #292925;padding:13px 14px}tr:last-child td{border-bottom:0}tbody tr:hover{background:#1d1d1a}td strong{font-size:13px;display:block}td span{color:var(--muted);margin-top:3px;font-size:11px;display:block}.row-actions{justify-content:flex-end;gap:2px;display:flex}.row-actions button,.delete-expense{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:29px;height:29px;display:grid}.row-actions button:hover,.delete-expense:hover{color:var(--text);background:#30302b}.optimistic{opacity:.55}.expenses-panel{overflow:hidden}.expense-list{padding:4px 0}.expense-item{border-bottom:1px solid #292925;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;display:grid;position:relative}.expense-item.inactive{opacity:.48}.expense-item>div{min-width:0}.expense-item strong,.expense-item span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.expense-item strong{font-size:13px}.expense-item span{color:var(--muted);margin-top:3px;font-size:11px}.expense-item b{font-variant-numeric:tabular-nums;padding-right:22px;font-size:12px}.expense-check{border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:5px;place-items:center;width:19px;height:19px;padding:0;display:grid}.expense-item:not(.inactive) .expense-check{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.delete-expense{opacity:0;position:absolute;right:8px}.expense-item:hover .delete-expense{opacity:1}.expenses-panel>.button{width:calc(100% - 28px);margin:14px}.empty{min-height:120px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.empty p{max-width:280px;margin-top:9px;font-size:13px}.login-page,.state-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-form{width:min(380px,100%)}.login-form .wordmark{color:var(--primary);margin-bottom:48px}.login-form h1{margin-bottom:8px}.login-form>p,.state-page p{color:var(--muted);margin-bottom:26px;font-size:14px}.login-form>label{margin-bottom:8px;font-size:13px;font-weight:600;display:block}.login-form input,.field input{background:var(--surface);width:100%;min-height:42px;color:var(--text);border:1px solid var(--border-strong);border-radius:8px;padding:0 11px}.login-form input{margin-bottom:12px}.login-form .button{width:100%;margin-top:4px}.form-error{color:var(--negative);margin:-2px 0 10px;font-size:12px}.state-page{text-align:center;align-content:center}.state-page p{margin-top:10px}.dialog-backdrop{z-index:20;background:#000000ab;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--border-strong);background:#191917;border-radius:10px;width:min(520px,100%);max-height:calc(100vh - 36px);overflow-y:auto;box-shadow:0 2px 8px #00000047}.dialog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:60px;padding:0 18px;display:flex}.dialog form{padding:18px}.form-grid{gap:14px;display:grid}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.time-row{grid-template-columns:1.4fr .8fr .8fr}.field{margin-bottom:14px;display:block}.field>span{margin-bottom:7px;font-size:12px;font-weight:600;display:block}.form-grid .field{margin-bottom:0}.platform-group{border-top:1px solid var(--border);margin-top:18px;padding-top:16px}.platform-title{align-items:center;gap:7px;margin-bottom:12px;font-size:13px;font-weight:650;display:flex}.dialog-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin:20px -18px -18px;padding:14px 18px;display:flex}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{rotate:360deg}}.toast{z-index:30;color:#ffd5d1;background:#2a201f;border:1px solid #764943;border-radius:8px;align-items:center;gap:14px;max-width:min(390px,100% - 40px);padding:12px 14px;font-size:13px;display:flex;position:fixed;bottom:20px;right:20px}.toast button{cursor:pointer;color:inherit;background:0 0;border:0;place-items:center;display:grid}.route-progress{z-index:100;background:var(--primary);width:38%;height:2px;animation:.9s ease-in-out infinite route-progress;position:fixed;top:0;left:0}@keyframes route-progress{0%{translate:-100%}to{translate:280%}}.skeleton-page{min-height:100vh}.skeleton{background:#1d1d1a;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff09,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{translate:-100%}to{translate:100%}}.header-skeleton{border-bottom:1px solid var(--border);height:58px}.skeleton-block{width:min(1360px,100%);margin:auto;padding:34px 28px}.skeleton.line{border-radius:6px;width:230px;height:28px;margin-bottom:54px}.balance-skeleton{border-radius:10px;height:210px;margin-bottom:18px}.grid-skeleton{border-radius:10px;height:350px}.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}@media (width<=900px){.content-grid{grid-template-columns:1fr}.expenses-panel{grid-row:1}.expense-list{grid-template-columns:1fr 1fr;display:grid}.expense-item:nth-child(odd){border-right:1px solid var(--border)}.balance-panel,.stat-row{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--border)}}@media (width<=620px){.app-header{padding:0 16px}.dashboard{padding:20px 14px 40px}.page-toolbar{align-items:flex-start;gap:12px}.page-toolbar h1{font-size:22px}.page-toolbar>div{min-width:0}.page-toolbar p{text-transform:capitalize}.page-toolbar .button{flex:none;padding:0 11px}.period-tabs{justify-content:space-between;gap:0}.balance-panel{display:block}.balance-main{padding:19px 18px}.forecast{border-left:0;border-top:1px solid var(--border);min-width:0;padding:16px 18px}.stat-row{display:grid}.metric{padding:13px 16px}.metric:nth-child(2){border-right:0}.metric strong{font-size:15px}.expense-list{display:block}.expense-item:nth-child(odd){border-right:0}.delete-expense{opacity:1}.chart{height:205px}.form-grid.two{grid-template-columns:1fr}.form-grid.time-row{grid-template-columns:1fr 1fr}.form-grid.time-row .field:first-child{grid-column:1/-1}table,tbody,tr,td{display:block}thead{display:none}tbody{padding:4px 14px}tbody tr{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;padding:11px 0;display:grid;position:relative}tbody tr:last-child{border-bottom:0}td{border:0;padding:6px 4px}td:before{content:attr(data-label);color:var(--muted);margin-bottom:3px;font-size:10px;display:block}td:first-child{grid-column:1/-1;font-weight:650}.row-actions{display:flex;position:absolute;top:7px;right:0}.row-actions:before{display:none}}
