*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;overflow:hidden}body{background:#aeb7c4}:root{--txt:#16181d;--txt2:#5d616d;--txt3:#9aa0ab;--panel:#ffffffb8;--panel-solid:#fff;--tile:#ffffff9e;--border:#ffffffbf;--border2:#14182812;--shadow:0 12px 36px #18163429;--shadow-lg:0 24px 56px #1816343d;--indigo:#309;--indigo-solid:#309;--indigo-soft:#3300991a;--peri:#6a5acd;--mint:#36b07c;--mint-soft:#4cd49729;--warn:#d98a1f;--crit:#e0473a;--track:#14182814;--seg-bg:#1418280d;--pin-cam:#6a5acd;--pin-ap:#4cd497;--crit-cam:#e0473a;--crit-ap:#ff8a3d}.syn-dark{--txt:#ecebff;--txt2:#b7b6e0;--txt3:#7d7cae;--panel:#1612348c;--panel-solid:#14102ef0;--tile:#28225266;--border:#8274f066;--border2:#8274f02e;--shadow:0 12px 40px #00000080, 0 0 0 1px #8274f02e, 0 0 26px #4cd49714;--shadow-lg:0 26px 60px #0009, 0 0 0 1px #8274f038;--indigo:#9d8cff;--indigo-soft:#8274f033;--peri:#b3a6ff;--mint:#4cd497;--mint-soft:#4cd49729;--warn:#ffc15e;--crit:#ff6b5e;--track:#8274f029;--seg-bg:#8274f024;--pin-cam:#b3a6ff;--pin-ap:#4cd497;--crit-cam:#ff6b5e;--crit-ap:#ffac5e}.syn-ui,.syn-ui *{box-sizing:border-box;-webkit-font-smoothing:antialiased}.syn-ui{font-family:IBM Plex Sans,system-ui,sans-serif}.syn-ui i.ph,.syn-ui i.ph-fill{line-height:1;display:inline-block}@keyframes synPin{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.18)}to{opacity:1;transform:scale(1)}}@keyframes synPulse{0%{opacity:.7;transform:scale(1)}70%{opacity:0;transform:scale(2.6)}to{opacity:0}}@keyframes synPulseSm{0%{opacity:.42;transform:scale(1)}70%{opacity:0;transform:scale(1.6)}to{opacity:0}}@keyframes synUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes synDrop{0%{opacity:0;transform:translateY(-10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes synBlink{0%,to{opacity:1}50%{opacity:.35}}@keyframes synFloat{0%,to{transform:rotateX(20deg)translateY(0)}50%{transform:rotateX(20deg)translateY(-6px)}}@keyframes synPop{0%{opacity:0;transform:scale(0)translateZ(0)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.syn-panel{background:var(--panel);-webkit-backdrop-filter:blur(20px)saturate(1.3);border:1px solid var(--border);box-shadow:var(--shadow)}.syn-noscroll{scrollbar-width:none;-ms-overflow-style:none}.syn-noscroll::-webkit-scrollbar{width:0;height:0;display:none}.syn-dark .syn-logo{filter:brightness(0)invert()}.syn-poweredby img{filter:drop-shadow(0 1px 3px #0000008c)}.app{color:#1c2230;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;position:fixed;inset:0}.app canvas{width:100%;height:100%;display:block}.topbar{z-index:10;pointer-events:none;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:absolute;top:0;left:0;right:0}.brand{pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);letter-spacing:.3px;background:#ffffffb8;border:1px solid #fff9;border-radius:14px;padding:10px 18px;font-size:18px;box-shadow:0 8px 30px #2832501f}.brand b{color:#4b2fd6}.brand .tag{color:#6b7280;background:#eef0f6;border-radius:20px;margin-left:8px;padding:2px 8px;font-size:11px}.floor-switch{pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffb8;border:1px solid #fff9;border-radius:14px;gap:6px;padding:6px;display:flex;box-shadow:0 8px 30px #2832501f}.fs-btn{cursor:pointer;font:inherit;color:#92a0bc;background:0 0;border:none;border-radius:10px;padding:8px 14px;font-weight:600;transition:all .15s}.fs-btn:hover{color:#4b5568;background:#0000000a}.fs-btn.active{color:#fff;background:#4b2fd6}.left{z-index:10;width:320px;position:absolute;top:72px;left:20px}.panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffc7;border:1px solid #fff9;border-radius:18px;padding:18px;box-shadow:0 12px 40px #28325029}.panel-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.badge{color:#fff;background:linear-gradient(135deg,#6a4cf0,#4b2fd6);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.panel-title{font-size:16px;font-weight:700}.panel-sub{color:#6b7280;font-size:12px}.kpi-row{gap:10px;margin-bottom:12px;display:flex}.kpi{text-align:center;background:#fff9;border-radius:12px;flex:1;padding:10px}.kpi-val{color:#2a3142;font-size:22px;font-weight:700}.kpi-lbl{color:#6b7280;margin-top:2px;font-size:11px}.bar{background:#e7e9f0;border-radius:6px;height:8px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,#6a4cf0,#71f2fe);height:100%;transition:width .4s}.hint{color:#7b8290;margin-top:12px;font-size:12px;line-height:1.5}.error{z-index:20;color:#b42318;background:#fde8e8;border-radius:10px;max-width:420px;padding:10px 16px;font-size:13px;position:absolute;bottom:20px;left:20px}.room-pin{opacity:0;place-items:center;transition:opacity .12s;display:grid}.pin-dot{background:#6a5acd;border:1.5px solid #fff;border-radius:50%;width:9px;height:9px;transition:transform .14s;transform:scale(0);box-shadow:0 1px 5px #00000073}.room-pin.show-dot .pin-dot{transform:scale(1)}.room-pin.sel .pin-dot{background:#9d8cff}.room-pin .room-label,.room-pin.show-text .pin-dot{display:none}.room-pin.show-text .room-label{display:block}.room-label{color:#fff;font-size:calc(12px * var(--label-scale,1));white-space:nowrap;background:#141826d1;border:1px solid #ffffff24;border-radius:8px;padding:4px 10px;font-weight:600;transform:translateY(-2px);box-shadow:0 4px 14px #0000004d}.room-pin.sel .room-label{background:#4b2fd6;border-color:#9d8cff}body.labels-liquid .room-label{color:#0b0f17;-webkit-backdrop-filter:blur(14px)saturate(200%);background:#ffffff29;border:1px solid #ffffff80;box-shadow:0 6px 22px #0f142338,inset 0 1px #ffffffa6}body.labels-liquid .room-pin.sel .room-label{color:#06222a;background:#71f2fe47;border-color:#ffffffb3}body.theme-dark.labels-liquid .room-label{color:#f3f7ff}.layers{z-index:20;flex-direction:column;gap:8px;display:flex;position:absolute;bottom:18px;left:18px}.layer{color:#aab3c2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#141821c7;border:1px solid #ffffff1a;border-radius:11px;align-items:center;gap:9px;padding:8px 13px 8px 11px;font:600 12.5px/1 system-ui,sans-serif;transition:color .15s,background .15s,border-color .15s;display:flex}.layer .dot{width:11px;height:11px;box-shadow:none;background:#4a5568;border-radius:50%;transition:background .15s,box-shadow .15s}.layer.cam.on .dot{background:#ff9a3c;box-shadow:0 0 9px #ff9a3c}.layer.ap.on .dot{background:#34e3c4;box-shadow:0 0 9px #34e3c4}.layer.on{color:#f1f4f9;border-color:#fff3}.calib-panel{z-index:20;color:#e7ecf3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#141821d1;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:8px;padding:8px 12px;font:12px/1.2 system-ui,sans-serif;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.calib-panel .cb{color:#cfd6e0;cursor:pointer;text-transform:capitalize;background:0 0;border:1px solid #ffffff29;border-radius:8px;padding:5px 10px}.calib-panel .cb.active{color:#fff;background:#4b2fd6;border-color:#71f2fe}.calib-panel .calib-val{color:#71f2fe;margin-left:4px;font-family:ui-monospace,monospace}.settings{z-index:21;position:absolute;bottom:16px;right:16px}.gear{cursor:pointer;color:#3a4252;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffc;border:1px solid #fff9;border-radius:12px;width:44px;height:44px;font-size:20px;line-height:1;box-shadow:0 8px 26px #28325029}.gear:hover{background:#fffffff2}.settings-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#2a3142;background:#ffffffdb;border:1px solid #fff9;border-radius:16px;flex-direction:column;gap:14px;width:248px;padding:16px;font:13px/1.3 IBM Plex Sans,system-ui,sans-serif;display:flex;position:absolute;bottom:54px;right:0;box-shadow:0 16px 44px #28325038}.set-row{align-items:center;gap:10px;display:flex}.set-row>label{color:#4b5568;flex:none;width:78px;font-weight:600}.set-row input[type=range]{accent-color:#4b2fd6;flex:1}.set-val{font-variant-numeric:tabular-nums;color:#4b2fd6;width:30px;font-weight:600}.seg{flex:1;gap:4px;display:flex}.seg button{cursor:pointer;font:inherit;color:#5b6577;background:#00000008;border:1px solid #0000001a;border-radius:8px;flex:1;padding:6px 8px}.seg button.on{color:#fff;background:#4b2fd6;border-color:#4b2fd6}.toggle{cursor:pointer;background:#cfd4de;border:none;border-radius:14px;width:46px;height:26px;padding:0;transition:background .18s;position:relative}.toggle.on{background:#4b2fd6}.toggle .knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.toggle.on .knob{transform:translate(20px)}.calib-readout{z-index:60;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#ecebff;white-space:nowrap;background:#0a0c16e0;border:1px solid #9d8cff66;border-radius:12px;align-items:center;gap:14px;padding:10px 18px;font:13px/1.3 IBM Plex Sans,system-ui,sans-serif;display:flex;position:absolute;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000080}.calib-readout b{color:#9d8cff;font-weight:700}.calib-readout-title{color:#b3a6ff;margin-right:4px;font-weight:700}.calib-readout-hint{color:#7d7cae;font-size:11px}.daynight-overlay{z-index:50;pointer-events:none;background:#06081200;flex-direction:column;justify-content:center;align-items:center;animation:1.7s forwards daynight-dim;display:flex;position:absolute;inset:0}.daynight-overlay.out{animation-direction:reverse}@keyframes daynight-dim{0%{background:#04050c00}18%{background:#04050ceb}82%{background:#04050ceb}to{background:#04050c00}}.daynight-sky{width:320px;height:330px;position:relative;overflow:hidden}.daynight-sun{background:radial-gradient(circle at 35% 30%,#ffe9b8,#ffb347 60%,#ff8a3d 100%);border-radius:50%;width:130px;height:130px;margin-left:-65px;animation:1.7s forwards daynight-sun-set;position:absolute;top:120px;left:50%;box-shadow:0 0 60px 18px #ffb3478c}.daynight-overlay.out .daynight-sun{animation-direction:reverse}@keyframes daynight-sun-set{0%{opacity:1;top:120px}60%{opacity:1;top:246px}to{opacity:1;top:330px}}.daynight-horizon{z-index:1;background:linear-gradient(90deg,#0000,#9d8cffe6,#0000);height:2px;position:absolute;bottom:0;left:0;right:0}.daynight-text{color:#fff;letter-spacing:.2px;text-shadow:0 2px 14px #000000e6,0 0 4px #000c;opacity:0;white-space:nowrap;margin-top:10px;font:700 22px/1.3 IBM Plex Sans,system-ui,sans-serif;animation:1.7s forwards daynight-text-fade}@keyframes daynight-text-fade{0%{opacity:0}15%{opacity:1}85%{opacity:1}to{opacity:0}}body.theme-dark .brand,body.theme-dark .floor-switch,body.theme-dark .panel,body.theme-dark .gear,body.theme-dark .settings-panel{color:#e7ecf3;background:#161a22bd;border-color:#ffffff1a}body.theme-dark .app,body.theme-dark .gear{color:#e7ecf3}body.theme-dark .brand b{color:#9d8bff}body.theme-dark .brand .tag,body.theme-dark .kpi{color:#aab3c2;background:#ffffff14}body.theme-dark .panel-title{color:#fff}body.theme-dark .panel-sub,body.theme-dark .kpi-lbl,body.theme-dark .hint,body.theme-dark .panel-sub{color:#9aa3b4}body.theme-dark .kpi-val{color:#eef3fb}body.theme-dark .fs-btn{color:#aab3c2}body.theme-dark .fs-btn:hover{color:#fff;background:#ffffff14}body.theme-dark .set-row>label{color:#c3cad6}body.theme-dark .seg button{color:#c3cad6;background:#ffffff0f;border-color:#ffffff1f}body.theme-dark .bar{background:#ffffff1f}
