:root { color-scheme: light; --ink:#202b2a; --muted:#67706b; --green:#236652; --line:#dce1d9; --paper:#fbfcf8; }
* { box-sizing:border-box; }
html { scroll-padding-top:90px; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.65 Georgia, 'Times New Roman', serif; }
a { color:var(--green); text-underline-offset:3px; }
button, select { font:inherit; }
button, select, a { -webkit-tap-highlight-color:transparent; }
button:focus-visible, select:focus-visible, a:focus-visible { outline:3px solid #a9853d; outline-offset:3px; }
button { cursor:pointer; }
.topbar { height:66px; position:sticky; top:0; z-index:30; display:flex; align-items:center; gap:25px; padding:0 32px; border-bottom:1px solid var(--line); background:rgba(251,252,248,.97); font:12px/1.4 system-ui,sans-serif; }
.wordmark { text-decoration:none; font-size:13px; font-weight:750; letter-spacing:.01em; color:var(--ink); }
.reading-layout { display:grid; grid-template-columns:210px minmax(0,1fr); max-width:1620px; margin:auto; gap:40px; padding:46px 40px 80px 32px; }
aside { font:12px/1.6 system-ui,sans-serif; position:sticky; top:105px; height:calc(100vh - 140px); overflow:auto; padding-right:12px; }
.nav-heading, .edition-label { letter-spacing:.13em; font:600 10px/1.4 system-ui,sans-serif; color:var(--green); }
nav ul { list-style:none; padding:0; margin:17px 0; }
nav ul ul { margin:5px 0 13px; padding-left:12px; border-left:1px solid var(--line); }
nav li { margin:8px 0; }
nav a { color:var(--muted); text-decoration:none; }
nav a:hover, nav a.active { color:var(--green); }
main { min-width:0; }
.edition-label { max-width:800px; margin:0 auto 20px; }
.reader-note { max-width:800px; margin:0 auto 30px; padding:14px 18px; border-left:2px solid #91aa96; background:#eef2ea; color:#55675b; font:12px/1.6 system-ui,sans-serif; }
article > :not(.interactive-figure) { max-width:800px; margin-left:auto; margin-right:auto; }
.paper-byline { margin-top:-13px; margin-bottom:28px; color:var(--muted); font:500 13px/1.5 system-ui,sans-serif; }
.major-toc { margin-top:0; margin-bottom:34px; padding:16px 18px 17px; border:1px solid var(--line); border-radius:6px; background:#fff; font:12px/1.45 system-ui,sans-serif; }
.major-toc-heading { margin-bottom:11px; color:var(--green); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.major-toc ul { display:block; margin:0; padding:0; list-style:none; }
.major-toc li { min-width:0; margin:7px 0; }
.major-toc a { display:block; color:#465a4d; text-decoration:none; }
.major-toc a:hover { color:var(--green); text-decoration:underline; }
.major-toc li:last-child a, .toc-extra a { color:var(--green); font-weight:750; }
h1,h2,h3,h4 { color:#253d33; }
h1 { font-size:clamp(34px,4vw,52px); line-height:1.13; font-weight:400; letter-spacing:-.035em; margin-top:20px; margin-bottom:24px; }
h2 { font-size:28px; font-weight:400; line-height:1.3; margin-top:58px; padding-top:18px; border-top:1px solid var(--line); }
h1 + h2 { border:0; padding-top:0; margin-top:0; font-size:22px; color:var(--muted); }
h3 { font-size:23px; font-weight:400; margin-top:38px; }
h4 { font:650 16px/1.5 system-ui,sans-serif; margin-top:32px; }
p { margin-top:18px; margin-bottom:18px; }
article ul, article ol { padding-left:25px; }
article li { margin:6px 0; }
table { display:block; width:100%; overflow:auto; border-collapse:collapse; margin-top:28px; margin-bottom:28px; font:12px/1.65 system-ui,sans-serif; }
th,td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { color:var(--green); font-weight:650; background:#eef2ea; }
.parameter-reference { overflow:hidden; margin-top:24px; margin-bottom:28px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.parameter-reference summary { cursor:pointer; padding:14px 16px; color:var(--green); background:#f2f5ef; font:650 13px/1.5 system-ui,sans-serif; }
.parameter-reference summary:hover { background:#eaf0e8; }
.parameter-reference[open] summary { border-bottom:1px solid var(--line); }
.parameter-reference table { margin:0; }
code, pre { font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; }
code { background:#edf0ea; padding:2px 4px; border-radius:3px; }
pre { overflow:auto; background:#edf0ea; padding:18px; border:1px solid var(--line); border-radius:4px; }
pre code { padding:0; }
.display-math, div.math { overflow-x:auto; padding:5px 0; }
article img { max-width:100%; height:auto; }
.interactive-figure { margin:35px 0 42px; padding:20px 18px 10px; background:#fff; border:1px solid var(--line); border-radius:7px; font:12px/1.5 system-ui,sans-serif; }
#work-capability-reservation-price { width:calc((100% - 8px)/2); margin-left:auto; margin-right:auto; }
figcaption { font-size:15px; color:var(--ink); font-weight:650; margin-bottom:14px; }
.chart-controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:14px; }
.chart-controls button, .chart-controls select, .expand-panel, .fit-panel { border:1px solid #d5ddd4; padding:6px 10px; background:#fff; border-radius:4px; color:#465a4d; font-size:11px; }
.chart-controls button:hover, .expand-panel:hover, .fit-panel:hover { background:#f0f4ee; }
.chart-controls .scale-control { display:flex; align-items:center; gap:6px; margin-right:auto; }
.chart-controls label { color:var(--muted); font-size:11px; }
.chart-legend { display:flex; flex-wrap:wrap; gap:5px 9px; }
.legend-item { border:1px solid transparent; display:flex; align-items:center; gap:6px; border-radius:4px; padding:4px 6px; background:transparent; color:#455149; font-size:10px; }
.legend-item:hover { background:#f2f4ef; border-color:#d7ddd4; }
.legend-item[aria-pressed=false] { opacity:.35; text-decoration:line-through; }
.line-swatch { width:20px; height:12px; display:inline-block; position:relative; flex:none; }
.line-swatch::before { content:""; position:absolute; left:0; right:0; top:5px; border-top:2px solid var(--swatch); }
.line-swatch.dash::before { border-top-style:dashed; }
.line-swatch.dashdot::before { border-top-style:dashed; border-top-width:3px; }
.line-swatch.dot::before { border-top-style:dotted; }
.line-marker { position:absolute; left:50%; top:5px; transform:translate(-50%,-50%); background:#fff; font-size:13px; line-height:1; font-weight:700; }
.overlap-note { flex-basis:100%; color:var(--muted); font-size:10px; margin:4px 0 0; }
.chart-panels { display:grid; grid-template-columns:repeat(var(--panels,1),minmax(0,1fr)); gap:8px; margin-top:18px; }
.chart-panel { min-width:0; background:#fff; }
.chart-panels.center-last-panel .chart-panel:last-child { grid-column:1 / -1; width:calc((100% - 8px)/2); justify-self:center; }
.panel-heading { display:flex; align-items:center; gap:8px; justify-content:space-between; min-height:28px; padding:0 4px; font-weight:600; font-size:11px; }
.panel-actions { display:flex; gap:5px; flex-shrink:0; }
.expand-panel, .fit-panel { font-size:10px; padding:3px 7px; }
.plot { height:340px; width:100%; }
.chart-help { display:grid; gap:3px; color:var(--muted); font-size:10px; margin:8px 4px 4px; }
.chart-context { color:var(--ink); font-size:11px; font-weight:550; }
.chart-instructions { color:var(--muted); }
.chart-fallback { display:block; }
.chart-ready .chart-fallback { display:none; }
.chart-panel.expanded { position:fixed; inset:84px 24px 24px; z-index:60; padding:20px; border:1px solid #bfcbbb; border-radius:8px; box-shadow:0 0 0 100vmax #22312890; }
.chart-panel.expanded .plot { height:calc(100% - 36px); }
.chart-panel.expanded .panel-heading { font-size:15px; }
body.panel-open { overflow:hidden; }
/* Interactive plot builder */
.toc-extra { margin-top:0!important; padding-top:12px; border-top:1px solid var(--line); }
.explore { margin-top:70px; padding-top:18px; border-top:1px solid var(--line); font:12px/1.5 system-ui,sans-serif; }
.explore h2 { max-width:800px; margin:0 auto 12px; border:0; padding:0; font-weight:600; }
.explore-intro { max-width:800px; margin:0 auto 22px; font:16px/1.65 Georgia,'Times New Roman',serif; }
.explore-controls { background:#fff; border:1px solid var(--line); border-radius:7px; padding:16px 18px; }
.explore-toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:14px; }
.explore-toolbar select { max-width:100%; }
.explore button, .explore select, .explore input[type=number], .explore input[type=text] { border:1px solid #d5ddd4; padding:6px 9px; background:#fff; border-radius:4px; color:#465a4d; font-size:11px; }
.explore button:hover { background:#f0f4ee; }
.explore button.explore-small { padding:4px 8px; font-size:10px; }
.explore button.legend-item { border-color:transparent; background:transparent; padding:4px 6px; font-size:10px; }
.explore button.legend-item:hover { background:#f2f4ef; border-color:#d7ddd4; }
.explore-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:18px; }
.explore-config, .explore-industries { min-width:0; }
.explore-fieldset { border:1px solid var(--line); border-radius:5px; padding:10px 12px 12px; margin:0 0 12px; min-width:0; }
.explore-fieldset legend { padding:0 5px; color:var(--green); font-weight:650; font-size:11px; letter-spacing:.04em; }
.explore-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:6px 0; }
.explore-row label, .explore-fieldset > label { display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:11px; }
.explore-radio { display:block; margin:4px 0; color:var(--ink)!important; }
.explore-check { color:var(--muted); }
.explore input[type=number] { width:86px; }
.explore-note { color:var(--muted); font-size:10.5px; margin:8px 0 0; line-height:1.5; }
.explore-industries-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.explore-legend-label { color:var(--green); font-weight:650; font-size:11px; letter-spacing:.04em; }
.explore-industry-list { display:grid; gap:10px; margin-top:10px; }
.explore-industry { border:1px solid var(--line); border-radius:5px; padding:10px 12px; background:#fbfcf8; }
.explore-industry-head { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:8px; }
.explore-industry-head input[type=color] { width:30px; height:26px; padding:1px; border:1px solid #d5ddd4; border-radius:4px; background:#fff; cursor:pointer; }
.explore-name { flex:1 1 140px; min-width:120px; }
.explore-params { display:grid; grid-template-columns:repeat(auto-fill,minmax(112px,1fr)); gap:6px 8px; }
.explore-param { display:flex; align-items:center; gap:6px; }
.explore-param .explore-symbol { width:22px; text-align:right; color:var(--ink); font:600 12px/1 Georgia,serif; }
.explore-param input { width:100%; min-width:0; }
.explore-param.changed input { border-color:#a9853d; background:#fdf8ec; font-weight:600; }
.explore-param.swept input { border-style:dashed; color:#92968f; }
.explore-tooltip-host { position:relative; }
.explore-param-tooltip { position:absolute; left:50%; bottom:calc(100% + 8px); z-index:80; display:none; gap:5px; width:min(300px,calc(100vw - 32px)); padding:11px 12px; border:1px solid #436257; border-radius:6px; background:#203b32; box-shadow:0 8px 24px #15241e33; color:#f7faf5; font:11px/1.45 system-ui,sans-serif; text-align:left; white-space:normal; pointer-events:none; transform:translate(-50%,0); }
.explore-tooltip-host:hover .explore-param-tooltip, .explore-tooltip-host:focus-within .explore-param-tooltip { display:grid; }
.explore-tooltip-title { color:#fff; font-size:11.5px; }
.explore-tooltip-description { color:#dbe7df; }
.explore-tooltip-equation { padding-top:5px; border-top:1px solid #ffffff2b; color:#f4dca7; font:10.5px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace; overflow-wrap:anywhere; }
.explore-tooltip-host.tooltip-align-left .explore-param-tooltip { left:0; transform:translate(0,4px); }
.explore-tooltip-host.tooltip-align-right .explore-param-tooltip { right:0; left:auto; transform:translate(0,4px); }
.explore-tooltip-host.tooltip-align-left:hover .explore-param-tooltip, .explore-tooltip-host.tooltip-align-left:focus-within .explore-param-tooltip, .explore-tooltip-host.tooltip-align-right:hover .explore-param-tooltip, .explore-tooltip-host.tooltip-align-right:focus-within .explore-param-tooltip { transform:translate(0,0); }
.explore-output { margin-top:18px; padding:20px 18px 10px; background:#fff; border:1px solid var(--line); border-radius:7px; }
.explore-output .chart-panels { grid-template-columns:repeat(var(--panels,1),minmax(0,1fr)); }
.explore-status { color:var(--muted); font-size:10.5px; margin:10px 4px 0; }
.explore-status.busy::before { content:""; display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:50%; background:#a9853d; animation:explore-pulse 1s infinite alternate; }
@keyframes explore-pulse { from { opacity:.3; } to { opacity:1; } }
.explore-warnings { color:#9a3b1f; font-size:10.5px; margin:6px 4px 0; }
.explore-warnings:empty, .explore-status:empty { display:none; }
.explore-help { color:var(--muted); font-size:10px; margin:10px 4px 4px; }
@media(max-width:1100px) { .explore-grid { grid-template-columns:1fr; } }
footer { max-width:800px; margin:60px auto 0; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font:11px/1.6 system-ui,sans-serif; }
.skip-link { position:fixed; top:-100px; left:20px; z-index:100; background:white; padding:10px; }
.skip-link:focus { top:10px; }
@media(min-width:1500px) { .plot { height:390px; } }
@media(max-width:1100px) { .reading-layout { grid-template-columns:170px minmax(0,1fr); gap:22px; padding:30px 20px; } #work-capability-reservation-price { width:100%; } .chart-panels { grid-template-columns:1fr; } .chart-panels.center-last-panel .chart-panel:last-child { grid-column:auto; width:100%; } .plot { height:360px; } }
@media(max-width:760px) { .topbar { padding:0 16px; height:58px; } .reading-layout { display:block; padding:24px 14px; } aside { position:static; height:auto; max-height:180px; margin-bottom:25px; border-bottom:1px solid var(--line); } .interactive-figure { padding:14px 8px 8px; } body { font-size:16px; } .chart-panel.expanded { inset:68px 8px 8px; padding:10px; } .explore-controls, .explore-output { padding-left:10px; padding-right:10px; } .explore select { max-width:100%; } .explore-row label, .explore-fieldset > label { flex-wrap:wrap; max-width:100%; } .explore-output .chart-panels { grid-template-columns:1fr; } }
@media print { .topbar,aside,.reader-note,.edition-label,.major-toc,.chart-controls,.chart-legend,.chart-panels,.chart-instructions,.skip-link,.parameter-reference summary,.explore { display:none!important; } .reading-layout { display:block; padding:0; } body { background:#fff; font-size:11pt; } .chart-fallback { display:block!important; } .interactive-figure,.parameter-reference { break-inside:avoid; border:0; } .parameter-reference:not([open]) > table { display:block!important; } h2,h3,h4 { break-after:avoid; } .display-math,div.math { break-before:avoid; break-inside:avoid; } }
