.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f0f2f8;--surface: #ffffff;--surface-raised: #ffffff;--surface-overlay: rgba(255,255,255,.92);--sidebar-bg: rgba(250,251,255,.82);--sidebar-hover: rgba(37,99,235,.06);--sidebar-active: rgba(255,255,255,.98);--app-gradient: linear-gradient( 135deg, #e8eeff 0%, #f0f2f8 35%, #ede8fb 70%, #e8f4ff 100% );--border: #e2e6f0;--border-strong: #c8cfe0;--text-primary: #0d1117;--text-secondary: #444f63;--text-muted: #8895ae;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-light: #eff6ff;--accent-subtle: #dbeafe;--green: #10b981;--green-light: #ecfdf5;--red: #ef4444;--red-light: #fef2f2;--orange: #f59e0b;--orange-light: #fffbeb;--purple: #8b5cf6;--purple-light: #f5f3ff;--cyan: #06b6d4;--cyan-light: #ecfeff;--radius-sm: 5px;--radius: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-xs: 0 1px 2px rgba(15,23,42,.04);--shadow: 0 0 0 1px rgba(15,23,42,.05), 0 2px 6px rgba(15,23,42,.07);--shadow-md: 0 0 0 1px rgba(15,23,42,.04), 0 4px 16px rgba(15,23,42,.1), 0 1px 3px rgba(15,23,42,.06);--shadow-lg: 0 0 0 1px rgba(15,23,42,.04), 0 12px 32px rgba(15,23,42,.12), 0 4px 8px rgba(15,23,42,.06);--shadow-xl: 0 0 0 1px rgba(15,23,42,.04), 0 24px 48px rgba(15,23,42,.14), 0 8px 16px rgba(15,23,42,.07);--glow-accent: 0 0 24px rgba(37,99,235,.18);--glow-green: 0 0 20px rgba(16,185,129,.2);--glow-red: 0 0 20px rgba(239,68,68,.18)}[data-theme=dark]{--bg: #080b12;--surface: #0f1320;--surface-raised: #151b2e;--surface-overlay: rgba(15,19,32,.96);--sidebar-bg: rgba(8,11,18,.92);--sidebar-hover: rgba(99,130,255,.08);--sidebar-active: rgba(20,26,46,.98);--app-gradient: radial-gradient(ellipse 120% 80% at 50% -10%, rgba(37,99,235,.12) 0%, transparent 55%), radial-gradient(ellipse 80% 60% at 90% 90%, rgba(139,92,246,.08) 0%, transparent 50%), linear-gradient(180deg, #080b12 0%, #0a0e1a 100%);--border: #1e2640;--border-strong: #2d3658;--text-primary: #f1f5f9;--text-secondary: #8b9cc8;--text-muted: #4a5580;--accent: #4f8ef7;--accent-hover: #6ba3ff;--accent-light: rgba(79,142,247,.12);--accent-subtle: rgba(79,142,247,.08);--green: #34d399;--green-light: rgba(52,211,153,.1);--red: #f87171;--red-light: rgba(248,113,113,.1);--orange: #fbbf24;--orange-light: rgba(251,191,36,.1);--purple: #a78bfa;--purple-light: rgba(167,139,250,.1);--cyan: #22d3ee;--cyan-light: rgba(34,211,238,.1);--shadow-xs: 0 1px 3px rgba(0,0,0,.5);--shadow: 0 0 0 1px rgba(255,255,255,.04), 0 2px 8px rgba(0,0,0,.45);--shadow-md: 0 0 0 1px rgba(255,255,255,.05), 0 6px 20px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.35);--shadow-lg: 0 0 0 1px rgba(255,255,255,.05), 0 16px 40px rgba(0,0,0,.6), 0 6px 12px rgba(0,0,0,.4);--shadow-xl: 0 0 0 1px rgba(255,255,255,.06), 0 28px 60px rgba(0,0,0,.7), 0 10px 20px rgba(0,0,0,.45);--glow-accent: 0 0 32px rgba(79,142,247,.3);--glow-green: 0 0 28px rgba(52,211,153,.28);--glow-red: 0 0 28px rgba(248,113,113,.25)}[data-theme=dark] body{background:var(--bg);color:var(--text-primary)}[data-theme=dark] input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=color]),[data-theme=dark] select,[data-theme=dark] textarea{background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--border)!important;color-scheme:dark}[data-theme=dark] tbody tr:hover{background-color:#ffffff08!important}[data-theme=dark] .recharts-default-tooltip{background:var(--surface-raised)!important;border:1px solid var(--border)!important;border-color:var(--border)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-md)!important}[data-theme=dark] .recharts-tooltip-label{color:var(--text-secondary)!important}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--border-strong)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text-primary);font-size:14px;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11";letter-spacing:-.01em}#root{background:var(--app-gradient);min-height:100vh}nav[aria-label="Main navigation"]{background:var(--sidebar-bg)!important;backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border-right:1px solid rgba(255,255,255,.22)!important;box-shadow:1px 0 #fff9,6px 0 32px #2563eb0d}[data-theme=dark] nav[aria-label="Main navigation"]{border-right:1px solid rgba(255,255,255,.05)!important;box-shadow:1px 0 #ffffff0a,6px 0 40px #00000080}nav[aria-label="Main navigation"] [aria-current=page]{background:var(--sidebar-active)!important;box-shadow:0 1px 6px #2563eb26,0 0 0 1px #2563eb1a!important}[data-theme=dark] nav[aria-label="Main navigation"] [aria-current=page]{background:#4f8ef71a!important;box-shadow:0 1px 8px #4f8ef740,0 0 0 1px #4f8ef726!important}nav[aria-label="Main navigation"] .nav-section-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.glass-card{background:#ffffffb8;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(255,255,255,.55);box-shadow:var(--shadow-md)}[data-theme=dark] .glass-card{background:#0f1320bf;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.06);box-shadow:var(--shadow-lg)}.premium-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow);border:none;transition:box-shadow .2s ease,transform .2s ease}.premium-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}[data-theme=dark] .premium-card{background:var(--surface);box-shadow:var(--shadow)}[data-theme=dark] .premium-card:hover{box-shadow:var(--shadow-md)}.metric-green{border-top:3px solid var(--green)!important}.metric-red{border-top:3px solid var(--red)!important}.metric-orange{border-top:3px solid var(--orange)!important}.metric-blue{border-top:3px solid var(--accent)!important}.metric-purple{border-top:3px solid var(--purple)!important}.metric-cyan{border-top:3px solid var(--cyan)!important}.gradient-text-blue{background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-green{background:linear-gradient(135deg,#10b981,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-orange{background:linear-gradient(135deg,#f59e0b,#ef4444);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .gradient-text-blue{background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .gradient-text-green{background:linear-gradient(135deg,#34d399,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .gradient-text-orange{background:linear-gradient(135deg,#fbbf24,#f87171);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-hero{background:linear-gradient(135deg,#2563eb12,#6d28d90a 45%,#06b6d40d);border-bottom:1px solid rgba(37,99,235,.1)}[data-theme=dark] .dashboard-hero{background:linear-gradient(135deg,#4f8ef71f,#8b5cf614 45%,#22d3ee12);border-bottom:1px solid rgba(79,142,247,.12)}.device-card-glow{position:relative;overflow:hidden;transition:box-shadow .25s ease,transform .25s ease}.device-card-glow:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(500px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(37,99,235,.08),transparent 65%);opacity:0;transition:opacity .35s ease;pointer-events:none;border-radius:inherit;z-index:0}.device-card-glow:hover:before{opacity:1}.device-card-glow:hover{box-shadow:var(--shadow-lg)!important;transform:translateY(-2px)}[data-theme=dark] .device-card-glow:before{background:radial-gradient(500px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(79,142,247,.12),transparent 65%)}[data-theme=dark] .device-card-glow:hover{box-shadow:var(--shadow-lg),0 0 0 1px #4f8ef726!important}@keyframes status-pulse-online{0%,to{box-shadow:0 0 #10b98199}50%{box-shadow:0 0 0 5px #10b98100}}@keyframes status-pulse-offline{0%,to{box-shadow:0 0 #ef444480}50%{box-shadow:0 0 0 4px #ef444400}}[data-theme=dark] .status-dot-online{box-shadow:0 0 6px #34d399b3}[data-theme=dark] .status-dot-offline{box-shadow:0 0 5px #f8717199}.status-dot-online{animation:status-pulse-online 2.4s ease-in-out infinite}.status-dot-offline{animation:status-pulse-offline 3s ease-in-out infinite}tbody tr:hover{background-color:var(--accent-light)!important}[data-theme=dark] tbody tr:hover{background-color:#4f8ef70f!important}.table-striped tbody tr:nth-child(2n){background-color:#0f172a06}[data-theme=dark] .table-striped tbody tr:nth-child(2n){background-color:#ffffff05}button{font-family:inherit}button[style*="background: var(--accent)"],button[style*="background:var(--accent)"]{transition:filter .15s ease,box-shadow .15s ease,transform .1s ease}button[style*="background: var(--accent)"]:hover:not(:disabled),button[style*="background:var(--accent)"]:hover:not(:disabled){filter:brightness(.92);box-shadow:0 4px 12px #2563eb59}button[style*="background: var(--accent)"]:active:not(:disabled),button[style*="background:var(--accent)"]:active:not(:disabled){transform:translateY(1px)}a,button,input,select,textarea{transition-duration:.15s;transition-timing-function:ease}.card-hover{transition:box-shadow .22s ease,transform .22s ease}.card-hover:hover{box-shadow:var(--shadow-lg)!important;transform:translateY(-2px)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes palette-enter{0%{opacity:0;transform:translate(-50%) scale(.96) translateY(-10px)}to{opacity:1;transform:translate(-50%) scale(1) translateY(0)}}.command-palette-enter{animation:palette-enter .2s cubic-bezier(.22,1,.36,1) forwards}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-progress{0%{width:100%}to{width:0%}}.toast-enter{animation:toast-slide-up .24s cubic-bezier(.22,1,.36,1) forwards}.toast-progress-bar{animation:toast-progress 4s linear forwards}@keyframes page-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-transition{animation:page-enter .25s cubic-bezier(.22,1,.36,1) both;will-change:opacity,transform}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .22s ease forwards}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--border) 0%,var(--bg) 40%,var(--border) 80%);background-size:800px 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-text{height:14px;border-radius:4px}.skeleton-title{height:20px;border-radius:4px}.skeleton-card{height:80px;border-radius:var(--radius-md)}.skeleton-row{height:48px;border-radius:var(--radius-sm)}@keyframes ticker-flash-up{0%{color:var(--green);text-shadow:0 0 14px rgba(52,211,153,.6)}to{color:inherit;text-shadow:none}}@keyframes ticker-flash-down{0%{color:var(--red);text-shadow:0 0 14px rgba(248,113,113,.6)}to{color:inherit;text-shadow:none}}@keyframes ticker-flash-flat{0%{color:var(--orange);text-shadow:0 0 10px rgba(251,191,36,.5)}to{color:inherit;text-shadow:none}}.ticker-up{animation:ticker-flash-up .7s ease-out forwards}.ticker-down{animation:ticker-flash-down .7s ease-out forwards}.ticker-flat{animation:ticker-flash-flat .6s ease-out forwards}@keyframes live-dot-ring{0%{r:4;opacity:.9}70%{r:10;opacity:0}to{r:10;opacity:0}}.live-dot-ring{animation:live-dot-ring 1.4s ease-out infinite;transform-box:fill-box;transform-origin:center}@keyframes schedule-dot-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.9);opacity:.4}}.schedule-dot-pulse{animation:schedule-dot-pulse 1.5s ease-in-out infinite;transform-origin:center;display:inline-block}@keyframes schedule-bar-shimmer{0%{transform:translate(-100%)}to{transform:translate(400%)}}.schedule-bar-shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 40%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.3) 60%,transparent 100%);animation:schedule-bar-shimmer 2s ease-in-out infinite}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;letter-spacing:.01em}.react-grid-item.react-grid-placeholder{background:var(--accent)!important;opacity:.08!important;border-radius:var(--radius-md)!important;border:2px dashed var(--accent)!important}.react-resizable-handle{opacity:0;transition:opacity .15s}.react-grid-item:hover .react-resizable-handle{opacity:1}.react-resizable-handle:after{border-color:var(--accent)!important;width:7px!important;height:7px!important}.react-grid-layout.locked .drag-handle{cursor:default!important;pointer-events:none}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-header-row th{background:var(--bg)}.table-header-row:after{content:"";display:table-cell;background:var(--bg);width:100%;border-bottom:1px solid var(--border)}@media (max-width: 640px){.col-hide-xs{display:none!important}}@media (max-width: 1024px){.col-hide-sm{display:none!important}}@media (max-width: 768px){nav[aria-label="Main navigation"]{position:fixed!important;top:0;left:-100%;bottom:0;z-index:500;width:240px!important;transition:left .25s ease!important;box-shadow:4px 0 32px #0000002e}nav[aria-label="Main navigation"].mobile-open{left:0!important}.app-shell-content{width:100%!important}table{font-size:12px!important}th,td{padding:8px 10px!important}header{flex-wrap:wrap;height:auto!important;min-height:52px;padding:8px 16px!important;gap:8px!important}.mobile-full{width:100%!important;min-width:0!important}h1{font-size:15px!important}.react-grid-layout{margin:0!important}.react-grid-item{width:100%!important;position:relative!important;transform:none!important;left:0!important;top:unset!important;margin-bottom:8px}}@media (max-width: 480px){.hide-xs{display:none!important}header h1{font-size:14px!important}nav[aria-label="Main navigation"]{width:100%!important}}
