:root{--bg-body: #f5f5f5;--bg-card: white;--bg-panel: #f9fafb;--bg-header: #f3f4f6;--bg-input: white;--bg-hover: #f9fafb;--border: #e5e7eb;--border-input: #d1d5db;--text-primary: #111827;--text-secondary: #374151;--text-muted: #6b7280;--text-light: #9ca3af;--shadow: rgba(0, 0, 0, .1);--bg-accent-blue: #eff6ff;--bg-accent-yellow: #fffbeb;--bg-accent-purple: #faf5ff;--border-accent-purple: #e9d5ff;--border-accent-purple-light: #d8b4fe}[data-theme=dark]{--bg-body: #0f172a;--bg-card: #1e293b;--bg-panel: #1e293b;--bg-header: #334155;--bg-input: #334155;--bg-hover: #334155;--border: #475569;--border-input: #475569;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--text-light: #64748b;--shadow: rgba(0, 0, 0, .3);--bg-accent-blue: #1e3a5f;--bg-accent-yellow: #3d2e0a;--bg-accent-purple: #2e1065;--border-accent-purple: #581c87;--border-accent-purple-light: #7c3aed}:root{--color-red-50: #fef2f2;--color-red-100: #fee2e2;--color-red-200: #fecaca;--color-red-300: #fca5a5;--color-red-400: #f87171;--color-red-500: #ef4444;--color-red-500-a40: #ef444440;--color-red-500-a20: #ef444420;--color-red-600: #dc2626;--color-red-700: #b91c1c;--color-red-800: #991b1b;--color-red-900: #7f1d1d;--color-orange-50: #fff7ed;--color-orange-400: #fb923c;--color-orange-500: #f97316;--color-orange-600: #ea580c;--color-orange-700: #c2410c;--color-orange-900: #7c2d12;--color-amber-50: #fffbeb;--color-amber-100: #fef3c7;--color-amber-200: #fde68a;--color-amber-300: #fcd34d;--color-amber-400: #fbbf24;--color-amber-500: #f59e0b;--color-amber-500-a20: #f59e0b20;--color-amber-600: #d97706;--color-amber-800: #92400e;--color-amber-900: #78350f;--color-yellow-500: #eab308;--color-yellow-500-a20: #eab30820;--color-green-50: #f0fdf4;--color-green-100: #dcfce7;--color-green-200: #bbf7d0;--color-green-300: #86efac;--color-green-400: #4ade80;--color-green-500: #22c55e;--color-green-600: #16a34a;--color-green-800: #166534;--color-green-900: #14532d;--color-emerald-50: #ecfdf5;--color-emerald-100: #d1fae5;--color-emerald-200: #a7f3d0;--color-emerald-300: #6ee7b7;--color-emerald-500: #10b981;--color-emerald-500-a40: #10b98140;--color-emerald-500-a20: #10b98120;--color-emerald-600: #059669;--color-emerald-700: #047857;--color-emerald-800: #065f46;--color-teal-50: #f0fdfa;--color-teal-500: #14b8a6;--color-teal-600: #0d9488;--color-cyan-500: #06b6d4;--color-cyan-600: #0891b2;--color-sky-50: #f0f9ff;--color-sky-100: #e0f2fe;--color-sky-300: #7dd3fc;--color-sky-400: #38bdf8;--color-sky-500: #0ea5e9;--color-sky-500-a20: #0ea5e920;--color-sky-700: #0369a1;--color-sky-800: #075985;--color-sky-900: #0c4a6e;--color-blue-50: #eff6ff;--color-blue-100: #dbeafe;--color-blue-200: #bfdbfe;--color-blue-300: #93c5fd;--color-blue-400: #60a5fa;--color-blue-500: #3b82f6;--color-blue-500-a20: #3b82f620;--color-blue-600: #2563eb;--color-blue-700: #1d4ed8;--color-blue-800: #1e40af;--color-blue-900: #1e3a8a;--color-indigo-50: #eef2ff;--color-indigo-100: #e0e7ff;--color-indigo-300: #a5b4fc;--color-indigo-500: #6366f1;--color-indigo-500-a40: #6366f140;--color-indigo-500-a20: #6366f120;--color-indigo-700: #4338ca;--color-indigo-800: #3730a3;--color-violet-50: #f5f3ff;--color-violet-100: #ede9fe;--color-violet-300: #c4b5fd;--color-violet-500: #8b5cf6;--color-violet-500-a20: #8b5cf620;--color-violet-600: #7c3aed;--color-violet-700: #6d28d9;--color-violet-800: #5b21b6;--color-purple-50: #faf5ff;--color-purple-100: #f3e8ff;--color-purple-300: #d8b4fe;--color-purple-500: #a855f7;--color-purple-800: #6b21a8;--color-purple-900: #581c87;--color-pink-500: #ec4899;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--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-slate-200: #e2e8f0;--color-slate-400: #94a3b8;--color-slate-500: #64748b;--color-slate-900: #0f172a;--color-navy-900: #1e3a5f;--color-link: #0066cc;--color-terminal-bg: #0d1117;--color-terminal-text: #c9d1d9;--color-alert-error-bg: #fee;--color-alert-error-border: #fcc;--color-alert-error-text: #c33;--color-alert-success-bg: #efe;--color-alert-success-border: #cfc;--color-alert-success-text: #3c3;--color-white: #fff;--color-black: #000;--space-2: 2px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-32: 32px;--space-40: 40px;--font-size-10: 10px;--font-size-11: 11px;--font-size-12: 12px;--font-size-13: 13px;--font-size-14: 14px;--font-size-15: 15px;--font-size-16: 16px;--font-size-17: 17px;--font-size-24: 24px;--radius-0: 0;--radius-2: 2px;--radius-3: 3px;--radius-4: 4px;--radius-6: 6px;--radius-8: 8px;--radius-9: 9px;--radius-10: 10px;--radius-12: 12px;--shadow-xs: 0 1px 3px rgba(0, 0, 0, .3);--shadow-xs-strong: 0 1px 3px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--shadow-md-strong: 0 4px 12px rgba(0, 0, 0, .2);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .15);--shadow-lg-strong: 0 4px 20px rgba(0, 0, 0, .2);--shadow-xl: 0 8px 24px rgba(0, 0, 0, .15);--shadow-2xl: 0 10px 25px rgba(0, 0, 0, .3);--shadow-2xl-alt: 0 10px 40px rgba(0, 0, 0, .2);--shadow-2xl-strong: 0 10px 40px rgba(0, 0, 0, .3);--shadow-side: -4px 0 20px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-body);color:var(--text-primary)}h1,h2,h3,h4,.panel-title,.table th,.table-plain th,.panel-th{font-weight:600}.tabular-nums{font-variant-numeric:tabular-nums}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}.container{max-width:1800px;margin:0 auto;padding:10px 12px}.btn{padding:6px 12px;border:1px solid #000;border-radius:0;cursor:pointer;font-size:13px;font-weight:500;transition:all .08s ease-out;box-shadow:0 2px 4px var(--shadow);position:relative;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0003}.btn:active{transform:scale(.97);box-shadow:0 1px 2px var(--shadow);transition:all .05s ease-out}.btn:focus-visible{outline:2px solid var(--color-blue-500);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn:disabled:hover{transform:none;box-shadow:none}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8;box-shadow:0 4px 12px #2563eb66}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669;box-shadow:0 4px 12px #10b98166}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 12px #ef444466}.btn-secondary{background:var(--bg-panel);color:var(--text-secondary);border-color:var(--border-input);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted);box-shadow:none}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-6);color:var(--text-muted);box-shadow:none;cursor:pointer;transition:background-color .1s ease-out,color .1s ease-out,transform .05s ease-out;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn-icon:focus-visible{outline:2px solid var(--color-blue-500);outline-offset:2px}.btn-icon:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);transform:none;box-shadow:none}.btn-icon:active:not(:disabled){transform:scale(.93);box-shadow:none}.btn-icon:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.btn-icon:disabled:hover{background:transparent;color:var(--text-muted)}.btn-icon-danger:hover:not(:disabled){background:var(--color-red-500-a20);color:var(--color-red-600)}.btn-icon-success:hover:not(:disabled){background:var(--color-emerald-500-a20);color:var(--color-emerald-600)}.btn-icon-amber:hover:not(:disabled){background:var(--color-amber-500-a20);color:var(--color-amber-600)}.btn-icon-info:hover:not(:disabled){background:var(--color-blue-500-a20);color:var(--color-blue-600)}.btn-icon-purple:hover:not(:disabled){background:var(--color-violet-500-a20);color:var(--color-violet-600)}.btn-icon-yellow:hover:not(:disabled){background:var(--color-yellow-500-a20);color:var(--color-yellow-500)}.btn-icon-sky:hover:not(:disabled){background:var(--color-sky-500-a20);color:var(--color-sky-700)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border-input);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted);box-shadow:none}.btn-ghost-danger:hover:not(:disabled){background:var(--color-red-500-a20);border-color:var(--color-red-500);color:var(--color-red-600)}.card{background:var(--bg-card);border-radius:0;box-shadow:0 1px 3px var(--shadow);padding:10px;margin-bottom:10px}.form-group{margin-bottom:8px}.form-group label{display:block;margin-bottom:4px;font-weight:500;color:var(--text-secondary);font-size:13px}.input,.select,.textarea,.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 10px;border:1px solid var(--border-input);border-radius:0;font-size:14px;background:var(--bg-input);color:var(--text-primary);transition:all .08s ease-out}.input:focus,.select:focus,.textarea:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.input:disabled,.select:disabled,.textarea:disabled,.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{opacity:.6;cursor:not-allowed;background:var(--bg-header)}.checkbox-group{display:flex;align-items:center;gap:6px}.checkbox-group input[type=checkbox]{width:auto}.status-badge{display:inline-flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-12);font-weight:400;text-transform:capitalize}.status-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.status-running{color:var(--color-green-600)}.status-stopped{color:var(--color-red-600)}.status-starting{color:var(--color-amber-600)}.status-error{color:var(--color-red-600)}.error-warning-icon{position:relative;display:inline-flex;align-items:center;cursor:help}.error-warning-icon .error-warning-tooltip{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:6px;background:var(--bg-panel);color:var(--text-primary);border:1px solid var(--border);padding:6px 10px;border-radius:6px;font-size:11px;font-weight:400;text-transform:none;white-space:normal;max-width:320px;width:max-content;z-index:50;box-shadow:0 2px 8px #0000004d;pointer-events:none}.error-warning-icon:hover .error-warning-tooltip,.error-warning-icon:focus .error-warning-tooltip{display:block}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-card);border-radius:8px;padding:15px;max-width:550px;width:90%;max-height:85vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-header h2{margin:0;color:var(--text-primary);font-size:16px}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-muted);transition:all .08s ease-out;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.close-btn:hover{color:var(--text-primary);transform:scale(1.1)}.close-btn:active{transform:scale(.95)}.menu-item{width:100%;padding:var(--space-8) var(--space-12);border:none;background:transparent;text-align:left;cursor:pointer;display:flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-13);color:var(--text-secondary);border-bottom:1px solid var(--bg-header)}.menu-item:hover{background:var(--bg-header)}.menu-item:focus-visible{outline:2px solid var(--color-blue-500);outline-offset:-2px}.epg-btn{padding:var(--space-6) var(--space-16);font-size:var(--font-size-13);font-weight:600;border-radius:var(--radius-4);cursor:pointer;display:flex;align-items:center;gap:var(--space-6);transition:all .08s ease-out}.epg-btn:hover:not(:disabled){transform:translateY(-1px)}.epg-btn:focus-visible{outline:2px solid var(--color-blue-500);outline-offset:2px}.epg-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.panel-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.panel-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.panel-value{font-size:14px;font-weight:600;color:var(--text-secondary)}.panel-text{font-size:13px;color:var(--text-secondary)}.panel-small{font-size:11px;color:var(--text-muted)}.panel-stat-card{padding:12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:0;text-align:center}.panel-error{padding:10px;background:#fee2e2;border:1px solid #fecaca;color:#991b1b;font-size:12px;margin-bottom:12px}.panel-success{padding:10px;background:#d1fae5;border:1px solid #a7f3d0;color:#065f46;font-size:12px;margin-bottom:12px}.panel-th{padding:10px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-panel);text-align:left}.panel-td{padding:10px 12px;font-size:13px;color:var(--text-secondary)}.panel-info{padding:12px;background:var(--bg-panel);border:1px solid var(--border);font-size:11px;color:var(--text-muted);line-height:1.5}.table{width:100%;border-collapse:collapse;font-size:12px}.table th,.table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--border);color:var(--text-primary)}.table th{background:var(--bg-panel);font-weight:600;color:var(--text-secondary);font-size:11px}.table tbody tr{background:var(--bg-card)}.table tr:hover{background:var(--bg-hover)}.table-plain{width:100%;border-collapse:collapse}.table-plain tr:hover{background:var(--bg-hover)}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.theme-toggle{background:none;border:1px solid var(--border);cursor:pointer;padding:4px 8px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .15s ease;border-radius:4px}.theme-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}html,body{overflow-x:hidden;max-width:100%}@media (max-width: 768px){.grid-2,.grid-3{grid-template-columns:1fr}.container{padding:8px}.card{padding:10px;margin-bottom:8px}.btn{padding:6px 10px;font-size:12px}.table-scroll-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}table{min-width:600px}.hide-mobile{display:none!important}.tab-btn{padding:8px 12px!important;font-size:11px!important;white-space:nowrap}.tabs-row{overflow-x:auto;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs-row::-webkit-scrollbar{display:none}.modal{width:100%!important;max-width:100%!important;max-height:100vh!important;height:100vh!important;border-radius:0!important;margin:0!important;overflow-y:auto}.modal-overlay{align-items:flex-start!important;padding:0!important}header{padding-top:10px!important}.search-bar input{width:100%!important;max-width:100%!important}.tab-btn{padding:10px 12px!important;font-size:11px!important}.stream-action-btn{padding:4px 6px!important}}@media (max-width: 480px){.container{padding:6px}.btn{padding:5px 8px;font-size:11px}table th,table td{padding:6px 5px!important;font-size:11px!important}}
