:root{color-scheme:light;--ink:#243a3a;--muted:#526563;--paper:#f5f4ee;--panel:#fffefa;--line:#d5ddd3;--green:#176858;--gold:#946321;--red:#a43d35}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header,main{max-width:1450px;margin:auto;padding:1.3rem 2rem}header{padding-top:2rem}a{color:#176454;text-underline-offset:3px}h1,h2,h3{line-height:1.2}h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(2.1rem,4vw,3.8rem);max-width:1050px;margin:.6rem 0 1rem}h2{font-size:1.45rem;margin:.2rem 0 1rem}h3{font-size:1.05rem;margin:1rem 0 .5rem}.intro{max-width:920px;font-size:1.1rem}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.74rem;font-weight:700;color:var(--green)}.route{background:#e7eee6;border-left:3px solid var(--green);padding:.85rem 1rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.4rem;margin-bottom:1.2rem;min-width:0}.opening{border-top:3px solid var(--green)}.layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:1.2rem;align-items:start}.controls{padding:1.1rem}.controls p{font-size:.88rem}.fields{display:grid;grid-template-columns:minmax(0,1fr) 95px;gap:.55rem;align-items:center;margin:1rem 0}.fields label{font-size:.86rem}label{display:block}input,select,button{font:inherit}input[type=number],select{border:1px solid #879991;background:white;color:var(--ink);border-radius:5px;padding:.5rem;width:100%;min-height:42px}select{margin:.35rem 0}.check{display:flex;gap:.6rem;align-items:start;margin:.8rem 0}.check input{width:1.15rem;height:1.15rem;flex-shrink:0;accent-color:var(--green)}.buttons{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1rem}button{background:#e8eee7;border:1px solid #9fb1a5;border-radius:6px;color:#214f44;padding:.6rem .8rem;font-size:.87rem;cursor:pointer;min-height:42px}button.primary{background:var(--green);border-color:var(--green);color:white}button:disabled{opacity:.5;cursor:default}button:hover:enabled{filter:brightness(.94)}:focus-visible{outline:3px solid #a35c15;outline-offset:3px}.skip{position:absolute;top:-100px;left:1rem;background:white;padding:.7rem;z-index:5}.skip:focus{top:1rem}details{border-top:1px solid var(--line);padding-top:.8rem;margin-top:1rem}summary{cursor:pointer;font-weight:600}.small,figcaption{font-size:.84rem;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.metric{padding:.8rem;background:#edf1e9;border-radius:7px}.metric strong{display:block;font-size:1.65rem;line-height:1.25;font-weight:650}.metric span{display:block;font-size:.8rem;color:var(--muted)}.metric .unit{font-size:.77rem}.chart svg{display:block;width:100%;height:auto;max-height:310px;overflow:visible}.chart-pair,.explain-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.8rem;margin:.5rem 0 1rem}.legend span:before{content:"";display:inline-block;width:15px;height:3px;margin-right:6px;background:var(--swatch);vertical-align:middle}.scroll{max-width:100%;overflow:auto}.daily{max-height:420px}table{border-collapse:collapse;text-align:left;width:100%;font-size:.84rem}th,td{padding:.55rem .65rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:#294b40;background:#edf1e9}caption{text-align:left;color:var(--muted);padding:.6rem 0;font-size:.8rem}td:not(:first-child){font-variant-numeric:tabular-nums}figure{margin:1rem 0}figcaption{margin-top:.7rem}.error{color:var(--red);font-weight:600}.error:empty{display:none}.note{border-left:3px solid var(--gold);padding:.6rem .9rem;background:#f4efdf}.results{min-width:0}footer{padding:1rem 0 2rem;font-size:.88rem}#state-space,#assumptions{scroll-margin-top:1rem}progress{width:100%}@media(max-width:1080px){.layout{grid-template-columns:300px minmax(0,1fr)}.metrics{grid-template-columns:1fr 1fr}.chart-pair{grid-template-columns:1fr}}@media(max-width:780px){header,main{padding:1rem}.layout,.explain-grid{grid-template-columns:1fr}.fields{grid-template-columns:minmax(0,1fr) 120px}.panel{padding:1rem}.metrics{grid-template-columns:1fr 1fr}header{padding-top:1.5rem}h1{font-size:2.4rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
