:root{--color-bg-primary: #f5f7fa;--color-bg-secondary: #111827;--color-bg-card: #ffffff;--color-bg-tertiary: #f1f3f5;--color-bg-card-alt: #f9fafb;--color-bg-glass: rgba(17, 24, 39, .05);--color-sidebar-text: #d1d5db;--color-sidebar-text-active: #ffffff;--color-sidebar-hover-bg: rgba(255, 255, 255, .08);--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: rgba(37, 99, 235, .1);--color-secondary: #3b82f6;--color-secondary-light: rgba(59, 130, 246, .1);--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .1);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .1);--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .1);--color-info: #2563eb;--color-info-bg: rgba(37, 99, 235, .1);--color-text-primary: #111827;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--border-color: #e5e7eb;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--border-radius-xl: 24px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(37, 99, 235, .2);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 20% 0%,rgba(37,99,235,.03) 0%,transparent 50%);pointer-events:none;z-index:-1}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text-primary)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1rem}h6{font-size:.875rem}p{color:var(--color-text-secondary)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}.container{max-width:1400px;margin:0 auto;padding:2rem}.card{background:var(--color-bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:1.5rem;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;border:none;border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.btn-primary{background:#2563eb;color:#fff;box-shadow:0 4px 15px #2563eb4d}.btn-primary:hover{background:#1d4ed8;transform:translateY(-2px);box-shadow:0 6px 20px #2563eb66}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.btn-outline{background:transparent;color:var(--color-text-secondary);border:1px solid var(--border-color)}.btn-outline:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-success{background:linear-gradient(135deg,var(--color-success),#059669);color:#fff}.btn-danger{background:linear-gradient(135deg,var(--color-error),#dc2626);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-lg{padding:1rem 2rem;font-size:1rem}.btn-sm{padding:.5rem 1rem;font-size:.8125rem}.btn-full{width:100%}.input-group{margin-bottom:1.25rem}.input-label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.input-field{width:100%;padding:.875rem 1rem;font-size:.9375rem;font-family:inherit;background:var(--color-bg-tertiary);border:1px solid var(--border-color);border-radius:var(--border-radius-md);color:var(--color-text-primary);transition:all var(--transition-fast)}.input-field::placeholder{color:var(--color-text-muted)}.input-field:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.input-field:disabled{opacity:.5;cursor:not-allowed}.input-error{border-color:var(--color-error)!important}.error-text{color:var(--color-error);font-size:.8125rem;margin-top:.375rem}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:50px;text-transform:uppercase;letter-spacing:.5px}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-error{background:var(--color-error-bg);color:var(--color-error)}.badge-info{background:var(--color-info-bg);color:var(--color-info)}.badge-pending{background:#9ca3af26;color:#9ca3af}.stats-card{background:var(--color-bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:1.5rem;position:relative;overflow:hidden}.stats-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary))}.stats-card-icon{width:48px;height:48px;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1rem}.stats-card-icon.primary{background:var(--color-primary-light);color:var(--color-primary)}.stats-card-icon.success{background:var(--color-success-bg);color:var(--color-success)}.stats-card-icon.warning{background:var(--color-warning-bg);color:var(--color-warning)}.stats-card-icon.info{background:var(--color-info-bg);color:var(--color-info)}.stats-card-title{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:.5rem}.stats-card-value{font-size:2rem;font-weight:700;color:var(--color-text-primary);line-height:1.2}.stats-card-change{display:flex;align-items:center;gap:.25rem;font-size:.8125rem;margin-top:.5rem}.stats-card-change.positive{color:var(--color-success)}.stats-card-change.negative{color:var(--color-error)}.table-container{background:var(--color-bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);overflow:hidden}.table-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.table-title{font-size:1.125rem;font-weight:600}.table{width:100%;border-collapse:collapse}.table th{padding:1rem 1.5rem;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);background:var(--color-bg-tertiary);border-bottom:1px solid var(--border-color)}.table td{padding:1rem 1.5rem;font-size:.9375rem;color:var(--color-text-secondary);border-bottom:1px solid var(--border-color)}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:#f9fafb}.table-cell-primary{color:var(--color-text-primary);font-weight:500}.table-cell-mono{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:.8125rem}.live-indicator{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500}.live-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s ease-in-out infinite}.live-dot.connected{background:var(--color-success);box-shadow:0 0 10px var(--color-success)}.live-dot.disconnected{background:var(--color-error);animation:none}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.app-layout{display:flex;min-height:100vh}.sidebar{width:280px;background:var(--color-bg-secondary);border-right:1px solid rgba(255,255,255,.08);padding:1.5rem;position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;z-index:100}.sidebar-logo{display:flex;align-items:center;gap:.75rem;padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;color:#fff}.sidebar-logo-text{font-size:1.25rem;font-weight:700;color:#fff}.sidebar-nav{flex:1}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;margin-bottom:.25rem;border-radius:var(--border-radius-md);color:var(--color-sidebar-text);font-weight:500;transition:all var(--transition-fast);cursor:pointer}.nav-item:hover{background:var(--color-sidebar-hover-bg);color:var(--color-sidebar-text-active)}.nav-item.active{background:#2563eb26;color:#60a5fa;border-left:3px solid #3b82f6}.nav-item-icon{width:20px;text-align:center}.sidebar-footer{padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.main-content{flex:1;margin-left:280px;padding:2rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.page-header-left h1{margin-bottom:.25rem}.page-header-left p{font-size:.9375rem}.page-header-right{display:flex;align-items:center;gap:1rem}.grid{display:grid;gap:1.5rem}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--color-bg-primary)}.login-card{width:100%;max-width:440px;background:#fff;border:1px solid #e5e7eb;border-radius:var(--border-radius-xl);padding:2.5rem;box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:2rem}.login-logo{width:64px;height:64px;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:var(--border-radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:700;color:#fff;margin:0 auto 1.5rem;box-shadow:var(--shadow-md)}.login-title{font-size:1.75rem;margin-bottom:.5rem}.login-subtitle{color:var(--color-text-secondary);font-size:.9375rem}.login-footer{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.login-footer-text{font-size:.8125rem;color:var(--color-text-muted)}.alert{padding:1rem 1.25rem;border-radius:var(--border-radius-md);margin-bottom:1rem;font-size:.9375rem}.alert-error{background:var(--color-error-bg);color:var(--color-error);border:1px solid rgba(239,68,68,.3)}.alert-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid rgba(16,185,129,.3)}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid rgba(245,158,11,.3)}.alert-info{background:var(--color-info-bg);color:var(--color-info);border:1px solid rgba(59,130,246,.3)}.spinner{width:20px;height:20px;border:2px solid rgba(0,0,0,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:4rem 2rem}.empty-state-icon{font-size:4rem;margin-bottom:1.5rem;opacity:.5}.empty-state-title{font-size:1.25rem;margin-bottom:.5rem}.empty-state-text{color:var(--color-text-muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-full{width:100%}@media(max-width:1200px){.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.sidebar{transform:translate(-100%)}.main-content{margin-left:0;padding:1rem}.grid-cols-4,.grid-cols-3,.grid-cols-2{grid-template-columns:1fr}.table-container{overflow-x:auto}.page-header{flex-direction:column;align-items:flex-start;gap:1rem}}
