.expense-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.expense-stat{background:#fff;border:1px solid #e8e8e8;border-radius:14px;padding:22px;min-width:0}.expense-stat>span{font-size:12px;color:#707070}.expense-stat>strong{display:block;font-size:clamp(22px,2.1vw,30px);font-weight:600;letter-spacing:-.8px;margin:13px 0;overflow-wrap:anywhere}.expense-stat p{font-size:11px;color:#707070;line-height:1.6;margin:0}.expense-stat:last-child{background:#303030;border-color:#303030;color:white}.expense-stat:last-child>span,.expense-stat:last-child p{color:#d1d1d1}.expense-calendar-chart{height:250px;display:flex;gap:6px;margin:20px 24px 0}.expense-calendar-column{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;border:0;background:none;padding:0;cursor:pointer;border-bottom:2px solid transparent}.expense-calendar-column:focus-visible{outline:2px solid #606060;outline-offset:4px}.expense-calendar-column.selected{border-bottom-color:#606060}.expense-column-track{display:flex;flex-direction:column;justify-content:flex-end;height:216px}.expense-column-track i{display:block;flex-shrink:0;width:100%;border-radius:3px 3px 0 0}.expense-cost-segment{background:#8da0a9}.expense-calendar-column.projected .expense-cost-segment{background:#3b9989}.expense-tax-segment{background:#c6a265}.expense-column-label{height:28px;padding-top:8px;font-size:9px;color:#707070;text-align:center;white-space:nowrap}.expense-calendar-column.current-start{border-left:1px dashed #b3b3b3;padding-left:8px;margin-left:4px}.expense-chart-legend{display:flex;flex-wrap:wrap;gap:18px;padding:18px 24px;font-size:11px;color:#707070}.expense-chart-legend>span{display:flex;align-items:center;gap:7px}.expense-chart-legend i{width:10px;height:10px;border-radius:3px}.expense-history-key{background:#8da0a9}.expense-future-key{background:#3b9989}.expense-tax-key{background:#c6a265}.expense-note{font-size:12px;line-height:1.75;color:#707070;margin:0;padding:0 24px 20px}.expense-two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:20px;margin:20px 0;align-items:start}.expense-two-col>.panel{min-width:0}.expense-category-chart{padding:5px 24px 22px}.expense-category-chart>div{display:grid;grid-template-columns:22px minmax(70px,1fr) 150px;gap:10px;align-items:center;margin:20px 0}.expense-rank{font-size:12px;color:#707070}.expense-category-chart strong{font-size:12px}.expense-category-chart small{display:block;font-size:10px;color:#707070;margin-top:5px}.expense-category-chart>div>span:last-child{text-align:right}.expense-category-track{display:block;height:7px;background:#f0f0f0;border-radius:5px;overflow:hidden;margin-top:9px}.expense-category-track i{display:block;height:100%;background:#3b9989;border-radius:5px}.expense-two-col .row-actions .btn,.expense-two-col~.panel .row-actions .btn{padding:6px;border:none}.expense-calendar-chart+.expense-chart-legend{border-top:1px solid #f0f0f0}#expense-calendar-month{max-width:220px}
@media(max-width:1250px){.expense-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-two-col{grid-template-columns:1fr}}@media(max-width:650px){.expense-stat-grid{gap:10px}.expense-stat{padding:16px}.expense-stat>strong{font-size:23px}.expense-calendar-chart{gap:3px;margin-left:16px;margin-right:16px;height:220px}.expense-column-track{height:188px}.expense-column-label{font-size:8px}.expense-calendar-column.current-start{padding-left:4px;margin-left:0}.expense-category-chart{padding-left:16px;padding-right:16px}.expense-category-chart>div{grid-template-columns:20px minmax(50px,1fr) 125px}.expense-category-chart small{font-size:9px}.expense-note{padding-left:16px;padding-right:16px}#expense-calendar-month{max-width:165px}.expense-chart-legend{gap:10px;padding-left:16px;padding-right:16px}}

.expense-tax-reserve-panel{margin:20px 0}.expense-tax-reserve-chart{display:flex;gap:14px;padding:14px 24px 20px;overflow-x:auto}.expense-tax-reserve-chart>div{flex:1;min-width:46px;display:flex;flex-direction:column;justify-content:flex-end;text-align:center;height:120px}.expense-tax-reserve-chart span{font-size:10px;color:#687a7c;margin-bottom:7px}.expense-tax-reserve-chart i{display:block;background:#c6a265;border-radius:4px 4px 0 0;margin:0 8px}.expense-tax-reserve-chart small{font-size:10px;color:#687a7c;margin-top:8px}.expense-tax-reserve-panel .panel-head>strong{font-size:17px;color:#79613d;white-space:nowrap}@media(max-width:650px){.expense-tax-reserve-chart{padding-left:16px;padding-right:16px;gap:8px}.expense-tax-reserve-panel .panel-head{align-items:flex-start;flex-direction:column;gap:10px}}
/* Reserve space for the dollar axis beside the monthly bars. */
.expense-calendar-plot{position:relative;margin:20px 24px 0;padding-left:80px}.expense-calendar-plot .expense-calendar-chart{position:relative;z-index:1;margin:0}.expense-y-axis{position:absolute;left:0;top:6px;width:70px;height:216px;display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:10px;color:#707070;font-variant-numeric:tabular-nums}.expense-y-axis span{line-height:1;transform:translateY(-50%)}.expense-grid-lines{position:absolute;left:80px;right:0;top:6px;height:216px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.expense-grid-lines i{display:block;border-top:1px solid #e8e8e8}.expense-calendar-plot .expense-calendar-column{position:relative}.expense-month-tooltip{display:none;position:absolute;left:50%;bottom:55%;transform:translateX(-50%);width:max-content;max-width:190px;padding:10px 12px;background:#303030;color:#fff;border:1px solid #525252;border-radius:8px;box-shadow:0 5px 20px #30303022;text-align:left;z-index:5;pointer-events:none;font-size:11px;line-height:1.7;white-space:nowrap}.expense-month-tooltip strong,.expense-month-tooltip span{display:block}.expense-month-tooltip strong{font-size:12px;margin-bottom:4px}.expense-calendar-column:hover .expense-month-tooltip,.expense-calendar-column:focus .expense-month-tooltip{display:block}.expense-calendar-column:nth-child(-n+6) .expense-month-tooltip{left:0;transform:none}.expense-calendar-column:nth-last-child(-n+6) .expense-month-tooltip{left:auto;right:0;transform:none}.mortgage-expense-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px}.mortgage-expense-notice .btn{flex-shrink:0}.mortgage-expense-links{margin-top:22px}.mortgage-expense-link{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:18px 24px;border-top:1px solid var(--border)}.mortgage-expense-link strong{font-size:14px}.mortgage-expense-link span{display:block;font-size:11px;color:var(--muted);margin-top:5px;text-transform:capitalize}.mortgage-expense-link p{font-size:12px;line-height:1.6;color:var(--muted);margin-top:7px;max-width:690px}.mortgage-expense-link .btn{flex-shrink:0;font-size:12px}@media(max-width:650px){.expense-calendar-plot{margin-left:16px;margin-right:16px;padding-left:67px}.expense-y-axis{width:59px;height:188px;font-size:9px;top:4px}.expense-grid-lines{left:67px;height:188px;top:4px}.expense-calendar-plot .expense-calendar-chart{margin:0}.expense-month-tooltip{max-width:170px;padding:8px 10px;font-size:10px;bottom:45%}.expense-month-tooltip strong{font-size:11px}.mortgage-expense-notice,.mortgage-expense-link{align-items:flex-start;flex-direction:column;gap:12px}.mortgage-expense-link{padding:16px}}
@media(max-width:650px){.expense-calendar-panel>.panel-head{flex-direction:column;align-items:flex-start;gap:12px}.expense-calendar-panel>.panel-head>div{width:100%;min-width:0}.expense-calendar-column .expense-column-label{visibility:hidden}.expense-calendar-column:nth-child(4n+1) .expense-column-label,.expense-calendar-column:last-child .expense-column-label{visibility:visible}}
.expense-linked-badge{display:inline-block;margin-left:9px;font-size:9px;vertical-align:middle}

.expense-schedule-details{margin-top:12px;max-width:400px;white-space:normal;font-size:11px;color:var(--muted);line-height:1.6}
.expense-schedule-details summary{cursor:pointer;color:var(--teal);font-weight:500}
.expense-schedule-details p{margin:6px 0}
.expense-schedule-details>div{border-top:1px solid var(--border);padding:9px 0;margin-top:8px}
.expense-schedule-details .row-actions{justify-content:flex-start}

.expense-y-axis span,.expense-grid-lines i{position:absolute;right:0;left:0}.expense-grid-lines i{width:100%}.expense-axis-note{margin:7px 24px 0;font-size:11px;color:var(--muted)}

/* Spending stays neutral; the tax overlay retains a distinct amber key. */
.expense-cost-segment,.expense-history-key{background:#a3a3a3}
.expense-calendar-column.projected .expense-cost-segment,.expense-future-key,.expense-category-track i{background:#626262}
.expense-tax-reserve-chart span,.expense-tax-reserve-chart small{color:var(--muted)}
.expense-tax-segment.historical{opacity:.72}
.expense-tax-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:12px;font-weight:400;color:var(--muted);line-height:1.4;white-space:nowrap;cursor:pointer}
.expense-tax-toggle input{width:16px;height:16px;min-width:16px;margin:0;accent-color:var(--accent);cursor:pointer}
.expense-month-tooltip{white-space:normal;overflow-wrap:anywhere}
.expense-calendar-column:last-child .expense-column-label{align-self:flex-end;width:max-content}
.expense-tax-method summary{cursor:pointer}.expense-tax-method p{margin-top:10px}
@media(max-width:650px){.expense-calendar-column:nth-child(4n+1):nth-last-child(-n+4):not(:last-child) .expense-column-label{visibility:hidden}}

/* Keep eight ranked entries in view; preserve the rest in an accessible list. */
.expense-two-col{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
/* Scroll long rankings without growing the whole page. */
.expense-list-scroll{--expense-row-height:68px;max-height:calc(8 * var(--expense-row-height) + 12px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:6px 18px}
.expense-list-scroll>div{height:var(--expense-row-height);margin:0;grid-template-columns:20px minmax(0,1fr) minmax(96px,125px);gap:8px;border-bottom:1px solid var(--border)}
.expense-list-scroll>div:last-child{border-bottom:0}
.expense-list-scroll>div>div{min-width:0}
.expense-list-scroll>div>div>strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}
.expense-list-scroll>div>div>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.expense-list-scroll>div>span:last-child>strong{white-space:nowrap}
.expense-list-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.expense-scroll-hint{font-size:10px;color:var(--muted);margin:9px 18px 13px}
@media(orientation:portrait){.expense-two-col{grid-template-columns:1fr}}

.expense-view-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}.expense-view-tabs .selected{background:var(--accent,#484848);color:#fff}
.actual-expenses-panel{padding-bottom:16px}.actual-expenses-panel>.panel-head label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.actual-expenses-panel input[type=month]{width:auto;max-width:100%}
.actual-expense-actions{display:flex;flex-wrap:wrap;gap:10px;padding:0 24px 12px}.actual-expense-actions .btn:disabled{opacity:.5;cursor:not-allowed}
.actual-expense-stats{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 24px;margin:0 0 20px}.actual-expense-stats .expense-stat{box-shadow:none;background:var(--bg,#f5f5f5);color:var(--text,#262626);border-color:var(--border,#e8e8e8)}.actual-expense-stats .expense-stat>span,.actual-expense-stats .expense-stat p{color:var(--muted,#707070)}
.actual-category-list{display:flex;flex-wrap:wrap;gap:8px;padding:0 24px 16px}.actual-category-list>span{font-size:12px;border:1px solid var(--border);padding:6px 9px;border-radius:6px}.actual-category-list strong{margin-left:6px}
.actual-expense-list{padding:0 24px;max-height:600px;overflow-y:auto}.actual-expense-row{display:grid;grid-template-columns:100px minmax(0,1fr) 110px auto;align-items:center;gap:14px;padding:16px 0;border-top:1px solid var(--border);font-size:13px}.actual-expense-row time,.actual-expense-row small{font-size:12px;color:var(--muted)}.actual-expense-row small{display:block;margin-top:4px;overflow-wrap:anywhere}.actual-expense-row>div>strong{overflow-wrap:anywhere}.actual-expense-amount{text-align:right;white-space:nowrap}.actual-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:255px}.actual-row-actions .btn{font-size:12px;padding:8px}
.actual-import-preview{max-height:320px;overflow:auto;margin:12px 0}.actual-import-preview>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.actual-import-preview small{display:block;color:var(--muted);margin-top:4px}.actual-import-preview strong{white-space:nowrap}
@media(max-width:650px){.actual-expense-stats{grid-template-columns:1fr;padding:0 18px}.actual-expense-actions,.actual-category-list{padding-left:18px;padding-right:18px}.actual-expense-list{padding:0 18px}.actual-expense-row{grid-template-columns:minmax(0,1fr) auto;gap:8px}.actual-expense-row time{grid-column:1/-1}.actual-expense-row>div:nth-child(2){grid-column:1}.actual-expense-amount{grid-column:2}.actual-row-actions{grid-column:1/-1;justify-content:flex-end}.actual-expenses-panel .panel-head{align-items:flex-start;flex-wrap:wrap;gap:14px}.expense-view-tabs .btn{flex:1;min-width:135px}}
/* Fit receipt photos inside the dialog without stretching them. */
.receipt-photo-preview{display:block;max-width:100%;max-height:220px;object-fit:contain;margin:12px auto;border:1px solid var(--border);border-radius:8px}.receipt-photo-review{margin:12px 0}.receipt-photo-review img{display:block;max-width:100%;max-height:420px;object-fit:contain;margin:12px auto}

.adhoc-chart-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;margin:24px 0;align-items:start}.adhoc-chart-grid>.panel{min-width:0}.adhoc-category-pie{display:flex;flex-direction:column;align-items:center;padding:0 24px 24px}.adhoc-category-pie .sector-donut{width:210px;height:210px;max-width:100%;margin:4px auto 24px;flex-shrink:0}.adhoc-category-pie .donut-center-content strong{font-size:22px}.adhoc-pie-legend{width:100%;max-height:300px;overflow:auto}.adhoc-pie-legend>div{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:9px;align-items:center;font-size:12px;padding:8px 0}.adhoc-pie-legend i{width:9px;height:9px;border-radius:2px}.adhoc-pie-legend span{overflow-wrap:anywhere}.adhoc-category-bars{max-height:510px;overflow:auto}.adhoc-category-bars>div{grid-template-columns:20px minmax(60px,1fr) minmax(85px,auto)}.adhoc-category-bars strong{overflow-wrap:anywhere}.adhoc-top-expenses{margin:24px 0;padding-bottom:18px}.adhoc-top-expenses .actual-expense-row{grid-template-columns:24px minmax(0,1fr) 110px auto}.adhoc-ai-panel{margin:24px 0;padding-bottom:8px}.adhoc-ai-panel>.panel-head{flex-wrap:wrap;gap:14px}.adhoc-ai-panel>.form-error,.adhoc-ai-panel>.loading-indicator{margin:0 24px 20px}.adhoc-ai-reply{padding:0 24px 24px;line-height:1.7;font-size:13px;overflow-wrap:anywhere}.adhoc-ai-reply h2,.adhoc-ai-reply h3{font-size:16px}
@media(max-width:850px){.adhoc-chart-grid{grid-template-columns:1fr}}@media(max-width:650px){.adhoc-top-expenses .actual-expense-row{grid-template-columns:20px minmax(0,1fr) auto}.adhoc-top-expenses .actual-expense-row>div:nth-child(2){grid-column:2}.adhoc-top-expenses .actual-expense-amount{grid-column:3}.adhoc-top-expenses .actual-row-actions{grid-column:2/-1}.adhoc-category-pie{padding:0 18px 20px}.adhoc-ai-reply{padding:0 18px 18px}}

/* Keep the empty ledger readable and aligned with the panel controls. */
.actual-expenses-panel>.panel-head{align-items:flex-start}
.actual-expense-empty{padding:18px 0 22px;font-size:13px;color:var(--text)}
.actual-expense-empty strong{display:block;font-weight:600}
.actual-expense-empty p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.65}
