:root{
  --bg:#f5efe6;--paper:#fffaf2;--panel:#fffdf8;--ink:#2f261d;--muted:#786858;--soft:#9b8a78;
  --line:#eadcc8;--line-strong:#d9c2a7;--accent:#8a5a2c;--accent-2:#b77736;--green:#4d7a58;--red:#9b4d43;--blue:#466a8f;
  --shadow:0 12px 34px rgba(63,42,22,.10);--radius:18px;--radius-sm:12px;--focus:0 0 0 3px rgba(138,90,44,.22)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;overflow-x:hidden;background:linear-gradient(180deg,#fbf6ee 0,#f5efe6 42%,#efe4d4 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Segoe UI",sans-serif;padding:18px;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 12% -10%,rgba(196,128,51,.16),transparent 31rem),radial-gradient(circle at 92% 0,rgba(77,122,88,.12),transparent 28rem),linear-gradient(rgba(47,38,29,.035) 1px,transparent 1px);background-size:auto,auto,100% 38px}main{width:100%;max-width:1180px;margin:0 auto;position:relative}.hero{padding:18px 2px 12px}.topRow{display:flex;justify-content:space-between;align-items:center;gap:10px}.back,.logout{display:inline-flex;min-height:36px;align-items:center;text-decoration:none;border-radius:999px}.back{color:var(--accent);font-weight:850}.logout{color:var(--muted);font-size:13px;padding:0 4px}.back:hover,.logout:hover{color:var(--ink)}.eyebrow{margin-top:18px;font-size:12px;letter-spacing:.08em;color:var(--muted);font-weight:850}.eyebrow:before{content:"";display:inline-block;width:8px;height:8px;border-radius:99px;background:var(--green);margin-right:8px;vertical-align:1px}h1{font-size:clamp(34px,8vw,64px);letter-spacing:-.035em;line-height:.96;margin:8px 0 10px;text-wrap:balance}h2{margin:0 0 8px;font-size:20px;letter-spacing:-.015em}h3{letter-spacing:-.01em}p{color:var(--muted);line-height:1.55}.private{display:inline-flex;align-items:center;gap:8px;margin:4px 0 0;padding:8px 11px;border:1px solid rgba(77,122,88,.24);border-radius:999px;background:rgba(77,122,88,.08);color:#365f41;font-weight:800;font-size:13px}.private:before{content:"✓"}.card{min-width:0;background:rgba(255,253,248,.92);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);backdrop-filter:saturate(1.1)}.quickNav{position:sticky;top:0;z-index:5;display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:8px 0 12px;margin:0 -2px 6px;background:linear-gradient(var(--bg) 70%,rgba(245,239,230,0));scrollbar-width:none}.quickNav::-webkit-scrollbar{display:none}.quickNav a,.chipBtn{flex:0 0 auto;min-height:38px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,248,.96);color:var(--accent);text-decoration:none;font-weight:850;font-size:13px;padding:9px 13px;box-shadow:0 6px 18px rgba(63,42,22,.06)}.quickNav a:hover{border-color:var(--line-strong);background:#fff}.toolbar{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(220px,1fr);gap:12px;margin:8px 0 14px}.toolbar label{font-size:12px;color:var(--muted);font-weight:850}.toolbar select,.toolbar input{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:13px;background:white;color:var(--ink);padding:12px 13px;font-size:16px;min-height:46px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.toolbar select:focus,.toolbar input:focus,a:focus-visible,summary:focus-visible{outline:0;box-shadow:var(--focus)}.modeHelp{grid-column:1/-1;margin:0;color:var(--muted);font-size:13px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.kpis .card{padding:16px;background:linear-gradient(180deg,#fffdf8,#fff7ed)}.kpis span{display:block;color:var(--muted);font-size:12px;font-weight:850}.kpis strong{display:block;margin-top:6px;font-size:clamp(22px,4vw,34px);line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stateSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}.statePill{background:rgba(255,253,248,.78);border:1px solid var(--line);border-radius:14px;padding:11px 12px}.statePill span{display:block;color:var(--muted);font-size:11px;font-weight:850}.statePill b{display:block;margin-top:3px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sectionHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.sectionHead p{margin:4px 0 0}.resultCount{color:var(--muted);font-size:12px;font-weight:850;white-space:nowrap}.hint{font-size:13px}.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.legendItem{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:850}.legendSwatch,.miniDot,.dot{display:inline-block;border-radius:99px}.legendSwatch{width:10px;height:10px}.monthlyOverview,.categoryGroups{display:grid;gap:12px}.monthOverviewCard,.categoryGroup{background:white;border:1px solid var(--line);border-radius:16px;padding:14px}.monthOverviewHead,.categoryGroupHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.monthOverviewHead strong{display:block;font-size:17px}.monthOverviewHead small,.categoryGroupHead small{display:block;color:var(--muted);font-size:12px;font-weight:750;margin-top:2px}.monthOverviewHead b,.categoryGroupHead b{white-space:nowrap;font-size:18px;font-variant-numeric:tabular-nums}.overviewTrack{height:22px;border-radius:999px;background:#efe2cf;overflow:hidden;margin:11px 0}.overviewActual{height:100%;display:flex;border-radius:999px;overflow:hidden;min-width:3px}.overviewActual span{display:block;min-width:2px}.sectionShareBars{display:grid;gap:8px;margin:10px 0 12px}.shareRow{display:grid;gap:4px}.shareLabel{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px;font-weight:850;color:var(--muted)}.shareLabel span{display:flex;align-items:center;gap:6px;min-width:0}.shareLabel i,.monthSplitCol h3 i,.monthCatRow i{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}.shareLabel b{color:var(--ink);white-space:nowrap}.shareTrack{height:8px;background:#efe2cf;border-radius:999px;overflow:hidden}.shareTrack em{display:block;height:100%;min-width:2px;border-radius:999px}.monthSplitGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:11px}.monthSplitCol{background:#fffaf3;border:1px solid #f0e6d8;border-radius:13px;padding:10px;min-width:0}.monthSplitCol h3{margin:0;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.monthSplitCol>b{display:block;margin:5px 0 8px;font-size:16px;font-variant-numeric:tabular-nums}.monthCatRow,.catRow{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #f0e6d8;font-size:13px}.monthCatRow span,.catRow span{min-width:0}.monthCatRow small,.catRow small{color:var(--muted);font-size:11px}.monthCatRow strong,.catRow b{white-space:nowrap;font-variant-numeric:tabular-nums}.monthDetails{margin-top:9px;border-top:1px solid #f0e6d8;padding-top:8px}.monthDetails summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:850;min-height:32px}.categoryGroupHead{margin-bottom:10px}.categoryGroupHead>div{min-width:0}.categoryGroupHead strong{display:block}.categoryRows{display:grid;gap:8px}.barRow{display:grid;grid-template-columns:minmax(110px,1fr) minmax(70px,1.3fr) minmax(72px,90px);gap:10px;align-items:center;font-size:13px}.barRow strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barTrack{height:10px;background:#efe2cf;border-radius:999px;overflow:hidden}.barFill{height:100%;border-radius:999px}.amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tableWrap{overflow:auto;max-height:520px;border:1px solid var(--line);border-radius:14px;-webkit-overflow-scrolling:touch;background:white}table{width:100%;border-collapse:collapse;min-width:760px;background:white}th,td{padding:10px;border-bottom:1px solid #f0e6d8;text-align:left;vertical-align:top;font-size:13px}th{position:sticky;top:0;background:#fff7ed;color:var(--muted);z-index:1}.money{font-weight:900;white-space:nowrap}.desc{max-width:420px}.flags{display:block;color:var(--muted);font-size:11px;margin-top:4px}.txCards{display:none}.txCard{border:1px solid var(--line);background:white;border-radius:14px;padding:12px;margin-bottom:10px}.txCard.transfer{background:#fffdf8;border-style:dashed}.txCardTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.txDate{font-size:12px;color:var(--muted);font-weight:850}.txAmount{font-weight:950;white-space:nowrap;font-variant-numeric:tabular-nums}.txDesc{margin:8px 0 6px;color:var(--ink);font-weight:750;line-height:1.35}.txMeta{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px}.txMeta span{display:inline-flex;align-items:center;gap:5px;background:#f7efe5;border-radius:999px;padding:5px 8px}.txMeta i{width:7px;height:7px;border-radius:50%;display:inline-block}.transferCards{display:grid}.empty{padding:18px;border:1px dashed var(--line-strong);border-radius:14px;background:#fffaf3;color:var(--muted)}
@media(max-width:860px){body{padding:10px}.hero{padding-top:12px}.eyebrow{margin-top:12px}.card{border-radius:16px;padding:14px;box-shadow:0 8px 22px rgba(63,42,22,.09)}.toolbar{grid-template-columns:1fr;gap:10px}.kpis,.stateSummary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpis .card{padding:13px}.monthSplitGrid{grid-template-columns:1fr;gap:8px}.barRow{grid-template-columns:1fr;gap:6px}.amount{text-align:left}.tableWrap{display:none}.txCards{display:block}.sectionHead{align-items:flex-start}.quickNav{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.quickNav a{font-size:12px;padding:9px 12px}.private{font-size:13px}.monthOverviewCard,.categoryGroup{padding:12px;border-radius:14px}.overviewTrack{height:20px}.shareLabel{font-size:11.5px}.transferCards{gap:0}}
@media(max-width:430px){h1{font-size:clamp(34px,12vw,48px)}.kpis,.stateSummary{grid-template-columns:1fr}.topRow{align-items:flex-start}.logout{display:none}.kpis strong{font-size:24px}.monthOverviewHead b,.categoryGroupHead b{font-size:16px}.sectionHead{display:block}.resultCount{margin-top:4px}.txCardTop{display:block}.txAmount{margin-top:4px}.quickNav{top:0}}
@media(min-width:861px){.transferCards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.transferCards .txCard{margin-bottom:0}}
@media(prefers-reduced-motion:no-preference){.card,.quickNav a,.txCard,.monthOverviewCard,.categoryGroup{transition:transform .18s ease,border-color .18s ease,background-color .18s ease}.quickNav a:hover,.monthOverviewCard:hover,.categoryGroup:hover{transform:translateY(-1px);border-color:var(--line-strong)}}

/* Budget cockpit restructure */
.budgetCockpit{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:12px;margin:8px 0 14px}.budgetHero{background:linear-gradient(145deg,#3a2b1f,#6f4827 56%,#876033);color:#fff8ee;border-color:rgba(255,255,255,.14);box-shadow:0 18px 40px rgba(63,42,22,.20)}.budgetHero p{color:rgba(255,248,238,.78);font-size:12px;margin:10px 0 0}.budgetHeroTop,.budgetCardHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.budgetLabel,.budgetCardHead span{display:block;color:rgba(255,248,238,.72);font-size:12px;font-weight:850}.budgetHero strong{display:block;margin-top:6px;font-size:clamp(32px,8vw,54px);line-height:.95;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.budgetCards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.budgetCard{padding:14px;background:rgba(255,253,248,.96)}.budgetCardHead span{color:var(--muted)}.budgetCard strong{display:block;margin:8px 0 9px;font-size:22px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.025em}.status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:11px;font-style:normal;font-weight:900;border:1px solid transparent}.status.good{background:rgba(77,122,88,.13);color:#356241;border-color:rgba(77,122,88,.24)}.status.watch{background:rgba(183,119,54,.13);color:#7c4e22;border-color:rgba(183,119,54,.25)}.status.warn{background:rgba(155,77,67,.12);color:#884239;border-color:rgba(155,77,67,.25)}.status.bad{background:#8b2f2f;color:#fff;border-color:#8b2f2f}.budgetHero .status.good{background:rgba(126,198,142,.18);color:#dff8e5;border-color:rgba(218,255,224,.28)}.budgetHero .status.watch{background:rgba(255,221,156,.16);color:#fff0cc;border-color:rgba(255,235,198,.26)}.budgetHero .status.warn,.budgetHero .status.bad{background:rgba(255,176,160,.16);color:#ffe2dc;border-color:rgba(255,214,205,.28)}.budgetStack{height:16px;background:rgba(239,226,207,.82);border-radius:999px;display:flex;overflow:hidden;margin:10px 0 7px}.budgetHero .budgetStack{background:rgba(255,248,238,.18)}.budgetStack i{display:block;min-width:2px;height:100%}.budgetMeta{display:flex;flex-wrap:wrap;gap:5px 10px;justify-content:space-between;color:var(--muted);font-size:11.5px;font-weight:850}.budgetHero .budgetMeta{color:rgba(255,248,238,.76)}.budgetTrack{height:8px;background:#efe2cf;border-radius:999px;overflow:hidden;margin:8px 0 5px}.budgetTrack i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),#78a16d)}.budgetTrack.core i{background:linear-gradient(90deg,var(--accent),var(--green))}.monthAmount{text-align:right}.monthAmount .status{margin-top:5px}.monthOverviewCard .budgetStack{height:18px}.stateSummary{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:860px){.budgetCockpit{grid-template-columns:1fr}.budgetCards{grid-template-columns:1fr 1fr}.budgetHero{position:relative;overflow:hidden}.budgetHero:after{content:"";position:absolute;right:-34px;top:-44px;width:130px;height:130px;border-radius:50%;border:28px solid rgba(255,248,238,.07)}.budgetHero>*{position:relative}.budgetCard strong{font-size:20px}.stateSummary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.budgetCards{grid-template-columns:1fr}.budgetHero strong{font-size:38px}.budgetHeroTop{display:block}.budgetHeroTop .status{margin-top:8px}.budgetMeta{display:grid;grid-template-columns:1fr;gap:3px}.monthAmount{text-align:left;margin-top:4px}.stateSummary{grid-template-columns:1fr}.budgetCard{padding:13px}}

/* Class trend stacked area chart */
.trendCard{overflow:hidden}.classTrend{display:grid;gap:10px}.trendScroller{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:16px;background:#fffdf8}.trendScroller svg{display:block;min-width:100%;height:auto}.gridLine{stroke:#eadfce;stroke-width:1}.monthGuide{stroke:#eadfce;stroke-width:1;stroke-dasharray:2 7;opacity:.55}.axisText{fill:#8b7a67;font-size:10px;font-weight:750}.budgetLine{stroke:#9b4d43;stroke-width:1.5;stroke-dasharray:6 5}.budgetText{fill:#9b4d43;font-size:10px;font-weight:900}.totalDot{fill:#2f261d;stroke:#fffdf8;stroke-width:2}.trendReadout{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fffaf3;border:1px solid #f0e6d8;border-radius:14px;padding:10px 12px}.trendReadout strong{font-size:14px;font-variant-numeric:tabular-nums}.trendReadout span{color:var(--muted);font-size:12px;font-weight:800;text-align:right}.legendDash{width:18px;height:0;border-top:2px dashed #9b4d43;display:inline-block}
@media(max-width:860px){.trendCard{padding-left:10px;padding-right:10px}.trendScroller{margin-left:-2px;margin-right:-2px}.trendReadout{display:block}.trendReadout span{display:block;text-align:left;margin-top:4px;line-height:1.35}.axisText{font-size:9.5px}}
.status.neutral{background:#eee3d2;color:#6d5944;border-color:#decbb3}.budgetHero .status.neutral{background:rgba(255,248,238,.18);color:#fff8ee;border-color:rgba(255,248,238,.26)}.projectNote{margin:8px 0 4px;padding:8px 10px;border:1px dashed rgba(155,77,67,.28);border-radius:12px;background:rgba(155,77,67,.07);color:#7e3f36;font-size:12px;font-weight:850}

/* Monthly + annual usage inside each month card */


/* Compact side-by-side use: phones are not forced into one column unless truly narrow */
@media(min-width:360px) and (max-width:860px){
  .budgetCards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stateSummary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .monthSplitGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .monthSplitCol:last-child:nth-child(odd){grid-column:1/-1}
  .budgetCard strong{font-size:clamp(18px,5vw,22px)}
  .statePill b{font-size:13px}
}
@media(min-width:520px) and (max-width:860px){
  .monthSplitGrid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .monthSplitCol:last-child:nth-child(odd){grid-column:auto}
  .transferCards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .txCards:not(.transferCards){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .txCards:not(.transferCards) .txCard{margin-bottom:0}
}
@media(max-width:359px){
  .budgetCards,.kpis,.stateSummary,.monthSplitGrid{grid-template-columns:1fr}
}

/* Swipeable budget cockpit */
.budgetCards{display:grid;grid-template-columns:1fr;gap:12px}.overallGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 0}.overallGrid span{border:1px solid rgba(255,248,238,.18);border-radius:12px;padding:8px;background:rgba(255,248,238,.09);color:rgba(255,248,238,.82);font-size:11.5px;font-weight:850}.budgetSwipeBlock{min-width:0}.swipeTitle{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:2px 2px 8px}.swipeTitle h2{font-size:15px;margin:0}.swipeTitle span{color:var(--muted);font-size:12px;font-weight:850}.budgetSwipe{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:1px 2px 8px;scrollbar-width:none}.budgetSwipe::-webkit-scrollbar{display:none}.swipeCard{flex:0 0 min(82vw,330px);scroll-snap-align:start;background:rgba(255,253,248,.96);border:1px solid var(--line);border-radius:16px;padding:13px;box-shadow:0 8px 22px rgba(63,42,22,.08)}.swipeCard.active{border-color:var(--line-strong);box-shadow:0 10px 26px rgba(63,42,22,.12)}.swipeHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.swipeHead span{color:var(--muted);font-size:12px;font-weight:900}.swipeCard>strong{display:block;margin:8px 0 8px;font-size:24px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.025em}.miniBreakdown{display:flex;flex-wrap:wrap;gap:5px 8px;margin-top:8px;color:var(--muted);font-size:11.5px;font-weight:850}.miniBreakdown span{display:inline-flex;align-items:center;gap:5px}.miniBreakdown i{display:inline-block;width:8px;height:8px;border-radius:99px}.miniBreakdown b{color:var(--ink);font-weight:900}.projectNote.compact{display:inline-block;margin-top:8px;padding:6px 8px}.budgetTrack.planned i{background:linear-gradient(90deg,#b77736,#d8b06d)}
@media(min-width:360px) and (max-width:860px){.budgetCards{grid-template-columns:1fr}.swipeCard{flex-basis:min(74vw,320px)}}
@media(min-width:700px){.budgetCockpit{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)}.swipeCard{flex-basis:310px}}
@media(max-width:430px){.overallGrid{grid-template-columns:1fr}.swipeCard{flex-basis:78vw}.budgetHero strong{font-size:36px}}
.annualOnlyNote{display:inline-block;margin-top:8px;padding:6px 8px;border:1px dashed rgba(138,90,44,.28);border-radius:12px;background:rgba(138,90,44,.07);color:#704c28;font-size:12px;font-weight:850}.annualOnlyNote+.projectNote{margin-left:6px}
@media(max-width:430px){.annualOnlyNote+.projectNote{margin-left:0}}

/* Review / assignment queue */
.reviewTools{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.reviewTools button,.reviewActions button{border:1px solid var(--line);background:#fffaf3;color:var(--accent);border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900;min-height:34px}.reviewQueue{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.reviewItem{background:white;border:1px solid var(--line);border-radius:15px;padding:12px}.reviewTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.reviewTop strong{display:block;font-size:13px;line-height:1.3}.reviewTop span{display:block;margin-top:4px;color:var(--muted);font-size:11.5px;font-weight:800}.reviewTop b{white-space:nowrap;font-variant-numeric:tabular-nums}.reviewMeta{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}.reviewMeta span{background:#f7efe5;color:var(--muted);border-radius:999px;padding:5px 8px;font-size:11.5px;font-weight:850}.reviewActions{display:flex;flex-wrap:wrap;gap:6px}.reviewActions button.active{background:var(--accent);border-color:var(--accent);color:white}.reviewActions button.done{border-color:rgba(77,122,88,.28);color:#356241}.reviewActions button.done.active{background:#4d7a58;color:white}.reviewActions button:active{transform:translateY(1px)}
@media(max-width:560px){.reviewQueue{grid-template-columns:1fr}.reviewActions button{flex:1 1 calc(50% - 6px)}}

/* Direct numerator / budget denominator treatment */
.ratioAmount{display:flex!important;align-items:baseline;gap:6px;flex-wrap:wrap}.ratioAmount span{font-size:inherit}.ratioAmount small{font-size:.48em;color:var(--muted);font-weight:850;letter-spacing:0}.budgetHero .ratioAmount small{color:rgba(255,248,238,.66)}.inlineRatio{display:flex;align-items:baseline;gap:5px;margin:5px 0 3px;font-size:15px;line-height:1;font-variant-numeric:tabular-nums}.inlineRatio span{font-weight:950;color:var(--ink)}.inlineRatio small{font-size:11px;color:var(--muted);font-weight:850}
@media(max-width:430px){.ratioAmount{gap:4px}.ratioAmount small{font-size:.44em}.inlineRatio{font-size:14px}}
.budgetTrack.annualMarker{position:relative;overflow:visible}.budgetTrack.annualMarker i{max-width:140%;background:linear-gradient(90deg,var(--green),#78a16d)}.budgetTrack.annualMarker b{position:absolute;top:-4px;bottom:-4px;width:2px;border-radius:99px;background:#6f4827;box-shadow:0 0 0 3px rgba(111,72,39,.12);transform:translateX(-1px)}.swipeCard.annual .budgetTrack.annualMarker{margin-top:10px;margin-bottom:8px}
.billableTag{background:rgba(70,106,143,.12)!important;color:#31577b!important;border:1px solid rgba(70,106,143,.22);border-radius:999px;padding:5px 8px;font-size:11.5px;font-weight:900}.reviewActions button.billable{border-color:rgba(70,106,143,.28);color:#31577b}.reviewActions button.billable.active{background:#466a8f;color:white}

/* Month transaction modal */
body.modalOpen{overflow:hidden}.monthModal{position:fixed;inset:0;z-index:40;display:none}.monthModal.open{display:block}.monthModalShade{position:absolute;inset:0;background:rgba(35,25,17,.46);backdrop-filter:blur(3px)}.monthModalPanel{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);max-height:min(88vh,920px);display:flex;flex-direction:column;background:#fffdf8;border:1px solid var(--line);border-radius:24px 24px 0 0;box-shadow:0 -18px 46px rgba(44,31,20,.28);overflow:hidden}.monthModalHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fffaf3,#fffdf8)}.monthModalHead h2{margin:0;font-size:18px}.monthModalHead p{margin:4px 0 0;font-size:12.5px}.modalClose{width:38px;height:38px;border:1px solid var(--line);border-radius:999px;background:white;color:var(--accent);font-size:22px;font-weight:800}.monthModalBody{overflow:auto;-webkit-overflow-scrolling:touch;padding:12px;display:grid;gap:10px}.modalSummaryPills{position:sticky;top:0;z-index:1;display:flex;gap:8px;overflow:auto;padding:2px 0 8px;background:#fffdf8}.modalSummaryPills span{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:8px 10px;background:#fffaf3;color:var(--muted);font-size:12px;font-weight:900}.modalTx{border:1px solid var(--line);border-radius:15px;background:white;padding:12px}.modalTx.isClaim{border-color:rgba(70,106,143,.34);background:linear-gradient(180deg,#ffffff,#f7fbff)}.modalTxTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.modalTxTop strong{display:block;font-size:13px;line-height:1.3}.modalTxTop span{display:block;margin-top:4px;color:var(--muted);font-size:11.5px;font-weight:800}.modalTxTop b{white-space:nowrap;font-variant-numeric:tabular-nums}.modalActions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.modalActions button{border:1px solid var(--line);background:#fffaf3;color:var(--accent);border-radius:999px;padding:8px 9px;font-size:12px;font-weight:900;min-height:34px}.modalActions button.claim,.reviewActions button.claim{border-color:rgba(70,106,143,.32);color:#31577b;background:rgba(70,106,143,.08)}.modalActions button.billable{border-color:rgba(70,106,143,.25);color:#31577b}.claimTag{background:#466a8f!important;color:white!important;border:1px solid #466a8f;border-radius:999px;padding:5px 8px;font-size:11.5px;font-weight:900}.monthOverviewCard[data-open-month],.swipeCard[data-open-month]{cursor:pointer}.monthOverviewCard[data-open-month]:focus-visible,.swipeCard[data-open-month]:focus-visible{outline:0;box-shadow:var(--focus)}
@media(min-width:780px){.monthModalPanel{top:50%;bottom:auto;transform:translate(-50%,-50%);border-radius:24px;max-height:82vh}.monthModalBody{grid-template-columns:1fr 1fr}.modalSummaryPills{grid-column:1/-1}.modalActions button{flex:1 1 calc(50% - 6px)}}
@media(max-width:430px){.monthModalPanel{max-height:92vh}.modalActions button{flex:1 1 calc(50% - 6px)}.modalTxTop{align-items:flex-start}.modalTxTop b{font-size:13px}}

/* Tighten actual / budget typography after mobile screenshot review */
.ratioAmount{display:inline-grid!important;grid-template-columns:auto max-content;align-items:baseline;column-gap:8px;row-gap:2px;max-width:100%;white-space:nowrap}.ratioAmount span{min-width:0}.ratioAmount small{display:inline-block;white-space:nowrap;min-width:max-content;font-size:.52em;color:var(--muted);font-weight:900}.swipeCard .ratioAmount{font-size:clamp(21px,6.2vw,25px);letter-spacing:-.035em}.budgetHero .ratioAmount small,.budgetHero .budgetMeta{color:rgba(255,248,238,.74)}
@media(max-width:390px){.swipeCard .ratioAmount{font-size:clamp(20px,5.7vw,23px);column-gap:7px}.swipeCard .ratioAmount small{font-size:.5em}}
@media(max-width:340px){.ratioAmount{grid-template-columns:1fr}.ratioAmount small{margin-top:-1px}}

/* Distill pass: remove repeated summary space */
.stateSummary:empty{display:none}.actionKpis .card{background:linear-gradient(180deg,#fffdf8,#fffaf3)}.actionKpis .card strong{font-size:clamp(18px,4.6vw,28px)}.compactMonthMeta{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 4px}.compactMonthMeta span{border:1px solid var(--line);background:#fffaf3;border-radius:999px;padding:6px 8px;color:var(--muted);font-size:11.5px;font-weight:900}.monthOverviewCard .annualOnlyNote,.monthOverviewCard .projectNote{margin-top:7px}
.modalBucket{display:grid;gap:10px}.modalBucket h3{position:sticky;top:0;z-index:1;margin:0;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:#fffaf3;color:var(--ink);font-size:13px}.modalBucket h3 span{display:block;margin-top:2px;color:var(--muted);font-size:11.5px;font-weight:850}.modalBucket+.modalBucket{margin-top:4px;padding-top:10px;border-top:1px dashed var(--line-strong)}
@media(min-width:780px){.modalBucket{grid-column:1/-1;grid-template-columns:1fr 1fr}.modalBucket h3{grid-column:1/-1}.modalBucket .empty{grid-column:1/-1}}
.swipeCard.refund{border-color:rgba(77,122,88,.28);background:linear-gradient(180deg,#fffdf8,#f5fbf4)}.budgetTrack.refund i{background:linear-gradient(90deg,#5f9a67,#87b77f)}.modalTx.isRefund{border-color:rgba(77,122,88,.30);background:linear-gradient(180deg,#ffffff,#f7fcf6)}.modalTx.isRefund .modalTxTop b{color:#3f7348}
.categoryReassign{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:12px;color:var(--muted)}.categoryReassign span{white-space:nowrap}.categoryReassign select{width:min(100%,320px);min-height:34px;border:1px solid rgba(83,66,45,.18);border-radius:10px;background:#fffdf8;color:var(--ink);padding:6px 10px;font:inherit}.categoryReassign.modal{margin:10px 0 4px}.categoryReassign.review select{flex:1;max-width:360px}@media(max-width:640px){.categoryReassign{align-items:stretch;flex-direction:column;gap:4px}.categoryReassign select{width:100%;max-width:none}}
.monthUnifiedSwipe{gap:14px}.monthBudgetCard{min-width:min(88vw,430px);scroll-snap-align:start;border:1px solid rgba(83,66,45,.14);border-radius:22px;background:linear-gradient(180deg,#fffdf8,#fbf4e8);padding:16px;box-shadow:0 12px 34px rgba(75,55,32,.08)}.monthBudgetCard.active{border-color:rgba(77,122,88,.38);box-shadow:0 14px 38px rgba(77,122,88,.14)}.monthBudgetCard.future{opacity:.74}.monthBudgetHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.monthBudgetHead span{display:block;font-size:13px;color:var(--muted);font-weight:700}.monthBudgetHead strong{display:block;font-size:30px;letter-spacing:-.04em;line-height:1.05}.monthBudgetHead small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.monthBudgetMeta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px;color:var(--muted);font-size:12px}.monthBudgetMeta span{background:rgba(255,255,255,.65);border:1px solid rgba(83,66,45,.10);border-radius:999px;padding:4px 8px}.monthBudgetLines{display:grid;gap:8px;margin-top:10px}.monthBudgetLine{appearance:none;border:1px solid rgba(83,66,45,.12);background:rgba(255,255,255,.72);border-radius:14px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:var(--ink);font:inherit;min-height:48px}.monthBudgetLine:active{transform:translateY(1px)}.monthBudgetLine span{font-weight:800}.monthBudgetLine small{display:block;font-weight:600;color:var(--muted);font-size:11px;margin-top:2px}.monthBudgetLine b{font-size:16px;white-space:nowrap}.monthBudgetLine.monthly{border-left:4px solid #4d7a58}.monthBudgetLine.annual{border-left:4px solid #466a8f}.monthBudgetLine.other{border-left:4px solid #9b4d43}.monthBudgetLine.refund{border-left:4px solid #5f9a67;background:linear-gradient(180deg,#ffffff,#f5fbf4)}.miniBreakdown.monthUnified{margin-top:12px}
.subscriptionsCard{border-color:rgba(138,90,44,.18)}.subscriptionSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 16px}.subscriptionMetric{border:1px solid rgba(83,66,45,.12);border-radius:16px;background:#fffdf8;padding:12px}.subscriptionMetric span{display:block;color:var(--muted);font-size:12px;font-weight:700}.subscriptionMetric b{display:block;margin-top:4px;font-size:20px;letter-spacing:-.03em}.subscriptionGroups{display:grid;gap:12px}.subscriptionGroup{border:1px solid rgba(83,66,45,.13);border-radius:18px;background:linear-gradient(180deg,#fffdf8,#fbf6ed);padding:14px}.subscriptionGroupHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.subscriptionGroupHead strong{font-size:17px}.subscriptionGroupHead small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.subscriptionGroupHead>b{text-align:right}.subscriptionGroupMeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0;color:var(--muted);font-size:12px}.subscriptionGroupMeta span,.subscriptionGroupMeta button{border:1px solid rgba(83,66,45,.11);border-radius:999px;background:rgba(255,255,255,.72);padding:5px 9px}.subscriptionGroupMeta button{font:inherit;color:var(--ink);cursor:pointer}.subscriptionTx{border-top:1px solid rgba(83,66,45,.10);padding:10px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}.subscriptionTx>div strong{display:block}.subscriptionTx>div span{display:block;color:var(--muted);font-size:12px;line-height:1.35}.subscriptionTx>.categoryReassign,.subscriptionTx>.modalActions{grid-column:1/-1}.modalActions.compact{gap:6px}.modalActions.compact button{padding:7px 9px;font-size:12px}.monthBudgetLine.subscriptions{border-left:4px solid #8a5a2c;background:linear-gradient(180deg,#fff,#fff8ee)}@media(max-width:760px){.subscriptionSummary{grid-template-columns:repeat(2,minmax(0,1fr))}.subscriptionTx{grid-template-columns:1fr}.subscriptionTx>b{text-align:left}}
.monthSubbuckets{display:grid;gap:10px;margin-top:12px}.subbucketBlock{border:1px solid rgba(83,66,45,.11);background:rgba(255,255,255,.58);border-radius:16px;padding:10px}.subbucketBlock.monthly{border-left:4px solid #4d7a58}.subbucketBlock.annual,.subbucketBlock.annualOnly{border-left:4px solid #466a8f}.subbucketBlock.other{border-left:4px solid #9b4d43}.subbucketHead{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.subbucketHead strong{font-size:13px}.subbucketHead span{font-weight:800}.subbucketChips{display:flex;flex-wrap:wrap;gap:6px}.subbucketChip,.subbucketEmpty{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(83,66,45,.10);background:#fffdf8;border-radius:999px;padding:5px 8px;font-size:12px;color:var(--ink)}.subbucketChip i{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.subbucketChip b{font-weight:800}.subbucketEmpty{color:var(--muted)}.subbucketDetails{margin-top:8px}.subbucketDetails summary{cursor:pointer;color:var(--muted);font-size:12px}.subbucketRow{display:flex;justify-content:space-between;gap:10px;border-top:1px solid rgba(83,66,45,.08);padding:7px 0;font-size:12px}.subbucketRow small{color:var(--muted)}.heroSubbuckets{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0}@media(min-width:860px){.heroSubbuckets{grid-template-columns:1fr 1fr}}@media(max-width:520px){.subbucketChip{width:100%;justify-content:space-between}.subbucketChip i{margin-right:auto}.subbucketHead{align-items:flex-start;flex-direction:column;gap:2px}}
.monthBudgetLine span{min-width:0;flex:1}.lineProgress{display:block;position:relative;overflow:hidden;width:100%;height:6px;margin-top:7px;border-radius:999px;background:rgba(83,66,45,.10)}.lineProgress em{display:block;height:100%;border-radius:inherit;background:#4d7a58}.lineProgress.subscriptions em{background:#8a5a2c}.lineProgress.annual em{background:#466a8f}.lineProgress.other em{background:#9b4d43}.lineProgress.refund em{background:#5f9a67}.monthBudgetLine b{align-self:flex-start;padding-top:2px}
.monthSubbuckets.budgetAllocated{display:grid;gap:12px;margin-top:12px}.categoryBudgetBlock{border:1px solid rgba(83,66,45,.12);border-radius:16px;background:rgba(255,255,255,.62);padding:12px}.categoryBudgetBlock.monthly{border-left:4px solid #4d7a58}.categoryBudgetBlock.annual{border-left:4px solid #466a8f}.categoryBudgetHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.categoryBudgetHead strong{display:block;font-size:14px}.categoryBudgetHead small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.categoryBudgetRows{display:grid;gap:8px}.categoryBudgetRow{appearance:none;width:100%;border:1px solid rgba(83,66,45,.10);border-radius:12px;background:#fffdf8;padding:9px 10px;display:flex;justify-content:space-between;gap:10px;text-align:left;color:var(--ink);font:inherit}.categoryBudgetRow>span{min-width:0;flex:1}.categoryBudgetRow strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.categoryBudgetRow small{display:block;color:var(--muted);font-size:11px;margin:2px 0 6px}.categoryBudgetRow i{display:block;height:7px;border-radius:999px;background:rgba(83,66,45,.10);overflow:hidden}.categoryBudgetRow i em{display:block;height:100%;border-radius:inherit;background:#4d7a58}.categoryBudgetBlock.annual .categoryBudgetRow i em{background:#466a8f}.categoryBudgetRow.warn i em{background:#c9872e}.categoryBudgetRow.bad i em{background:#b45449}.categoryBudgetRow>b{align-self:flex-start;white-space:nowrap;font-size:13px}.monthBudgetLines.compact{grid-template-columns:1fr}.monthBudgetLines.compact .monthBudgetLine{min-height:52px}@media(max-width:520px){.categoryBudgetRow{align-items:stretch}.categoryBudgetRow>b{padding-top:2px}}
.budgetCategoryCard{border:1px solid rgba(83,66,45,.12);border-radius:16px;background:rgba(255,255,255,.64);overflow:hidden}.budgetCategoryCard.monthly{border-left:4px solid #4d7a58}.budgetCategoryCard.annual{border-left:4px solid #466a8f}.budgetCategoryMain{appearance:none;width:100%;border:0;background:linear-gradient(180deg,#fffdf8,#fff8ee);padding:12px;display:flex;justify-content:space-between;gap:12px;text-align:left;color:var(--ink);font:inherit}.budgetCategoryMain>span{min-width:0;flex:1}.budgetCategoryMain strong{display:block;font-size:15px}.budgetCategoryMain small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.budgetCategoryMain>b{font-size:18px;text-align:right;white-space:nowrap}.budgetCategoryMain>b small{font-size:11px}.categoryBudgetRows.compact{padding:10px;gap:7px}.categoryBudgetRow.mini{border:0;background:rgba(255,253,248,.72);padding:7px 8px}.categoryBudgetRow.mini strong{font-size:12px}.categoryBudgetRow.mini small{font-size:10.5px;margin-bottom:5px}.categoryBudgetRow.mini>b{font-size:12px}.monthSubbuckets.budgetAllocated>.monthBudgetLine{margin-top:0}.monthBudgetLines.compact{display:none}
.categoryBudgetRow.unallocated{opacity:.78}.categoryBudgetRow.unallocated i em{background:rgba(83,66,45,.28)}.categoryBudgetRow.unallocated>b{color:var(--muted)}
.subClaimTag{display:inline-flex;margin-left:6px;border:1px solid rgba(77,122,88,.22);background:#f2faf1;color:#3f7348;border-radius:999px;padding:1px 6px;font-weight:800;white-space:nowrap}.categoryBudgetRow small .subClaimTag{font-size:10px}

/* Desktop-friendly finance layout: same features, less horizontal swiping */
@media(min-width:1100px){
  body{padding:28px}
  main{max-width:1560px}
  .hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 28px;align-items:end;padding-bottom:18px}
  .hero .topRow{grid-column:1/-1}
  .hero h1{font-size:56px;margin-bottom:6px}
  .hero #period,.hero .private{justify-self:start}
  .quickNav{top:0;justify-content:flex-start;padding-top:10px;padding-bottom:14px}
  .budgetCockpit{display:grid;grid-template-columns:360px minmax(0,1fr);align-items:start;gap:18px}
  .budgetHero{position:sticky;top:66px}
  .budgetCards{min-width:0}
  .budgetSwipeBlock.unified{min-width:0}
  .monthUnifiedSwipe{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px;overflow:visible;padding:0;scroll-snap-type:none}
  .monthBudgetCard{min-width:0;width:100%;scroll-snap-align:none;padding:15px;border-radius:20px;box-shadow:0 10px 26px rgba(75,55,32,.07)}
  .monthBudgetHead strong{font-size:25px}
  .monthBudgetMeta{margin:8px 0 10px}
  .budgetCategoryMain{padding:10px 11px}
  .categoryBudgetRows.compact{grid-template-columns:1fr;gap:6px;padding:9px}
  .categoryBudgetRow.mini{padding:6px 8px}
  .categoryBudgetRow.mini strong{font-size:11.5px}
  .categoryBudgetRow.mini small{font-size:10px}
  .toolbar{grid-template-columns:220px minmax(360px,1fr);align-items:end}
  .kpis,.stateSummary{grid-template-columns:repeat(4,minmax(0,1fr))}
  .trendCard,.subscriptionsCard,.reviewCard,#categories,#transactions,#transfers{margin-top:16px}
  .subscriptionGroups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .reviewQueue{grid-template-columns:repeat(3,minmax(0,1fr))}
  .categoryGroups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .txCards:not(.transferCards){display:none}
  .tableWrap{display:block;max-height:680px}
  .monthModalPanel{width:min(1120px,92vw)}
  .monthModalBody{grid-template-columns:repeat(3,minmax(0,1fr))}
  .modalBucket{grid-template-columns:repeat(3,minmax(0,1fr))}
  .modalBucket h3,.modalSummaryPills{grid-column:1/-1}
}
@media(min-width:1400px){
  .monthUnifiedSwipe{grid-template-columns:repeat(3,minmax(360px,1fr))}
  .subscriptionGroups{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Desktop preference: keep month cards in one horizontal rail, not wrapped grid */
@media(min-width:1100px){
  .monthUnifiedSwipe{display:flex;grid-template-columns:none;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding:0 4px 12px;scrollbar-width:thin}
  .monthBudgetCard{flex:0 0 430px;width:430px;scroll-snap-align:start}
}
@media(min-width:1400px){
  .monthUnifiedSwipe{grid-template-columns:none}
  .monthBudgetCard{flex-basis:450px;width:450px}
}

/* Stacked monthly trend chart */
.stackedTrend{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(54px,1fr);align-items:end;gap:12px;min-height:280px;padding:20px 12px 36px;border:1px solid rgba(83,66,45,.12);border-radius:18px;background:#fffdf8;overflow-x:auto;overflow-y:hidden}.stackMonth{height:220px;display:grid;grid-template-rows:1fr auto;gap:8px;min-width:54px}.stackBar{height:100%;display:flex;flex-direction:column;justify-content:flex-end;border-radius:12px;background:rgba(83,66,45,.08);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(83,66,45,.08)}.stackSegment{appearance:none;border:0;border-top:1px solid rgba(255,255,255,.42);padding:0;width:100%;min-height:0;cursor:pointer;position:relative}.stackSegment span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none;background:rgba(47,38,29,.88);color:white;border-radius:8px;padding:5px 7px;font-size:11px;white-space:nowrap;z-index:3}.stackSegment:hover span,.stackSegment:focus-visible span{opacity:1}.stackSegment.recurring{background:#8a5a2c}.stackSegment.regular{background:#4d7a58}.stackSegment.oneoff{background:#466a8f}.stackSegment.annual{background:#6f6b9a}.stackSegment.other{background:#9b4d43}.stackMonthLabel{text-align:center;font-size:12px;color:var(--muted)}.stackMonthLabel strong{display:block;color:var(--ink)}.stackMonthLabel span{display:block;margin-top:2px;font-variant-numeric:tabular-nums}.stackBudgetLine{position:absolute;left:10px;right:10px;border-top:2px dashed rgba(138,90,44,.55);pointer-events:none}.stackBudgetLine span{position:absolute;right:0;top:-22px;background:#fff7ed;border:1px solid rgba(138,90,44,.22);border-radius:999px;padding:3px 8px;color:var(--accent);font-size:11px;font-weight:850}.legendDash{width:18px;border-top:2px dashed rgba(138,90,44,.55)}@media(min-width:1100px){.stackedTrend{grid-auto-columns:minmax(72px,1fr);min-height:330px}.stackMonth{height:260px}.stackSegment:hover{filter:brightness(1.04)}}@media(max-width:640px){.stackedTrend{grid-auto-columns:58px;gap:10px;margin-left:-4px;margin-right:-4px}.stackMonth{height:210px}.stackBudgetLine span{right:auto;left:0}}
.stackedTrend.simple .stackSegment.monthly{background:#4d7a58}.stackedTrend.simple .stackSegment.annual{background:#466a8f}.stackMonthLabel em{display:block;margin-top:2px;font-style:normal;color:var(--soft);font-size:10.5px;line-height:1.15}

/* Desktop monthly board: no swipe, shorter rows */
.desktopMonthBoard{display:none}.desktopMonthRows{display:grid;gap:10px}.desktopMonthRow{display:grid;grid-template-columns:150px repeat(5,minmax(112px,1fr)) minmax(150px,1.15fr);gap:8px;align-items:stretch;border:1px solid rgba(83,66,45,.13);border-radius:18px;background:linear-gradient(180deg,#fffdf8,#fbf4e8);padding:10px;box-shadow:0 8px 22px rgba(75,55,32,.06)}.desktopMonthRow.active{border-color:rgba(77,122,88,.38)}.desktopMonthRow.future{opacity:.72}.deskMonthLabel{display:flex;flex-direction:column;justify-content:center;padding:8px 10px}.deskMonthLabel strong{font-size:16px}.deskMonthLabel span{color:var(--muted);font-size:12px;margin-top:3px}.deskMetric{appearance:none;border:1px solid rgba(83,66,45,.11);border-radius:13px;background:rgba(255,255,255,.72);padding:8px 9px;text-align:left;color:var(--ink);font:inherit;min-width:0}.deskMetric span{display:block;color:var(--muted);font-size:11px;font-weight:850}.deskMetric b{display:block;margin-top:3px;font-size:16px;letter-spacing:-.02em;white-space:nowrap}.deskMetric small{display:block;color:var(--muted);font-size:10.5px;margin-top:3px;min-height:12px}.deskMetric i{display:block;height:6px;background:rgba(83,66,45,.10);border-radius:999px;overflow:hidden;margin-top:6px}.deskMetric i em{display:block;height:100%;border-radius:999px;background:#4d7a58}.deskMetric.annual i em{background:#466a8f}.deskMetric.other{border-left:3px solid #9b4d43}.deskMetric.refund{border-left:3px solid #5f9a67}.deskMetric.oneoff{border-left:3px solid #6f6b9a}.deskBuckets{border:1px solid rgba(83,66,45,.10);border-radius:13px;background:rgba(255,255,255,.58);padding:8px;min-width:0}.deskBuckets summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:850;list-style:none}.deskBuckets summary::-webkit-details-marker{display:none}.deskBuckets>div{display:grid;gap:5px;margin-top:8px}.deskMiniBucket{appearance:none;border:0;border-radius:10px;background:#fffdf8;padding:6px 7px;display:flex;align-items:center;justify-content:space-between;gap:6px;text-align:left;color:var(--ink);font:inherit;font-size:11.5px}.deskMiniBucket span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.deskMiniBucket b{white-space:nowrap}.deskMiniBucket.annual{background:#f4f7fb}.deskMiniBucket .subClaimTag{margin-left:0;font-size:9px;padding:1px 4px}@media(min-width:1100px){.mobileMonthRail{display:none}.desktopMonthBoard{display:block}.budgetCockpit{grid-template-columns:340px minmax(0,1fr)}.budgetCards{overflow:visible}.budgetHero{top:58px}.monthBudgetCard{max-height:none}.desktopMonthRow button:hover,.deskMiniBucket:hover{filter:brightness(1.015);border-color:var(--line-strong)}}@media(min-width:1400px){.desktopMonthRow{grid-template-columns:165px repeat(5,minmax(128px,1fr)) minmax(180px,1.2fr)}}@media(max-width:1180px) and (min-width:1100px){.desktopMonthRow{grid-template-columns:130px repeat(5,minmax(100px,1fr));}.deskBuckets{grid-column:1/-1}.deskBuckets>div{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Move desktop Other expenses to a secondary full-width line */
@media(min-width:1100px){
  .desktopMonthRow{grid-template-columns:150px repeat(4,minmax(118px,1fr)) minmax(180px,1.25fr)}
  .deskOtherLine{grid-column:1/-1;appearance:none;border:1px dashed rgba(155,77,67,.24);border-radius:11px;background:rgba(155,77,67,.055);color:#7d3d36;font:inherit;font-size:12px;font-weight:850;text-align:left;padding:7px 10px;margin-top:0}
}
@media(min-width:1400px){.desktopMonthRow{grid-template-columns:165px repeat(4,minmax(140px,1fr)) minmax(220px,1.3fr)}}
@media(max-width:1180px) and (min-width:1100px){.desktopMonthRow{grid-template-columns:130px repeat(4,minmax(105px,1fr));}.deskBuckets,.deskOtherLine{grid-column:1/-1}}
.chartOtherSummary{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0 0;padding:8px 10px;border:1px dashed rgba(155,77,67,.24);border-radius:13px;background:rgba(155,77,67,.055);color:#7d3d36;font-size:12px}.chartOtherSummary span{font-weight:850}.chartOtherSummary button{appearance:none;border:1px solid rgba(155,77,67,.18);border-radius:999px;background:#fffdf8;color:#7d3d36;font:inherit;font-weight:800;padding:4px 8px}.monthBudgetLine.other .lineProgress{display:none}
/* Desktop inline monthly/annual category budget bars */
@media(min-width:1100px){
  .desktopMonthRow{grid-template-columns:140px repeat(4,minmax(112px,1fr));}
  .deskInlineBars{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:0}
  .deskBudgetBars{border:1px solid rgba(83,66,45,.10);border-radius:13px;background:rgba(255,255,255,.56);padding:8px;display:grid;gap:5px;align-content:start}
  .deskBudgetBars>strong{font-size:12px;color:var(--muted);margin-bottom:2px}.deskBudgetBars.monthly{border-left:3px solid #4d7a58}.deskBudgetBars.annual{border-left:3px solid #466a8f}
  .deskBudgetBar{appearance:none;border:0;background:transparent;padding:2px 0;display:grid;grid-template-columns:minmax(120px,.9fr) minmax(130px,1.2fr) auto;gap:8px;align-items:center;text-align:left;color:var(--ink);font:inherit;font-size:11px;min-height:21px}
  .deskBudgetBar span{min-width:0;display:flex;align-items:center;gap:5px}.deskBudgetBar span em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-weight:750}.deskBudgetBar i{display:block;height:6px;border-radius:999px;background:rgba(83,66,45,.10);overflow:hidden}.deskBudgetBar i u{display:block;height:100%;border-radius:inherit;background:#4d7a58;text-decoration:none}.deskBudgetBars.annual .deskBudgetBar i u{background:#466a8f}.deskBudgetBar.warn i u{background:#c9872e}.deskBudgetBar.bad i u{background:#b45449}.deskBudgetBar b{font-size:11px;white-space:nowrap;text-align:right}.deskBudgetBar b small{color:var(--muted);font-weight:750}.deskBudgetBar .subClaimTag{font-size:9px;padding:0 4px;margin-left:0}.deskBuckets{grid-column:1/-1}.deskOtherLine{grid-column:1/-1}
}
@media(max-width:1280px) and (min-width:1100px){.deskInlineBars{grid-template-columns:1fr}.deskBudgetBar{grid-template-columns:minmax(120px,.9fr) minmax(110px,1.2fr) auto}}
@media(min-width:1400px){.desktopMonthRow{grid-template-columns:150px repeat(4,minmax(130px,1fr));}.deskInlineBars{grid-template-columns:1fr 1fr}}

/* Desktop spreadsheet-style budget matrix */
.desktopBudgetSheet{display:none}.budgetSheetScroll{overflow:auto;border:1px solid rgba(83,66,45,.14);border-radius:18px;background:#fffdf8;max-height:72vh}.budgetSheetGrid{display:grid;grid-template-columns:220px repeat(var(--month-count),minmax(126px,1fr));min-width:calc(220px + var(--month-count)*126px)}.sheetCorner,.sheetMonthHead,.sheetLabel{position:sticky;background:#fff8ee;z-index:2}.sheetCorner{left:0;top:0;z-index:4;padding:11px 12px;border-right:1px solid rgba(83,66,45,.12);border-bottom:1px solid rgba(83,66,45,.12);font-weight:900}.sheetMonthHead{top:0;padding:11px 10px;border-bottom:1px solid rgba(83,66,45,.12);font-size:12px;font-weight:900;color:var(--accent);text-align:center}.sheetLabel{left:0;z-index:3;padding:9px 12px;border-right:1px solid rgba(83,66,45,.12);border-bottom:1px solid rgba(83,66,45,.08);min-height:54px;display:flex;flex-direction:column;justify-content:center}.sheetLabel strong{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheetLabel span{font-size:10.5px;color:var(--muted);margin-top:2px}.sheetLabel.monthly,.sheetLabel.monthlyCat{border-left:4px solid #4d7a58}.sheetLabel.annual,.sheetLabel.annualCat{border-left:4px solid #466a8f}.sheetLabel.other{border-left:4px solid #9b4d43}.sheetLabel.refund{border-left:4px solid #5f9a67}.sheetCell{appearance:none;border:0;border-right:1px solid rgba(83,66,45,.07);border-bottom:1px solid rgba(83,66,45,.08);background:#fffdf8;color:var(--ink);font:inherit;text-align:left;padding:8px 9px;min-height:54px}.sheetCell:focus-visible{outline:0;box-shadow:inset 0 0 0 2px rgba(138,90,44,.42);background:#fff7ed}.sheetCell b{display:block;font-size:13px;white-space:nowrap}.sheetCell small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheetCell i{display:block;height:6px;border-radius:999px;background:rgba(83,66,45,.10);overflow:hidden;margin-top:6px}.sheetCell i em{display:block;height:100%;border-radius:inherit;background:#4d7a58}.sheetCell.annual i em,.sheetCell.annualCat i em{background:#466a8f}.sheetCell.warn i em{background:#c9872e}.sheetCell.bad i em{background:#b45449}.sheetCell.other{background:rgba(155,77,67,.045)}.sheetCell.refund{background:rgba(77,122,88,.045)}.sheetCell .subClaimTag{margin:4px 0 0;font-size:9px;padding:1px 4px}.sheetLabel.annual,.sheetLabel.oneoff,.sheetLabel.other,.sheetLabel.refund{box-shadow:inset 0 1px 0 rgba(83,66,45,.12)}@media(min-width:1100px){.desktopBudgetSheet{display:block}.desktopMonthBoard{display:none!important}.mobileMonthRail{display:none}.budgetCockpit{grid-template-columns:320px minmax(0,1fr)}.budgetHero{top:58px}.budgetCards{min-width:0;overflow:visible}}

/* Desktop: streamline Budget overall into a thin full-width summary bar */
@media(min-width:1100px){
  .budgetCockpit{display:block}
  .budgetHero{position:static;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr) auto;gap:10px 14px;align-items:center;margin:0 0 12px;padding:10px 12px;border-radius:16px;box-shadow:0 6px 18px rgba(75,55,32,.06)}
  .budgetHeroTop{margin:0;display:flex;align-items:center;gap:10px;min-width:0}.budgetHeroTop strong{font-size:22px;line-height:1}.budgetHeroTop .budgetLabel{font-size:11px}.budgetHero>.budgetStack{height:10px;margin:0;min-width:240px}.budgetHero>.budgetMeta{margin:0;display:flex;gap:6px;flex-wrap:wrap}.budgetHero>.budgetMeta span{font-size:11px;padding:3px 7px}.budgetHero>.overallGrid{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;margin:0}.budgetHero>.overallGrid span{font-size:11px;padding:3px 7px}.budgetHero>p{display:none}.budgetHero .status{justify-self:end;white-space:nowrap}
}
@media(min-width:1280px){
  .budgetHero{grid-template-columns:minmax(230px,.65fr) minmax(360px,1fr) minmax(420px,1.2fr) auto}.budgetHero>.overallGrid{grid-column:auto}.budgetHero>.budgetMeta{justify-content:flex-start}
}
@media(min-width:1100px){.budgetSheetGrid{grid-template-columns:260px repeat(var(--month-count),minmax(126px,1fr));min-width:calc(260px + var(--month-count)*126px)}.sheetLabel strong{font-size:13px}.sheetLabel span{font-size:10.5px;line-height:1.25}}
/* Spreadsheet hierarchy: indent category rows under their parent budget */
@media(min-width:1100px){
  .sheetLabel.monthlyCat,.sheetLabel.annualCat{padding-left:26px;background:#fffbf4}
  .sheetLabel.monthlyCat strong,.sheetLabel.annualCat strong{font-size:12px;font-weight:800}
  .sheetLabel.monthlyCat span,.sheetLabel.annualCat span{font-size:10px}
  .sheetLabel.monthlyCat:before,.sheetLabel.annualCat:before{content:"↳";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--soft);font-weight:900;font-size:12px}
  .sheetLabel.monthly,.sheetLabel.annual{background:#fff4e5}.sheetLabel.monthly strong,.sheetLabel.annual strong{font-size:13.5px;font-weight:950}
}
.reviewUndoStatus{align-self:center;font-size:11px;color:var(--muted);max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reviewTools button:disabled{opacity:.45;cursor:not-allowed}
.reviewChangeLog{margin:8px 0 12px;border:1px solid rgba(83,66,45,.12);border-radius:14px;background:#fffaf2}.reviewChangeLog summary{cursor:pointer;padding:9px 12px;font-weight:850;color:var(--accent)}#reviewChangeLog{display:grid;gap:6px;padding:0 10px 10px}.changeLogItem{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 9px;border-radius:10px;background:#fff;border:1px solid rgba(83,66,45,.08)}.changeLogItem strong{display:block;font-size:12px;max-width:620px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.changeLogItem span{display:block;font-size:10px;color:var(--muted);margin-top:2px}.changeLogItem button{white-space:nowrap;font-size:11px;padding:5px 8px}

/* Mobile budget sheet: desktop-level usefulness without giant cards */
.mobileBudgetSheet{display:none}
@media(max-width:1099px){
  .mobileMonthRail{display:none!important}
  .mobileBudgetSheet{display:block;background:#fffdf8;border:1px solid rgba(83,66,45,.13);border-radius:20px;padding:12px;box-shadow:0 10px 28px rgba(75,55,32,.07)}
  .mobileSheetHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.mobileSheetHead h2{margin:0;font-size:17px}.mobileSheetHead p{margin:2px 0 0;color:var(--muted);font-size:12px}.mobileSheetHead button,.mobileExtras button,.mobileSheetSummary button{border:1px solid rgba(83,66,45,.14);background:#fff8ee;color:var(--ink);border-radius:12px;padding:8px 10px;font-weight:850}
  .mobileMonthTabs{display:flex;gap:6px;overflow:auto;margin:0 -12px 10px;padding:0 12px 4px;scrollbar-width:none}.mobileMonthTabs::-webkit-scrollbar{display:none}.mobileMonthTabs button{flex:0 0 auto;border:1px solid rgba(83,66,45,.13);background:#fff;border-radius:999px;padding:7px 11px;font-weight:850;color:var(--muted)}.mobileMonthTabs button.active{background:var(--accent);color:white;border-color:var(--accent)}
  .mobileSheetSummary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.mobileSheetSummary button{text-align:left;background:#fff}.mobileSheetSummary span,.mobileExtras span{display:block;color:var(--muted);font-size:11px}.mobileSheetSummary b,.mobileExtras b{display:block;font-size:16px;margin-top:2px}.mobileSheetSummary small,.mobileExtras small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
  .mobileBucketSection{margin-top:10px}.mobileBucketSection h3{margin:0 0 6px;font-size:13px;color:#4d7a58}.mobileBucketSection.annual h3{color:#466a8f}.mobileBucketRow{width:100%;appearance:none;border:0;border-top:1px solid rgba(83,66,45,.08);background:transparent;color:var(--ink);font:inherit;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 2px}.mobileBucketRow strong{display:block;font-size:13px}.mobileBucketRow small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px}.mobileBucketRow b{text-align:right;font-size:13px}.mobileBucketRow b small{font-weight:700}.mobileBucketRow i{display:block;height:6px;background:rgba(83,66,45,.1);border-radius:999px;overflow:hidden;margin-top:7px}.mobileBucketRow i em{display:block;height:100%;background:#4d7a58;border-radius:inherit}.mobileBucketRow.annual i em{background:#466a8f}.mobileBucketRow.warn i em{background:#c9872e}.mobileBucketRow.bad i em{background:#b45449}.mobileBucketRow.unallocated i em{background:rgba(83,66,45,.22)}
  .mobileExtras{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}.mobileExtras button{text-align:left;background:#fff}
  .budgetCockpit{display:block}.budgetCards{min-width:0}.trendCard{margin-top:12px}
}

/* Mobile polish pass: denser, thumb-friendly, swipe-first */
@media(max-width:700px){
  body{font-size:13px}main{padding:10px 10px 28px}.hero{padding:12px 12px 10px;border-radius:18px;margin-bottom:8px}.topRow{margin-bottom:6px}.eyebrow{font-size:10px}.hero h1{font-size:23px;line-height:1.05;margin:3px 0}.hero p{font-size:11px;margin:3px 0}.private{display:none}.quickNav{position:sticky;top:0;z-index:20;margin:0 -10px 8px;padding:7px 10px;overflow:auto;gap:6px;background:rgba(247,241,232,.94);backdrop-filter:blur(10px);scrollbar-width:none}.quickNav::-webkit-scrollbar{display:none}.quickNav a{font-size:11px;padding:6px 9px;white-space:nowrap}.toolbar.card{padding:10px;border-radius:16px;gap:8px;grid-template-columns:1fr}.toolbar label{font-size:11px}.toolbar select,.toolbar input{font-size:13px;padding:8px 10px;border-radius:10px}.kpis{grid-template-columns:1fr 1fr;gap:7px}.kpis .card{padding:9px;border-radius:14px}.kpis span{font-size:10px}.kpis strong{font-size:14px}.card{border-radius:17px;padding:11px}.sectionHead{gap:8px}.sectionHead h2{font-size:16px}.hint{font-size:11px}.resultCount{font-size:11px;padding:5px 8px}
  .mobileBudgetSheet{padding:9px;border-radius:17px;margin-top:0;touch-action:pan-y}.mobileSheetHead{margin-bottom:7px}.mobileSheetHead h2{font-size:15px}.mobileSheetHead p{font-size:10.5px}.mobileSheetHead button{font-size:11px;padding:6px 8px;border-radius:10px}.mobileMonthTabs{gap:5px;margin:0 -9px 7px;padding:0 9px 3px;scroll-snap-type:x mandatory}.mobileMonthTabs button{font-size:11px;padding:5px 9px;scroll-snap-align:center}.mobileSheetSummary{gap:6px;margin-bottom:8px}.mobileSheetSummary button{padding:7px 8px;border-radius:11px}.mobileSheetSummary span,.mobileExtras span{font-size:9.5px}.mobileSheetSummary b,.mobileExtras b{font-size:13px}.mobileSheetSummary small,.mobileExtras small{font-size:9.5px;line-height:1.2}.mobileBucketSection{margin-top:8px}.mobileBucketSection h3{font-size:11.5px;margin-bottom:2px}.mobileBucketRow{min-height:44px;padding:7px 1px;gap:7px}.mobileBucketRow strong{font-size:11.8px;line-height:1.15}.mobileBucketRow small{font-size:9.2px;line-height:1.15;margin-top:1px}.mobileBucketRow b{font-size:11.8px}.mobileBucketRow i{height:4px;margin-top:5px}.mobileBucketRow .subClaimTag{font-size:8px;margin-left:3px}.mobileExtras{gap:6px;margin-top:8px}.mobileExtras button{padding:7px 8px;border-radius:11px}
  .trendCard,.subscriptionsCard,.reviewCard{margin-top:10px}.stackedTrend{min-height:160px}.stackMonthLabel strong{font-size:11px}.stackMonthLabel span{font-size:9px}.trendReadout{font-size:11px}.subscriptionSummary{grid-template-columns:1fr 1fr;gap:6px}.subscriptionMetric{padding:8px}.subscriptionMetric span{font-size:9.5px}.subscriptionMetric b{font-size:12px}.subscriptionGroup{padding:9px;border-radius:13px}.subscriptionGroupHead strong{font-size:12px}.subscriptionGroupHead small,.subscriptionGroupMeta{font-size:10px}.reviewTools{gap:5px}.reviewTools button{font-size:10.5px;padding:6px 7px}.reviewUndoStatus{display:none}.reviewItem,.txCard,.categoryGroup{padding:9px;border-radius:13px}.reviewTop strong,.txDesc{font-size:12px}.reviewTop span,.txDate,.txMeta,.reviewMeta{font-size:10px}.modalPanel{width:calc(100vw - 14px);max-height:88vh;border-radius:18px}.modalHead{padding:12px}.modalHead h2{font-size:16px}.modalBody{padding:10px}.modalTx{padding:9px;border-radius:13px}.modalTxTop strong{font-size:12px}.modalTxTop span{font-size:10px}.modalTxTop b{font-size:12px}.categoryReassign select{font-size:12px;padding:6px}.modalActions button{font-size:10.5px;padding:6px 7px}
}
@media(max-width:380px){.mobileSheetSummary{grid-template-columns:1fr}.mobileBucketRow{grid-template-columns:minmax(0,1fr) 78px}.mobileBucketRow strong{font-size:11.2px}.mobileBucketRow small{font-size:8.8px}.mobileBucketRow b{font-size:11px}.quickNav a{font-size:10px;padding:5px 8px}}

/* Hard mobile overflow containment + desktop-like compact matrix */
@media(max-width:1099px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}body{padding-left:0!important;padding-right:0!important}main{width:100%;max-width:100%;overflow-x:clip;padding-left:10px;padding-right:10px}.budgetCockpit,.budgetCards,section,.card,.toolbar,.kpis,.stateSummary{max-width:100%;min-width:0}.desktopBudgetSheet{display:none!important;width:0!important;min-width:0!important;max-width:0!important;overflow:hidden!important}.budgetSheetScroll,.budgetSheetGrid{display:none!important}.mobileCompareSheet{display:block;max-width:100%;min-width:0;background:#fffdf8;border:1px solid rgba(83,66,45,.13);border-radius:17px;padding:9px;margin:0 0 9px;box-shadow:0 8px 22px rgba(75,55,32,.06);overflow:hidden}.mobileCompareHead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 7px}.mobileCompareHead h2{font-size:14px;margin:0}.mobileCompareHead span{font-size:10px;color:var(--muted);white-space:nowrap}.mobileCompareScroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;border:1px solid rgba(83,66,45,.10);border-radius:12px;background:#fff;overscroll-behavior-x:contain;scrollbar-width:thin}.mobileCompareGrid{display:grid;grid-template-columns:112px repeat(var(--month-count),72px);width:max-content;min-width:100%}.mobileCompareCorner,.mobileCompareMonth,.mobileCompareLabel{position:sticky;background:#fff8ee;z-index:2}.mobileCompareCorner{left:0;top:0;z-index:5;border-right:1px solid rgba(83,66,45,.12);border-bottom:1px solid rgba(83,66,45,.12);padding:8px 7px;font-size:10px;font-weight:950;color:var(--accent)}.mobileCompareMonth{top:0;z-index:3;text-align:center;padding:8px 4px;border-bottom:1px solid rgba(83,66,45,.12);font-size:10px;font-weight:950;color:var(--muted)}.mobileCompareMonth.active{color:#fff;background:var(--accent)}.mobileCompareLabel{left:0;z-index:4;min-height:42px;display:flex;align-items:center;border-right:1px solid rgba(83,66,45,.12);border-bottom:1px solid rgba(83,66,45,.08);padding:6px 7px;background:#fffdf8}.mobileCompareLabel strong{font-size:10.2px;line-height:1.12;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mobileCompareLabel.monthly,.mobileCompareLabel.monthlyCat{border-left:3px solid #4d7a58}.mobileCompareLabel.annual,.mobileCompareLabel.annualCat{border-left:3px solid #466a8f}.mobileCompareLabel.other{border-left:3px solid #9b4d43}.mobileCompareLabel.refund{border-left:3px solid #5f9a67}.mobileCompareCell{appearance:none;border:0;border-right:1px solid rgba(83,66,45,.06);border-bottom:1px solid rgba(83,66,45,.08);background:#fff;color:var(--ink);font:inherit;text-align:left;min-height:42px;padding:5px 5px}.mobileCompareCell b{display:block;font-size:10.2px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobileCompareCell small{display:block;font-size:8.4px;color:var(--muted);margin-top:2px}.mobileCompareCell i{display:block;height:3px;border-radius:99px;background:rgba(83,66,45,.1);overflow:hidden;margin-top:4px}.mobileCompareCell i em{display:block;height:100%;border-radius:inherit;background:#4d7a58}.mobileCompareCell.annual i em,.mobileCompareCell.annualCat i em{background:#466a8f}.mobileCompareCell.warn i em{background:#c9872e}.mobileCompareCell.bad i em{background:#b45449}.mobileCompareCell.other{background:rgba(155,77,67,.045)}.mobileCompareCell.refund{background:rgba(77,122,88,.045)}.mobileBudgetSheet{overflow:hidden;max-width:100%;box-shadow:0 8px 22px rgba(75,55,32,.055)}.mobileSheetHead,.mobileSheetSummary,.mobileExtras,.mobileBucketRow{min-width:0}.mobileSheetHead>div,.mobileBucketRow span{min-width:0}.mobileSheetHead p,.mobileBucketRow strong,.mobileBucketRow small{overflow:hidden;text-overflow:ellipsis}.mobileSheetHead button{flex:0 0 auto}.mobileBucketRow{grid-template-columns:minmax(0,1fr) minmax(72px,auto)}.quickNav{max-width:100vw;overscroll-behavior-x:contain}.stackedTrend,.chartOtherSummary,.mobileMonthTabs{max-width:100%;overscroll-behavior-x:contain}.modalPanel{max-width:calc(100vw - 12px)}
}
@media(max-width:380px){.mobileCompareGrid{grid-template-columns:104px repeat(var(--month-count),66px)}.mobileCompareHead span{display:none}.mobileCompareLabel strong{font-size:9.6px}.mobileCompareCell b{font-size:9.7px}.mobileCompareCell small{font-size:8px}}

/* Finance sub-pages: income, home funds, mortgage/CPF */
.financeSubPage{margin:12px 0}.financeMiniKpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:8px 0 12px}.financeMiniKpi{background:#fff8ee;border:1px solid rgba(83,66,45,.11);border-radius:14px;padding:10px;min-width:0}.financeMiniKpi span{display:block;color:var(--muted);font-size:11px;font-weight:850}.financeMiniKpi b{display:block;margin-top:4px;font-size:17px;line-height:1.05;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.financeMiniKpi small{display:block;margin-top:4px;color:var(--muted);font-size:10.5px;line-height:1.2}.financePanelGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.financePanel{background:white;border:1px solid rgba(83,66,45,.11);border-radius:15px;padding:10px;min-width:0}.financePanel h3{margin:0 0 8px;font-size:13px;color:var(--accent)}.financeLine{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;border-top:1px solid rgba(83,66,45,.08);padding:8px 0}.financeLine:first-of-type{border-top:0}.financeLine strong{display:block;font-size:11px;color:var(--muted)}.financeLine span{display:block;font-size:12px;font-weight:800;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.financeLine small{display:block;margin-top:2px;color:var(--muted);font-size:10px;line-height:1.2}.financeLine b{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.financeLine.income b{color:#356b42}.financeLine.refund b{color:#4d7a58}.financeLine.home b,.financeLine.mortgage b{color:#7d3d36}.mortgageInputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 12px}.mortgageInputs label{display:block;color:var(--muted);font-size:11px;font-weight:850}.mortgageInputs input{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:11px;background:white;color:var(--ink);padding:9px 10px;font-size:14px}.financeFormula{font-size:11.5px;background:#fff8ee;border:1px dashed rgba(83,66,45,.16);border-radius:11px;padding:8px;margin-top:7px;color:var(--accent);font-weight:800}
@media(max-width:900px){.financeMiniKpis{grid-template-columns:repeat(2,minmax(0,1fr))}.financePanelGrid{grid-template-columns:1fr}.mortgageInputs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.financeMiniKpis{grid-template-columns:1fr 1fr;gap:6px}.financeMiniKpi{padding:8px;border-radius:12px}.financeMiniKpi span{font-size:9.5px}.financeMiniKpi b{font-size:12px}.financeMiniKpi small{font-size:9px}.mortgageInputs{grid-template-columns:1fr;gap:6px}.financePanel{padding:8px;border-radius:13px}.financeLine{padding:7px 0}.financeLine span{font-size:11px}.financeLine b{font-size:11px}}

/* Transaction edit UX: grouped, explicit actions */
.reviewActions.structured,.modalActions.structured{display:grid;gap:8px;margin-top:10px}.editActionGroup{border:1px solid rgba(83,66,45,.10);border-radius:13px;background:#fffdf8;padding:8px;min-width:0}.editActionGroup h4{margin:0 0 6px;font-size:11px;color:var(--muted);font-weight:950;letter-spacing:.01em}.editActionButtons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.editActionGroup.claim .editActionButtons{grid-template-columns:repeat(2,minmax(0,1fr))}.editActionGroup.done .editActionButtons{grid-template-columns:1fr}.modalActions.structured button,.reviewActions.structured button{border:1px solid rgba(83,66,45,.16);background:white;color:var(--ink);border-radius:11px;padding:8px 7px;min-height:48px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:2px;font-size:12px;font-weight:900;line-height:1.1}.modalActions.structured button span,.reviewActions.structured button span{display:block}.modalActions.structured button small,.reviewActions.structured button small{display:block;color:var(--muted);font-size:9.5px;font-weight:750;line-height:1.15}.modalActions.structured button.active,.reviewActions.structured button.active{background:var(--accent);border-color:var(--accent);color:white;box-shadow:0 6px 14px rgba(138,90,44,.16)}.modalActions.structured button.active small,.reviewActions.structured button.active small{color:rgba(255,255,255,.82)}.modalActions.structured button.claim,.reviewActions.structured button.claim{border-color:rgba(70,106,143,.28);background:#f5f9fd}.modalActions.structured button.claim.active,.reviewActions.structured button.claim.active{background:#466a8f;border-color:#466a8f}.modalActions.structured button.done,.reviewActions.structured button.done{border-color:rgba(77,122,88,.28);background:#f7fbf5}.modalActions.structured button.done.active,.reviewActions.structured button.done.active{background:#4d7a58;border-color:#4d7a58}.categoryReassign.modal,.categoryReassign.review{border:1px solid rgba(83,66,45,.10);border-radius:13px;background:#fffaf3;padding:8px;margin:10px 0 0}.categoryReassign.modal span,.categoryReassign.review span{font-weight:950;color:var(--muted)}.categoryReassign.modal select,.categoryReassign.review select{background:white}.modalTx .txMeta span,.reviewMeta span{max-width:100%;overflow:hidden;text-overflow:ellipsis}.modalActions.compact.structured{gap:7px}.modalActions.compact .editActionGroup{padding:7px}.modalActions.compact .editActionButtons{grid-template-columns:repeat(3,minmax(0,1fr))}.modalActions.compact .editActionGroup.claim .editActionButtons{grid-template-columns:repeat(2,minmax(0,1fr))}.modalActions.compact button{font-size:11px;min-height:42px;padding:6px}
@media(max-width:560px){.editActionButtons{grid-template-columns:1fr 1fr}.editActionGroup.treatment .editActionButtons{grid-template-columns:1fr}.modalActions.structured button,.reviewActions.structured button{min-height:43px;font-size:11.5px}.modalActions.structured button small,.reviewActions.structured button small{font-size:9px}.editActionGroup{padding:7px}.categoryReassign.modal,.categoryReassign.review{padding:7px}}

/* Mobile transaction edit density pass */
@media(max-width:560px){
  .reviewActions.structured,.modalActions.structured{gap:5px;margin-top:7px}.editActionGroup{padding:5px 6px;border-radius:11px;background:#fffdf9}.editActionGroup h4{font-size:9.5px;margin:0 0 4px;display:flex;align-items:center;gap:4px}.editActionGroup h4:after{content:"";height:1px;background:rgba(83,66,45,.10);flex:1}.editActionButtons{gap:4px}.editActionGroup.treatment .editActionButtons{grid-template-columns:repeat(3,minmax(0,1fr))}.editActionGroup.claim .editActionButtons{grid-template-columns:repeat(2,minmax(0,1fr))}.editActionGroup.done .editActionButtons{grid-template-columns:1fr}.modalActions.structured button,.reviewActions.structured button{min-height:34px;border-radius:9px;padding:5px 6px;text-align:center;align-items:center;font-size:10.5px;line-height:1}.modalActions.structured button small,.reviewActions.structured button small{display:none}.modalTx,.reviewItem{padding:8px}.modalTxTop,.reviewTop{gap:7px}.modalTxTop strong,.reviewTop strong{font-size:11.5px;line-height:1.2}.modalTxTop span,.reviewTop span{font-size:9.5px;margin-top:2px}.modalTxTop b,.reviewTop b{font-size:11px}.txMeta,.reviewMeta{gap:4px;margin:6px 0}.txMeta span,.reviewMeta span,.claimTag{font-size:9.5px!important;padding:3px 6px}.categoryReassign.modal,.categoryReassign.review{padding:5px 6px;margin:6px 0 0;border-radius:10px;gap:3px}.categoryReassign.modal span,.categoryReassign.review span{font-size:9.5px}.categoryReassign select{min-height:30px;font-size:11px!important;padding:4px 7px!important;border-radius:8px}.monthModalBody{gap:7px;padding:8px}.modalBucket{gap:7px}.modalBucket h3{font-size:12px;margin-bottom:0}.modalSummaryPills{padding-bottom:5px}.modalSummaryPills span{font-size:10px;padding:5px 8px}.reviewQueue{gap:7px}.reviewTools{margin-bottom:8px}.reviewChangeLog{margin:6px 0 8px}
}
@media(max-width:380px){.editActionGroup.treatment .editActionButtons{grid-template-columns:1fr 1fr 1fr}.modalActions.structured button,.reviewActions.structured button{font-size:10px;padding:5px 4px}.modalTxTop,.reviewTop{display:grid;grid-template-columns:minmax(0,1fr) auto}.categoryReassign.modal,.categoryReassign.review{flex-direction:row;align-items:center}.categoryReassign.modal span,.categoryReassign.review span{flex:0 0 auto}.categoryReassign select{min-width:0}}

/* Compact transaction list: edit only after tap/click */
.modalTx.compactTx{position:relative;cursor:pointer;padding-right:58px}.modalTx.compactTx .txEditor{display:none;margin-top:8px}.modalTx.compactTx.editing{cursor:default;border-color:rgba(138,90,44,.28);background:linear-gradient(180deg,#fff,#fffaf3)}.modalTx.compactTx.editing .txEditor{display:block}.openTxEditor{position:absolute;right:9px;top:9px;border:1px solid rgba(83,66,45,.15);border-radius:999px;background:#fffaf3;color:var(--accent);font:inherit;font-size:11px;font-weight:950;padding:5px 8px}.modalTx.compactTx.editing .openTxEditor{background:var(--accent);border-color:var(--accent);color:white}.modalTx.compactTx:focus-visible{outline:0;box-shadow:var(--focus)}
@media(max-width:560px){.modalTx.compactTx{padding:8px 48px 8px 8px}.openTxEditor{right:7px;top:7px;font-size:10px;padding:4px 6px}.modalTx.compactTx .txMeta{margin-bottom:0}.modalTx.compactTx.editing .txMeta{margin-bottom:5px}}

/* Budget sheet distillation: comparison table only, no duplicated detail UI */
@media(min-width:1100px){
  .desktopBudgetSheet{display:block}
  .compactSheetTitle{margin-bottom:5px}
  .budgetSheetScroll{border-radius:13px;max-height:62vh;background:#fff;border-color:rgba(83,66,45,.12)}
  .budgetSheetGrid{grid-template-columns:184px repeat(var(--month-count),minmax(86px,1fr));min-width:calc(184px + var(--month-count)*86px)}
  .sheetCorner,.sheetMonthHead{padding:7px 8px;font-size:11px;background:#fff8ee}
  .sheetLabel{min-height:34px;padding:5px 8px;background:#fffdf8}
  .sheetLabel strong{font-size:11px;line-height:1.1}
  .sheetLabel span{font-size:9.5px;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sheetCell{min-height:34px;padding:5px 7px;text-align:right;background:#fff}
  .sheetCell b{font-size:11.2px;line-height:1.05;font-weight:900;letter-spacing:-.015em}
  .sheetCell small{font-size:9px;margin-top:1px;line-height:1;color:var(--muted)}
  .sheetCell i{display:none!important}
  .sheetCell .subClaimTag{display:inline-flex;margin:2px 0 0;font-size:8px;padding:0 3px}
  .sheetLabel.monthly,.sheetLabel.monthlyCat{border-left-width:3px}.sheetLabel.annual,.sheetLabel.annualCat{border-left-width:3px}.sheetLabel.other,.sheetLabel.refund{border-left-width:3px}
  .sheetCell.monthlyCat,.sheetCell.annualCat{background:#fffdfa}
  .sheetCell.good small{color:#4d7a58}.sheetCell.warn small{color:#9b6428}.sheetCell.bad small{color:#9b4d43}
}
@media(max-width:1099px){
  .mobileBudgetSheet{display:none!important}
  .mobileCompareSheet{margin-bottom:8px}
}

/* Purpose pages: keep CPF/home/income out of the main budget workspace */
.financePageSection[hidden]{display:none!important}.purposeNav{position:sticky;top:0;z-index:30;background:rgba(247,241,232,.92);backdrop-filter:blur(12px);border:1px solid rgba(83,66,45,.10);border-radius:16px;padding:6px;margin:8px 0 12px;gap:6px}.purposeNav a{border-radius:12px;padding:9px 12px;font-weight:950;text-decoration:none;background:rgba(255,253,248,.66);border:1px solid transparent}.purposeNav a.active{background:var(--ink);color:#fff8ee;border-color:var(--ink);box-shadow:0 8px 18px rgba(63,42,22,.14)}.financeSubPage{margin-top:0}.globalFilter{position:sticky;top:58px;z-index:20;margin-bottom:10px}@media(max-width:720px){.purposeNav{top:0;margin-left:-2px;margin-right:-2px;border-radius:14px;overflow-x:auto;scrollbar-width:none}.purposeNav::-webkit-scrollbar{display:none}.purposeNav a{flex:0 0 auto;font-size:12px;padding:8px 10px}.globalFilter{top:52px}.toolbar.card{grid-template-columns:1fr 1fr}.toolbar .modeHelp{grid-column:1/-1;font-size:11px}}

.assumptionEditor{border:1px solid rgba(83,66,45,.12);border-radius:14px;background:#fffdf8;padding:10px;margin:0 0 10px}.assumptionEditor summary{cursor:pointer;font-weight:950;color:var(--accent)}.assumptionEditor .hint{margin:6px 0 10px}.mortgageInputsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.mortgageInputsGrid label{display:grid;gap:4px;font-size:11px;font-weight:900;color:var(--muted)}.mortgageInputsGrid input{width:100%;box-sizing:border-box;border:1px solid rgba(83,66,45,.16);border-radius:10px;padding:8px;background:#fff;color:var(--ink);font:inherit;font-weight:800}

/* Hard viewport split: prevent mobile-only artifacts from leaking into desktop */
@media(min-width:1100px){
  .mobileCompareSheet,.mobileBudgetSheet,.mobileMonthRail{display:none!important;visibility:hidden!important;width:0!important;height:0!important;max-width:0!important;max-height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important}
  .desktopBudgetSheet{display:block!important;visibility:visible!important;width:auto!important;height:auto!important;max-width:none!important;max-height:none!important;overflow:visible!important}
  .desktopBudgetSheet .budgetSheetScroll,.desktopBudgetSheet .budgetSheetGrid{display:grid!important}
  .desktopBudgetSheet .budgetSheetScroll{display:block!important}
}
@media(max-width:1099px){
  .desktopBudgetSheet,.desktopMonthBoard{display:none!important;visibility:hidden!important;width:0!important;height:0!important;max-width:0!important;max-height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important}
  .mobileCompareSheet{display:block!important;visibility:visible!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:none!important}
}

/* Restore compact category usage bars in the desktop budget sheet */
@media(min-width:1100px){
  .desktopBudgetSheet .sheetCell i{display:block!important;height:3px!important;border-radius:999px;background:rgba(83,66,45,.10);overflow:hidden;margin-top:3px}
  .desktopBudgetSheet .sheetCell i em{display:block;height:100%;border-radius:inherit;background:#4d7a58}
  .desktopBudgetSheet .sheetCell.annual i em,.desktopBudgetSheet .sheetCell.annualCat i em{background:#466a8f}
  .desktopBudgetSheet .sheetCell.warn i em{background:#c9872e}.desktopBudgetSheet .sheetCell.bad i em{background:#b45449}
}

/* Editable related transaction rows (income/home/mortgage pages) */
.financeLine.editableLine{position:relative;padding-right:58px;cursor:pointer;border-radius:10px}
.financeLine.editableLine:hover{background:#fffaf3}
.financeLine.editableLine .txEditor{display:none;grid-column:1/-1;margin-top:8px;padding:8px;border:1px solid rgba(83,66,45,.10);border-radius:12px;background:#fffdf8}
.financeLine.editableLine.editing{background:linear-gradient(180deg,#fff,#fffaf3);border-color:rgba(138,90,44,.18)}
.financeLine.editableLine.editing .txEditor{display:block}
.financeLine.editableLine .openTxEditor{right:0;top:8px}
.financeLine.editableLine.editing .openTxEditor{background:var(--accent);border-color:var(--accent);color:white}
.financeLine.editableLine .categoryReassign{margin:0 0 8px}
.financeLine.editableLine .editActionGroup h4{font-size:10px;margin:6px 0 4px}
.financeLine.editableLine .editActionButtons{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.financeLine.editableLine .editActionButtons button{padding:6px 7px;border-radius:10px;font-size:10.5px}
.financeLine.editableLine .editActionButtons button small{display:none}
@media(max-width:560px){.financeLine.editableLine{padding-right:46px}.financeLine.editableLine .openTxEditor{font-size:10px;padding:4px 6px}.financeLine.editableLine .editActionButtons button{padding:6px 4px;font-size:10px}}

/* CPF / mortgage projection clarity */
.splitFinancePanel{grid-column:1/-1}.projectionWide{grid-column:1/-1}
.cpfProjectionChart{display:grid;gap:6px;margin-top:10px;border:1px solid rgba(83,66,45,.10);border-radius:13px;padding:9px;background:#fffdf8}
.cpfChartRow{display:grid;grid-template-columns:34px minmax(80px,1fr) 72px minmax(80px,1fr) 72px;gap:7px;align-items:center;font-size:11px}
.cpfChartRow>span{font-weight:950;color:var(--muted)}.cpfChartRow>b{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:10.5px;color:var(--muted)}
.cpfChartRow i{display:block;height:8px;border-radius:999px;background:rgba(83,66,45,.09);overflow:hidden}.cpfChartRow i em{display:block;height:100%;border-radius:inherit}.cpfChartRow i.cpf em{background:#4d7a58}.cpfChartRow i.loan em{background:#b45449}
.projectionTableWrap{max-width:100%;overflow:auto;border:1px solid rgba(83,66,45,.10);border-radius:13px;background:#fffdf8}.projectionTable{width:100%;min-width:760px;border-collapse:collapse;font-size:11.5px}.projectionTable th,.projectionTable td{padding:7px 8px;border-bottom:1px solid rgba(83,66,45,.08);text-align:right;white-space:nowrap}.projectionTable th:first-child,.projectionTable td:first-child{text-align:left;position:sticky;left:0;background:#fff8ee}.projectionTable th{color:var(--accent);font-weight:950;background:#fff8ee}.projectionTable td{font-variant-numeric:tabular-nums}.projectionTable tbody tr:hover td{background:#fffaf3}
@media(max-width:560px){.cpfChartRow{grid-template-columns:30px minmax(58px,1fr) 55px minmax(58px,1fr) 55px;gap:4px}.cpfChartRow>b{font-size:9px}.projectionTable{min-width:680px;font-size:10.5px}.projectionTable th,.projectionTable td{padding:6px}}

/* CPF vs loan growth/decline comparison */
.projectionComparePanel{grid-column:1/-1}.compareColumns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compareColumns section{border:1px solid rgba(83,66,45,.10);border-radius:13px;background:#fffdf8;padding:10px}.compareColumns h4{margin:0 0 8px;font-size:12px;color:var(--accent)}.compareBar{display:grid;grid-template-columns:112px minmax(90px,1fr) 88px;gap:7px;align-items:center;margin:7px 0}.compareBar span{font-size:11px;font-weight:900;color:var(--muted)}.compareBar i{display:block;height:10px;border-radius:999px;background:rgba(83,66,45,.09);overflow:hidden}.compareBar i em{display:block;height:100%;border-radius:inherit}.compareBar b{text-align:right;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.compareBar small{grid-column:2/-1;color:var(--muted);font-size:9.5px;margin-top:-4px}.compareBar.cpf i em{background:#4d7a58}.compareBar.principal i em{background:#466a8f}.compareBar.interest i em{background:#b45449}.compareBar.net i em{background:#8a5a2c}.compareBar.interest b{color:#9b3f35}.compareBar.net b{color:#6f4b20}
@media(max-width:720px){.compareColumns{grid-template-columns:1fr}.compareBar{grid-template-columns:92px minmax(70px,1fr) 74px}.compareBar b{font-size:11px}.compareBar span{font-size:10.5px}}

/* Compact review and transaction rows: show category/amount first, details on tap */
.reviewItem.compactReview{position:relative;cursor:pointer;padding:9px 58px 9px 10px}
.reviewCompactTop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.reviewCompactTop strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reviewCompactTop span{display:block;margin-top:2px;color:var(--muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reviewCompactTop b{font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}.reviewItem.compactReview>.openTxEditor,.reviewCompactTop .openTxEditor{right:8px;top:8px}.reviewItem.compactReview .reviewDetails{display:none;margin-top:8px}.reviewItem.compactReview.editing{background:linear-gradient(180deg,#fff,#fffaf3);border-color:rgba(138,90,44,.24)}.reviewItem.compactReview.editing .reviewDetails{display:block}.fullLineItem{border:1px solid rgba(83,66,45,.10);border-radius:11px;background:#fff8ee;padding:8px;margin-bottom:8px}.fullLineItem strong{display:block;font-size:12px;line-height:1.25}.fullLineItem small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.modalTx .txMeta.compactOnly{margin-top:4px}.subscriptionGroup details:not([open]){margin-top:0}.subscriptionGroup details summary{cursor:pointer;font-weight:950;color:var(--accent)}
@media(max-width:560px){.reviewItem.compactReview{padding:8px 48px 8px 8px}.reviewCompactTop strong,.reviewCompactTop b{font-size:12px}.reviewCompactTop span{font-size:10px}}

/* Collapsible whole sections */
.sectionCollapse{display:block}.sectionCollapse>summary{cursor:pointer;list-style:none}.sectionCollapse>summary::-webkit-details-marker{display:none}.collapseHead{margin-bottom:0}.sectionCollapse[open]>.collapseHead{margin-bottom:12px}.collapseHead:after{content:'開く';align-self:center;border:1px solid rgba(83,66,45,.14);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950;color:var(--accent);background:#fffaf3}.sectionCollapse[open]>.collapseHead:after{content:'閉じる'}
@media(max-width:560px){.collapseHead:after{padding:4px 7px;font-size:10px}}

/* Review candidates grouped by current category */
.reviewCategoryGroup{border:1px solid rgba(83,66,45,.10);border-radius:14px;background:rgba(255,253,248,.58);padding:8px;margin-bottom:10px}.reviewCategoryGroup h3{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:0 0 7px;padding:0 2px;color:var(--accent);font-size:12px}.reviewCategoryGroup h3 span{font-weight:950}.reviewCategoryGroup h3 b{font-size:11px;color:var(--muted);font-weight:900;white-space:nowrap}.reviewCategoryGroup .reviewItem{margin-top:6px}.reviewCategoryGroup .reviewItem:first-of-type{margin-top:0}

/* Budget breakdown rows should expose actual line items, not repeat category labels */
.categoryBudgetRow.lineItem strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.categoryBudgetRow.lineItem small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.categoryBudgetRow.more{opacity:.82}.empty.small{font-size:11px;color:var(--muted);padding:8px 4px}

/* CPF / loan management optimization */
.cpfLoanHero{border-color:rgba(70,106,143,.24);background:linear-gradient(180deg,#fff,#f8fbf7)}
.cpfLoanBalancePanel{grid-column:1/-1}.cpfLoanTimeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cpfLoanTimeline section{border:1px solid rgba(83,66,45,.10);border-radius:14px;background:#fffdf8;padding:10px}.cpfLoanTimeline h4{margin:0 0 8px;color:var(--accent);font-size:13px}.balanceLine{display:grid;grid-template-columns:72px minmax(80px,1fr) auto;gap:8px;align-items:center;margin:7px 0}.balanceLine span{font-size:11px;color:var(--muted);font-weight:900}.balanceLine i{height:9px;border-radius:999px;background:rgba(83,66,45,.08);overflow:hidden}.balanceLine em{display:block;height:100%;border-radius:inherit}.balanceLine.cpf em{background:linear-gradient(90deg,#4d7a58,#8bb174)}.balanceLine.loan em{background:linear-gradient(90deg,#9b4d43,#d59a75)}.balanceLine b{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.cpfLoanTimeline small{display:block;margin-top:8px;color:var(--muted);font-size:10.5px;line-height:1.35}.projectionTable th:nth-child(2),.projectionTable td:nth-child(2),.projectionTable th:nth-child(3),.projectionTable td:nth-child(3){background:rgba(77,122,88,.06)}.projectionTable th:nth-child(5),.projectionTable td:nth-child(5),.projectionTable th:nth-child(6),.projectionTable td:nth-child(6){background:rgba(155,77,67,.06)}
@media(max-width:760px){.cpfLoanTimeline{grid-template-columns:1fr}.balanceLine{grid-template-columns:66px minmax(64px,1fr) auto}.balanceLine b{font-size:11px}}

/* CPF / mortgage page: desktop comparison layout + mobile reading order */
.mortgageCpfPage .sectionHead{align-items:end}.mortgageCpfPage #mortgageCpfSummary.financeMiniKpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:10px}.mortgageCpfPage .financePanelGrid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}.mortgageCpfPage .cpfLoanHero{grid-column:1/-1}.mortgageCpfPage .cpfLoanBalancePanel{grid-column:1/-1}.mortgageCpfPage .splitFinancePanel{grid-column:span 7}.mortgageCpfPage .projectionComparePanel{grid-column:span 5}.mortgageCpfPage .loanManagementPanel{grid-column:span 5}.mortgageCpfPage .projectionWide{grid-column:1/-1}.mortgageCpfPage .cpfCurrentPanel{grid-column:span 7}.mortgageCpfPage .mortgageTxPanel{grid-column:span 5}.mortgageCpfPage .cpfMemoPanel{grid-column:1/-1}.mortgageCpfPage .financePanel{scroll-margin-top:12px}.mortgageCpfPage .assumptionEditor{margin-bottom:12px}.mortgageCpfPage .assumptionEditor:not([open]){padding:8px 10px}.mortgageCpfPage .assumptionEditor summary{min-height:30px;display:flex;align-items:center}.mortgageCpfPage .projectionWide h3:after{content:'横スクロール可';float:right;color:var(--muted);font-size:10px;font-weight:850}.mortgageCpfPage .projectionTableWrap{-webkit-overflow-scrolling:touch}.mortgageCpfPage .projectionTable th:first-child,.mortgageCpfPage .projectionTable td:first-child{z-index:2}.mortgageCpfPage .financeMiniKpi b{letter-spacing:-.02em}
@media(min-width:1100px){.mortgageCpfPage .cpfLoanTimeline section{min-height:142px}.mortgageCpfPage .cpfProjectionChart{max-height:420px;overflow:auto}.mortgageCpfPage .projectionTable{min-width:980px}.mortgageCpfPage .financeMiniKpis{grid-template-columns:repeat(3,minmax(0,1fr))}.mortgageCpfPage #mortgageCpfSummary.financeMiniKpis{grid-template-columns:repeat(4,minmax(0,1fr))}.mortgageCpfPage .cpfLoanHero .financeMiniKpis{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:900px){.mortgageCpfPage #mortgageCpfSummary.financeMiniKpis{grid-template-columns:repeat(2,minmax(0,1fr))}.mortgageCpfPage .financePanelGrid{grid-template-columns:1fr}.mortgageCpfPage .splitFinancePanel,.mortgageCpfPage .projectionComparePanel,.mortgageCpfPage .loanManagementPanel,.mortgageCpfPage .cpfCurrentPanel,.mortgageCpfPage .mortgageTxPanel{grid-column:1/-1}.mortgageCpfPage .projectionWide{margin-left:-2px;margin-right:-2px}.mortgageCpfPage .projectionWide h3:after{content:'← 横スクロール →'}}
@media(max-width:430px){.mortgageCpfPage #mortgageCpfSummary.financeMiniKpis{display:flex;overflow:auto;gap:7px;scroll-snap-type:x mandatory;padding-bottom:2px}.mortgageCpfPage #mortgageCpfSummary .financeMiniKpi{min-width:142px;scroll-snap-align:start}.mortgageCpfPage .cpfLoanHero .financeMiniKpis,.mortgageCpfPage .splitFinancePanel .financeMiniKpis,.mortgageCpfPage .loanManagementPanel .financeMiniKpis{grid-template-columns:1fr 1fr}.mortgageCpfPage .compareColumns{grid-template-columns:1fr}.mortgageCpfPage .cpfProjectionChart{margin-left:-2px;margin-right:-2px;padding:7px}.mortgageCpfPage .projectionTableWrap{margin-left:-8px;margin-right:-8px;border-left:0;border-right:0;border-radius:0}.mortgageCpfPage .projectionTable{min-width:760px}.mortgageCpfPage .mortgageInputsGrid{grid-template-columns:1fr}.mortgageCpfPage .balanceLine{grid-template-columns:60px minmax(70px,1fr) auto;gap:6px}.mortgageCpfPage .balanceLine span{font-size:10px}.mortgageCpfPage .balanceLine b{font-size:10.5px}}

/* Annual budget composition: monthly annualized + year-pay/irregular */
.annualOverview .annualBudgetSubs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0}.annualSubLine{border:1px solid rgba(83,66,45,.10);border-radius:11px;background:#fffdf8;padding:8px;text-align:left;color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;cursor:pointer}.annualSubLine span{min-width:0;font-size:11px;font-weight:950}.annualSubLine small{display:block;margin-top:3px;color:var(--muted);font-size:9.5px;line-height:1.25;font-weight:750}.annualSubLine i{display:block;height:6px;border-radius:999px;background:rgba(83,66,45,.09);overflow:hidden;margin-top:5px}.annualSubLine em{display:block;height:100%;border-radius:inherit;background:#466a8f}.annualSubLine.monthlyAnnual em{background:#6f7f48}.annualSubLine.annualExtra em{background:#466a8f}.annualSubLine b{font-size:11px;font-variant-numeric:tabular-nums;color:var(--accent)}.sheetLabel.annualSub strong,.mobileCompareLabel.annualSub strong{font-size:11px}.sheetCell.annualSub,.mobileCompareCell.annualSub{background:#fffdf8}.sheetCell.monthlyAnnual i em,.mobileCompareCell.monthlyAnnual i em{background:#6f7f48}
@media(max-width:430px){.annualOverview .annualBudgetSubs{grid-template-columns:1fr}.annualSubLine{padding:7px}.annualSubLine small{font-size:9px}}

/* Top-level annual total: monthly annualized + year-pay/irregular */
.annualTotalHero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;background:linear-gradient(180deg,#fffaf1,#fffdf8);border:1px solid rgba(83,66,45,.12);border-radius:16px;padding:12px;margin:8px 0 12px;box-shadow:0 1px 0 rgba(83,66,45,.04)}.annualTotalHero span{display:block;color:var(--muted);font-size:11px;font-weight:950}.annualTotalHero strong{display:block;margin-top:2px;font-size:24px;line-height:1.05;color:var(--ink);font-variant-numeric:tabular-nums}.annualTotalHero strong small{font-size:13px;color:var(--muted);font-weight:850}.annualTotalHero p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.35}.annualTotalHero>.status{align-self:start}.annualTotalHero>.lineProgress{grid-column:1/-1;margin:0}.annualTotalHero>.lineProgress em{background:#466a8f}@media(max-width:430px){.annualTotalHero{grid-template-columns:1fr;gap:8px;padding:10px}.annualTotalHero strong{font-size:19px}.annualTotalHero>.status{justify-self:start}}

/* Annual total checkpoint inside each month card, above monthly budget */
.annualCheckpoint{margin:0 0 8px;padding:0;grid-template-columns:minmax(0,1fr) auto;overflow:hidden}.annualCheckpoint>button{appearance:none;border:0;background:transparent;text-align:left;color:inherit;padding:10px;display:block;min-width:0;cursor:pointer}.annualCheckpoint strong{font-size:19px}.annualCheckpoint p{margin-top:4px}.annualCheckpoint>.status{margin:9px 9px 0 0}.annualCheckpoint .lineProgress{margin-top:7px}.annualCheckpoint .lineProgress em{background:#466a8f}@media(max-width:430px){.annualCheckpoint{grid-template-columns:1fr auto}.annualCheckpoint>button{padding:8px}.annualCheckpoint strong{font-size:16px}.annualCheckpoint p{font-size:10px}.annualCheckpoint>.status{margin:8px 8px 0 0}}

/* Annual total row sits directly above monthly budget in sheets */
.sheetLabel.annualTotal,.mobileCompareLabel.annualTotal{border-left:4px solid #466a8f;background:#f4f7fb}.sheetCell.annualTotal,.mobileCompareCell.annualTotal{background:#f7f9fc}.sheetCell.annualTotal i em,.mobileCompareCell.annualTotal i em{background:#466a8f}.sheetLabel.annualTotal strong,.mobileCompareLabel.annualTotal strong{color:#314d6b}

/* Bulk review approval */
.reviewTools #bulkApproveReview{background:#eef7ed;color:#356241;border-color:rgba(77,122,88,.26)}.reviewTools #bulkApproveReview:not(:disabled){background:#4d7a58;color:#fff;border-color:#4d7a58}.reviewTools button:disabled{opacity:.45;cursor:not-allowed}.reviewSelect{display:inline-grid;place-items:center;align-self:center;flex:0 0 auto}.reviewSelect input{position:absolute;opacity:0;pointer-events:none}.reviewSelect span{width:22px;height:22px;border-radius:7px;border:1.5px solid rgba(83,66,45,.28);background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.reviewSelect input:checked+span{background:#4d7a58;border-color:#4d7a58;position:relative}.reviewSelect input:checked+span:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:15px;font-weight:950}.reviewItem.selected{border-color:rgba(77,122,88,.45);background:linear-gradient(180deg,#fff,#f8fcf6)}.reviewCompactTop{grid-template-columns:auto minmax(0,1fr) auto auto}.reviewCompactTop>div{min-width:0}@media(max-width:560px){.reviewTools #bulkApproveReview,.reviewTools #bulkSelectVisibleReview,.reviewTools #bulkClearReviewSelection{flex:1 1 calc(50% - 6px)}.reviewCompactTop{grid-template-columns:auto minmax(0,1fr) auto}.reviewCompactTop>b{grid-column:2/3}.reviewCompactTop .openTxEditor{grid-column:3/4;grid-row:1/3}}

/* Lucide-style line icons */
.lucideIcon{width:1em;height:1em;display:inline-block;vertical-align:-.16em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.quickNav a,.back,.logout,.reviewTools button,.reviewActions button,.modalActions button,.swipeTitle h2,.mobileCompareHead h2,.sectionHead h2,.toolbar label,.miniKpiTop{display:inline-flex;align-items:center;gap:7px}.quickNav a .lucideIcon{font-size:16px;color:#8a5a2c}.quickNav a.active .lucideIcon{color:#fff}.sectionHead h2 .lucideIcon,.swipeTitle h2 .lucideIcon,.mobileCompareHead h2 .lucideIcon{font-size:19px;color:#8a5a2c;background:#fff7ec;border:1px solid rgba(138,90,44,.16);border-radius:10px;padding:5px;width:30px;height:30px}.toolbar label .lucideIcon{font-size:14px;color:#8a5a2c}.reviewTools button .lucideIcon{font-size:14px}.reviewActions button,.modalActions button{justify-content:center}.reviewActions button .lucideIcon,.modalActions button .lucideIcon{font-size:13px;opacity:.86}.financeMiniKpi{position:relative;overflow:hidden}.financeMiniKpi:after{content:"";position:absolute;right:-18px;top:-18px;width:72px;height:72px;border-radius:24px;background:radial-gradient(circle,rgba(138,90,44,.10),transparent 66%);pointer-events:none}.miniKpiTop{color:var(--muted);font-size:12px;font-weight:850}.miniKpiTop .lucideIcon{font-size:15px;color:#8a5a2c}.financeMiniKpi b,.financeMiniKpi small{position:relative}.kpis .card span{display:inline-flex;align-items:center;gap:7px}.kpis .card span:before{content:"";width:26px;height:26px;border-radius:10px;background:#fff7ec;border:1px solid rgba(138,90,44,.14);display:inline-block}.kpis .card:nth-child(1) span:before{background:#fff7ec}.kpis .card:nth-child(2) span:before{background:#eef7ed}.kpis .card:nth-child(3) span:before{background:#eef4fb}.kpis .card:nth-child(4) span:before{background:#f9efef}@media(max-width:560px){.sectionHead h2 .lucideIcon,.swipeTitle h2 .lucideIcon,.mobileCompareHead h2 .lucideIcon{width:26px;height:26px;padding:4px}.quickNav a{gap:6px}.reviewTools button{justify-content:center}.reviewTools button .lucideIcon{font-size:13px}}
.kpis .card span:has(.lucideIcon):before{display:none}.kpis .card span .lucideIcon{width:26px;height:26px;padding:6px;border-radius:10px;background:#fff7ec;border:1px solid rgba(138,90,44,.14);color:#8a5a2c}

/* Long-press brush selection for review cards */
.reviewQueue.brushSelecting{cursor:copy;user-select:none;-webkit-user-select:none}.reviewQueue.brushSelecting .reviewItem{touch-action:none}.reviewItem{transition:border-color .16s ease,background .16s ease,transform .16s ease}.reviewItem.brushAnchor{outline:2px solid rgba(77,122,88,.32);outline-offset:2px;transform:translateY(-1px)}.reviewItem.selected .reviewSelect span{box-shadow:0 0 0 4px rgba(77,122,88,.10),inset 0 1px 0 rgba(255,255,255,.8)}.bulkGestureHint{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11.5px;font-weight:850;padding:7px 9px;border:1px dashed rgba(83,66,45,.18);border-radius:999px;background:rgba(255,253,248,.74)}@media(pointer:coarse){.bulkGestureHint{flex:1 1 100%;justify-content:center}.reviewSelect span{width:26px;height:26px}}

/* Category-level review selection */
.reviewGroupTools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-2px 0 8px}.reviewGroupTools button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fffaf3;color:var(--accent);border-radius:999px;padding:6px 9px;font-size:11.5px;font-weight:900;min-height:30px}.reviewGroupTools button:first-child{background:#eef7ed;color:#356241;border-color:rgba(77,122,88,.24)}.reviewGroupTools button:disabled{opacity:.45;cursor:not-allowed}.reviewGroupTools small{color:var(--muted);font-size:11px;font-weight:850;margin-left:auto}.reviewGroupTools .lucideIcon{font-size:13px}@media(max-width:560px){.reviewGroupTools button{flex:1 1 calc(50% - 6px);justify-content:center}.reviewGroupTools small{flex:1 1 100%;margin-left:0;text-align:right}}

/* Cash-flow rows: informational, not budget consumption */
.sheetLabel.cashFlow,.sheetLabel.bankFlow,.mobileCompareLabel.cashFlow,.mobileCompareLabel.bankFlow{background:#eef7f4;color:#315c52;border-color:rgba(49,92,82,.22)}
.sheetLabel.cashFlow span,.sheetLabel.bankFlow span{color:#5d7d76}.sheetCell.cashFlow,.sheetCell.bankFlow,.mobileCompareCell.cashFlow,.mobileCompareCell.bankFlow{background:#f3fbf8;border-color:rgba(49,92,82,.18);color:#264d45}.sheetCell.cashFlow.positive,.sheetCell.bankFlow.positive,.mobileCompareCell.cashFlow.positive,.mobileCompareCell.bankFlow.positive{background:#eefaf0;color:#245b35}.sheetCell.cashFlow.negative,.sheetCell.bankFlow.negative,.mobileCompareCell.cashFlow.negative,.mobileCompareCell.bankFlow.negative{background:#fff1ef;color:#8a3329}.sheetCell.cashFlow b,.sheetCell.bankFlow b,.mobileCompareCell.cashFlow b,.mobileCompareCell.bankFlow b{font-weight:950}.sheetCell.cashFlow small,.sheetCell.bankFlow small{color:currentColor;opacity:.72}

/* Income management: household compensation view */
.incomeStructurePanel,.incomePacePanel{grid-column:1/-1}.incomeFlowStrip{display:grid;grid-template-columns:1fr auto 1fr auto 1.15fr;gap:10px;align-items:stretch;margin-top:10px}.incomeFlowStrip>div{border:1px solid rgba(83,66,45,.12);border-radius:14px;background:#fffdf8;padding:12px}.incomeFlowStrip span{display:block;color:var(--muted);font-size:11px;font-weight:900}.incomeFlowStrip b{display:block;margin-top:4px;font-size:20px;color:var(--ink);font-variant-numeric:tabular-nums}.incomeFlowStrip small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.incomeFlowStrip i{align-self:center;color:var(--muted);font-style:normal;font-weight:950}.incomePaceTableWrap{overflow:auto;-webkit-overflow-scrolling:touch}.incomePaceTable{width:100%;border-collapse:separate;border-spacing:0;min-width:760px;font-size:12px}.incomePaceTable th,.incomePaceTable td{border-bottom:1px solid rgba(83,66,45,.10);padding:9px 10px;text-align:right;vertical-align:top}.incomePaceTable th:first-child,.incomePaceTable td:first-child{text-align:left;position:sticky;left:0;background:#fffdf8;z-index:1}.incomePaceTable thead th{color:var(--muted);font-size:11px;font-weight:950;background:#f7efe2}.incomePaceTable b{display:block;font-variant-numeric:tabular-nums;color:var(--ink)}.incomePaceTable small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px}.incomePaceTable tr.positive td:nth-child(5) b{color:#245b35}.incomePaceTable tr.negative td:nth-child(5) b{color:#8a3329}@media(max-width:760px){.incomeFlowStrip{grid-template-columns:1fr}.incomeFlowStrip i{display:none}.incomeFlowStrip b{font-size:18px}}

/* Windfall income: separated from monthly salary/CPF operations */
.windfallIncomePanel{grid-column:1/-1;background:linear-gradient(180deg,#fffaf0,#fffdf8)}.windfallTotal{display:flex;align-items:baseline;gap:10px;margin:10px 0 12px;padding:12px;border-radius:14px;background:#f7efe2;border:1px solid rgba(83,66,45,.12)}.windfallTotal span{font-size:12px;color:var(--muted);font-weight:950}.windfallTotal b{font-size:22px;color:var(--ink);font-variant-numeric:tabular-nums}.windfallTotal small{color:var(--muted);font-size:11px}.windfallGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.windfallCard{border:1px solid rgba(83,66,45,.12);border-radius:14px;background:#fffdf8;padding:11px;display:grid;gap:4px}.windfallCard .lucideIcon{color:var(--accent)}.windfallCard span{font-size:11px;color:var(--muted);font-weight:950}.windfallCard b{font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}.windfallCard small{font-size:10.5px;color:var(--muted);line-height:1.35}.windfallDetails{margin-top:12px}.windfallDetails summary{cursor:pointer;font-weight:950;color:var(--accent)}@media(max-width:760px){.windfallGrid{grid-template-columns:1fr 1fr}.windfallTotal{display:grid;gap:2px}.windfallTotal b{font-size:20px}}
.incomeFlowStrip.incomeFlowStripWide{grid-template-columns:1fr auto 1fr auto 1fr auto 1.15fr}@media(max-width:900px){.incomeFlowStrip.incomeFlowStripWide{grid-template-columns:1fr}.incomeFlowStrip.incomeFlowStripWide i{display:none}}
.txRemark{display:block;margin-top:4px;color:#7a5b2e;font-size:11px;line-height:1.35;background:#fff4d8;border:1px solid rgba(122,91,46,.18);border-radius:10px;padding:4px 6px}.txCard>.txRemark{margin:8px 12px 0}.compactTx .txRemark{max-width:52ch}
.bucketSubnote{display:block;margin-top:2px;color:#6b7f92;font-size:10.5px;font-weight:850}.transportPill{background:#edf6ff!important;color:#315a7a!important;border-color:rgba(49,90,122,.22)!important}
.transportBreakout{background:#eef7ff!important;border-color:rgba(37,99,235,.22)!important}.transportBreakout strong{color:#214f7a}.transportBreakout b{color:#214f7a}
.mobileCompareLabel.transportBreakoutRow,.sheetLabel.transportBreakoutRow{background:#f0f8ff!important;color:#214f7a!important}.mobileCompareLabel.transportBreakoutRow strong,.sheetLabel.transportBreakoutRow strong{font-size:11px}.mobileCompareCell.transportBreakoutCell,.sheetCell.transportBreakoutCell{background:#eef7ff!important;border-color:rgba(37,99,235,.22)!important;color:#214f7a!important}.mobileCompareCell.transportBreakoutCell b,.sheetCell.transportBreakoutCell b{color:#214f7a!important}
