.recovery-story{border-top:1px solid var(--line);padding-top:22px;margin-bottom:24px}
.recovery-story>h3{font-size:24px;letter-spacing:-.6px;line-height:1.3;font-weight:650;margin:0 0 8px;max-width:460px}
.recovery-dates{font-size:13px;line-height:1.6;color:var(--muted);margin:0 0 24px}.recovery-dates>span{display:inline-block;margin-top:3px}
.recovery-chart{margin:0}.recovery-chart figcaption{font-size:13px;font-weight:500;margin-bottom:9px}
.recovery-plot{position:relative;height:260px;padding-top:20px;margin-top:12px}
.plot-body{position:absolute;inset:20px 8px 31px 64px}
.plot-body>svg{width:100%;height:100%;overflow:visible;display:block}
.plot-axis{position:absolute;inset:20px auto 31px 0;width:58px}
.plot-axis>span{position:absolute;right:0;transform:translateY(-50%);font-size:11px;line-height:1.2;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.plot-axis .zero-tick{font-weight:650;color:var(--ink);font-size:13px}
.chart-grid{stroke:#e5e9e2;stroke-width:1;vector-effect:non-scaling-stroke}.zero-line{stroke:#59695c;stroke-width:1.4;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.unpaid-line,.profit-line{fill:none;stroke-width:2.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}.unpaid-line{stroke:#95704b}.profit-line{stroke:#41682a}.unpaid-fill{fill:#f5eee3}.profit-fill{fill:#edf3e6}
.payback-pin{position:absolute;z-index:1;width:0;height:0}.payback-dot{position:absolute;width:9px;height:9px;background:#41682a;border:2px solid white;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #41682a}
.payback-label{position:absolute;bottom:13px;left:-46px;width:92px;text-align:center;font-size:12px;line-height:1.4;color:#335422;background:#fff;padding:3px 4px;border-radius:3px;box-shadow:0 0 0 1px #dde5d4}.payback-label small{display:block;font-size:11px;color:var(--muted)}
.recovery-cursor{position:absolute;top:0;bottom:0;width:1px;background:#8a998866;pointer-events:none;transition:left .08s linear}.cursor-dot{position:absolute;width:10px;height:10px;background:var(--ink);border:2px solid #fff;box-shadow:0 0 0 1px var(--ink);border-radius:50%;transform:translate(-50%,-50%);transition:top .08s linear}
.plot-dates{position:absolute;bottom:2px;left:64px;right:8px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}
.chart-key{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 18px;font-size:12px;line-height:1.5;margin:5px 0 22px}.chart-key span:before{content:'';display:inline-block;width:12px;height:3px;vertical-align:middle;margin-right:5px}.unpaid-key{color:#806240}.unpaid-key:before{background:#95704b}.profit-key{color:#41682a}.profit-key:before{background:#41682a}
.recovery-scrubber{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:13px;gap:0 10px}.recovery-scrubber label{font-weight:500}.recovery-scrubber output{font-size:12px;color:var(--muted)}.recovery-scrubber input{flex:0 0 100%;width:100%;margin:12px 0 17px;min-height:26px}
.surplus-equation{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) 14px minmax(0,1fr);gap:10px;align-items:center;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.surplus-equation>div{min-width:0}.surplus-equation>div>span{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-bottom:7px}.surplus-equation strong{font-size:20px;letter-spacing:-.5px;line-height:1.4;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.equation-sign{text-align:center;color:#788373;font-size:17px;margin-top:19px}
.recovery-equation{padding-top:8px}.recovery-equation .money-row{font-size:13px;padding:9px 0}.recovery-equation .total strong{font-size:21px}.before-opening-note{font-size:13px;color:var(--muted);padding:15px 0;margin:0;border-top:1px solid var(--line)}
.recovery-footnote{font-size:12px;color:var(--muted);line-height:1.6;margin:14px 0 0}.recovery-closing{border-top:1px solid var(--line);padding-top:14px;margin-top:20px}.recovery-closing>summary{cursor:pointer;font-size:13px;font-weight:500;line-height:1.5}.recovery-closing>p{font-size:13px;line-height:1.6;color:var(--muted);margin:12px 0}.recovery-closing .money-row{font-size:13px}
@media(max-width:1000px){.surplus-equation{gap:6px}.surplus-equation strong{font-size:17px}.recovery-story>h3{font-size:22px}}
@media(max-width:740px){.recovery-story{padding-top:20px}.recovery-story>h3{font-size:22px;max-width:320px}.recovery-dates{margin-bottom:19px}.recovery-plot{height:260px}.surplus-equation{gap:5px;grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr) 10px minmax(0,1fr)}.surplus-equation strong{font-size:17px}.surplus-equation>div>span{font-size:11px}.chart-key{display:block;font-size:12px;margin-bottom:20px}.chart-key span{display:block;margin-top:5px}.recovery-scrubber output{font-size:12px}}
@media(max-width:360px){.surplus-equation strong{font-size:14px}.surplus-equation{gap:4px}.recovery-story>h3{font-size:21px}.plot-body{left:58px}.plot-dates{left:58px}.plot-axis{width:52px}.plot-axis>span{font-size:11px}.payback-label{font-size:11px;width:84px;left:-42px}}
.forecast-breakdown{border-top:1px solid var(--line);padding-top:20px;font-size:15px}.forecast-breakdown+.year-tabs{margin-top:12px}
@media print{.recovery-scrubber{display:none}.recovery-chart{break-inside:avoid}.recovery-story>h3{font-size:22px}.recovery-plot{height:220px}.recovery-story{break-inside:avoid}.recovery-cursor{display:none}.recovery-closing{display:none}.surplus-equation,.recovery-equation{break-inside:avoid}.unpaid-fill,.profit-fill{fill:none}}
@media(prefers-reduced-motion:reduce){.recovery-cursor,.cursor-dot{transition:none}}
.info-button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;padding:0;margin:0 0 0 4px;border:0;background:transparent;color:#647263;vertical-align:middle;cursor:help;font:600 11px/1 inherit;border-radius:50%}
.info-button>span{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid #80917b;border-radius:50%;font:600 11px/1 sans-serif}
.info-button:hover,.info-button[aria-describedby]{background:#edf3e6;color:#335422}.info-button:focus-visible{outline:2px solid #41682a;outline-offset:2px}
.info-popover{position:fixed;z-index:1000;padding:15px 16px;background:#fff;border:1px solid #ccd6c7;border-radius:6px;box-shadow:0 6px 24px #182a2a25;font-size:13px;line-height:1.6;color:var(--ink);max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box}
.info-popover>strong{display:block;font-size:14px;font-weight:650}.info-popover>p{margin:5px 0 0;color:#52604f}
.recovery-plot{height:320px;padding:0;margin-top:0}
.plot-scroll{position:absolute;inset:0 0 0 64px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#9fac96 #f3f5ef}
.plot-scroll:focus-visible{outline:2px solid #41682a;outline-offset:2px}
.plot-timeline{position:relative;height:300px;min-width:100%}
.plot-body{inset:20px 24px 56px}
.plot-axis{inset:20px auto 76px 0}
.plot-dates{position:absolute;bottom:0;left:24px;right:24px;height:56px;display:block;border-top:1px solid #dbe1d6}
.month-tick{position:absolute;top:7px;transform:translateX(-50%);width:48px;text-align:center;font-size:11px;line-height:1.25;color:var(--muted)}
.month-tick:before{content:'';position:absolute;top:-7px;left:50%;height:4px;border-left:1px solid #a5b19c}
.month-tick>b{display:block;font-weight:500}.month-tick>small{display:block;font-size:10px;white-space:nowrap;margin-top:3px}
.time-axis-label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:12px;color:var(--muted);align-items:center;margin:2px 0 12px}.chart-scroll-hint{font-size:11px}
.slider-label{display:inline-flex;align-items:center}.recovery-scrubber input{margin-top:8px}
.surplus-equation .info-button,.year-totals .info-button,.month-columns .info-button{margin-left:1px;width:24px;height:24px;min-width:24px}
@media(max-width:740px){.chart-key{margin-top:0}.surplus-equation>div>span{min-height:42px;margin-bottom:4px}.surplus-equation strong{font-size:16px}}
@media(max-width:360px){.plot-scroll{left:58px}.plot-body{left:24px}.plot-axis{width:52px}.surplus-equation strong{font-size:14px}}
@media print{.info-button,.info-popover,.chart-scroll-hint{display:none!important}.recovery-plot{height:280px}.plot-scroll{overflow:visible}.plot-timeline{width:100%!important;height:280px}.plot-body{inset:20px 24px 56px}.plot-axis{bottom:56px}.month-tick{font-size:8px;width:24px}.month-tick small{font-size:7px}.month-tick:nth-child(2n){visibility:hidden}.time-axis-label{margin-top:8px}}
