:root{--font-sans:"Segoe UI","Microsoft YaHei UI","Microsoft YaHei",sans-serif;--font-mono:"Cascadia Code","SFMono-Regular",Consolas,monospace;--background:#f5f7fb;--surface:#fff;--surface-muted:#eef3f9;--surface-raised:#fff;--sidebar:#102033;--sidebar-hover:#1b3048;--text-primary:#132238;--text-secondary:#53657c;--text-muted:#75869a;--border:#d9e2ec;--primary:#1e40af;--primary-hover:#1d4ed8;--primary-soft:#e8efff;--success:#087f5b;--success-soft:#dcfce7;--warning:#b45309;--warning-soft:#fff3d6;--danger:#b91c1c;--danger-soft:#fee2e2;--info:#0369a1;--focus:#2563eb;--shadow-sm:0 1px 2px rgba(15,23,42,.06);--shadow-md:0 12px 30px rgba(15,23,42,.1);--radius-sm:6px;--radius-md:8px;--sidebar-width:256px;--topbar-height:68px;--transition:180ms ease;--dash-bg-start:#eef3f9;--dash-bg-end:#dbe7f5;--dash-glass-bg:hsla(0,0%,100%,.84);--dash-glass-bg-strong:hsla(0,0%,100%,.94);--dash-glass-bg-subtle:hsla(0,0%,100%,.62);--dash-glass-border:rgba(148,163,184,.28);--dash-glass-border-strong:rgba(100,116,139,.32);--dash-glass-shadow:0 8px 32px rgba(15,23,42,.12);--dash-glass-highlight:rgba(2,132,199,.35);--dash-text-primary:var(--text-primary);--dash-text-secondary:var(--text-secondary);--dash-text-muted:var(--text-muted);--dash-text-on-panel:var(--text-primary);--dash-accent:#0284c7;--dash-accent-soft:rgba(2,132,199,.12);--dash-accent-muted:rgba(2,132,199,.08);--dash-accent-glow:rgba(2,132,199,.35);--dash-accent-border:rgba(2,132,199,.35);--dash-icon-button-bg:hsla(0,0%,100%,.88);--dash-icon-button-border:rgba(148,163,184,.45);--dash-icon-button-color:var(--text-primary);--dash-icon-button-hover-bg:rgba(30,64,175,.1);--dash-icon-button-hover-color:var(--text-primary);--dash-header-mobile-bg:linear-gradient(180deg,hsla(0,0%,100%,.96),hsla(0,0%,100%,.6));--dash-drawer-bg:hsla(0,0%,100%,.92);--dash-drawer-border:rgba(15,23,42,.08);--dash-drawer-shadow:0 -10px 40px rgba(15,23,42,.14);--dash-strip-bg:hsla(0,0%,100%,.94);--dash-strip-border:rgba(2,132,199,.35);--dash-strip-shadow:0 4px 20px rgba(15,23,42,.1);--dash-strip-text:var(--text-primary);--dash-glow-text-color:var(--text-primary);--dash-glow-text-shadow:0 1px 0 hsla(0,0%,100%,.8),0 2px 12px rgba(2,132,199,.12);--dash-surface-subtle:rgba(15,23,42,.04);--dash-surface-muted:rgba(15,23,42,.06);--dash-surface-inset:rgba(15,23,42,.05);--dash-divider:rgba(15,23,42,.1);--dash-scrollbar-track:rgba(15,23,42,.05);--dash-scrollbar-thumb:rgba(2,132,199,.35);--dash-scrollbar-thumb-hover:rgba(2,132,199,.55);--dash-btn-nav-bg:linear-gradient(135deg,rgba(2,132,199,.08),rgba(14,165,233,.14));--dash-btn-nav-border:rgba(2,132,199,.4);--dash-btn-nav-text:var(--text-primary);--dash-btn-nav-shadow:0 0 12px rgba(2,132,199,.12);--dash-weather-icon:#3b82f6;--dash-logo-glow:drop-shadow(0 0 6px rgba(2,132,199,.3));--dash-switcher-bg:hsla(0,0%,100%,.86);--dash-switcher-border:rgba(2,132,199,.28);--dash-switcher-shadow:0 4px 24px rgba(15,23,42,.1),inset 0 0 0 1px hsla(0,0%,100%,.85);--dash-switcher-indicator:linear-gradient(180deg,rgba(2,132,199,.14),rgba(2,132,199,.26));--dash-mode-text:rgba(15,23,42,.62);--dash-mode-text-hover:var(--text-primary);--dash-mode-text-active:var(--text-primary);--dash-input-bg:hsla(0,0%,100%,.9);--dash-input-border:rgba(148,163,184,.45);--dash-input-text:var(--text-primary);--dash-chip-bg:rgba(15,23,42,.05);--dash-chip-border:rgba(15,23,42,.12);--dash-controls-bg:hsla(0,0%,100%,.94);--dash-controls-border:rgba(2,132,199,.22);--dash-tile-bg:hsla(0,0%,100%,.72);--dash-tile-header-bg:hsla(0,0%,100%,.92);--dash-map-vignette:radial-gradient(ellipse 92% 84% at 50% 48%,transparent 58%,rgba(203,213,225,.28) 100%);--map-area:#b8cde0;--map-area-hover:#94b3cf;--map-area-selected:#2563eb;--map-border:#475569;--map-border-active:#1d4ed8;--map-border-width:1.35;--map-border-active-width:2.75;--map-label:rgba(15,23,42,.78);--map-label-hover:#0f172a;--map-label-size:10.5;--map-scatter-label:#0f172a;--map-scatter-label-border:hsla(0,0%,100%,.95);--map-tooltip-bg:hsla(0,0%,100%,.97);--map-tooltip-border:#1d4ed8;--map-tooltip-text:#132238;--map-tooltip-accent:#1d4ed8;--map-tooltip-muted:#475569;--map-scatter-shadow:rgba(15,23,42,.28);--map-selected-shadow:rgba(29,78,216,.42);--text-main:var(--dash-text-primary);--accent-cyan:var(--dash-accent);--accent-red:var(--danger);--accent-amber:var(--warning)}:root[data-theme=dark]{--background:#0b1220;--surface:#111c2e;--surface-muted:#17253a;--surface-raised:#172338;--sidebar:#08111e;--sidebar-hover:#17283d;--text-primary:#f2f6fb;--text-secondary:#b6c2d2;--text-muted:#8fa0b5;--border:#2a3b52;--primary:#6ea8fe;--primary-hover:#91bdff;--primary-soft:#172e57;--success:#5ee0b2;--success-soft:#143d35;--warning:#f6bd60;--warning-soft:#493316;--danger:#ff8a8a;--danger-soft:#4c2028;--info:#7dd3fc;--focus:#93c5fd;--shadow-sm:0 1px 2px rgba(0,0,0,.25);--shadow-md:0 16px 36px rgba(0,0,0,.34);--dash-bg-start:#020617;--dash-bg-end:#0f172a;--dash-glass-bg:rgba(15,23,42,.5);--dash-glass-bg-strong:rgba(15,23,42,.88);--dash-glass-bg-subtle:rgba(15,23,42,.4);--dash-glass-border:rgba(0,240,255,.15);--dash-glass-border-strong:rgba(0,240,255,.3);--dash-glass-shadow:0 8px 32px rgba(0,0,0,.4);--dash-glass-highlight:rgba(0,240,255,.5);--dash-text-primary:#f8fafc;--dash-text-secondary:#cbd5e1;--dash-text-muted:#94a3b8;--dash-text-on-panel:#fff;--dash-accent:#00f0ff;--dash-accent-soft:rgba(0,240,255,.1);--dash-accent-muted:rgba(0,240,255,.03);--dash-accent-glow:rgba(0,240,255,.5);--dash-accent-border:rgba(0,240,255,.4);--dash-icon-button-bg:rgba(15,23,42,.72);--dash-icon-button-border:rgba(148,163,184,.28);--dash-icon-button-color:#dcecff;--dash-icon-button-hover-bg:rgba(30,64,175,.55);--dash-icon-button-hover-color:#fff;--dash-header-mobile-bg:linear-gradient(180deg,rgba(15,23,42,.95),rgba(15,23,42,.5));--dash-drawer-bg:rgba(15,23,42,.85);--dash-drawer-border:hsla(0,0%,100%,.1);--dash-drawer-shadow:0 -10px 40px rgba(0,0,0,.5);--dash-strip-bg:rgba(15,23,42,.88);--dash-strip-border:rgba(56,189,248,.4);--dash-strip-shadow:0 4px 20px rgba(0,0,0,.35);--dash-strip-text:#e2e8f0;--dash-glow-text-color:#fff;--dash-glow-text-shadow:0 0 10px rgba(0,240,255,.6),0 0 20px rgba(0,240,255,.3);--dash-surface-subtle:hsla(0,0%,100%,.03);--dash-surface-muted:hsla(0,0%,100%,.05);--dash-surface-inset:rgba(0,0,0,.2);--dash-divider:hsla(0,0%,100%,.1);--dash-scrollbar-track:hsla(0,0%,100%,.05);--dash-scrollbar-thumb:rgba(0,240,255,.3);--dash-scrollbar-thumb-hover:rgba(0,240,255,.6);--dash-btn-nav-bg:linear-gradient(135deg,rgba(0,240,255,.1),rgba(14,165,233,.2));--dash-btn-nav-border:rgba(0,240,255,.4);--dash-btn-nav-text:#fff;--dash-btn-nav-shadow:0 0 15px rgba(0,240,255,.15),inset 0 0 10px rgba(0,240,255,.1);--dash-weather-icon:#88a8ff;--dash-logo-glow:drop-shadow(0 0 8px rgba(0,240,255,.5));--dash-switcher-bg:rgba(13,20,36,.75);--dash-switcher-border:rgba(0,240,255,.3);--dash-switcher-shadow:0 4px 24px rgba(0,0,0,.6),inset 0 0 0 1px hsla(0,0%,100%,.05);--dash-switcher-indicator:linear-gradient(180deg,rgba(0,212,255,.25),rgba(0,153,255,.45));--dash-mode-text:hsla(0,0%,100%,.5);--dash-mode-text-hover:#fff;--dash-mode-text-active:#fff;--dash-input-bg:rgba(15,23,42,.6);--dash-input-border:hsla(0,0%,100%,.15);--dash-input-text:#fff;--dash-chip-bg:rgba(0,0,0,.3);--dash-chip-border:hsla(0,0%,100%,.1);--dash-controls-bg:rgba(15,23,42,.92);--dash-controls-border:rgba(0,240,255,.3);--dash-tile-bg:rgba(15,23,42,.4);--dash-tile-header-bg:rgba(15,23,42,.85);--dash-map-vignette:radial-gradient(ellipse 90% 82% at 50% 50%,transparent 48%,rgba(2,6,23,.5) 100%);--map-area:#0f172a;--map-area-hover:#1e3a5f;--map-area-selected:#1e40af;--map-border:#3b82f6;--map-border-active:#00f0ff;--map-border-width:1;--map-border-active-width:2;--map-label:hsla(0,0%,100%,.25);--map-label-hover:#fff;--map-label-size:10;--map-scatter-label:#f8fafc;--map-scatter-label-border:#000;--map-tooltip-bg:rgba(15,23,42,.95);--map-tooltip-border:#00f0ff;--map-tooltip-text:#fff;--map-tooltip-accent:#00f0ff;--map-tooltip-muted:#94a3b8;--map-scatter-shadow:rgba(0,0,0,.3);--map-selected-shadow:rgba(0,240,255,.4);--text-main:var(--dash-text-primary);--accent-cyan:var(--dash-accent);--accent-red:var(--danger);--accent-amber:var(--warning)}*{box-sizing:border-box;letter-spacing:0}#app,body,html{width:100%;min-width:0;min-height:100%;margin:0}body{background:var(--background);color:var(--text-primary);font-family:var(--font-sans);font-size:15px;line-height:1.5;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}canvas,img,svg,video{max-width:100%}button,input,select,textarea{color:inherit;font:inherit}a,button{-webkit-tap-highlight-color:transparent}a,button:not(:disabled){cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 55%,transparent);outline-offset:2px}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;z-index:2000;padding:10px 14px;background:var(--surface);border:1px solid var(--focus);border-radius:var(--radius-sm);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.management-shell{min-height:100dvh;background:var(--background)}.management-sidebar{position:fixed;inset:0 auto 0 0;z-index:100;display:flex;width:var(--sidebar-width);flex-direction:column;background:var(--sidebar);color:#dbe7f5}.sidebar-brand{display:flex;min-height:var(--topbar-height);align-items:center;padding:12px 18px;border-bottom:1px solid hsla(0,0%,100%,.1)}.sidebar-brand-logo{flex:0 0 auto;width:min(214px,calc(var(--sidebar-width) - 42px));max-height:52px;-o-object-fit:contain;object-fit:contain}.management-sidebar nav{display:flex;flex:1;flex-direction:column;gap:4px;overflow-y:auto;padding:16px 10px}.nav-item{display:flex;min-height:44px;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);color:#bdcada;font-weight:500;transition:background var(--transition),color var(--transition)}.nav-item-active,.nav-item:hover{background:var(--sidebar-hover);color:#fff}.nav-item-active{box-shadow:inset 3px 0 0 #5fa8ff}.nav-badge,.notification-count{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border-radius:10px;background:var(--danger);color:#fff;font-size:11px;font-variant-numeric:tabular-nums}.sidebar-footer{padding:10px;border-top:1px solid hsla(0,0%,100%,.1)}.drawer-backdrop,.management-sidebar .sidebar-close.icon-button,.management-topbar .menu-toggle.icon-button,.menu-toggle,.sidebar-close{display:none}.management-workspace{min-width:0;min-height:100dvh;margin-left:var(--sidebar-width)}.management-topbar{position:sticky;top:0;z-index:60;display:flex;height:var(--topbar-height);align-items:center;gap:16px;padding:0 24px;background:color-mix(in srgb,var(--surface) 92%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}.topbar-title{display:flex;min-width:0;flex:1;flex-direction:column}.topbar-title span{color:var(--text-muted);font-size:12px}.topbar-title strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:8px}.icon-button{display:inline-flex;width:44px;height:44px;flex:0 0 auto;align-items:center;justify-content:center;padding:0;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--text-secondary);transition:background var(--transition),color var(--transition)}.icon-button:hover{background:var(--surface-muted);color:var(--text-primary)}.notification-link{position:relative}.notification-count{position:absolute;top:2px;right:1px;min-width:17px;height:17px;padding:0 4px;font-size:10px}.management-main{width:100%;max-width:1560px;margin:0 auto;padding:28px;overflow-x:clip}.page-stack{display:flex;flex-direction:column;gap:22px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.empty-state h2,.empty-state h3,.page-header h1,.panel h2,.record-card h2{margin:0}.page-header h1{font-size:clamp(24px,3vw,32px);line-height:1.2}.page-header p{max-width:760px;margin:6px 0 0;color:var(--text-secondary)}.eyebrow{margin:0 0 5px!important;color:var(--primary)!important;font-size:12px;font-weight:700;text-transform:uppercase}.form-actions,.header-actions,.modal-actions,.record-actions,.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:650;transition:background var(--transition),border-color var(--transition),color var(--transition),opacity var(--transition);white-space:nowrap}.button.compact{min-height:38px;padding:7px 12px;font-size:13px}.button.primary{background:var(--primary);color:#fff}:root[data-theme=dark] .button.primary{color:#08111e}.button.primary:hover{background:var(--primary-hover)}.button.secondary{background:var(--surface);border-color:var(--border);color:var(--text-primary)}.button.secondary:hover{background:var(--surface-muted)}.button.danger{color:var(--danger)}.button.danger.subtle{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 28%,transparent)}.button:disabled{cursor:not-allowed;opacity:.48}.text-button,.text-link{padding:2px;background:transparent;border:0;color:var(--primary);font-weight:650}.toolbar{display:flex;align-items:center;gap:12px}.form-field input,.form-field textarea,.inline-form input,.search-field,.toolbar select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.toolbar select{min-height:44px;padding:0 36px 0 12px}.search-field{display:flex;min-height:44px;align-items:center;gap:8px;padding:0 12px;color:var(--text-muted)}.search-field.grow{flex:1}.search-field input{width:100%;min-width:0;min-height:40px;background:transparent;border:0;outline:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.device-summary-grid article,.metric-card,.panel,.record-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.metric-card{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;min-height:142px;padding:18px}.metric-icon{grid-row:1/span 2;color:var(--primary)}.device-summary-grid span,.metric-card small,.metric-card span{color:var(--text-secondary)}.metric-card strong{grid-column:1/-1;margin-top:8px;font-size:30px;font-variant-numeric:tabular-nums}.metric-card small{grid-column:1/-1}.content-grid{display:grid;gap:16px}.content-grid.two-one{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.panel{padding:20px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-header h2{font-size:18px}.panel-header p{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.status-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.status-summary-item{display:flex;min-height:86px;flex-direction:column;justify-content:space-between;padding:12px;background:var(--surface-muted);border-radius:var(--radius-sm)}.status-summary-item strong{font-size:24px;font-variant-numeric:tabular-nums}.permission-chip,.status-badge{display:inline-flex;width:-moz-fit-content;width:fit-content;align-items:center;gap:7px;padding:4px 9px;border-radius:999px;background:var(--surface-muted);color:var(--text-secondary);font-size:12px;font-weight:700;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.status-online{background:var(--success-soft);color:var(--success)}.status-idle,.status-pending{background:var(--warning-soft);color:var(--warning)}.status-error,.status-rejected{background:var(--danger-soft);color:var(--danger)}.status-cancelled,.status-offline{background:var(--surface-muted);color:var(--text-muted)}.quick-actions{display:flex;flex-direction:column;gap:8px}.quick-actions .panel-header{margin-bottom:6px}.quick-actions a{display:flex;min-height:44px;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text-secondary)}.quick-actions a:hover{background:var(--surface-muted);color:var(--text-primary)}.record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.record-card{display:flex;min-width:0;flex-direction:column;gap:16px;padding:18px}.record-card-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.record-card-heading h2{overflow-wrap:anywhere;font-size:17px}.record-card-heading p,.record-description{margin:3px 0 0;color:var(--text-secondary);font-size:13px}.record-description{min-height:42px}.record-icon{display:flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary)}.inline-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.inline-stats div{min-width:0}.inline-stats dt{color:var(--text-muted);font-size:11px}.inline-stats dd{overflow:hidden;margin:2px 0 0;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.record-actions{margin-top:auto}.data-table-wrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.data-table{width:100%;min-width:760px;border-collapse:collapse}.data-table td,.data-table th{padding:13px 15px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.data-table th{background:var(--surface-muted);color:var(--text-secondary);font-size:12px;font-weight:700}.data-table tbody tr:hover{background:color-mix(in srgb,var(--primary-soft) 50%,transparent)}.data-table td span,.data-table td strong{display:block}.data-table td span{margin-top:2px;color:var(--text-secondary);font-size:12px}.data-table td .permission-chip,.data-table td .status-badge{display:inline-flex}.cell-detail{max-width:360px;margin:7px 0 0;color:var(--danger);font-size:12px;white-space:pre-wrap}.simple-list{display:flex;flex-direction:column}.notification-row,.simple-list-row{display:flex;min-height:60px;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;background:transparent;border:0;border-bottom:1px solid var(--border);text-align:left}.notification-row:last-child,.simple-list-row:last-child{border-bottom:0}.key-identity,.notification-row>span:nth-child(2),.simple-list-row>div:first-child{display:flex;min-width:0;flex-direction:column}.notification-row small,.notification-row time,.row-actions>span,.simple-list-row span{color:var(--text-secondary);font-size:12px}.key-identity{flex-direction:row!important;align-items:center;gap:12px}.notification-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto}.notification-row:hover{color:var(--primary)}.notification-indicator{width:9px;height:9px;border-radius:50%;background:var(--border)}.notification-indicator.unread{background:var(--primary)}.detail-list{display:flex;flex-direction:column;gap:10px;margin:0}.detail-list.compact{gap:7px}.detail-list div{display:flex;justify-content:space-between;gap:16px}.detail-list dt{color:var(--text-secondary)}.detail-list dd{margin:0;overflow-wrap:anywhere;text-align:right}.device-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.device-summary-grid article{display:flex;min-height:92px;flex-direction:column;justify-content:center;gap:6px;padding:16px}.device-summary-grid strong{overflow-wrap:anywhere}.waveform-panel{min-width:0;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.waveform-chart{width:100%;height:430px}.feedback{display:flex;min-height:44px;align-items:center;gap:9px;padding:10px 12px;border-radius:var(--radius-sm)}.feedback.error{background:var(--danger-soft);color:var(--danger)}.feedback.warning{background:var(--warning-soft);color:var(--warning)}.empty-state,.page-loading{display:flex;min-height:280px;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:30px;color:var(--text-secondary);text-align:center}.empty-state.compact{min-height:160px}.empty-state p{max-width:520px;margin:0}.skeleton-list{display:flex;flex-direction:column;gap:10px}.skeleton-row{height:76px;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--surface-muted),var(--surface),var(--surface-muted));background-size:200% 100%;animation:skeleton 1.4s linear infinite}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field{display:flex;min-width:0;flex-direction:column;gap:7px}.form-field>span{color:var(--text-secondary);font-size:13px;font-weight:650}.form-field input,.form-field textarea{width:100%;min-height:44px;padding:10px 12px;resize:vertical}.form-actions{grid-column:1/-1}.inline-form{display:flex;align-items:flex-end;gap:10px;margin-bottom:16px}.inline-form .form-field{flex:1}.field-error{margin:0;color:var(--danger);font-size:13px}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.danger-zone p{margin:3px 0 0;color:var(--text-secondary);font-size:13px}.modal-layer{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(3,8,18,.58)}.modal{width:min(100%,520px);max-height:calc(100dvh - 40px);overflow-y:auto;padding:22px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.modal-header h2,.modal-header p{margin:0}.helper-text,.modal-header p{margin-top:4px;color:var(--text-secondary);font-size:13px}.modal .form-field{margin-bottom:14px}.modal-actions{margin-top:20px}.secret-display{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 8px 14px;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-sm)}.secret-display code{min-width:0;font-family:var(--font-mono);overflow-wrap:anywhere}.break-all{word-break:break-all}.user-menu{position:relative}.user-trigger{display:flex;min-height:44px;align-items:center;gap:8px;padding:4px 8px 4px 4px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm)}.user-trigger:hover{background:var(--surface-muted);border-color:var(--border)}.avatar-fallback,.user-trigger img{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:var(--primary);color:#fff;-o-object-fit:cover;object-fit:cover;font-weight:700}.user-trigger-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rotated{transform:rotate(180deg)}.user-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:1000;width:min(300px,calc(100vw - 24px));overflow:hidden;padding:8px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.user-popover-header{display:flex;flex-direction:column;padding:10px 10px 12px}.user-popover-header small,.user-popover-header span{color:var(--text-secondary);font-size:12px;overflow-wrap:anywhere}.user-popover a,.user-popover button{display:flex;width:100%;min-height:44px;align-items:center;gap:10px;padding:9px 10px;background:transparent;border:0;border-radius:var(--radius-sm);text-align:left}.user-popover a:hover,.user-popover button:hover{background:var(--surface-muted)}.menu-divider{height:1px;margin:6px 0;background:var(--border)}.logout-item{color:var(--danger)}.menu-fade-enter-active,.menu-fade-leave-active{transition:opacity var(--transition),transform var(--transition)}.menu-fade-enter-from,.menu-fade-leave-to{opacity:0;transform:translateY(-6px)}.spinning{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes skeleton{to{background-position:-200% 0}}@media (max-width:1100px){.device-summary-grid,.metric-grid,.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1024px){.management-main{max-width:none;padding:24px 20px 32px}.page-stack{gap:18px}.page-header{gap:16px}.content-grid,.content-grid.two-one{grid-template-columns:1fr}.metric-card,.panel,.record-card{min-width:0}.record-card-heading{grid-template-columns:auto minmax(0,1fr)}.record-card-heading>:last-child{justify-self:start}}@media (max-width:900px){.management-sidebar{width:min(86vw,296px);transform:translateX(-102%);transition:transform .22s ease}.management-sidebar.open{transform:translateX(0)}.management-sidebar .sidebar-close.icon-button,.management-topbar .menu-toggle.icon-button,.menu-toggle,.sidebar-close{display:inline-flex}.sidebar-close{margin-left:auto;color:#dbe7f5}.drawer-backdrop{position:fixed;inset:0;z-index:90;display:block;width:100%;height:100%;background:rgba(3,8,18,.56);border:0}.management-workspace{margin-left:0}.management-topbar{min-height:var(--topbar-height)}.content-grid.two-one{grid-template-columns:1fr}.status-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){body{font-size:16px}#app,body,html{min-height:100dvh}.management-topbar{height:auto;min-height:60px;padding:0 12px;gap:8px}.management-main{padding:16px 12px calc(28px + env(safe-area-inset-bottom))}.topbar-title span,.user-trigger-name{display:none}.danger-zone,.page-header,.toolbar{align-items:stretch;flex-direction:column}.page-header h1{font-size:24px}.header-actions{justify-content:flex-start;flex-wrap:wrap}.form-actions .button,.header-actions .button,.modal-actions .button,.toolbar .button,.toolbar select{width:100%}.form-field input,.form-field textarea,.inline-form input,.search-field,.search-field input,.toolbar select{width:100%;min-width:0}.device-summary-grid,.form-grid,.metric-grid,.record-grid{grid-template-columns:1fr}.status-summary{grid-template-columns:1fr 1fr}.metric-card,.panel,.record-card,.waveform-panel{padding:16px}.data-table-wrap{overflow:visible;background:transparent;border:0;box-shadow:none}.data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.data-table,.data-table tbody,.data-table td,.data-table tr{display:block;width:100%;min-width:0}.data-table tr{margin-bottom:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.data-table td{display:grid;grid-template-columns:minmax(88px,34%) minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.data-table td:before{content:attr(data-label);color:var(--text-muted);font-size:12px;font-weight:700}.data-table td:last-child{border-bottom:0}.data-table .row-actions{display:flex;justify-content:flex-end}.data-table .row-actions:before{display:none}.notification-row,.simple-list-row{align-items:flex-start}.simple-list-row{flex-direction:column}.row-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.notification-row{grid-template-columns:auto minmax(0,1fr)}.notification-row time{grid-column:2}.inline-form{align-items:stretch;flex-direction:column}.waveform-chart{height:min(420px,62dvh);min-height:300px}.modal-layer{align-items:flex-end;padding:0}.modal{width:100%;max-height:92dvh;border-radius:var(--radius-md) var(--radius-md) 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}#app{width:100%;min-height:100dvh;margin:0;padding:0}.map-wrapper[data-v-25c2e4b7]{position:relative;width:100%;height:100%;overflow:hidden}.toggle-btn[data-v-25c2e4b7]{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:20;background:rgba(15,23,42,.7);border:1px solid rgba(0,240,255,.4);color:#fff;padding:10px 28px;border-radius:30px;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:500;letter-spacing:1px;transition:all .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 15px rgba(0,0,0,.3)}.toggle-btn[data-v-25c2e4b7]:hover{background:rgba(0,240,255,.2);border-color:#00f0ff;color:#fff;box-shadow:0 0 20px rgba(0,240,255,.4),0 0 40px rgba(0,240,255,.1);transform:translateX(-50%) translateY(-2px)}.toggle-btn[data-v-25c2e4b7]:active{transform:translateX(-50%) translateY(0)}.map-perspective-container[data-v-25c2e4b7]{width:100%;height:100%;left:0;top:0;position:relative;transition:transform .8s cubic-bezier(.4,0,.2,1),perspective .8s cubic-bezier(.4,0,.2,1),width .8s cubic-bezier(.4,0,.2,1),height .8s cubic-bezier(.4,0,.2,1),left .8s cubic-bezier(.4,0,.2,1),top .8s cubic-bezier(.4,0,.2,1);transform-origin:center center;transform-style:preserve-3d}.map-perspective-container.is-3d[data-v-25c2e4b7]{width:160%;height:160%;left:-30%;top:-30%;perspective:900px;transform:perspective(900px) rotateX(40deg) scale(.9);transform-origin:center 60%}.map-container[data-v-25c2e4b7]{width:100%;height:100%;min-height:400px;display:block;will-change:transform}.map-3d-shadow[data-v-25c2e4b7]{position:absolute;bottom:-30px;left:5%;right:5%;height:60px;background:radial-gradient(ellipse at center,rgba(0,140,255,.15) 0,rgba(0,140,255,.05) 40%,transparent 70%);filter:blur(15px);pointer-events:none;z-index:-1}.mobile-map-wrapper[data-v-671a3bd8]{position:relative;width:100%;height:100%;overflow:hidden}.mobile-map-container[data-v-671a3bd8]{width:100%;height:100%;min-height:300px;display:block;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:auto;will-change:transform}.tdtjs-wrapper[data-v-d0978bbe]{position:relative;width:100%;height:100%;overflow:hidden}.tdtjs-map[data-v-d0978bbe]{width:100%;height:100%}.tdtjs-error[data-v-d0978bbe],.tdtjs-loading[data-v-d0978bbe]{position:absolute;top:12px;left:12px;z-index:5;max-width:420px;padding:10px 12px;border-radius:10px;background:rgba(15,23,42,.75);border:1px solid rgba(0,240,255,.25);color:#fff;font-size:12px;pointer-events:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.tdtjs-error[data-v-d0978bbe]{border-color:rgba(239,68,68,.5)}.map-mode-switcher[data-v-6482ea7e]{position:relative;display:flex;background:var(--dash-switcher-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--dash-switcher-border);border-radius:99px;padding:0;gap:0;overflow:hidden;pointer-events:auto;box-shadow:var(--dash-switcher-shadow);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:-moz-fit-content;width:fit-content}.mode-option[data-v-6482ea7e]{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 20px;min-width:80px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:99px}.mode-icon[data-v-6482ea7e]{font-size:.7rem;font-weight:500;color:var(--dash-mode-text);margin-bottom:3px;letter-spacing:1px}.mode-label[data-v-6482ea7e]{font-size:1rem;font-weight:600;color:var(--dash-mode-text);letter-spacing:2px}.mode-option:hover .mode-icon[data-v-6482ea7e],.mode-option:hover .mode-label[data-v-6482ea7e]{color:var(--dash-mode-text-hover)}.mode-option.active .mode-icon[data-v-6482ea7e]{color:var(--dash-mode-text-active)}.mode-option.active .mode-label[data-v-6482ea7e]{color:var(--dash-mode-text-active);font-weight:700}.active-indicator[data-v-6482ea7e]{position:absolute;top:0;bottom:0;z-index:1;background:var(--dash-switcher-indicator);border-left:1px solid var(--dash-switcher-border);border-right:1px solid var(--dash-switcher-border);transition:all .35s cubic-bezier(.25,1,.5,1);box-shadow:inset 0 0 15px var(--dash-accent-muted)}.is-mobile[data-v-6482ea7e]{padding:2px!important;gap:2px!important}.is-mobile .mode-option[data-v-6482ea7e]{padding:6px 12px;min-width:50px}.is-mobile .mode-label[data-v-6482ea7e]{font-size:.85rem}.is-mobile .mode-icon[data-v-6482ea7e]{font-size:.65rem}.dashboard-container[data-v-47157d4f]{position:relative;height:100dvh;max-width:100%;overflow:hidden}.dashboard-container[data-v-47157d4f],.map-layer[data-v-47157d4f]{width:100%;background:linear-gradient(135deg,var(--dash-bg-start) 0,var(--dash-bg-end) 100%)}.map-layer[data-v-47157d4f]{position:absolute;top:0;left:0;height:100%;z-index:1}.map-layer[data-v-47157d4f]:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:var(--dash-map-vignette)}.calibrate-btn[data-v-47157d4f]{margin-top:8px}.ui-layer[data-v-47157d4f]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;padding:1rem 1.5rem;box-sizing:border-box;z-index:10;pointer-events:none}.dashboard-header[data-v-47157d4f],.panel-left[data-v-47157d4f],.panel-right[data-v-47157d4f]{pointer-events:auto}.dashboard-header[data-v-47157d4f]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:.8rem 1rem;flex:0 0 auto;position:relative;overflow:visible!important;z-index:100;min-width:0}.dashboard-header h1[data-v-47157d4f]{margin:0;max-width:min(760px,44vw);font-size:clamp(1.2rem,1.65vw,1.55rem);font-weight:700;letter-spacing:1px;line-height:1.25;text-align:center}.brand-lockup[data-v-47157d4f]{display:flex;align-items:center;min-width:0}.sys-logo[data-v-47157d4f]{height:44px;width:auto;max-width:min(360px,32vw);flex-shrink:0;filter:var(--dash-logo-glow)}.header-left[data-v-47157d4f]{display:flex;align-items:center;gap:15px}.header-center[data-v-47157d4f]{position:absolute;left:50%;transform:translateX(-50%)}.header-right[data-v-47157d4f]{display:flex;align-items:center;justify-content:flex-end;gap:20px;min-width:0}.dashboard-icon-button[data-v-47157d4f]{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;padding:0;color:var(--dash-icon-button-color);background:var(--dash-icon-button-bg);border:1px solid var(--dash-icon-button-border);border-radius:8px}.dashboard-icon-button[data-v-47157d4f]:hover{color:var(--dash-icon-button-hover-color);background:var(--dash-icon-button-hover-bg)}.weather-icon-svg[data-v-47157d4f]{flex:0 0 auto;color:var(--dash-weather-icon);filter:drop-shadow(0 3px 8px color-mix(in srgb,var(--dash-weather-icon) 35%,transparent))}.time[data-v-47157d4f]{font-size:1.2rem;font-weight:500;color:var(--accent-cyan);letter-spacing:1px}.basemap-toggle-btn[data-v-47157d4f]{display:none}.grid-nav-btn[data-v-47157d4f]{display:flex;align-items:center;gap:8px;padding:8px 20px;border-radius:999px;background:var(--dash-btn-nav-bg);border:1px solid var(--dash-btn-nav-border);color:var(--dash-btn-nav-text);cursor:pointer;font-weight:700;letter-spacing:1px;transition:all .3s cubic-bezier(.4,0,.2,1);pointer-events:auto;box-shadow:var(--dash-btn-nav-shadow);text-shadow:var(--dash-glow-text-shadow)}.grid-nav-btn[data-v-47157d4f]:before{content:"⊞";font-size:1.1rem;color:var(--dash-accent)}.grid-nav-btn[data-v-47157d4f]:hover{background:var(--dash-accent-soft);border-color:var(--dash-accent);box-shadow:var(--dash-btn-nav-shadow);transform:translateY(-1px)}.grid-nav-btn[data-v-47157d4f]:active{transform:translateY(1px);box-shadow:var(--dash-btn-nav-shadow)}.mt-15[data-v-47157d4f]{margin-top:15px;width:100%;justify-content:center}.glow-text[data-v-47157d4f]{color:var(--dash-glow-text-color);text-shadow:var(--dash-glow-text-shadow)}.dashboard-main[data-v-47157d4f]{display:flex;justify-content:space-between;align-items:stretch;width:100%;flex:1 1 auto;min-height:0;height:auto;box-sizing:border-box;gap:1rem}@media screen and (max-width:768px){.map-layer[data-v-47157d4f]{height:calc(100dvh - 120px)}.mobile-map-container[data-v-47157d4f]{height:100%!important}}.panel-left[data-v-47157d4f],.panel-right[data-v-47157d4f]{width:300px;display:flex;flex-direction:column;gap:1.5rem;height:100%;z-index:1}.glass-panel[data-v-47157d4f]{background:var(--dash-glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--dash-glass-border);border-radius:12px;box-shadow:var(--dash-glass-shadow);position:relative;overflow:hidden}.glass-panel[data-v-47157d4f]:before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--dash-glass-highlight),transparent)}.wrapper[data-v-47157d4f]{padding:1.2rem;display:flex;flex-direction:column;flex:0 0 auto}.wrapper.flex-grow[data-v-47157d4f]{flex:1 1 0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.panel-title[data-v-47157d4f]{font-size:1.1rem;margin-top:0;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--dash-divider);color:var(--text-main);text-transform:uppercase;letter-spacing:1px}.charts-placeholder[data-v-47157d4f]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.stat-box[data-v-47157d4f]{background:var(--dash-surface-muted);color:var(--dash-text-on-panel);padding:.8rem 1rem;border-radius:8px;text-align:center;font-size:.9rem}.cyan[data-v-47157d4f]{color:var(--accent-cyan);font-weight:700;font-size:1.2rem}.alert-list[data-v-47157d4f]{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}.alert-item[data-v-47157d4f]{padding:.8rem;margin-bottom:.5rem;border-radius:6px;background:var(--dash-surface-inset);border-left:3px solid;font-size:.9rem;color:var(--dash-text-on-panel)}.alert-item.error[data-v-47157d4f]{border-left-color:var(--accent-red);color:#fca5a5}.alert-item.warning[data-v-47157d4f]{border-left-color:var(--accent-amber);color:#fde047}.map-controls-overlay[data-v-47157d4f]{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:50;pointer-events:auto}.selected-device-card[data-v-47157d4f]{z-index:60;flex:0 0 auto}.weather-widget[data-v-47157d4f]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.2rem;background:var(--dash-surface-subtle);border-radius:12px;font-size:.9rem;border:1px solid var(--dash-divider);color:var(--dash-text-on-panel)}.weather-location[data-v-47157d4f]{font-size:1.1rem;font-weight:700;color:var(--accent-cyan);margin-bottom:.8rem;text-align:center;text-shadow:var(--dash-glow-text-shadow)}.weather-main[data-v-47157d4f]{display:flex;align-items:center;gap:15px;margin-bottom:.5rem}.weather-icon[data-v-47157d4f]{font-size:2.8rem;filter:drop-shadow(0 0 10px rgba(255,255,255,.2))}.weather-temp[data-v-47157d4f]{font-size:2.4rem;font-weight:800;color:var(--dash-text-on-panel);letter-spacing:-1px}.weather-desc[data-v-47157d4f]{font-size:1.1rem;color:var(--dash-text-secondary);margin-bottom:1.2rem;font-weight:500}.weather-details[data-v-47157d4f]{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:12px 1.5rem;padding-top:12px;border-top:1px solid var(--dash-divider)}.detail-item[data-v-47157d4f]{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.detail-item .label[data-v-47157d4f]{font-size:.75rem;color:var(--dash-text-muted);text-transform:uppercase;letter-spacing:.5px}.detail-item .val[data-v-47157d4f]{font-size:1rem;color:var(--accent-cyan);font-weight:600}.device-list[data-v-47157d4f]{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}.device-item[data-v-47157d4f]{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;margin-bottom:.5rem;border-radius:6px;background:var(--dash-surface-muted);font-size:.85rem;border-left:3px solid;color:var(--dash-text-on-panel)}.device-item.normal[data-v-47157d4f]{border-left-color:#10b981}.device-item.normal .device-status[data-v-47157d4f]{color:#10b981}.device-item.yellow[data-v-47157d4f]{border-left-color:#eab308}.device-item.yellow .device-status[data-v-47157d4f]{color:#eab308}.device-item.orange[data-v-47157d4f]{border-left-color:#f97316}.device-item.orange .device-status[data-v-47157d4f]{color:#f97316}.device-item.red[data-v-47157d4f]{border-left-color:var(--accent-red)}.device-item.red .device-status[data-v-47157d4f]{color:var(--accent-red)}.device-name[data-v-47157d4f]{flex:1;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-type-tag[data-v-47157d4f]{flex-shrink:0;font-size:.7rem;padding:.15rem .5rem;border-radius:4px;background:var(--dash-surface-muted);min-width:2.2em;text-align:center}.device-status[data-v-47157d4f]{flex-shrink:0}.alert-list[data-v-47157d4f]::-webkit-scrollbar,.device-list[data-v-47157d4f]::-webkit-scrollbar{width:6px}.alert-list[data-v-47157d4f]::-webkit-scrollbar-track,.device-list[data-v-47157d4f]::-webkit-scrollbar-track{background:var(--dash-scrollbar-track);border-radius:4px}.alert-list[data-v-47157d4f]::-webkit-scrollbar-thumb,.device-list[data-v-47157d4f]::-webkit-scrollbar-thumb{background:var(--dash-scrollbar-thumb);border-radius:4px}.alert-list[data-v-47157d4f]::-webkit-scrollbar-thumb:hover,.device-list[data-v-47157d4f]::-webkit-scrollbar-thumb:hover{background:var(--dash-scrollbar-thumb-hover)}.mobile-drawer[data-v-47157d4f]{display:none}@media screen and (max-width:768px){.desktop-layout[data-v-47157d4f]{display:none!important}.map-layer[data-v-47157d4f]{height:100dvh}.ui-layer[data-v-47157d4f]{padding:0;pointer-events:none}.dashboard-header[data-v-47157d4f]{display:grid;grid-template-areas:"left right" "center center";grid-template-columns:1fr auto;padding:12px 16px;margin-bottom:0;pointer-events:auto;background:var(--dash-header-mobile-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--dash-divider);gap:12px;max-width:100%}.header-left[data-v-47157d4f]{grid-area:left;display:flex;align-items:center}.header-right[data-v-47157d4f]{grid-area:right;display:flex;align-items:center;justify-content:flex-end;gap:8px}.header-center[data-v-47157d4f]{grid-area:center;position:static;transform:none;width:100%;text-align:center}.map-controls-overlay[data-v-47157d4f]{bottom:calc(40px + 1.5rem);transition:bottom .3s ease}.dashboard-header h1[data-v-47157d4f]{font-size:1rem;letter-spacing:.5px;margin:0;max-width:100%}.sys-logo[data-v-47157d4f]{height:32px;max-width:min(190px,34vw)}.time[data-v-47157d4f]{font-size:.85rem}.mobile-drawer[data-v-47157d4f]{display:flex;flex-direction:column;position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--dash-drawer-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--dash-drawer-border);border-radius:24px 24px 0 0;transform:translateY(calc(100% - 40px));transition:transform .4s cubic-bezier(.16,1,.3,1);pointer-events:auto;box-shadow:var(--dash-drawer-shadow);height:min(85dvh,calc(100dvh - 88px));max-height:min(85dvh,calc(100dvh - 88px));overflow:hidden;overscroll-behavior:contain;touch-action:pan-y}.mobile-drawer.drawer-open[data-v-47157d4f]{transform:translateY(0)}.drawer-handle-area[data-v-47157d4f]{width:100%;height:40px;display:flex;justify-content:center;align-items:center;cursor:grab;flex-shrink:0}.capsule-handle[data-v-47157d4f]{width:40px;height:5px;background:var(--dash-scrollbar-thumb);border-radius:4px;transition:background .3s}.mobile-drawer.drawer-open .capsule-handle[data-v-47157d4f]{background:var(--accent-cyan);box-shadow:0 0 8px var(--dash-accent-glow)}.drawer-content[data-v-47157d4f]{flex:1 1 auto;min-height:0;overflow:hidden;position:relative;padding-bottom:env(safe-area-inset-bottom)}.drawer-scroll-area[data-v-47157d4f]{height:100%;max-height:100%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;padding:0 16px 24px;display:flex;flex-direction:column;gap:16px}.drawer-section[data-v-47157d4f]{display:flex;flex-direction:column;gap:10px}.drawer-title[data-v-47157d4f]{font-size:.85rem;color:var(--text-muted);margin:0;padding-left:4px;text-transform:uppercase;letter-spacing:1px;font-weight:600}.glass-card[data-v-47157d4f]{background:var(--dash-surface-muted);border:1px solid var(--dash-divider);border-radius:16px;padding:16px;transition:background .2s}.drawer-stats[data-v-47157d4f]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.drawer-stats .stat-box[data-v-47157d4f]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px}.stat-label[data-v-47157d4f]{font-size:.8rem;color:var(--text-muted)}.mobile-primary-actions[data-v-47157d4f]{gap:0}.mobile-grid-entry[data-v-47157d4f]{width:100%;min-height:48px;justify-content:center;border-radius:14px}.drawer-weather[data-v-47157d4f]{display:flex;justify-content:space-between;align-items:center}.weather-left[data-v-47157d4f]{display:flex;align-items:center;gap:12px}.weather-icon[data-v-47157d4f]{font-size:2rem;filter:var(--dash-logo-glow)}.weather-temp[data-v-47157d4f]{font-size:1.6rem;font-weight:800;color:var(--dash-text-on-panel)}.weather-desc[data-v-47157d4f]{color:var(--accent-cyan);font-size:.95rem;font-weight:500}.selected-device-section[data-v-47157d4f]{gap:10px}.mobile-selected-device-card[data-v-47157d4f]{display:flex;flex-direction:column;gap:12px}.mobile-selected-device-card .card-header-row[data-v-47157d4f]{margin-bottom:0;padding-bottom:10px}.mobile-selected-title[data-v-47157d4f]{min-width:0;margin:0;color:var(--dash-text-on-panel);font-size:1rem;line-height:1.35;font-weight:700;overflow-wrap:anywhere}.mobile-selected-device-card .device-info-brief[data-v-47157d4f]{gap:8px}.mobile-selected-device-card .brief-row[data-v-47157d4f]{gap:8px;font-size:.9rem}.mobile-selected-device-card .brief-row .label[data-v-47157d4f]{flex:0 0 44px}.mobile-selected-device-card .brief-row .value[data-v-47157d4f]{min-width:0;overflow-wrap:anywhere}.mobile-selected-device-card .monitor-nav-btn[data-v-47157d4f]{width:100%;min-height:48px;justify-content:center}.mobile-selected-device-card .close-card-btn[data-v-47157d4f]{flex:0 0 44px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.project-header.glass-card[data-v-47157d4f]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;margin-bottom:8px;cursor:pointer;background:var(--dash-accent-muted);border-color:var(--dash-glass-border)}.proj-header-left[data-v-47157d4f]{display:flex;align-items:center;gap:8px}.project-name[data-v-47157d4f]{font-weight:600;color:var(--dash-text-on-panel);font-size:.95rem}.device-list[data-v-47157d4f]{margin:0;padding:0;list-style:none}.project-stations[data-v-47157d4f]{margin:0 0 16px 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;padding-left:12px;border-left:1px solid var(--dash-divider);margin-left:12px}.device-item[data-v-47157d4f]{display:flex;align-items:center;padding:10px 14px;background:var(--dash-surface-inset);border-radius:12px;gap:10px;border:1px solid transparent}.device-type-dot[data-v-47157d4f]{width:8px;height:8px;border-radius:50%}.device-type-dot.camera[data-v-47157d4f]{background:#3b82f6;box-shadow:0 0 8px #3b82f6}.device-type-dot.sensor[data-v-47157d4f]{background:#10b981;box-shadow:0 0 8px #10b981}.device-item.normal[data-v-47157d4f]{border-left:3px solid #10b981}.device-item.yellow[data-v-47157d4f]{border-left:3px solid #eab308}.device-item.orange[data-v-47157d4f]{border-left:3px solid #f97316}.device-item.red[data-v-47157d4f]{border-left:3px solid var(--accent-red)}.device-item .device-name[data-v-47157d4f]{font-size:.9rem}}@media screen and (min-width:769px) and (max-width:1024px){.ui-layer[data-v-47157d4f]{padding:14px}.dashboard-header[data-v-47157d4f]{padding:12px 20px;gap:12px}.dashboard-header h1[data-v-47157d4f]{max-width:min(520px,42vw);font-size:1.15rem}.panel-left[data-v-47157d4f],.panel-right[data-v-47157d4f]{width:clamp(224px,27vw,260px);gap:1rem}.sys-logo[data-v-47157d4f]{max-width:min(260px,28vw)}.header-right[data-v-47157d4f]{gap:10px}.grid-nav-btn[data-v-47157d4f]{min-height:44px;padding:8px 14px}.wrapper[data-v-47157d4f]{padding:1rem}.panel-title[data-v-47157d4f]{font-size:1rem}.stat-box[data-v-47157d4f]{padding:.6rem;font-size:.8rem}.device-item[data-v-47157d4f]{font-size:.8rem;padding:.5rem}.weather-temp[data-v-47157d4f]{font-size:1.8rem}}@media screen and (max-width:480px){.dashboard-header[data-v-47157d4f]{padding:8px 12px;grid-template-columns:minmax(0,1fr) auto}.dashboard-header h1[data-v-47157d4f]{font-size:.9rem;letter-spacing:0}.sys-logo[data-v-47157d4f]{height:24px;max-width:118px}.brand-lockup[data-v-47157d4f]{max-width:118px}.header-left[data-v-47157d4f],.header-right[data-v-47157d4f]{gap:10px}.dashboard-icon-button[data-v-47157d4f]{width:42px;height:42px}.grid-nav-btn[data-v-47157d4f]{min-height:42px;padding:8px 12px;font-size:.85rem}}.project-list[data-v-47157d4f]{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}.project-item[data-v-47157d4f]{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem 1rem;margin-bottom:.5rem;background:var(--dash-surface-muted);border-radius:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .2s;border-left:3px solid transparent;color:var(--dash-text-muted)}.project-item[data-v-47157d4f]:hover{background:var(--dash-surface-subtle);color:var(--dash-text-on-panel)}.project-item.active[data-v-47157d4f]{background:var(--dash-accent-soft);border-left-color:var(--accent-cyan);color:var(--dash-text-on-panel);box-shadow:0 0 10px var(--dash-accent-muted)}.project-item .project-name[data-v-47157d4f]{flex:1;min-width:0;font-weight:500;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-item .station-count[data-v-47157d4f]{flex-shrink:0;font-size:.8rem;opacity:.7}.project-item.yellow[data-v-47157d4f]{border-left-color:#eab308}.project-item.orange[data-v-47157d4f]{border-left-color:#f97316}.project-item.red[data-v-47157d4f]{border-left-color:var(--accent-red)}.project-list[data-v-47157d4f]::-webkit-scrollbar{width:6px}.project-list[data-v-47157d4f]::-webkit-scrollbar-track{background:var(--dash-scrollbar-track);border-radius:4px}.project-list[data-v-47157d4f]::-webkit-scrollbar-thumb{background:var(--dash-scrollbar-thumb);border-radius:4px}.project-list[data-v-47157d4f]::-webkit-scrollbar-thumb:hover{background:var(--dash-scrollbar-thumb-hover)}.selected-device-card[data-v-47157d4f]{margin-top:0;animation:slideIn-47157d4f .3s ease-out}.panel-right.has-selected-device[data-v-47157d4f]{gap:.75rem}.panel-right.has-selected-device .weather-panel[data-v-47157d4f]{padding:.85rem}.panel-right.has-selected-device .weather-widget[data-v-47157d4f]{padding:.75rem}.panel-right.has-selected-device .weather-location[data-v-47157d4f]{margin-bottom:.35rem;font-size:.95rem}.panel-right.has-selected-device .weather-main[data-v-47157d4f]{margin-bottom:.2rem}.panel-right.has-selected-device .weather-temp[data-v-47157d4f]{font-size:1.8rem}.panel-right.has-selected-device .weather-desc[data-v-47157d4f]{margin-bottom:.55rem;font-size:.9rem}.panel-right.has-selected-device .weather-details[data-v-47157d4f]{padding-top:8px}.device-info-brief[data-v-47157d4f]{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.brief-row[data-v-47157d4f]{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.9rem;min-height:1.5em}.brief-row .label[data-v-47157d4f]{color:var(--dash-text-muted);flex-shrink:0;min-width:3em}.brief-row .value[data-v-47157d4f]{color:var(--dash-text-on-panel);font-weight:500;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis}.brief-row .sid[data-v-47157d4f]{font-family:monospace;color:var(--accent-cyan)}.status-tag[data-v-47157d4f]{padding:2px 8px;border-radius:4px;font-size:.8rem}.status-tag.normal[data-v-47157d4f]{background:rgba(16,185,129,.2);color:#10b981}.status-tag.yellow[data-v-47157d4f]{background:rgba(234,179,8,.2);color:#eab308}.status-tag.orange[data-v-47157d4f]{background:rgba(249,115,22,.2);color:#f97316}.status-tag.red[data-v-47157d4f]{background:rgba(239,68,68,.2);color:#ef4444}.monitor-nav-btn[data-v-47157d4f]{width:100%;padding:10px;background:var(--dash-btn-nav-bg);border:1px solid var(--accent-cyan);color:var(--dash-btn-nav-text);border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s;display:flex;justify-content:center;align-items:center;gap:8px}.monitor-nav-btn[data-v-47157d4f]:hover{background:var(--dash-accent-soft);box-shadow:var(--dash-btn-nav-shadow)}@keyframes slideIn-47157d4f{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.card-header-row[data-v-47157d4f]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem;padding-bottom:.6rem;border-bottom:1px solid var(--dash-divider)}.card-header-row .panel-title[data-v-47157d4f]{margin-bottom:0;border-bottom:none;padding-bottom:0}.close-card-btn[data-v-47157d4f]{background:none;border:none;color:var(--dash-text-muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 4px;transition:all .2s}.close-card-btn[data-v-47157d4f]:hover{color:var(--accent-cyan);transform:scale(1.1)}