:root{--ink:#153333;--muted:#758381;--teal:#157b70;--line:#e4eae5;--paper:#f6f8f4;--nav:#102a2d;--orange:#c77648}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #9ccb70;outline-offset:3px}a{color:inherit;text-decoration:none}aside{width:238px;background:var(--nav);color:#adc0bf;position:fixed;inset:0 auto 0 0;padding:35px 23px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:13px;font:800 31px Manrope,sans-serif;color:white;letter-spacing:-1.5px;margin-bottom:58px}.logo{width:42px;height:45px;border:1px solid #73a39a;border-radius:13px;color:#c6ed9c;font-size:35px;padding-left:9px;line-height:43px;position:relative}.logo span{font:20px sans-serif;position:absolute;right:3px;top:4px}.brand-sub{display:block;font:9px 'DM Sans',sans-serif;letter-spacing:4px;margin-top:2px}.nav-label{font-size:10px;letter-spacing:1.8px;color:#739390;margin:0 13px 16px}nav button{display:flex;align-items:center;gap:13px;background:none;border:0;color:#adc0bf;width:100%;padding:14px 15px;border-radius:8px;text-align:left;margin-bottom:5px}nav button.active{background:#264245;color:#e1f5c9}nav button:hover{background:#203c3e}.nav-icon{font-size:18px;width:20px}.aside-bottom{margin-top:auto;font-size:11px}.aside-bottom p{color:#71918e;margin-top:12px}.status-dot{display:inline-block;width:6px;height:6px;background:#b9df8e;border-radius:100%;margin-right:5px}.text-button{background:none;border:0;color:var(--teal);padding:4px 0;font-size:12px}.aside-bottom .text-button{color:#c2d8d1;margin-top:14px}.shell{margin-left:238px}header{height:82px;padding:0 42px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#fff9}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{margin:0 13px;color:#bdc7c1}.breadcrumb b{font-weight:500;color:var(--ink)}.header-right{display:flex;align-items:center;gap:25px}.private{font-size:11px;color:#68817a}.avatar{width:33px;height:33px;background:#e7ebdf;border:3px solid white;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700}main{max-width:1500px;margin:auto;padding:38px 42px 20px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--teal);font-weight:700}h1{font:700 30px Manrope,sans-serif;letter-spacing:-1.1px;margin:10px 0}p{color:var(--muted);line-height:1.6}.page-heading p{font-size:12px;margin:0}.primary{border:0;border-radius:7px;padding:13px 18px;background:var(--teal);color:white;font-size:12px;font-weight:600;white-space:nowrap}.primary:hover{background:#105f57}.secondary{border:1px solid var(--line);background:white;padding:10px 14px;border-radius:6px;color:var(--ink)}.toolbar{display:flex;justify-content:space-between;gap:12px;margin:30px 0 23px;align-items:center}.spaces{display:flex;gap:4px;flex-wrap:wrap;background:#eaf0e7;padding:4px;border-radius:8px}.spaces button{border:0;background:none;color:#698078;font-size:11px;padding:9px 13px;border-radius:5px}.spaces button.selected{background:white;color:var(--ink);box-shadow:0 1px 4px #18383212}.filters{display:flex;gap:8px}input,select{background:white;border:1px solid #dce5df;border-radius:6px;padding:10px;color:var(--ink);min-width:0}.filters input,.filters select{font-size:11px;padding:9px}.metrics{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:15px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:11px;padding:22px;min-height:151px}.metric.hero{background:var(--nav);color:white;position:relative;overflow:hidden}.metric.hero:after{content:'';position:absolute;width:130px;height:130px;border:1px solid #b8d99922;border-radius:50%;right:-40px;bottom:-70px;box-shadow:0 0 0 20px #b8d99909,0 0 0 40px #b8d99906}.metric label{font-size:11px;color:var(--muted);display:flex;justify-content:space-between}.metric.hero label{color:#b1c9c3}.metric strong{display:block;font:650 25px Manrope,sans-serif;letter-spacing:-.9px;margin:16px 0 9px}.metric strong small{font:11px 'DM Sans',sans-serif;letter-spacing:0;margin-right:4px}.metric p{font-size:10px;margin:0}.metric.hero p{color:#c4dda9}.income{color:var(--teal)}.expense{color:var(--orange)}.grid{display:grid;grid-template-columns:1.65fr 1fr;gap:22px;margin-bottom:22px}.card{background:white;border:1px solid var(--line);border-radius:11px;padding:23px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:22px}h2{font:700 14px Manrope,sans-serif;margin:0}h3{font-size:14px;margin:0}.card-head p{font-size:10px;margin:5px 0 0}.legend{display:flex;gap:12px;font-size:9px;color:var(--muted)}.legend i{display:inline-block;width:6px;height:6px;border-radius:2px;background:var(--teal);margin-right:4px}.legend .out{background:#dfbd98}.chart{height:170px;display:flex;gap:18px;align-items:flex-end;border-bottom:1px solid var(--line);padding:15px 12px 0;background:repeating-linear-gradient(to top,transparent 0,transparent 39px,#f0f3ee 40px)}.bar-group{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center;gap:5px;position:relative}.bar{width:21px;max-width:38%;border-radius:4px 4px 0 0;background:var(--teal);min-height:2px}.bar.out{background:#dfbd98}.chart-labels{display:flex;justify-content:space-around;color:var(--muted);font-size:9px;margin-top:10px}.spending{display:flex;align-items:center;gap:25px;min-height:200px}.donut{flex-shrink:0;width:135px;height:135px;border-radius:50%;display:grid;place-items:center}.donut-center{border-radius:50%;background:white;width:100px;height:100px;display:flex;align-items:center;justify-content:center;flex-direction:column;font:700 19px Manrope}.donut-center small{font:9px 'DM Sans';color:var(--muted);margin-top:6px}.category-list{flex:1}.category-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;margin:15px 0}.category-row i{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:6px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:11px;white-space:nowrap}th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.8px;font-weight:500;padding:0 8px 12px}td{padding:14px 8px;border-top:1px solid #eff2ee}td small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.tx-name{display:flex;align-items:center;gap:10px}.tx-icon{width:30px;height:30px;border-radius:9px;background:#eef3ea;display:grid;place-items:center;color:var(--teal);font-size:15px}.badge{font-size:9px;background:#f0f3ed;border-radius:4px;padding:4px 7px;color:#758377}.amount{font-weight:600;text-align:right}.progress{height:6px;border-radius:8px;background:#eef2e9;overflow:hidden;margin:11px 0}.progress span{height:100%;display:block;background:var(--teal);border-radius:8px}.goal{margin:20px 0}.goal-top{display:flex;justify-content:space-between;font-size:11px}.goal-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.empty{padding:30px 15px;text-align:center;color:var(--muted);font-size:12px}.empty strong{display:block;font:650 15px Manrope;color:var(--ink);margin-bottom:8px}.welcome{padding:15px 18px;background:#edf2e6;border:1px solid #dde7d2;border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px;font-size:11px;color:#5a7460}.welcome button{flex-shrink:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.account-value{font:700 28px Manrope;margin:24px 0 10px}.section-action{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}.search{width:240px}footer{border-top:1px solid var(--line);margin-top:30px;padding:22px 0;display:flex;justify-content:space-between;color:#88988e;font-size:10px}.dot{margin:0 8px}dialog{border:0;border-radius:15px;width:min(510px,94vw);max-height:90vh;padding:28px;color:var(--ink);box-shadow:0 20px 100px #09262344}dialog::backdrop{background:#09262388;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.close{background:#eff2eb;border:0;border-radius:50%;width:30px;height:30px;color:var(--ink)}form{display:grid;gap:15px}form label{display:flex;flex-direction:column;gap:7px;font-size:12px}form .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hint{font-size:11px;color:var(--muted);line-height:1.6}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}.danger{color:#b94e3d}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--nav);color:white;padding:12px 24px;border-radius:8px;display:none;z-index:10;font-size:12px}.settings-actions{display:grid;gap:12px}.settings-actions button{text-align:left}.delete{border:0;background:none;color:#9a6b5a;font-size:12px;padding:6px}.long-note{white-space:normal;min-width:130px}.report-note{font-size:11px;line-height:1.6;color:var(--muted)}
@media(min-width:1450px){main{padding-top:45px}.metric{padding:25px}.chart{height:210px}}@media(max-width:1150px){aside{width:195px;padding:30px 15px}.shell{margin-left:195px}main{padding:28px 25px}header{padding:0 25px}.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.spending{justify-content:center}.category-list{max-width:240px}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){aside{position:fixed;top:auto;bottom:0;width:100%;height:68px;padding:6px 5px;z-index:5;background:#102a2df7}.brand,.nav-label,.aside-bottom{display:none}nav{display:flex;justify-content:space-around}nav button{padding:6px 5px;flex-direction:column;gap:4px;font-size:9px;width:auto;flex:1;margin:0}.nav-icon{font-size:18px}.shell{margin:0}header{height:56px;padding:0 19px}.private{font-size:9px}.header-right{gap:9px}main{padding:26px 18px 80px}.page-heading{align-items:flex-start;flex-wrap:wrap}h1{font-size:26px}.page-heading .primary{padding:11px 15px}.toolbar{align-items:stretch;flex-direction:column;margin:22px 0}.spaces{width:100%;justify-content:space-between}.spaces button{padding:9px 7px;font-size:10px}.filters{justify-content:flex-end}.metric{padding:17px;min-height:135px}.metric strong{font-size:22px}.metrics{gap:10px}.grid{gap:17px}.card{padding:19px}.cards{grid-template-columns:1fr}.welcome{align-items:flex-start}.welcome button{font-size:10px}.legend{font-size:8px;gap:6px}footer{align-items:center;font-size:8px}.search{width:160px}.breadcrumb{font-size:10px}.eyebrow{font-size:8px}.chart{gap:10px}.card-head{gap:6px}.card-head h2{font-size:13px}}
.mobile-brand,.quick-add,.mobile-tx-meta,nav .mobile-more{display:none}.install-button{border:1px solid var(--line);border-radius:20px;background:white;color:var(--teal);min-height:36px;padding:7px 13px;font-size:11px}.more-grid{display:grid;gap:12px}.more-grid button{text-align:left;min-height:72px;font-weight:600}.more-grid span{display:block;font-size:12px;color:var(--muted);margin-top:7px;font-weight:400}.install-intro{text-align:center}.install-intro img{border-radius:18px;margin:0 0 16px}.install-intro p{font-size:12px}.install-steps{padding-left:22px}.install-steps li{margin:20px 0}.install-steps p{font-size:13px;margin:6px 0}button{touch-action:manipulation}body:has(dialog[open]){overflow:hidden}
@media(max-width:700px){body{min-width:320px}header{position:sticky;top:0;z-index:4;height:calc(62px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);background:#f6f8f4ed;backdrop-filter:blur(15px)}.breadcrumb,.private{display:none}.mobile-brand{display:flex;gap:7px;align-items:center;font:800 23px Manrope;letter-spacing:-1px}.mobile-brand img{border-radius:8px;margin-right:3px}.mobile-brand span{font:500 11px 'DM Sans';letter-spacing:0;color:var(--muted);align-self:flex-end;padding-bottom:4px}.install-button{min-height:40px;font-size:11px}aside{height:calc(72px + env(safe-area-inset-bottom));padding:6px 7px calc(6px + env(safe-area-inset-bottom));border-top:1px solid #ffffff18}nav .nav-accounts,nav .nav-reports{display:none}nav .mobile-more{display:flex}nav button{min-height:58px;font-size:10px;gap:6px;border-radius:10px}nav button.active{background:#264245}.page-heading .primary{display:none}main{padding-bottom:calc(145px + env(safe-area-inset-bottom))}.page-heading p{font-size:13px}.quick-add{display:flex;align-items:center;justify-content:center;gap:7px;position:fixed;z-index:4;bottom:calc(89px + env(safe-area-inset-bottom));right:20px;border:1px solid #ffffff55;border-radius:18px;background:#157b70;color:white;height:55px;padding:0 18px;font-size:27px;box-shadow:0 6px 22px #102a2d33}.quick-add span{font:600 13px 'DM Sans'}.spaces{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;max-width:100%}.spaces button{white-space:nowrap;min-height:42px;padding:8px 13px;font-size:12px;flex-shrink:0}.toolbar{gap:12px}.filters input,.filters select{font-size:16px;min-height:44px}.filters input{max-width:180px}.metrics{grid-template-columns:1fr 1fr}.metric.hero{grid-column:1/-1;min-height:155px;padding:23px}.metric.hero strong{font-size:36px}.metric.hero label{font-size:13px}.metric.hero p{font-size:11px}.metric:last-child{grid-column:1/-1;min-height:88px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6px}.metric:last-child strong{margin:0;text-align:right;font-size:24px}.metric:last-child p{grid-column:1/-1}.metric label{font-size:12px}.metric p{font-size:11px}.metric strong{font-size:23px}.card-head h2{font-size:15px}.card-head p{font-size:11px}.card-head .text-button{min-height:44px;font-size:12px}.card-head{margin-bottom:15px}.transaction-table{overflow:visible}.transaction-table table,.transaction-table tbody{display:block;width:100%}.transaction-table thead{display:none}.transaction-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto 32px;align-items:center;gap:4px;border-top:1px solid #edf1e9;padding:13px 0}.transaction-table td{padding:0;border:0;min-width:0}.transaction-table td:nth-child(2),.transaction-table td:nth-child(3){display:none}.transaction-table .long-note{min-width:0;font-size:12px;overflow-wrap:anywhere}.transaction-table .tx-name{gap:8px}.transaction-table .tx-icon{flex-shrink:0}.transaction-table small{font-size:10px;white-space:normal;line-height:1.5}.mobile-tx-meta{display:block}.transaction-table .amount{font-size:12px;white-space:nowrap}.transaction-table .delete{min-width:32px;min-height:44px}.text-button,.secondary,.delete{min-height:44px}.section-action{align-items:center}.section-action .hint{font-size:11px}.search{font-size:16px;min-height:44px;flex:1;min-width:0}.secondary{font-size:12px}.hint{font-size:12px}.goal-top{font-size:13px}.goal-meta{font-size:11px}.spending{gap:20px}.category-row{font-size:11px}dialog{position:fixed;inset:auto 0 0;width:100%;max-width:100%;max-height:92dvh;margin:0;border-radius:22px 22px 0 0;padding:24px 22px calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain}.modal-head h2{font-size:18px}.modal-head{margin-bottom:20px}.close{width:44px;height:44px;font-size:22px}form{gap:16px}form label{font-size:13px}form input,form select{font-size:16px;min-height:48px;width:100%}form .primary{min-height:50px;font-size:15px;margin-top:4px}form .two{gap:10px}.install-intro h3{font-size:17px}#toast{bottom:calc(154px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 36px);text-align:center;z-index:20}footer{font-size:10px;gap:12px}footer .text-button{font-size:11px;flex-shrink:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
