:root{--bg:#07131b;--panel:#0b1b25;--panel2:#102633;--line:#214050;--ink:#e3f2f3;--muted:#7d9baa;--cyan:#5ce1e7;--green:#63d8b2;--yellow:#f2ba60;--red:#f49a89;--shadow:0 12px 30px rgba(0,0,0,.16)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;font-size:13px;overflow:hidden}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 26px;background:#081721;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand-logo{height:43px;width:43px;border-radius:12px;background:linear-gradient(145deg,#164f62,#09232d);border:1px solid #26798c;display:grid;place-items:center;box-shadow:0 0 27px #0a6f8238}.brand-logo span{font-size:41px;line-height:1;font-family:Georgia,serif;color:#7be9e8;margin-top:-9px}.brand-kicker,.eyebrow{letter-spacing:.19em;font-weight:800;font-size:9px;color:#69c9ce}.dot{color:var(--cyan)}.brand-name{font-size:19px;letter-spacing:.025em;font-weight:500;margin-top:3px}.brand-name strong{font-weight:800}.slash{color:#558b9d;margin:0 2px}.site-label{letter-spacing:.10em;font-weight:650;font-size:10px;color:#9fb6c2;white-space:nowrap}.live-led{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4fdeac;box-shadow:0 0 12px #4fdeac;margin-right:7px}.separator{color:#426173;margin:0 11px}.header-actions{display:flex;align-items:center;gap:8px}.renderer-badge{border:1px solid #2a5560;color:#82b5be;padding:8px 10px;font-size:10px;letter-spacing:.07em;border-radius:5px;white-space:nowrap}.button,.icon-button{background:#163747;border:1px solid #3a6979;color:#e0eef0;padding:11px 15px;border-radius:5px;font-size:10px;font-weight:800;letter-spacing:.08em}.icon-button{font-size:15px;width:34px;height:35px;padding:0;border-radius:100%}.button.light{background:#d7f8ee;color:#123b42;border-color:#d7f8ee}.button:hover,.icon-button:hover{filter:brightness(1.2)}
.kpis{height:117px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:1px solid var(--line);background:#10212b}.kpi{padding:15px 20px 12px;border-right:1px solid #28404b;min-width:0}.kpi:last-child{border-right:0}.kpi-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.11em;color:#86a9b6;font-weight:850;white-space:nowrap}.kpi-symbol{font-size:15px;color:#638f9c;font-weight:400}.kpi-main{display:flex;align-items:baseline;gap:7px;margin:7px 0 6px;min-width:0}.kpi-main strong{font-variant-numeric:tabular-nums;font-size:clamp(21px,2vw,29px);font-weight:660;letter-spacing:-.035em;white-space:nowrap;color:#ecfdfd}.kpi:first-child .kpi-main strong{color:#76ebdf}.kpi-main span{color:#8babba;font-size:10px;white-space:nowrap}.kpi-foot{font-size:10px;color:#8aa3b0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cyan-dot,.status-circle{display:inline-block;height:6px;width:6px;background:#5de0dd;border-radius:100%;margin-right:4px}.status-circle{background:#62dcb4}.storage-bar{height:4px;background:#29434c;border-radius:3px;overflow:hidden;margin-top:11px}.storage-bar span{display:block;height:100%;width:42%;border-radius:3px;background:linear-gradient(90deg,#2f889b,#61e0d4);transition:width .35s}
.workspace{height:calc(100vh - 189px);min-height:400px;display:grid;grid-template-columns:296px minmax(380px,1fr) 294px}.sidebar{background:#0b1c26;min-height:0;display:flex;flex-direction:column;position:relative;z-index:1}.left{border-right:1px solid #2a4551}.right{border-left:1px solid #2a4551}.side-top{padding:22px 21px 18px;border-bottom:1px solid #203a47}.side-top h2{margin:7px 0 5px;font-size:19px;font-weight:680;letter-spacing:-.03em}.side-top p{font-size:11px;line-height:1.6;margin:0;color:#91acb9}.microtitle,.panel-title{font-size:10px;letter-spacing:.115em;font-weight:850;color:#b9d4db}.scenario-area{padding:20px 18px;border-bottom:1px solid #203a47}.scenario-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.scenario{padding:9px 6px;border-radius:5px;background:#132b38;border:1px solid #2a4857;color:#b0c5cd;font-size:10px;font-weight:650;text-align:center;white-space:nowrap}.scenario.active{background:#1a494e;border-color:#49aab1;color:#9ef2e8}.scenario:hover{border-color:#56b8bd}.controls-area{padding:13px 19px 20px;overflow-y:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#335362 transparent}.control-group{margin:3px 0 22px}.control-group-title{display:flex;align-items:center;gap:10px;margin-bottom:15px;letter-spacing:.14em;font-size:10px;font-weight:850;color:#63d8d4}.control-group-title:after{content:'';height:1px;background:#294752;flex:1}.control{margin-bottom:17px}.control-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.control label{font-size:11px;color:#aac4cb}.control-output{font-size:12px;color:#e7f7f8;font-weight:750;font-variant-numeric:tabular-nums}.control input{display:block;width:100%;height:4px;accent-color:#66d9d6;cursor:pointer}.control-meta{display:flex;justify-content:space-between;margin-top:5px;font-size:9px;color:#547380}.run-controls{flex-shrink:0;display:flex;gap:9px;align-items:center;padding:15px 17px;background:#0f2632;border-top:1px solid #2d4b58}.run-button{flex:1;background:#5ce2d6;border:1px solid #8bedde;padding:12px 10px;border-radius:5px;color:#0b343e;font-size:10px;font-weight:850;letter-spacing:.07em;white-space:nowrap}.run-button:hover{background:#a5fff1}.speed-group{display:flex;flex-direction:column;gap:3px}.speed-group label{font-size:8px;letter-spacing:.09em;color:#7eacb7}.speed-group select{background:#123443;color:#d2f1ee;border:1px solid #3a6472;border-radius:3px;padding:7px 3px;font-size:11px}
.viewer{position:relative;min-width:0;overflow:hidden;background:radial-gradient(circle at 52% 37%,#113646,#081823)}#plantCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}#plantCanvas:active{cursor:grabbing}.viewer-head{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:start;gap:7px;padding:23px;pointer-events:none;background:linear-gradient(#04141edb,transparent)}.view-title{font-size:13px;letter-spacing:.10em;font-weight:820;color:#edfbfa}.view-sub{font-size:9px;color:#8fb9c3;margin-top:6px;letter-spacing:.075em}.view-sub .separator{margin:0 4px}.viewer-toolbar{display:flex;gap:5px;pointer-events:auto}.tool{background:#0a202dc9;border:1px solid #376273;color:#c8e0e2;padding:9px 11px;font-size:10px;font-weight:780;letter-spacing:.05em;border-radius:4px;backdrop-filter:blur(6px)}.tool:hover,.tool.active{border-color:#76dddd;background:#0d4852;color:#cefff5}.zone-column{position:absolute;left:19px;top:122px;display:flex;flex-direction:column;gap:7px;max-width:215px;pointer-events:auto}.zone-chip{display:flex;align-items:center;gap:7px;border:1px solid #3b58647d;border-radius:4px;background:#081e2acc;padding:9px 11px;color:#d1e8e9;font-size:10px;letter-spacing:.025em;text-align:left;box-shadow:0 3px 9px #0002;backdrop-filter:blur(5px)}.zone-chip:hover,.zone-chip.active{border-color:#69d9dc;background:#12454e}.zone-chip i{display:inline-block;width:7px;height:7px;border-radius:2px;flex-shrink:0}.zone-chip .num{color:#6a9baa;font-size:9px;min-width:15px}.viewer-foot{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#061a22e9 20%);padding:30px 19px 15px;display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none}.scene-help,.performance{font-size:9px;letter-spacing:.035em;color:#adc2c7;font-weight:650}.scene-help b{margin:0 5px;color:#4f8896}.mouse-icon{font-size:15px;color:#79e2e0}.performance{color:#6cdbd8;white-space:nowrap}.zone-callout{position:absolute;bottom:65px;right:18px;width:clamp(180px,38%,315px);border:1px solid #52717b8c;border-radius:6px;background:#08212dd9;padding:14px 16px;box-shadow:var(--shadow);backdrop-filter:blur(8px)}.callout-kicker{color:#70d4d3;letter-spacing:.13em;font-weight:800;font-size:9px}.callout-kicker span{color:#8da9b6}.callout-name{font-size:14px;margin-top:7px;font-weight:750}.zone-callout p{font-size:11px;line-height:1.5;color:#aac0c8;margin:7px 0 11px}.zone-callout button{font-size:9px;color:#91e6e2;background:transparent;border:none;padding:0;font-weight:850;letter-spacing:.11em}.startup{position:absolute;inset:0;background:#071724e8;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;transition:opacity .6s}.startup.hidden{opacity:0;pointer-events:none}.loader-wheel{border:3px solid #2b606a;border-top-color:#78efe2;border-radius:100%;height:40px;width:40px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.load-label{font-size:11px;font-weight:800;letter-spacing:.15em}.startup small{color:#87a8b6}
.analytics-scroll{flex:1;overflow-y:auto;padding:18px 15px 24px;scrollbar-width:thin;scrollbar-color:#335362 transparent}.panel{background:#102632;border:1px solid #284755;border-radius:6px;padding:14px;margin-bottom:13px}.panel-title{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-bottom:14px}.tag{border-radius:3px;background:#153e43;color:#72d8c6;font-size:9px;font-weight:800;letter-spacing:.06em;padding:4px 6px;white-space:nowrap}.flow-step{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:10px;color:#b3cdd2;font-weight:750;margin-bottom:9px}.flow-step div span{color:#68a0b1;margin-right:4px}.flow-step strong{color:#e2f4f4;font-size:11px;white-space:nowrap}.flow-track{height:5px;overflow:hidden;background:#294451;border-radius:6px;margin-bottom:17px}.flow-track span{display:block;height:100%;border-radius:6px;transition:width .3s}.split-flow{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:3px}.split-caption{color:#9dbbc4;font-size:9px;font-weight:800;letter-spacing:.045em}.split-flow strong{font-size:17px;display:block;margin:9px 0 7px;font-weight:700;font-variant-numeric:tabular-nums}.flow-note{font-size:9px;line-height:1.5;color:#718f9c}.graph-legend{display:flex;gap:13px;font-size:9px;color:#a8c3cc;margin-bottom:10px}.graph-legend span{white-space:nowrap}.legend-mark{height:7px;width:7px;display:inline-block;border-radius:100%;margin-right:4px}.legend-mark.product{background:#61e4cb}.legend-mark.energy{background:#efc273}.trend{display:block;width:100%;height:auto;max-height:145px;background:#0c202c;border:1px solid #1d3847;border-radius:3px}.graph-foot{display:flex;justify-content:space-between;font-size:9px;color:#7e9ca9;margin-top:10px;letter-spacing:.06em}.graph-foot span:last-child{color:#c3e8e8}.assurance-row{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid #27414d;gap:10px;font-size:10px}.assurance-row span{color:#9db7c3}.assurance-row strong{color:#ddf0ef;font-size:11px;font-variant-numeric:tabular-nums}.alarm-list{display:flex;flex-direction:column;gap:8px}.alarm{display:flex;gap:9px;align-items:start;font-size:10px;color:#aebfc6;line-height:1.5}.alarm-indicator{width:7px;height:7px;margin-top:4px;border-radius:50%;flex-shrink:0;background:#7ae1bb}.alarm.warning .alarm-indicator{background:#e4b56e}.alarm.critical .alarm-indicator{background:#ef796e}.alarm strong{font-size:10px;color:#ecf6f3;display:block}.disclaimer{font-size:9px;line-height:1.65;color:#5e8796;padding:5px 8px}.modal{position:fixed;inset:0;background:#000b;z-index:10;display:flex;align-items:center;justify-content:center;padding:20px}.modal[hidden]{display:none}.dialog{max-width:510px;background:#102735;border:1px solid #48808c;border-radius:10px;padding:34px;box-shadow:0 30px 100px #000a;position:relative}.dialog h2{font-size:25px}.dialog p{font-size:13px;line-height:1.8;color:#a7c6ce}.modal-close{position:absolute;right:18px;top:14px;color:#9cd7da;background:transparent;border:none;font-size:28px}
@media(max-width:1420px){.workspace{grid-template-columns:265px minmax(330px,1fr) 265px}.topbar{padding:0 15px}.site-label{display:none}.kpi{padding-left:12px;padding-right:12px}.view-title{font-size:11px}.view-sub{display:none}.viewer-toolbar .tool{padding:7px}.viewer-toolbar .tool span{display:none}.zone-column{top:85px}.side-top{padding:17px 14px}.scenario-area{padding:14px}.controls-area{padding-left:15px;padding-right:15px}.zone-callout{width:240px}}
@media(max-width:1050px){.workspace{grid-template-columns:245px minmax(320px,1fr)}.right{display:none}.kpis{grid-template-columns:repeat(3,1fr);height:155px}.kpi{padding:9px 15px}.kpi-head{font-size:8px}.kpi-main{margin:2px 0}.kpi-main strong{font-size:20px}.workspace{height:calc(100vh - 227px)}.renderer-badge{display:none}}
@media(max-width:660px){body{overflow:auto}.topbar{height:63px;padding:0 10px}.brand-name{font-size:14px}.brand-kicker{font-size:8px}.header-actions .button{display:none}.kpis{height:auto;grid-template-columns:repeat(2,1fr)}.workspace{display:flex;flex-direction:column;height:auto}.viewer{height:530px;order:0}.left{order:1;min-height:550px}.right{display:flex;order:2;min-height:520px}.zone-column{max-width:155px}.zone-chip{padding:7px;font-size:9px}.zone-callout{bottom:57px;right:8px;width:170px}.viewer-head{padding:13px}.viewer-foot{padding:28px 10px 10px}.scene-help{font-size:7px}.view-title{font-size:9px}.controls-area{max-height:420px}}
