*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(180deg,#f8fafc,#eef2f7)}.app-shell{min-height:100vh}.app-sider{border-inline-end:1px solid #e5e9ef}.app-logo{padding:18px 16px;font-weight:700;font-size:17px;color:#16325c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-logo.is-collapsed{padding-inline:10px;text-align:center}.app-header{background:#fff!important;border-bottom:1px solid #e5e9ef;padding-inline:20px!important}.instance-select{min-width:220px}.instance-label{max-width:260px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.app-content{padding:20px;overflow-x:auto}.app-sider-menu{border-inline-end:none!important}.app-sider-menu .ant-menu-item-divider{margin:14px 16px!important;background-color:#dfe6ef!important}.app-sider.ant-layout-sider-collapsed .ant-menu-item-group-title{display:none}.settings-page>h1,.settings-page>h2,.settings-page>h3,.settings-page>h4,.settings-page>h5{margin-bottom:20px}.settings-tabs>.ant-tabs-nav{width:220px}.settings-tabs>.ant-tabs-content-holder,.settings-tabs .ant-tabs-tabpane{min-width:0}.page-toolbar-scroll{width:100%;overflow-x:auto;padding-bottom:4px}.page-toolbar-strip{display:flex;align-items:center;gap:8px;min-width:max-content}.page-toolbar-scroll--wrap{overflow-x:visible;padding-bottom:0}.page-toolbar-strip--wrap{flex-wrap:wrap;align-items:flex-start;min-width:0;width:100%}.active-filters-bar{width:100%;padding:8px 12px;border:1px solid #e5e9ef;border-radius:10px;background:#fafbfd}.active-filters-inline{width:100%}.summary-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;width:100%}.summary-metric-button{width:100%;min-height:112px;padding:16px;border:1px solid #d9e0ea;border-left-width:4px;border-radius:8px;background:#fff;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:12px;box-shadow:0 1px 2px #0f172a0a}.summary-metric-button:hover,.summary-metric-button:focus-visible{border-top-color:#91caff;border-right-color:#91caff;border-bottom-color:#91caff;outline:none}.summary-metric-button__label{color:#3d4a5c;font-size:14px;line-height:1.35}.summary-metric-button__value{color:#1f2937;font-size:30px;font-weight:650;line-height:1;font-variant-numeric:tabular-nums}.table-clamp-text{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;word-break:break-word}.table-clamp-text-1{-webkit-line-clamp:1}.table-clamp-text-2{-webkit-line-clamp:2}.table-address-cell{max-width:220px}.table-mac-cell{display:inline-block;max-width:150px;white-space:normal;word-break:break-all;line-height:1.3}.stacked-text-cell{display:flex;flex-direction:column;min-width:0;gap:2px}.stacked-text-cell__primary{min-width:0;line-height:1.3}.stacked-text-cell__secondary{line-height:1.3;word-break:break-all;white-space:normal;font-size:12px}.action-icon-button-wrap{display:inline-flex}.action-icon-group{display:inline-flex;gap:4px;align-items:center;flex-wrap:nowrap}.action-icon-group .ant-divider-vertical{height:20px;border-inline-start-color:#d6dce5}.store-row-muted td{color:#8c97a8!important}.store-row-muted .ant-tag,.store-row-muted .ant-btn,.store-row-muted .ant-typography a{opacity:.9}.store-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.store-form-grid-full{grid-column:1 / -1}@media(max-width:900px){.store-form-grid{grid-template-columns:1fr}.store-form-grid-full{grid-column:auto}}.page-card{background:#fff;border:1px solid #e8ecf2;border-radius:12px;padding:16px}@media(max-width:700px){.app-header{min-height:56px;height:auto!important;padding-inline:8px!important}.app-header h4,.app-user-name,.app-logout-label{display:none}.instance-select{min-width:132px;width:132px}.app-content,.page-card{min-width:0;padding:12px}}.hub-control-page{min-width:980px}.hub-control-heading{width:100%;margin-bottom:16px}.hub-control-heading>.ant-space-item:nth-child(2){flex:1}.hub-control-summary{padding-block:12px 4px;border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4}.hub-control-cameras-table .ant-table-thead>tr>th{white-space:nowrap}.hub-camera-control-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}.hub-camera-preview{height:min(52vh,600px);min-height:320px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f5f6f8;border:1px solid #e5e9ef}.hub-camera-preview-button{position:relative;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;display:flex;align-items:center;justify-content:center}.hub-camera-preview-search{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:stretch;justify-content:stretch}.hub-camera-preview-search .hub-camera-preview-button{min-width:0}.hub-focus-samples{min-width:0;overflow:auto;padding:12px;background:#fff;border-left:1px solid #e5e9ef}.hub-focus-samples .ant-typography{margin-top:0}.hub-focus-samples .ant-table-cell{white-space:nowrap}.hub-focus-samples .hub-focus-sample-start>td{background:#f5f5f5}.hub-focus-samples .hub-focus-sample-best>td{background:#f0f9eb;font-weight:600}.hub-focus-samples .hub-focus-sample-start.hub-focus-sample-best>td{background:#e8f5e2}.hub-focus-samples-legend{margin-top:10px}.hub-camera-image-stage{position:relative;display:inline-block;max-width:100%;max-height:100%;line-height:0}.hub-camera-image-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:min(52vh,600px);object-fit:contain}.hub-camera-expand-icon{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:36px;height:36px;color:#fff;background:#0000009e;border-radius:6px}.hub-camera-image-stage-fullscreen{display:block;width:fit-content;margin-inline:auto}.hub-camera-image-stage-fullscreen img{max-height:88vh}.hub-focus-region{position:absolute;box-sizing:border-box;border:2px solid;pointer-events:none}.hub-focus-region b{position:absolute;top:0;left:0;padding:3px 5px;color:#fff;font-size:12px;line-height:1;white-space:nowrap}.hub-focus-result{padding-block:10px 2px}.operations-camera-problems-card{container-type:inline-size}.operations-camera-problems-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr)) minmax(300px,1.4fr);gap:20px;min-width:0}.operations-camera-problems-batteries{min-width:300px}@container (max-width: 820px){.operations-camera-problems-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.operations-camera-problems-batteries{grid-column:1 / -1}}@container (max-width: 380px){.operations-camera-problems-grid{grid-template-columns:minmax(0,1fr)}.operations-camera-problems-batteries{grid-column:auto;min-width:0}}.plu-lookup-form{display:grid;grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) 240px minmax(220px,1fr) auto;gap:12px;align-items:center}.plu-lookup-section{border:1px solid #e5e9ef;border-radius:12px;padding:16px;background:#fbfcfe}.plu-lookup-empty{margin-block:8px 0}@media(max-width:1200px){.plu-lookup-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.plu-lookup-form{grid-template-columns:1fr}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 10% 10%,rgba(82,146,255,.16),transparent 35%),radial-gradient(circle at 90% 90%,rgba(32,191,107,.14),transparent 30%),#f6f8fc}.login-card{width:min(460px,100%);background:#fff;border:1px solid #e5e9ef;border-radius:14px;padding:24px}.hub-cameras-table .ant-table-thead>tr>th{white-space:nowrap}.racks-diagnostics-table .ant-table-thead>tr>th,.racks-diagnostics-table .ant-table-tbody>tr>td{padding:10px 8px!important}.racks-diagnostics-table .ant-table-thead>tr>th{line-height:1.25;white-space:normal;overflow-wrap:anywhere}.racks-diagnostics-table .ant-table-tbody>tr>td{line-height:1.3}.racks-diagnostics-table .ant-tag{max-width:100%;margin-inline-end:0;white-space:normal;text-align:center}.hub-inventory-row-unbound>td{background:#fffbe6!important}.hub-inventory-row-unbound>td:first-child{box-shadow:inset 3px 0 #d89614}.hub-inventory-row-unbound:hover>td{background:#fff7cc!important}.router-pending-row>td{background:#fffbe6!important}.floormap-editor-page{display:flex;flex-direction:column;gap:12px;min-width:0}.floormap-editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.floormap-editor-workspace{display:grid;grid-template-columns:minmax(0,1fr) 8px var(--floormap-panel-width, 420px);min-height:calc(100vh - 190px);border:1px solid #d9d9d9;border-radius:8px;overflow:hidden;background:#fff}.floormap-editor-panel{border-left:1px solid #d9d9d9;padding:0 16px 16px;min-width:0;overflow:auto;max-height:calc(100vh - 190px)}.floormap-editor-footer{position:sticky;bottom:12px;z-index:3;display:flex;justify-content:flex-end;pointer-events:none}.floormap-editor-footer .ant-btn{pointer-events:auto;box-shadow:0 4px 16px #0000002e}.floormap-canvas-shell{position:relative;min-width:0;min-height:620px;overflow:hidden;background-color:#e8edf3;background-image:radial-gradient(#c8d0d9 1px,transparent 1px);background-size:18px 18px}.floormap-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.floormap-canvas:active{cursor:grabbing}.floormap-canvas--rack-linking,.floormap-canvas--rack-linking:active,.floormap-canvas--rack-linking .floormap-rack-object{cursor:crosshair}.floormap-canvas--rack-linking .floormap-rack-object:hover>rect{stroke:#1677ff;stroke-width:4}.floormap-canvas--drawing-wall,.floormap-canvas--drawing-wall:active{cursor:crosshair}.floormap-rack-snap-guide{stroke:#13c2c2;stroke-width:1.5;stroke-dasharray:5 4}.floormap-canvas-toolbar{position:absolute;top:12px;right:12px;z-index:2;padding:6px;border-radius:8px;background:#fffffff0;box-shadow:0 2px 10px #0000001f}.floormap-camera-legend{position:absolute;left:12px;top:12px;z-index:2;display:flex;flex-wrap:wrap;gap:6px 12px;max-width:calc(100% - 240px);padding:6px 9px;border-radius:8px;background:#fffffff0;color:#595959;font-size:12px;pointer-events:none}.floormap-camera-legend span{display:inline-flex;align-items:center;gap:5px}.floormap-camera-legend i,.floormap-camera-status-dot{display:inline-block;width:10px;height:10px;flex:0 0 auto;border:1px solid rgba(0,0,0,.18);border-radius:50%}.floormap-wall-drawing-hint{position:absolute;top:12px;left:50%;z-index:2;transform:translate(-50%);padding:6px 10px;border-radius:6px;background:#fffffff0;color:#262626;font-size:12px;box-shadow:0 2px 10px #0000001f;pointer-events:none}.floormap-meter-value{width:116px}.floormap-meter-line{stroke:#fa8c16;stroke-width:8;stroke-linecap:square;cursor:move}.floormap-meter-tick{stroke:#d46b08;stroke-width:4;cursor:ew-resize}.floormap-meter-label{fill:#ad4e00;font-size:14px;font-weight:700;paint-order:stroke;stroke:#ffffffe6;stroke-width:4px;stroke-linejoin:round}.floormap-meter-handle{fill:#fa8c16;stroke:#fff;stroke-width:2;cursor:pointer}.floormap-meter-rotate-line{stroke:#fa8c16;stroke-width:2}.floormap-zoom-indicator{position:absolute;bottom:12px;left:12px;z-index:2;padding:4px 8px;border-radius:6px;background:#ffffffe6;color:#595959;font-size:12px}.floormap-canvas-empty{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);padding:12px 18px;border-radius:8px;background:#ffffffeb;color:#595959;pointer-events:none}.floormap-camera-link{stroke:#fa8c16;stroke-width:3;stroke-dasharray:6 4;opacity:.8;pointer-events:none}.floormap-camera-link-hit{cursor:pointer}.floormap-camera-label{fill:#262626;font-weight:600;paint-order:stroke;stroke:#fffffff2;stroke-width:4px;stroke-linejoin:round}.floormap-color-dot{display:inline-block;width:16px;height:16px;border:1px solid rgba(0,0,0,.16);border-radius:4px;vertical-align:middle}.floormap-number-field{display:flex;flex-direction:column;min-width:0}.floormap-number-field .ant-input-number{width:100%}.floormap-number-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.floormap-rack-id-cell{font-size:11px}.floormap-rack-details .ant-descriptions-item-label{width:120px}.floormap-selected-row>td{background:#e6f4ff!important}.floormap-legend-section{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}@media(max-width:900px){.floormap-editor-workspace{grid-template-columns:minmax(0,1fr)}.floormap-panel-splitter{display:none}.floormap-editor-panel{border-left:0;border-top:1px solid #d9d9d9;max-height:none}.floormap-editor-header{flex-wrap:wrap}}.floormap-panel-splitter{display:block;cursor:col-resize;touch-action:none;background:#f0f2f5;border-inline:1px solid #d9d9d9}.floormap-panel-splitter:hover,.floormap-panel-splitter:focus-visible,.floormap-panel-splitter.is-resizing{background:#91caff;outline:none}.floormap-layout-resizing{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.floormap-table-layout-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.floormap-table-layout-toolbar{margin-bottom:6px;flex-wrap:wrap}.floormap-table-layout-hint{color:#8c8c8c;font-size:12px}.floormap-column-heading{display:flex;min-width:0;align-items:center}.floormap-column-heading-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:grab;padding-right:8px}.floormap-configurable-table .ant-table-cell{overflow:hidden}.floormap-configurable-table th.ant-table-cell{position:relative}.floormap-column-resizer{position:absolute;inset:0 0 0 auto;width:8px;cursor:col-resize;touch-action:none;z-index:2;border-right:2px solid transparent}.floormap-column-resizer:hover,.floormap-column-resizer:focus-visible,.floormap-column-resizer.is-resizing{border-right-color:#1677ff;background:#1677ff22;outline:none}.floormap-projection-status-tag{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.floormap-column-settings{max-height:380px;overflow:auto;min-width:300px}.floormap-column-settings-hint{color:#8c8c8c;margin-bottom:8px;max-width:360px;font-size:12px}.floormap-column-setting{display:flex;align-items:center;gap:4px;padding-block:4px}.floormap-column-setting .ant-checkbox-wrapper{flex:1}.floormap-column-setting .ant-input-number{width:74px}.floormap-column-drag-icon{color:#8c8c8c;cursor:grab}@media(max-width:900px){.floormap-panel-splitter{display:none}}.floormap-configurable-table .ant-table-measure-row .floormap-column-heading{visibility:hidden}.floormap-configurable-table .ant-table-container table{min-width:0!important}.floormap-background-preview .floormap-canvas-shell{flex:1;width:100%;height:100%;min-height:0}
