:root{--paper:#eef1f0;--surface:#ffffff;--surface-2:#e4e9e8;--ink:#0d1417;--ink-2:#3d4d52;--ink-3:#697b80;--line:#c9d3d2;--line-soft:#dde4e3;--accent:#0a6c74;--accent-ink:#ffffff;--accent-soft:#d3e6e6;--red:#b02418;--orange:#c26a06;--yellow:#a8880a;--red-fill:rgba(176,36,24,.3);--orange-fill:rgba(194,106,6,.26);--yellow-fill:rgba(168,136,10,.24);--plot-bg:#f7f9f8;--grid:#d5dedd;--ok:#20693f;--shadow:0 1px 2px rgba(13,20,23,.06),0 6px 18px -10px rgba(13,20,23,.22)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0b1114;--surface:#111a1e;--surface-2:#162126;--ink:#e6edec;--ink-2:#adbdbd;--ink-3:#7d8f91;--line:#25353a;--line-soft:#1c292e;--accent:#3fb3b8;--accent-ink:#04201f;--accent-soft:#123338;--red:#f0625a;--orange:#f0a544;--yellow:#e2cb5c;--red-fill:rgba(240,98,90,.28);--orange-fill:rgba(240,165,68,.24);--yellow-fill:rgba(226,203,92,.2);--plot-bg:#0d1619;--grid:#1e2c31;--ok:#59c186;--shadow:0 1px 2px rgba(0,0,0,.5),0 8px 22px -12px rgba(0,0,0,.8)}}:root[data-theme=dark]{--paper:#0b1114;--surface:#111a1e;--surface-2:#162126;--ink:#e6edec;--ink-2:#adbdbd;--ink-3:#7d8f91;--line:#25353a;--line-soft:#1c292e;--accent:#3fb3b8;--accent-ink:#04201f;--accent-soft:#123338;--red:#f0625a;--orange:#f0a544;--yellow:#e2cb5c;--red-fill:rgba(240,98,90,.28);--orange-fill:rgba(240,165,68,.24);--yellow-fill:rgba(226,203,92,.2);--plot-bg:#0d1619;--grid:#1e2c31;--ok:#59c186;--shadow:0 1px 2px rgba(0,0,0,.5),0 8px 22px -12px rgba(0,0,0,.8)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,.cond{font-family:IBM Plex Sans Condensed,IBM Plex Sans,system-ui,sans-serif;text-wrap:balance}.mono,input,select,td.num,.readout b{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}.wrap{max-width:1280px;margin:0 auto;padding:22px 20px 64px}header.top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px 28px;border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:22px}.brand h1{margin:0;font-size:30px;font-weight:700;letter-spacing:-.015em;line-height:1.05}.brand p{margin:4px 0 0;color:var(--ink-2);max-width:62ch;font-size:13.5px}.stamp{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}.chip{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;padding:4px 9px;border:1px solid var(--line);border-radius:2px;color:var(--ink-2);background:var(--surface)}.chip.on{border-color:var(--accent);color:var(--accent)}.iconbtn{padding:5px 10px;font-size:12px;font-weight:600}.langsw{display:inline-flex;border:1px solid var(--line);border-radius:2px;overflow:hidden}.langsw button{border:0;border-radius:0;padding:5px 9px}.langsw button.lang-active{background:var(--accent-soft);color:var(--accent)}dialog{max-width:560px;width:calc(100% - 40px);border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);padding:22px;max-height:calc(100vh - 60px);overflow-y:auto}dialog::backdrop{background:#0d141773}dialog h2{margin:0 0 12px;font-size:15px;font-weight:600}dialog h3{margin:18px 0 6px;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}dialog p{margin:0 0 10px;font-size:13.5px;line-height:1.5}dialog ul{margin:0 0 10px;padding-left:20px;font-size:13.5px;line-height:1.55}dialog li{margin:3px 0}dialog .warn{margin-bottom:12px}dialog .note{margin-bottom:16px}dialog.wide{max-width:720px}.stepper{display:flex;flex-wrap:wrap;align-items:center;gap:10px 4px;margin:0 0 22px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:3px;font-size:12px}.stepgrp{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}.stepgrp-lab{font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--ink-3);margin-right:4px}.stepsep{color:var(--line);padding:0 2px}.step{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-weight:500}.step .dot{width:8px;height:8px;border-radius:50%;background:var(--line);display:inline-block;flex:none}.step.done .dot{background:var(--ok)}.step.done{color:var(--ink)}.step.locked{color:var(--ink-3)}.eyebrow{display:block;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--accent);margin-bottom:2px}.lock{margin:0;padding:22px 20px;background:var(--surface-2);border-bottom:1px solid var(--line-soft);font-size:13px;color:var(--ink-2)}.lock strong{color:var(--ink)}.lock ul{margin:8px 0 0;padding-left:18px}.lock li{margin:2px 0}.cols{display:flex;flex-direction:column;gap:22px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:3px}.panel>h2{margin:0;font-size:11px;letter-spacing:.11em;text-transform:uppercase;font-weight:600;color:var(--ink-3);padding:9px 14px;border-bottom:1px solid var(--line-soft)}.panel .body{padding:14px}.panel>summary{margin:0;font-size:11px;letter-spacing:.11em;text-transform:uppercase;font-weight:600;color:var(--ink-3);padding:9px 14px;cursor:pointer;list-style:none}.panel>summary::-webkit-details-marker{display:none}.panel>summary:before{content:"▸ ";display:inline-block;transition:transform .15s}.panel[open]>summary:before{transform:rotate(90deg)}.panel[open]>summary{border-bottom:1px solid var(--line-soft)}.console{display:grid;grid-template-columns:minmax(290px,.82fr) minmax(0,1.5fr);grid-template-areas:"site atmos" "chem atmos";gap:14px;align-items:start}.console>.panel{min-width:0}.console>[data-panel=site]{grid-area:site}.console>[data-panel=chem]{grid-area:chem}.console>[data-panel=atmos]{grid-area:atmos;align-self:stretch}.grp{display:flex;flex-direction:column;gap:10px}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wide{width:100%}.wide .row{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.panel[data-panel=source]>.body{max-width:1320px}.source-select-row{display:flex;align-items:center;gap:20px;min-width:0}.source-select-row select{flex:1 1 720px;min-width:0;max-width:720px}.source-icon{width:124px;height:108px;margin-left:auto;display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:3px;background:var(--surface-2);color:var(--accent)}.source-icon svg{width:72px;height:72px;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.source-icon span{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--ink-3)}.panel[data-panel=source] .warn{max-width:720px}.panel[data-panel=source] #src-tank>div:nth-child(2){max-width:720px}.panel[data-panel=source] .row{grid-template-columns:repeat(2,minmax(0,360px))}.panel[data-panel=source] #src-tank>div:last-child,.panel[data-panel=source] #src-pipe>div:last-child,.panel[data-panel=source]>.body>div:last-child{max-width:360px}.panel[data-panel=calc]>.body{max-width:960px}.panel[data-panel=calc] .row{grid-template-columns:repeat(3,minmax(0,1fr))}.panel[data-panel=calc] #run{align-self:flex-start}@media (max-width:800px){.console{grid-template-columns:1fr;grid-template-areas:"site" "chem" "atmos"}}@media (max-width:640px){.panel[data-panel=source] .row{grid-template-columns:1fr}.source-select-row{gap:10px}.source-select-row select{min-width:0}.source-icon{width:84px;height:84px}.source-icon svg{width:54px;height:54px;stroke-width:3.2}.source-icon span{font-size:8px}}label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:3px}input,select{width:100%;padding:6px 8px;font-size:13px;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:2px}input:focus-visible,select:focus-visible,button:focus-visible,.filebtn:focus-within{outline:2px solid var(--accent);outline-offset:1px}.unit{color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}button{font:inherit;font-weight:600;padding:8px 14px;border-radius:2px;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink)}button.ghost{background:transparent;color:var(--accent)}button:hover{filter:brightness(1.08)}.filebtn{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--accent);border:1px dashed var(--line);border-radius:2px;padding:8px 10px;cursor:pointer;width:100%;text-transform:none}.filebtn input{display:none}.stamp .filebtn{width:auto;padding:5px 10px;font-size:12px;white-space:nowrap}.note{font-size:12px;color:var(--ink-3);line-height:1.45}.stage{background:var(--surface);border:1px solid var(--line);border-radius:3px;overflow:hidden}.stagehead{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line-soft)}.stagehead h2{margin:0;font-size:15px;font-weight:600}.stagehead .meta{margin-left:auto;font-size:12px;color:var(--ink-3)}canvas{display:block;width:100%;height:auto;background:var(--plot-bg)}.zones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line-soft)}@media (max-width:640px){.zones{grid-template-columns:1fr}}.stagefoot{padding:12px 14px;border-top:1px solid var(--line-soft)}.zone{padding:12px 14px;border-right:1px solid var(--line-soft)}.zone:last-child{border-right:0}.zone .sw{display:inline-block;width:26px;height:4px;border-radius:2px;vertical-align:middle;margin-right:7px}.zone .lab{font-size:11px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}.zone .dist{font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:600;letter-spacing:-.02em;margin-top:4px}.zone .sub{font-size:12px;color:var(--ink-3)}.zone.none .dist{color:var(--ink-3);font-size:16px;font-weight:400}table.data{width:100%;border-collapse:collapse;font-size:12.5px}table.data th{text-align:left;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600;padding:6px 10px;border-bottom:1px solid var(--line-soft)}table.data td{padding:5px 10px;border-bottom:1px solid var(--line-soft)}table.data td.num{text-align:right;white-space:nowrap}table.data tr:last-child td{border-bottom:0}.scroll{overflow-x:auto}.warn{border-left:3px solid var(--orange);padding:10px 12px;background:var(--surface-2);font-size:12.5px;color:var(--ink-2);border-radius:0 2px 2px 0}footer{margin-top:26px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3);display:flex;gap:18px;flex-wrap:wrap}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
