.navbar[data-v-15a4cf91]{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:64px;background:#fff;border-bottom:1px solid var(--border);box-shadow:var(--shadow);position:sticky;top:0;z-index:100}.navbar-left[data-v-15a4cf91]{display:flex;align-items:center}.navbar-brand[data-v-15a4cf91]{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}.brand-icon[data-v-15a4cf91]{height:32px;width:auto}.brand-text[data-v-15a4cf91]{font-size:18px;font-weight:600;color:var(--primary)}.navbar-right[data-v-15a4cf91]{display:flex;align-items:center;gap:20px}.nav-link[data-v-15a4cf91]{font-size:14px;color:var(--text-secondary);font-weight:500;padding:6px 12px;border-radius:6px;transition:all .2s}.nav-link[data-v-15a4cf91]:hover,.nav-link.router-link-exact-active[data-v-15a4cf91]{color:var(--primary);background:#1a73e814}.user-info[data-v-15a4cf91]{display:flex;align-items:center;gap:8px;padding:0 12px;border-left:1px solid var(--border)}.username[data-v-15a4cf91]{font-size:14px;font-weight:500}.role-badge[data-v-15a4cf91]{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}.role-badge.admin[data-v-15a4cf91]{background:#e8f5e9;color:#2e7d32}.role-badge.user[data-v-15a4cf91]{background:#e3f2fd;color:#1565c0}.btn-logout[data-v-15a4cf91]{padding:6px 16px;font-size:13px;border:1px solid var(--danger);background:transparent;color:var(--danger);border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.btn-logout[data-v-15a4cf91]:hover{background:var(--danger);color:#fff}main[data-v-15a4cf91]{min-height:calc(100vh - 64px)}main.with-nav[data-v-15a4cf91]{padding:24px}main.mobile-route[data-v-15a4cf91]{padding:0;min-height:100vh}@media (max-width: 768px){.navbar[data-v-15a4cf91]{padding:0 12px;height:56px;z-index:160}.brand-text[data-v-15a4cf91]{font-size:15px}.brand-icon[data-v-15a4cf91]{width:auto;height:26px}.navbar-right[data-v-15a4cf91]{gap:8px}.nav-link[data-v-15a4cf91]{font-size:12px;padding:4px 8px}.user-info[data-v-15a4cf91]{padding:0 8px;gap:4px;border-left:none}.username[data-v-15a4cf91]{display:none}.role-badge[data-v-15a4cf91]{font-size:10px}.btn-logout[data-v-15a4cf91]{padding:4px 10px;font-size:12px}main[data-v-15a4cf91]{min-height:calc(100vh - 56px)}main.with-nav[data-v-15a4cf91]{padding:16px}}body.video-fullscreen{overflow:hidden}body.video-fullscreen .navbar{display:none}body.video-fullscreen main.with-nav{padding:0;min-height:100vh}@media (max-width: 768px) and (orientation: landscape){body.video-landscape .navbar{display:none}body.video-landscape main.with-nav{padding:0;min-height:100vh}}:root{--primary: #1a73e8;--primary-dark: #1557b0;--primary-light: #4a9af5;--primary-bg: rgba(26, 115, 232, .08);--danger: #e53935;--warning: #fb8c00;--success: #43a047;--bg: #f0f2f5;--bg-card: #ffffff;--text: #1a1a2e;--text-secondary: #64748b;--border: #e2e8f0;--shadow: 0 2px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--radius: 12px;--radius-sm: 8px;--status-online: #2e7d32;--status-online-bg: #e8f5e9;--status-offline: #94a3b8;--status-offline-bg: #f1f5f9;--status-sleep: #f59e0b;--status-sleep-bg: #fef3c7}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans SC,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-dark)}input,select,textarea,button{font-family:inherit;font-size:14px}button{cursor:pointer}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}::selection{background:var(--primary);color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}html.dark{--bg: #0f172a;--bg-card: #1e293b;--text: #e2e8f0;--text-secondary: #94a3b8;--border: #334155;--shadow: 0 2px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .5);--primary-bg: rgba(59, 130, 246, .15);--status-online-bg: rgba(34, 197, 94, .15);--status-offline-bg: rgba(148, 163, 184, .15);--status-sleep-bg: rgba(245, 158, 11, .15)}html.dark body{background:var(--bg);color:var(--text)}html.dark ::-webkit-scrollbar-thumb{background:#475569}html.dark ::-webkit-scrollbar-thumb:hover{background:#64748b}html.dark .settings-section,html.dark .settings-item,html.dark .user-card,html.dark .channel-card,html.dark .device-group,html.dark .search-bar,html.dark .sidebar,html.dark .video-header,html.dark .mobile-header,html.dark .mobile-tabbar,html.dark .navbar,html.dark .login-container{background:var(--bg-card)!important;border-color:var(--border)!important;color:var(--text)}html.dark .search-box,html.dark .quick-btn{background:#ffffff0d}html.dark .card-name,html.dark .mobile-title,html.dark .user-name,html.dark .settings-item-left,html.dark .sidebar-header h2,html.dark .video-title strong,html.dark .group-device-name,html.dark .ch-name{color:var(--text)!important}html.dark .card-meta,html.dark .top-channel-meta,html.dark .search-input::placeholder,html.dark .group-device-serial,html.dark .ch-meta{color:var(--text-secondary)!important}html.dark .settings-select{background-color:#1e293b;color:var(--text);border-color:var(--border)}html.dark .tab-item{color:var(--text-secondary)}html.dark .tab-item.active{color:var(--primary)}html.dark .dashboard-layout .main-content{background:#0f172a}html.dark .welcome-screen h2{color:var(--text)}html.dark .tree-channel.active{background:#3b82f626}html.dark .tree-channel:hover,html.dark .tree-group-header:hover{background:#ffffff0d}html.dark .ch-name{color:var(--text)}html.dark .device-group-header:active{background:#ffffff0d}html.dark .group-channels{border-top-color:#ffffff0f}html.dark .channel-item{border-bottom-color:#ffffff0a}html.dark .channel-item:active{background:#ffffff0d}html.dark .mobile-header,html.dark .mobile-tabbar{background:var(--bg-card)!important;border-color:var(--border)!important}html.dark .mobile-header-btn{color:var(--text-secondary)}html.dark .mobile-header-btn:active{background:#ffffff1a;color:var(--text)}html.dark .action-btn{background:var(--bg-card);border-color:var(--border);color:var(--primary)}html.dark .action-btn:active{background:#ffffff0d}html.dark .search-clear:active{background:#ffffff1a}html.dark .logout-btn{background:var(--bg-card)}@supports (padding-top: env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}}@media (max-width: 768px){input,select,textarea{font-size:16px}body{touch-action:manipulation}*{-webkit-tap-highlight-color:transparent}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .3s ease}.slide-enter-from{opacity:0;transform:translate(-10px)}.slide-leave-to{opacity:0;transform:translate(10px)}.status-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 10px;border-radius:10px}.status-badge.online{background:var(--status-online-bg);color:var(--status-online)}.status-badge.offline{background:var(--status-offline-bg);color:var(--status-offline)}.status-badge.sleep{background:var(--status-sleep-bg);color:var(--status-sleep)}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #1a73e84d}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#f1f5f9;color:var(--text)}
