:root{font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:#263632;background:#f3f5f3;font-size:14px;--green:#26735c;--orange:#bd6542;--line:#e6ebe7}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;border:1px solid #dce3dd;border-radius:6px;background:white;color:inherit;padding:8px 11px}button{cursor:pointer}button:hover{background:#edf3ee}button.active{background:#e1eee6;color:#226448;border-color:#c9ddcf}button.primary{background:var(--green);color:white;border-color:var(--green)}header{height:66px;padding:0 max(24px,calc((100vw - 1180px)/2));background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px}h1{font-size:21px;margin:0;white-space:nowrap}nav{display:flex;gap:5px;flex:1}nav button{border:0;background:transparent}main{max-width:1180px;margin:0 auto;padding:22px 24px}h2{font-size:16px;margin:0}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px}.seg{display:flex;gap:3px}.seg button{padding:7px 13px}#coverage{color:#85918a;font-size:12px;margin-left:8px}.tools{margin-left:auto;display:flex;gap:6px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.metrics article{background:white;border:1px solid var(--line);border-radius:9px;padding:17px 20px}.metrics label{color:#77857c;display:block;font-size:13px}.metrics strong{display:block;font-size:29px;letter-spacing:-.8px;font-weight:600;margin:6px 0}.metrics small{color:#839088}.income{color:var(--green)}.expense{color:var(--orange)}.panel{background:white;border:1px solid var(--line);border-radius:9px;margin-bottom:14px;padding:16px 19px}.panelhead{display:flex;align-items:center;gap:12px;margin-bottom:10px}.panelhead>h2{margin-right:auto}.panelhead>span{font-size:12px;color:#849087}.dot{width:8px;height:8px;display:inline-block;border-radius:2px;margin:0 4px 0 12px}.green{background:var(--green)}.orange{background:var(--orange)}.chart{display:flex;align-items:stretch;height:145px;gap:7px;padding-top:10px}.barcell{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.bars{height:110px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid var(--line)}.bar{width:22%;max-width:24px;min-width:3px;border-radius:3px 3px 0 0}.barcell small{font-size:11px;color:#89958e;margin-top:8px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th{text-align:left;font-weight:500;color:#829086;background:#f7f9f7}th,td{padding:10px 12px;border-bottom:1px solid #edf0ed}th:nth-child(n+3),#summaryBody td:nth-child(n+3){text-align:right}td small{color:#8b978e;margin-right:12px}.hint{font-size:12px;color:#8b978e;margin:0 0 12px}tbody tr:hover{background:#fafcf9}.catmeter{display:inline-block;width:50px;height:4px;background:#e9eee9;vertical-align:middle;margin-right:10px}.catmeter i{height:100%;display:block;background:#61927c}footer{font-size:12px;color:#88958c;padding:2px 0 15px}#status{color:var(--green);margin-left:15px}.pagination{display:flex;gap:15px;justify-content:center;align-items:center;margin-top:12px}.categorygroup{display:flex;gap:15px;border-bottom:1px solid var(--line);padding:12px 0}.categorygroup b{width:75px;flex-shrink:0}.chips{display:flex;gap:7px;flex-wrap:wrap}.chips span{background:#f2f6f2;padding:5px 10px;border-radius:5px}dialog{width:450px;border:1px solid #d6e1d7;border-radius:12px;padding:22px}dialog::backdrop{background:#152e2355}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formgrid label{display:flex;flex-direction:column;gap:6px;color:#77877b;font-size:13px}.wide{grid-column:1/-1}.save{width:100%}#error{color:#b24d39;font-size:13px}#recordBody td:nth-child(3){max-width:320px;white-space:normal;overflow-wrap:anywhere}#recordBody td:last-child button{font-size:12px;padding:4px 7px;margin-left:4px}input:focus,select:focus,button:focus-visible{outline:2px solid #72a58a;outline-offset:2px}[hidden]{display:none!important}@media(max-width:700px){header{padding:0 14px;gap:12px;height:60px}h1{font-size:18px}nav{gap:0}nav button{padding:7px;font-size:12px}header>.primary{padding:8px;font-size:12px}main{padding:15px 12px}.toolbar{flex-wrap:wrap}#coverage{display:none}.tools{width:100%;margin:4px 0 0}.metrics{gap:7px}.metrics article{padding:12px}.metrics strong{font-size:21px}.metrics small{font-size:10px}.panel{padding:12px}.panelhead{flex-wrap:wrap}#search{width:100%;order:3}.chart{gap:3px}th,td{padding:9px 8px}dialog{width:calc(100% - 26px)}.categorygroup{gap:7px}.categorygroup b{width:55px}}
@media(max-width:700px){.metrics strong{font-size:17px;white-space:nowrap;letter-spacing:-.6px}.metrics article{padding:10px 8px}.barcell small{font-size:9px;white-space:nowrap}.panelhead .hint{margin:0;font-size:11px}.catmeter{width:30px}}
.summarylabels{font-size:12px;color:#8c9b92;border-bottom:1px solid var(--line);padding:8px 0}.summarygroup{border-bottom:1px solid var(--line)}.summarygroup summary{cursor:pointer;display:flex;align-items:center;gap:10px;padding:16px 4px;list-style:none}.summarygroup summary:before{content:'▸';color:#629d81}.summarygroup[open] summary:before{content:'▾'}.summarygroup summary>span:first-of-type{flex:1}.summarygroup small{color:#85978d;font-weight:400}.comparevalue{text-align:right;display:flex;flex-direction:column;gap:5px}.comparevalue b{font-weight:500}.comparevalue small{font-size:11px}.subcategories{background:#f4f7f4;border-radius:8px;padding:4px 13px;margin-bottom:12px}.subcategory{display:flex;align-items:center;width:100%;border:0;background:transparent;gap:12px;padding:12px 0;text-align:left;border-bottom:1px solid #e5ece6}.subcategory:last-child{border-bottom:0}.subcategory>span:first-child{flex:1}.calendarweek,.calendargrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendarweek{text-align:center;color:#91a198;padding:12px 0;font-size:12px}.calendargrid{border-top:1px solid var(--line)}.calday{min-height:76px;border:0;border-radius:0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding:8px}.calday b{font-size:14px;font-weight:500}.calday small{font-size:10px}.calday.hasrecords{background:#f0f6f1}.calday.today b{background:#26735c;color:white;border-radius:50%;padding:3px;min-width:24px;text-align:center}.calday.selected{background:#d5e8dc;box-shadow:inset 0 0 0 2px #72a58a}.dayfilter{display:flex;align-items:center;gap:15px;margin-top:14px;font-size:13px}.dayfilter button{padding:4px 8px;font-size:12px}.dateblock{margin-top:18px}.datehead{display:flex;justify-content:space-between;color:#84958a;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px}.datehead b{font-weight:500}.datehead small{font-size:12px}.recordrow{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #eef2ee}.recordicon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#edf3ed;font-size:20px;flex-shrink:0}.recordtext{flex:1;min-width:0}.recordtext b{font-weight:500}.recordtext small{display:block;color:#94a096;margin-top:5px;overflow-wrap:anywhere;line-height:1.5}.recordamount{white-space:nowrap}.recordactions{display:flex;gap:4px}.recordactions button{padding:4px 6px;font-size:11px;color:#8a988f;border:0;background:transparent}.empty{text-align:center;padding:22px;color:#8a9a8f}#editor{width:580px}.entrytop{display:flex;justify-content:space-between;gap:10px}.entrytop input{width:160px}.entrytop select{width:90px}.amountline{display:flex;align-items:center;background:#f3f6f3;border-radius:8px;margin:16px 0;padding:8px 14px;gap:10px}.amountline span{flex:1;font-weight:500}.amountline input{width:170px;border:0;background:transparent;text-align:right;font-size:24px;color:#b96a46;padding:5px}#categoryGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-height:280px;overflow-y:auto;padding:4px 0 10px}.categorytile{position:relative;min-width:0}.categorypick{border:0;display:flex;flex-direction:column;align-items:center;width:100%;gap:8px;padding:10px 3px;background:transparent}.categorypick>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#e5eee6;font-size:23px}.categorytile:nth-child(4n+2) .categorypick>span{background:#fae8cd}.categorytile:nth-child(4n+3) .categorypick>span{background:#e4e2f4}.categorytile:nth-child(4n+4) .categorypick>span{background:#f4dfdc}.categorypick small{font-size:12px}.categorypick.selected{background:#e7f1e9;box-shadow:inset 0 0 0 1px #83ac91;border-radius:8px}.favorite{position:absolute;right:0;top:0;border:0;padding:0 4px;background:transparent;color:#a2b0a6;font-size:18px}.favorite.saved{color:#c89937}#groupTabs{display:flex;gap:3px;overflow-x:auto;border-top:1px solid var(--line);padding:10px 0;margin-top:8px}#groupTabs button{flex:1;padding:8px;min-width:36px;border:0}.noteinput{width:100%;margin:4px 0}#drill{width:680px;max-height:85vh}#drillBody{max-height:65vh;overflow:auto}@media(max-width:700px){#editor{width:calc(100% - 20px);padding:16px}#categoryGrid{grid-template-columns:repeat(4,1fr);gap:6px}.recordrow{gap:8px;flex-wrap:wrap}.recordactions{margin-left:auto}.recordtext{flex-basis:45%}.recordicon{width:31px;height:31px}.recordamount{font-size:13px}.datehead small{font-size:10px}.calday{min-height:66px;padding:5px 3px}.calday small{font-size:8px}.comparevalue small{font-size:10px}.summarygroup summary{gap:6px;padding:14px 0}.amountline input{width:140px}.blankday{min-height:66px}}
#groupTabs button{flex:0 0 auto;white-space:nowrap;min-width:36px}.summarylabels{display:flex;justify-content:space-between}.calday{font-family:inherit}.recordtext small{font-size:12px}@media(min-width:701px){#calendar{max-width:760px;margin:auto}.calendargrid .calday{min-height:82px}.recordrow{padding:12px 0}}
:root{background:#f3f4f8;color:#343b4a;--green:#718dd1;--orange:#e78674;--line:#edf0f5}header{border-bottom:0;height:64px}nav button.active,button.active{background:#edf1fb;color:#647fc0;border-color:#e1e7f6}button.primary{background:#7d97d7;border-color:#7d97d7}main{max-width:1050px;padding-top:16px}.panel,.metrics article{border:0;border-radius:13px;box-shadow:none}.metrics article{padding:14px 18px}.metrics strong{font-size:26px}.toolbar{gap:7px}button,input,select{border-color:#e4e8f0}button:hover{background:#f1f4fa}.tools button{font-size:12px;background:transparent}.statstabs{display:flex;justify-content:center;gap:26px;margin:6px 0 16px}.statstabs button{border:0;background:transparent;border-radius:0;padding:9px 4px;color:#9ba3b2}.statstabs button.active{color:#3e485b;border-bottom:3px solid #f5c678}.ringlayout{display:flex;justify-content:center;align-items:center;gap:45px;min-height:240px}.ringlayout #donut{width:200px;height:200px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.donutcenter{width:140px;height:140px;border-radius:50%;background:white;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.donutcenter small{color:#a1abba;font-size:12px}.donutcenter strong{font-size:23px;font-weight:500}#donutLegend{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 22px;font-size:12px;min-width:210px}#donutLegend>span{display:flex;align-items:center;gap:6px}#donutLegend i{width:7px;height:7px;border-radius:50%}#donutLegend small{color:#a1aabc;margin-left:auto}.summarygroup summary{padding:16px 3px}.summarygroup small,.comparevalue small,.hint{color:#9ca7b8}.summarygroup summary:before{color:#859ddd}.subcategories{background:#f4f5f9}.subcategory{border-color:#e9edf4}.periodrow{display:grid;grid-template-columns:.8fr 1fr 1fr 1fr;width:100%;padding:15px 4px;text-align:right;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;gap:10px;font-size:13px}.periodrow span:first-child{text-align:left}.periodhead{color:#a1aaba;font-size:12px}.periodrow:last-child{border-bottom:0}#trendTable{margin-top:20px}.balancehero{border-radius:14px;background:#829bda;color:white;padding:23px 26px;margin:4px 0 16px}.balancehero>label{font-size:13px;opacity:.8}.balancehero>strong{display:block;font-size:36px;letter-spacing:-.5px;font-weight:500;margin:10px 0 25px}.balanceparts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #ffffff35;padding-top:16px}.balanceparts>div+div{border-left:1px solid #ffffff35;padding-left:25px}.balanceparts label{display:block;font-size:12px;opacity:.8;margin-bottom:7px}.balanceparts b{font-size:17px;font-weight:500}.balanceToolbar>.seg,.balanceToolbar>#prev,.balanceToolbar>#next,.balanceToolbar>#period,.balanceToolbar>#coverage{display:none}.balanceToolbar{justify-content:flex-end;margin-bottom:8px}.calday.hasrecords{background:#f1f4fc}.calday.selected{background:#e2e9fa;box-shadow:inset 0 0 0 2px #9ab0e1}.calday.today b{background:#f8c969;color:#fff}.datehead{color:#a2adbe}.recordicon{background:#eff1f9}.recordtext small{color:#a6afbd}.recordactions button{color:#a0aabc}.categorypick.selected{background:#edf1fa;box-shadow:inset 0 0 0 1px #afbee3}.amountline{background:#f5f6fa}.categorypick>span{background:#e7edf9}#groupTabs button.active{background:#edf1fb}footer{color:#a1a9b7}@media(max-width:700px){header{padding:0 13px;gap:9px}nav button{font-size:12px;padding:7px 6px}main{padding:12px}.metrics article{padding:12px 9px}.metrics strong{font-size:17px}.ringlayout{gap:16px;min-height:270px;flex-direction:column;padding:4px 0 8px}.ringlayout #donut{width:176px;height:176px}.donutcenter{width:123px;height:123px}.donutcenter strong{font-size:21px}#donutLegend{grid-template-columns:repeat(3,1fr);gap:8px 13px;width:100%;font-size:10px}#donutLegend small{font-size:9px}.statstabs{margin:0 0 12px}.periodrow{font-size:11px;gap:5px;padding:14px 0}.balancehero{padding:20px}.balancehero>strong{font-size:30px}.balanceparts b{font-size:16px}.summarygroup summary{padding:15px 0}.calday{min-height:62px}.recordrow{padding:12px 0}}
button.primary:hover,button.primary:focus-visible{background:#6986c8;color:white;border-color:#6986c8}button.primary{color:white}
h1{display:flex;align-items:center;gap:8px;font-size:19px}h1 img{width:46px;height:46px;object-fit:contain}.lucide{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;flex-shrink:0;vertical-align:middle}.categorypick>span .lucide{width:25px;height:25px}.recordicon .lucide{width:21px;height:21px}.subcategory>span:first-child{display:flex;align-items:center;gap:10px}.groupname{display:flex;align-items:center;gap:9px}.groupname .lucide{color:#859bcf}.groupname small{margin-left:-5px}#groupTabs button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 8px;min-width:42px}#groupTabs button small{font-size:11px}#groupTabs button .lucide{width:19px;height:19px}.recordsToolbar>.seg{display:none}.recordicon{color:#7188b4}.categorypick>span{color:#627cb2}.categorytile:nth-child(4n+2) .categorypick>span{color:#ae844b}.categorytile:nth-child(4n+3) .categorypick>span{color:#847bb4}.categorytile:nth-child(4n+4) .categorypick>span{color:#b07d75}.panelhead .hint{white-space:nowrap;font-size:11px}.panelhead .hint input{vertical-align:middle}.calday b{font-variant-numeric:tabular-nums}@media(max-width:700px){h1{font-size:0;gap:0}h1 img{width:35px;height:40px}header{gap:7px}header nav{justify-content:center}.groupname{gap:6px}.groupname .lucide{width:18px;height:18px}#groupTabs button{padding:7px;min-width:40px}.panelhead{gap:8px}.panelhead .hint{font-size:10px}.panelhead .seg button{padding:7px 10px}}
#periodPicker{display:flex;align-items:center;gap:6px}#pickYear{width:90px;font-size:15px;font-variant-numeric:tabular-nums}#pickMonth{width:85px;font-size:15px}.balanceToolbar>#periodPicker{display:none}.deltaUp{color:#c95151!important}.deltaDown{color:#278364!important}.deltaFlat{color:#8a96a5!important}.comparevalue small{font-size:12px}.metrics small{font-size:12px}.calday{min-height:88px;gap:5px}.calday small{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.calday .income{color:#287a64}.calday .expense{color:#c65c51}.calday b{font-size:16px}.dayfilter{justify-content:flex-end}.datehead{font-size:14px}.datehead small{font-size:13px}.recordtext small{font-size:13px}.recordamount{font-size:15px}.recordactions button{font-size:12px}.subcategory{font-size:14px}.summarygroup summary{font-size:14px}.hint,.summarylabels{font-size:12px}#donutLegend{font-size:13px}#donutLegend small{font-size:12px}.periodrow{font-size:14px}.annualdetail>summary{cursor:pointer;list-style:none}.annualdetail[open]>summary{background:#f1f4fa}.annualmonths{padding:8px 14px;background:#f7f9fc;border-radius:8px}.annualmonths .periodrow{font-size:13px}#categoryEditor{width:420px;border-radius:12px}#categoryName{width:100%}#iconChoices{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}#iconChoices button{padding:10px 5px;display:grid;place-items:center}#categoryError{color:#c95151;font-size:13px}.categorypick small{font-size:13px}.panelhead .hint{font-size:12px}footer{font-size:12px}@media(max-width:700px){.calendargrid{margin-left:-5px;margin-right:-5px}.calday{min-height:80px;padding:6px 2px;gap:6px}.calday small{font-size:10.5px;letter-spacing:-.35px}.calday b{font-size:15px}.comparevalue small{font-size:11px}.groupname{font-size:13px}.datehead small{font-size:11px}.recordtext small{font-size:12px}.recordamount{font-size:14px}#donutLegend{font-size:11px}#donutLegend small{font-size:10px}.periodrow{font-size:12px}.annualmonths{padding:8px 5px}.annualmonths .periodrow{font-size:12px}.panelhead .hint{font-size:10px}.metrics small{font-size:11px}#categoryEditor{width:calc(100% - 24px)}.calday:focus-visible{position:relative;z-index:1}}
.hint,.summarylabels,.summarygroup small,.comparevalue small,.datehead,.recordtext small{color:#7d899b}.categorypick small{line-height:1.4}#categoryEditor p{font-size:13px;color:#7d899b}.annualdetail summary::-webkit-details-marker{display:none}
#searchTotals{display:flex;flex-wrap:wrap;gap:12px 22px;background:#f2f5fb;padding:14px;border-radius:8px;margin-bottom:14px;font-size:13px}#searchTotals>b{width:100%}#searchTotals strong{font-weight:500}#pickYear{width:110px}#periodPicker>span{display:none}.yearline{width:100%;height:auto;display:block}.yearline text{font-size:11px;fill:#8592a6}.lineincome{stroke:#498b75;color:#498b75;fill:#498b75}.lineexpense{stroke:#d37b69;color:#d37b69;fill:#d37b69}polyline.lineincome,polyline.lineexpense{fill:none}.linelegend{display:flex;justify-content:center;gap:25px;font-size:13px;margin:12px 0}.metrics article[role=button]{cursor:pointer}.metrics article[role=button]:hover{background:#f7f9ff}.metrics article[role=button]:focus-visible{outline:2px solid #8fa6d9}#datePicker{width:350px;padding:20px;border-radius:12px}.datecontrols{display:flex;gap:10px}.datecontrols select{flex:1}.dategrid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:16px}.dategrid button{border:0;padding:9px 3px}.dategrid .active{background:#819bd8;color:white}#entryDate{font-size:14px;min-width:145px;background:#f7f9fd}#dateToday{width:100%}@media(max-width:700px){#datePicker{width:calc(100% - 30px)}#searchTotals{gap:10px;font-size:12px}.yearline text{font-size:12px}}
#periodGrid{width:340px;border-radius:12px;padding:18px}#periodOptions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:15px 0}#periodOptions button{padding:14px 5px}#gridTitle{flex:1;border:0;font-size:16px}#periodToday{width:100%}#dateHeading{flex:1}#periodDisplay{min-width:120px}#searchScope{font-size:13px}#periodGrid .panelhead{gap:5px}@media(max-width:700px){#periodGrid{width:calc(100% - 30px)}#searchScope{max-width:110px}}
#dataTools{margin:18px 0 14px;border-top:1px solid #e4e9f1;padding-top:14px}#dataTools summary{cursor:pointer;font-size:13px;color:#7d899b;width:max-content;padding:8px 0}#dataTools .tools{margin:8px 0 0;justify-content:flex-start}#dataTools button{min-height:40px}
