*{box-sizing:border-box}body{margin:0;background:#080e0f;color:#edf1f0;font-family:Segoe UI,Arial,sans-serif}main{max-width:1800px;margin:auto;background:radial-gradient(ellipse at 50% 40%,#101819 0,#080e0f 65%)}header{height:90px;display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid #223034}h1{margin:0;text-align:center;font-size:38px;letter-spacing:3px}header p{font-size:10px;letter-spacing:2.5px;color:#8c9a9e;margin:5px 0;text-align:center}button,select,input{font:inherit}button{cursor:pointer;border:1px solid #41565a;color:#dde7e9;background:#142024;border-radius:3px;padding:11px 15px;font-size:11px;letter-spacing:1px;font-weight:600}button:hover{background:#203337;border-color:#75b9c4}button:disabled{opacity:.4;cursor:default}.primary{border-color:#35968b;background:#153b37;color:#9eecce}.alarm-button{display:flex;align-items:center;gap:11px;min-width:152px}.alarm-button b{font-size:19px}.abnormal{color:#ffdf70;border-color:#b29639}.normal{color:#80e9a8}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.session{text-align:right;font-size:10px;color:#90a0a4;min-width:180px}.session small{display:block;font-size:9px;letter-spacing:1px;margin-top:8px}.live{color:#81d7a4}.diagram-wrap{width:100%}svg{display:block;width:100%;height:auto;max-height:calc(100vh - 170px);min-height:490px}.label{fill:#f4f4ef;font-size:17px;font-weight:600}.caption{fill:#edf1ef;font-size:16px}.small{fill:#a5bcc0;font-size:12px}.readout{fill:#081114;stroke:#657e87;stroke-width:1}.digital{fill:#35d6ff;font-family:Consolas,monospace;font-size:22px;font-weight:700}.pipes path{fill:none;stroke:#d9dfdd;stroke-width:7;stroke-linejoin:round;filter:drop-shadow(1px 2px 2px #000)}.arrows path{stroke:#d8dedb;stroke-width:4;fill:none}.clickable{cursor:pointer;outline:none}.clickable:hover{filter:drop-shadow(0 0 5px #65bc8b)}.clickable:focus-visible{filter:drop-shadow(0 0 8px #40ceff)}.drum-reading{fill:#08202a;font-family:Consolas,monospace;font-size:14px;font-weight:700}.flow-text{fill:#75a1af;font:12px Consolas,monospace;letter-spacing:.4px}.critical{fill:#ff6357;font-size:13px;font-weight:700}.furnace-control{height:139px;border:1px solid #607881;border-radius:3px;padding:10px;background:#091215;text-align:center;font-size:14px}.furnace-control label{display:block;border-bottom:1px solid #365057;padding-bottom:5px}.furnace-control strong{display:block;color:#35d6ff;font:700 21px Consolas,monospace;margin:5px}.furnace-control input{width:100%}.furnace-control small{font-size:10px;color:#9eb4b9}input[type=range]{accent-color:#33caff;cursor:pointer;width:100%;height:22px}.ticks{display:flex;justify-content:space-between;color:#a6bbc0;font-size:11px;margin-bottom:7px}.flames{transform-origin:0 0;transition:transform 1s;filter:drop-shadow(0 0 9px #ff7c08)}.fire{transform-origin:0 0;animation:flicker .47s ease-in-out infinite alternate}.middle{animation-delay:-.2s;animation-duration:.33s}.inner{animation-delay:-.4s;animation-duration:.28s}.flare .outer{animation-duration:.28s}.spin{animation:rotate 1.5s linear infinite}.paused .fire,.paused .spin{animation-play-state:paused}@keyframes flicker{0%{transform:skew(-5deg) scaleY(.9)}to{transform:skew(6deg) scaleY(1.07)}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes blink{50%{background:#58402a;box-shadow:0 0 12px #fcb84940}}.blink{animation:blink 1s infinite}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #273438;padding:13px 24px;gap:15px;background:#0c1517;font:11px Consolas,monospace;color:#8ca7af}.transport{display:flex;align-items:center;gap:8px}.transport label{margin-left:9px;font-size:10px}.transport select{background:#152329;color:#c7e7ee;border:1px solid #3c535c;padding:7px;margin-left:8px}footer i{border-left:1px solid #365057;margin:0 12px}.disclaimer{text-align:center;color:#6c848c;font-size:10px;margin:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:5}.control-window,.alarm-window{position:relative;border:1px solid #617d86;background:#101c21;box-shadow:0 20px 80px #000b;padding:30px;border-radius:6px;width:390px;max-height:90vh;overflow:auto}.close{position:absolute;right:12px;top:12px;padding:3px 10px;font-size:22px}.control-window small,.alarm-window>small{color:#82a4ae;letter-spacing:2px;font-size:9px}h2{font-size:26px;margin:15px 0 8px}.control-window p{color:#adbec2;font-size:14px}.big-digital{display:block;color:#40d3ff;font:42px Consolas,monospace;margin:30px 0}.big-digital em{font-size:12px;font-style:normal;color:#8daeb8}.control-window label{font-size:12px;color:#a9c0c8}.numeric{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.numeric input{width:90px;background:#091418;border:1px solid #48636d;color:#46d9ff;padding:8px}.control-window .hint{font-size:11px;line-height:1.6;margin-top:25px}.alarm-window{width:900px}.alarm-window h2 span{font-size:12px;color:#ffcc65;margin-left:20px}h3{font-size:12px;letter-spacing:1px;color:#9ab4bd;margin-top:28px}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}th{color:#9ab4bd;font-weight:400;padding:10px;border-bottom:1px solid #516570}td{padding:12px 10px;border-bottom:1px solid #2a3a41}.warning{color:#f2cf71}.critical{color:#ff776d}.table-scroll{overflow:auto}.history{max-height:220px;overflow:auto}.history>div{display:flex;gap:12px;border-bottom:1px solid #2a3a41;padding:10px 0;font-size:11px}.history time{color:#91acb5;min-width:58px}.history em{margin-left:auto;color:#a0b3ba;font-style:normal}.normal-text{color:#81dea4}@media(max-width:1000px){header{padding:12px 15px}.session{min-width:130px}h1{font-size:29px}header p{font-size:8px}svg{min-height:0;max-height:none}footer{flex-wrap:wrap;padding:10px}.transport{flex-wrap:wrap}button{padding:10px;font-size:10px}.diagram-wrap{overflow:auto}svg{min-width:850px}.alarm-window{padding:22px}.history>div{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.fire,.spin,.blink{animation:none}}
