:root{--ice:#54d8ed;--line:rgba(134,174,205,.18)}
html,body{font-family:'Segoe UI Variable','Segoe UI','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased}
.canvas{background:radial-gradient(ellipse at 50% -20%,#16334c 0,transparent 65%),#080f1b}.canvas:before{opacity:.17}
.header{background:linear-gradient(100deg,#0e1928,#07101c);border-bottom-color:var(--line);box-shadow:0 8px 30px #0003}.brand{gap:10px;padding-left:23px}.brand b{font-size:24px}.brand span{font-size:10px;letter-spacing:2px}.mark{flex-shrink:0}.plant{left:40%}.plant b{font-size:25px;letter-spacing:-.5px}.plant span{font-size:11px;letter-spacing:3px}.hdr-right{gap:16px}.stepbar{font-size:15px}.dots{gap:7px}.dots i{width:7px;height:7px}.pill{font-size:13px;padding:9px 13px;border-radius:7px}.live{color:#60e6b5;border-color:#346354;background:#0e2924}.live:before{background:#60e6b5;box-shadow:0 0 12px #60e6b555}.lang{display:flex;border-radius:8px;overflow:hidden}.lang button{cursor:pointer}
.sidebar{background:linear-gradient(180deg,#0c1725,#080f1a);border-color:var(--line)}.nav{padding:25px 12px}.nav button{height:66px;margin:5px 0;border-radius:9px;padding-left:19px;font-size:18px;font-weight:600;color:#99abc0}.nav button.active{background:linear-gradient(100deg,#17415a,#102436);color:#e4faff}.nav button.active:before{width:3px;top:17px;bottom:17px;border-radius:3px}.nav .ico{width:34px;vertical-align:middle;color:#89a9bf}.nav button.active .ico{color:#5cdeef}.ico svg{width:22px;height:22px}.side-ops button{height:44px;font-size:14px;font-weight:600;background:#101f2f;border-color:var(--line)}
.page-head{height:92px;align-items:center;padding-bottom:8px;box-sizing:border-box}.kicker{font-size:11px;letter-spacing:3px;color:#6cd9e9}.page-title{font-size:32px;font-weight:650;letter-spacing:-.7px}.page-sub{font-size:16px;color:#a0b0c3;margin-top:6px}.panel,.card{border-color:var(--line);background:linear-gradient(140deg,#152436dd,#0d1929ef);box-shadow:0 10px 30px #0002,inset 0 1px #ffffff04;border-radius:12px}.panel-kicker{font-size:11px;letter-spacing:2.5px;color:#6cd9e9;margin-bottom:7px}.panel-title{font-size:22px;font-weight:650;letter-spacing:-.3px}.kpi{position:relative;background:linear-gradient(125deg,#172a3d,#101d2d);padding:17px 22px;border-top:2px solid #365a73}.kpi:nth-child(2){border-top-color:#57c8b1}.kpi:nth-child(3){border-top-color:#7c8de0}.kpi:nth-child(5){border-top-color:#d7a65d}.kpi .label{font-size:15px}.kpi .num{font-size:40px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-1px;margin-top:10px}.kpi .unit{font-size:16px}.kpi .meta{font-size:12px;font-weight:600}
.primary{background:linear-gradient(120deg,#51d6e9,#389de2);border:1px solid #6ce0ef77;box-shadow:0 4px 15px #138eb620;color:#041725;height:48px;font-size:15px;font-weight:700;border-radius:8px}.secondary{height:46px;font-size:15px;font-weight:600;border-color:#456078;background:#142537}.primary,.secondary,.nav button,.side-ops button{transition:background .18s,box-shadow .18s,transform .18s}.primary:hover{filter:brightness(1.14);box-shadow:0 5px 24px #40bbdc40;transform:translateY(-1px)}button:active{transform:translateY(1px)}button:focus-visible,[tabindex]:focus-visible{outline:2px solid #c4f5ff;outline-offset:4px}.secondary:hover,.side-ops button:hover{background:#213c51}.badge{font-size:13px;border-radius:7px;padding:10px 14px}.panel p{font-size:16px;line-height:1.55;color:#b0c1d3}.brief h2{font-weight:600;font-size:30px}.impact div{background:#08152277;border:1px solid #90b4cf10}.impact b{font-weight:650;font-variant-numeric:tabular-nums}.script{background:linear-gradient(150deg,#153248,#0d1b2c);border-color:#3b738b66;box-shadow:none}.script small{font-size:10px;letter-spacing:2px}.script p{color:#9eb6cb}.ticker{color:#8ba4ba;background:#08111d;border-color:var(--line);font-size:12px}
.process-panel{background:linear-gradient(180deg,#0b1a29bb,#0b1626f5),url('/assets/smelter-digital-twin-v2.png') center 43%/cover}.process-flow{gap:16px}.stage{height:278px;padding:10px;background:#101e2fe8;border-color:#66839955;transition:transform .2s,border-color .2s}.stage:hover{transform:translateY(-5px);border-color:#72c7da}.stage img{height:138px;filter:saturate(.75) contrast(1.06);border-radius:7px}.stage h3{margin:12px 6px 5px;font-weight:600;font-size:17px}.stage .asset,.stage .metric{margin-left:6px}.stage .metric{font-size:27px;margin-top:8px;font-weight:600;color:#9ee9f3}.status{font-size:10px;padding:5px 7px;background:#0a1528ed;right:16px;top:16px}.stage.current,.stage.warning{box-shadow:none}.arrow{font-size:29px;right:-18px;opacity:.65}.chart svg{overflow:visible}.chart polyline{stroke-width:3;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 4px 7px #3ec8e933)}.chart line{opacity:.35}.ring{width:124px;height:124px;margin:12px auto 4px;box-shadow:0 0 32px #37d67a0b}.ring span{width:108px;height:108px;background:#122133;font-size:36px;font-weight:600}.shift p{margin:7px 0}.t-stage{height:245px;padding:20px}.t-stage h3{font-size:22px;font-weight:600;line-height:1.25}.t-stage .time{font-size:24px}.seq{background:#23445b;font-weight:600}.rec h2{font-weight:600}.workflow{background:#07142266;border-radius:9px}.wf-row b{font-weight:600}.materials{margin-top:22px;gap:18px}.mat{padding:19px 14px}.mat img{height:94px;filter:saturate(.7)}.recipe-row{margin:28px 0;font-size:16px}.bar{height:12px}.recipe-row:nth-child(2) .bar i{background:#9b96ec}.recipe-row:nth-child(3) .bar i{background:#dfa959}.recipe-row:nth-child(4) .bar i{background:#66c8ac}.constraint{padding:17px 14px;border:1px solid #7796b814;background:#0b1929}.constraint b{font-weight:600}.three{grid-template-columns:420px minmax(0,1fr) 375px}.three>.h620{height:746px}.powerflow{height:345px}.grid-node{left:8px;top:115px;width:190px;height:135px;box-sizing:border-box;padding:22px}.grid-node b{font-size:29px}.flow-node{box-sizing:border-box;width:285px;height:115px;left:280px!important}.flow-node:nth-of-type(4),.flow-node:nth-of-type(6){left:610px!important}.flow-node:nth-of-type(5),.flow-node:nth-of-type(6){top:220px!important}.flow-node b{font-size:29px}.flow-node span{margin-top:0;margin-bottom:12px}.energy-line{left:196px;right:65px;top:180px;opacity:.65}.powerflow+.panel-title+.chart{height:136px;margin-top:14px}.site-map{background:radial-gradient(ellipse at 65% 35%,#1b3345,#0c1a27);box-shadow:inset 0 0 60px #0004}.site-map:before{opacity:.35}.road{background:#344b5b;border-top:1px solid #91adc333;border-bottom:1px solid #91adc333}.road:after{content:'';position:absolute;left:0;right:0;top:50%;border-top:2px dashed #c7d5dd35}.node{background:linear-gradient(135deg,#213b4d,#122738);border-color:#607f9766;box-shadow:0 6px 14px #0003;font-size:15px}.node span{font-size:13px;font-weight:500}.route-line{filter:drop-shadow(0 0 4px #e0d98266)}.truck{border:2px solid #ffe4a4;box-shadow:0 0 0 9px #ffb02015,0 0 20px #ffb02044}.vehicle-grid div{border-color:var(--line)}.vehicle-grid b{font-weight:600;font-size:15px}.drawer{background:linear-gradient(150deg,#182e42,#0a1728);border-color:#587c92}.toast{background:#16382f;border-color:#5bab87;box-shadow:0 12px 35px #0006}.toast b{color:#8de6bc}.content{animation:arrive .32s ease-out}@keyframes arrive{from{opacity:.65;translate:0 6px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
:root .script{box-sizing:border-box;width:184px!important}
.brief .impact b{font-size:24px;white-space:nowrap}
.rec:has(.workflow){padding:20px}.rec:has(.workflow)>p{font-size:14px;line-height:1.4;margin:8px 0}.rec:has(.workflow) .impact{margin:12px 0}.rec:has(.workflow) .impact div{padding:10px}.rec:has(.workflow) .wf-row{margin:7px 0!important}.rec:has(.workflow) .decision{padding:6px 10px!important}.rec:has(.workflow) .trail{font-size:11px!important;margin:4px 0!important}
.h300{box-sizing:border-box}.rec:has(.vehicle-grid){padding:20px}.vehicle-grid{margin-top:12px}.vehicle-grid div{padding:10px}.rec:has(.vehicle-grid) .constraint{margin-top:14px!important;padding:12px}
.flow-node:after{content:'';position:absolute;left:50%;height:14px;width:2px;background:#54d8ed88;bottom:-14px}.flow-node:nth-of-type(5):after,.flow-node:nth-of-type(6):after{top:-42px;height:42px;bottom:auto}
