:root{--screen-bg:#d7d7d7;--panel-bg:#dcdcdc;--panel-border-light:#f7f7f7;--panel-border-dark:#9a9a9a;--ink:#151515;--muted:#474747;--line:#4d4d4d;--value-bg:#e7e7e7;--value-border:#9a9a9a;--alarm:#c01818;--warning:#c98700;--ok:#118033;--cyan:#6bb6c8}*{box-sizing:border-box}html,body{width:100%;min-width:100%;height:100%;margin:0}body{color:var(--ink);background:#111;font-family:Arial,Helvetica,sans-serif;overflow:hidden}button,select,input{font:inherit}.simulator-app{width:100vw;height:100vh;position:relative}.dashboard-shell{background:#151515;place-items:center;width:100vw;height:100vh;display:grid}.dashboard-stage{aspect-ratio:16/10;background:var(--screen-bg);width:min(100vw,160vh);position:relative;overflow:hidden;box-shadow:0 0 0 1px #050505,0 20px 90px #0000008c;container-type:inline-size}.dashboard-layer{position:absolute;inset:0}.apriltag-overlay{z-index:40;pointer-events:none;position:absolute;inset:0}.apriltag-marker{aspect-ratio:1;background:#fff;border:.35cqw solid #fff;width:7.2%;position:absolute;box-shadow:0 0 0 .2cqw #000}.apriltag-marker.top-left{top:2.4%;left:2.4%}.apriltag-marker.top-right{top:2.4%;right:2.4%}.apriltag-marker.bottom-right{bottom:2.4%;right:2.4%}.apriltag-marker.bottom-left{bottom:2.4%;left:2.4%}.dashboard{background:var(--screen-bg);color:var(--ink);letter-spacing:0;-webkit-user-select:none;user-select:none;font-size:clamp(14px,1.34cqw,23px);position:absolute;inset:0;overflow:hidden}.dashboard.theme-blue{--screen-bg:#cbd3d9;--panel-bg:#d8e0e5;--line:#315365;--value-bg:#e9f0f3;background:var(--screen-bg)}.dashboard.theme-dark{--screen-bg:#202326;--panel-bg:#2c3034;--panel-border-light:#454a50;--panel-border-dark:#121416;--ink:#f1f1f1;--muted:#c3c7ca;--line:#9aa3a9;--value-bg:#101214;--value-border:#70777d;background:var(--screen-bg);color:var(--ink)}.dashboard.theme-amber{--screen-bg:#d8d2c4;--panel-bg:#e1daca;--line:#554d3f;--value-bg:#eee9dd;background:var(--screen-bg)}.dashboard.theme-terminal{--screen-bg:#07110c;--panel-bg:#0d1d15;--panel-border-light:#24573a;--panel-border-dark:#020403;--ink:#9fe8a8;--muted:#71a87c;--line:#3aca72;--value-bg:#020604;--value-border:#4dbb74;--alarm:#ff534d;--warning:#f0c75a;--ok:#22c76b;background:var(--screen-bg);color:var(--ink)}.dashboard.theme-low-contrast{--screen-bg:#bac8ce;--panel-bg:#ccd7dc;--panel-border-light:#dce6ea;--panel-border-dark:#82949c;--ink:#3e4d55;--muted:#52636b;--line:#5f7a86;--value-bg:#e1e9ec;--value-border:#7f929b;background:var(--screen-bg);color:var(--ink)}.dashboard.theme-high-contrast{--screen-bg:#030507;--panel-bg:#111820;--panel-border-light:#4b6478;--panel-border-dark:#010203;--ink:#f8fbff;--muted:#ccd8e0;--line:#f2d55f;--value-bg:#000;--value-border:#f2d55f;--alarm:#ff3030;--warning:#ffd94f;--ok:#00c875;background:var(--screen-bg);color:var(--ink)}.dashboard.theme-red{--screen-bg:#2c2020;--panel-bg:#e2d7ce;--panel-border-light:#f8eee6;--panel-border-dark:#8d6d65;--ink:#1c1212;--muted:#574544;--line:#a12b20;--value-bg:#fff2e6;--value-border:#9b352b;--alarm:#b80000;--warning:#e0a600;--ok:#267a35;background:linear-gradient(90deg,#2c2020 0 8%,#d8cbc1 8% 100%)}.dashboard.theme-chemical{--screen-bg:#dad6e4;--panel-bg:#e6e1ee;--panel-border-light:#fbf8ff;--panel-border-dark:#8f87a1;--ink:#191521;--muted:#5b526b;--line:#6f5f8f;--value-bg:#f3eff8;--value-border:#8d7ca7;--alarm:#b11438;--warning:#d78a00;--ok:#247b5d;background:var(--screen-bg)}.dashboard.theme-production{--screen-bg:#101315;--panel-bg:#f1f2f0;--panel-border-light:#fff;--panel-border-dark:#737a7a;--ink:#111;--muted:#42494d;--line:#d9d14f;--value-bg:#fff;--value-border:#515b61;--alarm:#d10f2a;--warning:#f2ba00;--ok:#149254;background:linear-gradient(#11161a 0 46%,#d6d7d2 46% 100%)}.dashboard.theme-tankfarm{--screen-bg:#e1e4df;--panel-bg:#f0f1ed;--panel-border-light:#fff;--panel-border-dark:#8b948e;--ink:#14201a;--muted:#4f5b54;--line:#386452;--value-bg:#f8faf5;--value-border:#849089;--alarm:#bf1f2f;--warning:#cf9f14;--ok:#18824d;background:var(--screen-bg)}.dashboard.theme-powerscada{--screen-bg:#000;--panel-bg:#303030;--panel-border-light:#f0f0f0;--panel-border-dark:#777;--ink:#f5f5f5;--muted:#b7b7b7;--line:#f2f2f2;--value-bg:#f7f7f7;--value-border:#d6d6d6;--alarm:#c41414;--warning:#d18b20;--ok:#5cb847;color:var(--ink);background:#000}.dashboard.theme-ignition{--screen-bg:#ededed;--panel-bg:#f8f8f8;--panel-border-light:#fff;--panel-border-dark:#aeb5bb;--ink:#1f2933;--muted:#6d7680;--line:#c9cdd0;--value-bg:#314657;--value-border:#566b78;--ok:#85c879;background:#e7e7e7}.dashboard.theme-touchpanel{--screen-bg:#11161d;--panel-bg:#1d242c;--panel-border-light:#5c6673;--panel-border-dark:#06080b;--ink:#f7f9fb;--muted:#b5beca;--line:#8090a0;--value-bg:#151b22;--value-border:#7f8a98;--alarm:#e4160e;--warning:#ffc423;--ok:#0a7a21;color:var(--ink);background:#080b0f}.dashboard.density-dense{font-size:clamp(13.4px,1.24cqw,22px)}.dashboard.density-wide{font-size:clamp(13.8px,1.34cqw,24px)}.dashboard.density-large{font-size:clamp(14.4px,1.42cqw,26px)}.dashboard.layout-touch{font-size:clamp(12px,1.18cqw,21px)}.dashboard.layout-left-rail .topbar,.dashboard.layout-kpi .topbar{grid-template-columns:25.8% 54.8% 19%}.dashboard.theme-terminal .topbar,.dashboard.theme-high-contrast .topbar,.dashboard.theme-production .topbar{background:#0b0f12;border-bottom-color:#364047}.dashboard.theme-terminal .hmi-button,.dashboard.theme-terminal .nav-cell{color:#a8f0b0;background:linear-gradient(#183322,#09120d);border-color:#326b45 #020403 #020403 #326b45}.dashboard.theme-high-contrast .hmi-button,.dashboard.theme-high-contrast .nav-cell{color:#f8fbff;background:#111820;border-color:#5f788f #010203 #010203 #5f788f}.dashboard.theme-production .hmi-button,.dashboard.theme-production .nav-cell{color:#111;background:linear-gradient(#fff,#d8dedb)}.component{position:absolute}.hmi-button,.nav-cell,.panel,.value-box,.table-box,.status-box,.setpoint-panel{border-top:2px solid var(--panel-border-light);border-left:2px solid var(--panel-border-light);border-right:2px solid var(--panel-border-dark);border-bottom:2px solid var(--panel-border-dark)}.hmi-button,.nav-cell{color:#111;text-align:center;white-space:pre-line;overflow-wrap:anywhere;background:linear-gradient(#efefef,#cfcfcf);place-items:center;min-width:0;min-height:0;padding:.12em .2em;font-weight:700;line-height:1;display:grid;overflow:hidden}.nav-cell{overflow-wrap:anywhere;line-height:1}.topbar{background:#cfcfcf;border-bottom:2px solid #9d9d9d;grid-template-columns:28.8% 51.8% 19%;gap:.2%;padding:.15%;font-size:clamp(9.5px,.78cqw,13px);display:grid;overflow:hidden}.topbar>*,.top-left-grid>*,.top-center-grid>*,.login-box>*{min-width:0;min-height:0}.top-left-grid{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(7,1fr);gap:.35%;display:grid}.top-center-grid{grid-template-rows:18% 82%;grid-template-columns:24% 40% 12% 12% 12%;gap:.2%;display:grid}.top-title-cell{color:#111;background:#eee;border:1px solid #9f9f9f;place-items:center;font-weight:700;line-height:1;display:grid}.top-path{background:#ddd;border:1px solid #b4b4b4;grid-column:1/-1}.login-box{grid-template-rows:repeat(2,1fr);grid-template-columns:34% 34% 32%;gap:.4%;font-weight:700;display:grid}.login-info{color:#111;text-align:center;white-space:pre-line;background:#e5e5e5;grid-area:1/2/3;place-items:center;line-height:.95;display:grid}.login-box .hmi-button:first-child{grid-area:1/1}.login-box .hmi-button:nth-child(3){grid-area:1/3}.login-box .hmi-button:nth-child(4){grid-area:2/1}.login-box .hmi-button:nth-child(5){grid-area:2/3}.icon-arrow{font-size:2em;line-height:1}.panel{background:var(--panel-bg);padding:.72em .75em}.panel.compact{padding:.45em .5em}.panel.micro-text,.table-wrapper.micro-text,.status-list.micro-text{font-size:1em}.panel.condensed-panel{padding:.42em .48em}.panel.condensed-panel .metric-row{gap:.18em;min-height:1.34em;margin:.08em 0}.panel.matrix-panel,.status-list.matrix-panel{background:linear-gradient(#6ddb870f, #6ddb870f), var(--panel-bg);border-color:#285c3a #020403 #020403 #285c3a;box-shadow:inset 0 0 0 1px #8cffa72e}.panel.alarm-panel,.status-list.alarm-panel{background:#ead9d4;border-color:#fff5ef #7e332e #7e332e #fff5ef}.panel.soft-panel,.status-list.soft-panel{background:#e2ecf1c7;border-width:1px}.panel.tile-panel{background:#f4f6f3;padding:1em}.panel.inverted-panel,.status-list.inverted-panel{color:#f3f8fa;background:#101417;border-color:#586872 #010203 #010203 #586872}.panel.inverted-panel .metric-unit,.panel.inverted-panel .metric-label,.status-list.inverted-panel .status-label{color:#f3f8fa}.panel.low-contrast-panel{color:#4c5d66;background:#c4d0d5}.panel.large-value .metric-row:first-of-type .value-box,.panel.jumbo-value .value-box{min-width:4.9em;height:1.5em;font-size:1.45em}.panel.kpi-tile .panel-title{text-align:left;font-size:.96em}.panel.kpi-tile .metric-row{grid-template-columns:minmax(max-content,1fr) auto auto}.panel.kpi-tile .metric-row:first-of-type{min-height:2.8em}.panel.kpi-tile .metric-row:first-of-type .metric-label{text-align:left}.panel.kpi-tile .metric-row:first-of-type .value-box{min-width:4.7em;height:1.35em;font-size:1.85em}.panel.kpi-tile.quality-kpi .metric-row:first-of-type .value-box{min-width:4.25em;font-size:1.72em}.panel-title{text-align:center;margin:0 0 .62em;font-size:1.12em;font-weight:800;line-height:1.05}.metric-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.36em;min-height:1.9em;margin:.28em 0;display:grid}.dashboard.density-dense .panel:not(.compact){padding:.4em .44em}.dashboard.density-dense .panel:not(.compact) .metric-row{min-height:1.24em;margin:.02em 0}.dashboard.density-dense .panel-title{margin-bottom:.34em;font-size:1em}.dashboard.density-dense .large-title{text-overflow:ellipsis;white-space:nowrap;font-size:1.35em;overflow:hidden}.metric-label{text-align:right;white-space:nowrap;min-width:0}.dashboard:not(.layout-touch) .metric-label{text-overflow:ellipsis;line-height:1.02;overflow:hidden}.dashboard.density-dense .metric-label,.dashboard.density-dense .metric-unit{white-space:nowrap;font-size:.9em;line-height:1}.dashboard.density-dense .panel.compact{padding:.28em .32em}.dashboard.density-dense .panel.compact .metric-row{gap:.1em;min-height:1.12em;margin:.02em 0}.dashboard.density-dense .panel.compact .value-box{min-width:3.25em;font-size:.8em}.dashboard.density-dense .panel.compact .metric-unit{min-width:auto;font-size:.72em}.dashboard.density-dense .panel.feed-setpoints .metric-row{min-height:1.35em;margin:.03em 0}.dashboard.density-dense .component.label-text:not(.large-title):not(.sidebar-title){text-overflow:ellipsis;white-space:nowrap;font-size:.9em;overflow:hidden}.panel.compact .metric-row{gap:.2em;min-height:1.55em;margin:.12em 0;font-size:1em}.panel.compact .metric-label{white-space:normal;line-height:1.05}.dashboard.density-dense .panel.compact .metric-label{white-space:nowrap;line-height:1}.panel.feed-setpoints{padding:.52em .6em}.panel.feed-setpoints .metric-row{grid-template-columns:minmax(0,1fr) auto auto;min-height:2.6em;margin:.18em 0}.panel.feed-setpoints .metric-label{text-align:left}.metric-unit{min-width:2.2em;color:var(--ink);white-space:nowrap}.value-box{background:var(--value-bg);min-width:4em;height:1.55em;color:var(--ink);white-space:nowrap;place-items:center end;padding:0 .3em;font-family:Arial Narrow,Arial,Helvetica,sans-serif;font-weight:700;line-height:1;display:inline-grid}.matrix-panel .value-box,.dashboard.theme-terminal .value-box{color:#93ff9f;text-shadow:0 0 .28em #7eff9747;background:#000;border-color:#408f58}.dashboard.theme-high-contrast .value-box{color:#fff;background:#000;border-color:#f2d55f}.low-contrast-panel .value-box,.dashboard.theme-low-contrast .value-box{color:#3f4f58;background:#e2e9ec;border-color:#82969f}.alarm-panel .value-box{color:#2c1110;background:#fff1df;border-color:#a13a31}.kpi-tile .value-box{background:#fff;justify-content:end}.value-box.small{min-width:3.25em;font-size:1.05em}.value-box.wide{min-width:5.4em}.value-box.invalid{color:var(--alarm);background:#f2dfdf}.value-box.blank{color:#0000}.dashboard:not(.layout-touch) .metric-unit{min-width:1.8em}.dashboard:not(.layout-touch) .value-box{min-width:3.6em}.dashboard:not(.layout-touch) .value-box.wide{min-width:4.9em}.status-box{background:var(--panel-bg);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.4em;padding:.35em .55em;display:grid}.status-list{background:var(--panel-bg);gap:.58em;padding:.75em .7em;display:grid}.dashboard.density-dense .status-list{gap:.18em;padding:.42em .48em;font-size:.9em}.dashboard.density-dense .status-pill{min-height:1.25em;padding:0 .3em}.dashboard.density-dense .indicator-square,.dashboard.density-dense .indicator-round{width:1em;height:1em}.dashboard.density-dense .tank .label-text{font-size:.86em;line-height:.95}.status-item{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.4em;font-weight:700;display:grid}.indicator-square,.indicator-round{background:#d8d8d8;border:2px solid #777;width:1.2em;height:1.2em}.indicator-round{border-radius:50%}.indicator-square.state-on,.indicator-round.state-on,.status-pill.state-on,.status-pill.state-ok{background:var(--ok);color:#fff}.indicator-square.state-alarm,.indicator-round.state-alarm,.status-pill.state-alarm{background:var(--alarm);color:#fff}.indicator-square.state-warning,.indicator-round.state-warning,.status-pill.state-warning{background:var(--warning);color:#111}.indicator-square.state-off,.indicator-round.state-off{background:#d8d8d8}.status-pill{color:#111;white-space:nowrap;background:#e5e5e5;border:1px solid #777;place-items:center;min-width:3.45em;min-height:1.55em;padding:0 .45em;font-weight:800;display:inline-grid}.matrix-panel .status-pill,.dashboard.theme-terminal .status-pill{color:#95fca3;background:#000;border-color:#408f58}.pipe{background:var(--line)}.thin-lines .pipe,.pipe.thin{opacity:.72}.pipe.horizontal{height:.45%}.pipe.vertical{width:.28%}.pipe.thick.horizontal{height:.7%}.pipe.thick.vertical{width:.45%}.pump,.valve,.sensor-dot{border:2px solid var(--line);background:#b8b8b8;place-items:center;display:grid}.pump{border-radius:50%}.pump:after{content:"";border-top:.55em solid #0000;border-bottom:.55em solid #0000;border-left:.9em solid #555;width:0;height:0}.valve{border-radius:50%}.valve:before,.valve:after{content:"";border-top:.75em solid #0000;border-bottom:.75em solid #0000;width:0;height:0;position:absolute}.valve:before{border-right:1em solid #555;left:18%}.valve:after{border-left:1em solid #555;right:18%}.sensor-dot{background:var(--screen-bg);border-radius:50%}.device-block{background:#777;border:2px solid #444}.dashboard.theme-high-contrast .device-block,.dashboard.theme-terminal .device-block{border-color:var(--line);background:#111a1f}.dashboard.theme-production .device-block{background:#e0e4e3;border-color:#667074}.label-text{color:var(--ink);text-align:center;white-space:pre-line;font-weight:700;line-height:1.08}.large-title{letter-spacing:0;font-size:1.5em;font-weight:900;line-height:.95}.dashboard.theme-production .large-title{color:#f2f5f1}.label-text.left-title{text-align:left}.label-text.sidebar-title{color:#f3f8fa;writing-mode:vertical-rl;background:#101417;place-items:center;font-size:1.18em;display:grid;transform:rotate(180deg)}.label-text.digital-title{color:var(--ink);font-family:Courier New,Courier,monospace;font-size:1.55em}.label-text.small-label{font-size:1em;font-weight:800}.ps-titlebar{color:#262626;background:#e9e9e9;border:1px solid #777;place-items:center;font-size:.86em;line-height:1;display:grid}.ps-brand,.ps-symbol,.ps-events{color:#151515;background:#f4f4f4;border:2px solid #d7d7d7;align-items:center;font-weight:800;display:grid}.ps-brand{text-align:right;justify-items:center;padding:.4em;font-size:.82em;line-height:.95}.ps-symbol{color:#d62228;background:#070707;border-radius:.4em;place-items:center;font-size:4em;font-weight:900}.ps-events{color:#a95818;text-align:left;align-items:start;padding:.45em .8em;font-size:.78em;line-height:1.15}.ps-mainnav{color:#f0fff0;text-align:left;background:#069426;justify-content:flex-start;align-items:center;padding:0 2.4em;font-size:.86em;font-weight:800;display:flex}.ps-subnav{color:#222;text-align:left;background:#f7f7f7;border-bottom:1px solid #b8b8b8;align-items:center;padding:0 1.7em;font-size:.86em;font-weight:800;display:flex}.ps-user{color:#fff;background:#050505;border:2px solid #fff;place-items:center;font-size:.96em;display:grid}.ps-feeder-label,.ps-switch-label,.ps-transformer-label,.ps-transformer-out{color:#f4f6f8;font-size:.95em;font-weight:900;line-height:.88}.ps-transformer-out{line-height:.94}.ps-feeder-label.active,.ps-switch-label.active,.ps-transformer-out.active{color:#63bb5b}.pipe.ps-white-line{background:#f4f4f4}.pipe.ps-green-line{background:#65bd55}.pipe.ps-switch{transform-origin:50%;transform:rotate(-42deg)}.ps-protection{color:#f7f7f7;text-align:left;background:#3d3d3d;border:2px solid #f7f7f7;border-radius:.45em;padding:.35em .55em;font-size:.74em;line-height:1.03;display:block}.ps-red-bit,.ps-dark-bit{color:#fff;place-items:center;font-size:.72em;line-height:1;display:grid}.ps-red-bit{background:#d71518}.ps-dark-bit{background:#111}.ps-meter-value{place-items:center;display:grid}.label-text.ps-meter-value .status-pill{color:#111;background:#f7f7f7;border-color:#d8d8d8;width:100%;min-width:0;min-height:100%;padding:0;font-size:.82em;line-height:1}.ps-meter-unit{color:#111;background:#f7f7f7;border:1px solid #d8d8d8;place-items:start center;font-size:.58em;line-height:.8;display:grid}.ps-stacked-meter{color:#111;background:#f6f6f6;border-radius:.25em;place-items:center;font-size:.8em;line-height:1.15;display:grid}.pump.ps-transformer-circle{background:#050505;border-color:#f3f3f3}.pump.ps-transformer-circle.active{border-color:#58b94d}.pump.ps-transformer-circle:after{color:#f7f7f7;background:0 0;border-top:0;border-bottom:.22em solid;border-left:.22em solid;border-right:0;width:1.6em;height:1.6em;transform:rotate(135deg)}.ps-sw-logo{color:#43a047;background:#f7f7f7;border-radius:.35em;place-items:center;font-size:.65em;display:grid}.ign-titlebar,.ign-toolbar,.ign-pane,.ign-ruler,.ign-canvas{color:#34404a;text-align:left;border:1px solid #b8c0c7}.ign-titlebar{color:#8a8f94;background:#f4f4f4;place-items:center;font-size:.68em;display:grid}.ign-toolbar{white-space:nowrap;background:#e8ecef;align-items:center;padding:0 .5em;font-size:.72em;display:flex}.ign-pane{background:#f9fafb;padding:.42em;font-size:.58em;line-height:1.18;overflow:hidden}.ign-left-pane{box-shadow:inset 0 1.45em #e3e8ed}.ign-right-pane{background:#f2f5f7}.ign-canvas{background:#f1f1f1;border-color:#9ba4aa;box-shadow:inset 0 0 0 1.6em #e5e5e5}.ign-ruler{background:#f8f8f8;border-bottom-color:#9099a2;align-items:center;padding-left:1em;font-size:.55em;display:flex}.device-block.ign-fan,.device-block.ign-blower{background:radial-gradient(circle at center, #d8d8d8 0 18%, transparent 19%), conic-gradient(from 0deg, #bebebe 0 12%, transparent 12% 25%, #bebebe 25% 37%, transparent 37% 50%, #bebebe 50% 62%, transparent 62% 75%, #bebebe 75% 87%, transparent 87%);border-color:#bfc4c8}.device-block.ign-blower{border-radius:50%}.ign-name-strip,.ign-value-strip{color:#fff;background:#2f4657;border:1px solid #9aa5ad;place-items:center;font-size:.74em;font-weight:800;display:grid}.ign-value-strip{color:#a2e8a1;background:#7e8a8e}.label-text.ign-value-strip .status-pill{color:#9fe39a;background:0 0;border:0;width:100%;min-width:0;min-height:100%;padding:0;font-size:1em}.pipe.ign-pipe{background:#c9c9c9}.valve.ign-valve{background:0 0;border-color:#0000}.valve.ign-valve:before{border-right-color:#2f4657}.valve.ign-valve:after{border-left-color:#2f4657}.valve.ign-valve.closed{opacity:.35}.tank.ign-tank{background:0 0;border:0;grid-template-rows:minmax(0,1fr) auto;font-size:.74em}.tank.ign-tank .label-text{color:#fff;background:#2f4657;order:2;margin-top:.3em;padding:.28em}.tank.ign-tank .tank-body{background:#f5f5f5;border-color:#8e969b;border-radius:.4em;order:1}.tank.ign-tank.dye-red .tank-fill{background:#e87678}.tank.ign-tank.dye-green .tank-fill{background:#95c98e}.tank.ign-tank.dye-yellow .tank-fill{background:#cfc363}.tank.ign-tank.storage .tank-fill{background:#8fcad6}.device-block.ign-cooler{background:repeating-linear-gradient(90deg,#d6d6d6 0 .55em,#bfc4c7 .55em .75em);border-color:#b5bcc1;border-radius:.45em}.table-wrapper.ign-table .table-box{color:#111;background:#fff;font-size:.62em}.table-wrapper.ign-table .table-box th{background:#f3f4f5}.panel.touch-frame{background:#222b36;border:4px solid #596371;border-radius:.35em;padding:0;box-shadow:inset 0 0 0 .28em #0b0e13,0 0 0 .25em #020304}.touch-header-bg{background:linear-gradient(90deg,#0a4c99,#0a3e7a);border:2px solid #536271}.touch-title,.touch-time-label,.touch-date-value{color:#fff;text-align:left;text-shadow:0 .04em #000;justify-content:flex-start;align-items:center;font-size:3.2em;line-height:1;display:flex}.touch-status-banner,.touch-time-value,.touch-date-value{background:#111820;border:3px solid #4e5968;place-items:center;display:grid}.label-text.touch-status-banner .status-pill,.label-text.touch-time-value .status-pill{width:100%;min-width:0;min-height:100%;color:inherit;background:0 0;border:0;padding:0;font-size:1em}.label-text.touch-status-banner .status-pill{color:#fff;background:#0a7a21;font-size:3.2em}.touch-time-label,.touch-time-value,.touch-date-value{color:#ffe36e;font-size:2.55em}.panel.touch-readings{color:#fff;background:#232a33;border:3px solid #596371}.panel.touch-readings .panel-title{text-align:center;border-bottom:3px solid #7b8795;margin:-.1em -.1em .25em;padding-bottom:.35em;font-size:1.9em}.panel.touch-readings .metric-row{border-bottom:2px solid #6f7a88;grid-template-columns:minmax(0,1fr) auto auto;gap:.5em;min-height:4em}.panel.touch-readings .metric-label,.panel.touch-readings .metric-unit{color:#fff;font-size:1.75em;font-weight:900}.panel.touch-readings .value-box{color:#a8e75d;background:0 0;border:0;min-width:4.2em;font-size:1.9em}.touch-alarm-head,.touch-alarm-body{color:#fff;border:3px solid #7b0b08;place-items:center;font-size:3em;font-weight:900;display:grid}.touch-alarm-head{background:#dc130c}.touch-alarm-body{background:#1f262e}.label-text.touch-alarm-body .status-pill{color:#fff;background:0 0;border:0;width:100%;min-width:0;min-height:100%;padding:0;font-size:1.55em}.touch-warning{color:#111;clip-path:polygon(50% 2%,98% 92%,2% 92%);background:#ffc827;border:.45em solid #111;place-items:center;font-size:4.4em;font-weight:900;line-height:.75;display:grid}.panel.touch-tile{color:#fff;background:#151b22;border:3px solid #202832;padding:0}.panel.touch-tile .panel-title{color:#fff;border-bottom:3px solid #7b8795;place-items:center;height:43%;min-height:0;margin:0;font-size:2.25em;line-height:.92;display:grid}.panel.touch-tile .metric-row{justify-content:center;align-items:center;gap:.35em;height:50%;min-height:0;margin:0;display:flex}.panel.touch-tile .value-box{color:#fff;background:0 0;border:0;min-width:0;font-size:3.4em}.panel.touch-tile .metric-unit{color:#fff;font-size:1.55em;font-weight:900}.panel.touch-blue .panel-title{background:linear-gradient(#0756a4,#06417f)}.panel.touch-green .panel-title,.panel.touch-green{background:linear-gradient(#0b8528,#065f1d)}.touch-action{color:#fff;border:3px solid #101820;border-radius:.12em;font-size:2em;box-shadow:inset 0 0 0 .12em #ffffff2e}.touch-reset{background:linear-gradient(#4b5361,#262c35)}.touch-auto{background:linear-gradient(#0c8c25,#075c19)}.touch-manual{color:#111;background:linear-gradient(#ffc82e,#c78a00)}.tank{text-align:center;grid-template-rows:auto minmax(0,1fr);gap:.4em;font-weight:700;display:grid}.tank.soft-panel,.tank.low-contrast-panel{background:#f0f3ef99;border:1px solid #5c676073;padding:.35em}.tank.low-contrast-panel{color:#4c5d66;background:#c7d3d8c7}.tank-body{background:#a7a7a7;border:2px solid #555;border-top-left-radius:24% 12%;border-top-right-radius:24% 12%;position:relative;overflow:hidden}.tank-fill{background:#fff3;height:50%;position:absolute;bottom:0;left:0;right:0}.tank .value-box{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.inline-unit{color:var(--ink);position:absolute;top:45%;left:calc(50% + 2.3em);transform:translateY(-50%)}.table-box{border-collapse:collapse;table-layout:fixed;background:var(--panel-bg);width:100%;height:100%;font-size:.96em;line-height:.94}.table-wrapper{overflow:hidden}.table-wrapper.matrix-table .table-box{color:#9fe8a8;background:#061009;font-family:Courier New,Courier,monospace}.table-wrapper.matrix-table .table-box th{color:#c3ffca;background:#122419}.table-wrapper.high-contrast-table .table-box{color:#f8fbff;background:#05080a;font-size:1em}.table-wrapper.high-contrast-table .table-box th{color:#f2d55f;background:#182330}.table-wrapper.low-contrast-table .table-box{color:#4a5a63;background:#c8d4d9}.table-wrapper.narrow-table .table-box,.table-wrapper.wide-table .table-box{font-size:1em}.table-wrapper.narrow-table .table-box th,.table-wrapper.narrow-table .table-box td{padding:.18em .22em}.table-box td .fg-value{min-width:3.75em}.table-box th,.table-box td{text-align:right;text-overflow:ellipsis;white-space:nowrap;border:1px solid #888;padding:.16em .24em;overflow:hidden}.table-box th:first-child,.table-box td:first-child{text-align:left}.table-box th{background:#c9c9c9;font-weight:800}.bar-frame{background:#eee;border:1px solid #777;width:100%;height:1.25em;position:relative;overflow:hidden}.bar-frame.tall-bar,.component.tall-bar .bar-frame{height:1.75em}.dashboard.theme-terminal .bar-frame,.matrix-panel .bar-frame{background:#020604;border-color:#408f58}.dashboard.theme-terminal .bar-fill,.matrix-panel .bar-fill{background:#21b35f}.dashboard.theme-low-contrast .bar-fill{background:#7b98a4}.dashboard.theme-high-contrast .bar-fill{background:#f2d55f}.dashboard.theme-production .bar-fill{background:#1eb268}.bar-fill{background:#69a36f;width:50%;position:absolute;inset:0 auto 0 0}.bar-label{color:#111820;white-space:nowrap;justify-content:center;align-items:center;gap:.25em;font-weight:800;line-height:1;display:flex;position:absolute;inset:0}.dashboard.theme-terminal .bar-label,.dashboard.theme-dark .bar-label{color:#f4fff5;text-shadow:0 1px 2px #000}.dashboard.theme-high-contrast .bar-label{color:#050505}.screen-noise{pointer-events:none;opacity:0;mix-blend-mode:screen;background-image:linear-gradient(110deg,#0000 0 42%,#ffffff2e 46%,#0000 53%),repeating-linear-gradient(0deg,#0000000f 0 1px,#0000 1px 4px);position:absolute;inset:0}.dashboard.effect-glare .screen-noise{opacity:.72}.dashboard.effect-scanlines .screen-noise{opacity:.36}.dashboard.effect-noise .screen-noise{opacity:.46;mix-blend-mode:multiply}.bottom-nav{background:#c9c9c9;grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(18,1fr);gap:.25%;padding:.28%;font-size:clamp(9.6px,.82cqw,14px);line-height:.88;display:grid}.bottom-nav .nav-cell{padding:.02em .1em;line-height:.88}.nav-cell.active{background:linear-gradient(#bfc1bd,#8a8d88);outline:2px solid #b6a846}.setpoint-panel{background:var(--panel-bg);flex-direction:column;justify-content:center;align-items:stretch;gap:9%;padding:9%;display:flex}.setpoint-panel .hmi-button{flex:0 0 24%;width:100%;font-size:.9em;overflow:hidden}.sim-controls{overscroll-behavior:contain;color:#14202b;z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8fafcf5;border:1px solid #14202b24;border-radius:8px;width:min(360px,100vw - 36px);max-height:calc(100dvh - 16px);padding:14px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;overflow:auto;box-shadow:0 22px 70px #00000057}.sim-controls.minimized{border-radius:999px;width:auto;min-width:0;padding:8px}.minimized-controls{cursor:grab;touch-action:none;align-items:center;gap:8px;display:flex}.minimized-controls:active,.control-panel-header:active{cursor:grabbing}.control-panel-header{cursor:grab;touch-action:none;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.control-panel-header h1,.control-eyebrow{margin:0}.control-panel-header h1{color:#101820;font-size:20px;font-weight:760;line-height:1.1}.control-eyebrow{color:#607083;letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:760}.control-row{grid-template-columns:1fr;gap:6px;margin-bottom:12px;display:grid}.control-row label{color:#526173;letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:760}.control-row select{color:#111827;background:#fff;border:1px solid #c9d2dc;border-radius:6px;outline:none;width:100%;min-width:0;height:38px;padding:0 10px}.control-row select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb29}.button-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.button-grid button,.export-actions button,.ghost-button,.restore-controls{color:#17212d;cursor:pointer;background:#fff;border:1px solid #c7d0dc;border-radius:6px;min-height:36px;font-size:13px;font-weight:760;line-height:1}.button-grid button:hover,.export-actions button:hover,.ghost-button:hover,.restore-controls:hover{background:#f1f5f9;border-color:#a9b8c9}.button-grid .primary-action{color:#fff;background:#155eef;border-color:#155eef;grid-column:1/-1}.button-grid .primary-action:hover{background:#0f4fcf;border-color:#0f4fcf}.button-grid .live-toggle,.button-grid .record-toggle,.button-grid .extremes-toggle{grid-column:1/-1}.button-grid .live-toggle.running{color:#7f1d1d;background:#fff7ed;border-color:#fdba74}.button-grid .live-toggle.running:hover{background:#ffedd5;border-color:#fb923c}.button-grid .live-toggle.paused{color:#065f46;background:#ecfdf5;border-color:#86efac}.button-grid .live-toggle.paused:hover{background:#d1fae5;border-color:#4ade80}.button-grid .record-toggle.idle{color:#991b1b;background:#fff1f2;border-color:#fca5a5}.button-grid .record-toggle.idle:hover{background:#ffe4e6;border-color:#fb7185}.button-grid .record-toggle.recording{color:#fff;background:#dc2626;border-color:#dc2626}.button-grid .record-toggle.recording:hover{background:#b91c1c;border-color:#b91c1c}.button-grid .extremes-toggle.disabled{color:#334155;background:#f8fafc;border-color:#cbd5e1}.button-grid .extremes-toggle.disabled:hover{background:#eef2f7}.button-grid .extremes-toggle.enabled{color:#842029;background:#fff1f2;border-color:#fda4af}.button-grid .extremes-toggle.enabled:hover{background:#ffe4e6;border-color:#fb7185}.live-state,.record-state{border-radius:6px;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;font-size:12px;font-weight:760;display:flex}.record-state{margin-top:6px}.live-state span,.record-state span{border-radius:50%;width:8px;height:8px}.live-state.running{color:#166534;background:#ecfdf3}.live-state.running span{background:#22c55e;box-shadow:0 0 0 4px #22c55e29}.live-state.paused{color:#92400e;background:#fffbeb}.live-state.paused span{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b29}.record-state.recording{color:#991b1b;background:#fef2f2}.record-state.recording span{background:#ef4444;box-shadow:0 0 0 4px #ef444429}.record-state.idle{color:#475569;background:#f8fafc}.record-state.idle span{background:#94a3b8;box-shadow:0 0 0 4px #94a3b824}.ghost-button{color:#536273;background:#f8fafc;min-height:30px;padding:0 10px}.minimized-controls span{color:#526173;white-space:nowrap;padding-left:6px;font-size:12px;font-weight:760}.restore-controls{min-height:28px;padding:0 11px}.export-actions{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;display:grid}.control-status{color:#607083;min-height:17px;margin:10px 0 0;font-size:12px;line-height:1.35}@media (max-width:900px){.sim-controls{width:calc(100vw - 24px)}}
