/* A readable cost-path and actor-map view; detailed evidence stays behind disclosures. */
:root { color-scheme: light; --ink: #172033; --muted: #5f6b7b; --paper: #f7f5f0; --panel: #fffefa; --line: #d5dee9; --blue: #3154d8; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.6 Inter, ui-sans-serif, system-ui, sans-serif; }
a { color: #2445b1; text-underline-offset: 3px; }
button, select { font: inherit; }
button, select, a, summary { touch-action: manipulation; }
button, select { min-height: 44px; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
[hidden] { display: none; }
.site-head, main, footer { width: min(1060px, calc(100% - 40px)); margin-inline: auto; }
.site-head { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.wordmark { font-weight: 800; color: var(--ink); text-decoration: none; letter-spacing: -.035em; }
.site-head nav, footer nav { display: flex; flex-wrap: wrap; gap: 24px; font-size: .83rem; }
.site-head nav a, footer nav a { display: inline-flex; align-items: center; min-height: 44px; }
.sr-only, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; z-index: 10; top: 12px; left: 12px; padding: 12px; background: #fff; }
.economics-intro { display: grid; grid-template-columns: minmax(0, 1fr) 235px; gap: 55px; align-items: center; padding: 56px 0 38px; }
.eyebrow, .analysis-label { color: #2947a5; text-transform: uppercase; font-size: .7rem; font-weight: 750; letter-spacing: .1em; }
.eyebrow { margin: 0 0 16px; }
h1, h2, h3, h4, p { text-wrap: pretty; }
h1 { font: 400 clamp(3.3rem, 6vw, 5.3rem)/1 Georgia, serif; letter-spacing: -.055em; margin: 0; }
.lede { font-size: 1.2rem; line-height: 1.5; max-width: 610px; margin: 23px 0 10px; }
.intro-note { color: var(--muted); font-size: .91rem; max-width: 650px; }
.intro-dolphin { width: 100%; height: auto; }
.research-controls { border: 1px solid var(--line); border-radius: 14px; background: #edf2f9; padding: 22px 24px; }
.control-row { display: grid; grid-template-columns: minmax(230px, 1fr) 1fr; gap: 30px; align-items: end; }
.control-row label { font-size: .78rem; font-weight: 750; }
select { display: block; width: 100%; margin-top: 7px; padding: 9px 12px; border: 1px solid #acbad1; border-radius: 7px; background: #fff; color: var(--ink); font-size: .9rem; }
#coverageLine { color: var(--muted); font-size: .8rem; margin: 0 0 3px; }
.compare-picker { margin-top: 16px; }
summary { cursor: pointer; }
.compare-picker > summary { padding-block: 9px; font-size: .85rem; font-weight: 650; }
#selectionCount { color: var(--muted); font-weight: 400; }
.picker-actions { display: flex; gap: 8px; margin: 12px 0; }
button { background: #fff; border: 1px solid #afbdd1; border-radius: 6px; padding: 6px 14px; color: var(--ink); cursor: pointer; font-size: .8rem; }
button:hover { border-color: var(--blue); }
fieldset { display: grid; grid-template-columns: repeat(auto-fit, minmax(225px, 1fr)); gap: 5px 20px; padding: 0; margin: 0; border: 0; }
fieldset label { display: flex; gap: 8px; min-height: 44px; align-items: center; font-size: .81rem; }
fieldset input { accent-color: var(--blue); width: 17px; height: 17px; }
.compare-picker > p, .product-context { font-size: .79rem; color: var(--muted); }
.product-context { margin-bottom: 0; padding-top: 12px; border-top: 1px solid var(--line); }
.reading-key { display: flex; flex-wrap: wrap; gap: 9px 24px; font-size: .72rem; color: var(--muted); padding: 20px 0; }
.reading-key span { display: flex; align-items: center; gap: 7px; }
.reading-key i { width: 7px; height: 7px; border-radius: 50%; }
.key-charge { background: #3154d8; }.key-cap { background: #ab751d; }.key-gap { background: #738195; }
.economics-profile { min-width: 0; padding: 30px; margin-bottom: 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.economics-profile > header { padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.coverage { display: inline-block; color: #33527c; font-size: .68rem; font-weight: 700; padding: 4px 8px; border: 1px solid #c9d8eb; border-radius: 4px; background: #edf3fa; }
.coverage.pending { color: #685938; background: #f5f1e7; border-color: #e0d7c1; }
.economics-profile h2 { font: 400 2.4rem/1.08 Georgia, serif; letter-spacing: -.035em; margin: 16px 0 12px; }
.economics-profile header p { max-width: 750px; font-size: .91rem; color: var(--muted); margin: 0 0 14px; }
.economics-profile header a { font-size: .8rem; }
.costs, .actors { margin-top: 30px; }
h3 { margin: 0 0 18px; font-size: 1.08rem; letter-spacing: -.02em; }
.cost-stage { margin-top: 20px; }
h4 { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 6px; color: #3c5580; }
.fee-row, .actor-row { border-top: 1px solid var(--line); }
.fee-row:last-child, .actor-row:last-child { border-bottom: 1px solid var(--line); }
.fee-row > summary, .actor-row > summary { position: relative; list-style: none; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 24px; align-items: start; padding: 16px 24px 16px 0; }
.fee-row > summary::-webkit-details-marker, .actor-row > summary::-webkit-details-marker { display: none; }
.fee-row > summary::after, .actor-row > summary::after { position: absolute; right: 0; top: 18px; content: '+'; color: var(--blue); }
.fee-row[open] > summary::after, .actor-row[open] > summary::after { content: '−'; }
.fee-row strong, .actor-row strong { display: block; font-size: .88rem; font-weight: 600; }
.fee-row summary small, .actor-row summary small { display: block; color: var(--muted); font-size: .72rem; margin-top: 5px; line-height: 1.5; }
.fee-amount { font-size: .95rem; text-align: right; }
.fee-row .kind { font-size: .68rem; color: #4e617c; }
.fee-row .kind-cap { color: #8a5d0b; }
.fee-detail, .actor-detail { padding: 2px 18px 22px; background: #f2f5fa; border-radius: 7px; margin-bottom: 12px; font-size: .84rem; }
.fee-detail p, .actor-detail p { padding-top: 14px; margin: 0; }
dl { margin: 16px 0 0; }
dl > div { display: grid; grid-template-columns: 130px 1fr; gap: 14px; margin-top: 8px; }
dt { color: var(--muted); font-size: .76rem; } dd { margin: 0; font-size: .8rem; }
.sources { list-style: none; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid #d3dce9; }
.sources li + li { margin-top: 13px; }
.sources li > span, .sources li > small { display: block; font-size: .72rem; color: var(--muted); margin-top: 3px; overflow-wrap: anywhere; }
.source-note { color: var(--muted); font-size: .75rem; }
.scope-warning { padding: 14px 18px; border-left: 3px solid #bd9347; background: #faf3e7; font-size: .84rem; color: #5e4926; }
.total-note, .section-note { color: var(--muted); font-size: .76rem; }
.section-note { margin-top: -10px; }
.actor-payment { text-align: right; font-size: .81rem; color: var(--muted); }
.actor-row summary small { margin: 0 0 4px; }
.actor-detail .analysis-label { font-size: .66rem; }
.gaps { margin-top: 26px; padding: 15px 18px; background: #f1f4f8; border-radius: 8px; }
.gaps > summary { font-size: .85rem; font-weight: 650; }
.gaps summary span { color: var(--muted); margin-left: 5px; }
.gaps ul { padding-left: 20px; font-size: .83rem; }
.gaps li + li { margin-top: 8px; }
.gaps p { font-size: .75rem; color: var(--muted); }
.unknown-block, .empty-selection, .error-state { padding: 20px; background: #eef2f7; border-radius: 9px; color: var(--muted); }
.profile-drilldown > summary { padding: 20px 0 0; color: #2445b1; font-size: .9rem; font-weight: 650; }
.comparison-mode { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 430px), 1fr)); align-items: start; gap: 20px; }
.comparison-mode .economics-profile { margin: 0; }
.comparison-mode .fee-row > summary, .comparison-mode .actor-row > summary { grid-template-columns: 1fr; gap: 8px; }
.comparison-mode .fee-amount, .comparison-mode .actor-payment { text-align: left; }
.methodology { border-top: 1px solid var(--line); padding: 46px 0; margin-top: 38px; }
.methodology > h2 { font: 400 2rem Georgia, serif; }
.question-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.question-grid article span { color: var(--blue); font-size: .72rem; }
.question-grid h3 { margin: 14px 0 8px; font-size: .94rem; }
.question-grid p { color: var(--muted); font-size: .83rem; }
.methodology > details { border-top: 1px solid var(--line); padding-top: 22px; margin-top: 20px; font-size: .85rem; }
.methodology > details p { color: var(--muted); }
footer { border-top: 1px solid var(--line); padding: 25px 0 36px; display: flex; justify-content: space-between; align-items: center; gap: 20px; color: var(--muted); font-size: .75rem; }
@media (max-width: 700px) { .economics-intro { grid-template-columns: 1fr; gap: 0; padding: 28px 0 20px; } .economics-intro h1 { font-size: clamp(2.35rem, 10.5vw, 3.8rem); } .lede { font-size: 1rem; margin: 16px 0 10px; } .intro-note { display: none; } .intro-dolphin { display: none; } .control-row, .question-grid { grid-template-columns: 1fr; gap: 16px; } .economics-profile { padding: 22px 18px; } .site-head { align-items: flex-start; justify-content: center; flex-direction: column; gap: 0; padding-top: 15px; } .site-head nav { gap: 20px; } .research-controls { padding: 18px; } footer { align-items: flex-start; flex-direction: column; gap: 2px; } }
@media (max-width: 470px) { .fee-row > summary, .actor-row > summary { grid-template-columns: 1fr; gap: 8px; } .fee-amount, .actor-payment { text-align: left; } dl > div { grid-template-columns: 1fr; gap: 1px; } .economics-profile h2 { font-size: 2rem; } }
