:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--gutter:20px;--font-sm:12px;--font-md:14px;--font-input-touch:16px;--touch-target:44px;--brand-cyan:#19d6ff;--brand-blue:#1268ff;--brand-navy:#071b55;--brand-ink:#04070f;--container-max:1280px;--sheet-max-height:80vh;--z-sticky:10;--z-popover:20;--z-drawer:90;--z-modal:100}@media not (min-width:640px){:root{--gutter:16px}}:root{--bg:#f6f7f9;--panel:#fff;--text:#1c2430;--muted:#5c6878;--border:#d9dee5;--accent:#1f6feb;--accent-text:#fff;--error:#c62828;--error-bg:#fdecea;--computed:#1b7f45;--computed-bg:#e3f4ea;--cached:#1f5fbf;--cached-bg:#e4eefc;--estimated:#9a6200;--estimated-bg:#fdf3dd;--waiting:#8a94a3;--port-gas:#1f8fbf;--port-heat:#d9622b;--port-data:#8a5cd6;--port-liquid:#2c9c7a;--port-control:#7d8590;--notice-bg:#eef4ff;--viz-1:#2a78d6;--viz-2:#eb6834;--viz-3:#1baf7a;--viz-4:#eda100;--viz-5:#e87ba4;--viz-6:#008300;--viz-7:#4a3aa7;--viz-8:#e34948;--viz-text:#1c2430;--viz-text-secondary:#52514e;--viz-muted:#6f6d67;--viz-grid:#e1e0d9;--viz-axis:#c3c2b7;--radius:8px;--mono:ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#12161c;--panel:#1a2029;--text:#e3e8ef;--muted:#97a3b4;--border:#2d3644;--accent:#4c8dff;--error:#ff7b72;--error-bg:#3a1d1d;--computed:#56d38a;--computed-bg:#15301f;--cached:#79a8ff;--cached-bg:#172741;--estimated:#f0b54a;--estimated-bg:#3a2c10;--port-gas:#4cb8e6;--port-heat:#ff8a50;--port-data:#b494ff;--notice-bg:#172741;--viz-1:#3987e5;--viz-2:#d95926;--viz-3:#199e70;--viz-4:#c98500;--viz-5:#d55181;--viz-6:#008300;--viz-7:#9085e9;--viz-8:#e66767;--viz-text:#e3e8ef;--viz-text-secondary:#c3c2b7;--viz-muted:#97a3b4;--viz-grid:#2c3340;--viz-axis:#3b4555;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Hiragino Sans,sans-serif}.topbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:10px 20px;display:flex}.brand{flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex}.brand-logo{align-items:center;gap:8px;line-height:0;display:inline-flex}.brand-logo img{display:block}.brand-wordmark{height:auto}.topbar nav{flex:1;align-items:center;gap:16px;display:flex}.nav-spacer{flex:1}.menu-toggle{margin-left:auto;display:none}.lang-select{display:inline-flex}.lang-select button{border-radius:0;padding:3px 10px;font-size:13px}.lang-select button:first-child{border-radius:6px 0 0 6px}.lang-select button:last-child{border-left:none;border-radius:0 6px 6px 0}.lang-select button[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.edit-toggle{color:var(--muted);white-space:nowrap;font-size:12px}@media not (min-width:1024px){.topbar{flex-wrap:wrap}.menu-toggle{display:inline-block}.topbar nav{flex-direction:column;flex-basis:100%;align-items:flex-start;gap:10px;padding:8px 0;display:none}.topbar nav.open{display:flex}.nav-spacer{display:none}}.topbar a{color:var(--text);text-decoration:none}.topbar a.active{border-bottom:2px solid var(--accent);font-weight:600}.topbar .disabled{color:var(--muted)}main{padding:16px var(--gutter) 40px}.quick{grid-template-columns:minmax(320px,420px) minmax(0,1fr);grid-template-areas:"kinds kinds""input output";gap:16px;max-width:1280px;margin:0 auto;display:grid}.kinds{grid-area:kinds;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.input{grid-area:input}.output{grid-area:output;min-width:0}@media not (min-width:1024px){.quick{grid-template-columns:1fr;grid-template-areas:"kinds""input""output"}}.kind{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);cursor:pointer;padding:10px 12px;text-decoration:none;display:block}.kind.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.kind-title{font-weight:600;display:block}.kind-summary{color:var(--muted);font-size:12px;display:block}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px}h2{margin:0 0 12px;font-size:16px}h3{margin:16px 0 8px;font-size:14px}fieldset{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 12px;padding:8px 12px 12px}legend{align-items:baseline;gap:8px;padding:0 4px;font-weight:600;display:flex}.fields{gap:10px;display:grid}.field{grid-template-columns:9.5em minmax(0,1fr);align-items:center;gap:4px 8px;display:grid}.field.kind-composition{align-items:start}.field .error{color:var(--error);grid-column:2;font-size:12px}.field .range-hint{grid-column:2;margin:0}.field.has-error input,.field.has-error select{border-color:var(--error)}.req{color:var(--error)}input,select,button{font:inherit;color:inherit}input:not([type=checkbox]),select{border:1px solid var(--border);background:var(--bg);border-radius:6px;width:100%;min-width:0;padding:5px 8px}:is(input:focus-visible,select:focus-visible,button:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.quantity{grid-template-columns:minmax(0,1fr) 5.5em;gap:4px;display:grid}.quantity .unit{color:var(--muted);align-self:center}.composition-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 28px;gap:4px;margin-bottom:4px;display:grid}.composition-basis{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 8px;margin-bottom:6px;display:grid}.composition-basis label{color:var(--muted);font-size:12px}.composition-basis .error{grid-column:1/-1}.composition-head{color:var(--muted);margin-bottom:2px;font-size:12px}.hint{color:var(--muted);margin:2px 0 0;font-size:12px}button{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;padding:6px 12px}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);width:100%;padding:8px;font-weight:600}button.link{color:var(--accent);background:0 0;border:none;padding:0;font-size:12px}button.icon{padding:0}details.solver{margin-bottom:12px}.cad-edition-badge{margin-right:6px}details.advanced-fields{border-top:1px solid var(--border);padding-top:8px}details.advanced-fields>.hint{margin:6px 0 8px}summary{cursor:pointer;color:var(--muted)}.alert{background:var(--error-bg);color:var(--error);border-radius:6px;padding:8px 10px}.muted{color:var(--muted)}.mono{font-family:var(--mono);word-break:break-all;font-size:12px}.pipeline{flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.chip{border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:12px;display:inline-flex}.chip+.chip:before{content:"→";color:var(--muted);margin-right:4px}.chip-status{font-weight:600}.status-completed .chip-status{color:var(--computed)}.status-cached .chip-status{color:var(--cached)}.status-failed .chip-status,.status-invalid .chip-status{color:var(--error)}.status-waiting .chip-status,.status-ready .chip-status{color:var(--waiting)}.status-queued .chip-status,.status-running .chip-status{color:var(--accent)}.result-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.result-head h2{margin:0}.badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.result-computed{color:var(--computed);background:var(--computed-bg)}.result-cached{color:var(--cached);background:var(--cached-bg)}.result-estimated{color:var(--estimated);background:var(--estimated-bg)}table{border-collapse:collapse;width:100%;margin-top:8px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:4px 8px}table.kv th{width:11em;color:var(--muted);font-weight:500}td.num{font-variant-numeric:tabular-nums;font-family:var(--mono)}.stream{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start;gap:0 16px;display:grid}.provenance{margin-top:16px}.actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.app.route-cad{flex-direction:column;height:100dvh;display:flex}.route-cad main{flex:1;min-height:0;padding:0}.whoami{color:var(--muted);margin:0;font-size:12px;position:absolute;top:10px;right:20px}.login{gap:10px;max-width:420px;margin:40px auto;display:grid}.login-form{gap:10px;display:grid}.member .field,.withdraw .field{grid-template-columns:minmax(0,1fr)}.member .field>.error,.member .field>.hint,.withdraw .field>.error,.withdraw .field>.hint{grid-column:1}.login-links{margin:0}.withdraw{max-width:560px;margin-top:32px}.cad{grid-template:"toolbar toolbar toolbar""notice notice notice""palette canvas properties"minmax(0,1fr)/170px minmax(0,1fr) 360px;height:100%;display:grid}.cad-toolbar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-area:toolbar;align-items:center;gap:8px;padding:8px 12px;display:flex}.cad-toolbar select,.cad-toolbar input{width:auto}.cad-toolbar .doc-name{min-width:14em}button.primary-inline{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.cad-notice{background:var(--notice-bg);border-bottom:1px solid var(--border);grid-area:notice;margin:0;padding:6px 12px;font-size:13px}.notice{background:var(--notice-bg);border-radius:6px;padding:8px 10px}.palette{background:var(--panel);border-right:1px solid var(--border);grid-area:palette;padding:8px;overflow-y:auto}.palette h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 4px;font-size:11px}.palette-item{text-align:left;cursor:grab;width:100%;margin-bottom:4px;display:block}.cad-canvas{grid-area:canvas;min-height:0;position:relative}.properties{background:var(--panel);border-left:1px solid var(--border);grid-area:properties;padding:12px;overflow-y:auto}.properties .field{grid-template-columns:8.5em minmax(0,1fr)}.react-flow{--xy-background-color:var(--bg);--xy-minimap-background-color:var(--panel);--xy-controls-button-background-color:var(--panel);--xy-controls-button-color:var(--text);--xy-controls-button-border-color:var(--border)}.cad-node{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);min-width:170px;max-width:230px;color:var(--text);padding:8px 12px;font-size:12px;box-shadow:0 1px 2px #00000014}.cad-node.phase-gas,.palette-item.phase-gas{border-left:4px solid var(--port-gas)}.cad-node.phase-liquid,.palette-item.phase-liquid{border-left:4px solid var(--port-liquid)}.cad-node.phase-both,.palette-item.phase-both{border-left:4px solid var(--port-liquid);border-image:linear-gradient(var(--port-gas), var(--port-liquid)) 1}.fluid-tag{color:var(--text);border:1px solid var(--port-gas);border-radius:4px;margin-right:6px;padding:0 5px;font-size:10px;font-weight:600;line-height:14px;display:inline-block}.fluid-tag.fluid-liquid,.fluid-tag.fluid-both{border-color:var(--port-liquid)}.palette-fluid{grid-template-columns:1fr 1fr;gap:0;margin:4px 0 6px;display:grid}.palette-fluid button{border-radius:0;min-height:36px;font-weight:600}.palette-fluid button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.palette-fluid button:last-child{border-radius:0 var(--radius) var(--radius) 0}.palette-fluid button[aria-pressed=true]{background:var(--notice-bg)}.palette-fluid button.fluid-gas[aria-pressed=true]{box-shadow:inset 0 -3px 0 var(--port-gas);border-color:var(--port-gas)}.palette-fluid button.fluid-liquid[aria-pressed=true]{box-shadow:inset 0 -3px 0 var(--port-liquid);border-color:var(--port-liquid)}.palette-fluid-hint{margin:0 0 4px;font-size:11px}.cad-node.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cad-node.has-error{border-color:var(--error)}.cad-node-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 8px;display:flex}.cad-node-head .chip-status{white-space:nowrap;font-size:11px}.cad-node-label{font-size:13px;font-weight:600}.cad-node-type,.cad-node-line{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cad-node-result{border-left:3px solid;border-radius:4px;margin:6px -4px 0;padding:3px 8px 4px}.cad-node-result-tag{font-size:11px;font-weight:700}.cad-node-result-line{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.react-flow__handle.port{border:2px solid var(--panel);width:10px;height:10px}.react-flow__handle.port-gas{background:var(--port-gas)}.react-flow__handle.port-heat{background:var(--port-heat)}.react-flow__handle.port-data{background:var(--port-data)}.react-flow__handle.port-liquid{background:var(--port-liquid)}.react-flow__handle.port-control{background:var(--port-control)}.react-flow__handle.connectingto.valid{box-shadow:0 0 0 3px var(--computed)}.react-flow__handle.connectingto:not(.valid){box-shadow:0 0 0 3px var(--error)}.port-edge{stroke-width:2px}.port-edge.port-gas{stroke:var(--port-gas)}.port-edge.port-heat{stroke:var(--port-heat)}.port-edge.port-data{stroke:var(--port-data);stroke-dasharray:5 4}.port-edge.port-liquid{stroke:var(--port-liquid)}.port-edge.selected{stroke-width:3.5px}.edge-label{pointer-events:none;border:1px solid var(--border);background:var(--panel);color:var(--text);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:11px;position:absolute}.block-icon{vertical-align:-3px;flex:none;margin-right:4px}.reactor-guide{margin:4px 0 12px}.reactor-guide-toggle{text-align:left;align-items:center;gap:6px;display:inline-flex}.reactor-guide-mark{border:1px solid;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:inline-grid}.reactor-guide-body{border-left:3px solid var(--brand-cyan);background:var(--notice-bg);border-radius:4px;margin-top:8px;padding:8px 10px;font-size:13px}.reactor-guide-body h4{margin:8px 0 2px}.reactor-guide-body p{margin:2px 0}.reactor-guide-table{border-collapse:collapse;font-size:12px}.reactor-guide-table th,.reactor-guide-table td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:4px 6px}.edge-delete{pointer-events:all;border:2px solid var(--danger);background:var(--panel);width:28px;height:28px;min-height:0;color:var(--danger);cursor:pointer;border-radius:50%;padding:0;font-size:18px;font-weight:700;line-height:1;position:absolute}:is(.edge-delete:hover,.edge-delete:focus-visible){background:var(--danger);color:var(--panel)}@media (pointer:coarse){.edge-delete{width:40px;height:40px;font-size:22px}}.cad-delete:not(:disabled){border-color:var(--danger);color:var(--danger)}.properties-delete{width:100%;margin-top:16px}.profiles,.distribution{margin-top:16px}.profiles h4{margin:12px 0 0;font-size:13px;font-weight:600}.echart{width:100%;min-width:0}.viz-controls{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.viz-controls select{width:auto}.segmented{margin-left:auto;display:inline-flex}.segmented button{border-radius:0;padding:3px 10px;font-size:12px}.segmented button:first-child{border-radius:6px 0 0 6px}.segmented button:last-child{border-left:none;border-radius:0 6px 6px 0}.segmented button[aria-pressed=true]{background:var(--bg);font-weight:600}.species-picker{flex-wrap:wrap;gap:4px;display:flex}.species-chip{color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;display:inline-flex}.species-chip[aria-pressed=true]{color:var(--text);border-color:var(--viz-axis)}.viz-key{border-radius:1px;width:14px;height:2px;display:inline-block}.viz-tooltip{color:var(--viz-text);font:12px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.viz-tooltip-title{color:var(--viz-muted);margin-bottom:4px}.viz-tooltip-row{align-items:center;gap:6px;display:flex}.viz-tooltip-row strong{font-variant-numeric:tabular-nums}.viz-tooltip-name{color:var(--viz-text-secondary)}.viz-table-wrap{max-height:360px;overflow:auto}.viz-table td,.viz-table th{white-space:nowrap;font-size:12px}.viz-table td{font-variant-numeric:tabular-nums}.page{max-width:920px;margin:0 auto;padding:8px 0 24px}.lead{color:var(--muted);font-size:16px}a{color:var(--accent)}.button,a.button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-block}a.button.primary-inline,.button.primary-inline{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.footer{border-top:1px solid var(--border);color:var(--muted);background:var(--panel);padding:16px 20px;font-size:13px}.footer-links{flex-wrap:wrap;gap:16px;display:flex}.route-cad .footer{display:none}.home{max-width:1100px;margin:0 auto}.hero{color:#eef4ff;background:radial-gradient(60% 90% at 78% 45%, #1268ff59, transparent 70%), radial-gradient(40% 60% at 95% 100%, #19d6ff2e, transparent 70%), linear-gradient(135deg, #060b1c 0%, var(--brand-ink) 60%, #020409 100%);border-radius:20px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:24px;margin:8px 0 32px;padding:48px;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 50px #04070f40}.hero h1{color:#fff;max-width:22em;margin:0 0 14px;font-size:clamp(26px,3.6vw,42px);line-height:1.2}.hero .lead{color:#b8c7e0;max-width:34em}.hero-logo{justify-content:center;display:flex}.hero-logo img{mix-blend-mode:screen;width:100%;max-width:460px;height:auto}.hero a.button.hero-primary{color:#fff;background:linear-gradient(135deg, var(--brand-cyan), var(--brand-blue) 55%, #0a3fd6);border:0;box-shadow:0 6px 20px #1268ff73}.hero a.button.hero-primary:hover{filter:brightness(1.08)}.hero a.button.hero-secondary{color:#eef4ff;background:#ffffff0f;border:1px solid #ffffff47}.hero a.button.hero-secondary:hover{background:#ffffff1f}.footer-brand{margin-bottom:4px}.admin-logo{padding:4px 8px 10px;display:block}.login-mark{margin:0 auto 8px;display:block}.maintenance-logo{justify-content:center;display:flex}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.home-section{border-top:1px solid var(--border);padding:24px 0}.home-section h2{font-size:20px}.cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);flex-direction:column;gap:4px;padding:14px;text-decoration:none;display:flex}a.card:hover{border-color:var(--accent)}.card-icon{font-size:22px}.card-title{font-weight:600}.card-text{color:var(--muted);font-size:13px}.cad-teaser{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:center;gap:24px;display:grid}@media not (min-width:1024px){.cad-teaser{grid-template-columns:1fr}}.flow-sketch{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.flow-col{flex-direction:column;gap:6px;display:flex}.flow-box{border:1px solid var(--border);background:var(--panel);white-space:nowrap;border-radius:6px;padding:6px 10px}.flow-arrow{color:var(--port-gas);font-weight:700}.steps{gap:6px;padding-left:20px;display:grid}.link-list{padding-left:18px}.learn-tools{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.search{max-width:420px}.term-list{gap:8px;padding:0;list-style:none;display:grid}.term-list li{gap:2px;display:grid}.term-name{font-weight:600}.term-short{color:var(--muted);font-size:13px}.term-symbol{color:var(--muted);margin-right:8px}.glossary-head{border-bottom:1px solid var(--border);font-size:16px}.breadcrumb{color:var(--muted);font-size:13px}.learn-entry h1{font-size:26px}.learn-entry h2{margin-top:24px;font-size:16px}.learn-short{background:var(--notice-bg);border-radius:var(--radius);padding:4px 16px;font-size:15px}.rich-text p,.rich-text li{line-height:1.7}.legal{max-width:46rem}.legal-text h2{margin:var(--space-4) 0 var(--space-2);font-size:1.1rem}.legal-text h3{margin:var(--space-3) 0 var(--space-1);font-size:1rem}.legal-text ol,.legal-text ul{margin:0 0 var(--space-2);padding-left:1.6em}.legal-text p,.legal-text li{overflow-wrap:anywhere}.admin-links{margin:0;padding-left:1.2em;line-height:1.9}.formula{background:var(--bg);border-radius:6px;margin:10px 0;padding:8px 12px;overflow:auto hidden}.formula .katex-display{margin:0}.math .katex,.formula .katex{font-size:1.08em}.tex-source code{font-family:var(--mono);color:var(--muted);font-size:.92em}.related{flex-wrap:wrap;gap:6px 10px;padding:0;list-style:none;display:flex}.related li a{border:1px solid var(--border);border-radius:999px;padding:2px 10px;text-decoration:none;display:inline-block}.help{margin-left:4px;display:inline-block;position:relative}.help-button{width:18px;height:18px;color:var(--muted);border-radius:50%;padding:0;font-size:11px;line-height:16px}.help-popover{z-index:20;background:var(--panel);width:280px;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);white-space:normal;flex-direction:column;gap:6px;padding:10px 12px;font-size:13px;font-weight:400;display:flex;position:absolute;top:22px;left:0;box-shadow:0 4px 16px #00000026}.help-more{font-weight:600}.edit-mode .editable{color:inherit;border-radius:3px;outline:1px dashed #0000;text-decoration:none}:is(.edit-mode .editable:hover,.edit-mode .editable:focus-visible){outline-color:var(--estimated);background:var(--estimated-bg);cursor:pointer}.admin-bar{background:var(--estimated-bg);border-radius:6px;padding:6px 10px;font-size:13px}.bilingual{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin:12px 0;display:grid}.field.stacked{grid-template-columns:1fr}textarea{width:100%;font:inherit;color:inherit;border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:6px 8px}.preview{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}.diff del{color:var(--error);display:block}.diff ins{color:var(--computed);text-decoration:none;display:block}.status-badge.s-published{color:var(--computed);background:var(--computed-bg)}.status-badge.s-review_required,.status-badge.s-missing{color:var(--estimated);background:var(--estimated-bg)}.status-badge.s-draft{color:var(--muted);background:var(--bg)}.feedback-form{gap:12px;display:grid}.feedback-form .field{grid-template-columns:1fr}.type-picker{flex-wrap:wrap;gap:8px 16px;display:flex}.consent{align-items:flex-start;gap:8px;font-size:13px;display:flex}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}:root{--warning:#8a5a00;--warning-bg:#fff4d6;--warning-border:#e0b44a;--danger:#b42318;--ok:#1b7f45}@media (prefers-color-scheme:dark){:root{--warning:#f5c35b;--warning-bg:#33280f;--warning-border:#8a6a1f;--danger:#ff7b72;--ok:#56d38a}}.maintenance-banner{background:var(--warning-bg);color:var(--warning);border-bottom:1px solid var(--warning-border);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 16px;display:flex}.maintenance-banner a{color:inherit;font-weight:600}.topbar a.nav-admin{font-weight:600}.maintenance-page{max-width:640px;margin:12vh auto;padding:0 16px}.maintenance-page section.secondary{border-top:1px solid var(--border);color:var(--muted);margin-top:32px;padding-top:16px}.pre-line{white-space:pre-line}.small{font-size:12px}.admin-shell{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.admin-side{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;align-self:start;gap:4px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.admin-back{color:var(--accent);padding:4px 8px;font-weight:600;text-decoration:none}.admin-brand{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:8px 8px 4px;font-size:12px}.admin-side nav{flex-direction:column;display:flex}.admin-side nav a{color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:6px 8px;text-decoration:none;display:flex}.admin-side nav a:hover{background:var(--bg)}.admin-side nav a.active{background:var(--notice-bg);color:var(--accent);font-weight:600}.dot-warning{background:var(--warning-border);border-radius:50%;width:8px;height:8px}.admin-side-foot{flex-direction:column;gap:8px;margin-top:auto;padding:8px;display:flex}.admin-main{min-width:0;padding:0 24px 48px}.admin-main>.maintenance-banner{margin:0 -24px 8px}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px 0 12px;display:flex}.admin-head h1{margin:0;font-size:22px}.admin-head-tools{align-items:center;gap:8px;display:flex}.range-picker{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.range-custom{align-items:center;gap:8px;display:flex}.admin-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0;margin-bottom:16px;padding:14px 16px}.admin-card h2{margin:0 0 10px;font-size:15px}.admin-card h3{margin:16px 0 6px;font-size:13px}.card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.key-kpi{border-color:var(--accent)}.kpi-grid,.now-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:16px;display:grid}.now-grid{margin-bottom:0}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:2px;padding:12px 14px;text-decoration:none;display:flex}.kpi-link:hover{border-color:var(--accent)}.kpi-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:650}.kpi-label{color:var(--muted);font-size:12px}.kpi-hint{color:var(--muted);font-size:11px}.chart-grid,.card-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;display:grid}.chart-grid>.admin-card,.card-grid>.admin-card{margin-bottom:0}.chart-grid,.card-grid{margin-bottom:16px}.tabs{flex-wrap:wrap;margin-bottom:12px}.filters{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:12px;display:flex}.table-scroll{overflow-x:auto}.admin-table td,.admin-table th{white-space:nowrap;vertical-align:top}.admin-table tr.selected{background:var(--notice-bg)}.num{text-align:right;font-variant-numeric:tabular-nums}.clip{text-overflow:ellipsis;max-width:260px;overflow:hidden}.row-actions{gap:10px;display:flex}.danger-text,button.link.danger-text{color:var(--danger)}.error-text{color:var(--error);max-width:320px;white-space:normal!important}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.badge+.badge,.badge{margin-left:4px}.lib-invalidated,.run-failed,.run-invalid{color:var(--error);background:var(--error-bg)}.lib-protected,.run-running{color:var(--cached);background:var(--cached-bg)}.lib-valid,.run-completed{color:var(--computed);background:var(--computed-bg)}.bar-table{border-collapse:collapse;width:100%}.bar-table th,.bar-table td{border-bottom:1px solid var(--border);text-align:left;padding:4px 6px;font-weight:400}.bar-table thead th{color:var(--muted);font-size:12px}.bar-table tbody th{width:60%;position:relative}.bar-label{z-index:1;word-break:break-all;position:relative}.bar{background:var(--viz-1);opacity:.18;border-radius:0 4px 4px 0;position:absolute;top:3px;bottom:3px;left:0}.pager{justify-content:flex-end;align-items:center;gap:12px;margin-top:10px;display:flex}.modal-backdrop{z-index:100;background:#0006;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);color:var(--text);border-radius:var(--radius);width:min(440px,100%);padding:20px;box-shadow:0 8px 32px #0000004d}.modal h2{margin-top:0;font-size:17px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.settings-form fieldset{border:0;margin:0;padding:0}.check{gap:4px;margin-right:12px;display:inline-flex}.inline-fields{flex-wrap:wrap;gap:12px;display:flex}.inline-fields .grow{flex:300px}.health-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.health{grid-template-columns:auto 1fr auto;align-items:center;gap:2px 8px;display:grid}.health .muted{grid-column:2/-1}.health.ok .health-icon{color:var(--ok)}.health.down .health-icon,.health.down strong{color:var(--danger)}.maintenance-state.on{border-color:var(--warning-border);background:var(--warning-bg)}.help-backdrop,.help-close{display:none}.menu-icon{margin-right:6px;font-size:18px;line-height:1}@media not (min-width:1024px){.topbar{padding:8px var(--gutter)}.topbar nav{align-items:stretch;gap:0;padding:4px 0 8px}.topbar nav>a,.topbar nav>label{min-height:var(--touch-target);border-bottom:1px solid var(--border);align-items:center;padding:0 4px;display:flex}.topbar nav .lang-select{align-self:flex-start;margin:10px 0 4px}.topbar nav .lang-select button{min-height:var(--touch-target);min-width:88px}.topbar nav .nav-admin{border-top:1px solid var(--border);margin-top:12px;font-weight:600}.topbar nav .nav-account{border-bottom:0}.menu-toggle{min-height:var(--touch-target)}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media not (min-width:640px){.cards{grid-template-columns:1fr}.hero-actions{flex-direction:column}.hero-actions>*{text-align:center;min-height:var(--touch-target);justify-content:center}.kinds{scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter) 6px;gap:8px;display:flex;overflow-x:auto}.kind{scroll-snap-align:start;max-width:75vw;min-height:var(--touch-target);flex-direction:column;flex:none;justify-content:center;display:flex}.kind .kind-summary{display:none}.kind.active .kind-summary{display:block}.panel{padding:12px}fieldset{padding:8px 10px 10px}.field{grid-template-columns:minmax(0,1fr);gap:4px}.field .error,.field .range-hint{grid-column:1}.properties .field{grid-template-columns:minmax(0,1fr)}.quantity{grid-template-columns:minmax(0,1fr) 7em}.composition-row{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) var(--touch-target)}}@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:var(--touch-target);font-size:var(--font-input-touch)}button,a.button{min-height:var(--touch-target)}input[type=checkbox],input[type=radio]{width:22px;height:22px}.help-button{width:28px;height:28px;min-height:0;font-size:14px;line-height:26px;position:relative}.help-button:after{content:"";position:absolute;inset:-8px}button.link{min-height:0;padding:10px 4px}}@media not (min-width:640px){.help-backdrop{z-index:var(--z-modal);background:#00000059;display:block;position:fixed;inset:0}.help-popover{z-index:calc(var(--z-modal) + 1);width:auto;max-height:var(--sheet-max-height);padding:16px var(--gutter) calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;gap:10px;font-size:15px;position:fixed;inset:auto 0 0;overflow-y:auto}.help-popover strong{font-size:17px}.help-more{min-height:var(--touch-target);align-items:center;display:flex}.help-close{align-self:flex-end;min-width:96px;display:block}.profiles{flex-direction:column;display:flex}.profiles .profile-plots{order:0}.profiles .species-picker{order:1;margin-top:8px}.profiles .viz-controls{order:2;margin-top:8px}.species-chip{min-height:36px;padding:6px 10px}}.viz-table.pin-first th:first-child,.viz-table.pin-first td:first-child{z-index:1;background:var(--panel);position:sticky;left:0}.table-scroll,.viz-table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}@media not (min-width:640px){table.cards-on-phone,table.cards-on-phone tbody,table.cards-on-phone tr,table.cards-on-phone th,table.cards-on-phone td{white-space:normal;display:block}table.cards-on-phone thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}table.cards-on-phone tr{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;padding:8px 12px}table.cards-on-phone tbody th{border:0;padding:0 0 4px;font-size:14px;font-weight:600}table.cards-on-phone td{font-variant-numeric:tabular-nums;border:0;justify-content:space-between;gap:12px;padding:2px 0;font-size:13px;display:flex}table.cards-on-phone td:before{content:attr(data-label);color:var(--muted)}}.learn-layout{max-width:var(--container-max);grid-template-columns:minmax(0,1fr);grid-template-areas:"main""side""refs";gap:0 40px;display:grid}.learn-layout .learn-entry{grid-area:main;min-width:0}.learn-side{grid-area:side;min-width:0}.learn-refs{grid-area:refs;min-width:0}.learn-toc{display:none}.learn-toc ol{margin:0;padding-left:18px;line-height:1.9}@media (min-width:1024px){.learn-layout{grid-template-columns:minmax(0,720px) 240px;grid-template-areas:"main side""refs side";justify-content:center}.learn-side{align-self:start;padding-top:48px;position:sticky;top:16px}.learn-side h2{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:13px}.learn-toc{margin-bottom:24px;display:block}}details.disclosure>summary{cursor:pointer;min-height:var(--touch-target);align-items:center;gap:8px;list-style:none;display:flex}details.disclosure>summary::-webkit-details-marker{display:none}details.disclosure>summary:before{content:"▸";color:var(--muted);transition:transform .15s}details.disclosure[open]>summary:before{transform:rotate(90deg)}details.disclosure>summary h2{margin:0}@media not (min-width:640px){.learn-entry{font-size:15px;line-height:1.6}.related li a,.term-list a{align-items:center;min-height:36px;display:inline-flex}}.admin-topbar,.admin-backdrop{display:none}@media not (min-width:1024px){.admin-shell{grid-template-columns:minmax(0,1fr)}.admin-topbar{z-index:var(--z-sticky);padding:6px var(--gutter);background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:12px;display:flex;position:sticky;top:0}.admin-topbar .menu-toggle{align-items:center;margin-left:0;display:inline-flex}.admin-topbar-title{font-weight:600}.admin-side{width:min(300px,85vw);height:100%;z-index:var(--z-drawer);border-right:1px solid var(--border);border-bottom:0;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.drawer-open .admin-side{transform:none;box-shadow:0 0 24px #0003}.admin-side nav{flex-flow:column}.admin-side nav a{min-height:var(--touch-target)}.admin-backdrop{z-index:calc(var(--z-drawer) - 1);background:#00000059;display:block;position:fixed;inset:0}.admin-main{padding:0 var(--gutter) 32px}.admin-main>.maintenance-banner{margin:0 calc(-1 * var(--gutter)) 8px}.chart-grid,.card-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.admin-side{transition:none}}@media not (min-width:640px){.kpi-grid,.now-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{padding:10px 12px}.kpi-value{font-size:20px}.admin-head{padding:14px 0 8px}.admin-head h1{font-size:19px}.range-picker .segmented{max-width:100%;overflow-x:auto}.filters{grid-template-columns:minmax(0,1fr);display:grid}.filters label{gap:4px;display:grid}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}.row-actions{flex-wrap:wrap}}.admin-table tbody th:first-child,.admin-table thead th:first-child{z-index:1;background:var(--panel);position:sticky;left:0}.maintenance-page{padding:0 var(--gutter)}@media not (min-width:640px){.maintenance-page{margin:32px auto}}.cad-pane,.cad-more{display:contents}.sheet-header,.cad-bottombar,.cad-backdrop,.cad-title,.cad-more-toggle{display:none}.cad-menu-backdrop{z-index:calc(var(--z-modal) - 1);position:fixed;inset:0}.cad-menu{z-index:var(--z-modal);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-width:180px;padding:4px;display:flex;position:fixed;box-shadow:0 6px 24px #0003}.cad-menu button{text-align:left;background:0 0;border:0}.cad-menu button:hover{background:var(--bg)}.cad-connect-hint{z-index:var(--z-popover);background:var(--text);color:var(--panel);border-radius:999px;max-width:calc(100% - 32px);margin:0;padding:8px 14px;font-size:13px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.cad{position:relative}@media not (min-width:1024px){.route-cad .footer{display:none}.cad{flex-direction:column;height:100%;display:flex}.cad-toolbar{padding:6px var(--gutter);flex-wrap:wrap;gap:8px}.cad-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;display:block;overflow:hidden}.cad-more-toggle{min-width:var(--touch-target);min-height:var(--touch-target);justify-content:center;align-items:center;font-size:20px;display:inline-flex}.cad-run,.cad-delete{min-height:var(--touch-target);order:3}.cad-run:before{content:"▶ "}.cad-more{display:none}.tools-open .cad-more{flex-basis:100%;order:4;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:4px 0 6px;display:grid}.tools-open .cad-more>label,.tools-open .cad-more>.doc-name,.tools-open .cad-more>select{grid-column:1/-1;width:100%}.tools-open .cad-more>label{gap:4px;display:grid}.cad-canvas{flex:1;min-height:0}.cad .react-flow__minimap{display:none}.cad-bottombar{padding:6px var(--gutter) calc(6px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:8px;display:grid}.cad-bottombar button{min-height:var(--touch-target);font-weight:600}.cad-bottombar button[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.cad-pane{display:none}.cad-pane.sheet-open{max-height:75dvh;z-index:var(--z-modal);background:var(--panel);padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 32px #00000040}.cad-pane .palette,.cad-pane .properties{padding:8px var(--gutter) 16px;border:0;overflow-y:auto}.sheet-header{padding:10px var(--gutter);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet-header strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cad-pane-add .palette section{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.cad-pane-add .palette-fluid button{min-height:var(--touch-target)}.cad-pane-add .palette h3{grid-column:1/-1;margin:8px 0 0}.cad-pane-add .palette-item{width:100%;min-height:var(--touch-target);margin:0}.cad-backdrop{z-index:calc(var(--z-modal) - 1);background:#0000004d;display:block;position:fixed;inset:0}.cad-connect-hint{bottom:72px}.cad-notice{padding:6px var(--gutter);margin:0}}@media not (min-width:640px){.cad-menu{padding:8px var(--gutter) calc(8px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;bottom:0;right:0;top:auto!important;left:0!important}.cad-menu button{min-height:var(--touch-target);font-size:16px}.cad-menu-backdrop{background:#0000004d}}@media (pointer:coarse){.cad-node .react-flow__handle.port{width:18px;height:18px}.cad-node .react-flow__handle.port:after{content:"";position:absolute;inset:-10px}.react-flow__controls-button{width:36px;height:36px}.cad-node{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}@media not (min-width:1024px){.hero{text-align:left;grid-template-columns:minmax(0,1fr);padding:32px 28px}.hero-logo{order:-1}.hero-logo img{max-width:300px}}@media not (min-width:640px){.hero{margin:0 calc(-1 * var(--gutter)) 24px;padding:24px var(--gutter) 28px;border-radius:0}.hero-logo img{max-width:220px}.brand-wordmark{width:104px}}.hero+.home-section{border-top:0;padding-top:0}@media (prefers-color-scheme:dark){.hero{box-shadow:inset 0 0 0 1px #ffffff12,0 20px 50px #0006}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.finder{gap:var(--space-4);display:grid}.finder>header h1{margin:0 0 var(--space-2)}.finder-scope-list{margin:0 0 var(--space-2);padding-left:1.2em}.finder-part-body,.finder-pcd-body{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(200px,300px);align-items:start;display:grid}.finder-fields{gap:var(--space-3);min-width:0;display:grid}.finder-dim{gap:var(--space-1) var(--space-2);grid-template-columns:11em minmax(0,1fr);align-items:center;display:grid}.finder-dim-inputs{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.finder-dim-inputs input{width:8em;min-width:0}.finder-custom-width{gap:var(--space-1);align-items:center;display:inline-flex}.finder-custom-width input{width:5em}.finder-dim .error,.finder-dim .finder-hint{font-size:var(--font-sm);grid-column:2;margin:0}.finder-dim .error,.finder-pcd .error{color:var(--error)}.finder-dim.has-error input{border-color:var(--error)}.finder-radio{gap:var(--space-2) var(--space-4);padding:var(--space-1) 0 0 calc(11em + var(--space-2));flex-wrap:wrap;display:flex}.finder-pcd-switch{gap:var(--space-2);display:grid}.finder-pcd-result{font-weight:600}.finder-filters>*+*{margin-top:var(--space-2)}.finder-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.finder-figure{color:var(--muted);margin:0}.finder-figure svg{width:100%;max-width:300px;height:auto;display:block}.finder-figure figcaption{font-size:var(--font-sm)}.finder-figure .solid{fill:var(--bg);stroke:var(--text);stroke-width:1.5px}.finder-figure .hollow{fill:var(--panel);stroke:var(--text);stroke-width:1.5px}.finder-figure .dashed{fill:none;stroke:var(--muted);stroke-dasharray:4 3}.finder-figure .dim line,.finder-figure .leader{stroke:var(--accent);stroke-width:1.2px}.finder-figure .leader{stroke-dasharray:2 2}.finder-figure .dim circle{fill:var(--accent)}.finder-figure .dim text{fill:var(--text);font-size:9px}.finder-results:focus{outline:none}.finder-result+.finder-result{margin-top:var(--space-5);border-top:1px solid var(--border);padding-top:var(--space-4)}.finder-result h4{margin:var(--space-4) 0 var(--space-1);font-size:var(--font-md)}.finder-table th,.finder-table td{vertical-align:top;text-align:left;white-space:normal}.finder-id,.finder-unmeasured{display:block}.finder-checks{margin:0;padding:0;list-style:none}.finder-check.status-match strong,.finder-check.status-pair-consistent strong{color:var(--computed)}.finder-check.status-mismatch strong,.finder-check.status-conflict strong,.finder-check.status-pair-inconsistent strong{color:var(--error)}.finder-check.status-unknown strong,.finder-check.status-pair-unconfirmed strong{color:var(--estimated)}.finder-stale-results{opacity:.55}.finder-notes{padding-left:1.2em}.finder-disclaimer{border:1px solid var(--border);border-left:4px solid var(--estimated);border-radius:var(--radius);background:var(--panel);padding:var(--space-3) var(--space-4);font-size:var(--font-md)}@media not (min-width:1024px){.finder-part-body,.finder-pcd-body{grid-template-columns:minmax(0,1fr)}.finder-figure svg{max-width:260px}}@media not (min-width:640px){.finder-dim{grid-template-columns:minmax(0,1fr)}.finder-dim .error,.finder-dim .finder-hint{grid-column:1}.finder-radio{padding-left:0}.finder-dim-inputs input{flex:6em}table.cards-on-phone td.finder-checks-cell,table.cards-on-phone td.finder-checks-cell:before{display:block}}.dim-tabs{gap:var(--space-1);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.dim-tabs a{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:6px 10px;text-decoration:none}.dim-tabs a.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.dim-crumbs{margin:0 0 var(--space-2)}.dim-warning{margin:0 0 var(--space-4)}.dim-filter-row{gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;align-items:end;display:flex}.dim-states{gap:var(--space-1);flex-wrap:wrap;display:inline-flex}.dim-state{border:1px solid var(--border);font-size:var(--font-sm);margin-right:var(--space-1);white-space:nowrap;border-radius:999px;padding:1px 8px;display:inline-block}.dim-state.v-verified,.dim-state.p-published,.dim-state.i-create{border-color:var(--computed);color:var(--computed)}.dim-state.v-rejected,.dim-state.a-inactive,.dim-state.i-error{border-color:var(--error);color:var(--error)}.dim-state.v-unverified,.dim-state.i-update{border-color:var(--estimated);color:var(--estimated)}.dim-meta{gap:var(--space-1) var(--space-3);margin:var(--space-3) 0;grid-template-columns:12em minmax(0,1fr);display:grid}.dim-meta dt{color:var(--muted)}.dim-meta dd{min-width:0;margin:0}.dim-blockers{margin:var(--space-1) 0 0;color:var(--error);padding-left:1.2em}.dim-actions{gap:var(--space-2);margin:var(--space-3) 0 var(--space-2);flex-wrap:wrap;display:flex}.dim-form{gap:var(--space-3);display:grid}.dim-form-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.dim-form .field.stacked{gap:var(--space-1);grid-template-columns:minmax(0,1fr);display:grid}.dim-form .field.stacked .error{grid-column:1}.dim-check{margin:var(--space-2) 0;display:block}.dim-revisions{margin:0;padding-left:1.2em}@media not (min-width:640px){.dim-meta{grid-template-columns:minmax(0,1fr)}.dim-meta dd{margin-bottom:var(--space-2)}}.console{--console-bg:#0c0c0c;--console-bar:#1f1f1f;--console-text:#ccc;--console-bright:#f2f2f2;--console-dim:#8a8a8a;--console-success:#16c60c;--console-warning:#f9f1a5;--console-error:#ff6b68;--console-link:#61d6d6;--console-font:Consolas, "Cascadia Mono", "Cascadia Code", "Lucida Console", "BIZ UDGothic", "MS Gothic", "Osaka-Mono", "Noto Sans Mono CJK JP", ui-monospace, Menlo, monospace;background:var(--console-bg);min-width:0;color:var(--console-text);font-family:var(--console-font);border:1px solid #3a3a3a;border-radius:6px;flex-direction:column;margin-bottom:12px;font-size:13px;line-height:1.3;display:flex;overflow:hidden}.console-titlebar{background:var(--console-bar);color:var(--console-bright);flex-wrap:wrap;align-items:center;gap:4px 10px;padding:4px 8px;font-family:Segoe UI,system-ui,sans-serif;font-size:12px;display:flex}.console-icon{border:1px solid var(--console-dim);font-family:var(--console-font);border-radius:2px;padding:0 3px;font-size:10px;line-height:1.2}.console-title{font-weight:600}.console-id{color:var(--console-dim);overflow-wrap:anywhere;min-width:0}.console-id-value{font-family:var(--console-font);color:var(--console-text)}.console-state{font-family:var(--console-font)}.console-state-running{color:var(--console-bright)}.console-state-success{color:var(--console-success)}.console-state-warning{color:var(--console-warning)}.console-state-error{color:var(--console-error)}.console-tools{gap:4px;margin-left:auto;display:flex}.console button{font:inherit;color:inherit;background:0 0;border-color:#4a4a4a}.console-tools button,.console-paused button{color:var(--console-bright);border:1px solid #4a4a4a;border-radius:3px;padding:1px 8px}.console-tools button:hover:not(:disabled),.console-paused button:hover{background:#333}.console-tools button:disabled{color:var(--console-dim);cursor:default}.console-body{text-align:left;scrollbar-color:#5a5a5a var(--console-bg);height:190px;padding:6px 8px 8px;overflow-y:auto}.console-body:focus-visible{outline:1px solid var(--console-dim);outline-offset:-1px}.console-line{white-space:pre-wrap;overflow-wrap:anywhere}.console-command{color:var(--console-bright)}.console-line+.console-command{margin-top:.6em}.console-line.level-info{color:var(--console-text)}.console-line.level-success{color:var(--console-success)}.console-line.level-warning{color:var(--console-warning)}.console-line.level-error{color:var(--console-error);font-weight:600}.console-line.level-debug{color:var(--console-dim)}.console button.console-link{text-align:left;white-space:pre-wrap;min-height:0;font-weight:inherit;cursor:pointer;border:0;border-radius:0;padding:0;display:inline}.console-link-text{text-underline-offset:3px;text-decoration:underline}.console-go{color:var(--console-link);white-space:nowrap;border:1px solid;border-radius:3px;margin-left:.3em;padding:0 .5em;font-weight:400;display:inline-block}:is(.console button.console-link:hover,.console button.console-link:focus-visible){background:#3a1513}:is(.console button.console-link:hover .console-go,.console button.console-link:focus-visible .console-go){background:var(--console-link);border-color:var(--console-link);color:#0c0c0c}.console-paused{background:var(--console-bar);color:var(--console-warning);flex-wrap:wrap;align-items:center;gap:4px 10px;padding:3px 8px;font-size:12px;display:flex}@media (pointer:coarse){.console-tools button,.console-paused button{min-height:36px;padding:4px 12px}.console button.console-link{padding:4px 0}}.field.field-flash,.composition-basis.field-flash{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px;animation:1.1s ease-in-out 2 field-flash}@keyframes field-flash{50%{background:var(--notice-bg)}}@media (prefers-reduced-motion:reduce){.field.field-flash{animation:none}}.cad{grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"toolbar toolbar toolbar""notice notice notice""palette canvas properties""palette console properties"}.cad-console{grid-area:console;min-width:0}.cad-console .console{border-width:1px 0 0;border-radius:0;margin:0}.cad-console .console-body{height:150px}@media not (min-width:1024px){.cad-canvas{flex:1 1 0;min-height:35dvh}.cad-console{flex-direction:column;flex:0 auto;min-height:0;display:flex;overflow:hidden}.cad-console .console{flex:auto;min-height:0}.cad-console .console-body{flex:auto;height:auto;min-height:4em;max-height:22dvh}.cad-notice{max-height:5.5em;overflow-y:auto}.cad-console .console-title{display:none}}.limits-section .card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badge-editable{background:var(--computed-bg);color:var(--computed)}.limits-group h3{margin:16px 0 6px}.limits-table .limit-input{width:8.5em;font-family:var(--mono)}.limits-table tr.limit-custom th:first-child{box-shadow:inset 3px 0 0 var(--accent)}.limit-actions{white-space:nowrap}.limit-actions button+button{margin-left:4px}.limit-extra td{background:var(--bg)}.limit-reason{align-items:center;gap:8px;display:flex}.limit-reason input{flex:1;min-width:0}@media not (min-width:640px){.limit-actions{white-space:normal}.limit-actions button{margin:2px 0}}.kind-diagram{margin:0 0 12px}.kind-diagram svg{width:100%;max-width:440px;height:auto;margin:0 auto;display:block}.kind-diagram text{fill:var(--text);font-size:13px}.kind-diagram .dg-title{font-weight:600}.kind-diagram .dg-dim{fill:var(--muted);font-size:12px}.kind-diagram .dg-flow{stroke:var(--text);stroke-width:2px;fill:none}.kind-diagram .dg-head{fill:var(--text)}.kind-diagram .dg-box{fill:var(--bg);stroke:var(--accent);stroke-width:2px}.kind-diagram .dg-heat{stroke:var(--accent);stroke-width:2px;fill:none}.kind-diagram .dg-heat-head{fill:var(--accent)}.kind-diagram .dg-thin{stroke:var(--muted);stroke-width:1px;fill:none}.reaction-badge{white-space:nowrap;border:1px solid;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-block}.reaction-badge.reaction-none{color:var(--muted)}.reaction-badge.reaction-yes{color:var(--accent)}.kind .reaction-badge{align-self:flex-start;margin:4px 0 2px}.reaction-note{border-radius:var(--radius);background:var(--notice-bg);margin:0 0 12px;padding:8px 10px;font-size:13px}.reaction-note .reaction-badge{margin-right:6px}.result-notes ul{margin:8px 0;padding:0;list-style:none}.result-notes li{background:var(--notice-bg);border-radius:6px;margin:4px 0;padding:6px 10px;font-size:13px}.result-notes li.note-warning{border-left:3px solid var(--warning,#b7791f)}.result-notes li.note-info{color:var(--muted)}.pipe-profile,.stream-summary{margin-top:16px}.stream-summary h4{margin:12px 0 4px;font-size:13px}.cad-dialog-backdrop{z-index:calc(var(--z-modal) - 1);background:#00000059;position:fixed;inset:0}.cad-dialog{z-index:var(--z-modal);border:1px solid var(--border);background:var(--panel);border-radius:10px;flex-direction:column;width:min(880px,100vw - 32px);max-height:90dvh;display:flex;position:fixed;top:5dvh;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0000004d}.cad-dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.cad-dialog-head h2{margin:0;font-size:17px}.cad-dialog-body{flex:1;min-height:0;padding:12px 16px 16px;overflow-y:auto}.cad-dialog-body>.hint{margin-top:0}.curve-import{margin-top:6px}.curve-import textarea{width:100%;font-family:var(--mono);font-size:13px}.curve-import-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.file-button{border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:center;padding:4px 10px;display:inline-flex;position:relative}.file-button input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.file-button:focus-within{outline:2px solid var(--accent);outline-offset:2px}.rr-charts{margin-top:12px}.rr-charts .viz-controls h3{color:var(--text);margin:0;font-size:14px}.rr-charts h4{margin:12px 0 4px}@media (pointer:coarse){.file-button{min-height:var(--touch-target)}}.result-section{border:2px solid var(--computed);background:var(--computed-bg);border-radius:8px;margin:8px 0 16px;padding:10px 12px}.result-section-tag{color:var(--computed);margin:0 0 2px;font-size:15px;font-weight:700}.result-section-note{margin:0 0 6px;font-size:12px}.result-section .node-result{color:var(--text)}.result-section table.kv,.result-section .viz-table-wrap,.result-section details{background:var(--panel)}.key-results th,.key-results td{font-size:14px}.key-results td{font-variant-numeric:tabular-nums;font-weight:700}.inputs-heading{margin:16px 0 4px;font-size:14px}.summary-card{border:2px solid var(--computed);background:var(--computed-bg);border-radius:8px;margin:8px 0;padding:10px 12px}.summary-card h3{color:var(--computed);margin:0 0 4px}.summary-card table.kv{background:var(--panel)}.summary-card button{margin-top:8px}.summary-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;margin:0 0 12px;display:flex}.summary-tabs button{border:1px solid var(--border);background:0 0;border-bottom:none;border-radius:6px 6px 0 0;margin-bottom:-1px;padding:6px 12px}.summary-tabs button[aria-selected=true]{background:var(--panel);box-shadow:inset 0 3px 0 var(--accent);font-weight:700}@media (pointer:coarse){.summary-tabs button{min-height:var(--touch-target)}}.pressure-governing{border-left:4px solid var(--viz-7);background:var(--notice-bg);margin:8px 0;padding:8px 12px}.pressure-path-table tr[aria-current=true] td{background:var(--notice-bg);font-weight:600}.link-button{color:var(--accent);text-align:left;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.pressure-largest{margin-left:6px}.pressure-path-pick{margin:12px 0 8px;display:block}.pressure-path-pick select{width:auto;max-width:100%}.pressure-waterfall{margin-top:8px}.pressure-waterfall .viz-controls h3{color:var(--text);margin:0;font-size:14px}.pressure-waterfall-scroll{overflow-x:auto}.pressure-total-row th,.pressure-total-row td{font-weight:700}@media (pointer:coarse){.link-button{min-height:var(--touch-target)}}.example-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.example-card{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.example-card h3{margin:0;font-size:15px}.example-card p{margin:0;font-size:13px}.example-card details{font-size:13px}.example-card details p{margin-top:4px}.example-card .primary-inline{align-self:flex-start;margin-top:auto}.example-diagram{font-size:12px}.example-diagram>div{margin:2px 0}.example-diagram-branch{padding-left:12px}.example-block{border:1px solid var(--border);background:var(--panel);border-radius:4px;padding:1px 6px;display:inline-block}.saved-list{margin:0;padding:0;list-style:none}.saved-list>li{border-top:1px solid var(--border);padding:10px 0}.saved-network-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.saved-network-head strong{font-size:15px}.saved-results{border-left:3px solid var(--border);margin:6px 0 0;padding:0 0 0 14px;list-style:none}.saved-results li{flex-wrap:wrap;align-items:center;gap:4px 10px;padding:4px 0;font-size:13px;display:flex}.saved-actions{flex-wrap:wrap;gap:6px;display:flex}@media not (min-width:640px){.cad-dialog{width:100%;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;top:auto;bottom:0;left:0;transform:none}.cad-dialog-head,.cad-dialog-body{padding-left:var(--gutter);padding-right:var(--gutter)}}@media (pointer:coarse){.cad-dialog button{min-height:var(--touch-target)}}
