:root{color:#20282a;font-synthesis:none;text-rendering:optimizelegibility;letter-spacing:0;background:#edf0ee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer}:root{--ink:#20282a;--muted:#687477;--line:#d6dcda;--surface:#fff;--surface-soft:#f6f8f7;--sidebar:#202b2c;--sidebar-soft:#2b3839;--teal:#087f72;--teal-dark:#05665d;--green-soft:#e7f5ed;--green:#25764c;--amber-soft:#fff4d6;--amber:#815d00;--red-soft:#fdeaea;--red:#a12e2e}h1,h2,p{margin:0}h1{font-size:24px;font-weight:700;line-height:1.2}h2{font-size:16px;font-weight:700;line-height:1.3}.loading{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-weight:600;display:flex}.login-shell{background-color:#e9eeec;background-image:linear-gradient(90deg,#202b2c0b 1px,#0000 1px),linear-gradient(#202b2c0b 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:28px 28px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:var(--surface);border:1px solid var(--line);border-radius:6px;width:min(420px,100%);padding:30px;box-shadow:0 18px 50px #1a25261f}.brand-mark,.sidebar-brand{align-items:center;display:flex}.brand-mark{border-bottom:1px solid var(--line);padding-bottom:22px}.brand-mark img{width:190px;max-width:62%;height:auto}.login-copy{padding:28px 0 24px}.login-copy h1{margin:5px 0 8px}.login-copy>p:last-child,.login-footnote{color:var(--muted);font-size:13px}.login-footnote{text-align:center;margin-top:18px}.eyebrow{color:var(--teal);letter-spacing:.08em;font-size:11px;font-weight:800}.form-stack,.form-grid{gap:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.nested{padding-top:4px}.form-grid .wide{grid-column:1/-1}label{color:#465153;gap:6px;font-size:12px;font-weight:700;display:grid}input,select{width:100%;min-height:42px;color:var(--ink);background:#fff;border:1px solid #c9d1cf;border-radius:4px;outline:none;padding:9px 11px}input:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #087f721f}fieldset{border:1px solid var(--line);border-radius:5px;margin:2px 0 0;padding:14px}legend{color:var(--muted);text-transform:uppercase;padding:0 7px;font-size:11px;font-weight:800}.button{border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:8px 14px;font-size:13px;font-weight:750;display:inline-flex}.button.primary{color:#fff;background:var(--teal)}.button.primary:hover{background:var(--teal-dark)}.button.secondary{color:var(--ink);background:var(--surface);border-color:var(--line)}.button.secondary:hover{background:var(--surface-soft);border-color:#9eaaa7}.form-actions{justify-content:flex-end;display:flex}.app-shell{grid-template-columns:238px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{z-index:20;background:var(--sidebar);color:#eaf0ee;flex-direction:column;width:238px;padding:20px 14px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-brand{border-bottom:1px solid #ffffff1a;height:58px;padding:0 10px 18px}.sidebar-brand img{filter:brightness(0)invert();width:158px;max-width:100%;height:auto}.sidebar nav{gap:4px;margin-top:18px;padding-right:3px;display:grid;overflow-y:auto}.nav-item{color:#bdc8c6;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:11px;min-height:42px;padding:0 11px;font-size:13px;font-weight:650;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;background:var(--teal)}.nav-group{gap:4px;display:grid}.nav-group-trigger{width:100%}.nav-group-trigger .nav-chevron{margin-left:auto;transition:transform .18s}.nav-group-trigger .nav-chevron.open{transform:rotate(180deg)}.nav-subitems{gap:4px;padding-left:18px;display:grid}.nav-subitem{min-height:38px;padding-left:10px;font-size:12px}.nav-subitem:not(.active){color:#aab7b5}.nav-subitem.active{background:#0b6e64}.sidebar-user{border-top:1px solid #ffffff1a;grid-template-columns:34px minmax(0,1fr) 32px;align-items:center;gap:9px;margin-top:auto;padding:16px 7px 0;display:grid}.sidebar-user strong,.sidebar-user small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-user strong{font-size:12px}.sidebar-user small{color:#9dacab;margin-top:2px;font-size:10px}.avatar{color:#dff8f3;background:#385051;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-weight:800;display:grid}.workspace{grid-column:2;min-width:0;padding:0 30px 36px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:88px;margin-bottom:24px;display:flex}.topbar h1{margin-top:3px}.icon-button{border:1px solid var(--line);color:#4d5a5b;background:#fff;border-radius:4px;place-items:center;width:34px;height:34px;padding:0;display:grid}.icon-button:hover{color:var(--teal);border-color:#aebbb8}.icon-button.dark{color:#b8c4c2;background:0 0;border:0}.menu-button{display:none}.content-stack{gap:20px;display:grid}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric{border:1px solid var(--line);background:var(--surface);border-radius:5px;justify-content:space-between;align-items:flex-start;min-height:104px;padding:18px;display:flex}.metric span{color:var(--muted);font-size:12px;display:block}.metric strong{margin-top:10px;font-size:27px;line-height:1;display:block}.metric>svg{color:var(--teal)}.bi-dashboard{gap:14px;min-width:0;display:grid}.bi-filterbar{border:1px solid var(--line);background:var(--surface);border-top:3px solid #d08b21;border-radius:5px;grid-template-columns:minmax(230px,1fr) repeat(3,minmax(150px,190px)) auto;align-items:end;gap:10px;min-height:72px;padding:11px 13px;display:grid}.bi-filter-title{min-height:42px;color:var(--teal-dark);align-items:center;gap:10px;display:flex}.bi-filter-title>div{min-width:0}.bi-filter-title strong,.bi-filter-title span{display:block}.bi-filter-title strong{color:var(--ink);font-size:14px}.bi-filter-title span{color:var(--muted);margin-top:3px;font-size:10px}.bi-filterbar label{text-transform:uppercase;gap:4px;font-size:10px}.bi-filterbar select{text-transform:none;min-height:38px;padding:7px 30px 7px 9px;font-size:11px}.bi-live{min-height:38px;color:var(--muted);white-space:nowrap;align-items:center;gap:7px;padding:0 8px;font-size:10px;font-weight:750;display:flex}.bi-live>span{background:#249064;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #24906421}.bi-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;display:grid}.bi-metric{border:1px solid var(--line);border-left:4px solid var(--teal);background:var(--surface);border-radius:5px;min-width:0;min-height:112px;padding:14px}.bi-metric.blue{border-left-color:#4f7490}.bi-metric.green{border-left-color:#2d7a4d}.bi-metric.amber{border-left-color:#d08b21}.bi-metric-head{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;display:flex}.bi-metric-head span{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;font-size:10px;font-weight:800;overflow:hidden}.bi-metric-head svg{color:currentColor;flex:none}.bi-metric>strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin-top:15px;font-size:21px;line-height:1;display:block;overflow:hidden}.bi-metric>small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:9px;font-size:10px;display:block;overflow:hidden}.bi-chart-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:14px;min-width:0;display:grid}.bi-visual{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:330px;padding:16px;display:grid}.bi-visual-head{justify-content:space-between;align-items:flex-start;gap:10px;min-height:45px;display:flex}.bi-visual-head span{color:var(--teal);font-size:9px;font-weight:850}.bi-visual-head h2{margin-top:4px;font-size:14px}.bi-visual-head svg{color:var(--muted)}.bi-chart-area{min-width:0;height:255px}.bi-donut-wrap{min-width:0;height:205px;position:relative}.bi-donut-wrap>div:last-child{pointer-events:none;text-align:center;place-content:center;display:grid;position:absolute;inset:0}.bi-donut-wrap>div:last-child strong,.bi-donut-wrap>div:last-child span{display:block}.bi-donut-wrap>div:last-child strong{color:var(--ink);font-size:25px}.bi-donut-wrap>div:last-child span{color:var(--muted);text-transform:uppercase;margin-top:3px;font-size:9px}.bi-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;display:grid}.bi-legend span{min-width:0;color:var(--muted);grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:6px;font-size:10px;display:grid}.bi-legend i{border-radius:2px;width:8px;height:8px}.bi-legend b{color:var(--ink)}.bi-empty{color:#899395;place-content:center;justify-items:center;gap:10px;min-height:230px;font-size:11px;display:grid}.bi-health{border:1px solid var(--line);background:var(--surface);border-radius:5px;grid-template-columns:repeat(4,minmax(0,1fr));min-height:74px;padding:0 10px;display:grid}.bi-health>div{border-right:1px solid #e6ebe9;align-items:center;gap:10px;min-width:0;padding:12px;display:flex}.bi-health>div:last-child{border-right:0}.bi-health-icon{border-radius:4px;flex:none;place-items:center;width:36px;height:36px;display:grid}.bi-health-icon.ok{color:#25764c;background:#e7f5ed}.bi-health-icon.warning{color:#815d00;background:#fff4d6}.bi-health-icon.danger{color:#a12e2e;background:#fdeaea}.bi-health-icon.neutral{color:#37667c;background:#e5f0f5}.bi-health p{min-width:0;color:var(--muted);font-size:10px}.bi-health strong{color:var(--ink);margin-top:4px;font-size:18px;display:block}.bi-production-table .status{text-transform:none}.status.production-completed{color:var(--green);background:var(--green-soft)}.status.production-inproduction{color:#087f72;background:#e0f3ef}.status.production-awaitingproduction,.status.production-received{color:var(--amber);background:var(--amber-soft)}.status.production-failed{color:var(--red);background:var(--red-soft)}.status.production-cancelled{color:#596466;background:#e9edec}.panel{border:1px solid var(--line);background:var(--surface);border-radius:5px}.table-panel,.form-panel{min-width:0;padding:19px}.section-heading{justify-content:space-between;align-items:flex-start;gap:12px;min-height:42px;margin-bottom:17px;display:flex}.section-heading h2{margin-top:4px}.section-heading>svg{color:var(--teal)}.count-badge{color:#435050;background:#edf1f0;border-radius:12px;place-items:center;min-width:28px;height:24px;padding:0 7px;font-size:11px;font-weight:800;display:grid}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{color:#758083;background:var(--surface-soft);text-transform:uppercase;text-align:left;font-size:10px}th,td{white-space:nowrap;border-bottom:1px solid #e5e9e7;height:43px;padding:8px 10px}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;height:92px;color:var(--muted)}.status{border-radius:3px;align-items:center;min-height:23px;padding:3px 8px;font-size:10px;font-weight:800;display:inline-flex}.status.valid{color:var(--green);background:var(--green-soft)}.status.standby{color:var(--amber);background:var(--amber-soft)}.approval{color:var(--green);align-items:center;gap:5px;font-weight:800;display:inline-flex}.split-layout{grid-template-columns:minmax(420px,.9fr) minmax(500px,1.1fr);align-items:start;gap:18px;display:grid}.notice{border:1px solid;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin:0 0 18px;padding:8px 8px 8px 13px;font-size:12px;font-weight:650;display:flex}.notice.success{color:var(--green);background:var(--green-soft);border-color:#bbddc9}.notice.error{color:var(--red);background:var(--red-soft);border-color:#efc5c5}.notice .icon-button{color:currentColor;background:0 0;border:0}.integration-grid{gap:10px;display:grid}.integration-row{align-items:center;gap:14px;min-height:82px;padding:16px;display:flex}.integration-icon,.plant-symbol{border-radius:5px;flex:none;place-items:center;width:42px;height:42px;display:grid}.integration-icon.auth{color:#19623e;background:#e6f3ea}.integration-icon.sinmes{color:#8a5c06;background:#fff1d1}.integration-icon.sync{color:#316177;background:#e4f0f5}.integration-info{flex:1;min-width:0}.integration-info>div{align-items:center;gap:9px;display:flex}.integration-info p{color:var(--muted);margin-top:7px;font-size:12px}.plant-list{display:grid}.plant-row{border-top:1px solid #e5e9e7;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:68px;display:grid}.plant-symbol{color:var(--teal-dark);background:#e2f1ee}.plant-row strong,.plant-row span{display:block}.plant-row strong{font-size:13px}.plant-row div>span{color:var(--muted);margin-top:3px;font-size:11px}.scrim{display:none}.automation-layout{gap:18px;min-width:0;display:grid}.plc-configuration-hero{border:1px solid var(--line);border-left:6px solid var(--teal);background:#fff;border-radius:5px;justify-content:space-between;align-items:center;gap:24px;min-height:142px;padding:24px;display:flex}.plc-configuration-hero h2{margin-top:5px;font-size:28px}.plc-configuration-hero p:not(.eyebrow){color:var(--muted);margin-top:9px;font-size:13px}.plc-config-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.plc-config-card{grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:94px;padding:16px;display:grid}.plc-config-card>svg{color:var(--teal)}.plc-config-card span,.plc-config-card strong{display:block}.plc-config-card span{color:var(--muted);font-size:11px}.plc-config-card strong{color:var(--ink);margin-top:5px;font-size:15px}.plc-config-card small{color:var(--teal-dark);text-align:right;font-size:10px;font-weight:850}.plc-management-layout{gap:16px;display:grid}.plant-capacity{border-left:1px solid var(--line);min-width:126px;padding-left:22px}.plant-capacity strong,.plant-capacity span{display:block}.plant-capacity strong{color:var(--teal-dark);font-size:28px}.plant-capacity span{color:var(--muted);text-transform:uppercase;margin-top:3px;font-size:10px;font-weight:800}.plant-management-grid{grid-template-columns:minmax(300px,.72fr) minmax(420px,1.28fr);align-items:start;gap:16px;display:grid}.plant-list-column,.plant-forms-column{gap:12px;display:grid}.plant-forms-column{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.plant-card{border-left:4px solid #0000;grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:10px;min-height:92px;padding:12px;display:grid}.plant-card.selected{border-left-color:var(--teal)}.plant-card-main{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:5px;padding:3px;display:grid}.plant-card-main strong,.plant-card-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plant-card-main strong{font-size:15px}.plant-card-main small{color:var(--muted);font-size:11px}.gateway-form{border-top:4px solid var(--teal)}.field-error{color:#a33b31;margin:0;font-size:11px;line-height:1.45}.plc-connection-grid{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:start;gap:16px;display:grid}.plc-connection-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.plc-connection-card{gap:16px;padding:18px;display:grid}.plc-connection-head{gap:3px;display:grid}.plc-connection-head strong{font-size:17px}.plc-connection-head small{color:var(--muted);font-size:11px}.connection-state{color:var(--muted);text-transform:uppercase;justify-self:start;align-items:center;gap:6px;font-size:10px;font-weight:850;display:inline-flex}.connection-state i{background:#8c9697;border-radius:50%;width:7px;height:7px}.connection-state.active{color:#167153}.connection-state.active i{background:#2ea77e;box-shadow:0 0 0 3px #2ea77e1f}.plc-connection-card dl{gap:10px;margin:0;display:grid}.plc-connection-card dl div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.plc-connection-card dt{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.plc-connection-card dd{color:var(--ink);text-align:right;margin:0;font-size:11px;font-weight:750}.plc-form{position:sticky;top:16px}.toggle-field,.inline-toggle{flex-direction:row;align-items:center;gap:9px;display:flex}.toggle-field input,.inline-toggle input{width:17px;height:17px;accent-color:var(--teal);margin:0}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#121f20b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{background:#fff;border-radius:6px;width:min(430px,100%);padding:28px;position:relative;box-shadow:0 24px 70px #00000047}.modal-panel>p:not(.eyebrow){color:var(--muted);margin:9px 0 22px;font-size:13px;line-height:1.55}.modal-panel h2{margin-top:5px;font-size:22px}.modal-close{position:absolute;top:14px;right:14px}.privileged-icon{color:#fff;background:var(--teal);border-radius:5px;place-items:center;width:46px;height:46px;margin-bottom:18px;display:grid}.users-layout{grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr);align-items:start;gap:16px;display:grid}.user-create-panel{position:sticky;top:16px}.table-subtext{color:var(--muted);margin-top:3px;font-size:10px;display:block}.inline-toggle{min-width:78px;font-size:11px;font-weight:750}.button.compact{min-height:32px;padding:6px 11px;font-size:11px}.security-layout{grid-template-columns:repeat(2,minmax(0,480px));align-items:start;gap:16px;display:grid}.security-status-panel,.mfa-setup-panel{gap:18px;display:grid}.mfa-state{min-height:76px;color:var(--amber);background:var(--amber-soft);border:1px solid #ead7a5;border-radius:5px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:12px;padding:14px;display:grid}.mfa-state.enabled{color:var(--green);background:var(--green-soft);border-color:#bbddc9}.mfa-state strong,.mfa-state span{display:block}.mfa-state strong{color:var(--ink);font-size:14px}.mfa-state span{color:var(--muted);margin-top:4px;font-size:11px;line-height:1.5}.mfa-qr{border:1px solid var(--line);background:#fff;border-radius:5px;place-items:center;min-height:212px;padding:16px;display:grid}.mfa-key{gap:7px;min-width:0;display:grid}.mfa-key span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.mfa-key code{overflow-wrap:anywhere;color:var(--ink);background:var(--surface-soft);border-radius:4px;padding:10px;font-size:12px;line-height:1.5}.plc-config-panels{grid-template-columns:repeat(3,minmax(0,1fr))}.plc-reserve-copy{align-content:center;gap:10px;min-height:160px;display:grid}.plc-reserve-copy strong{color:var(--teal-dark);font-size:22px}.plc-reserve-copy p{max-width:36ch;color:var(--muted);font-size:12px;line-height:1.6}.operation-layout{padding-bottom:10px}.operation-layout .hmi-command-strip{border-top-color:#e39b24}.automation-production-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-height:82px;display:grid}.automation-production-summary>div{border:1px solid var(--line);border-left:4px solid var(--teal);background:var(--surface);border-radius:5px;min-width:0;padding:14px}.automation-production-summary strong,.automation-production-summary span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.automation-production-summary strong{color:var(--ink);margin-top:6px;font-size:16px}.automation-production-summary span{color:var(--muted);margin-top:5px;font-size:11px}.automation-command-strip{border:1px solid var(--line);background:var(--surface);border-radius:5px;align-items:center;gap:12px;min-height:72px;padding:14px;display:flex}.automation-command-strip>div:first-child{min-width:240px;margin-right:auto}.segmented-control{border:1px solid var(--line);background:var(--surface-soft);border-radius:4px;gap:3px;min-height:40px;padding:3px;display:inline-flex}.segmented-control button{color:#586365;background:0 0;border:0;border-radius:3px;justify-content:center;align-items:center;gap:7px;min-width:118px;font-size:12px;font-weight:800;display:inline-flex}.segmented-control button.active{color:#fff;background:var(--teal)}.plant-overview{border:1px solid var(--line);background:#f8faf9;border-radius:5px;gap:16px;padding:18px;display:grid}.aggregate-bank{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.aggregate-bin{background:linear-gradient(#fff,#eef3f1);border:1px solid #cbd5d2;border-radius:5px;grid-template-rows:auto 1fr auto;gap:12px;min-height:184px;padding:13px;display:grid}.bin-head{align-items:center;gap:9px;display:flex}.bin-head svg{color:var(--teal)}.bin-head strong,.bin-head span{display:block}.bin-head strong{font-size:13px}.bin-head span{color:var(--muted);margin-top:2px;font-size:11px}.bin-body{background:#ffffff9e;border:1px dashed #b7c4c1;border-radius:4px;align-content:center;min-height:70px;padding:12px;display:grid}.bin-body span{font-size:22px;font-weight:800}.bin-body small{color:var(--muted);margin-top:4px;font-size:11px}.gate-row{grid-template-columns:1fr 1fr;gap:7px;display:grid}.gate{color:#536062;background:#fff;border:1px solid #aeb8b5;border-radius:4px;min-height:36px;font-size:12px;font-weight:850}.gate.open{color:#fff;border-color:var(--teal-dark);background:var(--teal);box-shadow:0 0 0 3px #087f721f}.process-line{grid-template-columns:minmax(280px,1fr) 160px 190px;align-items:stretch;gap:10px;display:grid}.weigh-box,.machine{background:#fff;border:1px solid #cbd5d2;border-radius:5px;min-height:74px}.weigh-box{justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.weigh-box>div{align-items:center;gap:10px;display:flex}.weigh-box svg{color:var(--teal)}.weigh-box span{color:var(--muted);font-size:12px;font-weight:800}.machine{color:#4c595b;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:850;display:inline-flex}.machine.active{color:#fff;border-color:var(--teal-dark);background:var(--teal)}.supply-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.process-unit{background:#fff;border:1px solid #cbd5d2;border-radius:5px;gap:12px;min-height:112px;padding:13px;display:grid}.process-unit>div{align-items:center;gap:10px;display:flex}.process-unit svg{color:var(--teal)}.process-unit strong,.process-unit span{display:block}.process-unit strong{font-size:13px}.process-unit span{color:var(--muted);margin-top:3px;font-size:11px}.process-unit.active{border-color:#087f728c;box-shadow:inset 0 0 0 2px #087f721a}.automation-panels{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.io-panel{min-width:0;padding:16px}.signal-list,.io-list,.cycle-summary{gap:9px;display:grid}.signal-row{color:#526062;grid-template-columns:12px minmax(0,1fr) 34px;align-items:center;gap:8px;min-height:32px;font-size:11px;display:grid}.signal-row strong{color:var(--ink);text-align:right;font-size:10px}.signal-led{background:#cbd2d0;border-radius:50%;width:10px;height:10px;box-shadow:inset 0 0 0 1px #a9b2af}.signal-led.on{background:#18a36f;box-shadow:0 0 0 3px #18a36f1f}.io-row{border-bottom:1px solid #e7ecea;grid-template-columns:82px minmax(0,1fr);gap:9px;min-height:36px;padding:8px 0;font-size:11px;display:grid}.io-row:last-child{border-bottom:0}.io-row strong{color:var(--teal-dark)}.io-row span,.cycle-summary p{color:var(--muted)}.cycle-summary p{font-size:12px}.cycle-summary strong{color:var(--ink)}.hmi-command-strip{background:linear-gradient(#fff,#f9fbfa);border-top:3px solid #f7941e;gap:10px;box-shadow:0 8px 26px #20282a0f}.hmi-command-strip .hmi-title{min-width:280px}.hmi-command-strip h2{font-size:24px}.scene-field,.formula-field,.volume-field{align-self:stretch;gap:5px;min-width:210px}.scene-field{min-width:190px}.scene-field select,.formula-field select,.volume-field input{min-height:36px}.volume-field{min-width:170px;max-width:190px;position:relative}.volume-field input{padding-right:34px}.volume-field span{color:var(--ink);font-size:12px;font-weight:850;position:absolute;bottom:9px;right:10px}.hmi-meters{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.meter-card{border:1px solid var(--line);border-top:4px solid var(--meter);background:#fff;border-radius:5px;align-content:start;min-height:104px;padding:12px;display:grid;box-shadow:0 8px 22px #20282a0d}.meter-card.orange{--meter:#f28c18}.meter-card.slate{--meter:#758892}.meter-card.blue{--meter:#1fa3d5}.meter-card.violet{--meter:#c23bc8}.meter-card span{color:#4a575a;font-size:12px;font-weight:850}.meter-card strong{color:#152023;margin-top:8px;font-size:29px;line-height:1}.meter-card small{color:#5e6b6e;margin-top:5px;font-size:11px;font-weight:750}.meter-card i{background:#dfe5e3;border-radius:999px;height:7px;margin-top:10px;overflow:hidden}.meter-card b{border-radius:inherit;background:linear-gradient(90deg, var(--meter), #f15d3f);height:100%;display:block}.plc-rack{background:linear-gradient(#fff,#f7faf9);border-top:4px solid #0a7d73;grid-template-columns:minmax(280px,.45fr) minmax(520px,1fr);gap:12px;padding:14px;display:grid}.plc-cpu,.output-module{background:#fff;border:1px solid #d7dddb;border-radius:4px;min-width:0}.plc-cpu{background:linear-gradient(90deg,#087f721f 0 7px,#0000 7px),linear-gradient(#fff,#eef4f3);align-content:space-between;min-height:196px;padding:16px;display:grid}.plc-cpu h2{margin-top:4px;font-size:18px}.plc-cpu span{color:var(--muted);margin-top:8px;font-size:12px;font-weight:750;display:block}.cpu-leds{color:#465255;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:11px;font-weight:850;display:flex}.output-module{padding:12px}.module-label{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.module-label strong{font-size:13px}.module-label span{color:var(--muted);font-size:11px;font-weight:800}.output-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.output-point{background:#f9fbfa;border:1px solid #d8dfdd;border-radius:4px;grid-template-columns:12px minmax(0,1fr);align-content:start;gap:3px 6px;min-height:76px;padding:7px;display:grid}.output-point strong{color:var(--teal-dark);font-size:11px}.output-point small,.output-point em{text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-style:normal;overflow:hidden}.output-point small{color:#263235;font-size:10px;font-weight:900}.output-point em{color:var(--muted);font-size:10px}.output-point.active{background:#eaf8f3;border-color:#0a926c99;box-shadow:inset 0 0 0 2px #0a926c17}.output-point.reserved{opacity:.66}.hmi-synoptic{background:#f5f9fa;border-top:4px solid #078d87;min-width:0;min-height:390px;padding:10px}.synoptic-head{justify-content:space-between;align-items:center;gap:16px;min-height:42px;padding:4px 0 8px;display:flex}.load-progress{justify-items:end;gap:7px;min-width:190px;display:grid}.load-progress strong{font-size:13px}.load-progress span{background:#dfe5e3;border-radius:999px;width:100%;height:7px;overflow:hidden}.load-progress i{border-radius:inherit;background:linear-gradient(90deg,#008e5b,#f7b51b,#ef4a35);height:100%;display:block}.step-strip{grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;display:grid}.step-strip span{color:#4d5a5d;background:#edf4f4;border:1px solid #cbd6d7;border-radius:4px;place-items:center;min-height:24px;font-size:10px;font-weight:850;display:grid}.step-strip span.active{color:#fff;background:linear-gradient(90deg,#078c5c,#f47c20);border-color:#0b916c}.synoptic-scroll{background:#e8eff0;border:1px solid #c8d4d4;border-radius:4px;min-width:0;max-width:100%;margin-top:10px;overflow-x:auto}.synoptic-canvas{background:linear-gradient(#f7fafafa 0 70%,#d6e0e0fa 70% 86%,#aeb9b8fa 86%),linear-gradient(90deg,#2a535c0a 1px,#0000 1px) 0 0/48px 48px;min-width:1280px;min-height:610px;position:relative;overflow:hidden}.synoptic-canvas:after{content:"";background:#98a6a6;height:2px;position:absolute;bottom:85px;left:0;right:0}.aggregate-yard{z-index:3;width:620px;height:282px;position:absolute;top:28px;left:34px}.cm4-bank{filter:drop-shadow(0 15px 18px #1e2b2e33);overflow:visible}.cm4-photo{object-fit:contain;object-position:center bottom;width:100%;height:100%;position:absolute;inset:0}.cm4-bin-tag{text-align:left;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#f6f9f9db;border:1px solid #4d5b5fad;border-radius:3px;gap:5px;width:20.5%;min-height:62px;padding:6px;display:grid;position:absolute;top:31px;box-shadow:0 5px 12px #0f181a2e}.cm4-bin-tag:first-of-type{left:6%}.cm4-bin-tag:nth-of-type(2){left:27.5%}.cm4-bin-tag:nth-of-type(3){left:49%}.cm4-bin-tag:nth-of-type(4){left:70.5%}.cm4-bin-tag.active{border-color:#0a926c;box-shadow:0 0 0 3px #0a926c38,0 5px 12px #0f181a2e}.cm4-label{justify-content:space-between;align-items:baseline;gap:7px;display:flex}.cm4-label small{color:#506063;text-transform:uppercase;font-size:9px;font-weight:900}.cm4-label strong{color:#172327;font-size:12px}.cm4-level{grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:6px;display:grid}.cm4-level span{background:#dce5e6f2;border:1px solid #4654588c;border-radius:999px;height:9px;overflow:hidden}.cm4-level i{border-radius:inherit;background:linear-gradient(90deg,#0b916c,#f4a51d);height:100%;transition:width .45s linear;display:block}.cm4-level b{color:#fff;text-align:center;background:#1b272adb;border-radius:3px;padding:2px 5px;font-size:10px}.cm4-gates{justify-content:flex-end;gap:7px;display:flex}.hmi-bin{text-align:center;background:linear-gradient(90deg,#dce2e3,#fbfcfc 48%,#c7d0d2);border:1px solid #a9b4b7;border-bottom:4px solid #76868a;border-radius:3px 3px 0 0;grid-template-rows:46px 1fr 9px 25px;min-width:0;display:grid;position:relative;box-shadow:0 9px 18px #293a3d1f}.hmi-bin:after{content:"";z-index:-1;background-color:#0000;background-image:linear-gradient(135deg,#879699 0 50%,#0000 51%),linear-gradient(225deg,#879699 0 50%,#0000 51%);background-position:0,100%;background-repeat:no-repeat;background-size:50% 100%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;height:54px;position:absolute;bottom:-54px;left:18px;right:18px}.bin-heading{z-index:2;background:#ffffffc2;border-bottom:1px solid #aebabc;align-content:center;display:grid;position:relative}.bin-heading small{color:#6a7779;text-transform:uppercase;font-size:9px;font-weight:850}.bin-heading strong{color:#263235;font-size:13px}.bin-tank{background:linear-gradient(#eef2f2,#d0d8d9);border:1px solid #acb6b8;margin:8px 10px 5px;position:relative;overflow:hidden}.bin-tank .bin-fill{background:radial-gradient(circle at 25% 20%,#ffffff40 0 2px,#0000 3px) 0 0/15px 15px,linear-gradient(#d8c189,#9c7744);transition:height .45s linear;position:absolute;bottom:0;left:0;right:0}.hmi-bin:nth-child(2) .bin-fill{filter:brightness(.94);background-color:#bb9460}.hmi-bin:nth-child(3) .bin-fill,.hmi-bin:nth-child(4) .bin-fill{background:radial-gradient(circle at 35% 25%,#ffffff40 0 2px,#0000 3px) 0 0/13px 13px,linear-gradient(#aeb9bb,#677579)}.bin-tank b{z-index:2;color:#fff;background:#192527b3;border-radius:3px;padding:3px 7px;font-size:15px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bin-level-bar{background:#c8d0d1;border-radius:3px;margin:0 10px;overflow:hidden}.bin-level-bar i{background:#12a176;height:100%;transition:width .45s linear;display:block}.hmi-bin.active{border-color:#0b9871;box-shadow:0 0 0 3px #129c7524,0 9px 18px #293a3d1f}.bin-gates{z-index:2;justify-content:center;align-items:end;gap:12px;padding-bottom:1px;display:flex;position:relative}.mini-gate{background:linear-gradient(#cfd8da,#8f9da1);border:1px solid #7d8b8e;border-radius:2px;width:20px;height:11px;padding:0}.mini-gate.open{background:linear-gradient(#17bd88,#0b8f69);border-color:#0b8f69;box-shadow:0 0 0 3px #0f9c6e2e}.belt{z-index:1;filter:drop-shadow(0 7px 6px #16202247);background:0 0;border:0;height:48px;padding:0;position:absolute}.belt:before,.belt:after{content:"";z-index:-1;background:linear-gradient(90deg,#697477,#d4dbdc 48%,#606a6d);border:1px solid #5c6669;width:8px;height:19px;position:absolute;bottom:-11px}.belt:before{left:12%;transform:skew(-12deg)}.belt:after{right:12%;transform:skew(12deg)}.belt-surface{background:repeating-linear-gradient(105deg,#ffffff14 0 3px,#0000 3px 24px),linear-gradient(#343b3d,#101516 58%,#292f31);border:2px solid #535e61;border-radius:13px;height:24px;position:absolute;top:4px;left:8px;right:8px;overflow:hidden;box-shadow:inset 0 3px 4px #ffffff1a,inset 0 -3px 5px #00000080}.belt-surface:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 27px,#d3ddde5c 27px 29px);position:absolute;inset:3px 0}.belt-frame{background:radial-gradient(circle at 8px 7px,#eef2f2 0 3px,#879397 3.5px 5px,#0000 5.5px) 0 0/30px 100% repeat-x,linear-gradient(#b9c3c5,#626e72 45%,#303a3d 52%,#899497);border:2px solid #667276;border-radius:2px;height:15px;position:absolute;top:27px;left:2px;right:2px;box-shadow:inset 0 1px #fffc,inset 0 -2px #1c242659}.belt-motor{z-index:3;background:repeating-linear-gradient(90deg,#fff3 0 2px,#0000 2px 7px),linear-gradient(90deg,#4a5558,#98a4a7 50%,#303a3d);border:2px solid #535f62;border-radius:5px;width:42px;height:27px;position:absolute;top:18px;right:-6px;box-shadow:inset 0 1px #ffffff80}.belt-motor:after{content:"";background:#8e9a9d;border:1px solid #535f62;width:8px;height:10px;position:absolute;top:7px;right:-8px}.belt-label{z-index:4;color:#f5f8f8;background:#11181ab8;border:1px solid #d2dbdc73;border-radius:2px;padding:2px 7px;font-size:10px;font-weight:850;line-height:1.2;position:absolute;top:8px;left:18px}.belt.upper{width:594px;top:310px;left:54px}.belt.lower{transform-origin:0;width:432px;top:448px;left:554px;transform:rotate(-10deg)}.belt.active .belt-surface{border-color:#0a8d69;box-shadow:0 0 0 3px #04a37c2b,inset 0 3px 4px #ffffff1a,inset 0 -3px 5px #00000080}.belt.active .belt-surface:after{animation:.52s linear infinite belt-travel}.belt.active .belt-frame{animation:.52s linear infinite roller-pulse}.belt.active .belt-motor{background:repeating-linear-gradient(90deg,#ffffff2e 0 2px,#0000 2px 7px),linear-gradient(90deg,#075943,#13a87c 50%,#063e30);border-color:#087b5d}.belt.active .belt-label{background:#05644ae0;border-color:#27d39eb3}@keyframes belt-travel{to{background-position-x:29px}}@keyframes roller-pulse{50%{filter:brightness(1.2)}}.truck-station{z-index:4;color:#253033;background:0 0;border:0;width:390px;height:218px;padding:0;position:absolute;bottom:18px;left:676px}.truck-visual{width:100%;height:184px;position:relative}.truck-visual img{object-fit:contain;filter:drop-shadow(0 10px 7px #1620224d);width:100%;height:100%}.drum-progress{background:#eff4f4e6;border:2px solid #1c282bc2;border-radius:13px;width:37%;height:25px;position:absolute;top:45%;left:43%;overflow:hidden;transform:rotate(-4deg);box-shadow:0 2px 6px #0000003d}.drum-progress i{background:linear-gradient(90deg,#078e68,#20b889);height:100%;transition:width .45s linear;display:block}.drum-progress strong{color:#172326;text-shadow:0 1px #fffc;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.truck-station>span{color:#fff;background:#333d43;border-radius:4px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:7px 12px;font-size:11px;font-weight:850;display:flex;position:absolute;bottom:0;left:52px;right:10px}.truck-station>span b{letter-spacing:.7px;font-size:9px}.truck-station.active>span{background:#0c906b}.cement-silo{z-index:3;color:#1e2c31;background:0 0;border:0;width:210px;height:482px;padding:0;position:absolute;top:38px;right:18px}.cement-silo>img{object-fit:contain;filter:drop-shadow(0 8px 6px #1f2a2c3d);width:100%;height:100%;position:absolute;inset:0}.silo-level{justify-items:center;gap:5px;width:44px;display:grid;position:absolute;top:78px;left:7px}.silo-level strong{color:#fff;background:#243136;border-radius:3px;padding:4px 5px;font-size:11px}.silo-level span{background:#edf3f3f2;border:2px solid #4d5b5f;border-radius:8px;width:16px;height:188px;position:relative;overflow:hidden}.silo-level i{background:linear-gradient(#f7c948,#e88926);transition:height .45s linear;position:absolute;bottom:0;left:0;right:0}.cement-silo small{z-index:3;color:#3c494d;background:#f7fafaf0;border:1px solid #869699;border-radius:3px;place-items:center;min-height:38px;font-size:9px;line-height:1.25;display:grid;position:absolute;bottom:8px;left:22px;right:8px}.cement-silo small b{color:#172327;font-size:10px}.cement-silo.active small{color:#0c6c53;border-color:#0c906b;box-shadow:0 0 0 3px #0c906b24}.screw-conveyor{z-index:2;transform-origin:100%;color:#243236;filter:drop-shadow(0 7px 6px #1620223d);background:0 0;border:0;border-radius:0;width:470px;height:46px;padding:0;font-size:10px;font-weight:900;position:absolute;bottom:245px;right:145px;transform:rotate(-12deg)}.screw-tube{background:repeating-linear-gradient(120deg,#54606485 0 7px,#ffffff57 7px 17px),linear-gradient(#f7faf9,#cbd4d6 48%,#9ca9ad);border:1px solid #8f9ca0;border-radius:12px;height:22px;position:absolute;top:12px;left:0;right:38px;box-shadow:inset 0 2px #ffffffc2,inset 0 -4px #414b4e2e}.screw-tube:before,.screw-tube:after{content:"";background:linear-gradient(#e8eeee,#9eaaad);border:1px solid #758488;border-radius:3px;width:13px;height:30px;position:absolute;top:-4px}.screw-tube:before{left:8px}.screw-tube:after{right:-4px}.screw-motor{background:repeating-linear-gradient(90deg,#ffffff2e 0 2px,#0000 2px 7px),linear-gradient(90deg,#39454a,#6c7a7f 52%,#252f33);border:1px solid #616f73;border-radius:6px;width:48px;height:36px;position:absolute;top:5px;right:0;box-shadow:inset 0 1px #ffffff52}.screw-conveyor span{z-index:2;background:#f6f9f9d1;border:1px solid #5a676b80;border-radius:2px;padding:2px 7px;line-height:1;position:absolute;top:14px;left:76px}.screw-conveyor.active .screw-tube{border-color:#0c906b;box-shadow:0 0 0 3px #0c906b29,inset 0 2px #ffffffc2,inset 0 -4px #414b4e2e}.screw-conveyor.active .screw-motor{background:linear-gradient(90deg,#0b6b55,#11a579 52%,#074936);border-color:#0c906b}.screw-conveyor.active span{color:#075940;border-color:#0c906ba6}.flow-meter{--fluid:#21a8dc;--fluid-dark:#087aa8;--pipe-width:205px;z-index:6;color:#243236;filter:drop-shadow(0 7px 6px #16202238);background:0 0;border:0;width:126px;height:142px;padding:0;position:absolute;top:105px;left:710px;overflow:visible}.flow-meter.additive{--fluid:#9d5bc4;--fluid-dark:#65368a;--pipe-width:65px;left:850px}.flow-gauge{background:radial-gradient(circle, #fbfdfc 0 51%, transparent 52%), repeating-conic-gradient(from 225deg, #30393b 0 2deg, transparent 2deg 14deg), #d6dedf;border:7px solid #5f6a6d;border-radius:50%;place-items:center;width:86px;height:86px;display:grid;position:absolute;top:0;left:20px;box-shadow:inset 0 0 0 3px #aeb9bb,inset 0 0 12px #16202238,0 2px #e9eeee}.flow-gauge:before{content:"0   50   100";color:#4d595c;word-spacing:9px;text-align:center;font-size:7px;font-weight:900;position:absolute;top:20px;left:8px;right:8px}.flow-gauge:after{content:"";background:#dfe6e7;border:2px solid #3c474a;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 2px #0000004d}.gauge-needle{z-index:2;transform-origin:0;background:#d33d31;border-radius:2px;width:31px;height:3px;transition:transform .35s;position:absolute;top:50%;left:50%;transform:translateY(-50%)rotate(145deg)}.flow-gauge b{color:#172326;font-variant-numeric:tabular-nums;background:#eef3f3;border:1px solid #aab5b7;border-radius:2px;padding:2px 3px;font-size:9px;line-height:1;position:absolute;bottom:12px;left:20px;right:20px}.flow-gauge small{color:#566265;font-size:6px;font-weight:900;position:absolute;bottom:14px;right:13px}.flow-caption{border:1px solid #778589;border-left:5px solid var(--fluid);background:#f7fafaf5;border-radius:3px;place-items:center;min-height:39px;display:grid;position:absolute;top:96px;left:0;right:0;box-shadow:0 4px 9px #16202229}.flow-caption strong{color:#243236;letter-spacing:.5px;font-size:10px}.flow-caption small{color:#687578;font-size:8px;font-weight:850}.flow-pipe{z-index:-1;width:var(--pipe-width);border-top:10px solid #8d999c;border-right:10px solid #8d999c;border-radius:0 15px 0 0;height:156px;position:absolute;top:128px;left:63px;box-shadow:inset -2px 1px #ffffffa6,2px -2px #596568}.flow-pipe:after{content:"";background:0 0;border-right:3px solid #0000;height:3px;position:absolute;top:-7px;left:4px;right:-7px}.liquid-stream{z-index:7;left:calc(63px + var(--pipe-width) + 3px);background:repeating-linear-gradient(180deg, #dff8ff 0 7px, var(--fluid) 7px 15px);width:5px;height:42px;box-shadow:0 0 5px color-mix(in srgb, var(--fluid) 55%, transparent);opacity:0;background-size:100% 15px;border-radius:0 0 50% 50%;position:absolute;top:282px}.flow-meter.active .gauge-needle{transform:translateY(-50%)rotate(28deg)}.flow-meter.active .flow-gauge{border-color:var(--fluid-dark);box-shadow:0 0 0 4px color-mix(in srgb, var(--fluid) 20%, transparent), inset 0 0 0 3px #aeb9bb, inset 0 0 12px #16202238}.flow-meter.active .flow-caption{color:#fff;border-color:var(--fluid-dark);border-left-color:var(--fluid);background:color-mix(in srgb, var(--fluid-dark) 82%, #263236)}.flow-meter.active .flow-caption strong,.flow-meter.active .flow-caption small{color:#fff}.flow-meter.active .flow-pipe:after{border-right-color:var(--fluid);background:var(--fluid)}.flow-meter.active .liquid-stream{opacity:1;animation:.42s linear infinite liquid-pour}@keyframes liquid-pour{to{background-position-y:15px}}.operator-console{grid-template-columns:minmax(250px,.75fr) minmax(280px,.8fr) minmax(300px,1fr) minmax(240px,.65fr);gap:12px;display:grid}.recipe-panel,.command-log,.manual-panel{min-width:0;padding:16px}.manual-command-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.manual-command{color:#4c5a5c;text-align:left;background:#f8faf9;border:1px solid #dce3e1;border-radius:4px;justify-items:start;min-height:56px;padding:8px;display:grid}.manual-command strong{color:var(--teal-dark);font-size:11px}.manual-command span{margin-top:4px;font-size:11px;font-weight:800}.manual-command.active{color:#fff;border-color:var(--teal-dark);background:var(--teal)}.manual-command.active strong{color:#fff}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.recipe-grid span{min-height:52px;color:var(--muted);background:#f8faf9;border:1px solid #e1e7e5;border-radius:4px;padding:10px;font-size:11px;font-weight:750}.recipe-grid strong{color:var(--ink);margin-top:5px;font-size:13px;display:block}.command-log{align-content:start;display:grid}.command-log p{color:#526062;border-top:1px solid #e6ebe9;align-items:center;min-height:32px;font-size:12px;font-weight:650;display:flex}.compact-panels{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=1400px){.bi-filterbar{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(140px,170px))}.bi-live{grid-column:1/-1;min-height:24px;padding:0}.bi-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.automation-command-strip{flex-wrap:wrap}.automation-command-strip>div:first-child{width:100%}.hmi-command-strip .hmi-title{min-width:0}.formula-field{flex:260px}.volume-field{flex:0 190px}}@media (width<=1100px){.plc-connection-grid,.users-layout,.plant-management-grid,.plant-forms-column{grid-template-columns:1fr}.plc-form,.user-create-panel{position:static}.bi-filterbar{grid-template-columns:repeat(3,minmax(0,1fr))}.bi-filter-title{grid-column:1/-1}.bi-chart-grid{grid-template-columns:1fr}.bi-health{grid-template-columns:repeat(2,minmax(0,1fr))}.bi-health>div:nth-child(2){border-right:0}.bi-health>div:nth-child(-n+2){border-bottom:1px solid #e6ebe9}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout{grid-template-columns:1fr}.automation-command-strip{flex-wrap:wrap}.automation-command-strip>div:first-child{width:100%}.aggregate-bank,.supply-grid,.automation-panels{grid-template-columns:repeat(2,minmax(0,1fr))}.process-line{grid-template-columns:1fr 1fr}.weigh-box{grid-column:1/-1}.hmi-meters{grid-template-columns:repeat(2,minmax(0,1fr))}.plc-rack,.plc-config-summary,.plc-config-panels,.security-layout{grid-template-columns:1fr}.output-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.automation-production-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-console,.compact-panels{grid-template-columns:1fr}.synoptic-canvas{min-height:560px}}@media (width<=760px){.plc-connection-list{grid-template-columns:1fr}.bi-filterbar{grid-template-columns:1fr;align-items:stretch}.bi-filter-title,.bi-live{grid-column:auto}.bi-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.bi-visual{min-height:310px;padding:13px}.bi-chart-area{height:235px}.bi-health{grid-template-columns:1fr;padding:0 12px}.bi-health>div{border-bottom:1px solid #e6ebe9;border-right:0}.bi-health>div:last-child{border-bottom:0}.app-shell{display:block}.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.workspace{padding:0 16px 24px}.topbar{height:74px;margin-bottom:16px}.topbar h1{font-size:20px}.menu-button{display:grid}.scrim{z-index:10;background:#0a12137a;border:0;display:block;position:fixed;inset:0}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{min-height:92px;padding:14px}.metric strong{font-size:23px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.integration-row{flex-wrap:wrap;align-items:flex-start}.aggregate-bank,.supply-grid,.automation-panels,.process-line{grid-template-columns:1fr}.automation-command-strip{align-items:stretch}.automation-command-strip .button,.segmented-control{width:100%}.segmented-control button{flex:1;min-width:0}.weigh-box{display:grid}.plc-configuration-hero{flex-direction:column;align-items:stretch;padding:18px}.plc-config-card{grid-template-columns:32px minmax(0,1fr)}.plc-config-card small{text-align:left;grid-column:2}.hmi-command-strip .hmi-title,.scene-field,.formula-field,.volume-field{width:100%;min-width:0;max-width:none}.hmi-command-strip h2{font-size:20px}.hmi-meters{grid-template-columns:1fr}.output-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.automation-production-summary{grid-template-columns:1fr}.meter-card{min-height:92px}.synoptic-head{align-items:flex-start;display:grid}.load-progress{justify-items:stretch;width:100%}.step-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.synoptic-scroll{margin-left:-2px;margin-right:-2px}.synoptic-canvas{min-height:560px}.recipe-grid{grid-template-columns:1fr}}@media (width<=430px){.bi-metrics,.metrics{grid-template-columns:1fr}.login-panel{padding:22px}}.authorization-page,.plant-status-page{gap:16px;min-width:0;display:grid}.manual-alert-button{color:#17655d;cursor:pointer;background:#fff;border:1px solid #dce5e2;border-radius:6px;align-items:center;gap:6px;min-height:36px;padding:0 10px;display:inline-flex}.topbar-actions{align-items:center;gap:8px;display:flex}.manual-alert-button span{font-weight:700}.review-actions{gap:6px;display:flex}.selected-order-row{background:#f1f8f5}.operator-order-layout{grid-template-columns:minmax(0,1.75fr) minmax(290px,.85fr);align-items:start;gap:16px;display:grid}.operator-load-form .form-grid{gap:12px}.operator-saldo{border-top:1px solid #dce5e2;justify-content:space-between;padding-top:12px;display:flex}.operation-material-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.operation-material{border:1px solid #dce5e2;border-radius:6px;align-items:flex-start;gap:10px;min-width:0;padding:12px;display:flex}.operation-material>span:first-child{color:#51615e;background:#e9eeee;border-radius:50%;flex:0 0 25px;place-items:center;height:25px;font-size:12px;font-weight:700;display:grid}.operation-material>div{flex:1;gap:3px;min-width:0;display:grid}.operation-material strong{overflow-wrap:anywhere;font-size:13px}.operation-material small{color:#687775}.operation-material p{font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:12px}.operation-material .material-state{white-space:nowrap;color:#687775;font-size:11px}.operation-material.done{background:#f3faf6;border-color:#9fc9b6}.operation-material.done>span:first-child{color:#fff;background:#287553}.operation-material.done .material-state{color:#287553}.operation-material.active{background:#fff9f1;border-color:#e58d38}.operation-final-steps{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.operation-final-steps span{border:1px solid #dce5e2;border-radius:6px;padding:7px 10px;font-size:12px}.operation-final-steps span.done{color:#287553;background:#f3faf6;border-color:#9fc9b6}.authorization-tabs{flex-wrap:wrap;justify-self:start;max-width:100%}.authorization-tabs button{white-space:nowrap}.authorization-tabs button span{opacity:.7;margin-left:6px}.manual-authorization-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.operation-toolbar{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.operation-toolbar label{gap:5px;min-width:min(100%,260px);font-size:12px;font-weight:700;display:grid}.operation-toolbar select{min-height:38px}.operation-status-grid{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:16px;display:grid}.status-main-panel,.status-order-panel,.operation-timeline,.operation-completed{min-width:0}.status-main-panel,.operation-timeline,.operation-completed{padding:19px}.operation-readings{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.operation-readings>div{border-top:1px solid #dce5e2;gap:6px;padding-top:12px;display:grid}.operation-readings small,.operation-stage small,.operation-read-time{color:#687775}.operation-readings strong{font-size:18px}.operation-inputs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.status-order-panel h2,.operation-completed h2{overflow-wrap:anywhere}.operation-stages{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.operation-stage{border:1px solid #dce5e2;border-radius:6px;align-items:center;gap:9px;min-width:0;padding:11px;display:flex}.operation-stage>span{color:#51615e;background:#e9eeee;border-radius:50%;flex:0 0 26px;place-items:center;height:26px;font-size:12px;font-weight:700;display:grid}.operation-stage>div{gap:3px;min-width:0;display:grid}.operation-stage strong{font-size:12px;line-height:1.3}.operation-stage.done{background:#f3faf6;border-color:#9fc9b6}.operation-stage.done>span{color:#fff;background:#287553}.operation-stage.active{background:#fff9f1;border-color:#e58d38}@media (width<=1150px){.operator-order-layout{grid-template-columns:1fr}.operation-material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1000px){.operation-status-grid,.manual-authorization-layout{grid-template-columns:1fr}.operation-stages{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.operation-readings{grid-template-columns:repeat(2,minmax(0,1fr))}.operation-stages,.operation-material-grid{grid-template-columns:1fr}.authorization-tabs{width:100%}.authorization-tabs button{flex:100%}.review-actions{flex-wrap:wrap}}.module-page{gap:16px;min-width:0;display:grid}.module-toolbar{border:1px solid var(--line);background:var(--surface);border-radius:5px;justify-content:flex-end;align-items:center;gap:9px;min-height:58px;padding:9px 12px;display:flex}.module-toolbar>div:first-child{color:var(--muted);margin-right:auto;font-size:12px}.module-toolbar>div:first-child strong{color:var(--ink);font-size:18px}.reports-layout{gap:14px;min-width:0;display:grid}.reports-toolbar{border:1px solid var(--line);border-top:3px solid var(--teal);background:var(--surface);border-radius:5px;grid-template-columns:minmax(230px,1fr) repeat(3,minmax(150px,190px)) 36px;align-items:end;gap:10px;min-height:74px;padding:11px 13px;display:grid}.reports-title{min-height:42px;color:var(--teal-dark);align-items:center;gap:10px;display:flex}.reports-title>div{min-width:0}.reports-title strong,.reports-title span{display:block}.reports-title strong{color:var(--ink);font-size:14px}.reports-title span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:10px;overflow:hidden}.reports-toolbar label{text-transform:uppercase;gap:4px;font-size:10px}.reports-toolbar input,.reports-toolbar select{text-transform:none;min-height:38px;padding:7px 9px;font-size:11px}.reports-toolbar select{padding-right:30px}.reports-toolbar .icon-button{min-height:38px}.report-export-strip{border:1px solid var(--line);background:var(--surface);border-radius:5px;align-items:center;gap:9px;min-height:62px;padding:10px 12px;display:flex}.report-export-strip>div:first-child{min-width:0;color:var(--teal);align-items:center;gap:10px;margin-right:auto;display:flex}.report-export-strip span,.report-export-strip strong{display:block}.report-export-strip span{color:var(--muted);font-size:10px}.report-export-strip strong{color:var(--ink);margin-bottom:3px;font-size:12px}.report-excel{color:#fff;background:#217346;border-color:#217346}.report-excel:hover{background:#185b37;border-color:#185b37}.report-pdf{color:#fff;background:#ad2d2d;border-color:#ad2d2d}.report-pdf:hover{background:#8d2323;border-color:#8d2323}.report-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.report-metric{border:1px solid var(--line);border-left:4px solid var(--teal);background:var(--surface);border-radius:5px;min-width:0;min-height:108px;padding:14px}.report-metric.amber{border-left-color:#c7861d}.report-metric.red{border-left-color:#b13a3a}.report-metric>div{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;display:flex}.report-metric span{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;font-size:10px;font-weight:800;overflow:hidden}.report-metric strong{text-overflow:ellipsis;white-space:nowrap;margin-top:13px;font-size:21px;display:block;overflow:hidden}.report-metric small{color:var(--muted);margin-top:7px;font-size:10px;display:block}.report-catalog{min-width:0;padding:18px}.report-list{display:grid}.report-row{border-top:1px solid var(--line);grid-template-columns:38px minmax(0,1fr) 110px 96px;align-items:center;gap:12px;min-width:0;min-height:67px;display:grid}.report-row:first-child{border-top:0}.report-row-icon{width:36px;height:36px;color:var(--teal-dark);background:#e3f0ed;border-radius:4px;place-items:center;display:grid}.report-row-copy{min-width:0}.report-row-copy strong,.report-row-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.report-row-copy strong{font-size:13px}.report-row-copy span{color:var(--muted);margin-top:4px;font-size:10px}.report-count{color:var(--muted);text-align:right;white-space:nowrap;font-size:10px;font-weight:750}.report-actions{justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.report-actions .icon-button.excel{color:#217346}.report-actions .icon-button.pdf{color:#ad2d2d}.report-downloading{color:var(--muted);animation:.75s ease-in-out infinite alternate report-bounce}.report-loading{min-height:180px;color:var(--muted);place-content:center;justify-items:center;gap:10px;font-size:11px;display:grid}.spin{animation:.8s linear infinite report-spin}@keyframes report-spin{to{transform:rotate(360deg)}}@keyframes report-bounce{to{transform:translateY(3px)}}@media (width<=1100px){.reports-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.reports-title{grid-column:1/-1}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.reports-toolbar{grid-template-columns:1fr;align-items:stretch}.reports-title{grid-column:auto}.reports-toolbar .icon-button{width:100%}.report-export-strip{flex-wrap:wrap;align-items:stretch}.report-export-strip>div:first-child{width:100%}.report-export-strip .button{flex:210px}.report-metrics{grid-template-columns:1fr}.report-row{grid-template-columns:38px minmax(0,1fr) auto;padding:11px 0}.report-count{text-align:left;grid-column:2}.report-actions{grid-area:1/3/span 2}}.module-search{border:1px solid var(--line);border-radius:4px;align-items:center;gap:8px;width:min(280px,100%);min-height:40px;padding:0 10px;display:flex}.module-search input{min-height:36px;box-shadow:none;border:0;padding:0}.module-form{padding:18px}.module-form .panel-heading{margin-bottom:16px}.module-form .form-actions{gap:8px;margin-top:16px}.module-table-wrap{min-width:0;overflow-x:auto}.module-table{min-width:780px}.module-table tbody tr{cursor:pointer}.module-table td small{color:var(--muted);margin-top:3px;display:block}.module-empty{min-height:150px;color:var(--muted);place-items:center;font-size:12px;display:grid}.status.inactive{color:#6b7475;background:#edf0ef}.module-subtitle{margin:19px 0 10px;font-size:13px}.recipe-material-inputs{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.recipe-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.recipe-card{min-width:0;padding:18px}.recipe-card-head{justify-content:space-between;gap:12px;margin-bottom:14px;display:flex}.recipe-card-head span:first-child{color:var(--teal);font-size:10px;font-weight:800}.recipe-card-head h2{margin-top:4px}.recipe-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:14px;display:grid}.recipe-kpis span{color:var(--muted);background:var(--surface-soft);border-radius:4px;padding:9px;font-size:10px}.recipe-kpis strong{color:var(--ink);margin-top:5px;font-size:12px;display:block}.module-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.inventory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.inventory-card{border-left:4px solid var(--teal);padding:16px}.inventory-card.alert{border-left-color:#c87816}.inventory-card>div:first-child{color:var(--teal);justify-content:space-between;align-items:center;display:flex}.inventory-card.alert>div:first-child{color:#a3610f}.inventory-card>div:first-child span{text-transform:uppercase;font-size:10px;font-weight:800}.inventory-card h2{margin-top:14px}.inventory-card>strong{margin-top:12px;font-size:22px;display:block}.inventory-card p{color:var(--muted);margin-top:7px;font-size:11px}.inventory-card footer{border-top:1px solid var(--line);justify-content:space-between;margin-top:15px;padding-top:11px;font-size:11px;display:flex}@media (width<=1100px){.recipe-cards{grid-template-columns:1fr}.recipe-material-inputs,.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.module-toolbar{flex-wrap:wrap;align-items:stretch}.module-toolbar>div:first-child,.module-search{width:100%}.recipe-material-inputs,.inventory-grid,.module-metrics,.recipe-kpis{grid-template-columns:1fr}}.demo-banner{color:#1e40af;background:#eff6ff;border:1px solid #93c5fd;border-radius:.75rem;flex-wrap:wrap;gap:.35rem 1rem;margin-bottom:1rem;padding:.85rem 1rem;font-size:.875rem;display:flex}
