.login-page{background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 50%,#0ea5e9 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{border-radius:12px;width:100%;max-width:400px;box-shadow:0 12px 40px #0003}.app-layout{height:100vh;min-height:100vh;overflow:hidden}.app-sider{flex-shrink:0;height:100vh;overflow:auto}.app-sider .app-logo{color:#fff;letter-spacing:.5px;white-space:nowrap;justify-content:center;align-items:center;height:48px;font-size:16px;font-weight:700;transition:font-size .2s;display:flex;overflow:hidden}.app-sider.ant-layout-sider-collapsed .app-logo{letter-spacing:0;font-size:13px}.app-sider .ant-menu{font-size:13px}.app-main{background:#f0f2f5;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.app-header{z-index:100;border-bottom:1px solid #f0f0f0;flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 16px 0 8px;line-height:48px;display:flex;box-shadow:0 1px 4px #0000000a}.app-header-left{align-items:center;gap:4px;min-width:0;display:flex}.app-sider-trigger{width:40px;height:40px;font-size:16px}.app-user{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.app-main-scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:12px 16px 16px;overflow:hidden auto}.app-content{box-sizing:border-box;background:#fff;border-radius:8px;min-height:calc(100vh - 76px);margin:0;padding:16px 20px 20px}.app-main-scroll>.app-content.ant-layout-content{flex:none;width:100%}.manage-count-btn{cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:6px;align-items:stretch;padding:0;font-size:13px;line-height:1;transition:border-color .2s;display:inline-flex;overflow:hidden}.manage-count-btn:not([class*=--action]):hover{border-color:#bfbfbf}.manage-count-btn-count{color:#000000e0;background:#f5f5f5;border-right:1px solid #d9d9d9;justify-content:center;align-items:center;min-width:28px;padding:5px 8px;font-weight:600;display:inline-flex}.manage-count-btn:not([class*=--action]):hover .manage-count-btn-count{color:#000000e0;background:#ebebeb;border-right-color:#d9d9d9}.manage-count-btn-label{color:#000000a6;align-items:center;padding:5px 10px;display:inline-flex}.manage-count-btn:not([class*=--action]):hover .manage-count-btn-label{color:#000000e0}.manage-count-btn--action{border-color:#1677ff}.manage-count-btn--action .manage-count-btn-count{color:#1677ff;background:#e6f4ff;border-right-color:#91caff}.manage-count-btn--action .manage-count-btn-label{color:#1677ff}.manage-count-btn--action:hover{border-color:#4096ff;box-shadow:0 0 0 2px #1677ff1a}.manage-count-btn--action-cyan{border-color:#13c2c2}.manage-count-btn--action-cyan .manage-count-btn-count{color:#13c2c2;background:#e6fffb;border-right-color:#87e8de}.manage-count-btn--action-cyan .manage-count-btn-label{color:#13c2c2}.manage-count-btn--action-cyan:hover{border-color:#36cfc9;box-shadow:0 0 0 2px #13c2c21f}.manage-count-btn--action-cyan:hover .manage-count-btn-count{color:#08979c;background:#b5f5ec;border-right-color:#5cdbd3}.manage-count-btn--action-cyan:hover .manage-count-btn-label{color:#08979c}.manage-count-btn--action-green{border-color:#52c41a}.manage-count-btn--action-green .manage-count-btn-count{color:#52c41a;background:#f6ffed;border-right-color:#b7eb8f}.manage-count-btn--action-green .manage-count-btn-label{color:#52c41a}.manage-count-btn--action-green:hover{border-color:#73d13d;box-shadow:0 0 0 2px #52c41a1f}.manage-count-btn--action-green:hover .manage-count-btn-count{color:#389e0d;background:#d9f7be;border-right-color:#95de64}.manage-count-btn--action-green:hover .manage-count-btn-label{color:#389e0d}.library-ownership-cell{white-space:nowrap;align-items:center;gap:6px;max-width:100%;display:inline-flex;overflow:hidden}.library-scope-badge{border:1px solid;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;min-width:28px;height:22px;padding:0 6px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.library-scope-badge--global{color:#fff;background:#434343;border-color:#434343}.library-scope-badge--category{color:#d48806;background:#fff7e6;border-color:#ffd591;min-width:24px}.library-scope-badge--product{color:#1677ff;background:#e6f4ff;border-color:#91caff}.library-ownership-name,.library-ownership-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.product-form-modal .ant-modal-body{min-height:480px}.product-form-modal-tab-pane{min-height:400px}.category-table-inner{border-collapse:collapse;width:100%}.category-table-inner thead th{color:#000000e0;background:#fafafa;font-weight:600}.category-cell{text-align:left;vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:12px 16px}.category-cell-sort{text-align:center;width:50px}.category-empty{text-align:center;padding:48px 16px}.category-row:hover td{background:#fafafa}.inline-icon-slot{color:#00000073;cursor:pointer;vertical-align:middle;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:background-color .2s,color .2s;display:inline-flex}.inline-icon-slot:hover{color:#1677ff;background-color:#f5f5f5}.inline-icon-slot:focus-visible{outline-offset:1px;outline:2px solid #91caff}.inline-icon-slot svg{flex-shrink:0;display:block}.workbench-panel-hint{color:#0000008c;background:#fafafa;border:1px solid #f0f0f0;border-radius:6px;margin:0;padding:6px 10px;font-size:12px;line-height:1.45}.workbench-panel-hint--warning{color:#000000a6;background:#fffbe6;border-color:#ffe58f}.workbench-panel-toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px;display:flex}.workbench-panel-toolbar .workbench-panel-hint{flex:1;min-width:200px}.workbench-section-title{color:#000000e0;margin:0 0 6px;font-size:13px;font-weight:600}.workbench-form-label-row{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.device-location-map-wrap{width:100%}.device-location-map-wrap--fill{flex-direction:column;flex:1;min-height:0;display:flex}.device-location-map-wrap--fill .device-location-map-meta,.device-location-map-wrap--fill .ant-alert{flex-shrink:0}.device-location-map{background:#fafafa;border:1px solid #f0f0f0;border-radius:8px;width:100%;height:280px;overflow:hidden}.device-location-map--fill{flex:1;height:auto;min-height:160px}.device-location-map-meta{margin-bottom:8px}.device-workbench-drawer.ant-drawer .ant-drawer-content{flex-direction:column;display:flex}.device-workbench-drawer .ant-drawer-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.device-workbench-drawer .ant-tabs{flex-direction:column;flex:1;min-height:0;display:flex}.device-workbench-drawer .ant-tabs-content-holder{flex:1;min-height:0}.device-workbench-drawer .ant-tabs-content,.device-workbench-drawer .ant-tabs-tabpane{height:100%}.device-workbench-overview{flex-direction:column;gap:16px;height:100%;min-height:0;display:flex}.device-workbench-overview__info{flex-shrink:0}.power-source-split-btn{cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:6px;align-items:stretch;padding:0;font-size:13px;line-height:1;transition:border-color .2s,box-shadow .2s;display:inline-flex;overflow:hidden}.power-source-split-btn:disabled{cursor:not-allowed}.power-source-split-btn-label{white-space:nowrap;align-items:center;padding:5px 10px;display:inline-flex}.power-source-split-btn-caret{border-left:1px solid #d9d9d9;justify-content:center;align-items:center;min-width:22px;padding:5px 4px;font-size:10px;display:inline-flex}.power-source-split-btn--test{border-color:#9254de}.power-source-split-btn--test .power-source-split-btn-label{color:#722ed1}.power-source-split-btn--test .power-source-split-btn-caret{color:#722ed1;background:#f9f0ff;border-left-color:#d3adf7}.power-source-split-btn--test:not(:disabled):hover{border-color:#b37feb;box-shadow:0 0 0 2px #722ed11f}.power-source-split-btn--test:not(:disabled):hover .power-source-split-btn-caret{background:#efdbff}.power-source-split-btn--customer{border-color:#ffa940}.power-source-split-btn--customer .power-source-split-btn-label{color:#d46b08}.power-source-split-btn--customer .power-source-split-btn-caret{color:#d46b08;background:#fff7e6;border-left-color:#ffd591}.power-source-split-btn--customer:not(:disabled):hover{border-color:#ffc069;box-shadow:0 0 0 2px #fa8c161f}.power-source-split-btn--customer:not(:disabled):hover .power-source-split-btn-caret{background:#ffe7ba}.power-source-split-btn--muted{border-color:#d9d9d9}.power-source-split-btn--muted .power-source-split-btn-label,.power-source-split-btn--muted .power-source-split-btn-caret{color:#00000040}.power-source-split-btn--muted .power-source-split-btn-caret{background:#f5f5f5;border-left-color:#e8e8e8}.power-source-split-menu{background:#fff;border-radius:8px;flex-direction:column;gap:4px;padding:4px;display:flex;box-shadow:0 6px 16px #00000014,0 3px 6px -4px #0000001f,0 9px 28px 8px #0000000d}.power-source-split-menu .power-source-split-btn{width:100%}.power-source-split-menu .power-source-split-btn-caret{display:none}.power-source-split-menu .power-source-split-btn-label{flex:1;justify-content:center}.station-telemetry-expand{background:#fafafa;border-radius:0 0 8px 8px;padding:4px 8px 12px 48px}.station-telemetry-expand__charts{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:12px;display:grid}.station-telemetry-expand__chart-card{background:#fff;border:1px dashed #d9d9d9;border-radius:8px;min-height:88px;padding:10px 12px}.station-telemetry-expand__chart-title{color:#00000073;margin-bottom:8px;font-size:12px}.station-telemetry-expand__chart-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:4px;height:48px;animation:1.4s infinite station-telemetry-shimmer}@keyframes station-telemetry-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.station-telemetry-expand__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#root{min-height:100vh}
