.index_app__oarYY{position:relative;isolation:isolate;width:100%;min-height:100vh;background:var(--page-bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.index_app__oarYY:after,.index_app__oarYY:before{position:absolute;inset:0;z-index:-1;pointer-events:none;content:""}.index_app__oarYY:before{background:var(--page-gradient)}.index_app__oarYY:after{position:fixed;background:url(/assets/ducorr-watermark.png) no-repeat right 4% bottom 8%;background-size:min(28%,360px) auto;opacity:var(--watermark-opacity)}.index_header__MHF_t{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--header-bg);border-bottom:1px solid var(--border-header);box-shadow:var(--header-shadow)}.index_headerMain__QRbSy{width:min(100%,1500px);min-height:58px;box-sizing:border-box;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.index_brand__PWujg{display:flex;align-items:center;gap:12px}.index_logo__s_ZB_{min-height:32px;box-sizing:border-box;padding:5px 12px;display:flex;flex-shrink:0;align-items:center;border:var(--logo-border);background:#fff;border-radius:8px}.index_logo__s_ZB_ img{width:auto;height:22px;display:block}.index_brandCopy__3W16s{display:flex;flex-direction:column;line-height:1.25}.index_brandName__c0vZJ{color:var(--text);font-size:14px;font-weight:600}.index_brandSubtitle__dJGeh{color:var(--text-faint);font-size:11px}.index_headerSpacer__WGzYy{flex:1 1}.index_groupSwitch__jHHUk,.index_roleSwitch__7tK_u{display:flex;align-items:center;gap:4px;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:20px}.index_groupButton__ADXXd,.index_roleButton__i9zrn{border:0;border-radius:16px;background:transparent}.index_groupButton__ADXXd,.index_passwordButton__bjY_4,.index_roleButton__i9zrn{padding:6px 12px;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer}.index_passwordButton__bjY_4{border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.index_activeGroup__cD_eD,.index_activeRole__mMkio{background:var(--accent);color:var(--on-accent)}.index_detailGauge__21eKv{position:relative}.index_detailSetpointApply__DO4rs{align-items:flex-start}.index_projectSelect__Top4t{padding:8px 10px;border:1px solid var(--border);border-radius:8px;.index_detailGauge__21eKv{min-height:0!important}.index_detailGauge__21eKv svg{width:min(84px,100%)}.index_detailGauge__21eKv>span{font-size:9px}.index_gaugeNumber__0Ke4n{font-size:18px}.index_gaugeUnit__y1P8N{font-size:10px}.index_registerHeader__8CdAZ,.index_registerRow__iY0da{grid-template-columns:1.3fr .8fr .7fr;gap:6px}.index_registerRow__iY0da>span:first-child{font-size:10px}background:var(--surface-2);color:var(--accent-text);font-size:12px;cursor:pointer}.index_projectSelect__Top4t{max-width:min(300px,42vw);color:var(--text)}.index_connectionStatus__9gn93{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border:1px solid var(--border);border-radius:20px;background:var(--surface-2);color:var(--text-muted);font-size:12px}.index_connectionDot__20wvL{width:8px;height:8px;border-radius:50%;background:var(--danger)}.index_connectedStatusDot__Oky5P{background:var(--success)}.index_demoStatusDot__VBSsG{background:var(--info)}.index_connectionToolbar__F_jIM{max-width:1500px;box-sizing:border-box;margin:0 auto;padding:0 24px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.index_baudSelect__bPhhG,.index_busLogButton__Eo1UL,.index_connectionButton__YvDMc{padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--field-bg);color:var(--text);font-size:12px}.index_connectionButton__YvDMc{padding:8px 16px;background:var(--accent);color:var(--on-accent);font-weight:600;cursor:pointer}.index_connectionButton__YvDMc:disabled{cursor:wait;opacity:.7}.index_disconnectButton__RSIyK{background:var(--control-bg);color:var(--text)}.index_toolbarDivider__2yIGU{width:1px;height:20px;background:var(--border)}.index_demoToggle__2Uvdv{position:relative;width:34px;height:18px;flex:0 0 34px;padding:0;border:0;border-radius:10px;background:var(--track);cursor:pointer}.index_demoToggle__2Uvdv:after{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;content:"";transition:left .15s}.index_demoToggleOn__p9ouh{background:var(--accent)}.index_demoToggleOn__p9ouh:after{left:18px}.index_pollControl__28upJ,.index_toolbarLabel__Nlydy{color:var(--text-muted);font-size:12px}.index_pollControl__28upJ{display:flex;align-items:center;gap:6px}.index_pollControl__28upJ input{width:64px;box-sizing:border-box;padding:6px 8px;border:1px solid var(--border-strong);border-radius:6px;background:var(--field-bg);color:var(--text);font-size:12px}.index_toolbarSpacer__e9pyl{flex:1 1}.index_busLogButton__Eo1UL{padding:8px 12px;background:var(--surface-2);color:var(--text-muted);cursor:pointer}.index_demoBanner__vR9xi{min-height:34px;box-sizing:border-box;padding:8px 24px;display:flex;align-items:center;justify-content:center;gap:10px;border-top:1px solid var(--warning-border);background:var(--warning-bg);color:var(--warning);font-size:12px;text-align:center}.index_demoBanner__vR9xi button{padding:0;border:0;background:none;color:var(--warning);font-size:14px;cursor:pointer}.index_headerAccent__i95Y9{height:2px;background:linear-gradient(90deg,#f5821f,transparent 65%)}.index_main__a4FrX{max-width:1500px;margin:0 auto;padding:24px}.index_overviewHeader__J7XCC{min-height:32px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.index_groupLabel__HxRKe,.index_overviewTitle__x7p_r{color:var(--text-muted);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.index_overviewActions__UA2zR{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.index_groupButton__ADXXd{padding:6px 12px}.index_createButton__Cz7Ew,.index_newProjectButton__JvCZ7,.index_openButton__nKv02{border:0;border-radius:8px;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:600;cursor:pointer}.index_newProjectButton__JvCZ7{padding:9px 16px}.index_projectGroup__Ye5RS+.index_projectGroup__Ye5RS{margin-top:22px}.index_groupLabel__HxRKe{margin:22px 0 10px;font-size:11px}.index_projectGrid__7jd0H{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));grid-gap:20px;gap:20px}.index_projectCard__dtJGA{min-width:0;box-sizing:border-box;padding:20px;display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--border-card);border-radius:16px;box-shadow:var(--card-shadow)}.index_cardHeading__an_Bd{display:flex;align-items:center;gap:12px}.index_projectLogo__JoW8P{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.index_projectIdentity__qLUan{min-width:0;flex:1 1}.index_projectName__D4GN4{overflow:hidden;color:var(--text);font-size:16px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.index_projectSummary__D2hXw{margin-top:2px;color:var(--text-faint);font-size:12px}.index_nameInput__AkfhB{width:100%;min-width:0;padding:0 0 1px;border:0;border-bottom:1px solid transparent;outline:none;background:transparent;color:inherit;font:inherit}.index_nameInput__AkfhB:hover{border-bottom-color:var(--border)}.index_nameInput__AkfhB:focus{border-bottom-color:var(--accent)}.index_dashboardTitle__AXxWD .index_nameInput__AkfhB{width:auto;field-sizing:content;min-width:4ch}.index_orderButtons__8Ti_5{display:flex;flex-direction:column;gap:2px}.index_orderButtons__8Ti_5 button{width:22px;height:18px;padding:0;display:grid;place-items:center;border:1px solid var(--border);border-radius:5px;background:var(--surface-2);color:var(--text-muted);cursor:pointer}.index_locationFields__RF0Cj{display:flex;gap:6px}.index_locationFields__RF0Cj input,.index_systemField__JwA_r{min-width:0;box-sizing:border-box;padding:5px 8px;border:1px solid var(--border);border-radius:6px;outline:none;background:var(--field-bg);color:var(--text-2);font-size:11px}.index_locationFields__RF0Cj input{width:50%}.index_systemField__JwA_r{width:100%}.index_locationFields__RF0Cj input::placeholder,.index_systemField__JwA_r::placeholder{color:var(--text-faint);opacity:1}.index_locationFields__RF0Cj input:focus,.index_projectSelect__Top4t:focus,.index_systemField__JwA_r:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(245,130,31,.15)}.index_statusRow__qRg0Z{display:flex;align-items:center;gap:6px}.index_statusDot__rzGCx{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--danger)}.index_demoDot__Xm6VE{background:var(--secondary);box-shadow:0 0 6px var(--secondary)}.index_statusLabel__j_7KI{flex:1 1;color:var(--text-2);font-size:11px}.index_statusLog__BCL5O{padding:0;border:0;background:none;color:var(--text-faint);font-size:10px;text-decoration:underline;cursor:pointer}.index_accessRow__kcnkr{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;background:var(--surface-2);color:var(--text-muted);font-size:12px}.index_accessControl__9T0XR{padding:0;display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--text-2);font-size:11px;cursor:pointer}.index_toggle__m2bnV{position:relative;width:34px;height:18px;border-radius:10px;background:var(--track);transition:background .15s}.index_toggle__m2bnV>span{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s}.index_toggleOn__oM1hS{background:var(--accent)}.index_toggleOn__oM1hS>span{left:18px}.index_cardActions__tZ5I3{display:flex;gap:8px}.index_openButton__nKv02{flex:1 1;padding:9px}.index_backButton__O0l72,.index_cancelButton__sex85,.index_deleteButton__gM3e2{border:1px solid var(--danger-border);border-radius:8px;padding:9px 12px;background:none;color:var(--danger);font-size:12px;cursor:pointer}.index_emptyState__2hUHx{padding:48px 24px;border:1px dashed var(--track);border-radius:16px;color:var(--text-faint);font-size:13px;text-align:center}.index_dashboard__wT_XI{display:flex;flex-direction:column;gap:20px}.index_dashboardHeader__zgVdV{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.index_dashboardHeading__m1yhb{min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.index_backButton__O0l72{border-color:var(--border);background:var(--surface-2);color:var(--text-muted)}.index_dashboardTitle__AXxWD{color:var(--text-muted);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.index_readOnlyBadge___L6vr{padding:3px 8px;border:1px solid var(--warning-border);border-radius:6px;background:var(--warning-bg);color:var(--warning);font-size:10px}.index_projectMeta__90tet{display:flex;gap:24px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border-card);border-radius:10px;background:var(--surface);color:var(--text);font-size:12px}.index_projectMeta__90tet div{display:flex;gap:8px}.index_projectMeta__90tet span{color:var(--text-faint)}.index_psuGrid__Kvf4V{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr));grid-gap:20px;gap:20px}.index_psuCard__Ee8pR{min-width:0;box-sizing:border-box;padding:20px;display:flex;flex-direction:column;gap:16px;border:1px solid var(--border-card);border-radius:16px;background:var(--surface);box-shadow:var(--card-shadow)}.index_psuHeading__lZ3Td{display:flex;align-items:center;gap:10px}.index_psuStatusDot__Sxt_d{width:9px;height:9px;flex-shrink:0;border-radius:50%;background:var(--danger);box-shadow:0 0 8px var(--danger)}.index_psuOnline__fIRmr{background:var(--success);box-shadow:0 0 8px var(--success)}.index_psuIdentity__H2gQB{min-width:0;flex:1 1}.index_psuName__ks3HS{overflow:hidden;color:var(--text);font-size:15px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.index_psuSummary__VfHvu{margin-top:3px;color:var(--text-faint);font-size:11px}.index_psuState__j_FDy{color:var(--danger);font-size:11px}.index_psuStateOnline__JsBW_{color:var(--success)}.index_psuSettingsButton__2_ELK{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text-muted);cursor:pointer}.index_psuOutputRow__0x1Wu{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2)}.index_psuOutputState__mOp_o{min-width:0;color:var(--text-muted);font-size:11px}.index_psuOutputButton__f_iMd{flex-shrink:0;padding:6px 14px;border:1px solid var(--border);border-radius:8px;background:var(--button-bg);color:var(--text);font-size:12px;font-weight:600;cursor:pointer}.index_psuOutputButtonOn__4Wbqz{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.index_psuValues__6qAIg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;padding:12px;border-radius:10px;background:var(--surface-2)}.index_psuValues__6qAIg div{min-width:0;display:flex;flex-direction:column;gap:5px}.index_psuValues__6qAIg span{color:var(--text-faint);font-size:10px;text-transform:uppercase}.index_psuValues__6qAIg strong{color:var(--text);font-size:13px;font-weight:600}.index_channelIntro__DhuBz{color:var(--text-faint);font-size:10px;letter-spacing:.05em;text-transform:uppercase}.index_channelList__DYJXk{display:flex;flex-direction:column;gap:10px}.index_channelCard__ASgLd{min-width:0;padding:12px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--border-channel);border-radius:12px;background:var(--surface-2)}.index_channelHeading__yfX4p{min-width:0;display:flex;align-items:center;gap:8px}.index_channelStatusDot__BH1F7{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--danger);box-shadow:0 0 6px var(--danger)}.index_channelOn__rX_Gb{background:var(--success);box-shadow:0 0 6px var(--success)}.index_channelError__IYWap{background:var(--danger)}.index_channelName__YTj_x{min-width:0;flex:1 1;overflow:hidden;color:var(--text);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.index_channelId__luwec{padding:2px 6px;border-radius:5px;background:var(--field-bg);color:var(--text-faint);font-size:10px}.index_channelState__yZ6h_{color:var(--text-muted);font-size:10px}.index_channelToggle__zOtrW{position:relative;width:34px;height:18px;flex:0 0 34px;padding:0;border:0;border-radius:10px;background:var(--track);cursor:pointer}.index_channelToggle__zOtrW:after{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;content:"";transition:left .15s}.index_channelToggleOn__3l1s4{background:var(--accent)}.index_channelToggleOn__3l1s4:after{left:18px}.index_channelToggleUnknown__4RTBK{background:var(--track);opacity:.55}.index_channelToggleUnknown__4RTBK:after{left:10px;background:var(--text-dim)}.index_channelToggle__zOtrW:disabled{cursor:default;opacity:.7}.index_channelMetrics__v1C__{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.index_channelMetrics__v1C__ div{min-width:0}.index_channelMetrics__v1C__ span{display:block;color:var(--text-faint);font-size:9px;text-transform:uppercase}.index_channelMetrics__v1C__ strong{display:block;margin-top:2px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:500}.index_channelMetrics__v1C__ .index_inputVoltage__9kmB5{color:var(--text-2)}.index_channelBadges__5E8n4{display:flex;gap:8px;flex-wrap:wrap}.index_currentBadge__A_MIS,.index_voltageBadge__ZYyx4{display:flex;align-items:center;gap:5px;padding:3px 8px 3px 6px;border-radius:999px;color:var(--text);font-size:10px}.index_voltageBadge__ZYyx4{background:rgba(245,130,31,.1)}.index_currentBadge__A_MIS{background:rgba(69,169,191,.12)}.index_currentBadge__A_MIS>span,.index_voltageBadge__ZYyx4>span{width:7px;height:7px;border-radius:50%}.index_voltageBadge__ZYyx4>span{background:var(--accent)}.index_currentBadge__A_MIS>span{background:#45a9bf}.index_currentBadge__A_MIS strong,.index_voltageBadge__ZYyx4 strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:500}.index_voltageBadge__ZYyx4 strong{color:var(--accent-text)}.index_currentBadge__A_MIS strong{color:var(--secondary)}.index_channelChart__0_aB8{width:100%;height:38px;display:block;overflow:visible}.index_channelChart__0_aB8 line{stroke:var(--chart-grid);stroke-dasharray:2 2}.index_currentLine__nVqVS,.index_voltageLine__R0zt_{fill:none;stroke-width:2;stroke-linecap:round}.index_voltageLine__R0zt_{stroke:#f5821f}.index_currentLine__nVqVS{stroke:#45a9bf}.index_voltagePlot__RIv7C{fill:#f5821f}.index_currentPlot__FEv8M{fill:#45a9bf}.index_channelModal__z_FkZ{width:100%;max-width:640px;max-height:88vh;box-sizing:border-box;overflow:auto;padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.index_channelModalContext__sUToK{margin-bottom:6px;color:var(--text-faint);font-size:11px}.index_channelModalHeading__ON1Kf{display:flex;align-items:center;gap:12px;margin-bottom:20px}.index_channelModalHeading__ON1Kf input{min-width:0;flex:1 1;padding:6px 0;border:0;border-bottom:1px solid var(--border);outline:0;background:transparent;color:var(--text);font-size:18px;font-weight:600}.index_closeModal__ebGE4{width:32px;height:32px;flex:0 0 32px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text-muted);font-size:18px;cursor:pointer}.index_channelGaugeGrid__FXYHb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.index_channelGaugeGrid__FXYHb div{min-width:0;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:50%;background:var(--surface-2);text-align:center}.index_channelGaugeGrid__FXYHb div:first-child strong{color:var(--accent-text)}.index_channelGaugeGrid__FXYHb div:nth-child(2) strong{color:var(--info)}.index_channelGaugeGrid__FXYHb span{color:var(--text-muted);font-size:10px}.index_channelGaugeGrid__FXYHb strong{color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.index_channelGaugeGrid__FXYHb small{font-family:inherit;font-size:9px;font-weight:400}.index_detailGauge__21eKv{gap:6px!important;border:0!important;background:none!important}.index_detailGauge__21eKv svg{width:min(100px,100%);aspect-ratio:1;overflow:visible}.index_detailGauge__21eKv>span{color:var(--text-muted);font-size:10px;text-align:center}.index_gaugeTrack__VtHal,.index_gaugeValue__XlzpL{fill:none;stroke-width:7}.index_gaugeTrack__VtHal{stroke:var(--track)}.index_gaugeValue__XlzpL{stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%}.index_gaugeNumber__0Ke4n{fill:var(--text);font-size:17px}.index_gaugeNumber__0Ke4n,.index_gaugeUnit__y1P8N{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-anchor:middle}.index_gaugeUnit__y1P8N{fill:var(--text-muted);font-size:9px}.index_channelDetailSummary__Thr97{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:10px 14px;border-radius:10px;background:var(--surface-2)}.index_channelDetailSummary__Thr97 div{min-width:0}.index_channelDetailSummary__Thr97 span{display:block;color:var(--text-faint);font-size:10px;text-transform:uppercase}.index_channelDetailSummary__Thr97 strong{display:block;margin-top:3px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:500}.index_detailChannelChart__7zoQ4{width:100%;height:100px;display:block;margin:0 0 20px;overflow:visible}.index_detailChannelChart__7zoQ4 line{stroke:var(--chart-grid);stroke-dasharray:2 2}.index_outputEnabledRow__wMI1_{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:12px 14px;border-radius:10px;background:var(--surface-2);color:var(--text-2);font-size:13px}.index_outputEnabledRow__wMI1_ .index_channelToggle__zOtrW{width:40px;height:22px;flex-basis:40px}.index_outputEnabledRow__wMI1_ .index_channelToggle__zOtrW:after{width:18px;height:18px}.index_outputEnabledRow__wMI1_ .index_channelToggleOn__3l1s4:after{left:20px}.index_detailSetpoints__H8W3Z{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.index_detailSetpointHeading__C2ipn{display:flex;justify-content:space-between;margin-bottom:6px;color:var(--text-muted);font-size:12px}.index_detailSetpointHeading__C2ipn strong{color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:500}.index_detailSetpoint__t9alV input[type=range]{width:100%;accent-color:var(--accent)}.index_detailSetpointApply__DO4rs{display:flex;gap:8px;margin-top:8px}.index_detailSetpointApply__DO4rs button{padding:8px 16px;border:0;border-radius:6px;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:600;cursor:pointer}.index_slaveAddressSection__qfW3E{margin-bottom:8px;padding-top:16px;border-top:1px solid var(--border-card)}.index_slaveAddressSection__qfW3E>div:first-child{margin-bottom:8px;color:var(--text-muted);font-size:12px}.index_slaveAddressSection__qfW3E small{display:block;margin-top:6px;color:var(--text-faint);font-size:11px}.index_advancedToggle__W7baA{padding:10px 0;border:0;background:none;color:var(--text-muted);font-size:12px;text-align:left;cursor:pointer}.index_advancedSection__bMo11{padding-bottom:12px}.index_rangesGrid__XD0d_{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-bottom:18px}.index_rangesGrid__XD0d_ label{color:var(--text-faint);font-size:11px}.index_rangesGrid__XD0d_ label>div{display:flex;gap:6px;margin-top:4px}.index_registerHeader__8CdAZ,.index_registerRow__iY0da{display:grid;grid-template-columns:1.4fr .8fr .8fr;align-items:center;grid-gap:8px;gap:8px}.index_registerHeader__8CdAZ{margin-bottom:4px;padding:0 4px;color:var(--text-faint);font-size:11px}.index_registerRow__iY0da{padding:6px 4px;border-top:1px solid var(--divider)}.index_registerRow__iY0da>span:first-child{color:var(--text-2);font-size:12px}.index_registerNote__uIgRJ{margin-top:10px;color:var(--text-faint);font-size:11px}.index_modalSetpoints__zS_Mu{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.index_modalSetpoints__zS_Mu label{display:flex;flex-direction:column;gap:5px;color:var(--text-faint);font-size:11px}.index_modalSetpoints__zS_Mu label>div{display:flex;align-items:center;gap:4px}.index_removeChannelButton__L55AY{width:100%;margin-top:20px;padding:10px;border:1px solid var(--danger-border);border-radius:8px;background:none;color:var(--danger);font-size:12px;cursor:pointer}.index_removeChannelButton__L55AY:disabled{opacity:.45;cursor:not-allowed}.index_readOnlyMessage__kXa5d{padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text-muted);font-size:12px;text-align:center}.index_setpointControls__NI6SW{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.index_setpointInput__U8GVk{min-width:0;display:flex;align-items:center;gap:4px}.index_modalSetpoints__zS_Mu input,.index_setpointInput__U8GVk input{min-width:0;width:100%;box-sizing:border-box;padding:6px;border:1px solid var(--border-strong);border-radius:6px;background:var(--field-bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.index_modalSetpoints__zS_Mu button,.index_setpointInput__U8GVk button{padding:6px 8px;border:0;border-radius:6px;background:var(--control-bg);color:var(--accent-text);font-size:11px;cursor:pointer}.index_manageChannel__gtz0K{padding:6px;border:1px solid var(--border-card);border-radius:6px}.index_addChannelButton__ng3Q_,.index_manageChannel__gtz0K{background:none;color:var(--text-muted);font-size:11px;cursor:pointer}.index_addChannelButton__ng3Q_{padding:8px;border:1px dashed var(--border-strong);border-radius:8px}.index_modalBackdrop__BqEqc{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--backdrop)}.index_modal__MhzSg{max-width:400px}.index_modal__MhzSg,.index_psuModal__Nbmpo{width:100%;box-sizing:border-box;padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.index_psuModal__Nbmpo{max-width:440px;max-height:88vh;overflow:auto}.index_modalTitle__3WlMW{margin-bottom:18px;font-size:16px;font-weight:600}.index_modalActions__TG6gH{display:flex;gap:10px;margin-top:22px}.index_modalActions__TG6gH button{flex:1 1;padding:10px;font-size:13px}.index_cancelButton__sex85{border-color:var(--border-strong);background:var(--field-bg);color:var(--text-muted)}.index_createButton__Cz7Ew{padding:10px}.index_psuFormGrid__dkfn3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:12px}.index_rangeHint__qo2Jr{margin-top:10px;color:var(--text-faint);font-size:11px}.index_lockScreen___BQQJ{min-height:100vh;padding:24px;justify-content:center}.index_lockCard__Rc5M9,.index_lockScreen___BQQJ{box-sizing:border-box;display:flex;align-items:center}.index_lockCard__Rc5M9{width:100%;max-width:340px;padding:32px 28px;flex-direction:column;gap:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.index_lockLogo__xaofM{padding:8px 16px;display:flex;align-items:center;border:var(--logo-border);border-radius:10px;background:#fff}.index_lockLogo__xaofM img{width:auto;height:32px;display:block}.index_lockTitle__798CK{color:var(--text-muted);font-size:13px;text-align:center}.index_lockCard__Rc5M9 .index_createButton__Cz7Ew{width:100%;padding:12px;font-size:14px}.index_passwordModal__I4iDT{width:100%;max-width:360px;box-sizing:border-box;padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.index_passwordModal__I4iDT .index_modalTitle__3WlMW{margin-bottom:16px}.index_passwordFields__fikH4{display:flex;flex-direction:column;gap:10px}.index_passwordError__GBpgR{color:var(--danger);font-size:12px}.index_passwordNote__ux8ax{color:var(--text-faint);font-size:11px}.index_settingsModal__aDWZm{width:100%;max-width:420px;max-height:88vh;box-sizing:border-box;overflow:auto;padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.index_settingsHeading__lLSAv{display:flex;align-items:center;gap:12px;margin-bottom:8px}.index_settingsHeading__lLSAv input{min-width:0;flex:1 1;padding:6px 0;border:0;border-bottom:1px solid var(--border);outline:0;background:transparent;color:var(--text);font-size:18px;font-weight:600}.index_settingsNote__OZh4s{margin-bottom:20px;color:var(--text-faint);font-size:11px}.index_settingsSectionTitle___Axwo{margin-bottom:8px;color:var(--text-faint);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.index_settingsChannelList__1fz84{margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.index_settingsChannelRow__fNuVk{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:8px;background:var(--surface-2);color:var(--text-2);font-size:12px}.index_settingsChannelRow__fNuVk button{border:0;background:none;color:var(--danger);font-size:12px;cursor:pointer}.index_settingsChannelRow__fNuVk button:disabled{opacity:.45;cursor:not-allowed}.index_settingsAddChannel__EOVR9{width:100%;margin-bottom:20px;padding:9px;border:1px dashed var(--border-strong);border-radius:8px;background:none;color:var(--text-muted);font-size:12px;cursor:pointer}.index_settingsRemovePsu__TFPWA{width:100%;padding:10px;border:1px solid var(--danger-border);border-radius:8px;background:none;color:var(--danger);font-size:12px;cursor:pointer}.index_statusModal__0aECt{width:100%;max-width:480px;max-height:80vh;box-sizing:border-box;overflow:auto;padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.index_statusModalHeading__Cnk3j{display:flex;align-items:center;gap:12px;margin-bottom:16px;color:var(--text);font-size:16px;font-weight:600}.index_statusModalHeading__Cnk3j>div{flex:1 1}.index_statusEntries__aSDEX{display:flex;flex-direction:column;gap:8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.index_statusEntry__WPb2G{display:flex;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--divider)}.index_statusEntryDot__rCubk{width:7px;height:7px;flex:0 0 7px;margin-top:5px;border-radius:50%;background:var(--danger)}.index_statusEntryOk__g6wdr{background:var(--success)}.index_statusEntryWarning__qO3M2{background:var(--warning)}.index_statusEntry__WPb2G time{color:var(--text-dim);font-size:10px}.index_statusEntry__WPb2G p{margin:2px 0 0;color:var(--text-2)}.index_busLog__lw9kG{position:fixed;right:0;bottom:0;left:0;z-index:40;height:280px;display:flex;flex-direction:column;border-top:1px solid var(--border-card);background:var(--sunken)}.index_busLogHeader__CDIY_{min-height:46px;box-sizing:border-box;padding:8px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--divider);color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.index_busLogActions__6juCl{margin-left:auto;display:flex;align-items:center;gap:8px}.index_busLogActions__6juCl button{min-height:28px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--text-muted);font-size:12px;cursor:pointer}.index_busLogActions__6juCl button:last-child{width:28px;padding:0;font-size:16px}.index_busLogEntries__sv8Su{flex:1 1;overflow:auto;padding:10px 16px;display:flex;flex-direction:column;gap:3px;color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.index_busLogEntries__sv8Su time{color:var(--text-dim)}.index_app__oarYY button:hover:not(:disabled){transform:none;box-shadow:none;filter:none}.index_createButton__Cz7Ew:hover:not(:disabled),.index_newProjectButton__JvCZ7:hover:not(:disabled),.index_openButton__nKv02:hover:not(:disabled){background-color:var(--accent)}.index_groupButton__ADXXd:hover:not(:disabled),.index_roleButton__i9zrn:hover:not(:disabled){background-color:var(--control-hover)}.index_statusLog__BCL5O:hover:not(:disabled){background-color:transparent}@media (max-width:620px){.index_headerMain__QRbSy{padding:10px 16px;gap:10px}.index_headerSpacer__WGzYy{display:none}.index_brand__PWujg{flex:1 1 100%}.index_roleSwitch__7tK_u{margin-right:auto}.index_connectionToolbar__F_jIM{padding:0 16px 14px;gap:8px}.index_toolbarSpacer__e9pyl{display:none}.index_pollControl__28upJ{gap:4px}.index_demoBanner__vR9xi{padding-right:16px;padding-left:16px;text-align:left}.index_main__a4FrX{padding:20px 16px}.index_overviewHeader__J7XCC{align-items:flex-start}.index_overviewActions__UA2zR{width:100%;justify-content:space-between}.index_groupButton__ADXXd{padding-right:9px;padding-left:9px}.index_projectGrid__7jd0H{grid-template-columns:minmax(0,1fr)}.index_projectMeta__90tet{gap:10px}.index_projectMeta__90tet div{flex:1 1 100%}.index_psuValues__6qAIg{gap:6px;padding:10px}.index_psuValues__6qAIg strong{font-size:12px}.index_channelModal__z_FkZ,.index_psuModal__Nbmpo{padding:22px}.index_channelGaugeGrid__FXYHb div{min-height:88px}.index_channelGaugeGrid__FXYHb span{font-size:9px}.index_channelGaugeGrid__FXYHb strong{font-size:11px}.index_detailGauge__21eKv{min-height:0!important}.index_detailGauge__21eKv svg{width:min(84px,100%)}.index_detailGauge__21eKv>span{font-size:9px}.index_gaugeNumber__0Ke4n{font-size:18px}.index_gaugeUnit__y1P8N{font-size:10px}.index_registerHeader__8CdAZ,.index_registerRow__iY0da{grid-template-columns:1.3fr .8fr .7fr;gap:6px}.index_registerRow__iY0da>span:first-child{font-size:10px}.index_passwordModal__I4iDT,.index_settingsModal__aDWZm,.index_statusModal__0aECt{padding:22px}.index_busLog__lw9kG{height:280px}}.index_configButton__juvoC{padding:9px 14px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-2);color:var(--text);font-size:12px;font-weight:600;cursor:pointer}.index_configButton__juvoC:hover{background-color:var(--control-hover)}.index_accessControl__9T0XR:disabled,.index_addChannelButton__ng3Q_:disabled,.index_baudSelect__bPhhG:disabled,.index_createButton__Cz7Ew:disabled,.index_demoToggle__2Uvdv:disabled,.index_detailSetpointApply__DO4rs button:disabled,.index_newProjectButton__JvCZ7:disabled,.index_orderButtons__8Ti_5 button:disabled,.index_psuOutputButton__f_iMd:disabled,.index_psuSettingsButton__2_ELK:disabled,.index_setpointInput__U8GVk button:disabled{opacity:.45;cursor:not-allowed}.index_detailSetpoint__t9alV input[type=range]:disabled,.index_locationFields__RF0Cj input:disabled,.index_setpointInput__U8GVk input:disabled,.index_systemField__JwA_r:disabled{opacity:.6;cursor:not-allowed}.index_nameInput__AkfhB:disabled,.index_nameInput__AkfhB:disabled:hover{border-bottom-color:transparent;cursor:default}.index_passwordFields__fikH4 select{width:100%;box-sizing:border-box;padding:9px;border:1px solid var(--border-strong);border-radius:6px;background:var(--field-bg);color:var(--text);font-size:13px}.index_readOnlyMessage__kXa5d{margin-bottom:16px}.index_projectLogo__JoW8P{overflow:hidden}.index_projectLogoFilled__pUjC_{background:#fff}.index_projectLogo__JoW8P img{width:100%;height:100%;display:block;object-fit:contain}.index_imagesButton__F_I1t{padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text-muted);font-size:12px;cursor:pointer}.index_dashboardProjectLogo__LaXWs{width:auto;height:32px;max-width:140px;padding:3px 8px;display:block;border:var(--logo-border);border-radius:6px;background:#fff;object-fit:contain}.index_brandLogo__NpkH4{display:flex;align-items:center;gap:6px;color:var(--text-faint);font-size:10px;letter-spacing:.05em;text-transform:uppercase}.index_brandLogo__NpkH4 img{width:auto;height:32px;max-width:140px;padding:3px 8px;display:block;border:var(--logo-border);border-radius:6px;background:#fff;object-fit:contain}.index_imageSlotList__AgC7V{display:flex;flex-direction:column;gap:8px}.index_imageSlot__SEKgM{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--surface-2)}.index_imagePreview__39u62{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--field-bg)}.index_imagePreviewFilled__Mol_D{background:#fff}.index_imagePreview__39u62 img{width:100%;height:100%;display:block;object-fit:contain}.index_imageSlotCopy__onM41{min-width:0;flex:1 1;display:flex;flex-direction:column;gap:2px}.index_imageSlotCopy__onM41 strong{color:var(--text);font-size:12px;font-weight:600}.index_imageSlotCopy__onM41 span{color:var(--text-faint);font-size:11px}.index_imageAction__rBI8l{padding:7px 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--field-bg);color:var(--text);font-size:11px;cursor:pointer}.index_imageRemove__sfxEX{border-color:var(--danger-border);background:none;color:var(--danger)}.index_busLogButton__Eo1UL:disabled,.index_imageRemove__sfxEX:disabled{opacity:.45;cursor:not-allowed}.index_shareDot__sUSds{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--success);vertical-align:middle}.index_shareDotError__gCVmX{background:var(--warning)}.index_viewReadOnly__Zb6S6{padding:3px 8px;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:10px;letter-spacing:.05em;text-transform:uppercase}.index_viewBanner__ZHa9Q{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border-card);border-radius:10px;background:var(--surface);color:var(--text);font-size:13px;box-shadow:var(--card-shadow)}.index_viewBannerLive__PfMfK{border-color:var(--success);color:var(--success)}.index_viewBannerWarn__BSTe6{border-color:var(--warning-border);background:var(--warning-bg);color:var(--warning)}.index_viewBannerOffline__EedkM{border-color:var(--danger-border);color:var(--danger)}.index_viewBannerNote__O0zSy{color:var(--text-muted);font-size:12px}.index_viewSetpoints__3R3bU{color:var(--text-muted);font-size:11px}.index_sharedStatus__AKvm_{flex-shrink:0;padding:3px 8px;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:10px;font-weight:600;text-transform:uppercase}.index_sharedStatusLive__tNUca{border-color:var(--success);color:var(--success)}.index_sharedStatusWarn__yiO84{border-color:var(--warning-border);background:var(--warning-bg);color:var(--warning)}.index_sharedStatusOffline__PJ9vy{border-color:var(--danger-border);color:var(--danger)}.index_pairingNote__14auX{margin:0 0 14px;color:var(--text-faint);font-size:12px;line-height:1.5}.index_pairingLabel__mnCHO{margin-bottom:6px;color:var(--text-muted);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.index_pairingRow__itZko{display:flex;gap:8px;margin-bottom:14px}.index_pairingReason___05n_{margin:-8px 0 14px;color:var(--text-muted);font-size:11px}.index_pairingActions__cGNyV{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.index_pairingActions__cGNyV button:disabled,.index_pairingRow__itZko button:disabled{opacity:.45;cursor:not-allowed}.index_dataLogModal__IWzsj{width:100%;max-width:1100px;max-height:88vh;box-sizing:border-box;overflow:auto;padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.index_dataLogControls__APPk3{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 14px;border-radius:10px;background:var(--surface-2);color:var(--text-2);font-size:12px}.index_dataLogControl__GFKm5{display:flex;align-items:center;gap:8px}.index_dataLogNext__Pxq4S{margin-left:auto;color:var(--text-muted)}.index_dataLogNote__7v8hI{margin:10px 0 14px;color:var(--text-faint);font-size:11px;line-height:1.5}.index_dataLogToolbar__VTHIz{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.index_dataLogToolbar__VTHIz button:disabled{opacity:.45;cursor:not-allowed}.index_dataLogCount__MPGnr{color:var(--text-muted);font-size:12px}.index_dataLogFlag__HIhH6{color:var(--warning);font-weight:600}.index_dataLogRecordingDot__fxDnx{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--danger);vertical-align:middle}@media (max-width:620px){.index_dataLogModal__IWzsj{padding:22px}.index_dataLogNext__Pxq4S{margin-left:0}.index_imageSlot__SEKgM{flex-wrap:wrap}}