:root{font-family:Inter,Manrope,system-ui,-apple-system,'Segoe UI',sans-serif;--bg:#121316;--panel:#1c1e23;--soft:#25262d;--ink:#f8f4f6;--muted:#b9afb9;--line:#343038;--accent:#df8aa7;--rose:#9e3459;--green:#7bd4ac;--shadow:0 10px 30px #0002;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}html[data-theme=light]{--bg:#f7f2f4;--panel:#fffafc;--soft:#f4e8ee;--ink:#2e202b;--muted:#76606e;--line:#e9d9e1;--accent:#8d2b4d;--green:#23784f;--shadow:0 8px 30px #65293e09;color-scheme:light}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5;font-size:14px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--soft);color:var(--ink);min-height:44px;font-weight:600}button:hover{filter:brightness(1.13)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.primary{background:linear-gradient(115deg,#aa3c61,#79243f);color:white;border-color:#b25e79}.danger{color:var(--accent)}.wide{width:100%}aside{position:fixed;inset:0 auto 0 0;width:224px;background:linear-gradient(165deg,#62233c 0%,var(--panel) 44%);border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-size:18px;font-weight:750;letter-spacing:-.5px}.brand img{width:38px;height:38px;border-radius:11px}.brand small{display:block;font-size:10px;letter-spacing:1.2px;font-weight:500;opacity:.7}.brand span{white-space:nowrap}nav a{color:var(--muted);text-decoration:none;display:flex;gap:12px;align-items:center;border-radius:10px;padding:12px;margin:3px 0;font-weight:600}nav a.active{background:linear-gradient(110deg,#8f3152,#6c2848);color:white}nav svg{width:20px;height:20px;flex:none}#side{margin-top:30px}.aside-foot{margin-top:auto;font-size:10px;letter-spacing:1px;color:var(--muted);padding:14px 9px}.aside-foot span{letter-spacing:0}.workspace{margin-left:224px}header{height:78px;display:flex;justify-content:space-between;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);background:var(--panel)}.desktopbrand{font-size:13px;color:var(--muted)}.toolbar{display:flex;gap:8px}.toolbar button{width:42px;padding:4px;font-size:22px}.mobilebrand{display:none}main{max-width:1350px;margin:auto;padding:26px 34px 70px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.pagehead h1{font-size:26px;letter-spacing:-1px;margin:0}.eyebrow{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.months{display:flex;align-items:center;gap:8px}.months input{max-width:170px;padding:8px;min-height:42px}.months button{padding:5px 12px}.welcome{background:linear-gradient(90deg,#25151c 0%,#25151c 18%,#25151c99 26%,#31122222 65%),url('./mountain-banner.jpg') center 46%/cover;border-radius:20px;min-height:156px;padding:26px;color:white;display:flex;flex-direction:column;justify-content:flex-end;margin-bottom:18px}.welcome h2{margin:0;font-size:24px;letter-spacing:-.7px}.welcome p{margin:4px 0;opacity:.9}.dashboard{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow);min-width:0}.card h2{font-size:16px;letter-spacing:-.3px;margin:0 0 18px}.card h3{font-size:14px}.hero{background:radial-gradient(at right top,#ef9dbb35,transparent 70%),linear-gradient(120deg,#7b2645,#452336);color:white;display:flex;align-items:center;justify-content:space-between;min-height:175px;border-color:#9b526b}.hero strong{display:block;font-size:clamp(30px,3.5vw,45px);letter-spacing:-1.5px;margin:4px 0}.hero small{color:#edd6e0}.ring{width:92px;height:92px;flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#f5d9e4 var(--pct),#ffffff25 0)}.ring span{width:72px;height:72px;background:#702c47;border-radius:50%;display:grid;place-items:center;font-size:18px;font-weight:750}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric{background:var(--panel);border:1px solid var(--line);padding:17px;border-radius:16px;display:flex;align-items:center;gap:12px}.metric strong{display:block;font-size:20px;letter-spacing:-.5px}.metric small{color:var(--muted)}.badgeicon{height:38px;width:38px;display:grid;place-items:center;background:#b8476c26;color:var(--accent);border-radius:12px;font-size:20px}.income .badgeicon{background:#4ba47820;color:var(--green)}.muted,small{color:var(--muted)}.positive{color:var(--green)}.negative{color:var(--accent)}.full{grid-column:1/-1}.stack{display:grid;gap:18px}.row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row>div{min-width:0}.row b{overflow-wrap:anywhere}.row small{display:block;margin-top:3px;font-size:11px}.amount{white-space:nowrap;font-variant-numeric:tabular-nums}.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.actions button{font-size:12px;padding:7px 11px;min-height:40px}.chart{width:100%;height:190px;display:block}.chart text{fill:var(--muted);font-size:11px}.chart line{stroke:var(--line)}.donut{width:164px;height:164px;border-radius:50%;display:grid;place-items:center;margin:16px auto}.donut>div{background:var(--panel);width:112px;height:112px;border-radius:50%;display:grid;place-items:center;font-weight:750;font-size:17px}.legend .row{padding:9px 0;font-size:12px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px}.accountsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.accountcard{background:linear-gradient(125deg,#87304f,#482335);color:white}.accountcard small{color:#ecd8e1}.accountcard strong{font-size:28px;letter-spacing:-.8px;display:block}.empty{padding:25px 8px;color:var(--muted);text-align:center}.notice{padding:14px;border:1px solid var(--line);background:var(--soft);border-radius:12px;color:var(--muted);font-size:12px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday{text-align:center;color:var(--muted);padding:12px 0;font-size:11px}.day{height:60px;background:transparent;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:3px;border-color:transparent}.day.active{background:var(--rose);color:white}.day.today{border-color:var(--accent)}.day .dots{height:5px;display:flex;gap:3px}.day .dot{margin:0;width:4px;height:4px}.calendar-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}.filters,.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filters{margin-bottom:18px;grid-template-columns:2fr 1fr 1fr}.filters input{margin:0}label{display:block;font-size:12px;font-weight:650;margin:14px 0 6px}input,select{display:block;width:100%;min-width:0;background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px;min-height:46px}input[type=checkbox]{display:inline-block;width:20px;min-height:20px;vertical-align:middle;accent-color:var(--rose)}.formgrid label{margin-top:8px}.formgrid .field{min-width:0}dialog{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:20px;width:min(94vw,560px);max-height:90dvh;padding:24px;box-shadow:0 30px 100px #0006}dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}.dialoghead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.dialoghead h2{margin:0;font-size:20px}.dialoghead button{font-size:22px;padding:0 13px}#formerror{color:var(--accent)}#form .wide{margin-top:15px}#bottom{display:none}.fab{position:fixed;bottom:30px;right:30px;background:linear-gradient(130deg,#b6486d,#742641);color:white;border-color:#c86c8c;border-radius:50%;height:54px;width:54px;font-size:30px;padding:0;box-shadow:0 8px 20px #0005;z-index:5}#toast{position:fixed;bottom:96px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:12px;max-width:92vw;z-index:50;display:none}#privacy{position:fixed;inset:0;background:var(--bg);z-index:100;text-align:center;padding-top:30vh}#privacy[hidden]{display:none}#morelinks{display:grid;gap:8px}#morelinks a{display:flex;gap:10px;color:var(--ink);padding:14px;text-decoration:none;background:var(--soft);border-radius:12px}#morelinks svg{height:22px;width:22px}.filelabel{cursor:pointer;border:1px dashed var(--accent);border-radius:12px;padding:18px}.inline-title{display:flex;align-items:center;justify-content:space-between;gap:10px}details summary{cursor:pointer;font-weight:650;padding:12px 0}.account-journal{margin-top:18px}.tag{font-size:10px;padding:4px 7px;background:var(--soft);border-radius:6px;color:var(--muted)}.hero .tag{background:#ffffff20;color:white}a{color:var(--accent)}
@media(min-width:1400px){main{padding-top:34px}.dashboard{grid-template-columns:1.15fr 1fr 1fr}.summary{grid-column:span 2}.metrics{grid-column:span 1;grid-template-columns:1fr}.donutcard{grid-row:span 2}}
@media(max-width:1100px){aside{width:190px;padding:20px 12px}.workspace{margin-left:190px}main{padding:24px}.brand{font-size:16px}.calendar-layout{grid-template-columns:1fr}.pagehead{align-items:flex-start}}
@media(max-width:720px){aside{display:none}.workspace{margin:0}header{height:66px;padding:0 16px}.mobilebrand{display:flex;font-size:16px}.mobilebrand img{height:30px;width:30px;border-radius:9px}.desktopbrand{display:none}main{padding:19px 14px calc(110px + env(safe-area-inset-bottom))}.pagehead{gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.pagehead h1{font-size:23px}.eyebrow{font-size:9px}.months{gap:4px}.months input{max-width:139px;font-size:12px;min-height:40px}.months button{min-height:40px;padding:2px 10px}.welcome{border-radius:15px;min-height:132px;padding:20px;margin:0 0 14px}.welcome h2{font-size:22px}.welcome p{font-size:12px}.dashboard{grid-template-columns:1fr;gap:14px}.card{padding:18px;border-radius:16px}.hero{min-height:160px}.hero strong{font-size:36px}.summary{grid-column:auto}.metrics{gap:10px}.metric{padding:14px 11px;gap:9px}.metric strong{font-size:17px}.metric small{font-size:10px}.badgeicon{width:30px;height:34px}.stack{gap:14px}.ring{width:80px;height:80px}.ring span{width:64px;height:64px;font-size:16px}#bottom{position:fixed;inset:auto 0 0;background:var(--panel);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:5px 5px calc(6px + env(safe-area-inset-bottom));z-index:10}#bottom a,#bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;gap:5px;border:0;background:none;color:var(--muted);min-height:58px;margin:0;padding:7px 0;border-radius:10px;font-weight:650}#bottom .active{background:var(--soft);color:var(--accent)}#bottom svg{width:20px;height:20px}.fab{bottom:calc(86px + env(safe-area-inset-bottom));right:18px;width:49px;height:49px}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.calendar-layout{gap:14px}.day{height:45px}.accountsgrid{grid-template-columns:1fr}.accountcard strong{font-size:32px}.row{gap:8px}.row .amount{font-size:13px}.formgrid{gap:10px}dialog{padding:20px;max-height:92dvh}.chart{height:175px}#toast{bottom:150px}.full{grid-column:auto}}
@media(max-width:360px){.months{width:100%;justify-content:space-between}.months input{max-width:200px}.formgrid{grid-template-columns:1fr}.metric{padding:12px 9px}.metric strong{font-size:15px}.hero strong{font-size:30px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Layout rules shared by the final responsive dashboard. */
.welcome{position:relative;isolation:isolate;background:#25151c;overflow:hidden}.welcomephoto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center;z-index:-2}.welcome:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#25151c 0%,#25151c 18%,#25151c77 34%,#25151c11 100%);z-index:-1}
@media(min-width:721px) and (max-width:1100px){.dashboard .summary,.dashboard .metrics{grid-column:1/-1}.dashboard .metrics{grid-template-columns:1fr 1fr}.dashboard .hero strong{font-size:38px}.hero{gap:20px}}
@media(max-width:720px){.welcomephoto{object-position:70% center}.welcome:before{background:linear-gradient(90deg,#25151c99,#25151c33)}.hero{gap:10px}}
