*{box-sizing:border-box}body{margin:0;background:#f5f7fa;color:#182b36;font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,select{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #55bba0;outline-offset:3px}a{color:inherit;text-decoration:none}header{height:88px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid #e7ecf0}.brand{display:flex;align-items:center;gap:12px;font-size:26px;font-weight:750;letter-spacing:-1px}.mark{background:#087b5d;width:40px;height:40px;border-radius:12px;color:white;text-align:center;line-height:34px;font-size:34px}.private{font-size:14px;font-weight:400;color:#75818a;letter-spacing:0;border-left:1px solid #e0e5e8;padding-left:20px;margin-left:14px}.header-right{display:flex;gap:24px;align-items:center}.demo-tag{font-size:13px;color:#87641d;background:#fff5d9;padding:5px 12px;border-radius:6px}.avatar{width:36px;height:36px;background:#e8edf2;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700}.app{display:grid;grid-template-columns:220px 1fr;max-width:1700px;margin:auto}aside{padding:34px 18px;background:white;border-right:1px solid #e7ecf0;display:flex;flex-direction:column;min-height:calc(100vh - 88px)}nav{display:grid;gap:8px}.nav{border:0;background:none;text-align:left;padding:13px 18px;display:flex;gap:12px;align-items:center;border-radius:9px;color:#657480;font-size:15px;font-weight:550}.nav span{font-size:23px;width:24px}.nav.active{background:#e6f4ee;color:#087759}.aside-note{margin-top:auto;padding:80px 12px 24px;font-size:14px;color:#80909a}.aside-note strong{display:block;color:#546671;font-size:14px;margin-top:12px}.aside-note a{display:block;color:#087759;font-size:13px;margin-top:22px}.lock{font-size:30px;color:#7eaaa0}main{padding:36px 36px 20px;min-width:0}.page-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{font-size:12px;letter-spacing:1.5px;color:#829098;font-weight:700;margin:0 0 5px}h1{font-size:30px;line-height:1.25;letter-spacing:-1px;margin:0;font-weight:650}.actions{display:flex;gap:12px;align-items:center}.month select{background:white;border:1px solid #dce3e8;border-radius:8px;padding:11px 14px;font-size:14px;color:#344652}.primary{background:#087c5b;color:white;border:0;border-radius:8px;padding:12px 18px;font-size:14px;font-weight:600}.primary:hover{background:#056748}.notice{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid #e7e1cc;background:#fffdf4;color:#7e724e;border-radius:8px;font-size:13px;margin-bottom:22px}.notice>span{font-style:italic;font-weight:bold;font-family:serif}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.metric{position:relative;padding:23px;background:white;border:1px solid #e3e9ed;border-radius:14px;overflow:hidden;min-height:180px}.metric-label{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:#6f7d87;margin-bottom:18px}.metric-label>span{font-size:20px;background:#f1f5f9;border-radius:6px;padding:0 6px}.metric strong{display:block;font-size:clamp(23px,2.3vw,34px);letter-spacing:-1px;line-height:1.15;font-weight:650;white-space:nowrap}.metric small{font-size:14px;font-weight:400;letter-spacing:0}.metric p{font-size:13px;color:#8a969e;margin:10px 0}.main-metric{background:#087759;color:white;border-color:#087759}.main-metric .metric-label,.main-metric p{color:#bfddd3}.main-metric .metric-label>span{background:#ffffff18;color:white}.main-metric svg{position:absolute;right:0;bottom:0;width:50%;height:48px;opacity:.25;fill:none;stroke:#9fe6c9;stroke-width:3}.mini-bar{height:5px;border-radius:8px;background:#f4f5f7;margin-top:18px;overflow:hidden}.mini-bar i{display:block;height:100%;background:#eab895;border-radius:8px}.subtle-badge{font-size:12px;color:#647b8c;background:#f0f4f7;padding:4px 8px;border-radius:5px}.orange{color:#ce8d62}.blue{color:#6089b8}.purple{background:#a292d0!important}.charts{display:grid;grid-template-columns:1.65fr 1fr;gap:24px;margin-bottom:24px}.panel{border:1px solid #e3e9ed;border-radius:14px;background:white;padding:24px;min-width:0}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}h2{font-size:17px;letter-spacing:-.2px;margin:0;font-weight:650}.panel-heading p{font-size:13px;color:#8b979f;margin:5px 0 0}.legend{display:flex;gap:15px;font-size:12px;white-space:nowrap;margin-top:5px}.legend span,.source-list span{display:flex;align-items:center;gap:8px}i.green{background:#139c75}i.light{background:#b8d9cb}i.amber{background:#e5bb6e}i.gray{background:#d4dce2}.legend i,.source-list i{display:inline-block;width:8px;height:8px;border-radius:50%}.plot{height:222px;display:flex;padding-top:12px}.axis{display:flex;flex-direction:column;justify-content:space-between;color:#a2aab0;font-size:12px;width:30px;padding-bottom:28px}.bars{display:flex;flex:1;justify-content:space-around;border-bottom:1px solid #e8edef;margin-bottom:28px;background:repeating-linear-gradient(to top,transparent 0,transparent calc(33.33% - 1px),#eff2f4 calc(33.33% - 1px),#eff2f4 33.33%);gap:8px}.bars>div{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:5px;width:11%;height:100%}.bars b,.bars i{display:block;width:21px;border-radius:5px 5px 0 0;background:#2a9d7a}.bars i{background:#bddbd0}.bars label{position:absolute;top:100%;padding-top:12px;font-size:12px;color:#8a969e}.bars .selected b{background:#087759}.bars .selected label{color:#087759;font-weight:650}.sources{display:grid;grid-template-columns:1fr 1fr;align-content:start;column-gap:22px}.sources .panel-heading{grid-column:span 2}.donut{align-self:center;width:150px;height:150px;border-radius:50%;background:conic-gradient(#139c75 0 75%,#a292d0 75% 90%,#e5bb6e 90% 98%,#d4dce2 98% 100%);padding:17px;margin:13px auto}.donut>div{width:100%;height:100%;border-radius:50%;background:white;display:flex;align-items:center;justify-content:center;flex-direction:column}.donut span{font-size:12px;color:#8a969e}.donut strong{font-size:25px;font-weight:650}.source-list{align-self:center;font-size:14px}.source-list>div{display:flex;justify-content:space-between;gap:14px;padding:11px 0}.source-list b{font-size:13px;font-weight:550}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.text-button{border:0;background:none;color:#087759;font-size:13px;padding:2px;white-space:nowrap}.allocation-list>div{display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #f0f3f5;font-size:14px}.allocation-list>div:last-child{border:0}.allocation-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:#e5f3eb;color:#15855e}.allocation-icon.blue{background:#edf3fb}.allocation-icon.purple{background:#f1eef9!important;color:#9d88c9}.allocation-list small{display:block;font-size:12px;color:#98a3ab}.allocation-list b{margin-left:auto;font-size:12px;color:#9ba5ad;font-weight:400}.entry{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #f0f3f5}.entry:last-child{border:0}.entry-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#eaf5ef;color:#168461}.entry-icon.expense{background:#fbefea;color:#c58b6b}.entry-name{font-size:14px;flex:1}.entry-name small{display:block;font-size:12px;color:#9aa5ad}.entry-amount{font-size:14px;color:#168461;font-weight:600;white-space:nowrap}.entry-amount.expense{color:#344652}.filters{display:flex;gap:6px}.filters button{background:#f6f8fa;border:0;padding:7px 10px;border-radius:6px;font-size:13px;color:#6a7d86}.filters .selected{background:#e5f3eb;color:#087759}footer{display:flex;justify-content:space-between;margin-top:28px;color:#9ba6ae;font-size:12px}.close-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.checklist{list-style:none;padding:0;margin:0 0 25px}.checklist li{display:flex;gap:16px;margin:26px 0}.checklist li>b{background:#e8f4ee;color:#087759;border-radius:50%;min-width:30px;height:30px;text-align:center;padding-top:2px}.checklist h3{font-size:16px;margin:0 0 5px}.checklist p{font-size:14px;color:#84929b;margin:0}.close-note{background:#103e34;color:white;border-radius:14px;padding:32px}.close-note h2{font-size:32px;line-height:1.2;margin:14px 0 24px}.close-note p{color:#b7d0c9;font-size:15px}.close-note>div{font-size:18px;margin-top:35px}.close-note span{color:#9dc3b6}.close-note hr{border:0;border-top:1px solid #ffffff30}.close-note strong{font-size:16px}#close-message{font-size:14px;color:#84733d}dialog{border:0;border-radius:18px;width:min(450px,calc(100% - 32px));padding:28px;color:#21343d;box-shadow:0 30px 100px #122c3b30}dialog::backdrop{background:#102c3c66;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading button{background:none;border:0;font-size:28px;color:#87959e}.form-help{font-size:13px;color:#8a7550;margin-top:0}form>label{display:block;font-size:14px;font-weight:600;margin-top:18px}form>label input{display:block;width:100%;border:1px solid #dbe3e8;border-radius:8px;padding:11px 12px;margin-top:6px;font-weight:400}form small{font-size:12px;color:#929fa7;font-weight:400}.segmented{display:flex;gap:24px;background:#f1f6f4;padding:12px;border-radius:8px;font-size:14px}.segmented input{accent-color:#087759;margin-right:8px}.submit{width:100%;margin-top:24px}#form-error{color:#ba5141;font-size:13px;margin-top:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#173c31;color:white;padding:12px 24px;border-radius:10px;box-shadow:0 5px 30px #0002;z-index:10;font-size:14px}.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}[hidden]{display:none!important}@media(min-width:1450px){main{padding:42px 50px}.metric{min-height:190px}.plot{height:250px}}@media(max-width:1180px){.app{grid-template-columns:185px 1fr}main{padding:28px 24px}.sources{display:block}.sources .panel-heading{margin-bottom:5px}.source-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.donut{width:128px;height:128px;padding:15px}.charts{grid-template-columns:1.4fr 1fr}.page-top{align-items:flex-start}.actions{flex-wrap:wrap;justify-content:flex-end}.metric{padding:18px}.metric strong{font-size:25px}.legend{flex-direction:column;gap:3px}.private{display:none}}@media(max-width:850px){header{padding:0 22px;height:72px}.app{display:block}aside{padding:12px 18px;min-height:0;border-bottom:1px solid #e7ecf0}nav{display:flex;gap:8px}.nav{padding:8px 13px;font-size:14px}.aside-note{display:none}main{padding:24px 20px}.metrics{gap:12px}.metric strong{font-size:23px}.charts{gap:16px}.bottom-grid{gap:16px}.panel{padding:20px}.close-layout{grid-template-columns:1fr}}@media(max-width:600px){header{padding:0 18px}.brand{font-size:23px}.mark{width:34px;height:34px;line-height:29px;font-size:29px}.header-right{gap:10px}.demo-tag{font-size:11px}.avatar{display:none}aside{padding:10px}.nav{flex:1;padding:9px 7px;justify-content:center;font-size:13px;gap:6px}.nav span{font-size:19px;width:19px}.page-top{display:block}h1{font-size:27px}.actions{justify-content:space-between;margin-top:20px}.month select,.primary{font-size:13px;padding:11px 13px}.notice{font-size:12px;align-items:flex-start}.metrics{grid-template-columns:1fr 1fr;gap:12px}.metric{min-height:160px;padding:18px 16px}.main-metric{grid-column:span 2;min-height:155px}.metric strong{font-size:24px}.main-metric strong{font-size:36px}.metric small{display:block;font-size:12px;margin-top:5px}.main-metric small{display:inline;font-size:14px}.metric-label{font-size:13px;margin-bottom:15px}.metric-label>span{display:none}.metric p{font-size:12px}.subtle-badge{font-size:10px;padding:3px}.charts,.bottom-grid{grid-template-columns:1fr;gap:16px}.sources{display:grid;grid-template-columns:1fr 1fr}.source-list{display:block}.panel-heading{gap:8px}.panel-heading p{font-size:12px}h2{font-size:16px}.legend{flex-direction:row;font-size:10px;gap:9px}.plot{height:200px}.allocation-list b{font-size:11px}.filters{gap:3px}.filters button{font-size:11px;padding:6px}.entry-amount{font-size:13px}footer{display:block}footer>span{display:block;margin:6px 0}main{padding:24px 16px 18px}.close-note h2{font-size:27px}}

/* Monthly cash movement: investment contributions are shown separately from expenses. */
.chart-caption{font-size:13px;color:#87959e;margin:-12px 0 12px}.trend .panel-heading{flex-wrap:wrap;gap:8px}.trend .legend{flex-direction:row;flex-wrap:wrap;gap:12px}.bars .invest-bar{display:block;width:16px;border-radius:4px 4px 0 0;background:#9b83c9;font-style:normal}.bars b,.bars i{width:18px}.bars>div{gap:4px;width:13%}.legend i.purple{background:#9b83c9!important}@media(max-width:600px){.bars b,.bars i,.bars .invest-bar{width:12px}.bars>div{gap:3px}.chart-caption{font-size:12px;margin-top:-8px}.trend .legend{font-size:12px}}
/* Phone layout: thumb-friendly controls and no chart overflow. */
@media(max-width:600px){
 body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
 aside{position:fixed;bottom:0;left:0;right:0;z-index:20;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #e0e8e7;border-bottom:0;background:#fffffff5;backdrop-filter:blur(12px)}
 nav{gap:5px}.nav{min-height:54px;flex-direction:column;gap:2px;font-size:12px;border-radius:10px}.nav span{font-size:23px;line-height:25px;width:auto}
 header{height:68px}.actions{gap:8px}.month{min-width:0}.month select{min-height:46px;max-width:100%;font-size:14px}.primary{min-height:46px;font-size:14px}
 .metric{min-width:0}.metric strong{font-size:clamp(19px,5.5vw,26px);white-space:normal;overflow-wrap:anywhere}.main-metric strong{font-size:34px}.metric p{font-size:13px}.subtle-badge{font-size:12px;display:inline-block;white-space:normal}
 .charts,.bottom-grid{grid-template-columns:minmax(0,1fr)}.panel{padding:18px;overflow:hidden}.trend .panel-heading{display:block}.trend .legend{margin-top:14px;gap:13px;font-size:12px}.chart-caption{margin-top:-10px}.plot{height:210px}.bars{min-width:0;gap:4px}.axis{width:25px;flex-shrink:0}.bars>div{flex:1;min-width:0;width:auto;gap:3px}.bars b,.bars i,.bars .invest-bar{width:clamp(7px,2.4vw,12px)}.bars label{font-size:11px}
 .sources{column-gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.donut{width:128px;height:128px;max-width:100%;aspect-ratio:1;height:auto}.donut>div{aspect-ratio:1}.source-list{font-size:13px}.source-list>div{gap:6px}.source-list span{gap:6px}.source-list b{font-size:13px}
 .allocation-list>div{flex-wrap:wrap;gap:10px}.allocation-list>div>span:nth-child(2){flex:1}.allocation-list b{font-size:12px}.allocation-list small,.entry-name small{font-size:13px}.entry-name{min-width:0;overflow-wrap:anywhere}.entry-amount{font-size:13px}.recent .panel-heading p{font-size:13px}
 #entries-view .panel-heading{flex-direction:column}.filters{width:100%;gap:6px}.filters button{flex:1;min-height:42px;font-size:13px}.text-button{min-height:36px;display:flex;align-items:center;font-size:13px}
 dialog{width:100%;max-width:100%;max-height:90dvh;margin:auto 0 0;border-radius:20px 20px 0 0;padding:24px 22px calc(24px + env(safe-area-inset-bottom));overflow-y:auto}form>label input{font-size:16px;min-height:48px}.dialog-heading button{min-height:44px;min-width:44px}.segmented label{min-height:36px;display:flex;align-items:center;flex:1}.form-help{font-size:13px}.checklist li{gap:12px}.checklist p{font-size:14px}
 footer{padding-bottom:8px}#toast{bottom:calc(85px + env(safe-area-inset-bottom));width:calc(100% - 32px);text-align:center}
}

/* Separate movement colors from income-source colors. */
.trend .legend i.green,.bars b{background:#159570!important}
.trend .legend i.light,.bars i{background:#df816f!important}
.trend .legend i.purple,.bars .invest-bar{background:#548bd5!important}
.bars .selected b{background:#087759!important}
.sources .donut{background:conic-gradient(#8666bd 0 75%,#d7aa40 75% 90%,#bc6d9e 90% 98%,#8b929d 98% 100%)}
.sources .source-list i.green{background:#8666bd}
.sources .source-list i.purple{background:#d7aa40!important}
.sources .source-list i.amber{background:#bc6d9e}
.sources .source-list i.gray{background:#8b929d}
.mini-bar i{background:#df816f}
/* Keep all six month groups inside their panel at intermediate widths too. */
.plot,.bars{min-width:0}.axis{flex-shrink:0}.bars>div{flex:1;min-width:0;width:auto}.bars b,.bars i,.bars .invest-bar{flex:1;min-width:0;max-width:18px}.trend{overflow:hidden}.trend .legend{white-space:normal}
.chart-modes{display:flex;gap:4px;background:#f1f4f7;border-radius:8px;padding:4px;width:fit-content;margin:0 0 20px}.chart-modes button{border:0;background:transparent;color:#70818c;padding:7px 13px;border-radius:5px;font-size:13px;min-height:34px}.chart-modes button[aria-pressed=true]{background:white;color:#163c31;box-shadow:0 1px 4px #172d3912;font-weight:600}.movement-svg{display:block;width:100%;height:auto;min-height:190px;overflow:visible}.movement-svg text{font:12px Arial,sans-serif;fill:#7b8b96}.source-modes,#source-alternative{grid-column:1/-1}.chart-table-wrap{max-width:100%;overflow-x:auto}.chart-table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}.chart-table th,.chart-table td{padding:10px 7px;text-align:right;border-bottom:1px solid #edf1f4}.chart-table th:first-child{text-align:left}.chart-table thead{color:#71848f;background:#f4f7f9}.chart-table tbody th{font-weight:500}.source-bar-row{margin:18px 0}.source-bar-row>div:first-child{display:flex;justify-content:space-between;font-size:14px;margin-bottom:9px}.source-bar-row b{font-weight:550}.source-track{height:12px;background:#f1f4f7;border-radius:5px;overflow:hidden}.source-track span{display:block;height:100%;border-radius:5px}.sources .panel-heading{margin-bottom:16px}@media(max-width:600px){.chart-modes button{min-height:40px;padding:7px 15px}.movement-svg{min-height:175px}.chart-table{font-size:12px}.chart-table td,.chart-table th{padding:10px 5px}}
#chart-tooltip{position:fixed;z-index:100;max-width:calc(100vw - 20px);padding:11px 15px;border-radius:9px;background:#172e3b;color:#fff;font-size:14px;line-height:1.5;box-shadow:0 5px 22px #10263330;pointer-events:none;white-space:normal}
[data-detail]{cursor:pointer}.chart-point{stroke:transparent;stroke-width:20px;pointer-events:all}.chart-point:hover,.chart-point:focus{stroke:#548bd533;outline:none}.source-list>div:focus-visible,.source-bar-row:focus-visible{outline:2px solid #548bd5;outline-offset:4px;border-radius:5px}
/* Keep totals and chart details within their own cards. */
.metric{min-width:0;container-type:inline-size}.metric strong{white-space:normal;font-size:clamp(20px,10cqw,34px);overflow-wrap:anywhere}.metric strong small{display:block;margin-top:5px;font-size:14px;letter-spacing:0}.donut strong{font-size:clamp(18px,3vw,25px);white-space:nowrap}.source-list{min-width:0}.source-list>div{min-width:0;flex-wrap:wrap}#chart-tooltip{box-sizing:border-box;overflow-wrap:anywhere}
form>label select{display:block;width:100%;min-height:48px;border:1px solid #dbe3e8;border-radius:8px;padding:11px 12px;margin-top:6px;background:white;color:#21343d;font-size:16px;font-weight:400}
#new-source-controls{margin-top:8px}#new-source-editor{padding:15px;border:1px solid #dbe7e2;background:#f7faf9;border-radius:10px;margin-top:8px}#new-source-editor label{font-size:14px}#new-source-name{width:100%;min-height:46px;border:1px solid #dbe3e8;border-radius:7px;padding:10px;margin:6px 0 12px;font-size:16px}.source-editor-actions{display:flex;gap:16px;align-items:center}#source-error{font-size:13px;color:#ad513c;margin:6px 0 0}.source-list span{min-width:0;overflow-wrap:anywhere}.source-list i{flex-shrink:0}.source-bar-row span{overflow-wrap:anywhere;min-width:0}

.month-check{margin:18px 0;background:#f5f8f7;border-radius:12px;padding:16px;min-width:0}.month-check-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.month-check select{max-width:130px;padding:9px;border:1px solid #dce3e8;border-radius:8px;background:white;font-size:16px}.month-amounts{display:flex;flex-wrap:wrap;gap:12px 24px;margin:15px 0;font-size:12px;color:#637681}.month-amounts b{display:block;color:#20343d;font-size:14px;overflow-wrap:anywhere}#month-comparison>strong{font-size:27px;color:#087759;margin-right:8px}.ratio-caption{font-size:13px}.expense-track{height:7px;background:#e0e8e5;border-radius:6px;overflow:hidden;margin:12px 0}.expense-track i{display:block;height:100%;background:#159570}#month-comparison p{font-size:14px;color:#087759;margin:8px 0}#month-comparison small{font-size:11px;color:#71818a}#month-comparison.over-budget>strong,#month-comparison.over-budget p{color:#b64034}.over-budget .expense-track i{background:#d95749}

/* Compact monthly summary and balanced source chart. */
.charts{align-items:start}.trend .panel-heading{margin-bottom:16px}.chart-modes{margin-bottom:16px}.month-check{padding:14px 16px;margin:0 0 20px}.month-check-heading{font-size:13px}.month-check select{font-size:14px;padding:7px 10px;min-height:38px}.month-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}.month-amounts b{font-size:18px;margin-top:3px;font-weight:650}.month-amounts .ratio-value{text-align:right}.ratio-value b{color:#087759}.over-budget .ratio-value b{color:#b64034}.expense-track{height:5px;margin:10px 0}#month-comparison p{font-size:12px;margin:8px 0 0}.sources{display:flex;flex-direction:column;gap:0}.sources .panel-heading{margin-bottom:16px}.sources .donut{width:210px;height:210px;max-width:100%;padding:23px;margin:20px auto 24px;flex-shrink:0}.sources .donut strong{font-size:29px}.sources .source-list{display:grid;grid-template-columns:minmax(0,1fr);width:100%;font-size:14px}.sources .source-list>div{padding:12px 0;border-bottom:1px solid #edf1f4;flex-wrap:nowrap}.sources .source-list>div:last-child{border-bottom:0}.sources .source-list b{flex-shrink:0}.sources #source-alternative{width:100%}
@media(max-width:600px){.month-check{padding:12px}.month-amounts{gap:8px}.month-amounts b{font-size:16px}.month-check select{min-height:44px}.sources .donut{width:180px;height:180px;padding:20px;margin:16px auto}.sources .donut strong{font-size:26px}.sources .source-list>div{padding:10px 0}}

.sources .donut{height:auto;aspect-ratio:1}.sources .donut>div{aspect-ratio:1;height:auto}.sources .source-list>div{align-items:center}.sources .source-list b{white-space:nowrap}

.source-amount{display:block;text-align:right;font-size:13px;color:#627680;margin-top:7px;font-variant-numeric:tabular-nums}.source-bar-row{padding:2px 0 14px;border-bottom:1px solid #edf1f4}.source-bar-row:last-child{border-bottom:0}.source-bar-row>div:first-child{gap:12px;align-items:center}.source-bar-row b{flex-shrink:0}

.month{display:flex;align-items:center;gap:9px}.filter-label{font-size:13px;color:#657480}.empty-period{padding:24px 0;color:#829098;font-size:14px}#comparison-period{font-size:12px;color:#71818a;text-align:right}.allocation-list b{max-width:45%;overflow-wrap:anywhere;text-align:right}

.period-filter{position:relative;min-width:0;z-index:30}#filter-toggle{display:flex;align-items:center;gap:12px;min-height:52px;border:1px solid #dae4e1;border-radius:12px;padding:9px 14px;background:white;color:#213b34;text-align:left;cursor:pointer;box-shadow:0 2px 5px #183c3004}#filter-toggle:hover,#filter-toggle[aria-expanded=true]{border-color:#65b39b;background:#fbfefc}#filter-toggle small{display:block;font-size:10px;color:#7b8b85;margin-bottom:1px}#filter-current{font-size:14px;font-weight:600;white-space:nowrap}.filter-symbol{font-size:23px;color:#168561}.filter-chevron{margin-left:10px;color:#7b8b85;font-size:19px}#filter-panel{position:absolute;right:0;top:calc(100% + 10px);width:300px;padding:16px;background:white;border:1px solid #e0e8e5;border-radius:16px;box-shadow:0 16px 48px #12362a26}.period-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f0f5f3;padding:4px;border-radius:10px;gap:4px}.period-tabs button{border:0;background:transparent;color:#71827a;border-radius:7px;padding:10px;font-size:14px;font-weight:600;min-height:42px}.period-tabs button[aria-selected=true]{background:white;color:#087759;box-shadow:0 2px 6px #183c3010}#year-panel p{font-size:12px;color:#7c8c85;margin:18px 0 10px}.year-choice{width:100%;display:flex;justify-content:space-between;align-items:center;border:1px solid #e2eae6;background:#fafcfb;padding:14px;border-radius:10px;color:#273d34;font-size:18px;font-weight:600}.year-choice span{font-size:12px;font-weight:400;color:#6b8578}.filter-year{text-align:center;font-size:14px;font-weight:650;color:#40584c;padding:16px 0 12px}.month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.month-grid button{border:1px solid transparent;background:#f7f9f8;border-radius:8px;min-height:44px;padding:9px 3px;font-size:12px;color:#425b4e}.month-grid button:hover,.year-choice:hover{background:#edf6f1}.month-grid button.chosen,.year-choice.chosen{background:#e6f4ee;border-color:#78bca4;color:#087759;font-weight:650}.period-filter button:focus-visible{outline:2px solid #159570;outline-offset:3px}@media(max-width:600px){#filter-panel{left:0;right:auto;width:min(300px,calc(100vw - 32px))}#filter-toggle{gap:8px;padding:8px 11px;min-height:48px}#filter-current{font-size:13px}.filter-chevron{margin-left:2px}.actions{align-items:center}.filter-symbol{font-size:20px}}

.auth-view{min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-view form{width:min(100%,380px);background:white;border:1px solid #e0e8e4;border-radius:20px;padding:30px;box-shadow:0 12px 45px #173d3010}.auth-view h1{font-size:25px;margin-top:20px}.auth-view p{color:#78877f;font-size:14px}.auth-view button{width:100%;margin-top:16px}.auth-view input{font-size:16px}#auth-error,#connection-error{color:#b64034}button:disabled{opacity:.5;cursor:wait}.connection-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#71847a;margin-bottom:16px}.sync-warning{color:#a16b1c}.edit-record{border:0;background:#edf5f0;color:#087759;border-radius:7px;min-width:36px;min-height:36px}.entry-icon.allocation{background:#edf3fb;color:#548bd5}.entry-amount.allocation{color:#548bd5}.year-picker{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#6b8578;margin:12px 0}.year-picker select{padding:7px 12px;border:1px solid #dce6df;border-radius:7px;background:white;color:#254735;font-size:14px}.plan-grid{display:grid;gap:10px;max-width:700px;margin:20px 0}.plan-row{display:grid;grid-template-columns:1fr 100px 1fr;gap:12px;align-items:center;background:#f6f9f7;padding:14px;border-radius:10px;font-size:14px}.plan-row input{width:65px;padding:8px;border:1px solid #dce6df;border-radius:6px;font-size:16px}.plan-row output{text-align:right}.segmented{gap:10px;flex-wrap:wrap}dialog{max-height:90dvh;overflow-y:auto}footer a{color:#087759}#plan-total{font-weight:600}#plan-remaining{font-size:14px;color:#657480}@media(max-width:600px){.plan-row{grid-template-columns:1fr 100px}.plan-row output{grid-column:1/-1}.entry{gap:8px}.entry-amount{font-size:12px}}
