@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-success:#22c55e;--color-warning:#eab308;--color-error:#ef4444;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-white:#fff;--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-900);background:var(--color-gray-50);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-layout.with-sidebar{flex-direction:row}.app-layout.with-sidebar .app-main{flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.page-content{max-width:1200px;padding:var(--space-6) var(--space-6);width:100%;margin:0 auto}.sidebar{background:var(--color-white);border-right:1px solid var(--color-gray-200);z-index:110;flex-direction:column;flex-shrink:0;width:240px;height:100vh;min-height:100vh;transition:width .2s;display:flex;position:sticky;top:0;overflow:hidden}.sidebar.collapsed{width:60px}.sidebar-brand{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-4);border-bottom:1px solid var(--color-gray-200);flex-shrink:0;height:56px;display:flex;overflow:hidden}.sidebar-brand-icon{color:#fff;border-radius:var(--radius-md);width:28px;min-width:28px;height:28px;font-weight:700;font-size:var(--font-size-sm);background:#1e293b;justify-content:center;align-items:center;display:flex}.sidebar-brand-text{font-weight:600;font-size:var(--font-size-base);color:var(--color-gray-900);white-space:nowrap}.sidebar-badge{color:#fff;border-radius:var(--radius-full);white-space:nowrap;background:#7c3aed;padding:1px 6px;font-size:.6rem;font-weight:600}.sidebar-nav{padding:var(--space-2) var(--space-2);scrollbar-width:thin;flex-direction:column;flex:1;gap:1px;display:flex;overflow-y:auto}.sidebar-link{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);color:var(--color-gray-500);font-size:var(--font-size-sm);white-space:nowrap;padding:8px 12px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex;overflow:hidden}.sidebar-link:hover{background:var(--color-gray-100);color:var(--color-gray-900);text-decoration:none}.sidebar-link.active{color:var(--color-primary);background:#6366f114;font-weight:600}.sidebar-link.active .sidebar-link-icon{color:var(--color-primary)}.sidebar-link-icon{color:var(--color-gray-400);flex-shrink:0;transition:color .15s}.sidebar-link:hover .sidebar-link-icon{color:var(--color-gray-700)}.sidebar-link-label{text-overflow:ellipsis;overflow:hidden}.sidebar-collapse-btn{align-items:center;gap:var(--space-2);margin:var(--space-2);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-gray-500);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;font-weight:500;font-family:var(--font-family);flex-shrink:0;padding:10px 14px;transition:background .15s,color .15s;display:flex;overflow:hidden}.sidebar-collapse-btn:hover{background:var(--color-gray-100);color:var(--color-gray-700)}.sidebar.collapsed .sidebar-collapse-btn,.sidebar.collapsed .sidebar-link{justify-content:center;padding:10px}.sidebar.collapsed .sidebar-brand{padding:var(--space-4) 0;justify-content:center}.navbar.navbar-with-sidebar{border-bottom:1px solid var(--color-gray-200)}.navbar{z-index:100;background:var(--color-white);border-bottom:1px solid var(--color-gray-200);height:56px;padding:0 var(--space-6);align-items:center;gap:var(--space-6);display:flex;position:sticky;top:0}.navbar-logo{align-items:center;gap:var(--space-2);font-size:var(--font-size-base);color:var(--color-gray-900);flex-shrink:0;font-weight:600;text-decoration:none;display:flex}.navbar-logo:hover{text-decoration:none}.navbar-logo-icon{color:#fff;border-radius:var(--radius-md);width:28px;height:28px;font-weight:700;font-size:var(--font-size-sm);background:#1e293b;justify-content:center;align-items:center;display:flex}.navbar-admin-badge{color:#fff;font-size:var(--font-size-xs);border-radius:var(--radius-full);background:#7c3aed;padding:2px 8px;font-weight:600}.navbar-tabs{align-items:center;gap:var(--space-1);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;display:flex;overflow-x:auto}.navbar-tabs::-webkit-scrollbar{display:none}.navbar-tab{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-gray-500);white-space:nowrap;border-bottom:2px solid #0000;font-weight:500;line-height:52px;text-decoration:none;transition:color .15s,border-color .15s}.navbar-tab:hover{color:var(--color-gray-900);text-decoration:none}.navbar-tab.active{color:var(--color-gray-900);border-bottom-color:var(--color-primary)}.navbar-actions{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.navbar-avatar{border-radius:var(--radius-full);color:#fff;width:32px;height:32px;font-weight:600;font-size:var(--font-size-sm);cursor:pointer;background:#ea580c;justify-content:center;align-items:center;display:flex}.navbar-avatar-wrap{position:relative}.avatar-dropdown{background:var(--color-card);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);z-index:200;min-width:220px;animation:.15s dropdownFadeIn;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0000001f}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.avatar-dropdown-header{padding:var(--space-3)}.avatar-dropdown-name{font-weight:600;font-size:var(--font-size-sm);color:var(--color-gray-900)}.avatar-dropdown-email{font-size:var(--font-size-xs);color:var(--color-gray-500);margin-top:2px}.avatar-dropdown-divider{background:var(--color-gray-200);height:1px}.avatar-dropdown-item{width:100%;padding:var(--space-2) var(--space-3);text-align:left;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-700);cursor:pointer;background:0 0;border:none;transition:background .1s;display:block}.avatar-dropdown-item:hover{background:var(--color-gray-100)}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;display:flex}.page-header-text h1{font-size:var(--font-size-2xl);color:var(--color-gray-900);margin-bottom:var(--space-1);font-weight:700}.page-header-text p{font-size:var(--font-size-sm);color:var(--color-gray-500)}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-family);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-white);color:var(--color-gray-700);border-color:var(--color-gray-300)}.btn-secondary:hover{background:var(--color-gray-50);border-color:var(--color-gray-400)}.search-bar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.search-input-wrapper{flex:1;position:relative}.search-input-wrapper svg{color:var(--color-gray-400);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) 36px;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-gray-900);outline:none;transition:border-color .15s}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e51a}.search-input::placeholder{color:var(--color-gray-400)}.filter-btn{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background:var(--color-white);color:var(--color-gray-600);font-size:var(--font-size-sm);font-family:var(--font-family);cursor:pointer;display:inline-flex}.filter-btn:hover{background:var(--color-gray-50)}.count-badge{font-size:var(--font-size-xs);color:var(--color-gray-500);background:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);margin-bottom:var(--space-3);font-weight:500;display:inline-block}.data-table{border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background:var(--color-white);width:100%;overflow:hidden}.data-table table{border-collapse:collapse;width:100%}.data-table th{font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-gray-200);background:var(--color-gray-50);font-weight:600}.data-table td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-gray-700);border-bottom:1px solid var(--color-gray-100)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--color-gray-50)}.data-table tr{cursor:pointer;transition:background .1s}.data-table .cell-primary{color:var(--color-gray-900);font-weight:600}.status-badge{font-size:var(--font-size-sm);align-items:center;gap:6px;font-weight:500;display:inline-flex}.status-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.status-dot.online{background:var(--color-success)}.status-dot.offline{background:var(--color-gray-400)}.status-dot.degraded{background:var(--color-warning)}.status-dot.active{background:var(--color-success)}.status-dot.planned{background:var(--color-primary)}.status-dot.completed{background:var(--color-gray-400)}.status-dot.pending{background:var(--color-warning)}.tag{font-size:var(--font-size-xs);color:var(--color-gray-600);background:var(--color-gray-100);border-radius:var(--radius-full);margin-right:var(--space-1);align-items:center;padding:2px 8px;font-weight:500;display:inline-flex}.tag.tag-primary{color:var(--color-primary);background:#4f46e51a}.menu-dots{color:var(--color-gray-400);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm)}.menu-dots:hover{background:var(--color-gray-100);color:var(--color-gray-600)}.login-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-white);padding:var(--space-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:400px}.login-card h1{font-size:var(--font-size-2xl);text-align:center;margin-bottom:var(--space-2);font-weight:700}.login-card p{text-align:center;color:var(--color-gray-500);margin-bottom:var(--space-6)}.form-group label{font-size:var(--font-size-sm);color:var(--color-gray-700);margin-bottom:var(--space-1);font-weight:500;display:block}.form-group input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);outline:none}.form-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e51a}.login-btn{width:100%;padding:var(--space-3);font-size:var(--font-size-base)}.login-error{color:var(--color-error);font-size:var(--font-size-sm);text-align:center;margin-bottom:var(--space-4);padding:var(--space-2);border-radius:var(--radius-sm);background:#ef44440d}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-gray-400)}.empty-state svg{width:48px;height:48px;margin-bottom:var(--space-4)}.empty-state h3{font-size:var(--font-size-lg);color:var(--color-gray-600);margin-bottom:var(--space-2);font-weight:600}.empty-state p{font-size:var(--font-size-sm);color:var(--color-gray-400)}.detail-breadcrumb{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--font-size-sm);color:var(--color-gray-500);display:flex}.detail-breadcrumb a{color:var(--color-gray-500)}.detail-breadcrumb a:hover{color:var(--color-primary)}.breadcrumb-sep{color:var(--color-gray-300)}.detail-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.detail-header-left{align-items:center;gap:var(--space-3);display:flex}.detail-header-left h1{font-size:var(--font-size-2xl);font-weight:700}.detail-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.detail-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-5)}.detail-card h3{font-size:var(--font-size-base);color:var(--color-gray-900);margin-bottom:var(--space-4);align-items:center;gap:var(--space-2);font-weight:600;display:flex}.detail-field{padding:var(--space-2) 0;border-bottom:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;display:flex}.detail-field:last-child{border-bottom:none}.detail-label{font-size:var(--font-size-sm);color:var(--color-gray-500);font-weight:500}.detail-value{font-size:var(--font-size-sm);color:var(--color-gray-900)}.detail-link{color:var(--color-primary);font-size:var(--font-size-sm)}.detail-list{padding:0;list-style:none}.detail-list-item{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-gray-100);font-size:var(--font-size-sm);display:flex}.detail-list-item:last-child{border-bottom:none}.mono{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:var(--font-size-xs)}.edit-form{max-width:400px}.tabs-bar{gap:var(--space-1);border-bottom:1px solid var(--color-gray-200);margin-bottom:var(--space-4);display:flex}.tab-btn{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-family);color:var(--color-gray-500);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;transition:color .15s,border-color .15s}.live-badge{font-size:var(--font-size-xs);color:var(--color-error);margin-left:var(--space-2);font-weight:600;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.chart-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.chart-panel{border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-gray-50)}.chart-panel-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.chart-panel-id{font-size:var(--font-size-sm);color:var(--color-gray-700);font-weight:600}.chart-panel-value{font-size:var(--font-size-lg);color:var(--color-primary);font-weight:700}.chart-mini{height:60px}.toggle-label{cursor:pointer;align-items:center;display:inline-flex}.toggle-checkbox{display:none}.toggle-switch{border-radius:var(--radius-full);background:var(--color-gray-300);width:36px;height:20px;transition:background .2s;position:relative}.toggle-switch:after{content:"";border-radius:var(--radius-full);background:var(--color-white);width:16px;height:16px;box-shadow:var(--shadow-sm);transition:transform .2s;position:absolute;top:2px;left:2px}.toggle-switch.on{background:var(--color-primary)}.toggle-switch.on:after{transform:translate(16px)}.toggle-checkbox:disabled+.toggle-switch{opacity:.5;cursor:not-allowed}.permission-legend{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.permission-item{align-items:center;gap:var(--space-2);display:flex}.permission-desc{font-size:var(--font-size-xs);color:var(--color-gray-500)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-success:#4ade80;--color-warning:#facc15;--color-error:#f87171;--color-gray-50:#0f172a;--color-gray-100:#1e293b;--color-gray-200:#334155;--color-gray-300:#475569;--color-gray-400:#94a3b8;--color-gray-500:#cbd5e1;--color-gray-600:#e2e8f0;--color-gray-700:#f1f5f9;--color-gray-800:#f8fafc;--color-gray-900:#fff;--color-white:#1e293b;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006}}[data-theme=dark]{--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-success:#4ade80;--color-warning:#facc15;--color-error:#f87171;--color-gray-50:#0f172a;--color-gray-100:#1e293b;--color-gray-200:#334155;--color-gray-300:#475569;--color-gray-400:#94a3b8;--color-gray-500:#cbd5e1;--color-gray-600:#e2e8f0;--color-gray-700:#f1f5f9;--color-gray-800:#f8fafc;--color-gray-900:#fff;--color-white:#1e293b;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .login-container{background:linear-gradient(135deg,#312e81 0%,#581c87 100%)}}[data-theme=dark] .login-container{background:linear-gradient(135deg,#312e81 0%,#581c87 100%)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .navbar-logo-icon,:root:not([data-theme=light]) .sidebar-brand-icon{background:#818cf8}}[data-theme=dark] .navbar-logo-icon,[data-theme=dark] .sidebar-brand-icon{background:#818cf8}[data-theme=dark] .sidebar{background:var(--color-card);border-right-color:var(--color-gray-200)}[data-theme=dark] .sidebar-link.active{background:#818cf81f}[data-theme=dark] .sidebar-collapse-btn{background:var(--color-card);border-color:var(--color-gray-200)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tag-primary{color:#818cf8;background:#818cf826}}[data-theme=dark] .tag-primary{color:#818cf8;background:#818cf826}.theme-toggle{cursor:pointer;width:32px;height:32px;color:var(--color-gray-500);border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.theme-toggle:hover{background:var(--color-gray-100);color:var(--color-gray-900)}.navbar-hamburger{cursor:pointer;width:36px;height:36px;color:var(--color-gray-700);border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;display:none}.navbar-hamburger:hover{background:var(--color-gray-100)}.mobile-nav-overlay{display:none}@media (width<=1024px){.page-content{padding:var(--space-4)}.detail-grid{grid-template-columns:1fr}.chart-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.permission-legend{grid-template-columns:1fr}.edit-form{grid-template-columns:1fr!important;max-width:none!important}}@media (width<=768px){.navbar{padding:0 var(--space-3);height:52px}.navbar-tabs{display:none}.navbar-hamburger{display:flex}.mobile-nav-overlay{z-index:100;opacity:0;visibility:hidden;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;transition:opacity .2s,visibility .2s;display:block;position:fixed;inset:0}.mobile-nav-overlay.open{opacity:1;visibility:visible}.mobile-nav-menu{background:var(--color-white);border-left:1px solid var(--color-gray-200);width:280px;box-shadow:var(--shadow-md);padding:var(--space-4);z-index:101;transition:transform .25s;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.mobile-nav-overlay.open .mobile-nav-menu{transform:translate(0)}.mobile-nav-menu .mobile-nav-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-gray-200);justify-content:space-between;align-items:center;display:flex}.mobile-nav-menu .mobile-nav-link{padding:var(--space-3) var(--space-2);font-size:var(--font-size-sm);color:var(--color-gray-600);border-radius:var(--radius-md);font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:block}.mobile-nav-menu .mobile-nav-link:hover,.mobile-nav-menu .mobile-nav-link.active{background:var(--color-gray-100);color:var(--color-gray-900)}.mobile-nav-menu .mobile-nav-link.active{border-left:3px solid var(--color-primary);padding-left:calc(var(--space-2) - 3px);font-weight:600}.data-table{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table table{min-width:600px}.page-header{gap:var(--space-3);flex-direction:column}.detail-header{gap:var(--space-2);flex-direction:column}.detail-header-left{flex-wrap:wrap}.detail-breadcrumb{font-size:var(--font-size-xs)}.tabs-bar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.tab-btn{white-space:nowrap;flex-shrink:0}.search-bar{gap:var(--space-2);flex-direction:column}.login-card{margin:var(--space-4);padding:var(--space-6)}.chart-grid{grid-template-columns:1fr}}@media (width<=480px){.page-content,.detail-card{padding:var(--space-3)}.data-table table{min-width:520px}.detail-header-left h1{font-size:var(--font-size-xl)}}.chart-wrapper{background:var(--color-white);border-radius:var(--radius-lg);width:100%;padding:var(--space-3);position:relative}.dark .chart-wrapper{background:var(--color-gray-800)}.chart-loading,.chart-empty{justify-content:center;align-items:center;gap:var(--space-2);height:100%;color:var(--color-gray-400);font-size:var(--font-size-sm);flex-direction:column;display:flex}.chart-loading-pulse{background:var(--color-primary);opacity:.3;border-radius:50%;width:40px;height:40px;animation:1.5s ease-in-out infinite chartPulse}@keyframes chartPulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:.6;transform:scale(1.2)}}.chart-empty-icon{opacity:.5;font-size:2rem}.metric-card-component{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-1);flex-direction:column;transition:box-shadow .2s,transform .2s;display:flex}.metric-card-component:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.metric-card-component.compact{padding:var(--space-3)}.dark .metric-card-component{background:var(--color-gray-800);border-color:var(--color-gray-700)}.metric-card-label{font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:var(--space-1);font-weight:500;display:flex}.metric-card-icon{font-size:1rem}.metric-card-value{color:var(--color-gray-900);font-size:1.75rem;font-weight:700;line-height:1.2}.dark .metric-card-value{color:var(--color-white)}.compact .metric-card-value{font-size:1.25rem}.metric-card-unit{color:var(--color-gray-400);margin-left:2px;font-size:.6em;font-weight:400}.metric-card-na{color:var(--color-gray-300)}.metric-card-trend{font-size:var(--font-size-xs);font-weight:600}.metric-card-skeleton{background:linear-gradient(90deg, var(--color-gray-100) 25%, var(--color-gray-200) 50%, var(--color-gray-100) 75%);border-radius:var(--radius-sm);background-size:200% 100%;width:60px;height:1.75rem;animation:1.5s infinite shimmer;display:inline-block}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.time-range-selector{gap:var(--space-1);flex-wrap:wrap;display:flex}.time-range-btn{background:var(--color-gray-100);color:var(--color-gray-600);border-radius:var(--radius-full);font-size:var(--font-size-xs);cursor:pointer;font-weight:600;font-family:var(--font-family);border:1px solid #0000;padding:6px 14px;transition:all .2s}.time-range-btn:hover{background:var(--color-gray-200);color:var(--color-gray-800)}.time-range-btn.active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.dark .time-range-btn{background:var(--color-gray-700);color:var(--color-gray-300)}.dark .time-range-btn:hover{background:var(--color-gray-600)}.dark .time-range-btn.active{background:var(--color-primary);color:var(--color-white)}.time-range-btn-custom{align-items:center;gap:3px;display:inline-flex}.custom-range-picker{z-index:50;background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);min-width:320px;padding:var(--space-4);box-shadow:var(--shadow-lg,0 10px 25px #0000001f);animation:.2s ease-out customPickerSlideIn;position:absolute;top:calc(100% + 8px);right:0}@keyframes customPickerSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dark .custom-range-picker{background:var(--color-gray-800);border-color:var(--color-gray-700);box-shadow:0 10px 25px #0006}.custom-range-picker-title{font-size:var(--font-size-sm);color:var(--color-gray-700);margin-bottom:var(--space-3);font-weight:600}.dark .custom-range-picker-title{color:var(--color-gray-200)}.custom-range-picker-fields{gap:var(--space-2);margin-bottom:var(--space-3);flex-direction:column;display:flex}.custom-range-label{font-size:var(--font-size-xs);color:var(--color-gray-500);flex-direction:column;gap:4px;font-weight:500;display:flex}.custom-range-input{border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);background:var(--color-white);color:var(--color-gray-800);width:100%;padding:8px 10px;transition:border-color .2s,box-shadow .2s}.custom-range-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #6366f126}.dark .custom-range-input{background:var(--color-gray-700);border-color:var(--color-gray-600);color:var(--color-gray-100)}.dark .custom-range-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f140}.custom-range-presets{margin-bottom:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-gray-100);flex-wrap:wrap;gap:6px;display:flex}.dark .custom-range-presets{border-top-color:var(--color-gray-700)}.custom-range-preset-btn{border:1px solid var(--color-gray-200);border-radius:var(--radius-full);background:var(--color-gray-50);color:var(--color-gray-600);font-size:11px;font-weight:500;font-family:var(--font-family);cursor:pointer;padding:4px 10px;transition:all .15s}.custom-range-preset-btn:hover{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.dark .custom-range-preset-btn{background:var(--color-gray-700);border-color:var(--color-gray-600);color:var(--color-gray-300)}.dark .custom-range-preset-btn:hover{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.custom-range-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.btn-sm{font-size:var(--font-size-xs);border-radius:var(--radius-md);padding:6px 16px}.overlay-metric-selector{align-items:center;gap:8px;display:flex}.overlay-metric-label{font-size:var(--font-size-xs);color:var(--color-gray-500);white-space:nowrap;align-items:center;gap:4px;font-weight:500;display:flex}.overlay-metric-select-wrap{align-items:center;display:flex;position:relative}.overlay-metric-dot{pointer-events:none;z-index:1;border-radius:50%;width:8px;height:8px;position:absolute;left:10px}.overlay-metric-select{border:1px solid var(--color-gray-300);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500;font-family:var(--font-family);background:var(--color-gray-50);color:var(--color-gray-700);cursor:pointer;appearance:auto;min-width:140px;padding:5px 12px 5px 24px;transition:all .2s}.overlay-metric-select:hover{border-color:var(--color-gray-400);background:var(--color-gray-100)}.overlay-metric-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #6366f126}.dark .overlay-metric-select{background:var(--color-gray-700);border-color:var(--color-gray-600);color:var(--color-gray-200)}.dark .overlay-metric-select:hover{background:var(--color-gray-600)}.metrics-row{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.charts-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));display:grid}.chart-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-4)}.dark .chart-card{background:var(--color-gray-800);border-color:var(--color-gray-700)}.chart-card-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.chart-card-title{font-size:var(--font-size-base);color:var(--color-gray-800);font-weight:600}.dark .chart-card-title{color:var(--color-gray-100)}.chart-card-subtitle{font-size:var(--font-size-xs);color:var(--color-gray-400)}.env-banner{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.dark .env-banner{background:var(--color-gray-800);border-color:var(--color-gray-700)}.env-banner-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.env-banner-title{font-size:var(--font-size-base);align-items:center;gap:var(--space-2);font-weight:600;display:flex}.env-banner-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.env-banner-item{text-align:center;padding:var(--space-3);background:var(--color-gray-50);border-radius:var(--radius-md);transition:transform .2s}.env-banner-item:hover{transform:scale(1.03)}.dark .env-banner-item{background:var(--color-gray-700)}.env-banner-item-label{font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1)}.env-banner-item-value{color:var(--color-gray-800);font-size:1.3rem;font-weight:700}.dark .env-banner-item-value{color:var(--color-gray-100)}.env-banner-item-unit{color:var(--color-gray-400);margin-left:2px;font-size:.65em;font-weight:400}.sailor-card-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.sailor-status-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-4);cursor:pointer;color:inherit;text-decoration:none;transition:all .2s;display:block}.sailor-status-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.dark .sailor-status-card{background:var(--color-gray-800);border-color:var(--color-gray-700)}.dark .sailor-status-card:hover{border-color:var(--color-primary)}.sailor-card-top{margin-bottom:var(--space-3);justify-content:space-between;align-items:flex-start;display:flex}.sailor-card-name{font-size:var(--font-size-base);font-weight:600}.sailor-card-role{font-size:var(--font-size-xs);color:var(--color-gray-500);margin-top:2px}.sailor-card-metrics{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.sailor-card-metric{font-size:var(--font-size-xs)}.sailor-card-metric-label{color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.sailor-card-metric-value{margin-top:2px;font-weight:600}.sailor-card-footer{padding-top:var(--space-2);margin-top:var(--space-3);border-top:1px solid var(--color-gray-200);font-size:var(--font-size-xs);color:var(--color-gray-400);justify-content:space-between;align-items:center;display:flex}.dark .sailor-card-footer{border-color:var(--color-gray-700)}.status-dot-inline{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot-inline.active{background:var(--color-success);animation:2s infinite statusPulse}.status-dot-inline.stale{background:var(--color-warning)}.status-dot-inline.unknown{background:var(--color-gray-400)}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.5}}.section-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--font-size-lg);font-weight:600}@media (width<=768px){.charts-grid{grid-template-columns:1fr}.metrics-row,.env-banner-grid{grid-template-columns:repeat(2,1fr)}.sailor-card-grid{grid-template-columns:1fr}}@media (width<=480px){.metrics-row{grid-template-columns:1fr}.env-banner-grid{grid-template-columns:1fr 1fr}}.data-table{margin-top:var(--space-3);overflow-x:auto}.data-table table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th{text-align:left;border-bottom:2px solid var(--color-gray-200);text-transform:uppercase;letter-spacing:.04em;color:var(--color-gray-500);padding:.6rem .75rem;font-size:.75rem;font-weight:600}.data-table td{border-bottom:1px solid var(--color-gray-100);vertical-align:middle;padding:.6rem .75rem}.data-table tbody tr:hover{background:var(--color-gray-50)}[data-theme=dark] .data-table th{border-bottom-color:var(--color-gray-700);color:var(--color-gray-400)}[data-theme=dark] .data-table td{border-bottom-color:var(--color-gray-800)}[data-theme=dark] .data-table tbody tr:hover{background:#ffffff08}.status-dot-inline{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot-inline.active{background:var(--color-success);box-shadow:0 0 4px #22c55e66}.status-dot-inline.offline{background:var(--color-gray-400)}.status-dot-inline.stale{background:var(--color-warning);box-shadow:0 0 4px #eab30866}.tabs-bar{gap:var(--space-1);border-bottom:2px solid var(--color-gray-200);margin-bottom:var(--space-4);margin-top:var(--space-3);display:flex;overflow-x:auto}.tab-btn{font-family:var(--font-family);color:var(--color-gray-500);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.6rem 1rem;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--color-primary)}.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}[data-theme=dark] .tabs-bar{border-bottom-color:var(--color-gray-700)}[data-theme=dark] .tab-btn{color:var(--color-gray-400)}[data-theme=dark] .tab-btn:hover,[data-theme=dark] .tab-btn.active{color:var(--color-primary)}.live-badge{color:#ef4444;letter-spacing:.05em;background:#ef44441a;border-radius:12px;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.7rem;font-weight:700;animation:2s ease-in-out infinite livePulse;display:inline-flex}@keyframes livePulse{0%,to{opacity:.7}50%{opacity:1}}.chart-loading-pulse{background:var(--color-primary);opacity:.3;border-radius:50%;width:48px;height:48px;margin:0 auto 1rem;animation:1.5s ease-in-out infinite healthPulse}@keyframes healthPulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:.5;transform:scale(1.2)}}[data-theme=dark] .chart-card{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .chart-card-title{color:var(--color-gray-200)}[data-theme=dark] .chart-card-subtitle{color:var(--color-gray-400)}[data-theme=dark] .env-banner{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .env-banner-title{color:var(--color-gray-200)}[data-theme=dark] .env-banner-item{border-color:var(--color-gray-700);background:#ffffff08}[data-theme=dark] .env-banner-item-value{color:var(--color-gray-100)}[data-theme=dark] .env-banner-item-unit,[data-theme=dark] .env-banner-item-label{color:var(--color-gray-400)}[data-theme=dark] .detail-card{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .detail-card h3{color:var(--color-gray-200)}[data-theme=dark] .detail-label{color:var(--color-gray-400)}[data-theme=dark] .detail-value{color:var(--color-gray-200)}[data-theme=dark] .metric-card{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .metric-card-label{color:var(--color-gray-400)}[data-theme=dark] select{background:var(--color-gray-800)!important;border-color:var(--color-gray-600)!important;color:var(--color-gray-200)!important}[data-theme=dark] select option{background:var(--color-gray-800);color:var(--color-gray-200)}[data-theme=dark] pre{color:var(--color-gray-300);background:var(--color-gray-900)!important}[data-theme=dark] .sailor-card{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .sailor-card-name{color:var(--color-gray-200)}[data-theme=dark] .empty-state h3{color:var(--color-gray-300)}[data-theme=dark] .empty-state p{color:var(--color-gray-400)}@media (width<=768px){.navbar-tab{padding:var(--space-2) var(--space-2);font-size:var(--font-size-xs);white-space:nowrap}.tabs-bar{gap:0}.tab-btn{padding:.5rem .6rem;font-size:.8rem}}.chart-toolbar{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;margin-bottom:var(--space-1);display:flex}.chart-toolbar-btn{border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-gray-600);cursor:pointer;font-size:.75rem;font-weight:500;font-family:var(--font-family);padding:4px 10px;transition:all .15s}.chart-toolbar-btn:hover{background:var(--color-gray-50);border-color:var(--color-primary);color:var(--color-primary)}.chart-toolbar-hint{color:var(--color-gray-400);margin-left:auto;font-size:.7rem;font-style:italic}[data-theme=dark] .chart-toolbar-btn{background:var(--color-gray-800);border-color:var(--color-gray-600);color:var(--color-gray-300)}[data-theme=dark] .chart-toolbar-btn:hover{background:var(--color-gray-700);border-color:var(--color-primary);color:var(--color-primary)}.toast-container{top:60px;right:var(--space-4);z-index:10000;gap:var(--space-2);pointer-events:none;flex-direction:column;max-width:380px;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-white);border:1px solid var(--color-gray-200);pointer-events:all;cursor:pointer;transition:opacity .2s,transform .2s;animation:.3s ease-out toastSlideIn;display:flex;box-shadow:0 8px 24px #00000026}.toast:hover{transform:translate(-4px)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-icon{flex-shrink:0;font-size:1.2rem;line-height:1}.toast-body{flex:1;min-width:0}.toast-title{font-size:.85rem;font-weight:600;line-height:1.3}.toast-message{color:var(--color-gray-500);margin-top:2px;font-size:.78rem;line-height:1.4}.toast-close{color:var(--color-gray-400);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:1.2rem;line-height:1}.toast-close:hover{color:var(--color-gray-700)}.toast-info{border-left:3px solid var(--color-primary)}.toast-success{border-left:3px solid var(--color-success)}.toast-warning{border-left:3px solid var(--color-warning);background:#fefce8}.toast-error{border-left:3px solid var(--color-error);background:#fef2f2}[data-theme=dark] .toast{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .toast-title{color:var(--color-gray-200)}[data-theme=dark] .toast-message{color:var(--color-gray-400)}[data-theme=dark] .toast-warning{background:#f59e0b1a}[data-theme=dark] .toast-error{background:#ef44441a}.export-btn{border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-gray-500);cursor:pointer;font-size:.75rem;font-weight:500;font-family:var(--font-family);align-items:center;gap:4px;padding:4px 10px;transition:all .15s;display:inline-flex}.export-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#6366f10d}[data-theme=dark] .export-btn{background:var(--color-gray-800);border-color:var(--color-gray-600);color:var(--color-gray-400)}[data-theme=dark] .export-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.global-search{margin-left:auto;margin-right:var(--space-2);position:relative}.global-search-input-wrap{border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background:var(--color-gray-50);align-items:center;gap:6px;padding:5px 10px;transition:all .15s;display:flex}.global-search-input-wrap:focus-within{border-color:var(--color-primary);background:var(--color-white);box-shadow:0 0 0 3px #6366f11f}.global-search-input{font-size:.8rem;font-family:var(--font-family);width:160px;color:var(--color-text);background:0 0;border:none;outline:none}.global-search-input::placeholder{color:var(--color-gray-400)}.global-search-dropdown{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);z-index:9999;min-width:320px;animation:.15s ease-out searchDropIn;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 12px 32px #0000001f}@keyframes searchDropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.global-search-item{align-items:center;gap:var(--space-2);cursor:pointer;padding:8px 12px;font-size:.85rem;transition:background .1s;display:flex}.global-search-item:hover,.global-search-item.selected{background:#6366f10f}.global-search-item.loading,.global-search-item.empty{color:var(--color-gray-400);cursor:default;font-style:italic}.global-search-icon{flex-shrink:0;font-size:1.1rem}.global-search-text{flex-direction:column;flex:1;min-width:0;display:flex}.global-search-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.global-search-subtitle{color:var(--color-gray-400);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.global-search-type{text-transform:uppercase;letter-spacing:.5px;color:var(--color-gray-400);background:var(--color-gray-100);border-radius:var(--radius-sm);flex-shrink:0;padding:2px 6px;font-size:.65rem}[data-theme=dark] .global-search-input-wrap{background:var(--color-gray-800);border-color:var(--color-gray-600)}[data-theme=dark] .global-search-input-wrap:focus-within{background:var(--color-gray-700)}[data-theme=dark] .global-search-input{color:var(--color-gray-200)}[data-theme=dark] .global-search-dropdown{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .global-search-item:hover,[data-theme=dark] .global-search-item.selected{background:#6366f126}[data-theme=dark] .global-search-type{background:var(--color-gray-700);color:var(--color-gray-400)}.settings-grid{gap:var(--space-4);grid-template-columns:1fr;max-width:700px;display:grid}.settings-row{padding:var(--space-3) 0;border-bottom:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;display:flex}.settings-row:last-child{border-bottom:none}.settings-label{flex-direction:column;gap:2px;display:flex}.settings-title{font-size:.9rem;font-weight:500}.settings-desc{color:var(--color-gray-400);font-size:.78rem}.settings-control{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.settings-control select,.settings-control input{border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font-family);background:var(--color-white);padding:6px 10px}.settings-unit{color:var(--color-gray-400);font-size:.8rem}.theme-switch{align-items:center;gap:var(--space-2);cursor:pointer;font-family:var(--font-family);color:var(--color-text);background:0 0;border:none;font-size:.85rem;display:flex}.theme-switch-track{background:var(--color-gray-300);border-radius:11px;width:40px;height:22px;transition:background .2s;position:relative}.theme-switch.dark .theme-switch-track{background:var(--color-primary)}.theme-switch-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.theme-switch.dark .theme-switch-thumb{transform:translate(18px)}[data-theme=dark] .settings-row{border-color:var(--color-gray-700)}[data-theme=dark] .settings-control select,[data-theme=dark] .settings-control input{background:var(--color-gray-800);border-color:var(--color-gray-600);color:var(--color-gray-200)}@media (width<=768px){.global-search{display:none}}.heatmap-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.heatmap-cell{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-white);border:1px solid var(--color-gray-200);cursor:pointer;transition:all .2s;position:relative;overflow:hidden}.heatmap-cell:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.heatmap-cell.alert{border-color:#ef4444;animation:2s ease-in-out infinite heatAlertPulse}@keyframes heatAlertPulse{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 8px 2px #ef444440}}.heatmap-cell.offline{opacity:.5}.heatmap-cell-indicator{border-radius:var(--radius-md) 0 0 var(--radius-md);width:4px;height:100%;position:absolute;top:0;left:0}.heatmap-cell-name{text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-size:.78rem;font-weight:500;overflow:hidden}.heatmap-cell-value{font-size:1.2rem;font-weight:700;line-height:1.2}.heatmap-cell-age{color:var(--color-gray-400);align-items:center;gap:4px;margin-top:4px;font-size:.65rem;display:flex}[data-theme=dark] .heatmap-cell{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .heatmap-cell:hover{box-shadow:0 4px 12px #0000004d}.pulse-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.5s ease-in-out infinite pulseDot;display:inline-block}@keyframes pulseDot{0%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}to{opacity:1;transform:scale(1)}}.data-freshness{color:var(--color-gray-400);border-radius:var(--radius-sm);background:#22c55e14;align-items:center;gap:6px;padding:3px 8px;font-size:.75rem;display:inline-flex}[data-theme=dark] .data-freshness{background:#22c55e1f}.delivery-badge{border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;gap:4px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.delivery-badge.applied{color:var(--color-success);background:#22c55e1f}.delivery-badge.pending{color:var(--color-primary);background:#6366f11f}.delivery-badge.offline{color:var(--color-warning);background:#f59e0b1f}.delivery-badge.rejected{color:var(--color-error);background:#ef44441f}.delivery-tracker .card{border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background:var(--color-white);transition:box-shadow .2s;overflow:hidden}.delivery-tracker .card:hover{box-shadow:var(--shadow-sm)}.btn-ghost{border:1px solid var(--color-gray-300);color:var(--color-gray-500);cursor:pointer;border-radius:var(--radius-md);font-family:var(--font-family);background:0 0;transition:background .15s,color .15s}.btn-ghost:hover{background:var(--color-gray-100);color:var(--color-gray-700)}.loading-spinner{border:2px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;width:20px;height:20px;margin-right:8px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;display:flex}.form-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-gray-900);background:var(--color-white);outline:none;line-height:1.5;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e51a}.form-input::placeholder{color:var(--color-gray-400)}.form-input:disabled{background:var(--color-gray-100);color:var(--color-gray-500);cursor:not-allowed}textarea.form-input{resize:vertical;min-height:80px}select.form-input{cursor:pointer;appearance:auto}.modal-overlay .card{width:100%;max-width:520px;margin:var(--space-4);animation:.2s modalSlideIn;box-shadow:0 20px 60px #0000004d}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.badge{font-size:var(--font-size-xs);border-radius:var(--radius-full);color:var(--color-gray-600);background:var(--color-gray-100);align-items:center;padding:2px 8px;font-weight:500;display:inline-flex}.badge-success{color:#166534;background:#dcfce7}.badge-warning{color:#92400e;background:#fef3c7}[data-theme=dark] .card{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .card-header{border-bottom-color:var(--color-gray-700)}[data-theme=dark] .form-input::placeholder{color:var(--color-gray-500)}[data-theme=dark] .form-input:disabled{background:var(--color-gray-800);color:var(--color-gray-500)}[data-theme=dark] .modal-overlay{background:#000000b3}[data-theme=dark] .modal-overlay .card{box-shadow:0 20px 60px #00000080}[data-theme=dark] .badge{color:var(--color-gray-300);background:var(--color-gray-700)}[data-theme=dark] .badge-success{color:#86efac;background:#22c55e26}[data-theme=dark] .badge-warning{color:#fcd34d;background:#eab30826}.wearable-management{width:100%}.wearable-management .section-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.wearable-management .section-header h3{margin:0;font-size:1.15rem;font-weight:600}.wearable-management .data-table{width:100%;overflow-x:auto}.wearable-management table{border-collapse:collapse;width:100%}.wearable-management th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-gray-500);border-bottom:1px solid var(--color-gray-200);padding:.75rem 1rem;font-size:.75rem;font-weight:600}.wearable-management td{border-bottom:1px solid var(--color-gray-100);padding:.75rem 1rem;font-size:.875rem}.wearable-management tr:hover td{background:var(--color-gray-50)}.wearable-management .row-inactive td{opacity:.5}.wearable-management .font-mono{font-family:SF Mono,Monaco,Consolas,monospace;font-size:.8rem}.wearable-management .subject-id{background:var(--color-primary-50,#eef2ff);color:var(--color-primary-600,#4f46e5);border-radius:4px;margin-right:.35rem;padding:.1rem .4rem;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.7rem;font-weight:700;display:inline-block}.wearable-management .assigned-user{align-items:center;gap:.25rem;display:flex}.wearable-management .actions-cell{white-space:nowrap}.wearable-management .badge-blue{color:#3b82f6;background:#3b82f61f}.wearable-management .badge-gray{color:#6b7280;background:#6b72801f}.wearable-management .badge-purple{color:#8b5cf6;background:#8b5cf61f}.wearable-management .badge{text-transform:capitalize;border-radius:10px;padding:.15rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.wearable-management .empty-state{text-align:center;color:var(--color-gray-500);padding:3rem 2rem}.wearable-management .empty-state p:first-child{margin-bottom:.5rem;font-weight:600}.wearable-management .loading-text{text-align:center;color:var(--color-gray-500);padding:2rem}.wearable-management .alert{border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.wearable-management .alert-error{color:#dc2626;background:#ef44441a;border:1px solid #ef444433}.wearable-management .btn-close{cursor:pointer;color:inherit;background:0 0;border:none;font-size:1.1rem}.wearable-management .btn-sm{padding:.35rem .75rem;font-size:.8rem}.wearable-management .btn-xs{padding:.2rem .4rem;font-size:.75rem;line-height:1}.wearable-management .btn-ghost{cursor:pointer;background:0 0;border:none;border-radius:4px;transition:background .15s}.wearable-management .btn-ghost:hover{background:var(--color-gray-100)}.wearable-management .btn-danger:hover{background:#ef44441a}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface,#fff);border-radius:16px;min-width:380px;max-width:480px;padding:2rem;animation:.2s slideUp;box-shadow:0 25px 50px -12px #00000040}.modal-content h3{margin:0 0 1.5rem;font-size:1.1rem;font-weight:600}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.form-group{margin-bottom:1rem}.form-group label{color:var(--color-gray-600);margin-bottom:.35rem;font-size:.8rem;font-weight:600;display:block}.form-input{border:1px solid var(--color-gray-300);background:var(--color-surface,#fff);width:100%;color:var(--color-text,#111);border-radius:8px;padding:.6rem .75rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--color-primary,#6366f1);outline:none;box-shadow:0 0 0 3px #6366f11f}.assign-user-list{flex-direction:column;gap:.5rem;max-height:300px;display:flex;overflow-y:auto}.assign-user-item{background:var(--color-gray-50);border:1px solid var(--color-gray-200);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;transition:all .15s;display:flex}.assign-user-item:hover{background:var(--color-primary-50,#eef2ff);border-color:var(--color-primary-300,#a5b4fc);box-shadow:0 2px 8px #6366f11a}.assign-user-item .subject-id{background:var(--color-primary-100,#e0e7ff);color:var(--color-primary-700,#4338ca);text-align:center;border-radius:6px;min-width:2.5rem;padding:.15rem .5rem;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.75rem;font-weight:700;display:inline-block}.assign-user-item .user-name{font-size:.875rem;font-weight:600}.assign-user-item .user-email{color:var(--color-gray-500);margin-left:auto;font-size:.75rem}.assign-user-item.assign-user-disabled{opacity:.5;cursor:not-allowed;background:var(--color-gray-100)}.assign-user-item.assign-user-disabled:hover{background:var(--color-gray-100);border-color:var(--color-gray-200);box-shadow:none}.badge-yellow{color:#92400e;background:#eab30826;margin-left:auto}[data-theme=dark] .wearable-management th{border-color:var(--color-gray-700);color:var(--color-gray-400)}[data-theme=dark] .wearable-management td{border-color:var(--color-gray-800)}[data-theme=dark] .wearable-management tr:hover td{background:var(--color-gray-800)}[data-theme=dark] .wearable-management .subject-id{color:#a5b4fc;background:#6366f126}[data-theme=dark] .wearable-management .btn-ghost:hover{background:var(--color-gray-800)}[data-theme=dark] .modal-content{background:var(--color-gray-900);border:1px solid var(--color-gray-700)}[data-theme=dark] .form-input{background:var(--color-gray-800);border-color:var(--color-gray-600);color:var(--color-gray-100)}[data-theme=dark] .form-input:focus{border-color:#818cf8;box-shadow:0 0 0 3px #818cf826}[data-theme=dark] .assign-user-item{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .assign-user-item:hover{background:#6366f11a;border-color:#818cf84d}[data-theme=dark] .assign-user-item .subject-id{color:#c4b5fd;background:#6366f133}[data-theme=dark] .assign-user-item.assign-user-disabled{background:var(--color-gray-800);opacity:.4}[data-theme=dark] .assign-user-item.assign-user-disabled:hover{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .badge-yellow{color:#fbbf24;background:#eab30826}.protocol-builder .page-header{gap:var(--space-3);flex-wrap:wrap}.pb-label{font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-weight:600;display:block}.pb-section .card-header{padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;display:flex}.pb-metric-card{border:1px solid var(--color-gray-200);border-radius:var(--radius-lg)}.pb-metric-card .card-header{background:var(--color-gray-50)}.zone-editor{gap:var(--space-1);flex-direction:column;display:flex}.zone-header-row{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em;font-weight:600;display:flex}.zone-row{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-gray-50);transition:background .15s;display:flex}.zone-row:hover{background:var(--color-gray-100)}.zone-col-grip{flex-shrink:0;align-items:center;width:20px;display:flex}.zone-col-name{flex:1.5;min-width:100px}.zone-col-range{flex-shrink:0;width:80px}.zone-col-severity{flex-shrink:0;width:100px}.zone-col-color{flex-shrink:0;width:36px}.zone-col-message{flex:2;min-width:120px}.zone-col-actions{flex-shrink:0;width:84px}.protocol-list{flex-direction:column;gap:2px;display:flex}.protocol-list-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;transition:background .15s,border-color .15s;display:flex}.protocol-list-item:hover{background:var(--color-gray-100)}.protocol-list-item--selected{background:#ebf5ff;border-color:#9cf}.zone-drag-handle{cursor:grab;color:var(--color-gray-400);touch-action:none;transition:color .15s}.zone-drag-handle:hover{color:var(--color-gray-600)}.zone-drag-handle:active{cursor:grabbing}.zone-row-dragging{opacity:.5;background:var(--color-gray-100)!important}.zone-row-drop-target{box-shadow:0 -2px 0 0 var(--color-primary)}.zone-row-btns{align-items:center;gap:2px;display:flex}.zone-btn-sm{min-width:0!important;padding:3px 5px!important;line-height:1!important}.zone-row .form-input{font-size:var(--font-size-xs);padding:4px 8px}.zone-bar{border-radius:var(--radius-md);height:28px;margin-top:var(--space-2);display:flex;overflow:hidden}.zone-bar-segment{justify-content:center;align-items:center;min-width:20px;transition:filter .15s;display:flex;position:relative}.zone-bar-segment:hover{filter:brightness(1.1);z-index:1}.zone-bar-label{color:#fff;text-shadow:0 1px 2px #0000004d;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;font-size:.65rem;font-weight:600;overflow:hidden}.escalation-level{padding:var(--space-3);margin-bottom:var(--space-2);border-radius:var(--radius-md);background:var(--color-gray-50)}.escalation-actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.action-chip{cursor:pointer;align-items:center;display:inline-flex}.action-chip input[type=checkbox]{display:none}.action-chip-label{font-size:var(--font-size-xs);border:1px solid var(--color-gray-300);border-radius:var(--radius-full);color:var(--color-gray-500);background:var(--color-white);-webkit-user-select:none;user-select:none;padding:4px 10px;font-weight:500;transition:all .15s}.action-chip-label:hover{border-color:var(--color-primary);color:var(--color-primary)}.action-chip-label.active{border-color:var(--color-primary);color:var(--color-primary);background:#4f46e514;font-weight:600}.protocol-preview{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-4)}.preview-metric{margin-bottom:var(--space-3)}.preview-metric-header{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);margin-bottom:var(--space-1);display:flex}.overlay-editor{gap:var(--space-3);flex-direction:column;display:flex}.overlay-card{border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background:var(--color-white);overflow:hidden}.overlay-card-header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-gray-100);background:linear-gradient(135deg,#f59e0b0f,#ef44440a);display:flex}.overlay-section{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-gray-100)}.overlay-section:last-of-type{border-bottom:none}.overlay-condition-row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.overlay-condition-row .form-input{font-size:var(--font-size-xs);padding:4px 8px}.overlay-effect-row{align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-gray-50);display:flex}.overlay-effect-field{flex-direction:column;gap:2px;display:flex}.overlay-effect-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-gray-500);font-size:.65rem;font-weight:600}.overlay-effect-field .form-input{font-size:var(--font-size-xs);padding:4px 8px}.overlay-modifier-group{align-items:center;gap:var(--space-2);display:flex}.overlay-slider{width:100px;accent-color:var(--color-primary);cursor:pointer;height:4px}.overlay-modifier-badge{border-radius:var(--radius-full);min-width:40px;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;background:var(--color-gray-100);color:var(--color-gray-600);justify-content:center;align-items:center;padding:2px 8px;font-weight:600;display:inline-flex}.overlay-modifier-badge.modifier-lower{color:#dc2626;background:#ef44441a}.overlay-modifier-badge.modifier-raise{color:#16a34a;background:#22c55e1a}.overlay-preview{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-gray-50);border-top:1px solid var(--color-gray-100);display:flex}.overlay-preview-pill{font-size:var(--font-size-xs);color:var(--color-gray-700);word-break:break-all;font-family:SF Mono,Fira Code,monospace}.badge-error{color:#dc2626;background:#ef44441a}.badge-watch{color:#ca8a04;background:#eab3081a}[data-theme=dark] .protocol-preview{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .zone-row{background:var(--color-gray-800)}[data-theme=dark] .zone-row:hover{background:var(--color-gray-700)}[data-theme=dark] .escalation-level{background:var(--color-gray-800)}[data-theme=dark] .action-chip-label{background:var(--color-gray-800);border-color:var(--color-gray-600);color:var(--color-gray-400)}[data-theme=dark] .action-chip-label.active{color:#a5b4fc;background:#6366f126;border-color:#818cf8}[data-theme=dark] .pb-metric-card .card-header{background:var(--color-gray-800)}[data-theme=dark] .pb-metric-card{border-color:var(--color-gray-700)}[data-theme=dark] .badge-error{color:#fca5a5;background:#ef444426}[data-theme=dark] .badge-watch{color:#fde047;background:#eab30826}[data-theme=dark] .zone-row-dragging{background:var(--color-gray-700)!important}[data-theme=dark] .zone-drag-handle:hover{color:var(--color-gray-300)}[data-theme=dark] .protocol-list-item:hover{background:var(--color-gray-700)}[data-theme=dark] .protocol-list-item--selected{background:#1f3347;border-color:#2966a3}[data-theme=dark] .overlay-card{border-color:var(--color-gray-700);background:var(--color-gray-800)}[data-theme=dark] .overlay-card-header{border-color:var(--color-gray-700);background:linear-gradient(135deg,#f59e0b14,#ef44440f)}[data-theme=dark] .overlay-section{border-color:var(--color-gray-700)}[data-theme=dark] .overlay-effect-row{background:var(--color-gray-750,#1e293b)}[data-theme=dark] .overlay-modifier-badge{background:var(--color-gray-700);color:var(--color-gray-300)}[data-theme=dark] .overlay-modifier-badge.modifier-lower{color:#fca5a5;background:#ef444426}[data-theme=dark] .overlay-modifier-badge.modifier-raise{color:#86efac;background:#22c55e26}[data-theme=dark] .overlay-preview{background:var(--color-gray-750,#1e293b);border-color:var(--color-gray-700)}[data-theme=dark] .overlay-preview-pill{color:var(--color-gray-300)}.config-tree-root{gap:var(--space-3);flex-direction:column;display:flex}.config-tree-branch{border-radius:var(--radius-lg);overflow:hidden}.config-tree-branch.depth-0{background:var(--color-white);border:1px solid var(--color-gray-200)}.config-tree-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 16px;transition:background .15s;display:flex}.config-tree-header:hover{background:#00000005}.depth-0>.config-tree-header{font-weight:600;font-size:var(--font-size-base,.9rem);padding:14px 20px}.depth-1>.config-tree-header{font-weight:500;font-size:var(--font-size-sm,.82rem);color:var(--color-text-secondary,var(--color-gray-600))}.depth-2>.config-tree-header{font-weight:500;font-size:var(--font-size-xs,.75rem);color:var(--color-text-tertiary,var(--color-gray-500))}.config-tree-icon{color:var(--color-primary,#6366f1);opacity:.8;flex-shrink:0;align-items:center;display:flex}.config-tree-label{flex:1}.config-tree-count{color:var(--color-gray-400);margin-left:2px;font-size:.72rem;font-weight:400}.config-tree-chevron{color:var(--color-gray-400);flex-shrink:0;transition:transform .15s}.config-tree-children{border-left:2px solid var(--color-gray-200);margin-left:18px;padding-left:0}.depth-0>.config-tree-children{border-left:none;margin-left:0;padding-left:0}.config-tree-leaves{width:100%}.config-tree-leaves td:first-child,.config-tree-leaves th:first-child{padding-left:20px}.config-tree-key-short{font-size:.75rem;font-family:var(--font-mono,"SF Mono", monospace);background:var(--color-gray-100);cursor:help;border-radius:4px;padding:2px 6px}[data-theme=dark] .config-tree-branch.depth-0{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .config-tree-header:hover{background:#ffffff0a}[data-theme=dark] .config-tree-children{border-left-color:var(--color-gray-700)}[data-theme=dark] .config-tree-key-short{background:var(--color-gray-700)}.session-expired-banner{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-md);background:linear-gradient(135deg,#eab30814 0%,#fbbf241f 100%);border:1px solid #eab30840;animation:.35s ease-out bannerSlideIn;display:flex}.session-expired-banner svg{color:#d97706;flex-shrink:0;margin-top:2px}.session-expired-banner strong{font-size:var(--font-size-sm);color:#92400e;margin-bottom:2px;font-weight:600;display:block}.session-expired-banner span{font-size:var(--font-size-xs);color:#a16207;line-height:1.4;display:block}@keyframes bannerSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.error-page-container{background:var(--color-gray-50);min-height:100vh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.error-page-card{text-align:center;width:100%;max-width:480px;padding:var(--space-8)}.error-page-icon{border-radius:var(--radius-full);width:72px;height:72px;margin-bottom:var(--space-5);justify-content:center;align-items:center;animation:2s ease-in-out infinite errorIconPulse;display:inline-flex}.error-page-icon--404{color:var(--color-primary);background:linear-gradient(135deg,#4f46e51a 0%,#8b5cf626 100%)}.error-page-icon--500{color:var(--color-error);background:linear-gradient(135deg,#ef44441a 0%,#ec48991f 100%)}@keyframes errorIconPulse{0%,to{transform:scale(1);box-shadow:0 0 #4f46e51a}50%{transform:scale(1.05);box-shadow:0 0 0 12px #4f46e500}}.error-page-code{letter-spacing:-2px;background:linear-gradient(135deg, var(--color-primary) 0%, #8b5cf6 50%, #ec4899 100%);-webkit-text-fill-color:transparent;margin-bottom:var(--space-3);-webkit-background-clip:text;background-clip:text;font-size:4rem;font-weight:800;line-height:1}.error-page-title{font-size:var(--font-size-2xl);color:var(--color-gray-900);margin-bottom:var(--space-3);font-weight:700}.error-page-message{font-size:var(--font-size-sm);color:var(--color-gray-500);margin-bottom:var(--space-6);max-width:380px;margin-left:auto;margin-right:auto;line-height:1.6}.error-page-actions{gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;justify-content:center;display:flex}.error-page-actions .btn{padding:var(--space-2) var(--space-5)}.error-page-hint{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-gray-400);padding:var(--space-2) var(--space-3);background:var(--color-gray-100);border-radius:var(--radius-full);display:inline-flex}.error-page-details{text-align:left;margin:0 auto var(--space-5);background:var(--color-gray-100);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);max-width:420px;overflow:hidden}.error-page-details summary{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);color:var(--color-gray-500);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500}.error-page-details summary:hover{color:var(--color-gray-700);background:var(--color-gray-50)}.error-page-details pre{padding:var(--space-3);color:var(--color-error);white-space:pre-wrap;word-break:break-word;border-top:1px solid var(--color-gray-200);max-height:200px;margin:0;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.7rem;overflow:auto}.error-page-stack{color:var(--color-gray-500)!important;font-size:.65rem!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .session-expired-banner{background:linear-gradient(135deg,#eab3080f 0%,#fbbf2414 100%);border-color:#eab30833}:root:not([data-theme=light]) .session-expired-banner strong{color:#fcd34d}:root:not([data-theme=light]) .session-expired-banner span{color:#fde68a}:root:not([data-theme=light]) .session-expired-banner svg{color:#fbbf24}}[data-theme=dark] .session-expired-banner{background:linear-gradient(135deg,#eab3080f 0%,#fbbf2414 100%);border-color:#eab30833}[data-theme=dark] .session-expired-banner strong{color:#fcd34d}[data-theme=dark] .session-expired-banner span{color:#fde68a}[data-theme=dark] .session-expired-banner svg{color:#fbbf24}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .error-page-container{background:var(--color-gray-50)}:root:not([data-theme=light]) .error-page-details{background:var(--color-gray-100);border-color:var(--color-gray-200)}:root:not([data-theme=light]) .error-page-details pre{border-top-color:var(--color-gray-200)}}[data-theme=dark] .error-page-container{background:var(--color-gray-50)}[data-theme=dark] .error-page-details{background:var(--color-gray-100);border-color:var(--color-gray-200)}[data-theme=dark] .error-page-details pre{border-top-color:var(--color-gray-200)}.wizard-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.2s ease-out wizardFadeIn;display:flex;position:fixed;inset:0}@keyframes wizardFadeIn{0%{opacity:0}to{opacity:1}}.wizard-modal{background:var(--color-white);border-radius:var(--radius-xl,16px);width:min(560px,100vw - 2rem);max-height:calc(100vh - 4rem);animation:.3s ease-out wizardSlideUp;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}@keyframes wizardSlideUp{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.wizard-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;display:flex}.wizard-header h2{font-size:var(--font-size-lg);margin:0;font-weight:700}.wizard-close{color:var(--color-gray-400);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;padding:4px 8px;font-size:1.2rem;transition:all .15s}.wizard-close:hover{background:var(--color-gray-100);color:var(--color-gray-700)}.wizard-steps{padding:var(--space-4) var(--space-6);justify-content:center;align-items:center;gap:0;display:flex}.wizard-step{align-items:center;gap:var(--space-2);display:flex}.wizard-step-number{border-radius:var(--radius-full);background:var(--color-gray-200);width:28px;height:28px;color:var(--color-gray-500);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;transition:all .3s;display:flex}.wizard-step.active .wizard-step-number{background:var(--color-primary);color:#fff;box-shadow:0 0 0 4px #6366f126}.wizard-step.done .wizard-step-number{background:var(--color-success,#10b981);color:#fff}.wizard-step-label{font-size:var(--font-size-xs);color:var(--color-gray-400);font-weight:500;transition:color .2s}.wizard-step.active .wizard-step-label{color:var(--color-gray-700)}.wizard-step.done .wizard-step-label{color:var(--color-success,#10b981)}.wizard-step-connector{background:var(--color-gray-200);width:40px;height:2px;margin:0 var(--space-2);border-radius:1px;transition:background .3s}.wizard-step.done+.wizard-step .wizard-step-connector,.wizard-step.done .wizard-step-connector{background:var(--color-success,#10b981)}.wizard-body{padding:var(--space-4) var(--space-6) var(--space-6)}.wizard-body .form-group{margin-bottom:var(--space-4)}.wizard-body .form-group label{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-gray-700);margin-bottom:var(--space-1);font-weight:600;display:flex}.wizard-body .form-group input,.wizard-body .form-group textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-white);color:var(--color-gray-900);transition:border-color .15s,box-shadow .15s}.wizard-body .form-group input:focus,.wizard-body .form-group textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #6366f11a}.form-hint{font-size:var(--font-size-xs);color:var(--color-gray-400);font-weight:400}.wizard-review-card{text-align:center;padding:var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-lg);background:linear-gradient(135deg,#6366f10a,#8b5cf60f);border:1px solid #6366f11f}.wizard-review-card h3{font-size:var(--font-size-xl);margin:0 0 var(--space-1);color:var(--color-gray-900);font-weight:700}.wizard-review-slug{font-size:var(--font-size-sm);color:var(--color-gray-500)}.wizard-resources{margin-bottom:var(--space-4)}.wizard-resources h4{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-gray-500);margin:0 0 var(--space-3);font-weight:600}.wizard-resource-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-gray-100);display:flex}.wizard-resource-item:last-child{border-bottom:none}.wizard-resource-icon{flex-shrink:0;margin-top:1px;font-size:1.2rem}.wizard-resource-label{font-size:var(--font-size-sm);color:var(--color-gray-700);margin-bottom:2px;font-weight:500}.wizard-resource-item code{font-size:var(--font-size-xs);color:var(--color-gray-500);background:var(--color-gray-100);border-radius:4px;padding:1px 6px}.wizard-note{font-size:var(--font-size-xs);color:var(--color-gray-400);text-align:center;margin:var(--space-3) 0}.wizard-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-gray-100);display:flex}.wizard-error{border-radius:var(--radius-md);padding:var(--space-3);font-size:var(--font-size-sm);color:#dc2626;background:#ef44440f;border:1px solid #ef444433}.wizard-provisioning-status{text-align:center;padding:var(--space-6) 0}.wizard-spinner{border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);width:40px;height:40px;margin:0 auto var(--space-3);border-radius:50%;animation:.8s linear infinite wizardSpin}@keyframes wizardSpin{to{transform:rotate(360deg)}}.wizard-checklist{gap:var(--space-2);flex-direction:column;display:flex}.wizard-check-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background .2s;animation:.3s ease-out checkSlideIn;display:flex}@keyframes checkSlideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.wizard-check-item.done{background:#10b9810f}.wizard-check-item.error{background:#ef44440f}.wizard-check-item.pending{color:var(--color-gray-400)}.wizard-check-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;font-weight:700;display:flex}.wizard-check-item.done .wizard-check-icon{background:var(--color-success,#10b981);color:#fff}.wizard-check-item.error .wizard-check-icon{background:var(--color-error,#ef4444);color:#fff}.wizard-check-item.pending .wizard-check-icon{background:var(--color-gray-200);color:var(--color-gray-400)}.wizard-check-error{font-size:var(--font-size-xs);color:#dc2626;margin-left:auto}.wizard-success{text-align:center;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-gray-100)}.wizard-success-icon{margin-bottom:var(--space-2);font-size:3rem;animation:.5s wizardBounce}@keyframes wizardBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.wizard-success h3{font-size:var(--font-size-lg);color:var(--color-gray-900);margin:0 0 var(--space-2);font-weight:700}.wizard-success p{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0 0 var(--space-4)}.readiness-card{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-white);border:1px solid var(--color-gray-200)}.readiness-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.readiness-header h3{font-size:var(--font-size-base);margin:0;font-weight:700}.readiness-progress{background:var(--color-gray-200);height:8px;margin-bottom:var(--space-4);border-radius:4px;position:relative;overflow:hidden}.readiness-progress-bar{border-radius:4px;height:100%;transition:width .5s}.readiness-progress-bar.status-ready{background:linear-gradient(90deg,#10b981,#34d399)}.readiness-progress-bar.status-setup{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.readiness-progress-bar.status-provisioning{background:linear-gradient(90deg,#6366f1,#8b5cf6)}.readiness-progress-bar.status-error{background:linear-gradient(90deg,#ef4444,#f87171)}.readiness-score{font-size:var(--font-size-sm);color:var(--color-gray-600);font-weight:600}.readiness-checks{gap:var(--space-1);flex-direction:column;display:flex}.readiness-check{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background .15s;display:flex}.readiness-check:hover{background:var(--color-gray-50)}.readiness-check-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.65rem;font-weight:700;display:flex}.readiness-check-icon.done{color:#10b981;background:#10b9811f}.readiness-check-icon.pending{background:var(--color-gray-100);color:var(--color-gray-400)}.readiness-check-label{font-size:var(--font-size-sm);flex:1;font-weight:500}.readiness-check.done .readiness-check-label{color:var(--color-gray-600)}.readiness-check.pending .readiness-check-label{color:var(--color-gray-500)}.readiness-check-detail{font-size:var(--font-size-xs);color:var(--color-gray-400)}.readiness-check-action{font-size:var(--font-size-xs);border-radius:var(--radius-full);color:var(--color-primary);cursor:pointer;background:#6366f114;border:none;padding:2px 8px;font-weight:500;transition:background .15s}.readiness-check-action:hover{background:#6366f126}.readiness-category{text-transform:uppercase;letter-spacing:.06em;color:var(--color-gray-400);padding:var(--space-2) var(--space-3) var(--space-1);margin-top:var(--space-2);font-size:.65rem;font-weight:600}.readiness-category:first-child{margin-top:0}.prov-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);align-items:center;gap:4px;padding:2px 10px;font-weight:600;display:inline-flex}.prov-badge-ready{color:#059669;background:#10b9811a}.prov-badge-provisioning{color:#4f46e5;background:#6366f11a}.prov-badge-pending{background:var(--color-gray-100);color:var(--color-gray-500)}.prov-badge-error{color:#dc2626;background:#ef44441a}.prov-badge-dot{border-radius:50%;width:6px;height:6px}.prov-badge-ready .prov-badge-dot{background:#10b981}.prov-badge-provisioning .prov-badge-dot{background:#6366f1;animation:1.5s infinite provPulse}.prov-badge-pending .prov-badge-dot{background:var(--color-gray-400)}.prov-badge-error .prov-badge-dot{background:#ef4444}@keyframes provPulse{0%,to{opacity:1}50%{opacity:.3}}.resource-info-card{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.resource-info-item{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);background:var(--color-gray-50);border-radius:var(--radius-md);display:flex}.resource-info-item code{font-size:var(--font-size-xs);color:var(--color-gray-600);word-break:break-all}.resource-info-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-gray-400);margin-bottom:2px;font-size:.65rem;font-weight:600}[data-theme=dark] .wizard-modal{background:var(--color-gray-800)}[data-theme=dark] .wizard-header{border-bottom-color:var(--color-gray-700)}[data-theme=dark] .wizard-close:hover{background:var(--color-gray-700);color:var(--color-gray-200)}[data-theme=dark] .wizard-step-number{background:var(--color-gray-700);color:var(--color-gray-400)}[data-theme=dark] .wizard-step-connector{background:var(--color-gray-700)}[data-theme=dark] .wizard-body .form-group input,[data-theme=dark] .wizard-body .form-group textarea{background:var(--color-gray-700);border-color:var(--color-gray-600);color:var(--color-gray-100)}[data-theme=dark] .wizard-review-card{background:linear-gradient(135deg,#6366f114,#8b5cf61a);border-color:#6366f133}[data-theme=dark] .wizard-resource-item{border-bottom-color:var(--color-gray-700)}[data-theme=dark] .wizard-resource-item code{background:var(--color-gray-700);color:var(--color-gray-300)}[data-theme=dark] .wizard-actions{border-top-color:var(--color-gray-700)}[data-theme=dark] .wizard-check-item.done{background:#10b98114}[data-theme=dark] .wizard-check-item.error{background:#ef444414}[data-theme=dark] .wizard-success{border-top-color:var(--color-gray-700)}[data-theme=dark] .readiness-card{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .readiness-progress{background:var(--color-gray-700)}[data-theme=dark] .readiness-check:hover,[data-theme=dark] .resource-info-item{background:var(--color-gray-750,#1e293b)}[data-theme=dark] .resource-info-item code{color:var(--color-gray-300)}.provision-modal{background:var(--color-white);border-radius:16px;width:100%;animation:.25s modalSlideIn;overflow:hidden;box-shadow:0 25px 60px #00000040}.provision-modal .modal-header{border-bottom:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.provision-modal .modal-header h2{font-size:1.1rem;font-weight:600}.provision-modal .modal-close{cursor:pointer;color:var(--color-gray-400);background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1;transition:color .15s}.provision-modal .modal-close:hover{color:var(--color-gray-700)}.provision-modal .modal-body{padding:1.5rem}.provision-modal .modal-footer{border-top:1px solid var(--color-gray-100);justify-content:flex-end;gap:.75rem;margin-top:1rem;padding-top:1.25rem;display:flex}.provision-form .form-group{margin-bottom:1.15rem}.provision-form .form-group label{color:var(--color-gray-600);margin-bottom:.35rem;font-size:.8rem;font-weight:600;display:block}.provision-form .form-group input,.provision-form .form-group select{border:1px solid var(--color-gray-300);width:100%;font-size:.875rem;font-family:var(--font-family);background:var(--color-white);color:var(--color-text);border-radius:8px;padding:.6rem .75rem;transition:border-color .15s,box-shadow .15s}.provision-form .form-group input:focus,.provision-form .form-group select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #6366f11f}.provision-form .form-hint{color:var(--color-gray-400);margin-top:.25rem;font-size:.72rem;display:block}.provision-error{color:#dc2626;background:#ef444414;border:1px solid #ef444426;border-radius:8px;margin-top:.5rem;padding:.75rem 1rem;font-size:.85rem}.provision-info{color:var(--color-gray-500);background:#6366f10f;border-radius:8px;gap:.75rem;margin-top:.5rem;padding:.75rem 1rem;font-size:.8rem;line-height:1.5;display:flex}.provision-info svg{color:var(--color-primary);flex-shrink:0;margin-top:2px}.provision-progress{text-align:center;padding:1rem 0}.progress-bar-container{background:var(--color-gray-100);border-radius:4px;width:100%;height:8px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--color-primary), #818cf8);border-radius:4px;height:100%;transition:width .5s;position:relative}.progress-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);animation:1.5s infinite shimmer;position:absolute;inset:0}.progress-label{justify-content:space-between;margin-top:.75rem;font-size:.85rem;display:flex}.progress-step{color:var(--color-text);font-weight:500}.progress-pct{color:var(--color-gray-400);font-variant-numeric:tabular-nums}.provision-wait-msg{color:var(--color-gray-400);margin-top:1rem;font-size:.8rem}.provision-steps{flex-direction:column;gap:2px;max-height:380px;margin-bottom:1rem;display:flex;overflow-y:auto}.provision-step{border-radius:6px;grid-template-columns:24px 1fr auto;align-items:center;gap:.5rem;padding:.45rem .5rem;font-size:.82rem;transition:background .15s;display:grid}.provision-step:hover{background:var(--color-gray-50)}.provision-step .step-icon{text-align:center;font-size:.9rem}.provision-step .step-label{color:var(--color-text);font-weight:500}.provision-step .step-message{color:var(--color-gray-400);text-overflow:ellipsis;white-space:nowrap;grid-column:2/3;font-size:.75rem;overflow:hidden}.provision-step .step-duration{color:var(--color-gray-400);font-variant-numeric:tabular-nums;grid-area:1/3;font-size:.72rem}.provision-step--error .step-label{color:#dc2626}.provision-step--done .step-label{color:var(--color-text)}.provision-step--skipped .step-label{color:var(--color-gray-400);font-style:italic}.provision-step--skipped .step-message{color:var(--color-gray-400)}.provision-verification{background:var(--color-gray-50);border-radius:8px;margin-bottom:.75rem;padding:.75rem 1rem}.provision-verification h4{margin:0 0 .5rem;font-size:.85rem;font-weight:600}.verify-summary{gap:1rem;font-size:.82rem;display:flex}.verify-passed{color:#16a34a;font-weight:500}.verify-failed{color:#dc2626;font-weight:500}.verify-warn{color:#d97706;font-weight:500}.provision-duration{text-align:center;color:var(--color-gray-400);margin:.5rem 0 0;font-size:.8rem}[data-theme=dark] .provision-modal{background:var(--color-gray-900);box-shadow:0 25px 60px #00000080}[data-theme=dark] .provision-modal .modal-header{border-bottom-color:var(--color-gray-700)}[data-theme=dark] .provision-modal .modal-footer{border-top-color:var(--color-gray-700)}[data-theme=dark] .provision-modal .modal-close:hover{color:var(--color-gray-200)}[data-theme=dark] .provision-form .form-group input,[data-theme=dark] .provision-form .form-group select{background:var(--color-gray-800);border-color:var(--color-gray-600);color:var(--color-gray-100)}[data-theme=dark] .provision-error{background:#ef44441f;border-color:#ef444440}[data-theme=dark] .provision-info{background:#6366f11a}[data-theme=dark] .progress-bar-container{background:var(--color-gray-700)}[data-theme=dark] .provision-step:hover{background:var(--color-gray-800)}[data-theme=dark] .provision-step--error .step-label{color:#f87171}[data-theme=dark] .provision-verification{background:var(--color-gray-800)}.ecg-viewer{gap:var(--space-3);margin-top:var(--space-3);flex-direction:column;display:flex}.ecg-toolbar{padding:var(--space-2) var(--space-3);background:var(--color-gray-50);border-radius:var(--radius-lg);border:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}[data-theme=dark] .ecg-toolbar{background:var(--color-gray-800);border-color:var(--color-gray-700)}.ecg-toolbar-left{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ecg-toolbar-right{align-items:center;gap:var(--space-2);display:flex}.ecg-toolbar-title{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.ecg-toolbar-stats{color:var(--color-gray-400);font-variant-numeric:tabular-nums;font-size:.72rem}.btn-sm{border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;display:inline-flex}.ecg-btn-active{color:#2dd4bf;cursor:pointer;background:linear-gradient(135deg,#2dd4bf26,#2dd4bf40);border:1px solid #2dd4bf66;font-weight:600;transition:all .15s}.ecg-btn-active:hover{background:linear-gradient(135deg,#2dd4bf40,#2dd4bf59)}.ecg-btn-live{color:#10b981;cursor:pointer;background:linear-gradient(135deg,#10b98126,#10b98140);border:1px solid #10b98166;font-weight:600;transition:all .15s}.ecg-btn-live:hover{background:linear-gradient(135deg,#10b98140,#10b98159)}.ecg-live-dot{background:#ef4444;border-radius:50%;width:7px;height:7px;margin-right:2px;animation:1.2s ease-in-out infinite ecgLivePulse;display:inline-block;box-shadow:0 0 6px #ef444499}@keyframes ecgLivePulse{0%,to{opacity:1;box-shadow:0 0 6px #ef444499}50%{opacity:.4;box-shadow:0 0 2px #ef44444d}}.ecg-panel{border-radius:var(--radius-lg);background:#161b22;border:1px solid #7f7f7f26;overflow:hidden}.ecg-canvas{width:100%;display:block}.ecg-slider-row{align-items:center;gap:var(--space-2);padding:0 var(--space-2);display:flex}.ecg-slider-label{color:var(--color-gray-400);font-variant-numeric:tabular-nums;text-align:center;min-width:32px;font-size:.7rem}.ecg-slider{appearance:none;cursor:pointer;background:linear-gradient(90deg,#2dd4bf26,#2dd4bf4d);border-radius:3px;outline:none;flex:1;height:6px}.ecg-slider::-webkit-slider-thumb{appearance:none;cursor:grab;background:#2dd4bf;border:2px solid #0d1117;border-radius:50%;width:16px;height:16px;transition:transform .1s;box-shadow:0 0 6px #2dd4bf66}.ecg-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.15)}.ecg-slider::-moz-range-thumb{cursor:grab;background:#2dd4bf;border:2px solid #0d1117;border-radius:50%;width:16px;height:16px;box-shadow:0 0 6px #2dd4bf66}.ecg-loading{justify-content:center;align-items:center;gap:var(--space-2);height:300px;color:var(--color-gray-400);font-size:var(--font-size-sm);flex-direction:column;display:flex}.ecg-empty{text-align:center;padding:var(--space-8) var(--space-4);border-radius:var(--radius-lg);background:linear-gradient(#2dd4bf08,#0000);border:1px dashed #7f7f7f33;flex-direction:column;justify-content:center;align-items:center;display:flex}.ecg-empty h3{font-size:var(--font-size-base);color:var(--color-text);margin:0 0 var(--space-1);font-weight:600}.ecg-empty p{font-size:var(--font-size-sm);color:var(--color-gray-400);max-width:400px;margin:0 0 var(--space-3)}.ecg-error{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:#f87171;font-size:var(--font-size-sm);background:#ef444414;border:1px solid #ef444433}.spin{animation:1s linear infinite spin}
