.metal-layout{display:grid;grid-template-columns:250px minmax(0,1fr) 300px;max-width:1900px;margin:auto}.ore-inventory,.furnace-controls{background:#fff;padding:22px 18px}.ore-inventory{border-right:1px solid var(--line)}.furnace-controls{border-left:1px solid var(--line)}.metal-workspace{padding:24px;min-width:0}.small-note{font-size:12px;color:var(--muted);line-height:1.6;margin:12px 0}.ore-button{display:grid;grid-template-columns:40px 1fr;gap:4px 9px;text-align:left;width:100%;margin-top:9px;padding:10px;min-height:76px}.ore-button[aria-pressed="true"]{background:#edf5f3;border-color:var(--teal)}.ore-button svg{grid-row:1/3;width:40px;height:44px}.ore-button strong{font-size:12px}.ore-button small{font-size:11px;color:var(--muted)}.subheading{margin-top:24px}#ore-assay{font-size:11px;gap:8px 4px}#charge-form{margin-top:18px}.furnace-scene{background:#f8fafb;border-bottom:3px solid #82929b;margin-top:18px}.furnace-scene svg{display:block;width:100%;height:auto;max-height:460px}.diagram-labels{font:12px "Segoe UI",sans-serif;fill:#455e6b}.diagram-labels path{stroke:#82929b;fill:none}.flow{fill:none;stroke-width:4;stroke-dasharray:9 7;opacity:.15}.flow.water{stroke:#218cc0}.flow.air{stroke:#278d88}.flow.gas{stroke:#a5a4a0}.cooling-on .water,.blast-on .air,.extraction-on .gas{opacity:1;animation:flow 1s linear infinite}.running #hot-zone{transition:opacity .3s}.metal-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metal-metrics strong{font-size:21px}.metal-section{padding:22px 0;border-bottom:1px solid var(--line)}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;margin-top:14px;text-align:left;white-space:nowrap}th,td{border-bottom:1px solid var(--line);padding:10px 7px}th{font-weight:600;color:var(--muted)}td button{min-height:30px;padding:2px 9px;font-size:18px}.cycle{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin-top:16px}progress{display:block;width:100%;height:12px;accent-color:var(--teal);margin:12px 0 16px}.cycle-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cycle-actions .primary{width:auto}.cycle-actions label{display:flex;align-items:center;margin:0;gap:8px}.cycle-actions select{width:80px}.reaction{font-size:16px;color:#126b63;line-height:1.6;margin:14px 0}.metal-section dl{font-size:12px}.model-info{margin-top:20px;line-height:1.7;font-size:12px;color:var(--muted)}.model-info summary{color:#354e5c;cursor:pointer}.model-info p{margin:12px 0}.furnace-controls fieldset{border:0;border-top:1px solid var(--line);padding:18px 0 0;margin:22px 0 0}.furnace-controls legend{font-size:13px;font-weight:600;padding:0 6px 0 0}.furnace-controls .switch{display:flex;align-items:center;gap:9px;color:#202b30}.switch input{width:17px;min-height:17px;height:17px;accent-color:var(--teal)}.interlocks{font-size:12px;line-height:1.8;color:#647078;border-top:1px solid var(--line);padding-top:16px}.interlocks .ok{color:#126b63}.metal-layout input:disabled{background:#f1f3f4}.metal-layout .topbar{gap:10px}#metal-report-dialog{border:1px solid var(--line);border-radius:6px;width:min(560px,calc(100% - 24px));max-height:90vh;padding:24px}#metal-report-dialog::backdrop{background:#202b3070}#metal-report-form{margin:0;border:0;padding:0}#metal-report-error{color:#a13e32;font-size:12px}@keyframes flow{to{stroke-dashoffset:-32}}@media(prefers-reduced-motion:reduce){.flow{animation:none!important}}
@media(max-width:1150px){.metal-layout{grid-template-columns:220px minmax(0,1fr)}.furnace-controls{grid-column:1/-1;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.furnace-controls>h2,.interlocks{grid-column:1/-1}.metal-workspace{padding:20px}}
@media(max-width:650px){.metal-layout{display:block}.ore-inventory{border-right:0;border-bottom:1px solid var(--line);padding:18px 16px}#ore-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ore-button{margin:0;grid-template-columns:1fr;gap:4px;padding:9px;min-height:100px}.ore-button svg{display:none}.ore-button strong{font-size:12px}.metal-workspace{padding:18px 14px}.metal-metrics{grid-template-columns:1fr 1fr}.furnace-controls{display:block;padding:22px 16px}.cycle-actions{display:grid;grid-template-columns:1fr 1fr}.cycle-actions button{font-size:12px;padding:8px 6px}.diagram-labels{font-size:12px}.reaction{font-size:14px}dl{grid-template-columns:minmax(0,1fr) auto}.topbar .header-actions button{font-size:12px}.brand h1{font-size:21px}}

/* WJ-02 instrumented operator station. */
.furnace-scene{background:#14232d;border:1px solid #38505e;border-radius:12px;overflow:hidden}
.furnace-scene svg{max-height:none}
.zone-labels{font:13px "Segoe UI",sans-serif;fill:#cfdee6}
.zone-labels path{stroke:#718a98;stroke-dasharray:3 4;fill:none}
.sensor-callouts{font:12px "Segoe UI",sans-serif;fill:#a8c4d2}
.sensor-callouts path{stroke:#e9a650;fill:none}
.sensor-callouts circle{fill:#ffc56f;stroke:#172833;stroke-width:2}
.sensor-callouts .svg-reading{font-size:18px;font-weight:700;fill:#ffd19a}
.furnace-aura,.molten-ripple{opacity:0;transition:opacity .6s}
.molten .furnace-aura{opacity:1}.molten .molten-ripple{opacity:.85;animation:wj-shimmer 2s ease-in-out infinite alternate}
.running #hot-zone{transition:fill .4s,opacity .4s}
.sensor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}
.sensor-grid>div{background:#edf3f5;border:1px solid #d5e1e5;padding:10px;border-radius:6px;min-width:0}
.sensor-grid span{font-size:10px;color:#4e6876;display:block;line-height:1.4}
.sensor-grid strong{font-size:18px;display:block;margin-top:5px;font-variant-numeric:tabular-nums}
.phase-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;list-style-position:inside;padding:0;margin:18px 0}
.phase-list li{padding:10px;background:#eef2f4;border:1px solid #d7e0e4;border-radius:5px;color:#5e707b;font-size:12px;line-height:1.5}
.phase-list .active{background:#fff0df;border-color:#dc7635;color:#81360c;font-weight:700}
.phase-list .done{background:#eaf4ee;color:#276c4b;border-color:#b5d7c3}
#phase-log{max-height:220px;overflow:auto;font-size:12px;line-height:1.7}
.cycle-actions{align-items:flex-end}.cycle-actions label{display:grid;font-size:11px;gap:5px}
.cycle-actions input{width:95px}.cycle-actions select{width:85px}
.chart-key{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;margin-top:12px}
.bath-key{color:#b63819}.tuyere-key{color:#96610a}.shaft-key{color:#196c66}
#thermal-chart{display:block;width:100%;height:auto;margin-top:12px;font:11px "Segoe UI",sans-serif;fill:#5b6d77}
.process-alerts{font-size:12px;line-height:1.6;padding:12px;background:#fff6e9;border-radius:5px;margin-top:14px;color:#7f4a14}
.wj-assistant{border:1px solid #b8cec8;border-radius:8px;background:#f1f8f5;padding:14px;margin:22px 0}
.wj-assistant p{font-size:12px;line-height:1.6;margin:10px 0;overflow-wrap:anywhere}
.wj-assistant button{width:100%;margin:5px 0;font-size:12px}
.metal-section dl{grid-template-columns:minmax(0,1fr) minmax(100px,45%);line-height:1.5;gap:10px 12px}
.metal-section dd{text-align:right;overflow-wrap:anywhere}
@keyframes wj-shimmer{from{opacity:.4}to{opacity:1}}
@media(max-width:1150px){.furnace-controls>form,.furnace-controls>.wj-assistant{min-width:0}.furnace-controls>fieldset{min-width:0}}
@media(max-width:650px){.sensor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-grid strong{font-size:16px}.phase-list{grid-template-columns:repeat(2,minmax(0,1fr))}.cycle{flex-direction:column}.cycle-actions input,.cycle-actions select{width:100%}.cycle-actions label{min-width:0}.metal-section dl{font-size:11px;grid-template-columns:minmax(0,1fr) minmax(100px,42%)}.furnace-scene{overflow-x:auto}.furnace-scene svg{min-width:650px}}
@media(prefers-reduced-motion:reduce){.molten-ripple{animation:none!important}.running #hot-zone{transition:none}}
.furnace-scene{overflow-x:auto}.furnace-scene svg{min-width:600px}
@media(max-width:650px){.metal-layout{display:flex;flex-direction:column}.ore-inventory{order:0}.furnace-controls{order:1}.metal-workspace{order:2}}
