/* Neutral appearance and editorial headings. Light is the default. */
:root{color-scheme:light;--navy:#000;--blue:#171717;--green:#303030;--red:#303030;--ink:#171717;--muted:#606060;--line:#dedede;--paper:#fff;--bg:#fafafa;--inset:#f3f3f3;--control-line:#858585;--focus:#171717;--chart-grid:#ddd;--chart-zero:#777;--chart-anchor:#2563eb;--chart-current:#7c3aed;--chart-root:#b45309;--chart-cashflow:#0f766e;--chart-gain:#166534;--chart-loss:#b91c1c;--heat-low:#f07a73;--heat-mid:#fff5d9;--heat-high:#68c786;--heat-ink:#171717;--heat-fs:#0f172a;--heat-current:#5b21b6;--heading-font:Georgia,"Times New Roman",serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#080808;--paper:#161616;--inset:#242424;--ink:#f2f2f2;--muted:#b6b6b6;--line:#3d3d3d;--blue:#f2f2f2;--green:#ddd;--red:#ddd;--control-line:#858585;--focus:#fff;--chart-grid:#3d3d3d;--chart-zero:#858585;--chart-anchor:#93c5fd;--chart-current:#c4b5fd;--chart-root:#fbbf24;--chart-cashflow:#5eead4;--chart-gain:#86efac;--chart-loss:#fca5a5;--heat-low:#8f2630;--heat-mid:#4a4433;--heat-high:#165f3d;--heat-ink:#fff;--heat-fs:#fff;--heat-current:#fbbf24}
:root{font-family:var(--heading-font)}.chart text{font-family:var(--heading-font)}footer{font-family:'Segoe UI Variable Text','Segoe UI',-apple-system,BlinkMacSystemFont,Arial,sans-serif}
h1,h2,h3{font-family:var(--heading-font);font-weight:700;letter-spacing:-.025em;line-height:1.2}
h1{font-size:2.45rem;line-height:1.12}h2{font-size:1.5rem}h3{font-size:1.15rem}
.brand strong{display:block;font-family:var(--heading-font);font-size:1.06rem;font-weight:700;letter-spacing:.035em;line-height:1.3}
.brand{min-width:0}.brand>div{min-width:0}.brand small,.header-meta span{color:#c5c5c5}.brand .header-credit{display:block;margin-top:.12rem;color:#c5c5c5;font-size:.75rem;line-height:1.5;letter-spacing:0}.header-credit a{color:#f2f2f2}.header-credit a:hover{color:#fff}
.creator-credit{font-size:.75rem;letter-spacing:0;font-weight:500;min-width:0;max-width:100%;overflow-wrap:anywhere;line-height:1.5}.creator-credit a{font-weight:650;text-decoration:underline;text-underline-offset:3px}.creator-credit a:focus-visible{border-radius:2px}
.header-tools{display:flex;align-items:center;gap:1.4rem}.theme-toggle{display:flex;gap:3px;padding:3px;border:1px solid #858585;border-radius:8px;background:#000}.theme-toggle button{min-height:34px;padding:.35rem .65rem;border:0;border-radius:5px;background:transparent;color:#ccc;font-size:.75rem}.theme-toggle button[aria-pressed=true]{background:#fff;color:#111;font-weight:700}.theme-toggle button:hover{background:#333;color:#fff}.theme-toggle button[aria-pressed=true]:hover{background:#e5e5e5;color:#111}
header{border-bottom:1px solid #333}
button,input,select{background:var(--paper);border-color:var(--control-line);color:var(--ink)}button:hover{background:var(--inset);border-color:var(--ink)}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline-color:var(--focus)}header button:focus-visible,header a:focus-visible{outline-color:#fff}
.dark{background:#000;border-color:#000;color:#fff}.dark:hover{background:#333;color:#fff}
html[data-theme=dark] .dark{background:#f2f2f2;border-color:#f2f2f2;color:#111}html[data-theme=dark] .dark:hover{background:#ccc;color:#111}
.summary,.product-card,.panel,#entry-notice{background:var(--paper)}.metric.primary{background:#000;color:#fff}.metric.primary>span{color:#ccc}
.tabs{border-color:var(--line)}.tabs button,.chart-nav button,.segmented button{background:transparent;border-color:transparent}.tabs .active{color:var(--ink);border-bottom-color:var(--ink)}
.segmented,.chart-nav{background:var(--inset)}.segmented .selected,.chart-nav .selected{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--control-line)}
.tag,.tag.custom,.official,.user,.reconstructed{background:var(--inset);color:var(--ink);border:1px solid var(--line)}.reconstructed{color:var(--muted)}
.element{background:var(--inset);border-color:var(--control-line);color:var(--ink);font-family:'Segoe UI Variable Text','Segoe UI',-apple-system,BlinkMacSystemFont,Arial,sans-serif;width:max-content;min-width:42px;padding:0 .5rem;white-space:nowrap}.product-title>div{min-width:0}.product-title h3{overflow-wrap:anywhere}.card-head>.text-button{flex-shrink:0}
#tab-prices{--green:#166534;--red:#b91c1c}html[data-theme=dark] #tab-prices{--green:#86efac;--red:#fca5a5}#tab-prices .positive{color:var(--green)}#tab-prices .negative{color:var(--red)}#tab-prices input[type=range].positive{accent-color:var(--green)}#tab-prices input[type=range].negative{accent-color:var(--red)}
.price-entry{background:var(--inset);border-color:var(--control-line)}.price-entry input{background:transparent;border:0}.price-entry:focus-within{border-color:var(--ink);box-shadow:0 0 0 2px var(--focus)}
input[aria-invalid=true],.price-entry:has(input[aria-invalid=true]){background:var(--inset);border:2px solid var(--ink)}.error{color:var(--ink);font-weight:650}
.text-button,.data-table th button{background:transparent;border-color:transparent;color:var(--ink)}
.mini-table th,.mini-table td,.data-table th,.data-table td{border-color:var(--line)}.data-table th{background:var(--inset)}.data-table tr:hover td{background:var(--inset)}
.calc-results>div,.comparison-summary>div,.comparison-bridge,.equation,.chart-empty{background:var(--inset);border-color:var(--line)}.comparison-summary .comparison-delta{background:var(--inset);border-color:var(--control-line)}
.bar-row .track,.mix-track{background:var(--inset)}.mix-track span+span{border-left:1px solid var(--paper)}
.loss-value{color:var(--chart-loss)}.gain-value{color:var(--chart-gain)}.loss .tornado-bar{background:var(--chart-loss)}.gain .tornado-bar{background:var(--chart-gain)}.tornado-plot{background:linear-gradient(to right,transparent calc(50% - .5px),var(--chart-zero) calc(50% - .5px),var(--chart-zero) calc(50% + .5px),transparent calc(50% + .5px))}
.chart text,.chart .axis-title{fill:var(--muted)}.chart .numeric{fill:var(--ink)}html[data-theme=dark] .chart path{stroke:color-mix(in srgb,var(--curve-color),#fff 45%)}
.legend i,.stream-toggles i{border:1px solid var(--control-line)}html[data-theme=dark] .legend i,html[data-theme=dark] .stream-toggles i,html[data-theme=dark] .mix-track span,html[data-theme=dark] .bar-row .bar{background:color-mix(in srgb,var(--product-color),#fff 45%)!important}.annual-line-key span{display:inline-flex;align-items:center;gap:.3rem}.annual-line-key svg{overflow:visible;flex-shrink:0}html[data-theme=dark] .annual-line-key line{stroke:color-mix(in srgb,var(--curve-color),#fff 45%)}
.heat-table .fs-cell{outline-color:var(--heat-fs)}.heat-table .current-cell{box-shadow:inset 0 0 0 3px var(--heat-current)}.cell-marker{color:var(--heat-ink)}.heat-legend i{background:linear-gradient(to right,var(--heat-low),var(--heat-mid) 50%,var(--heat-high));border-color:var(--line)}.current-dot{background:var(--chart-current)}
#entry-notice{border-color:var(--control-line);box-shadow:0 24px 100px #0005}#entry-notice::backdrop{background:#000b}#entry-notice h2{font-size:2rem;letter-spacing:-.025em}.notice-body h3{font-size:1.05rem}
.official-source{display:block;margin-top:.6rem}.official-link{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.3rem;padding:.45rem .7rem;border:1px solid var(--control-line);border-radius:6px;background:var(--paper);color:var(--ink);font-size:.8rem;font-weight:500;text-decoration:none;line-height:1.4;max-width:100%}.official-link strong{font-weight:750;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;white-space:nowrap}.official-link:hover{background:var(--inset);border-color:var(--ink)}.official-link:focus-visible{outline-offset:3px}
.source-credit a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}.source-credit{line-height:1.8}
@media(max-width:1100px){h1{font-size:2.2rem}}
@media(max-width:700px){header{flex-wrap:wrap;gap:.85rem}.header-tools{gap:.75rem}h1{font-size:1.95rem}h2{font-size:1.4rem}#entry-notice h2{font-size:1.7rem}}
@media(max-width:420px){.header-tools{flex-basis:100%}.theme-toggle button{min-height:36px}}
@media print{:root[data-theme=dark]{color-scheme:light;--ink:#171717;--muted:#606060;--line:#dedede;--blue:#171717;--paper:#fff;--bg:#fff;--inset:#f3f3f3}html[data-theme=dark] body{background:#fff}.print-summary .summary,.print-summary .metric{background:#fff;color:#111}.print-summary .data-table th{background:#f3f3f3;color:#333}.print-summary .data-table td,.print-summary .data-table tr:hover td{background:#fff;color:#111}.print-summary p{color:#333}}

/* Keep the entry action visible while the notice text scrolls. */
#entry-notice{padding:0;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:hidden}
#entry-notice[open]{display:flex;flex-direction:column}
.notice-content{padding:1.8rem;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.notice-bottom{flex-shrink:0;margin:0;padding:1rem 1.8rem;background:var(--paper)}
body.notice-fallback::before{content:"";position:fixed;inset:0;background:#000b;z-index:100}
body.notice-fallback #entry-notice{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;z-index:101}
.waterfall-scroll,#curve,#annual-chart{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll{-webkit-overflow-scrolling:touch}
.element{background:var(--product-color);border-color:var(--product-color);color:#fff}.product-card[data-product="5"] .element{color:#111}html[data-theme=dark] .element{background:color-mix(in srgb,var(--product-color),#fff 45%);border-color:color-mix(in srgb,var(--product-color),#fff 45%);color:#111}
.chart-interaction-hint{font-size:.76rem;margin:.6rem 0 1rem;color:var(--muted)}
[data-chart-point]{cursor:pointer;touch-action:manipulation}[data-chart-point]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}[data-chart-point].chart-point-selected{outline:2px solid var(--focus);outline-offset:2px}
.chart g[data-chart-point]:focus-visible,.chart g.chart-point-selected{outline:none}.chart g[data-chart-point]:focus-visible>rect:not(.chart-year-hit):not(.waterfall-hit),.chart g.chart-point-selected>rect:not(.chart-year-hit):not(.waterfall-hit){stroke:var(--focus);stroke-width:2;vector-effect:non-scaling-stroke}
.waterfall-chart{max-width:var(--waterfall-width);min-width:min(var(--waterfall-width),900px);margin-inline:auto}.waterfall-key{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:.8rem 0 1rem;font-size:.75rem;color:var(--muted)}.waterfall-key i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem}.waterfall-total-key{background:var(--chart-anchor)}.waterfall-gain-key{background:var(--chart-gain)}.waterfall-loss-key{background:var(--chart-loss)}
.waterfall-hit{fill:transparent;stroke:none;pointer-events:all}.waterfall-bar,.waterfall-small-change,.waterfall-label,.waterfall-value{pointer-events:none}.waterfall-point:focus-visible .waterfall-label,.waterfall-point.chart-point-selected .waterfall-label{fill:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}.waterfall-point:focus-visible .waterfall-small-change,.waterfall-point.chart-point-selected .waterfall-small-change{stroke:var(--focus);stroke-width:2;vector-effect:non-scaling-stroke}
.chart-point-hit{fill:transparent;stroke:transparent;pointer-events:all}.chart-point-hit:hover,.chart-point-hit:focus-visible,.chart-point-hit.chart-point-selected{fill:var(--paper);stroke:var(--focus);stroke-width:2;outline:none}
.chart-year-hit{fill:transparent;stroke:transparent;pointer-events:all}.chart-year-hit:hover,.chart-year-hit:focus-visible,.chart-year-hit.chart-point-selected{fill:color-mix(in srgb,var(--focus),transparent 92%);stroke:var(--focus);stroke-width:1;outline:none}
.chart-tooltip{position:fixed;z-index:90;max-width:min(340px,calc(100vw - 16px));padding:.75rem .9rem;border:1px solid var(--control-line);border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 6px 24px #0003;pointer-events:none;font-size:.78rem;overflow-wrap:anywhere}
.chart-tooltip ul,.chart-readout ul{list-style:none;margin:.35rem 0 0;padding:0}.chart-tooltip li,.chart-readout li{margin:.15rem 0;color:var(--muted)}
.chart-readout{display:flex;justify-content:space-between;align-items:start;gap:.8rem;margin:.8rem 0 .3rem;padding:.9rem;border:1px solid var(--line);border-radius:7px;background:var(--inset);font-size:.8rem;overflow-wrap:anywhere;min-width:0}.chart-readout>div{min-width:0}.chart-readout button{flex-shrink:0;font-size:.72rem;padding:.25rem .45rem}
.legend [data-chart-point]{min-height:32px;padding:.2rem .35rem;border-radius:4px}.mix-track .chart-point-selected{outline-offset:-2px}.bar-row[data-chart-point]{border-radius:4px}.heat-table [data-chart-point]:focus-visible,.heat-table .chart-point-selected{outline-offset:-3px}
@media(max-width:420px){.chart-readout{flex-wrap:wrap}.legend [data-chart-point]{min-height:44px}.chart-tooltip{font-size:.75rem}}
@media(max-width:700px){
 .tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;overflow:visible;border:0}
 .tabs button{white-space:normal;text-align:left;border:1px solid var(--control-line);border-radius:7px;background:var(--paper);padding:.65rem .6rem;min-height:52px;font-size:.875rem;line-height:1.4}
 .tabs button.active{border-color:var(--ink);background:var(--inset);box-shadow:inset 0 0 0 1px var(--ink)}
 button{min-height:44px}
 input:not([type=range]):not([type=checkbox]),select{font-size:1rem;min-height:44px}
 .price-entry input[type=number]{font-size:1.5rem;min-height:54px}
 input[type=range]{min-height:44px;touch-action:pan-y}
 .card-mode{flex-wrap:wrap}
 .card-mode select{max-width:100%;width:100%}
 #entry-notice{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}
 .notice-content{padding:1.1rem}
 .notice-bottom{padding:.85rem 1.1rem;gap:.6rem}
}

.support-callout,.support-credit{font-size:.875rem;line-height:1.5;overflow-wrap:anywhere;color:var(--muted)}.support-callout{padding:.65rem .9rem;border:1px solid var(--line);border-radius:7px;background:var(--inset)}.notice-support{margin:.7rem 0 1rem}.result-support{margin:.85rem 0 0}.support-link{display:inline-block;max-width:100%;padding:.45rem 0;color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:3px;line-height:1.5}.support-link:hover{color:var(--ink);text-decoration-thickness:2px}.new-tab-note{font-size:.8rem}.support-credit{flex-basis:100%}footer .contact-credit{text-align:right}@media print{.support-callout,.support-credit{display:none!important}}

/* Footer keeps research details and visitor links in aligned rows. */
.site-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"identity source" "creator release" "support contact" "notice notice";align-items:start;gap:.7rem 2rem;padding:1.5rem 0;font-size:.75rem;line-height:1.6}
.site-footer>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.site-footer .footer-identity{grid-area:identity;color:var(--ink);font-size:.75rem;letter-spacing:.08em}
.site-footer .creator-credit{grid-area:creator;align-self:start}
.site-footer #model-release{grid-area:release;text-align:right}
.site-footer .source-credit{grid-area:source;text-align:right;line-height:1.6}
.site-footer .footer-support{grid-area:support}
.site-footer .contact-credit{grid-area:contact;text-align:right}
.site-footer .support-credit{border-top:1px solid var(--line);padding-top:.9rem;margin-top:.35rem;font-size:.875rem;line-height:1.6}
.site-footer .support-link{padding:.2rem 0;letter-spacing:normal;vertical-align:baseline}
.site-footer .new-tab-note{font-size:inherit;letter-spacing:normal}
.site-footer #show-disclaimer{grid-area:notice;justify-self:start;min-height:44px;padding:.5rem 0;font-family:inherit;font-size:.75rem}
@media(max-width:760px){
 .site-footer{grid-template-columns:minmax(0,1fr);grid-template-areas:"identity" "creator" "release" "source" "support" "contact" "notice";gap:.65rem;padding:1.25rem 0}
 .site-footer #model-release,.site-footer .source-credit,.site-footer .contact-credit{text-align:left}
 .site-footer .contact-credit{border-top:0;margin-top:0;padding-top:0}
 .site-footer .support-link{padding:.35rem 0}
}

/* Dated, manually maintained market snapshots. */
.market-status{display:inline-flex;align-items:center;gap:.7rem;padding:.4rem .7rem;border:1px solid #b91c1c40;border-radius:999px;background:#fef2f2;color:#991b1b;font-size:.75rem;font-weight:700;letter-spacing:.06em;margin-bottom:.7rem;line-height:1.4}
.market-status-label{display:block;line-height:1.25}
.market-status i{display:block;position:relative;width:9px;height:9px;flex:0 0 9px;align-self:center;margin:0;padding:0;border:0;line-height:0;border-radius:50%;background:#dc2626;box-shadow:0 0 8px #dc262680}
.market-status i::after{content:"";position:absolute;left:50%;top:50%;width:17px;height:17px;box-sizing:border-box;transform-origin:center;border:1px solid #dc2626;border-radius:50%;opacity:.55;animation:market-halo 2.6s ease-out infinite}
@keyframes market-halo{0%{transform:translate(-50%,-50%) scale(.65);opacity:.6}100%{transform:translate(-50%,-50%) scale(1.35);opacity:0}}
:root[data-theme=dark] .market-status{background:#2c1111;color:#fca5a5;border-color:#f8717166}
.market-warning{padding:.75rem .9rem;border:1px solid var(--line);border-left:3px solid #dc2626;border-radius:5px;background:var(--inset);font-size:.875rem}
.market-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin:1rem 0}.market-summary small{line-height:1.6}
.market-table{margin-top:1.2rem}.market-table,.market-validation .table-scroll{position:relative}.market-table .data-table{min-width:880px}.market-table td{vertical-align:top}.market-table td:first-child{min-width:210px}
.market-sources{display:flex;flex-direction:column;gap:.5rem;min-width:200px;max-width:300px;white-space:normal;line-height:1.5;overflow-wrap:anywhere}.market-sources a{text-underline-offset:3px}
.market-product{display:flex;align-items:center;gap:.5rem;font-weight:700;white-space:normal}.market-product i{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.price-kind{display:block;margin-top:.4rem;font-size:.7rem;color:var(--muted);white-space:normal}.market-assumptions{padding:.85rem .95rem;border:1px solid var(--control-line);border-radius:5px;font-size:.875rem;background:var(--paper);line-height:1.6}
.recovery-panel{border-top:1px solid var(--line);padding-top:1.1rem;margin-top:1rem;min-width:0}.recovery-controls{display:grid;grid-template-columns:minmax(180px,1.5fr) 1fr 1fr minmax(160px,1.2fr);gap:1rem;align-items:start}.recovery-controls label{display:flex;flex-direction:column;gap:.4rem;min-width:0}.recovery-controls select,.recovery-controls input{width:100%;box-sizing:border-box}.recovery-rate{display:flex;flex-direction:column;gap:.45rem;padding:.2rem 0}.recovery-rate span{font-size:.8rem;color:var(--muted)}.recovery-rate strong{font-size:1.5rem}.recovery-steps{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0}#recovery-table{position:relative}#recovery-table .data-table{min-width:560px}.recovery-panel .subtle{line-height:1.6}@media(max-width:700px){.recovery-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.recovery-controls label{grid-column:1/-1}.recovery-panel .section-heading{flex-wrap:wrap}}
.quote-age{display:inline-block;font-size:.7rem;white-space:normal;color:var(--muted)}.quote-age.stale,.quote-age.invalid{color:var(--chart-loss);font-weight:700}.quote-age.aging{font-weight:700}
.quote-details{white-space:normal;margin-top:.45rem;font-size:.75rem}.quote-details summary{text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:30px}.quote-details dl{margin:.5rem 0;max-width:280px}.quote-details dt{font-weight:700;margin-top:.6rem}.quote-details dd{margin:.15rem 0;overflow-wrap:anywhere;color:var(--muted)}
.basis-note{display:inline-block;white-space:normal;font-size:.75rem;margin-top:.4rem;line-height:1.5;color:var(--muted)}.market-validation{margin-top:.75rem;font-size:.8rem}.market-validation li{margin:.5rem 0;overflow-wrap:anywhere}
button:disabled{opacity:.5;cursor:not-allowed}button:disabled:hover{background:var(--paper);border-color:var(--control-line)}.metric small[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.market-status i::after{animation:none;transform:translate(-50%,-50%) scale(.85);opacity:.4}}
@media(max-width:700px){.market-heading{flex-wrap:wrap}.market-heading>div{min-width:0}.market-summary{grid-template-columns:1fr}.quote-details summary{min-height:44px}.tabs #nav-methodology{grid-column:1/-1}}
