:root{--bg-base: #f9fafb;--bg-sidebar: #f1f5f9;--bg-card: #ffffff;--bg-hover: #f1f5f9;--bg-elevated: #ffffff;--bg-subtle: #f8fafc;--fg-0: #0f172a;--fg-1: #334155;--fg-2: #64748b;--fg-3: #94a3b8;--fg-4: #cbd5e1;--border: #e2e8f0;--border-strong: #cbd5e1;--divider: #f1f5f9;--accent: #5850ec;--accent-strong: #4338ca;--accent-soft: rgba(88, 80, 236, .12);--accent-ring: rgba(88, 80, 236, .2);--accent-fg: #ffffff;--live-50: #ecfdf5;--live-600: #059669;--live-700: #047857;--live-200: #a7f3d0;--warn-50: #fffbeb;--warn-600: #d97706;--warn-700: #b45309;--warn-200: #fde68a;--error-50: #fff1f2;--error-600: #e11d48;--error-700: #be123c;--error-200: #fecdd3;--info-50: #eff6ff;--info-600: #2563eb;--info-200: #bfdbfe;--usb: #10b981;--wifi: #0ea5e9;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 9999px;--shadow-1: 0 1px 2px 0 rgba(15, 23, 42, .04);--shadow-2: 0 4px 16px -4px rgba(15, 23, 42, .08), 0 1px 4px -1px rgba(15, 23, 42, .04);--shadow-3: 0 10px 40px -10px rgba(15, 23, 42, .12), 0 4px 16px -4px rgba(15, 23, 42, .08);--shadow-popover: 0 12px 32px -8px rgba(15, 23, 42, .18);--ring-focus: 0 0 0 3px var(--accent-ring);--sidebar-w: 260px;--sidebar-w-collapsed: 64px;--header-h: 60px;--rb-width: 0px;--config-width: 0px;--sidebar-total: 0px;--vh: 1vh}body.dark{--bg-base: #0b0e15;--bg-sidebar: #0f1320;--bg-card: #151926;--bg-hover: #1c2233;--bg-elevated: #1c2233;--bg-subtle: #11151f;--fg-0: #e8ecf3;--fg-1: #c5cad9;--fg-2: #8a93a8;--fg-3: #5b6477;--fg-4: #3d4555;--border: #232938;--border-strong: #2f3645;--divider: #1a1f2e;--accent: #7c75ff;--accent-soft: rgba(124, 117, 255, .18);--accent-ring: rgba(124, 117, 255, .32);--accent-fg: #ffffff;--live-50: rgba(52, 199, 155, .1);--live-200: rgba(52, 199, 155, .3);--live-600: #34c79b;--live-700: #2db581;--warn-50: rgba(245, 177, 72, .1);--warn-200: rgba(245, 177, 72, .3);--warn-600: #f5b148;--warn-700: #d99431;--error-50: rgba(255, 107, 107, .1);--error-200: rgba(255, 107, 107, .3);--error-600: #ff6b6b;--error-700: #e64545;--info-50: rgba(95, 167, 255, .1);--info-200: rgba(95, 167, 255, .3);--info-600: #5fa7ff;--shadow-1: 0 1px 2px 0 rgba(0,0,0,.3);--shadow-2: 0 4px 16px -4px rgba(0,0,0,.45), 0 1px 4px -1px rgba(0,0,0,.3);--shadow-3: 0 10px 40px -10px rgba(0,0,0,.55), 0 4px 16px -4px rgba(0,0,0,.4);--shadow-popover: 0 12px 32px -8px rgba(0,0,0,.55);--ring-focus: 0 0 0 3px var(--accent-ring)}body.dark .tileSelectBox,body.dark .switchRow input[type=checkbox]{background:var(--bg-elevated)}body.dark .headerBar__avatar{box-shadow:0 0 0 2px var(--bg-card)}body.dark .tileBody,body.dark .tileVideoFrame{background:#000}body.dark .viewerOverlay{background:#000000a6}body.dark .floatingLoader,body.dark .actionDockToast{background:var(--bg-elevated)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg-base);color:var(--fg-0);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{height:100dvh;height:calc(var(--vh, 1vh) * 100);display:flex;flex-direction:column;overflow:hidden}#root{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer;padding:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--ring-focus)}a{color:var(--accent);text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:var(--radius-pill);border:2px solid var(--bg-base)}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-variant-numeric:tabular-nums}.appShell{flex:1;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:0;background:var(--bg-base);transition:grid-template-columns .18s ease}.appShell.sidebarCollapsed{grid-template-columns:var(--sidebar-w-collapsed) minmax(0,1fr)}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;padding:18px 12px 12px;position:relative}.sidebar__brand{display:flex;align-items:center;gap:10px;padding:0 8px 4px;margin-bottom:22px;min-height:40px}.sidebar__brandLogo{width:36px;height:36px;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;flex:0 0 auto;box-shadow:0 4px 12px -2px #5850ec66}.sidebar__brandText{font-size:16px;font-weight:700;color:var(--fg-0);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appShell.sidebarCollapsed .sidebar__brandText{display:none}.sidebar__nav{display:flex;flex-direction:column;gap:1px}.sidebar__sectionLabel{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);padding:16px 8px 6px}.appShell.sidebarCollapsed .sidebar__sectionLabel{display:none}.sidebar__divider{height:1px;background:var(--border);margin:12px 4px}.sidebar__navItem{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--fg-1);cursor:pointer;text-align:left;width:100%;transition:background .12s ease,color .12s ease}.sidebar__navItem:hover{background:#ffffffb3;color:var(--fg-0)}.sidebar__navItem.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar__navItem.active:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);height:22px;width:3px;border-radius:3px 0 0 3px;background:var(--accent)}.sidebar__navIcon{width:18px;height:18px;flex:0 0 auto;display:grid;place-items:center;color:currentColor}.sidebar__navLabel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__navBadge{font-size:10px;font-weight:700;background:#0f172a0f;color:var(--fg-2);padding:1px 6px;border-radius:var(--radius-pill);font-variant-numeric:tabular-nums}.appShell.sidebarCollapsed .sidebar__navItem{justify-content:center;padding:10px}.appShell.sidebarCollapsed .sidebar__navLabel,.appShell.sidebarCollapsed .sidebar__navBadge{display:none}.appShell.sidebarCollapsed .sidebar__navItem.active:after{display:none}.sidebar__footer{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px}.sidebar__collapseBtn{width:100%;height:36px;border-radius:var(--radius-md);background:transparent;color:var(--fg-2);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;transition:background .12s ease,color .12s ease}.sidebar__collapseBtn:hover{background:#ffffffb3;color:var(--fg-0)}.pageMain{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--bg-base)}.headerBar{height:var(--header-h);flex:0 0 auto;background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 20px;z-index:30}.headerBar__search{flex:1;max-width:480px;min-width:200px;height:38px;display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:var(--radius-md);background:var(--bg-hover);border:1px solid transparent;color:var(--fg-1);transition:background .12s ease,border-color .12s ease}.headerBar__search:focus-within{background:var(--bg-card);border-color:var(--accent);box-shadow:var(--ring-focus)}.headerBar__search svg{color:var(--fg-3);flex:0 0 auto}.headerBar__search input{flex:1;background:transparent;border:none;outline:none;color:var(--fg-0);font-size:13px;min-width:0}.headerBar__search input::placeholder{color:var(--fg-3)}.headerBar__search kbd{font-family:JetBrains Mono,monospace;font-size:10px;background:var(--bg-card);border:1px solid var(--border);color:var(--fg-2);padding:1px 6px;border-radius:4px;flex:0 0 auto}.headerBar__spacer{flex:1}.headerBar__actions{display:flex;align-items:center;gap:8px}.headerBar__user{display:flex;align-items:center;gap:10px;padding-left:14px;border-left:1px solid var(--border);margin-left:4px}.headerBar__userText{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.headerBar__userName{font-size:13px;font-weight:600;color:var(--fg-0)}.headerBar__userRole{font-size:11px;color:var(--fg-2)}.headerBar__avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#a78bfa,#6366f1,#818cf8);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;box-shadow:0 0 0 2px var(--bg-card)}.iconBtn{width:38px;height:38px;border-radius:var(--radius-md);background:transparent;color:var(--fg-2);display:grid;place-items:center;transition:background .12s ease,color .12s ease,transform .08s ease;flex:0 0 auto;position:relative}.iconBtn:hover{background:var(--bg-hover);color:var(--fg-0)}.iconBtn:active{transform:scale(.96)}.iconBtn.sm{width:32px;height:32px}.iconBtn.xs{width:28px;height:28px}.iconBtn.on{background:var(--accent-soft);color:var(--accent)}.iconBtn__badge{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--error-600);border:2px solid var(--bg-card)}.pageBody{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;position:relative}.pageHeader{padding:18px 24px 8px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.pageHeader__title{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--fg-0)}.pageHeader__subtitle{margin-top:4px;font-size:13px;color:var(--fg-2)}.pageHeader__stats{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-2);flex-wrap:wrap}.statChip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--radius-pill);background:var(--bg-card);border:1px solid var(--border);font-size:12px;color:var(--fg-1);font-variant-numeric:tabular-nums}.statChip strong{font-weight:700;color:var(--fg-0)}.statChip__dot{width:7px;height:7px;border-radius:50%;background:var(--fg-3)}.statChip.live .statChip__dot{background:var(--live-600)}.statChip.warn .statChip__dot{background:var(--warn-600)}.statChip.error .statChip__dot{background:var(--error-600)}.filterBar{margin:4px 24px 0;padding:10px 14px;display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);flex-wrap:wrap}.filterBar__pills{display:inline-flex;align-items:center;background:var(--bg-hover);border-radius:var(--radius-md);padding:3px;gap:2px}.filterBar__pill{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:7px;background:transparent;color:var(--fg-1);font-size:12px;font-weight:500;transition:background .12s ease,color .12s ease}.filterBar__pill:hover{color:var(--fg-0)}.filterBar__pill.active{background:var(--bg-card);color:var(--accent);font-weight:600;box-shadow:var(--shadow-1)}.filterBar__pill__count{font-size:11px;color:var(--fg-3);font-variant-numeric:tabular-nums}.filterBar__pill.active .filterBar__pill__count{color:var(--accent)}.filterBar__spacer{flex:1}.filterBar__group{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-2)}.filterBar__group label{white-space:nowrap}.bulkBar{position:sticky;bottom:12px;margin:12px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-3);display:flex;align-items:center;gap:12px;padding:10px 14px;z-index:20;animation:bulkBarSlideUp .2s ease}@keyframes bulkBarSlideUp{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.bulkBar__count{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;background:var(--accent-soft);border-radius:var(--radius-pill);color:var(--accent);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.bulkBar__count button{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:var(--accent)}.bulkBar__count button:hover{background:#5850ec2e}.bulkBar__divider{width:1px;height:26px;background:var(--border)}.bulkBar__actions{display:inline-flex;align-items:center;gap:4px}.bulkBar__spacer{flex:1}.gridWrap{flex:1;min-height:0;padding:14px 24px 4px;overflow:visible}#grid{display:grid;gap:var(--grid-gap, 14px);grid-template-columns:var( --grid-template-columns, repeat(auto-fill, minmax(var(--tile-width, 320px), var(--tile-width, 320px))) );grid-auto-rows:auto;width:var(--grid-width, 100%);min-width:100%;justify-content:start}#grid.singleMode{position:relative;min-height:min(78vh,1100px)}#grid.singleMode .tileDraggableWrapper.single{position:absolute}.tileDraggableWrapper{position:relative;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.tileDraggableWrapper.single{left:50%;top:50%;transform:translate(calc(-50% + var(--drag-x, 0px)),calc(-50% + var(--drag-y, 0px)));cursor:grab;touch-action:none;width:fit-content;height:fit-content}.tileDraggableWrapper.single.dragging{cursor:grabbing}.tileDraggableWrapper.dropTarget{box-shadow:0 0 0 2px var(--accent),var(--shadow-2)}.gridEmpty{margin:24px;padding:48px 24px;background:var(--bg-card);border:1px dashed var(--border-strong);border-radius:var(--radius-xl);text-align:center;color:var(--fg-2)}.gridEmpty__icon{font-size:32px;margin-bottom:12px;opacity:.6}.gridEmpty__title{font-size:15px;font-weight:600;color:var(--fg-1)}.gridEmpty__hint{margin-top:6px;font-size:13px}.tile{--tile-aspect: 9/16;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;display:flex;flex-direction:column;height:auto;min-height:240px;position:relative;box-shadow:var(--shadow-1);transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease}.tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.tile.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-2)}.tile.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring)}.tile.sync-main{border-color:var(--live-600);box-shadow:0 0 0 1px var(--live-600),var(--shadow-2)}.tile.sync-follower{border-color:var(--live-200);border-style:dashed;box-shadow:var(--shadow-1)}.tile.viewing{border-color:var(--info-600);box-shadow:0 0 0 1px var(--info-600),var(--shadow-2)}.tile.hiddenByViewer{opacity:.2;pointer-events:none}.tileHeader{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-card);border-bottom:1px solid var(--divider);font-size:12px;min-height:40px}.tileHeader .left{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.tileSelectBox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:5px;border:1.5px solid var(--border-strong);background:var(--bg-card);cursor:pointer;display:grid;place-items:center;flex:0 0 auto;transition:background .12s ease,border-color .12s ease}.tileSelectBox:hover{border-color:var(--accent)}.tileSelectBox:checked{background:var(--accent);border-color:var(--accent)}.tileSelectBox:checked:after{content:"✓";font-size:11px;font-weight:800;color:var(--accent-fg);line-height:1}.udidRow{display:flex;align-items:center;gap:6px;min-width:0}.tileNumber{flex:0 0 auto;height:22px;padding:0 8px;border-radius:6px;background:var(--bg-hover);color:var(--fg-1);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace}.tileUdid{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--fg-1);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.tileConnChip{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.4px;flex:0 0 auto;font-family:JetBrains Mono,monospace}.tileConnChip.usb{background:var(--live-50);color:var(--live-700);box-shadow:inset 0 0 0 1px var(--live-200)}.tileConnChip.wifi{background:var(--info-50);color:var(--info-600);box-shadow:inset 0 0 0 1px var(--info-200)}.tileSyncChip{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.3px;background:var(--accent-soft);color:var(--accent);flex:0 0 auto}.tileSyncChip.follower{background:var(--live-50);color:var(--live-700)}.tileActions{display:flex;align-items:center;gap:2px;flex:0 0 auto}.tileIconBtn,.tileDragHandle,.tileViewBtn,.tileReloadBtn{width:28px;height:28px;border-radius:6px;background:transparent;color:var(--fg-2);display:grid;place-items:center;transition:background .12s ease,color .12s ease}.tileIconBtn:hover,.tileViewBtn:hover,.tileReloadBtn:hover{background:var(--bg-hover);color:var(--fg-0)}.tileDragHandle{cursor:grab;opacity:0;transition:opacity .15s ease,background .12s ease,color .12s ease}.tileDragHandle:hover{background:var(--bg-hover);color:var(--fg-0)}.tile:hover .tileDragHandle{opacity:1}.tileBody{position:relative;flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000;overflow:hidden;min-height:0;width:100%}.tileVideoFrame{width:100%;aspect-ratio:var(--tile-aspect, 9/16);display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden}.tileVideoFrame canvas{max-width:100%;max-height:100%;width:auto;height:auto}.tileStatusOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px;text-align:center;background:#000000c7;z-index:20}.tileStatusOverlay.warn{background:#78350fd9}.tileStatusOverlay.error{background:#7f1d1dd9}.tileStatusIcon{color:#93c5fd}.tileStatusOverlay.warn .tileStatusIcon{color:#fde68a}.tileStatusOverlay.error .tileStatusIcon{color:#fecaca}.tileStatusText{font-size:13px;font-weight:600;color:#fff;max-width:240px;line-height:1.4}.tileViewingOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;text-align:center;background:#0f172ac7;z-index:24}.tileViewingIcon{color:var(--info-200)}.tileViewingTitle{font-size:14px;font-weight:700;color:#dbeafe}.tileViewingHint{font-size:12px;color:#bfdbfe;max-width:220px;line-height:1.4}.tileViewingFooter{padding:8px 12px;background:var(--info-50);border-top:1px solid var(--info-200);text-align:center;font-size:12px;color:var(--info-600);font-weight:600}.tile.viewing .tileVideoFrame canvas{display:none}.tileMetrics{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-card);border-top:1px solid var(--divider);min-height:30px;font-size:11px}.tileMetrics__status{display:inline-flex;align-items:center;gap:4px;font-weight:600;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--fg-1)}.tileMetrics__status.live{color:var(--live-700)}.tileMetrics__status.warn{color:var(--warn-700)}.tileMetrics__status.error{color:var(--error-700)}.tileMetrics__status.off{color:var(--fg-3)}.tileMetrics__status .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.tileMetrics__num{color:var(--fg-2);font-family:JetBrains Mono,monospace;font-size:10px}.tileMetrics__spacer{flex:1}.tileMetrics__btn{width:24px;height:24px;border-radius:6px;color:var(--fg-3);display:grid;place-items:center}.tileMetrics__btn:hover{background:var(--bg-hover);color:var(--fg-0)}.tileNav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 10px;background:var(--bg-subtle);border-top:1px solid var(--divider)}.tileNavBtn{height:32px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);display:grid;place-items:center;transition:background .12s ease,color .12s ease,border-color .12s ease}.tileNavBtn:hover{background:var(--bg-card);border-color:var(--accent);color:var(--accent)}.tileNavBtn:active{transform:translateY(1px)}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:10}.spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.streamPanel{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:95vw;background:var(--bg-card);border-left:1px solid var(--border);box-shadow:-16px 0 40px -16px #0f172a2e;z-index:60;display:flex;flex-direction:column;transform:translate(100%);transition:transform .22s ease}.streamPanel.open{transform:translate(0)}.streamPanel__header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border);flex:0 0 auto}.streamPanel__title{font-size:14px;font-weight:700;color:var(--fg-0)}.streamPanel__sub{font-size:11px;color:var(--fg-2);margin-top:2px}.streamPanel__body{flex:1;min-height:0;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:18px}.streamPanel__group{display:flex;flex-direction:column;gap:10px}.streamPanel__sectionLabel{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3)}.sliderRow{display:flex;flex-direction:column;gap:6px}.sliderRow__top{display:flex;align-items:center;justify-content:space-between;font-size:12px}.sliderRow__label{color:var(--fg-1);font-weight:500}.sliderRow__value{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.sliderRow__controls{display:flex;align-items:center;gap:6px}.stepBtn{width:26px;height:26px;border-radius:6px;background:var(--bg-hover);color:var(--fg-1);display:grid;place-items:center;font-size:13px;line-height:1;transition:background .12s ease,color .12s ease}.stepBtn:hover{background:var(--bg-elevated);color:var(--fg-0);box-shadow:0 0 0 1px var(--border-strong) inset}input[type=range].rangeInput{flex:1;-moz-appearance:none;appearance:none;-webkit-appearance:none;height:4px;background:var(--bg-hover);border-radius:var(--radius-pill);outline:none}input[type=range].rangeInput::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);cursor:pointer;box-shadow:0 1px 4px #0f172a2e}input[type=range].rangeInput::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);cursor:pointer;box-shadow:0 1px 4px #0f172a2e}.inlineWarn{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:var(--warn-50);border:1px solid var(--warn-200);border-radius:var(--radius-md);color:var(--warn-700);font-size:12px;line-height:1.4}.inlineWarn svg{flex:0 0 auto;margin-top:1px}.inlineWarn .actions{display:flex;gap:6px;margin-top:6px}.dialogBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f172a66;display:flex;align-items:center;justify-content:center;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialogPanel{width:min(560px,100%);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-3);display:flex;flex-direction:column;overflow:hidden;max-height:88vh}.dialogHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.dialogTitle{font-size:15px;font-weight:700;color:var(--fg-0)}.dialogTitle.warn{color:var(--warn-700)}.dialogTitle.danger{color:var(--error-700)}.dialogBody{padding:16px 18px;display:flex;flex-direction:column;gap:12px;overflow:auto}.dialogText{font-size:13px;color:var(--fg-1);line-height:1.55}.dialogFooter{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;background:var(--bg-subtle)}.connectList{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto}.connectRow{display:grid;grid-template-columns:1fr 110px;gap:10px;align-items:center;padding:8px 10px;background:var(--bg-subtle);border-radius:var(--radius-md)}.connectId{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--fg-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connectPort{height:32px;padding:0 10px;border-radius:6px;background:var(--bg-card);border:1px solid var(--border);color:var(--fg-0);font-size:12px;font-family:JetBrains Mono,monospace}.floatingLoader{position:fixed;right:20px;bottom:20px;display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:var(--radius-pill);background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);box-shadow:var(--shadow-2);z-index:101;font-size:12px}.floatingLoaderDot{width:14px;height:14px;border-radius:50%;border:2px solid var(--bg-hover);border-top-color:var(--accent);animation:spin .8s linear infinite}.viewerOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0f172a80;display:flex;align-items:center;justify-content:center;padding:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.viewerOverlayPanelWrap{display:flex;align-items:center;justify-content:center;transform:translate(var(--viewer-dx, 0px),var(--viewer-dy, 0px))}.viewerOverlayPanel{width:min(var(--viewer-width, 1000px),95vw);max-height:min(90vh,1200px);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-3);overflow:hidden;display:flex;flex-direction:column}.viewerHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--bg-card);border-bottom:1px solid var(--border);cursor:move;flex:0 0 auto}.viewerHeaderRight{display:flex;align-items:center;gap:8px}.viewerTitle{display:flex;flex-direction:column;gap:2px;min-width:0}.viewerUdid{font-family:JetBrains Mono,monospace;font-weight:600;font-size:13px;color:var(--fg-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewerStatus{font-size:11px;color:var(--fg-2)}.viewerTabs{display:inline-flex;background:var(--bg-hover);border-radius:8px;padding:2px;gap:2px}.viewerTab{height:28px;padding:0 12px;border-radius:6px;background:transparent;color:var(--fg-2);font-size:12px;font-weight:500}.viewerTab:hover{color:var(--fg-0)}.viewerTab.on{background:var(--bg-card);color:var(--accent);font-weight:600;box-shadow:var(--shadow-1)}.viewerClose{width:32px;height:32px;border-radius:8px;background:var(--bg-hover);color:var(--fg-1);display:grid;place-items:center}.viewerClose:hover{background:var(--error-50);color:var(--error-700)}.viewerBody{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden}.viewerBody.viewMode{flex:0 0 auto}.viewerMain{width:100%;display:flex;align-items:stretch}.viewerActions{width:50px;flex:0 0 auto;display:flex;flex-direction:column;gap:6px;padding:10px 7px;background:var(--bg-subtle);border-left:1px solid var(--border);cursor:move}.viewerActionBtn{width:100%;height:36px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);display:grid;place-items:center}.viewerActionBtn:hover{background:var(--bg-card);color:var(--accent);border-color:var(--accent)}.viewerActionSep{height:1px;background:var(--border);margin:4px 0}.viewerCanvasWrap{width:100%;height:auto;max-height:100%;aspect-ratio:var(--viewer-aspect, .5625);display:flex;align-items:center;justify-content:center;background:#000}.viewerCanvas{display:block;width:100%;height:100%}.viewerPanelInner{width:100%;height:100%;display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--bg-card)}.viewerFsTop{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.viewerFsPath{display:flex;gap:8px;align-items:center;flex:1;min-width:0}.viewerFsBtn{height:32px;padding:0 12px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);font-size:12px}.viewerFsBtn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.viewerFsBtn:disabled{opacity:.5;cursor:not-allowed}.viewerFsPathInput{flex:1;min-width:220px;height:32px;padding:0 10px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);color:var(--fg-0);font-size:12px;font-family:JetBrains Mono,monospace}.viewerFsMain{flex:1;min-height:0;display:flex;gap:10px}.viewerFsList{flex:1;min-width:220px;border:1px solid var(--border);border-radius:10px;overflow:auto;background:var(--bg-card)}.viewerFsRow{width:100%;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;border-bottom:1px solid var(--divider);color:var(--fg-1);cursor:pointer;text-align:left;font-size:12px}.viewerFsRow:hover{background:var(--bg-hover)}.viewerFsName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewerFsMeta{color:var(--fg-3);font-size:11px;flex:0 0 auto}.viewerFsPreview{flex:1.4;min-width:240px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg-card);display:flex;flex-direction:column}.viewerFsPreviewTop{padding:8px 10px;border-bottom:1px solid var(--divider);display:flex;gap:8px;align-items:center;justify-content:space-between}.viewerFsSmall{font-size:11px;color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:right}.viewerFsImg{width:100%;height:100%;object-fit:contain}.viewerFsText{margin:0;padding:12px;overflow:auto;flex:1;font-size:12px;color:var(--fg-1);background:var(--bg-card);font-family:JetBrains Mono,monospace;white-space:pre-wrap}.viewerHint{padding:12px;font-size:12px;color:var(--fg-2)}.viewerError{padding:8px 10px;border:1px solid var(--error-200);background:var(--error-50);border-radius:8px;color:var(--error-700);font-size:12px}.viewerAppsList{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--bg-card)}.viewerAppsRow{padding:10px 12px;border-bottom:1px solid var(--divider)}.viewerAppsName{font-weight:600;font-size:12px;color:var(--fg-0)}.viewerAppsPath{font-size:11px;color:var(--fg-3);margin-top:2px;font-family:JetBrains Mono,monospace}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);font-size:13px;font-weight:500;transition:background .12s ease,border-color .12s ease,color .12s ease;white-space:nowrap}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--fg-0)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-fg)}.btn.success{background:var(--live-600);border-color:var(--live-600);color:#fff}.btn.danger{background:var(--bg-card);border-color:var(--error-200);color:var(--error-700)}.btn.danger:hover{background:var(--error-50);border-color:var(--error-200);color:var(--error-700)}.btn.ghost{background:transparent;border-color:transparent;color:var(--fg-1)}.btn.ghost:hover{background:var(--bg-hover);color:var(--fg-0)}.btn.sm{height:30px;padding:0 10px;font-size:12px}.formInput,.formSelect{height:34px;padding:0 10px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--fg-0);font-size:13px;outline:none;width:100%}.formInput:focus,.formSelect:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}.formLabel{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--fg-1)}.statusPill{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;line-height:18px;letter-spacing:.2px;ring:1px}.statusPill.live{background:var(--live-50);color:var(--live-700);box-shadow:inset 0 0 0 1px var(--live-200)}.statusPill.warn{background:var(--warn-50);color:var(--warn-700);box-shadow:inset 0 0 0 1px var(--warn-200)}.statusPill.error{background:var(--error-50);color:var(--error-700);box-shadow:inset 0 0 0 1px var(--error-200)}.statusPill.off{background:var(--bg-hover);color:var(--fg-2);box-shadow:inset 0 0 0 1px var(--border)}.statusPill__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.popover{position:absolute;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-popover);padding:10px;z-index:50;min-width:220px}.hashPage{min-height:100vh;padding:18px 20px 32px;background:var(--bg-base);color:var(--fg-0)}.hashPage.shellPage{padding:0;display:flex;flex-direction:column;min-height:100vh}.hashPage .pageHeader{margin-bottom:16px;padding:0;display:block}.hashPage .title{font-size:20px;font-weight:700}.hashPage .subtitle{font-size:13px;color:var(--fg-2)}.hashPage .actionRow{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.hashPage button,.hashPage .uploadLabel{background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:13px}.hashPage button:hover,.hashPage .uploadLabel:hover{background:var(--bg-hover);border-color:var(--border-strong)}.hashPage .uploadLabel{display:inline-flex;align-items:center;gap:6px}.hashPage .statusLine{margin-top:8px;font-size:13px;color:var(--fg-1)}.hashPage .statusLine.error{color:var(--error-700)}.shellPage .shellContainer{flex:1 1 auto;width:100%;height:calc(100vh - 68px);background:#000;overflow:hidden}.viewerShellWrap{padding:0;height:100%}.viewerShellWrap .hashPage.shellPage{min-height:0;height:100%;background:#000;padding:10px}.viewerShellWrap .shellPage .shellContainer{height:100%}.fileListPage .tableWrap{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:auto}.fileListPage table{width:100%;border-collapse:collapse}.fileListPage th{text-align:left;padding:10px;font-weight:600;border-bottom:1px solid var(--border);color:var(--fg-1);background:var(--bg-subtle);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.fileListPage td{padding:10px;border-bottom:1px solid var(--divider);font-size:13px}.fileListPage tr:hover td{background:var(--bg-hover)}.linkBtn{background:none!important;border:none!important;padding:0!important;color:var(--accent)!important;cursor:pointer;font-size:13px}.linkBtn:hover{text-decoration:underline}.placeholderPage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--fg-2)}.placeholderPage__icon{width:80px;height:80px;border-radius:var(--radius-xl);background:var(--bg-card);border:1px solid var(--border);display:grid;place-items:center;color:var(--accent);margin-bottom:20px;box-shadow:var(--shadow-1)}.placeholderPage__title{font-size:18px;font-weight:700;color:var(--fg-0);margin-bottom:6px}.placeholderPage__subtitle{font-size:13px;max-width:380px;line-height:1.5}.rcpSection{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg)}.rcpTitle{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-2)}.rcpHint,.rcpSyncHint{font-size:12px;color:var(--fg-2);line-height:1.4}.rcpToggleRow{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--fg-1)}.rcpDeviceHeader{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--fg-1)}.rcpDeviceTitle{font-weight:600;color:var(--fg-1)}.rcpSelectPill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--radius-pill);background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);font-size:12px;position:relative;cursor:pointer}.rcpSelectPill input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.rcpSelectPill .rcpSelectIcon{width:14px;text-align:center;font-weight:800;color:var(--live-700)}.rcpSelectPill .rcpSelectCount{color:var(--fg-3);font-variant-numeric:tabular-nums}.rcpSelectPill.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.rcpTab{height:30px;padding:0 12px;border-radius:var(--radius-md);background:var(--bg-hover);border:none;color:var(--fg-1);font-size:12px;font-weight:600}.rcpTab.active{background:var(--accent);color:var(--accent-fg)}.rcpGridWrap{display:flex;flex-direction:column;gap:6px}.rcpGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.rcpGridCompact .rcpGridItem{padding:0;height:36px}.rcpGridItem{position:relative;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--fg-1);font-size:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:600;font-family:JetBrains Mono,monospace;font-variant-numeric:tabular-nums;height:36px;transition:all .12s ease}.rcpGridItem:hover{background:var(--bg-hover);border-color:var(--border-strong)}.rcpGridItem input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.rcpGridItem.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.modalActions{display:flex;justify-content:flex-end;gap:8px}.modalBtn{height:32px;padding:0 12px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);font-size:12px;cursor:pointer}.modalBtn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.modalBtnPrimary{height:32px;padding:0 14px;border-radius:var(--radius-md);background:var(--accent);border:1px solid var(--accent);color:var(--accent-fg);font-size:12px;font-weight:600;cursor:pointer}.modalBtnPrimary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.modalBtnPrimary:disabled{opacity:.5;cursor:not-allowed}.modalLabel{font-size:12px;color:var(--fg-1);display:flex;align-items:center;gap:8px}.modalRange{width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;height:4px;background:var(--bg-hover);border-radius:var(--radius-pill);outline:none}.modalRange::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);cursor:pointer}.modalRange::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);cursor:pointer}.cp-select{height:30px;padding:0 10px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--fg-0);font-size:12px;outline:none}@media (max-width: 900px){.appShell{grid-template-columns:var(--sidebar-w-collapsed) minmax(0,1fr)}.appShell .sidebar__brandText,.appShell .sidebar__navLabel,.appShell .sidebar__navBadge,.appShell .sidebar__sectionLabel{display:none}.appShell .sidebar__navItem{justify-content:center;padding:10px}.appShell .sidebar__navItem.active:after{display:none}.headerBar{padding:0 12px;gap:8px}.headerBar__user{display:none}.pageHeader{padding:14px 14px 6px}.filterBar{margin:4px 14px 0;padding:8px 10px}.gridWrap{padding:12px 14px 4px}.bulkBar{margin:12px 14px;padding:8px 10px}}@media (max-width: 560px){#grid{grid-template-columns:1fr}.filterBar{flex-direction:column;align-items:stretch}.filterBar__group{justify-content:space-between}}.accountsTableWrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-1)}.accountsTable{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.accountsTable thead tr{background:var(--bg-subtle)}.accountsTable th{text-align:left;padding:10px 12px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-2);border-bottom:1px solid var(--border);border-right:1px solid var(--divider)}.accountsTable th:last-child{border-right:none}.accountsTable td{padding:10px 12px;border-bottom:1px solid var(--divider);border-right:1px solid var(--divider);vertical-align:middle;color:var(--fg-1)}.accountsTable td:last-child{border-right:none}.accountsTable tbody tr:hover td{background:var(--bg-subtle)}.accountsTable tbody tr:last-child td{border-bottom:none}.cellNum{text-align:center;color:var(--fg-3);font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace;font-size:12px}.cellAccount{font-weight:600;color:var(--fg-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cellMeta{margin-top:2px;font-size:11px;color:var(--fg-3)}.cellDevice{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--bg-hover);border-radius:6px;font-size:12px;color:var(--fg-1)}.cellEmpty{font-size:12px;color:var(--fg-3);font-style:italic}.cellDate{display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.3}.cellDate__label{color:var(--fg-3);margin-right:4px}.cellNote{font-size:12px;color:var(--fg-2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.accountActions{display:inline-flex;align-items:center;gap:2px;flex-wrap:wrap}.accountAction{position:relative;width:30px;height:30px;border-radius:6px;background:transparent;color:var(--fg-2);display:grid;place-items:center;transition:background .12s ease,color .12s ease}.accountAction:hover{background:var(--bg-hover);color:var(--accent)}.accountAction.activity:hover{background:var(--live-50);color:var(--live-700)}.accountAction.messages:hover{background:var(--info-50);color:var(--info-600)}.accountAction.danger:hover{background:var(--error-50);color:var(--error-700)}.accountAction__badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:14px;padding:0 3px;border-radius:9999px;background:var(--live-600);color:#fff;font-size:9px;font-weight:700;line-height:14px;text-align:center;border:1.5px solid var(--bg-card);font-variant-numeric:tabular-nums}.accountAction__badge.danger{background:var(--error-600)}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.formField{display:flex;flex-direction:column;gap:4px}.formField__label{font-size:12px;color:var(--fg-1);font-weight:500}.dialogPanel:has(.settingsDialogBody){width:min(880px,100%);max-height:86vh}.settingsDialogBody{display:grid;grid-template-columns:200px minmax(0,1fr);min-height:460px;margin:-16px -18px}.settingsTabsNav{display:flex;flex-direction:column;gap:2px;padding:12px 8px;border-right:1px solid var(--border);background:var(--bg-subtle);overflow:auto}.settingsTabBtn{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;background:transparent;color:var(--fg-1);font-size:13px;font-weight:500;text-align:left;transition:background .12s ease,color .12s ease}.settingsTabBtn:hover{background:#ffffffb3;color:var(--fg-0)}.settingsTabBtn.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.settingsTabBtn__icon{display:grid;place-items:center;color:currentColor}.settingsTabPanel{padding:16px 20px;overflow:auto}.settingsTab{display:flex;flex-direction:column;gap:14px}.settingsRow{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;align-items:center}.settingsRow:has(textarea){align-items:flex-start}.settingsLabel{font-size:12px;font-weight:500;color:var(--fg-1)}.settingsControl{display:flex;align-items:center;gap:8px}.switchRow{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-1);cursor:pointer}.switchRow input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:36px;height:20px;border-radius:10px;background:var(--bg-hover);position:relative;cursor:pointer;transition:background .16s ease}.switchRow input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--bg-card);box-shadow:0 1px 3px #0f172a2e;transition:transform .16s ease}.switchRow input[type=checkbox]:checked{background:var(--accent)}.switchRow input[type=checkbox]:checked:after{transform:translate(16px)}.emotionGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}.emotionChip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);color:var(--fg-1);font-size:12px;font-weight:500;transition:all .12s ease}.emotionChip:hover{border-color:var(--border-strong)}.emotionChip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.emotionChip__icon{font-size:16px;line-height:1}.aiTemplateCard{padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md)}@media (max-width: 720px){.settingsDialogBody{grid-template-columns:1fr}.settingsTabsNav{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}.settingsTabBtn{white-space:nowrap}.settingsRow{grid-template-columns:1fr;align-items:flex-start}.formGrid{grid-template-columns:1fr}.emotionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.spinner,.floatingLoaderDot{animation:none!important;border-top-color:transparent}.streamPanel,.inspector{transition:none!important}.bulkBar{animation:none!important}}@media (max-width: 720px){.appShell{grid-template-columns:1fr;position:relative}.appShell .sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;z-index:110;transform:translate(-100%);transition:transform .22s ease;box-shadow:8px 0 32px -8px #0f172a40}.appShell.sidebarOverlayOpen .sidebar{transform:translate(0)}.appShell.sidebarOverlayOpen .sidebar__brandText,.appShell.sidebarOverlayOpen .sidebar__navLabel,.appShell.sidebarOverlayOpen .sidebar__navBadge,.appShell.sidebarOverlayOpen .sidebar__sectionLabel{display:revert}.appShell.sidebarOverlayOpen .sidebar__navItem{justify-content:flex-start;padding:10px 12px}.headerBar__hamburger{display:inline-grid!important}.accountsTableWrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.accountsTable{min-width:720px}.filterBar__pills{width:100%}.filterBar__pill{flex:1;justify-content:center}.viewerOverlayPanel{width:100vw!important;max-height:100vh;border-radius:0}.viewerActions{width:44px}.pageHeader{flex-direction:column;align-items:stretch}.pageHeader__stats{justify-content:flex-start}}.headerBar__hamburger{display:none;width:38px;height:38px;border-radius:var(--radius-md);background:transparent;color:var(--fg-1);align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease;flex:0 0 auto;margin-right:4px}.headerBar__hamburger:hover{background:var(--bg-hover);color:var(--fg-0)}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}
