:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#263b3a;background:#f4f6f5;font-synthesis:none;--green:#1c6b56;--ink:#183d38;--muted:#72827e;--border:#e1e7e3;--soft:#edf3ee;--red:#bc4944}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button{border:1px solid var(--border);border-radius:7px;background:#fff;color:#3b504b;padding:9px 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:550;transition:background .15s,border-color .15s}button:hover{background:#f0f5f1;border-color:#bccdc3}button:focus-visible,a:focus-visible{outline:3px solid #77b9a4;outline-offset:2px}button svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#14533f;border-color:#14533f}.danger{color:var(--red)}.subtle{background:transparent;border-color:transparent}.small{font-size:11px;padding:6px 9px}.icon-button{padding:8px}.shell{min-height:100vh;display:grid;grid-template-columns:64px 1fr}.rail{background:#143c36;display:flex;align-items:center;flex-direction:column;padding:24px 0 18px;gap:22px;color:#92b4a8;position:sticky;top:0;height:100vh}.mark{width:33px;height:34px;display:grid;place-items:center;color:#e3eee5;font-weight:700;font-size:20px;border:1px solid #6e9585;border-radius:9px;letter-spacing:-3px;padding-right:3px}.rail button{color:#9ebeb1;background:transparent;border:0;width:38px;height:38px}.rail button.active{background:#31574a;color:#edf4df}.rail button svg{width:19px;height:19px}.rail .spacer{flex:1}.avatar{width:31px;height:31px;background:#33594c;border:1px solid #5c7e6c;border-radius:50%;font-size:11px;display:grid;place-items:center;color:#dce8d8}.main{min-width:0}.topbar{height:76px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:13px}.brand strong{font-size:19px;color:#213f36;letter-spacing:-.6px}.brand .divider{width:1px;height:21px;background:var(--border)}.brand small{color:#84918b;font-size:10px;text-transform:uppercase;letter-spacing:1.5px}.top-actions{display:flex;gap:8px;align-items:center}.privacy{font-size:10px;color:#698173;display:flex;align-items:center;gap:6px;margin-right:9px}.privacy svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.5}.page{padding:25px 28px 16px;max-width:1920px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px;gap:15px}.eyebrow{color:#6b8275;font-size:9px;font-weight:650;text-transform:uppercase;letter-spacing:1.7px;margin-bottom:7px}.page-heading h1{font-size:25px;font-weight:580;letter-spacing:-.8px;margin:0 0 6px;color:#243f34}.page-heading p{margin:0;font-size:12px;color:var(--muted)}.heading-side{display:flex;align-items:center;gap:15px;font-size:11px;color:#82918a}.badge{background:#e8f0e6;color:#59714d;font-size:10px;border-radius:5px;padding:5px 7px;white-space:nowrap}.tabs{display:flex;gap:23px;align-items:center;border-bottom:1px solid var(--border);margin-bottom:20px}.tabs button{border:0;border-radius:0;background:none;color:#87928a;font-size:12px;padding:0 1px 13px;position:relative}.tabs button.active{color:#1b5b45;font-weight:650}.tabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#327854}.tabs .tab-end{margin-left:auto;font-size:10px;color:#91a096;padding-bottom:13px;display:flex;align-items:center;gap:6px}.dot{width:5px;height:5px;border-radius:50%;background:#549368;display:inline-block}.workbench{display:grid;grid-template-columns:181px minmax(0,1fr) 263px;border:1px solid #dbe3dc;border-radius:10px;background:white;overflow:hidden;min-height:590px;box-shadow:0 3px 8px #24472f03}.palette{border-right:1px solid var(--border);padding:18px 13px;background:#fbfcfa}.panel-title{font-size:10px;font-weight:650;letter-spacing:1px;text-transform:uppercase;color:#7c8c7d;display:flex;align-items:center;justify-content:space-between;margin:0 0 16px}.palette>p{font-size:10px;color:#8c9a8e;line-height:1.6;margin:8px 0 17px}.part{width:100%;justify-content:flex-start;padding:12px 9px;margin-bottom:7px;background:white;border-color:#e5ebe3;gap:10px;text-align:left}.part svg{width:27px;height:27px;color:#5c7864}.part span{font-size:11px}.part .plus{margin-left:auto;color:#99ab9a;font-size:15px;font-weight:400}.palette-bottom{border-top:1px solid var(--border);padding-top:18px;margin-top:20px}.palette-bottom button{width:100%;justify-content:flex-start;font-size:10px;margin-bottom:6px;padding:8px}.palette-note{font-size:9px;line-height:1.7;color:#9aa59a;padding:12px 3px}.canvas-column{min-width:0;display:flex;flex-direction:column;position:relative}.canvas-toolbar{height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:0 13px;gap:8px}.tool-group{display:flex;align-items:center;gap:4px}.tool-group button{padding:6px;border-color:transparent;border-radius:4px;font-size:10px}.tool-group button.active{background:#eaf2e9;color:#32734d;border-color:#dce7d8}.tool-divider{height:18px;width:1px;background:var(--border);margin:0 6px}.mode-label{font-size:9px;color:#8b978b;letter-spacing:.3px}.board-wrap{position:relative;flex:1;min-height:430px;overflow:hidden;background:#fcfdfa}.board{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;user-select:none}.board .node{cursor:grab}.board .node:active{cursor:grabbing}.board text{font-family:Inter,"Segoe UI",sans-serif;pointer-events:none}.board .tag{font-family:"SFMono-Regular",Consolas,monospace;font-size:13px;font-weight:600;fill:#345145}.board .node-name{font-size:11px;fill:#788c7c}.board .node-state{font-size:10px;fill:#7a907f}.board .port{fill:#fff;stroke:#7e9b86;stroke-width:1.8;cursor:crosshair;opacity:0}.board .node:hover .port,.board.connecting .port,.board .node.selected .port{opacity:1}.board .edge-hit{stroke:transparent;stroke-width:17;fill:none;cursor:pointer}.board .pipe{stroke:#9daf9e;stroke-width:2.4;fill:none;pointer-events:none}.board .pipe.active{stroke:#378c60;stroke-width:3;stroke-dasharray:8 5;animation:flow .7s linear infinite}.board .pipe.selected{stroke:#2d886a;stroke-width:4}.board .signal{stroke:#a0b39f;stroke-width:1.5;stroke-dasharray:5 4;fill:none}.board .edge-label{font-family:Consolas,monospace;font-size:9px;fill:#99a798}.board .selected-ring{fill:#edf5e633;stroke:#6a9a64;stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}.board .note-text{font-size:10px;fill:#91a08d;letter-spacing:1.3px}.board .symbol{stroke:#5d7b66;stroke-width:2;fill:#f9fcf5}.board .on .symbol{stroke:#318454;fill:#edf6e9}.board .fault .symbol{stroke:#c46454;fill:#fff1ec}.canvas-float{position:absolute;left:16px;bottom:14px;display:flex;gap:0;align-items:center;box-shadow:0 2px 8px #314b2510;background:white;border:1px solid var(--border);border-radius:6px;overflow:hidden}.canvas-float button{border:0;border-radius:0;padding:6px 9px}.canvas-float span{font-size:10px;min-width:39px;text-align:center;color:#8c9b8d}.canvas-float .sep{border-left:1px solid var(--border)}.board-hint{position:absolute;top:12px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;color:#5d7e66;background:#f4f8edec;border:1px solid #e0e9d8;border-radius:5px;padding:6px 10px;pointer-events:none}.legend{height:37px;border-top:1px solid var(--border);display:flex;align-items:center;gap:17px;padding:0 15px;font-size:9px;color:#92a08f}.legend-item{display:flex;align-items:center;gap:6px}.legend-line{height:2px;width:15px;background:#97ad99}.legend-line.green{background:#42895a}.legend-line.red{background:#bd6550}.legend .count{margin-left:auto;font-family:Consolas,monospace}.inspector{border-left:1px solid var(--border);background:#fff;padding:18px 17px;max-height:660px;overflow:auto}.inspect-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px}.inspect-heading h2{font-size:14px;letter-spacing:-.3px;margin:0}.inspect-type{font-size:10px;color:#93a18f;margin-bottom:15px}.form-row{display:flex;gap:9px}.field{display:block;margin-bottom:12px;min-width:0;flex:1}.field>span{display:block;font-size:10px;color:#849280;margin-bottom:6px}.field input,.field textarea,.field select,.dialog-body input,.dialog-body select{width:100%;border:1px solid #dfe6db;border-radius:5px;background:#fdfefb;color:#43573e;font-size:11px;padding:8px 9px;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:#6f9c71;box-shadow:0 0 0 2px #689a6812}.field textarea{resize:vertical;min-height:60px;line-height:1.5}.readout{padding:15px;background:#f2f6ed;border:1px solid #e5ecde;border-radius:7px;margin-bottom:16px}.readout .readout-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.readout strong{font-size:29px;font-weight:500;color:#486840;letter-spacing:-1.5px}.readout strong small{font-size:13px;margin-left:4px;letter-spacing:0}.readout .caption{font-size:9px;color:#86997b}.meter{height:5px;background:#dce5d3;border-radius:3px;overflow:hidden}.meter i{display:block;height:100%;background:#7b9d62;border-radius:3px}.readout p{margin:8px 0 0;font-size:9px;color:#8a9a7d}.section-label{font-size:9px;color:#8c9a85;text-transform:uppercase;letter-spacing:1px;margin:18px 0 10px;display:flex;justify-content:space-between;align-items:center}.state-card{display:flex;justify-content:space-between;align-items:center;padding:10px 11px;border:1px solid var(--border);border-radius:6px;font-size:11px;margin-bottom:9px}.state-chip{font-size:9px;padding:4px 7px;border-radius:4px;background:#eff2eb;color:#87947d}.state-chip.on{background:#e9f2e4;color:#50814a}.state-chip.error{background:#fff0ea;color:#bd674f}.full{width:100%}.inspect-note{font-size:10px;line-height:1.65;color:#8c9983}.error-note{font-size:10px;color:#b9604a;line-height:1.6;background:#fff5ef;border:1px solid #f3e3d8;border-radius:5px;padding:8px;margin-bottom:8px}.rule-item{display:flex;gap:8px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #edf0e8;font-size:10px;line-height:1.5}.rule-light{width:6px;height:6px;border-radius:50%;background:#82a571;flex:none;margin-top:4px}.rule-light.off{background:#d8ae6b}.rule-item span{flex:1}.rule-item small{display:block;color:#9ba58f;font-size:9px}.rule-item button{padding:1px;border:0;background:none;color:#a8ae9c}.rule-item button svg{width:12px;height:12px}.sim-panel{display:grid;grid-template-columns:1fr 1.12fr;gap:18px;margin-top:18px}.scenario-card,.event-card{border:1px solid var(--border);background:white;border-radius:8px;padding:17px 19px;min-width:0}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.card-heading h2{font-size:12px;font-weight:600;margin:0;display:flex;align-items:center;gap:7px}.card-heading h2 svg{width:14px;height:14px;fill:none;stroke:#678666;stroke-width:1.5}.card-heading>span{color:#9ba58e;font-family:Consolas,monospace;font-size:10px}.scenario-options{display:flex;gap:6px;margin-bottom:11px;flex-wrap:wrap}.scenario-options button{font-size:10px;padding:7px 10px}.scenario-options button.active{color:#517548;background:#eef4e9;border-color:#cbd9bd}.scenario-desc{color:#8e9a82;font-size:10px;line-height:1.6;margin:0 0 12px;min-height:30px}.sim-controls{display:flex;gap:7px;align-items:center;border-top:1px solid #edf0e7;padding-top:12px}.sim-controls button{font-size:10px}.sim-controls select{font-size:10px;border:1px solid var(--border);border-radius:4px;padding:6px;color:#7f9074;background:#fff;margin-left:auto}.sim-status{font-size:9px;color:#7b9170}.event-list{height:134px;overflow:auto;padding-right:5px}.event{display:grid;grid-template-columns:49px 47px 1fr;gap:8px;border-bottom:1px solid #f0f2eb;padding:8px 0;font-size:10px;align-items:start;line-height:1.5}.event time{color:#a2ab97;font-family:Consolas,monospace;font-size:9px}.event b{font-family:Consolas,monospace;font-size:9px;color:#78916d;font-weight:500}.event span{color:#829279}.event.error b,.event.error span{color:#b16852}.event.success span{color:#5b8655}.empty-events{font-size:11px;color:#a6af9b;text-align:center;padding:20px}.footer{display:flex;justify-content:space-between;align-items:center;color:#9ca591;font-size:9px;gap:15px;padding-top:16px}.footer span{line-height:1.5}.footer b{font-weight:500;color:#8e9b7c}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#254b3b;color:#f2f6e9;box-shadow:0 8px 30px #1d382a24;border:1px solid #739a76;border-radius:8px;padding:12px 20px;max-width:90vw;font-size:12px;z-index:20;transition:.2s}#toast.visible{opacity:1;transform:translate(-50%,0)}#toast.error{background:#864934;border-color:#d4a290}dialog{border:1px solid #d9e3d0;border-radius:12px;box-shadow:0 20px 80px #1a36273a;width:min(460px,94vw);padding:0;color:#395038}dialog::backdrop{background:#203b344d;backdrop-filter:blur(3px)}.dialog-head{padding:21px 23px 0;display:flex;justify-content:space-between;align-items:center}.dialog-head h2{font-size:17px;margin:0}.dialog-body{padding:14px 23px 23px}.dialog-body p{font-size:12px;line-height:1.8;color:#829174}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:21px}.report-wrap{max-width:1240px;margin:0 auto}.report-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.report-toolbar p{font-size:11px;color:#819278;margin:0}.report-actions{display:flex;gap:8px;flex-wrap:wrap}.report-paper{background:white;border:1px solid #dce4d4;border-radius:8px;padding:33px;box-shadow:0 5px 15px #183a2810}.report-header{display:flex;align-items:start;justify-content:space-between;border-bottom:2px solid #567c46;padding-bottom:19px;margin-bottom:15px}.report-header h2{font-size:23px;margin:5px 0 8px;font-weight:550;color:#294b29}.report-header p{font-size:11px;color:#8e9e81;line-height:1.5;margin:0}.report-stamp{font-family:Consolas,monospace;font-size:11px;color:#788b6e;text-align:right;line-height:1.9}.report-board{position:relative;aspect-ratio:2.3;border:1px solid #e8edde;border-radius:5px;margin:17px 0}.report-board .board{position:absolute;pointer-events:none}.report-paper h3{font-size:13px;font-weight:600;color:#4a7040;margin:24px 0 9px}.report-note{font-size:10px;line-height:1.6;color:#8a987d;margin:6px 0 15px}.report-paper table{width:100%;border-collapse:collapse;font-size:10px;line-height:1.6}.report-paper th{text-align:left;font-weight:600;background:#edf3e7;color:#607953;padding:8px;border:1px solid #dee7d3}.report-paper td{padding:8px;border:1px solid #e5ebdd;vertical-align:top;color:#708465}.report-paper td:first-child{font-family:Consolas,monospace}.report-paper .report-section{break-inside:avoid}.report-paper .report-foot{border-top:1px solid var(--border);margin-top:20px;padding-top:12px;font-size:9px;line-height:1.7;color:#95a388}.help{max-width:960px;margin:22px auto;background:white;padding:35px;border-radius:10px;border:1px solid var(--border)}.help h2{font-size:24px;font-weight:550;margin:0 0 13px}.help h3{font-size:14px;margin:24px 0 8px}.help p,.help li{font-size:12px;color:#7a8d6d;line-height:1.9}.help kbd{background:#eff3e9;border:1px solid #dce6d1;border-radius:3px;padding:1px 5px;font-family:inherit;font-size:10px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}@keyframes flow{to{stroke-dashoffset:-26}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:1600px){.workbench{grid-template-columns:200px minmax(0,1fr) 290px;min-height:660px}.board-wrap{min-height:510px}.inspector{max-height:720px}.page{padding:30px 34px}.part{padding:14px 10px}}@media(max-width:1150px){.page{padding:20px 16px}.topbar{padding:0 17px}.workbench{grid-template-columns:146px minmax(0,1fr) 220px}.palette{padding:17px 9px}.part{gap:7px;padding:12px 6px}.part span{font-size:10px}.inspector{padding:17px 12px}.part svg{width:22px}.sim-panel{grid-template-columns:1fr 1fr}.heading-side{gap:8px}.mode-label{display:none}.brand small{font-size:9px}.privacy{display:none}}@media(max-width:850px){.shell{grid-template-columns:48px 1fr}.rail{padding-top:19px}.mark{width:29px;font-size:18px}.topbar{height:66px;padding:0 14px}.brand strong{font-size:17px}.brand small,.brand .divider{display:none}.top-actions{gap:5px}.top-actions button{font-size:10px;padding:7px 9px}.page-heading h1{font-size:21px}.heading-side{display:none}.workbench{grid-template-columns:115px minmax(0,1fr)}.inspector{grid-column:1/-1;border-left:0;border-top:1px solid var(--border);max-height:320px;display:block}.inspector .form-row{max-width:580px}.palette{grid-row:1}.canvas-column{grid-row:1}.board-wrap{min-height:390px}.part{flex-wrap:wrap;padding:9px 5px;justify-content:center;gap:4px}.part .plus{display:none}.part span{width:100%;text-align:center}.palette>p{font-size:9px}.palette-bottom button{font-size:9px;padding:6px 3px}.palette-note{display:none}.sim-panel{grid-template-columns:1fr}.tabs{gap:18px}.tabs button{font-size:11px}.report-paper{padding:20px}.report-toolbar{align-items:start;flex-direction:column}}@media(max-width:520px){.shell{display:block}.rail{display:none}.topbar{padding:0 12px}.brand strong{font-size:16px}.top-actions button{padding:7px}.top-actions button span{display:none}.page{padding:18px 10px}.page-heading{margin-bottom:19px}.page-heading h1{font-size:20px}.page-heading p{font-size:10px}.tabs{gap:18px;margin-bottom:14px}.tabs .tab-end{font-size:0}.workbench{grid-template-columns:75px minmax(0,1fr)}.palette{padding:12px 6px}.palette .panel-title{font-size:8px;letter-spacing:.5px}.palette>p{display:none}.part{padding:8px 2px}.part span{font-size:8px}.part svg{width:22px;height:22px}.palette-bottom button{font-size:8px;flex-wrap:wrap;justify-content:center}.palette-bottom{margin-top:14px;padding-top:10px}.canvas-toolbar{padding:0 6px}.tool-group{gap:0}.tool-group button{padding:5px}.tool-group button .tool-text{display:none}.tool-divider{margin:0 4px}.board-wrap{min-height:330px}.board-hint{font-size:8px;white-space:normal;min-width:190px;text-align:center}.legend{gap:9px;padding:0 8px;font-size:8px}.legend .count{display:none}.canvas-float{left:9px;bottom:10px}.scenario-card,.event-card{padding:14px}.scenario-options button{padding:7px;font-size:9px}.sim-controls{flex-wrap:wrap}.footer{align-items:start;font-size:8px}.help{padding:23px}.help-grid{grid-template-columns:1fr}.report-paper{padding:12px;overflow:auto}.report-header h2{font-size:17px}.report-paper table{font-size:8px}.report-paper th,.report-paper td{padding:5px}.report-stamp{font-size:9px}}@media print{@page{size:A4 landscape;margin:12mm}body{background:white}.rail,.topbar,.page-heading,.tabs,.report-toolbar,.footer,#toast,dialog{display:none!important}.shell{display:block}.page{padding:0}.report-wrap{max-width:none}.report-paper{padding:0;border:0;box-shadow:none}.report-board{height:88mm;aspect-ratio:auto}.report-paper th{background:#eff3e9!important;print-color-adjust:exact}.report-paper .board{print-color-adjust:exact}.report-paper table{font-size:8px}.report-paper th,.report-paper td{padding:5px}.report-header{margin-bottom:8px;padding-bottom:9px}.report-paper h3{margin-top:15px}.report-header h2{font-size:20px}.board .port{display:none!important}.board .pipe.active{animation:none;stroke-dasharray:none}.report-paper .report-section{break-inside:auto}.report-paper tr{break-inside:avoid}.report-paper thead{display:table-header-group}.report-paper h3{break-after:avoid}}

.board.paused .pipe.active{animation:none}.board .node:focus-visible{outline:none}.board .node:focus-visible .symbol{stroke:#2b8061;stroke-width:3}

.palette .part{padding-top:9px;padding-bottom:9px}.palette-note{display:none}.inspector .form-row:has([data-field="name"]){display:block}.board .node-name{fill:#6a816d}.board .node-state{fill:#7b907b}
.panel-title>svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;flex:none}
@media(max-width:520px){.workbench{display:flex;flex-wrap:wrap}.palette{display:flex;flex-wrap:wrap;width:100%;border-right:0;border-bottom:1px solid var(--border);padding:10px;gap:6px}.palette .panel-title{width:100%;margin-bottom:3px}.palette .part{width:calc((100% - 30px)/6);padding:7px 1px;margin:0;flex-direction:column}.palette .part span{font-size:8px}.palette .palette-bottom{width:100%;display:flex;gap:5px;border-top:0;margin:3px 0 0;padding:0}.palette-bottom button{flex:1;margin:0;flex-direction:row;padding:6px 2px}.palette-bottom button svg{width:12px}.canvas-column{width:100%}.board-wrap{height:340px;min-height:340px;flex:none}.inspector{width:100%;max-height:350px}.inspector .panel-title{margin-bottom:15px}.canvas-toolbar{height:40px}}
/* Process control and engineering handoff */
.board .pipe.fault{stroke:#bc654f;stroke-width:3}.board .node-name{fill:#51694f}.board .edge-label{fill:#71876a}
.operations{max-width:1480px;margin:auto}.operations-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:5px 0 18px}.operations-toolbar h2{font-size:17px;margin:0 0 6px;font-weight:600;letter-spacing:-.3px}.operations-toolbar p{font-size:11px;color:#788879;margin:0}.sim-controls.compact{border:0;padding:0;flex-wrap:wrap;justify-content:flex-end}.compact code{font-size:10px;color:#778874}.alarm-metrics{display:flex;gap:10px;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:#fff;margin-bottom:18px;align-items:center}.alarm-metrics>div{display:flex;gap:8px;align-items:center;flex:1;border-right:1px solid #e9ede3;font-size:10px;color:#809076}.alarm-metrics strong{font-size:11px;color:#617454;margin-right:15px}.alarm-dot{width:7px;height:7px;background:#b7c4ab;border-radius:50%;flex:none}.alarm-dot.amber{background:#cc9852}.alarm-dot.red{background:#c36551}.process-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.process-card{background:white;border:1px solid #dce5d6;border-radius:10px;padding:22px;min-width:0}.process-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:20px}.process-heading h2{font-size:16px;letter-spacing:-.4px;margin:0;font-weight:550}.process-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.process-heading .state-chip{white-space:nowrap;font-size:10px}.control-row{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:11px;color:#668059}.control-row .field{margin:0;max-width:270px}.control-row select{font-size:12px}.flow-mode{font-size:10px;white-space:nowrap;color:#8d9a82}.input-switches{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap;margin:15px 0}.signal-toggle{font-size:10px;text-align:left;justify-content:start;gap:8px;color:#87957b;background:#f8faf5;flex:1;white-space:nowrap}.signal-toggle b{font-weight:500;font-size:9px;margin-left:auto;color:#a49475}.signal-toggle .dot{background:#b5bda7}.signal-toggle.enabled{border-color:#b8d0a9;background:#edf5e7;color:#55764a}.signal-toggle.enabled .dot{background:#71a465}.signal-toggle.enabled b{color:#699454}.night-check{display:flex;gap:5px;align-items:center;font-size:10px;color:#849477}.night-check input,.check-field input,.tank-binding input,.signal-checkbox input{accent-color:#39704d}.sequence-strip{display:flex;gap:0;margin:20px 0;border:1px solid #e0e8d7;border-radius:7px;overflow:hidden}.sequence-strip span{padding:10px 7px;font-size:9px;color:#849576;display:flex;gap:6px;align-items:center;flex:1;border-right:1px solid #e0e8d7;background:#fbfcf8}.sequence-strip span:last-child{border:0}.sequence-strip span b{font-size:9px;font-weight:500;color:#b0bba5}.sequence-strip .current{background:#e4f0dd;color:#477942}.sequence-strip .current b{color:#4e8746}.drain-state{display:flex;gap:16px;flex-wrap:wrap;font-size:10px;color:#8b9b7c;margin:10px 0 15px}.drain-state b{font-weight:550;color:#6e865c}.permissives{margin:12px 0 16px;padding:10px;border:1px solid #e6ecdf;background:#f9fbf5;border-radius:5px}.permissives summary{font-size:10px;color:#748a61;cursor:pointer;display:flex;gap:7px;align-items:center}.dot.off{background:#c7a866}.permissives ul{margin:8px 0 0;padding-left:14px;max-height:115px;overflow:auto}.permissives li{font-size:10px;color:#9b8b69;line-height:1.7}.permissives li b{font-weight:500}.process-actions{display:flex;gap:7px;flex-wrap:wrap;padding-top:12px;border-top:1px solid #eaf0e1}.process-actions button{font-size:10px;padding:9px 10px}.process-actions .subtle{margin-left:auto}.pump-pair{display:flex;gap:10px;margin:19px 0}.pump-pair button{display:flex;flex-direction:column;align-items:start;gap:9px;padding:17px;flex:1;border-color:#e2e9db}.pump-pair strong{font-family:Consolas,monospace;font-size:15px;font-weight:500;color:#78916b}.pump-pair span{font-size:9px;color:#a4b097;letter-spacing:.5px}.pump-pair .selected{border-color:#abc89b;background:#f0f6e9}.pump-pair .selected strong{color:#4c7944}.pump-pair .selected span{color:#7a9c66}.operations-links{display:flex;gap:8px;margin:14px 0 19px;align-items:center;flex-wrap:wrap}.operations-links span{font-size:9px;color:#9ba78c;margin-left:auto}.operations-links button{font-size:10px}.operations-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.signal-table{display:flex;flex-direction:column;gap:9px}.signal-tank{display:flex;gap:9px;align-items:end;padding-bottom:10px;border-bottom:1px solid #edf1e6;flex-wrap:wrap}.signal-tank strong{font-size:11px;font-family:Consolas,monospace;font-weight:500;padding-bottom:10px;min-width:49px;color:#668052}.signal-tank label{display:flex;flex-direction:column;gap:5px;font-size:9px;color:#889b78;flex:1;min-width:60px}.signal-tank input[type=number]{width:100%;padding:7px;border:1px solid #dee7d3;border-radius:4px;background:#fff;color:#678452;font-size:11px}.signal-tank .signal-checkbox{font-size:9px;flex-direction:row;align-items:center;gap:3px;white-space:nowrap;padding-bottom:8px}.signal-checkbox input{margin:0}.probe-grid{display:flex;gap:6px 16px;flex-wrap:wrap;margin:16px 0}.check-field{display:flex;gap:7px;align-items:center;font-size:10px;color:#7b906b;margin:9px 0;line-height:1.5}.check-field input{margin:0;flex:none}.row-buttons{display:flex;gap:7px;flex-wrap:wrap}.sequence-log{height:356px;overflow:auto;padding-right:5px}.sequence-event{display:grid;grid-template-columns:87px 1fr;gap:4px 9px;padding:10px 0;border-bottom:1px solid #edf2e6;font-size:10px;line-height:1.55}.sequence-event time{font-family:Consolas,monospace;font-size:9px;color:#a0af91}.sequence-event b{font-weight:500;color:#738d60;font-size:10px}.sequence-event span{grid-column:2;color:#819572}.sequence-event.error span,.sequence-event.error b{color:#b76e56}.sequence-event.success span{color:#547f43}.sequence-event.warning span{color:#b79557}.alarm-details,.usage-notes{margin-top:18px;padding:16px;background:#fff;border:1px solid #e0e7d7;border-radius:8px}.alarm-details summary,.usage-notes summary{cursor:pointer;color:#7b936a;font-size:11px}.usage-notes p{font-size:11px;line-height:1.8;color:#879a76}.table-scroll{overflow:auto;width:100%}.table-scroll table{width:100%;border-collapse:collapse;font-size:10px}.table-scroll th{background:#edf4e7;color:#6b8559;text-align:left;padding:9px;border:1px solid #e0e9d5}.table-scroll td{padding:9px;border:1px solid #e5edde;color:#7a9068;line-height:1.6;overflow-wrap:anywhere}.alarm-details .table-scroll{margin-top:14px}.config-note{font-size:10px;color:#8c9774;line-height:1.65;background:#f5f7ed;border-left:2px solid #becaa2;padding:9px 11px;margin:12px 0}.wide-dialog{width:min(690px,95vw);max-height:90vh}.wide-dialog .dialog-body{overflow:auto;max-height:calc(90vh - 65px)}.wide-dialog h3{font-size:12px;color:#7f946b;margin:20px 0 12px}.wide-dialog .form-row .field{min-width:0}.tank-bindings{border:1px solid #e1e8d5;border-radius:6px;overflow:hidden;margin-bottom:17px}.tank-binding{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #e5eddb}.tank-binding:last-child{border:0}.tank-binding>label{min-width:100px;font-family:Consolas,monospace;color:#719260;font-size:11px;display:flex;align-items:center;gap:7px}.tank-binding .field{margin:0;flex:1;min-width:0}.tank-binding .field span{font-family:Inter,'Segoe UI',sans-serif;font-size:9px}.tank-binding select{width:100%}.upgrade-banner{background:#f3f7eb;border:1px solid #dce7ce;border-radius:7px;padding:13px 16px;margin:0 0 16px;display:flex;gap:15px;justify-content:space-between;align-items:center;color:#798f62;font-size:11px}.upgrade-banner .row-buttons{flex:none}.empty-state{padding:25px;border:1px dashed #cbdcbc;border-radius:9px;color:#79966a;grid-column:1/-1}.empty-state h3{font-size:17px;font-weight:550}.empty-state p{font-size:12px;line-height:1.8}#board-zone{font-size:10px;color:#6e8a5b;background:#f5f8ef;border:1px solid #dee8d1;padding:6px 8px;border-radius:4px}.report-assumptions{font-size:10px;line-height:1.8;color:#7c906d;padding-left:16px}.plant-report .matrix-table{font-size:9px}.plant-report .matrix-table td{padding:7px}.plant-report .drainage-board{aspect-ratio:2.6}.plant-report .report-board{break-inside:avoid}.plant-report h3{break-after:avoid}.plant-report .table-scroll{overflow:visible}.inspector{max-height:650px}.palette{max-height:680px;overflow-y:auto}
@media(max-width:1150px){.operations-toolbar{align-items:start;flex-direction:column;gap:12px}.operations-toolbar .compact{justify-content:start}.process-card{padding:17px}.sequence-strip span{font-size:8px;padding:10px 4px;gap:4px}.input-switches{gap:5px}.process-heading{flex-wrap:wrap}.process-actions button{font-size:9px}.control-row{gap:7px}.signal-tank label{min-width:55px}.operations-bottom{grid-template-columns:1fr 1fr}.upgrade-banner{flex-direction:column;align-items:start}.palette{max-height:740px}}
@media(max-width:850px){.process-grid,.operations-bottom{grid-template-columns:1fr}.alarm-metrics{flex-wrap:wrap}.alarm-metrics>div{min-width:25%;font-size:9px}.alarm-metrics>button{margin-left:auto}.sequence-strip span{font-size:10px}.process-actions button{font-size:11px}.operations-toolbar h2{font-size:16px}.sequence-log{height:300px}.inspector{max-height:390px}.palette{max-height:none}.process-heading{flex-wrap:nowrap}.control-row .field{max-width:300px}.wide-dialog .form-row{flex-wrap:wrap}.wide-dialog .form-row .field{min-width:220px}.plant-report .table-scroll{overflow:auto}.plant-report .matrix-table{min-width:950px}.operations-links span{margin-left:0;width:100%}}
@media(max-width:520px){.operations-toolbar{gap:15px}.operations-toolbar .compact{gap:5px}.compact button{font-size:10px;padding:8px}.compact code{width:100%;padding-top:4px}.alarm-metrics{padding:10px;gap:12px}.alarm-metrics>div{flex:none;min-width:42%;border:0}.alarm-metrics strong{margin-right:0}.alarm-metrics>button{font-size:9px}.process-card{padding:16px}.process-heading h2{font-size:14px}.process-heading .state-chip{font-size:8px}.control-row{flex-wrap:wrap}.control-row .field{max-width:none;min-width:180px}.input-switches .night-check{width:100%;margin:6px 0}.sequence-strip span{font-size:8px;gap:4px;flex-direction:column;text-align:center}.process-actions button{font-size:9px;padding:9px}.pump-pair button{padding:13px}.operations-bottom .scenario-card{padding:15px}.signal-tank strong{width:100%;padding-bottom:0}.signal-tank .signal-checkbox{flex:100%;padding-top:5px}.signal-tank label{min-width:70px}.inspector{max-height:380px}#board-zone{max-width:130px}.mode-label{display:none}.plant-report .report-board{min-width:520px}.wide-dialog .form-row .field{min-width:100%}.upgrade-banner{padding:13px}.upgrade-banner .row-buttons{flex-wrap:wrap}.palette .part{width:calc((100% - 42px)/8);min-width:32px}.palette .part span{font-size:7px}.palette .part svg{width:20px}.palette .palette-bottom{flex-wrap:wrap}.sequence-event{grid-template-columns:86px 1fr}}
@media print{.table-scroll{overflow:visible!important}.plant-report .matrix-table{min-width:0;font-size:7px}.plant-report .matrix-table th,.plant-report .matrix-table td{padding:4px}.plant-report .table-scroll table{font-size:8px}.plant-report .table-scroll th,.plant-report .table-scroll td{padding:5px}.plant-report .report-board{min-width:0;height:90mm;break-inside:avoid}.plant-report .drainage-board{height:70mm}.plant-report .report-assumptions{font-size:9px}.plant-report table tr{break-inside:avoid}.plant-report table thead{display:table-header-group}.plant-report .report-foot{break-inside:avoid}}

/* Legible engineering tables on screen and in print. */
.plant-report .table-scroll td{color:#40513e}.plant-report .table-scroll th{color:#3a5539}.plant-report .matrix-table th:nth-child(4){width:36%}.plant-report .matrix-table th:last-child{min-width:62px}.plant-report .matrix-table td:last-child{white-space:nowrap}.report-assumptions,.report-note{color:#556a4d}.report-stamp{min-width:150px}.sequence-event time{color:#6a7e5d}.sequence-event span{color:#566f4c}.signal-tank label,.check-field,.drain-state{color:#5d7451}.table-scroll th,.table-scroll td{color:#516c43}
@media print{.plant-report .matrix-table th:last-child{min-width:49px}.plant-report .table-scroll td{color:#263b2a}.plant-report .report-header p,.plant-report .report-note,.plant-report .report-assumptions{color:#3b5038}}

/* Simulation states: shared by the PFD, controls, inspector and exported SVG. */
:root{--state-on:#00b844;--state-off:#ff9800;--state-fault:#e60020}
.state-on{--signal-color:var(--state-on);--signal-ink:#07391b;--signal-text:#007c2e}
.state-off{--signal-color:var(--state-off);--signal-ink:#502900;--signal-text:#944500}
.state-fault{--signal-color:var(--state-fault);--signal-ink:#fff;--signal-text:var(--state-fault)}
.board:not(.studio-board) .node:is(.state-on,.state-off,.state-fault) .symbol{fill:var(--signal-color);stroke:var(--signal-color);stroke-width:3}
.board:not(.studio-board) .node:is(.state-on,.state-off,.state-fault) .symbol-detail{stroke:var(--signal-ink)}
.board:not(.studio-board) .node:is(.state-on,.state-off,.state-fault) .pump-rotor{fill:#fff;fill-opacity:.9;stroke:var(--signal-ink);stroke-width:1.5}
.board:not(.studio-board) .node:is(.state-on,.state-off,.state-fault) .valve-center{fill:var(--signal-ink)}
.board:not(.studio-board) .node:is(.state-on,.state-off,.state-fault) .equipment-symbol text{fill:var(--signal-ink)!important}
.board:not(.studio-board) .node:is(.state-on,.state-off,.state-fault) .node-state{fill:var(--signal-text);font-weight:750}
.board .node.state-fault .tag{fill:var(--state-fault);font-weight:750}
.board:not(.studio-board) .node.state-fault:is([data-type="tank"],[data-type="sump"]){--signal-ink:#a00018}
.board:not(.studio-board) .node.state-fault:is([data-type="tank"],[data-type="sump"]) .symbol{fill:#fff0f2;stroke-width:5}
.board .node.state-fault .tank-liquid{fill:#ffb1bd}
.board .node:focus-visible .symbol{outline:none;stroke-width:5}
.board .pipe.active{stroke:#00a23e;stroke-width:4}
.board .pipe.fault,.board .pipe.fault.active,.board .pipe.fault.selected{stroke:var(--state-fault);stroke-width:5}
.board .edge-fault .edge-label{fill:var(--state-fault);font-weight:750}
.state-chip:is(.state-on,.state-off,.state-fault),.drain-state .state-chip{background:var(--signal-color,#eef2eb);color:var(--signal-ink,#52644d);font-weight:750;border:1px solid transparent}
.state-chip.on{background:var(--state-on);color:#07391b;font-weight:750}
.state-chip.error{background:var(--state-fault);color:#fff;font-weight:750}
.status-key{display:flex;gap:12px 22px;flex-wrap:wrap;margin:-5px 0 18px;color:#46543f;font-size:11px}
.status-key>span{display:flex;align-items:center;gap:7px}
.status-swatch{display:inline-block;flex:none;width:12px;height:12px;border-radius:3px;background:var(--signal-color)}
.legend{flex-wrap:wrap;row-gap:8px;height:auto;min-height:38px;padding-top:9px;padding-bottom:9px;color:#46543f}
.legend-line.green{background:#00a23e;height:3px}
.signal-toggle:is(.state-on,.state-off,.state-fault){border-color:var(--signal-color);border-left-width:5px;background:#fff;color:#344730}
.signal-toggle:is(.state-on,.state-off,.state-fault) .dot{background:var(--signal-color);width:9px;height:9px}
.signal-toggle:is(.state-on,.state-off,.state-fault) b{color:var(--signal-text);font-weight:750}
.pump-pair button:is(.state-on,.state-off,.state-fault){background:var(--signal-color);border-color:var(--signal-color);opacity:1}
.pump-pair button:is(.state-on,.state-off,.state-fault) strong,.pump-pair button:is(.state-on,.state-off,.state-fault) span{color:var(--signal-ink);font-weight:750}
.pump-pair button.selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #586651}
.error-note{color:#b40019;background:#fff0f2;border-color:#ffb1bd;border-left:4px solid var(--state-fault);font-weight:600}
.sequence-event.error span,.sequence-event.error b{color:var(--state-fault);font-weight:650}
.alarm-dot.red{background:var(--state-fault);width:10px;height:10px}
.alarm-dot.amber{background:var(--state-off);width:10px;height:10px}
.alarm-metrics{gap:12px;padding:12px;flex-wrap:wrap}
.alarm-metrics>div{border:0;min-width:130px}
.alarm-metrics .alarm-indicator{padding:8px 12px;gap:10px;border:1px solid #dbe2d5;border-radius:7px;background:#f7f9f4}
.alarm-metrics .alarm-indicator>span:last-child{display:flex;flex-direction:column;gap:4px;color:#54664d;font-size:10px}
.alarm-metrics .alarm-indicator strong{margin:0;color:#68795f;font-size:12px;letter-spacing:.6px}
.alarm-metrics .alarm-on{border-color:var(--state-fault);background:#fff0f2}
.alarm-metrics .alarm-on strong{color:var(--state-fault);font-weight:800}
.alarm-beacon{display:flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;color:#76846e;background:#e2e8dc}
.alarm-beacon svg{width:23px;height:23px}
.alarm-on .alarm-beacon{color:#fff;background:var(--state-fault);box-shadow:0 0 0 4px #e6002026}
.alarm-beacon.blinking{animation:alarm-blink 1s step-end infinite}
@keyframes alarm-blink{0%,100%{opacity:1;box-shadow:0 0 0 4px #e6002033}50%{opacity:.35;box-shadow:0 0 0 0 #e6002000}}
@media(max-width:650px){.alarm-metrics>div{flex:1;min-width:120px}.alarm-metrics .alarm-total{flex-basis:100%}.alarm-metrics>button{margin-left:0}.legend .count{width:100%;margin-left:0}.status-key{font-size:10px;gap:12px}}
@media(prefers-reduced-motion:reduce){.alarm-beacon.blinking{animation:none;opacity:1}}
@media print{.alarm-beacon.blinking{animation:none;opacity:1}.state-chip,.pump-pair button,.symbol,.status-swatch,.alarm-beacon{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

.event.error b,.event.error span{color:var(--state-fault);font-weight:650}
.board .selected-ring{stroke:#64748b}
.board .pipe.selected:not(.active):not(.fault){stroke:#64748b}

/* PFD Műhely 1.1 — editable interlocks and linked cause/effect inspection. */
.interlock-page,.causal-panel{font-size:14px;line-height:1.55;color:#304334}
.interlock-heading,.causal-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:12px 0 22px}
.interlock-heading h2,.causal-heading h2{font-size:22px;color:#243d30;margin:0 0 8px}
.interlock-heading p,.causal-heading p{margin:0;max-width:900px}
.interlock-page button,.causal-panel button,.interlock-dialog button{font-size:14px;min-height:36px}
.interlock-toolbar{display:flex;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.interlock-toolbar label{display:flex;flex-direction:column;gap:6px;font-size:14px}
.interlock-toolbar label:first-child{flex:1;min-width:220px}
.interlock-toolbar input,.interlock-toolbar select{padding:10px;border:1px solid #c8d5c6;border-radius:6px;background:#fff;color:#294432;font-size:14px;min-height:42px;width:100%}
.interlock-toolbar>span{font-size:13px;padding-bottom:10px}
.interlock-table-wrap{overflow:auto;border:1px solid #d5dfd2;border-radius:9px;background:#fff;max-height:75vh}
.interlock-table{width:100%;border-collapse:collapse;min-width:940px;font-size:14px}
.interlock-table th{position:sticky;top:0;background:#edf3e9;color:#2c4636;z-index:1;text-align:left;padding:13px 14px;font-weight:700}
.interlock-table td{vertical-align:top;border-bottom:1px solid #e0e7db;padding:15px 14px;line-height:1.5;max-width:310px;overflow-wrap:anywhere}
.interlock-table td:first-child{min-width:170px}.interlock-table td:last-child{min-width:110px}
.interlock-table td>strong,.interlock-table td>span,.interlock-table td>small{display:block}
.interlock-table td>strong{font-family:Consolas,monospace;color:#294a39}.interlock-table td>small{font-size:12px;color:#65765e;margin-top:6px}
.interlock-table td p{margin:7px 0 0;font-size:13px}.interlock-table td b{font-size:13px}
.interlock-row-actions{display:flex;flex-direction:column;gap:7px;align-items:stretch}
.interlock-page .state-chip,.causal-panel .state-chip{font-size:12px;display:inline-block;white-space:nowrap}
.interlock-dialog{width:min(1080px,96vw);max-height:92vh}
.interlock-dialog .dialog-body{max-height:calc(92vh - 70px)}
.interlock-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.interlock-form-grid>section{min-width:0}
.interlock-dialog h3{font-size:16px;color:#264d37;margin:20px 0 14px}
.interlock-dialog .field span,.interlock-dialog .check-field,.interlock-dialog .dialog-body p{font-size:14px;line-height:1.5;color:#38513d}
.interlock-dialog input,.interlock-dialog select{font-size:14px;min-height:40px;color:#263b2b}
.interlock-dialog input[type=checkbox]{width:18px;height:18px;min-height:18px;flex:none;accent-color:#1c6b56}
.interlock-dialog .form-row{gap:12px;flex-wrap:wrap}.interlock-dialog .form-row .field{flex:1;min-width:140px}
.interlock-condition-fields{display:grid;grid-template-columns:1.3fr .65fr 1fr;gap:10px}
.interlock-checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:15px}
.interlock-target{display:flex;gap:12px;padding:12px;border:1px solid #d6e2cf;border-radius:7px;margin-bottom:10px;background:#fbfdf9;cursor:pointer}
.interlock-target input{margin-top:3px}.interlock-target span{display:flex;flex-direction:column;gap:6px;min-width:0}.interlock-target small{font-size:12px;line-height:1.5;color:#59704f}
.interlock-formula{padding:14px;background:#eef4e9;border-left:4px solid #1c6b56;border-radius:5px;font-weight:650;overflow-wrap:anywhere}
.interlock-dialog .dialog-actions{flex-wrap:wrap;position:sticky;bottom:-23px;background:#fff;padding:15px 0;margin-bottom:0;border-top:1px solid #dbe4d7}
.interlock-dialog [hidden],.interlock-dialog .error-note[hidden]{display:none!important}
.causal-panel{margin:20px 0;border:1px solid #b9cbc0;border-radius:10px;background:#fff;padding:20px}
.causal-heading .eyebrow{font-size:12px;color:#42697d}.causal-heading h2{font-size:20px;margin:5px 0 9px}
.causal-columns{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);gap:24px}
.causal-columns h3{font-size:15px;margin:0 0 12px}.causal-list{max-height:390px;overflow:auto;padding-right:6px}
.causal-list>button{width:100%;display:flex;gap:10px;text-align:left;align-items:flex-start;white-space:normal;padding:11px;margin-bottom:8px;background:#fafcf7}
.causal-list>button.active{border-color:#446aaf;background:#edf3fc;box-shadow:inset 3px 0 #446aaf}
.causal-list small{display:block;font-size:12px;color:#5a6272;margin-top:5px}.causal-list b{display:block;font-family:Consolas,monospace;font-size:13px}
.causal-chain{display:grid;grid-template-columns:1fr 1.1fr 1.4fr;gap:12px}
.causal-chain>div{padding:12px;border:1px solid #d3e0e9;border-radius:7px;min-width:0;background:#f9fbfe}
.causal-chain>div>span{display:block;font-size:12px;color:#536879;margin-bottom:9px;font-weight:700}
.causal-chain p{margin:0;overflow-wrap:anywhere}.causal-chain small{display:block;font-size:12px;margin-top:10px;color:#536879}
.causal-panel .tag-link{font-family:Consolas,monospace;font-size:13px;display:inline-flex;padding:6px 9px;min-height:32px;margin:3px 2px 3px 0;background:#fff;border-color:#c0d2e0;color:#2f526e}
.causal-effect{font-size:14px;margin:16px 0;overflow-wrap:anywhere}.causal-error{color:var(--state-fault);font-size:14px}
.causal-signals{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;font-size:13px;margin:14px 0}
.causal-signals dt{font-weight:700}.causal-signals dd{margin:0}.valve-feedback{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px;font-size:14px}
.board .trace-ring{fill:none;stroke:#709eaf;stroke-width:3;pointer-events:none}
.board .trace-source .trace-ring{stroke:#446aef;stroke-width:4}
.board .trace-target .trace-ring{stroke:#007f99;stroke-width:4}
.board.causal-board .trace-dim{opacity:.25}
.board .pipe.trace-pipe{stroke-width:5;filter:drop-shadow(0 0 2px #3281b4)}
.canvas-toolbar{height:auto;min-height:48px;flex-wrap:wrap;padding-top:7px;padding-bottom:7px}
@media(max-width:900px){.interlock-form-grid{grid-template-columns:1fr}.causal-columns{grid-template-columns:1fr}.causal-list{max-height:220px}.causal-chain{grid-template-columns:1fr 1fr}.causal-chain>div:last-child{grid-column:1/-1}}
@media(max-width:600px){.interlock-heading,.causal-heading{flex-direction:column;gap:12px}.causal-panel{padding:14px}.causal-chain{grid-template-columns:1fr}.causal-chain>div:last-child{grid-column:auto}.interlock-condition-fields{grid-template-columns:1fr}.interlock-dialog .form-row .field{min-width:100%}.interlock-table-wrap{max-height:none}.causal-signals{grid-template-columns:1fr;gap:4px}.causal-signals dd{margin-bottom:8px}}
@media print{.causal-panel,.interlock-page{display:none}}

.inspector-trace{font-size:14px;line-height:1.5}.inspector-trace h3{font-family:Consolas,monospace;font-size:19px;margin:18px 0 12px}.inspector-trace p{margin:10px 0 15px;overflow-wrap:anywhere}.inspector-trace .state-chip{font-size:12px}.inspector-trace button{font-size:13px;min-height:35px;margin-top:8px}.inspector-trace .tag-link{font-family:Consolas,monospace;display:inline-flex;padding:6px 8px;margin:3px 3px 3px 0;border-color:#b9cddc;color:#2f526e}.inspector-trace .section-label{font-size:12px}

.tabs{overflow-x:auto}.tabs>button{flex-shrink:0}.tabs .tab-end{white-space:nowrap}
.export-dialog{width:min(740px,95vw);max-height:90vh;padding:0;border:1px solid #b8caba;border-radius:12px;background:#fff;color:#243d30}
.export-dialog::backdrop{background:#142c24aa}
.export-dialog .dialog-head{padding:18px 22px}.export-dialog .dialog-head h2{font-size:20px}
.export-dialog .dialog-body{padding:0 22px 22px;max-height:calc(90vh - 85px);overflow:auto}
.export-dialog p,.export-dialog summary,.export-dialog .field span,.deletion-dialog p{font-size:14px;line-height:1.6;color:#38513d}
.export-filename{display:flex;align-items:baseline;justify-content:space-between;gap:15px;overflow-wrap:anywhere}.export-filename strong{font-size:16px}.export-filename span{white-space:nowrap}
.export-actions{display:flex;gap:10px;flex-wrap:wrap}.export-actions button,.export-dialog button,.deletion-dialog button{font-size:14px;min-height:40px}
.export-download{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:11px 24px;text-decoration:none;color:#fff!important;background:#215d48;font-size:16px;font-weight:600}
.export-download:hover{background:#174833}.export-download:focus-visible,.export-fallback a:focus-visible{outline:3px solid #1687c9;outline-offset:3px}
.export-fallback{margin-top:15px;padding-top:14px;border-top:1px solid #dbe4d7}.export-fallback summary{cursor:pointer;font-weight:600}.export-fallback a{color:#17674e;text-decoration:underline}
.export-dialog textarea{width:100%;min-height:190px;font:14px/1.5 Consolas,monospace;white-space:pre;overflow:auto;resize:vertical}.export-dialog input{font-size:14px;width:100%}
.export-status{min-height:1.6em;color:#175d44!important}
.deletion-links{display:flex;flex-direction:column;gap:12px;margin:16px 0}.deletion-links article{display:flex;gap:15px;align-items:center;justify-content:space-between;border:1px solid #dbe4d7;border-radius:8px;padding:15px}.deletion-links strong{font-size:16px}.deletion-links p{margin:7px 0 0}.deletion-links button{flex:none}
.deletion-dialog .dialog-actions{flex-wrap:wrap}
@media(max-width:600px){.deletion-links article{align-items:stretch;flex-direction:column}.export-filename{flex-direction:column;gap:4px}.export-actions>*{flex:1}.export-dialog .dialog-body{padding:0 16px 16px}}
@media print{.export-dialog,.deletion-dialog{display:none!important}}

/* 1.2: safety states extend the existing strong operating colours. */
.state-emergency{--signal-color:#a400e8;--signal-text:#7900b0;--signal-ink:#fff;background:#a400e8;color:#fff;border-color:#a400e8}
.board:not(.studio-board) .node.state-emergency .symbol{fill:#a400e8;stroke:#7200a3;stroke-width:3}
.board .node.state-emergency .symbol-detail{stroke:#fff;fill:#fff}
.board .node.state-emergency .node-state{fill:#7900b0;font-weight:800}
.board .node[data-type=estop] .symbol-detail{stroke:#7900b0}
.board .node.state-emergency[data-type=estop] .symbol-detail{stroke:#fff}
.board .node.state-emergency .equipment-symbol{animation:emergency-pulse 1s step-end infinite}
.alarm-metrics .emergency-indicator.alarm-on{background:#f7e7ff;border-color:#a400e8}
.alarm-metrics .emergency-indicator.alarm-on strong{color:#7900b0}
.emergency-indicator.alarm-on .alarm-beacon{background:#a400e8;box-shadow:0 0 0 4px #a400e826}
.safety-panel{border:1px solid var(--border);border-radius:10px;background:#fff;padding:20px;margin:18px 0}
.safety-panel h2{font-size:18px;margin:0}.safety-panel h3{font-size:16px;margin:0 0 12px;overflow-wrap:anywhere}
.safety-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:14px;margin:16px 0}
.safety-card{padding:16px;border:1px solid var(--border);border-radius:8px;min-width:0}
.safety-card.emergency-active{border:2px solid #a400e8;background:#fcf5ff}
.safety-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.safety-buttons button{font-size:14px;min-height:42px}
.safety-buttons .emergency-button{font-size:16px;letter-spacing:.03em;background:#a400e8;color:white;border:2px solid #7100a0;font-weight:800;min-height:48px}
.safety-buttons .emergency-button:disabled{opacity:1;background:#7100a0}
.safety-scope{font-size:14px;color:#42564d;line-height:1.6;overflow-wrap:anywhere;margin:10px 0}
.qv-feedback{display:flex;gap:14px;flex-wrap:wrap;font-size:14px;line-height:1.8}
#safety-form{font-size:16px;line-height:1.6}#safety-form .field>span,#safety-form select,#safety-form label{font-size:14px}#safety-form fieldset{border:1px solid var(--border);border-radius:8px;padding:12px}
.operating-index{background:white;padding:20px;border:1px solid var(--border);border-radius:8px;margin-bottom:20px;font-size:16px;line-height:1.6}.operating-index h3{margin-top:0}
.description-page .report-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;font-size:14px}.description-page select{padding:10px;max-width:100%;font-size:14px}
.operating-description{font-size:16px;line-height:1.65;overflow-wrap:anywhere}.operating-description li{margin-bottom:10px}.operating-description h3{font-size:20px;margin-top:30px}.operating-description td,.operating-description th{font-size:14px;line-height:1.5;vertical-align:top}.operating-description .report-note{font-size:14px}
.process-fragment{display:block;width:100%;height:auto;background:white;border:1px solid #dde5df;margin:18px 0}.description-page .report-wrap{max-width:1400px}
@keyframes emergency-pulse{50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.board .node.state-emergency .equipment-symbol{animation:none}}
@media print{.safety-panel,.operating-index,.description-page>.report-actions{display:none!important}.operating-description{font-size:11pt;padding:0;box-shadow:none;max-width:none}.operating-description td,.operating-description th{font-size:9pt}.operating-description h3{break-after:avoid}.operating-description tr,.process-fragment{break-inside:avoid}.operating-description .table-scroll{overflow:visible}.board .node.state-emergency .equipment-symbol{animation:none}.state-emergency{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Instrument labels stay above the bubble, leaving the signal stem clear. */
.board .node[data-type="instrument"] .tag{font-size:14px;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.board .signal{stroke:#637d91;stroke-width:1.4;pointer-events:none}

/* Shared pump station: destination requests and momentary controls. */
.outlet-controls{margin:18px 0;padding:14px;border:1px solid var(--border,#d5decc);border-radius:8px}.outlet-controls h3{font-size:1rem;margin:0 0 8px}.outlet-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #d5decc}.outlet-row small{display:block;margin-top:4px;font-size:.875rem}.outlet-row button{font-size:.875rem;white-space:normal;min-height:40px}.outlet-binding{padding:10px 0;border-top:1px solid #d5decc}.outlet-binding>label{font-weight:600}@media(max-width:600px){.outlet-row{align-items:stretch;flex-direction:column}}

/* 1.3: task-focused working modes; keep the established diagram/status palette. */
.usability-shell{display:block;font-size:16px}.usability-shell .page{padding:22px 24px;max-width:1920px}.usability-shell .topbar{height:auto;min-height:72px;flex-wrap:wrap;padding:14px 24px}.usability-shell .top-actions{flex-wrap:wrap}.version-pill{display:inline-block;background:#e4f0ed;color:#185f50;border:1px solid #b7d5ca;border-radius:5px;padding:3px 8px;font-size:14px;margin-left:6px}.usability-shell button{font-size:14px;min-height:36px}.usability-shell .small{font-size:13px}.usability-shell .page-heading h1{font-size:24px;letter-spacing:normal}.usability-shell .page-heading p{font-size:14px;line-height:1.5}.usability-shell .eyebrow{font-size:12px;letter-spacing:.8px}.usability-shell .heading-side{align-items:flex-end;flex-direction:column;gap:10px}.save-status{font-size:12px;color:#53675e;max-width:300px;line-height:1.4;text-align:right}.history-actions{display:flex;gap:6px}.redo svg{transform:scaleX(-1)}.work-modes{gap:8px;border:0;background:#e6eeea;padding:5px;border-radius:9px;align-items:stretch}.work-modes button{flex:1;padding:12px 14px!important;border-radius:6px!important;color:#3c554a!important;line-height:1.35}.work-modes button.active{background:#fff!important;color:#124f3f!important;box-shadow:0 1px 4px #203c3020}.work-modes button.active:after{display:none}.setup-tabs{display:flex;gap:8px;margin-bottom:20px}.setup-tabs .active{border-color:#1c6b56;background:#e8f3ed;color:#14533f}.setup-process-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.setup-process{background:white;border:1px solid var(--border);border-radius:10px;padding:22px}.setup-process h3{margin:0;font-size:18px;line-height:1.4}.setup-process p,.setup-help p{font-size:14px;line-height:1.5;color:#52675c}.process-route{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:18px 0 10px}.setup-help{margin-top:22px;padding:20px;border:1px solid var(--border);border-radius:8px;background:#f8fbf9}.setup-help h3{margin:0;font-size:16px}.related-panel{padding:0 0 16px;margin-bottom:20px;border-bottom:2px solid #dae8e1}.related-panel p{font-size:14px;line-height:1.5}.related-process{padding:10px;background:#edf5f0;border-radius:6px;margin:8px 0}.related-process strong{font-size:14px;display:block;margin-bottom:9px}.related-process>div{display:flex;flex-wrap:wrap;gap:5px}.start-reasons{border:1px solid #cadbd1;border-radius:7px;background:#f2f8f4;padding:12px 14px;margin:16px 0;font-size:14px;line-height:1.5}.start-reasons.needs-attention{background:#fff7e9;border-color:#ecd29f;color:#674407}.start-reasons ul{padding-left:20px;margin:9px 0 0}.start-reasons li{margin:8px 0}.start-reasons li>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.start-reasons p{margin:8px 0 0}.wizard-progress{color:#1b6652;font-size:14px;font-weight:650}.wizard-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wizard-choices button{display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;text-align:left;padding:18px;min-height:120px}.wizard-choices strong{font-size:16px}.wizard-choices span{font-size:14px;line-height:1.5;font-weight:400;color:#586d61}.deletion-impact{padding:14px;background:#f3f6f4;border-radius:6px;margin:12px 0}.deletion-impact h3{font-size:16px;margin:8px 0}.deletion-impact li{margin:6px 0}.usability-shell .workbench{grid-template-columns:170px minmax(0,1fr) 310px;min-height:690px}.usability-shell .inspector{max-height:780px;padding:18px;overflow:auto}.usability-shell .palette .part{padding:9px 7px}.usability-shell .palette .part span{font-size:14px}.usability-shell .palette>p{font-size:13px}.usability-shell .panel-title,.usability-shell .section-label{font-size:12px;color:#4e6958}.usability-shell .inspect-note,.usability-shell .config-note,.usability-shell .field>span,.usability-shell .check-field,.usability-shell .readout p{font-size:14px;line-height:1.5}.usability-shell input,.usability-shell select,.usability-shell textarea{font-size:14px}.usability-shell .canvas-toolbar{height:auto;min-height:48px;flex-wrap:wrap;padding:8px;justify-content:flex-start}.usability-shell .canvas-toolbar .mode-label{margin-left:auto}.usability-shell .tool-group{flex-wrap:wrap}.usability-shell .legend{font-size:12px}.usability-shell .mode-label{font-size:12px}.usability-shell .process-actions button{font-size:14px}.usability-shell .process-actions{flex-wrap:wrap}.usability-shell .process-heading h2{font-size:18px}.usability-shell .operations-toolbar p{font-size:14px;line-height:1.5}.usability-shell .process-heading .state-chip,.usability-shell .state-chip{font-size:12px}.usability-shell .sequence-strip{overflow-x:auto}.usability-shell .sequence-strip span{font-size:12px;min-width:90px}.usability-shell .sequence-event{font-size:14px}.usability-shell .sequence-event time{font-size:12px}.usability-shell .signal-tank label,.usability-shell .drain-state,.usability-shell .pump-pair button span,.usability-shell .status-key{font-size:14px}.usability-shell .table-scroll th,.usability-shell .table-scroll td{font-size:14px}.usability-shell .report-actions{flex-wrap:wrap}.usability-shell .report-toolbar{flex-wrap:wrap}.usability-shell .footer{font-size:12px;line-height:1.5;gap:12px;flex-wrap:wrap}dialog input,dialog select,dialog textarea,dialog .field>span,dialog button,dialog .check-field{font-size:14px}dialog p,dialog li{font-size:14px;line-height:1.55}dialog .dialog-actions{flex-wrap:wrap}.usability-shell[data-work-mode="editor"] .sim-panel{display:none}.usability-shell .canvas-toolbar [data-action="undo"]{display:none}
@media(min-width:1200px){.usability-shell .board-wrap{min-height:610px}}
@media(max-width:1100px){.usability-shell .workbench{grid-template-columns:135px minmax(0,1fr) 275px}.usability-shell .palette .part{gap:5px}.usability-shell .palette .part svg{width:22px}.usability-shell .palette .part span{font-size:13px}.usability-shell .page{padding:16px}.usability-shell .mode-label{display:none}}
@media(max-width:850px){.usability-shell .workbench{grid-template-columns:1fr}.usability-shell .palette{display:flex;flex-wrap:wrap;gap:6px;padding:12px}.usability-shell .palette>.panel-title,.usability-shell .palette>p,.usability-shell .palette-note{display:none}.usability-shell .palette .part{width:auto;flex:1 1 115px;margin:0;justify-content:center}.usability-shell .palette-bottom{width:100%;display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:8px 0 0}.usability-shell .palette-bottom button{width:auto;flex:1 1 140px;font-size:13px;margin:0}.usability-shell .inspector{max-height:none;border-top:1px solid var(--border)}.usability-shell .canvas-column{min-height:510px}.usability-shell .board-wrap{min-height:440px}.setup-process-grid{grid-template-columns:1fr}.usability-shell .heading-side{align-items:flex-start}.usability-shell .page-heading{align-items:flex-start;flex-direction:column}.save-status{text-align:left}.usability-shell .heading-side{width:100%;flex-direction:row;align-items:center;justify-content:space-between}.usability-shell .work-modes button{font-size:14px;padding:10px 8px!important;flex-direction:column}.usability-shell .process-heading{flex-wrap:wrap}.usability-shell .sequence-event{grid-template-columns:90px 1fr}.usability-shell .signal-tank label{min-width:90px}}
@media(max-width:520px){.usability-shell .topbar{padding:12px}.usability-shell .page{padding:12px}.usability-shell .top-actions{gap:5px}.usability-shell .top-actions button{padding:8px;font-size:13px}.usability-shell .work-modes{gap:3px}.usability-shell .work-modes button{font-size:13px}.usability-shell .heading-side{flex-direction:column;align-items:flex-start}.wizard-choices{grid-template-columns:1fr}.setup-process{padding:16px}.usability-shell .process-actions button{font-size:14px}.usability-shell .palette .part{min-width:100px}.usability-shell .palette .part span{font-size:14px}.usability-shell .table-scroll{max-width:100%;overflow:auto}}
@media print{.usability-shell .history-actions,.usability-shell .setup-tabs,.usability-shell .work-modes{display:none!important}.usability-shell .table-scroll th,.usability-shell .table-scroll td{font-size:8px}.usability-shell .page{padding:0}.usability-shell .main{width:100%}}

/* Live operation: the drawing and its controls remain visible together. */
.live-simulation{background:#fff;border:1px solid #ceddd5;border-radius:10px;overflow:hidden}.live-toolbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;gap:12px;flex-wrap:wrap;border-bottom:1px solid #dde7e0}.live-toolbar h2{font-size:18px;margin:0}.live-toolbar time{font:600 15px ui-monospace,monospace;color:#284f42;min-width:86px}.live-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px}.live-canvas{min-width:0;display:flex;flex-direction:column}.live-processes{overflow:auto;max-height:780px;padding:12px;background:#f3f7f5;border-left:1px solid #d6e2da}.live-processes .process-card{padding:16px;margin-bottom:12px;box-shadow:none}.live-processes .process-heading h2{font-size:16px}.live-processes .process-heading{flex-wrap:wrap}.live-processes .input-switches{flex-wrap:wrap}.live-processes .process-actions{display:flex;flex-wrap:wrap}.live-processes .process-actions button{flex:1 1 100px}.live-processes .control-row{flex-wrap:wrap}.live-processes .flow-mode{font-size:13px}.live-processes .start-reasons{font-size:13px}.live-processes .drain-state{font-size:13px}.live-processes .pump-pair button{padding:10px}.live-board-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border)}.live-board-tools label{display:flex;gap:8px;align-items:center;font-size:14px}.live-running{margin-left:auto;font-size:12px;color:#536e60}.live-board-wrap{min-height:530px!important;flex:1}.live-levels{display:flex;flex-wrap:wrap;gap:14px;padding:14px;border-top:1px solid var(--border)}.live-level{min-width:130px;flex:1;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.live-level>span{font-size:14px;color:#335e4a;font-weight:650}.live-level>strong{font-size:22px;color:#1b634e}.live-level small{font-size:13px;margin-left:4px}.live-level .meter{grid-column:1/-1;height:7px;margin:0}.live-level .meter i{background:#0b9e63;transition:width .45s linear}.live-simulation .board .tank-liquid{transition:y .45s linear,height .45s linear}.live-simulation .legend{gap:16px}.live-safety{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px;border-top:1px solid var(--border)}.live-safety span{font-size:13px;color:#53685c}.live-details{margin-top:18px;background:white;border:1px solid var(--border);border-radius:8px;padding:16px}.live-details>summary{font-size:16px;font-weight:600;cursor:pointer}.live-details .operations-toolbar{display:none}.live-details .operations{margin-top:20px}.live-wide .live-layout{grid-template-columns:1fr}.live-wide .live-processes{display:none}.live-wide .live-board-wrap{min-height:650px!important}#live-alarms .alarm-metrics{margin:0;border:0;border-radius:0;border-bottom:1px solid var(--border)}.live-simulation .board .pipe.active{stroke-width:5;stroke:#00a956;stroke-dasharray:10 7;animation:live-flow .7s linear infinite;filter:drop-shadow(0 0 2px #00ac5740)}.live-simulation .board.paused .pipe.active{animation-play-state:paused}.live-simulation .board .node.selected .selected-ring{stroke:#15785b}.live-simulation .board .node{cursor:pointer}.live-simulation .node .port{display:none}@keyframes live-flow{to{stroke-dashoffset:-17}}
@media(max-width:1100px){.live-layout{grid-template-columns:minmax(0,1fr) 310px}.live-processes{padding:8px}.live-processes .process-card{padding:12px}.live-processes .process-actions button{font-size:13px}.live-board-wrap{min-height:480px!important}.live-running{display:none}}
@media(max-width:800px){.live-layout{grid-template-columns:1fr}.live-processes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;border-left:0;border-top:1px solid var(--border);gap:10px}.live-board-wrap{min-height:400px!important}.live-wide .live-board-wrap{min-height:500px!important}.live-toolbar{padding:12px}.live-toolbar .sim-controls{flex-wrap:wrap}}
@media(max-width:550px){.live-processes{grid-template-columns:1fr}.live-board-tools button{font-size:13px}.live-level{min-width:100px}.live-simulation .legend{font-size:12px}.live-toolbar .sim-controls{gap:5px}.live-toolbar .sim-controls button{font-size:13px}}
@media print{.live-toolbar,.live-board-tools,.live-processes,.live-safety,.live-details{display:none}.live-layout{display:block}}

.alarm-metrics>.alarm-sources{display:block;flex:1 0 100%;min-width:0;border-top:1px solid var(--border);padding:10px 14px;color:#355249}.alarm-sources>p{font-size:13px;margin:0 0 8px;color:#60766d}.alarm-source-groups{display:flex;flex-wrap:wrap;gap:12px 32px}.alarm-source-groups>div{flex:1 1 240px;min-width:0}.alarm-sources .alarm-source-groups strong{font-size:14px;margin:0}.alarm-source-groups ul{margin:5px 0 0;padding-left:18px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
