@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--green:#214b3f;--deep:#173e34;--mint:#e6eee6;--ink:#233a32;--muted:#859087;--border:#e6e9e1;--paper:#f7f8f3;--white:#fff;--orange:#bc8856}*{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,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b89756;outline-offset:3px}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;padding:35px 23px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:10}.brand{font:800 23px Manrope,sans-serif;letter-spacing:-1.1px;display:flex;align-items:center;gap:10px}.brand-dot{color:#83a48b;margin-left:-10px}.brand-icon{background:var(--deep);color:#e7eedb;width:34px;height:36px;border-radius:10px;font:700 29px Manrope;text-align:center;position:relative;letter-spacing:-4px;padding-right:5px}.brand-icon span{font-size:15px;position:absolute;right:5px;top:1px;letter-spacing:0}.workspace{display:flex;align-items:center;gap:10px;margin:34px 0 37px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:12px;font-weight:600}.workspace small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:4px}.avatar{background:#f1ecdf;color:#7b7456;border-radius:50%;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}.workspace-dot{width:6px;height:6px;border-radius:50%;background:#8d9d78;margin-left:auto}.nav-label{font-size:9px;font-weight:700;letter-spacing:1.6px;color:#8e968d;padding:0 12px;margin-bottom:12px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:7px;font-size:12px;color:#788178;background:transparent;text-align:left;margin-bottom:4px}.nav-item>span:first-child{font-size:19px;line-height:1}.nav-item.active{background:#eaf0e7;color:var(--green);font-weight:600}.nav-arrow{margin-left:auto}.hobby-label{margin-top:32px;display:flex;justify-content:space-between}.nav-item.selected{color:var(--green);font-weight:700}.side-count{margin-left:auto;font-size:10px;color:#8e968d;font-weight:400}.sidebar-bottom{margin-top:auto;padding:32px 12px 0}.little-illustration{font-size:56px;line-height:1;color:#799269;margin-bottom:15px}.sidebar-bottom h3{font:650 18px/1.45 Manrope;margin:0 0 9px;letter-spacing:-.6px}.sidebar-bottom p{font-size:11px;color:#92998e;line-height:1.8}.local-badge{margin-top:25px;font-size:9px;color:#879180;display:flex;gap:7px;align-items:center}.local-badge span{width:5px;height:5px;background:#7a9773;border-radius:100%}.shell{margin-left:238px}.topbar{height:77px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:11px;background:#fcfcf8}.breadcrumb{color:#91988d}.slash{padding:0 15px;color:#b7bdb1}.topbar-right{display:flex;gap:25px;align-items:center}.private-label{color:#8e978b;font-size:10px}.small{width:29px;height:29px;font-size:11px}main{max-width:1550px;margin:auto;padding:39px 42px 20px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:34px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:#8a9784;margin-bottom:12px}h1{font:650 clamp(24px,2.25vw,35px)/1.3 Manrope,sans-serif;letter-spacing:-1.4px;margin:0 0 10px}h1 span{color:#9aa96b}.page-heading p{font-size:12px;color:#8a9489;margin:0}.button{border-radius:6px;padding:11px 17px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-size:11px;font-weight:600;white-space:nowrap;min-height:37px}.primary{background:var(--green);color:#fff}.primary:hover{background:#31614e}.secondary{background:#fff;border:1px solid #dce2d7;color:#5f6c60}.secondary:hover{background:#f0f3ec}.tabs-row{display:flex;align-items:center;gap:15px;border-bottom:1px solid #dde3d7;margin-bottom:30px}#hobby-tabs{display:flex;gap:29px;overflow:auto}.tab{display:flex;gap:9px;align-items:center;white-space:nowrap;background:transparent;padding:0 0 16px;color:#949c90;border-bottom:2px solid transparent;font-size:12px}.tab[aria-selected=true]{color:var(--green);border-color:var(--green);font-weight:700}.tab .symbol{font-size:20px}.new-tab{display:flex;gap:7px;background:transparent;color:#8f988a;font-size:11px;white-space:nowrap;padding-bottom:16px;margin-left:8px}.hobby-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.hobby-title{display:flex;gap:13px;align-items:center}#hobby-symbol{width:44px;height:44px;border:1px solid #dce4d3;background:#edf1e5;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:27px;color:#5b7450}h2{font:700 22px Manrope;letter-spacing:-.7px;margin:0 0 5px}.hobby-title p{font-size:11px;color:#8a9487;margin:0}.heading-actions{display:flex;align-items:center;gap:12px}.icon-button{display:inline-flex;justify-content:center;align-items:center;min-width:32px;height:32px;border-radius:5px;background:transparent;color:#8e988b;font-size:20px}.icon-button:hover{background:#e9eee2;color:var(--green)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:23px}.metric{position:relative;background:white;border:1px solid var(--border);border-radius:9px;padding:20px 21px}.metric:first-child{background:var(--deep);color:white;border-color:var(--deep);overflow:hidden}.metric:first-child:after{content:'◎';position:absolute;font-size:124px;right:-21px;top:0;color:#ffffff08}.metric-label{font-size:10px;color:#8a9486;display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.metric:first-child .metric-label{color:#cad7c7}.metric-label span{font-size:14px}.metric-value{font:600 clamp(23px,2.1vw,31px) Manrope;letter-spacing:-1.1px;position:relative;z-index:1}.metric-note{font-size:9px;color:#99a190;margin-top:11px}.metric:first-child .metric-note{color:#afc4a7}.charts-grid{display:grid;grid-template-columns:1.62fr 1fr;gap:23px;margin-bottom:24px}.panel{border:1px solid var(--border);border-radius:9px;background:#fff;overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 24px 0;gap:10px}h3{font:700 13px Manrope;margin:0 0 6px;letter-spacing:-.15px}.panel-heading p{font-size:10px;color:#9aa18f;margin:0}.panel-heading select{border:1px solid #e3e7dd;background:#fcfcf8;color:#798571;padding:7px;border-radius:5px;font-size:9px}.round-arrow{font-size:17px;color:#a3aa9b}#chart{padding:10px 20px 0}#chart svg{width:100%;height:186px;overflow:visible}.chart-legend{border-top:1px solid #f1f3ec;margin:4px 24px 0;padding:14px 0;display:flex;align-items:center;gap:7px;font-size:9px;color:#8f9986}.chart-legend>span{width:6px;height:6px;border-radius:50%;background:#5c7e52}.chart-legend small{margin-left:auto;font-size:9px}#breakdown{padding:17px 24px 22px}.tag-line{margin:0 0 18px}.tag-line:last-child{margin-bottom:0}.tag-line-top{display:flex;align-items:center;gap:7px;font-size:10px;margin-bottom:8px}.tag-dot{width:6px;height:6px;border-radius:2px}.tag-line-top strong{margin-left:auto;font-size:11px;font-weight:600}.tag-line-top small{width:32px;text-align:right;font-size:9px;color:#98a08f}.tag-track{height:5px;background:#f0f3eb;border-radius:4px;overflow:hidden}.tag-fill{height:100%;border-radius:4px}.breakdown-scroll{max-height:230px;overflow-y:auto}.empty-breakdown{font-size:11px;color:#9aa18f;line-height:1.7;padding:20px 0}.count-pill{font:500 9px 'DM Sans';padding:3px 7px;background:#eef2e8;color:#8b997f;border-radius:5px;margin-left:6px}.text-button{background:transparent;color:#72846a;font-size:10px;padding:5px}.text-button:hover{text-decoration:underline}.expense-title{align-items:center}.filters{display:flex;gap:9px;padding:22px 24px 19px}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:5px;padding:0 11px;margin-right:auto;width:260px;height:34px;color:#98a38d}.search span{font-size:22px}.search input{border:0;outline:none;width:100%;font-size:10px;background:transparent;min-width:0}.filters select{font-size:10px;padding:7px 10px;border:1px solid var(--border);border-radius:5px;color:#7f8b75;background:#fff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:8px;font-weight:600;letter-spacing:1px;background:#f8f9f4;color:#98a28f;padding:12px 24px;border-top:1px solid #eef1e7;border-bottom:1px solid #eef1e7}td{border-bottom:1px solid #f0f2eb;padding:16px 24px;font-size:10px;color:#819077}td:first-child{display:flex;gap:11px;align-items:center}.expense-icon{width:31px;height:31px;background:#f1f3ea;border:1px solid #e9eddf;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;color:#849571}.expense-name{color:#42503d;font-size:11px;font-weight:500;display:block}.expense-note{color:#9aa38f;font-size:9px;display:block;margin-top:4px;max-width:250px;overflow:hidden;text-overflow:ellipsis}.tag-badge{font-size:9px;padding:4px 8px;border-radius:4px;display:inline-block;background:#edf2e7;color:#778b63}.amount{text-align:right}td.amount{font:600 11px Manrope;color:#42533c}td:last-child{padding-left:0;width:40px}.edit-entry{font-size:17px;color:#909c85}.delete-entry{font-size:15px}.table-footer{display:flex;justify-content:space-between;padding:15px 24px;color:#a0a892;font-size:9px}.footer-flower{font-size:14px;color:#98a57e;margin-left:5px}.page-footer{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#a3ab96;margin-top:23px}.page-footer>span:last-child{letter-spacing:0}.page-footer a{text-decoration:underline}#empty-state{padding:34px;text-align:center;color:#939e89;font-size:12px;line-height:1.7}#empty-state strong{display:block;color:#55674b;font:600 17px Manrope;margin-bottom:6px}dialog{width:min(510px,calc(100% - 32px));padding:28px;border:1px solid #dce4d4;border-radius:14px;color:var(--ink);box-shadow:0 20px 100px #173e342b}dialog::backdrop{background:#173e345e;backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px;gap:10px}.modal-heading h2{font-size:23px}form label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:600;margin-bottom:18px}form input,form select{width:100%;padding:12px;border:1px solid #dbe2d5;border-radius:6px;color:#43563b;background:#fdfefb;min-width:0}input::placeholder{color:#a1a997}.form-row{display:grid;grid-template-columns:1fr 1.25fr;gap:15px}.field-hint{font-size:10px;color:#95a087;line-height:1.6;margin:-6px 0 22px}.optional{font-weight:400;color:#a0a893}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:20px;margin-top:23px}.form-error{font-size:11px;color:#a14935;line-height:1.5}.danger{color:#b65943;margin-right:auto}.backup-copy{font-size:13px;line-height:1.8;color:#7c8971;margin-bottom:24px}.wide{display:flex;width:100%;margin-bottom:15px}.import-label{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#toast{position:fixed;bottom:25px;left:calc(50% + 100px);transform:translateX(-50%);background:var(--deep);color:white;padding:13px 23px;border-radius:8px;box-shadow:0 10px 35px #173e3428;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}#demo-banner{background:#eaf0df;color:#63764f;border:1px solid #dce5cc;border-radius:7px;padding:10px 14px;font-size:10px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}#demo-banner button{font-size:10px;background:transparent;color:#496b3d;font-weight:600;white-space:nowrap}
.table-wrap{position:relative}.sr-only{left:0;top:0;clip-path:inset(50%)}.charts-grid>*{min-width:0}.metric{min-width:0}
@media(min-width:1500px){main{padding-top:48px}.metrics{gap:22px}.metric{padding:23px}.charts-grid{grid-template-columns:1.7fr 1fr}#chart svg{height:215px}}
@media(max-width:1100px){.sidebar{width:195px;padding:29px 17px}.brand{font-size:20px}.shell{margin-left:195px}main{padding:30px 25px}.topbar{padding:0 25px}.metric{padding:17px 14px}.charts-grid{gap:16px}.panel-heading{padding:20px 18px 0}#breakdown{padding:18px}.page-heading{align-items:flex-start}.page-heading .button{padding:9px;font-size:10px}.metrics{gap:10px}.metric-value{font-size:25px}th,td{padding-left:17px;padding-right:17px}#hobby-tabs{gap:22px}}
@media(max-width:800px){.sidebar{width:71px;padding:24px 16px}.brand{font-size:0;gap:0}.brand-dot,.workspace,.nav-label,.sidebar-bottom,.sidebar .add-hobby,.nav-arrow,.side-count{display:none}.nav-item{font-size:0;gap:0;padding:13px 9px}.nav-item>span:first-child{font-size:21px}.sidebar .active{margin-top:35px}#side-hobbies{margin-top:22px}.shell{margin-left:71px}.page-heading{display:block}.page-heading .button{margin-top:20px}.metrics{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}h1{font-size:29px}.private-label{display:none}.metric-value{font-size:28px}.breakdown-scroll{max-height:220px}.filters{padding:18px;flex-wrap:wrap}.search{width:100%;flex-basis:100%}.page-footer{gap:20px;line-height:1.8}.table-footer>span:last-child{display:none}#toast{left:calc(50% + 30px);max-width:80%;width:max-content}}
@media(max-width:480px){.sidebar{display:none}.shell{margin-left:0}.topbar{height:58px;padding:0 20px}main{padding:27px 18px}.page-heading{margin-bottom:26px}h1{font-size:27px}.tabs-row{gap:7px}#hobby-tabs{gap:20px}.new-tab span{display:none}.new-tab{font-size:20px}.hobby-heading{gap:10px}.hobby-title{gap:8px}#hobby-symbol{width:36px;height:36px}h2{font-size:19px}.hobby-title p{font-size:9px}.heading-actions{gap:3px}.heading-actions .button{font-size:10px;padding:10px}.metric{padding:17px}.metric-label{font-size:10px}.metric-value{font-size:27px}.page-footer{font-size:7px}.form-row{grid-template-columns:1fr;gap:0}#toast{left:50%}#demo-banner{align-items:flex-start;line-height:1.5}}
