:root{--frame: #c0c0c0;--screen: #dcdcdc;--button: #e6e6e6;--edge: #7f7f7f;--ink: #000;--title: #3c4650;--alarm: #ff746c;--on: #77dd77;--accent: #b7e9e9;--font: Arial, "Liberation Sans", Helvetica, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:gray;color:var(--ink);font:14px/1.35 var(--font)}h1,h2,p{margin:0}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid #1e88e5;outline-offset:1px}.boot{min-height:100vh;display:grid;place-items:center;color:#fff}.login{min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--frame)}.login-form{width:min(380px,100%);display:grid;gap:12px;padding:0 0 18px;background:var(--screen);border:1px solid var(--edge);box-shadow:0 6px 24px #00000040}.login-form>:not(h1):not(.login-mark){margin:0 18px}.login-mark{display:none}.login h1{background:var(--title);color:#fff;font-size:16px;font-weight:700;padding:10px 14px}.login-intro{color:#333}.login label{display:grid;gap:4px;font-size:13px}.login input{font:inherit;padding:6px 8px;border:1px solid #64646a;background:#fff;border-radius:0}.login button[type=submit]{background:var(--button);border:1px solid var(--edge);padding:8px;font-weight:700}.login button[type=submit]:hover{background:#d6d6d6}.login button:disabled{opacity:.6;cursor:default}.login-error{color:#b00020;font-size:13px}.hmi-stage{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.hmi{display:block;width:min(100vw,calc((100vh - 28px) * 16 / 9));height:auto;background:var(--frame);-webkit-user-select:none;user-select:none}.hmi .fp-open{cursor:pointer}.hmi .fp-open:hover>rect:first-child{fill:#1e88e51f}.hmi .fp-open:focus-visible{outline:2px solid #1e88e5}.hmi .fp-disabled{cursor:not-allowed}.hmi-bar{width:min(100vw,calc((100vh - 28px) * 16 / 9));height:28px;display:flex;align-items:center;gap:16px;padding:0 10px;background:#4a4a4a;color:#eee;font-size:12px}.hmi-bar button{margin-left:0;background:var(--button);border:1px solid var(--edge);padding:1px 10px;font-size:12px}.hmi-link{margin-right:auto;display:inline-flex;align-items:center;gap:6px}.hmi-link:before{content:"";width:9px;height:9px;border-radius:50%;background:#969696}.hmi-link-connected:before{background:#00ba00}.hmi-link-disconnected:before,.hmi-link-error:before{background:var(--alarm)}.hmi-popup-layer{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#00000026;z-index:10;padding:12px}.hmi-popup{width:min(480px,100%);max-height:calc(100vh - 24px);overflow:auto;background:var(--screen);border:1px solid #4a4a4a;box-shadow:0 10px 30px #00000059}.hmi-popup header{display:flex;align-items:center;gap:8px;background:var(--title);color:#fff;padding:6px 6px 6px 12px;position:sticky;top:0}.hmi-popup h2{font-size:15px;font-weight:700;flex:1}.hmi-popup header button{background:transparent;color:#fff;border:1px solid transparent;width:28px;height:26px;font-size:14px}.hmi-popup header button:hover{border-color:#fff}.hmi-popup-body{padding:12px;display:grid;gap:10px}.hmi-status{padding:8px 10px;border:1px solid var(--edge);font-weight:700}.hmi-facts{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px}.hmi-facts div{display:grid;grid-template-columns:90px 1fr;align-items:center}.hmi-facts dt{font-size:12px;color:#333}.hmi-facts dd{margin:0;background:#fff;border:1px solid #64646a;padding:2px 6px;text-align:right}.hmi-popup fieldset{border:1px solid #9a9a9a;margin:0;padding:6px 10px 8px}.hmi-popup legend{font-size:12px;font-weight:700;padding:0 4px}.hmi-popup ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;font-size:13px}.hmi-popup li{display:flex;align-items:center;gap:6px}.led{width:12px;height:12px;border:1px solid #333;flex:none}.hmi-note{font-size:12px;color:#444}.alarm-view{display:flex;flex-direction:column;background:#fff;border:1px solid #64646a;font:13px var(--font)}.alarm-view table{width:100%;border-collapse:collapse;table-layout:fixed}.alarm-view thead th{position:sticky;top:0;background:var(--button);border:1px solid #a0a0a0;padding:5px 6px;text-align:left;font-weight:700}.alarm-view td{padding:4px 6px;border-bottom:1px solid #d6d6d6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alarm-scroll{flex:1;overflow:auto}.alarm-view tr.st-acknowledged{background:#f0f0f0;color:#444}.alarm-view tr.st-cleared{box-shadow:inset 4px 0 var(--alarm)}.alarm-view tr.selected td{outline:2px solid #1e88e5;outline-offset:-2px}.alarm-view tbody tr{cursor:pointer}.alarm-toolbar{display:flex;align-items:center;gap:10px;padding:6px;background:var(--button);border-top:1px solid #a0a0a0}.alarm-toolbar span:first-child{margin-right:auto}.alarm-toolbar button{background:#fff;border:1px solid var(--edge);padding:4px 14px}.alarm-toolbar button:disabled{opacity:.5;cursor:default}.alarm-error{color:#b00020}.hmi-scroll{overflow:auto;background:#dcdcdc}.hmi-notice{padding:2px 8px;border-radius:2px}.hmi-notice-info{background:#7d7;color:#000}.hmi-notice-error{background:#ff746c;color:#000}.hmi-popup-screen{width:auto;max-width:calc(100vw - 24px)}.hmi-confirm{width:min(400px,100%)}.hmi-confirm-actions{display:flex;gap:10px;justify-content:flex-end}.hmi-confirm-actions button{background:var(--button);border:1px solid var(--edge);padding:8px 18px;font-weight:700}.hmi-confirm-actions .hmi-primary{background:#ffc000}.hmi-sim-row{display:grid;grid-template-columns:auto 90px auto 90px;align-items:center;gap:8px 12px;font-size:13px}.hmi-sim-row button{border:1px solid var(--edge);padding:5px 0;font-weight:700}.hmi-sim-ask{margin-top:10px;padding:8px 10px;background:#fff3d6;border:1px solid #f5a623;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hmi-sim-ask p{flex:1 1 100%;font-size:13px}.hmi-sim-ask button{background:var(--button);border:1px solid var(--edge);padding:4px 12px}.hmi-sim-ask .hmi-primary{background:#ffc000;font-weight:700}.hmi-cmd-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.hmi-cmd-row button{background:var(--button);border:1px solid var(--edge);padding:6px 14px;font-weight:700;min-width:86px}.hmi-cmd-row button.on-auto{background:#ff9}.hmi-cmd-row button.on-manual{background:#048ae7;color:#fff}.hmi-cmd-row button.on-off{background:#969696}.hmi-num{display:grid;grid-template-columns:120px minmax(0,1fr) 40px auto;gap:8px;align-items:center;margin-top:6px;font-size:13px}.hmi-num input{min-width:0}.hmi-num input,.hmi-field input,.hmi-field select{font:inherit;padding:5px 8px;border:1px solid #64646a;background:#fff;text-align:right}.hmi-num button,.hmi-tags button{background:var(--button);border:1px solid var(--edge);padding:4px 10px}.hmi-num button:disabled,.hmi-tags button:disabled{opacity:.5;cursor:default}.hmi .hmi-input:hover>rect{stroke:#1e88e5;stroke-width:2}.hmi-field{width:min(380px,100%)}.hmi-field input,.hmi-field select{width:100%;font-size:18px}.hmi-error{color:#b00020;font-size:13px}.hmi-tags{position:fixed;top:0;right:0;bottom:28px;width:min(560px,100vw);z-index:9;display:flex;flex-direction:column;background:var(--screen);border-left:1px solid #4a4a4a;box-shadow:-10px 0 30px #00000040;padding:0 0 8px}.hmi-tags header{display:flex;align-items:center;background:var(--title);color:#fff;padding:6px 6px 6px 12px}.hmi-tags header h2{flex:1;font-size:15px}.hmi-tags header button{background:transparent;color:#fff;border:1px solid transparent}.hmi-tags-search{margin:10px 12px 4px;font:inherit;padding:6px 8px;border:1px solid #64646a}.hmi-tags>.hmi-note{margin:0 12px 6px}.hmi-tags ul{list-style:none;margin:0;padding:0 12px;overflow:auto;flex:1}.hmi-tags li{display:grid;grid-template-columns:minmax(0,1fr) 90px 170px;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid #c8c8c8;font-size:12px}.hmi-tags .path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Consolas,monospace}.hmi-tags .val{text-align:right;font-weight:700;overflow:hidden;text-overflow:ellipsis}.hmi-tags .val.bad{color:#8a8a8a;font-weight:400}.hmi-tags form{display:flex;gap:4px}.hmi-tags form input{width:100%;min-width:0;font:inherit;padding:3px 6px;border:1px solid #64646a}
