*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1rem}body{margin:0;background:var(--ground);color:var(--ink);font:15px/1.6 var(--sans)}a{color:var(--accent)}button,input,select{font:inherit;color:inherit}button,.button{border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:var(--accent-ink);padding:.55rem .85rem;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}button.secondary,.button.secondary{background:var(--surface);color:var(--accent);border-color:var(--line)}button:disabled{opacity:.55;cursor:wait}button:hover:not(:disabled),.button:hover{filter:brightness(.95)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.skip{position:absolute;left:1rem;top:-5rem;background:var(--surface);padding:.5rem}.skip:focus{top:.5rem}.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1220px;margin:auto;padding:1rem 1.5rem;border-bottom:1px solid var(--line)}.brand{font-weight:700;text-decoration:none;font-size:1.3rem;color:var(--ink)}.top nav{display:flex;gap:1.2rem}main{max-width:1220px;padding:2rem 1.5rem 3rem;margin:auto}.intro{max-width:870px}h1{font-size:clamp(2rem,4vw,3rem);line-height:1.13;margin:.5rem 0 1rem;letter-spacing:-.035em}h2{font-size:1.55rem;line-height:1.2;margin:.2rem 0 1rem}h3{line-height:1.25}.lede{font-size:1.12rem;color:var(--ink-2)}.eyebrow{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted);margin:0 0 .5rem}.wiki-document-dates,.small,figcaption{color:var(--muted);font-size:.82rem}.status-note{background:var(--surface-2);border-left:3px solid var(--accent);padding:.75rem 1rem}.contents{display:flex;flex-wrap:wrap;gap:.65rem 1.4rem;border-bottom:1px solid var(--line);padding:1rem 0;margin-bottom:1.7rem}.contents a{text-decoration:none;font-weight:700;font-size:.87rem}section{margin:0 0 2.8rem}section>p{max-width:900px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.badge{font-size:.72rem;padding:.25rem .5rem;border:1px solid var(--line);border-radius:4px;color:var(--muted);white-space:nowrap}.inputs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.9rem}.inputs label,.plot-controls label,.detail-head label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;font-weight:700;color:var(--ink-2)}input[type=number],select{min-width:0;width:100%;border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:.5rem}.advanced{background:var(--surface-2);padding:.75rem 1rem;margin:1rem 0}summary{font-weight:700;cursor:pointer;color:var(--ink-2)}details[open]>summary{margin-bottom:1rem}.variant-picker{border:1px solid var(--line);border-radius:4px;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;padding:.8rem 1rem;margin:1rem 0}.variant-picker legend{font-size:.8rem;font-weight:700;padding:0 .4rem}.variant-picker label{font-size:.82rem;display:flex;align-items:center;gap:.4rem}.variant-picker input{accent-color:var(--accent)}.actions,.plot-controls,.detail-head,.downloads{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}.plot-controls{justify-content:space-between;margin:1rem 0}.plot-controls label{min-width:260px}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.25rem 0}.summary>div{border:1px solid var(--line);border-radius:4px;padding:1rem;background:var(--surface-2)}.summary span{display:block;font-size:.72rem;color:var(--muted)}.summary strong{display:block;font-size:1.3rem;color:var(--ink)}figure{margin:1rem 0 1.4rem}svg{display:block;width:100%;height:auto;max-height:400px;background:var(--surface);border:1px solid var(--line);border-radius:4px}svg text{font-family:Arial,Helvetica,sans-serif;fill:var(--ink-2);font-size:12px}svg .gridline{stroke:var(--line)}svg .axis{stroke:var(--muted)}figcaption{margin:.45rem 0}.table-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:4px;margin:1rem 0}table{width:100%;border-collapse:collapse;font-size:.82rem;text-align:left}caption{text-align:left;padding:.7rem;font-weight:700;background:var(--surface-2)}th,td{padding:.65rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--surface-2);font-weight:700}tbody tr:last-child td{border-bottom:0}tbody tr[data-selected=true]{background:var(--accent-soft)}.detail-head{margin-top:1.8rem;justify-content:space-between}.detail-head h3{margin-right:auto}.detail-head label{min-width:180px}.downloads{margin-bottom:1rem}.downloads button,.downloads a{font-size:.78rem}details{margin:.7rem 0}pre{overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;max-height:440px;padding:1rem;background:var(--surface-2);border:1px solid var(--line);font:12px/1.6 Consolas,monospace}.solution-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.solution-grid article{border:1px solid var(--line);border-radius:4px;padding:1rem;background:var(--surface)}.solution-grid h3{margin:.2rem 0 .7rem}.solution-grid p{font-size:.86rem;margin:.5rem 0}.block-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}.block-grid button{text-align:left;background:var(--surface-2);color:var(--ink);border-color:var(--line);font-size:.84rem}.block-grid button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.inspector{padding:1rem;border:1px solid var(--line);margin-top:1rem;border-radius:4px}.inspector dl{display:grid;grid-template-columns:120px 1fr;font-size:.84rem;gap:.4rem 1rem}.inspector dt{font-weight:700}.inspector dd{margin:0}.warning{color:var(--warn)}.footer{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.83rem}#cost-stage{background:var(--surface-2);padding:1.2rem;border-radius:4px}#references li{margin:1rem 0;font-size:.86rem}#status{font-size:.85rem;color:var(--muted);min-height:1.5rem}.empty{padding:1rem;fill:var(--muted)}@media(max-width:900px){.inputs{grid-template-columns:repeat(3,minmax(0,1fr))}.solution-grid{grid-template-columns:1fr 1fr}.block-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){main{padding:1.5rem 1rem}.top{padding:1rem}.top nav{gap:.7rem;font-size:.8rem}.inputs{grid-template-columns:1fr 1fr}.summary{grid-template-columns:1fr;gap:.5rem}.summary>div{padding:.7rem}.solution-grid{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.plot-controls{align-items:stretch}.plot-controls label{min-width:0;width:100%}.detail-head{align-items:stretch}.detail-head label{min-width:0;width:100%}.actions button{flex:1 1 auto}.inspector dl{grid-template-columns:1fr}.inspector dd{margin-bottom:.5rem}.badge{white-space:normal}}

.campaign-map-scroll{overflow:auto;border:1px solid var(--line);border-radius:4px}#campaign-heatmap{min-width:900px;max-height:none;border:0}#campaign-heatmap [role=button]{cursor:pointer}#campaign-heatmap [role=button]:focus-visible rect{stroke:var(--ink);stroke-width:3}.campaign-controls{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.campaign-controls label{font-size:.82rem;font-weight:700}.campaign-charts{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.campaign-charts svg{max-height:none}.campaign-charts figure{min-width:0}#campaign-findings{font-size:.9rem}#campaign-findings li{margin:.5rem 0}#campaign-detail-status{min-height:1.5rem;font-size:.85rem;color:var(--muted)}@media(max-width:900px){.campaign-charts{grid-template-columns:1fr}}@media(max-width:600px){.campaign-controls{grid-template-columns:1fr}}

#system-route-playback{border:1px solid var(--line);border-radius:4px;padding:1rem;margin:1.5rem 0}#system-route-playback input[type=range]{width:100%;margin:1rem 0 .3rem}.route-playback-controls label{font-size:.8rem}.route-playback-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.route-playback-cards>div{padding:.8rem;border:1px solid var(--line);border-radius:4px;background:var(--surface-2)}.route-playback-cards>div[data-active=true]{border-color:var(--accent);background:var(--accent-soft)}.route-playback-cards strong,.route-playback-cards span{display:block;font-size:.82rem}.route-playback-cards strong{margin-bottom:.4rem}@media(max-width:700px){.route-playback-cards{grid-template-columns:1fr 1fr}}
