*{box-sizing:border-box}:root,[data-theme=dark]{--bg-page: #0f1419;--bg-card: #1a2332;--bg-elevated: #161e2a;--bg-hover: #1e293b;--bg-active: #1e3a5f;--border: #2a3544;--text: #e4e8ec;--text-muted: #94a3b8;--text-dim: #64748b;--accent: #3b82f6;--accent-hover: #2563eb;--card-bg: var(--bg-card);--border-color: var(--border);--primary: var(--accent);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-card: 0 6px 18px rgba(2, 6, 23, .22);--shadow-soft: 0 2px 8px rgba(2, 6, 23, .16);--focus-ring: 0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent)}[data-theme=light]{--bg-page: #f1f5f9;--bg-card: #ffffff;--bg-elevated: #f8fafc;--bg-hover: #e2e8f0;--bg-active: #dbeafe;--border: #cbd5e1;--text: #0f172a;--text-muted: #475569;--text-dim: #64748b;--accent: #2563eb;--accent-hover: #1d4ed8;--card-bg: var(--bg-card);--border-color: var(--border);--primary: var(--accent);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-card: 0 6px 18px rgba(15, 23, 42, .08);--shadow-soft: 0 2px 8px rgba(15, 23, 42, .06);--focus-ring: 0 0 0 2px color-mix(in srgb, var(--accent) 22%, transparent)}body{margin:0;min-height:100vh;background:var(--bg-page);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.45}#root{min-height:100vh}button,input,select,textarea{font:inherit}button{border-radius:var(--radius-sm)}input:focus,select:focus,textarea:focus,button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.connection-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page, #0f1419)}.connection-loading-inner{text-align:center;color:#94a3b8}.connection-spinner{width:32px;height:32px;border:3px solid #2a3544;border-top-color:#3b82f6;border-radius:50%;animation:connection-spin .8s linear infinite;margin:0 auto 16px}@keyframes connection-spin{to{transform:rotate(360deg)}}.connection-loading p{margin:4px 0;font-size:14px}.connection-hint{font-size:12px!important;color:#64748b!important}.filters-row{margin-bottom:16px}.filter-group label{display:block;font-size:13px;color:#94a3b8;margin-bottom:8px}.project-tabs button{padding:8px 16px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;font-size:13px}.project-tabs button.active{background:var(--bg-active);color:var(--accent);border-color:var(--accent)}.badge{font-size:11px;margin-left:4px}.search-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:20px}.input,.select{padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:13px}.input{min-width:160px}.btn-primary{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;box-shadow:var(--shadow-soft)}.btn-secondary{padding:8px 16px;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;background:var(--bg-card);box-shadow:var(--shadow-soft)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}.data-table th{background:var(--bg-elevated);color:var(--text-muted);font-weight:500}.data-table tbody tr:hover{background:var(--bg-hover)}.pill-blue{background:#1e3a5f;color:#60a5fa}.pill-green{background:#065f46;color:#34d399}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:14px}.table-footer{display:flex;gap:12px;align-items:center;padding:12px 0;font-size:13px;color:#94a3b8}.page-title{font-size:18px;font-weight:600;margin-bottom:20px;color:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}[data-theme=light] .camera-page,[data-theme=light] .teleop-page,[data-theme=light] .ops-page,[data-theme=light] .bigscreen-page,[data-theme=light] .anno-studio,[data-theme=light] .header-chat-dropdown{color:var(--text)}[data-theme=light] .camera-device-section,[data-theme=light] .camera-device-card,[data-theme=light] .camera-call-device-select,[data-theme=light] .camera-controls select,[data-theme=light] .camera-recording-history,[data-theme=light] .history-item,[data-theme=light] .history-playback,[data-theme=light] .camera-mode-tabs button,[data-theme=light] .ai-connect-panel,[data-theme=light] .ip-geo-panel,[data-theme=light] .remote-setup input,[data-theme=light] .camera-recent-btn,[data-theme=light] .remote-robot-panel,[data-theme=light] .call-network-panel,[data-theme=light] .call-chat-panel,[data-theme=light] .call-chat-msg,[data-theme=light] .call-chat-input input[type=text],[data-theme=light] .remote-cam-cell,[data-theme=light] .call-cell{background:var(--bg-card)!important;border-color:var(--border)!important;color:var(--text)!important}[data-theme=light] .camera-device-title,[data-theme=light] .remote-desc,[data-theme=light] .history-title,[data-theme=light] .playback-label,[data-theme=light] .ip-geo-panel h4,[data-theme=light] .call-network-panel h4,[data-theme=light] .call-chat-from,[data-theme=light] .call-label,[data-theme=light] .header-chat-btn,[data-theme=light] .header-chat-conv-item,[data-theme=light] .avatar-menu-email{color:var(--text-muted)!important}[data-theme=light] .header-chat-btn:hover,[data-theme=light] .header-chat-conv-item:hover{background:var(--bg-hover)!important;color:var(--text)!important}[data-theme=light] .header-chat-dropdown,[data-theme=light] .header-chat-sidebar,[data-theme=light] .header-chat-main,[data-theme=light] .avatar-menu,[data-theme=light] .header-chat-input-row,[data-theme=light] .header-chat-stream,[data-theme=light] .header-chat-header{background:var(--bg-card)!important;border-color:var(--border)!important;color:var(--text)!important}[data-theme=light] .header-chat-conv-item.active{background:var(--bg-active)!important;color:var(--accent)!important}[data-theme=light] .bigscreen-page{background:var(--bg-page)!important}[data-theme=light] .bigscreen-status>div,[data-theme=light] .bigscreen-controls input,[data-theme=light] .bigscreen-controls button,[data-theme=light] .panel,[data-theme=light] .video-tile,[data-theme=light] .json-box,[data-theme=light] .participant{background:var(--bg-card)!important;border-color:var(--border)!important;color:var(--text)!important}[data-theme=light] .panel h3,[data-theme=light] .chat-from{color:var(--accent)!important}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0f1419;padding:24px}.login-card{width:100%;max-width:400px;padding:32px;background:#1a2332;border:1px solid #2a3544;border-radius:16px}.login-logo{width:48px;height:48px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;margin:0 auto 16px}.login-card h2{text-align:center;margin:0 0 8px;font-size:20px;color:#e4e8ec}.login-hint{text-align:center;color:#94a3b8;font-size:13px;margin-bottom:24px}.login-backend-warn{padding:10px 14px;background:#f59e0b33;color:#fcd34d;border:1px solid rgba(245,158,11,.4);border-radius:8px;font-size:13px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.login-retry-btn{flex-shrink:0;padding:6px 12px;background:#f59e0b66;color:#fcd34d;border:1px solid rgba(245,158,11,.6);border-radius:6px;font-size:12px;cursor:pointer}.login-retry-btn:hover{background:#f59e0b80}.login-tabs{display:flex;gap:0;margin-bottom:24px}.login-tabs button{flex:1;padding:10px;border:1px solid #2a3544;background:#161e2a;color:#94a3b8;cursor:pointer;font-size:14px}.login-tabs button:first-child{border-radius:8px 0 0 8px}.login-tabs button:last-child{border-radius:0 8px 8px 0;border-left:none}.login-tabs button.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.login-form input{width:100%;padding:12px 16px;margin-bottom:12px;border:1px solid #2a3544;border-radius:8px;background:#0f1419;color:#e4e8ec;font-size:14px;box-sizing:border-box}.login-form input::placeholder{color:#64748b}.login-error{padding:10px;background:#ef444433;color:#fca5a5;border-radius:8px;font-size:13px;margin-bottom:12px}.login-form button{width:100%;padding:12px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:15px;cursor:pointer}.login-form button:hover:not(:disabled){background:#2563eb}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-clear-cache{width:100%;margin-top:12px;padding:8px;background:transparent;color:#94a3b8;border:none;font-size:12px;cursor:pointer;text-decoration:underline}.login-clear-cache:hover{color:#cbd5e1}.login-guest-btn{width:100%;margin-top:10px;padding:10px 12px;background:transparent;color:#93c5fd;border:1px dashed rgba(59,130,246,.5);border-radius:8px;font-size:13px;cursor:pointer}.login-guest-btn:hover{background:#3b82f61f;color:#bfdbfe}.header-ai-assistant{position:relative}.header-ai-btn{padding:4px 10px;border:none;background:none;color:#94a3b8;cursor:pointer;font-size:18px;border-radius:6px}.header-ai-btn:hover{color:#e4e8ec;background:#2a3544}.header-ai-backdrop{position:fixed;inset:0;z-index:999}.header-ai-dropdown{position:absolute;top:100%;right:0;margin-top:8px;z-index:1000;width:440px;max-height:520px;background:#1a2332;border:1px solid #2a3544;border-radius:12px;box-shadow:0 12px 40px #0006;display:flex;flex-direction:column;overflow:hidden}.header-ai-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #2a3544;flex-shrink:0}.header-ai-title{font-size:15px;font-weight:600;color:#f1f5f9}.header-ai-close{width:28px;height:28px;border:none;background:transparent;color:#94a3b8;font-size:20px;cursor:pointer;line-height:1}.header-ai-close:hover{color:#fff}.header-ai-messages{flex:1;overflow-y:auto;padding:16px;min-height:200px;max-height:340px}.header-ai-welcome{padding:14px;background:#0f1419;border-radius:10px;font-size:13px;color:#94a3b8;line-height:1.6;white-space:pre-wrap}.header-ai-quick-actions{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.header-ai-quick-btn{border:1px solid #334155;background:#111827;color:#cbd5e1;border-radius:999px;font-size:12px;padding:6px 10px;cursor:pointer}.header-ai-quick-btn:hover{background:#1f2937;color:#f8fafc}.header-ai-msg{margin-bottom:10px}.header-ai-msg-user{text-align:right}.header-ai-msg-user .header-ai-msg-content{display:inline-block;padding:10px 14px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border-radius:12px 12px 4px;font-size:13px;max-width:90%}.header-ai-msg-assistant .header-ai-msg-content{display:inline-block;padding:10px 14px;background:#1e293b;color:#e2e8f0;border-radius:12px 12px 12px 4px;font-size:13px;max-width:95%;line-height:1.5}.header-ai-link{color:#93c5fd;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.header-ai-link:hover{color:#bfdbfe}.header-ai-input-wrap{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #2a3544;flex-shrink:0}.header-ai-input{flex:1;padding:10px 14px;border-radius:8px;border:1px solid #2a3544;background:#0f1419;color:#e2e8f0;font-size:13px}.header-ai-input::placeholder{color:#64748b}.header-ai-send{padding:10px 18px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:13px;cursor:pointer}.header-ai-send:hover{opacity:.95}.header-chat{position:relative}.header-chat-backdrop{position:fixed;inset:0;z-index:999}.header-chat-btn{position:relative;padding:4px 10px;border:none;background:none;color:#94a3b8;cursor:pointer;font-size:16px;border-radius:6px}.header-chat-btn:hover{color:#e4e8ec;background:#2a3544}.header-chat-badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;background:#ef4444;color:#fff;font-size:10px;border-radius:8px;display:flex;align-items:center;justify-content:center}.header-chat-dropdown{position:absolute;top:100%;right:0;margin-top:8px;z-index:1000;overflow:visible;width:520px;max-height:520px;background:#1a2332;border:1px solid #2a3544;border-radius:12px;box-shadow:0 12px 40px #0006;display:flex;flex-direction:column}.header-chat-body{display:flex;flex:1;min-height:320px;overflow:hidden}.header-chat-sidebar{width:140px;flex-shrink:0;border-right:1px solid #2a3544;display:flex;flex-direction:column}.header-chat-conversations{flex:1;overflow-y:auto;padding:8px 0}.header-chat-conv-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:8px 12px;border:none;background:none;color:#94a3b8;cursor:pointer;font-size:12px;text-align:left;transition:background .2s}.header-chat-conv-item:hover{background:#1e293b;color:#e4e8ec}.header-chat-conv-item.active{background:#1e3a5f;color:#3b82f6}.chat-avatar{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:50%;flex-shrink:0;font-weight:600;overflow:hidden}.chat-avatar-img{border-radius:50%;object-fit:cover;flex-shrink:0;display:block}.avatar-menu-capabilities{padding:6px 10px;border-bottom:1px solid #2a3544;display:flex;flex-wrap:wrap;gap:4px}.avatar-menu-profile{padding:8px 10px 6px;border-bottom:1px solid #2a3544}.avatar-menu-name{font-size:13px;color:#e4e8ec;font-weight:600}.avatar-menu-email{font-size:11px;color:#94a3b8;margin-top:2px}.cap-tag{font-size:10px;background:#1e3a5f;color:#60a5fa;padding:2px 6px;border-radius:4px}.header-chat-share-btn{padding:6px 10px;border:none;background:#374151;color:#fff;border-radius:6px;cursor:pointer;font-size:14px}.conv-row{display:flex;align-items:center;gap:8px;width:100%}.conv-avatars{display:flex;align-items:center;flex-shrink:0;gap:2px}.conv-avatar-btn{padding:0;border:none;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.conv-avatar-btn:hover{opacity:.9}.conv-avatars .chat-avatar,.conv-avatars .chat-avatar-img{margin-left:-6px;min-width:24px;min-height:24px}.conv-avatars>*:first-child{margin-left:0}.conv-info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start}.header-chat-conv-item .conv-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.header-chat-conv-item .conv-meta{font-size:10px;color:#64748b;margin-top:2px}.header-chat-join-row{display:flex;gap:6px;padding:8px;border-top:1px solid var(--border)}.header-chat-join-input{flex:1;min-width:0;padding:6px 10px;font-size:11px;border:1px solid var(--border);border-radius:6px;background:var(--bg-page);color:var(--text)}.header-chat-join-input::placeholder{color:var(--text-dim)}.header-chat-join-input:focus{outline:none;border-color:var(--accent)}.header-chat-join-btn{padding:6px 12px;font-size:11px;border:none;background:var(--accent);color:#fff;border-radius:6px;cursor:pointer;flex-shrink:0}.header-chat-join-btn:hover:not(:disabled){background:var(--accent-hover)}.header-chat-join-btn:disabled{opacity:.5;cursor:not-allowed}.header-chat-new{padding:8px 12px;border:none;background:#2a3544;color:#3b82f6;cursor:pointer;font-size:12px;margin:8px;border-radius:6px}.header-chat-new:hover{background:#374151}.header-chat-new:disabled{opacity:.6;cursor:not-allowed}.header-chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.header-chat-error{margin:8px 12px 0;padding:6px 8px;background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:#fca5a5;font-size:12px;border-radius:6px}.header-chat-header{padding:12px;border-bottom:1px solid #2a3544}.header-chat-participants{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.header-chat-avatar-btn{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #2a3544;border-radius:20px;background:#0f1419;color:#e4e8ec;cursor:pointer;font-size:12px;transition:background .2s}.header-chat-avatar-btn:hover{background:#1e293b;border-color:#3b82f6}.header-chat-avatar-btn .participant-name{max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-chat-session-hint{font-size:11px;color:#64748b;margin-top:6px}.header-chat-session{display:flex;gap:6px;margin-top:8px}.header-chat-session input{flex:1;padding:6px 10px;font-size:12px;border-radius:6px;border:1px solid #2a3544;background:#0f1419;color:#e4e8ec}.header-chat-session button{padding:6px 10px;font-size:12px;border-radius:6px;border:none;cursor:pointer;background:#374151;color:#fff}.header-chat-session .btn-join{background:#3b82f6}.header-chat-session .btn-leave{background:#64748b}.header-chat-session .btn-rename{background:#475569}.header-chat-messages{flex:1;min-height:200px;max-height:280px;overflow-y:auto;padding:12px}.header-chat-empty{color:#64748b;font-size:13px;text-align:center;padding:24px}.header-chat-msg{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;font-size:13px}.header-chat-msg .msg-avatar-btn{padding:0;border:none;background:none;cursor:pointer;flex-shrink:0;width:26px;height:26px;min-width:26px;min-height:26px;display:flex;align-items:center;justify-content:center}.header-chat-msg .msg-avatar-btn:hover{opacity:.9}.header-chat-msg.self .msg-avatar-btn{cursor:default}.header-chat-msg .msg-body{flex:1;min-width:0;padding:8px 10px;background:#0f1419;border-radius:8px}.header-chat-msg.self .msg-body{background:#1e3a5f}.header-chat-msg .msg-from{font-size:11px;color:#94a3b8;display:block;margin-bottom:4px}.msg-reply-quote{border-left:2px solid #3b82f6;background:#1e3a5f59;padding:4px 8px;border-radius:4px;margin-bottom:6px;display:flex;flex-direction:column;gap:2px}.msg-reply-from{font-size:10px;color:#93c5fd}.msg-reply-preview{font-size:11px;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-rich-text{white-space:pre-wrap;word-break:break-word}.msg-text-block{display:block}.msg-code-block{margin-top:6px;border:1px solid #334155;border-radius:6px;overflow:hidden;background:#020617}.msg-code-head{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid #334155;font-size:11px;color:#94a3b8}.msg-code-head button{border:1px solid #334155;background:#0f172a;color:#cbd5e1;border-radius:4px;font-size:11px;padding:2px 8px;cursor:pointer}.msg-code-head button:hover{background:#1e293b}.msg-code-block pre{margin:0;padding:8px 10px;overflow-x:auto;font-size:12px;line-height:1.45;color:#e2e8f0}.msg-code-block code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.msg-actions{display:flex;justify-content:flex-end;margin-top:6px}.msg-reply-btn{border:none;background:transparent;color:#93c5fd;font-size:11px;cursor:pointer;padding:0}.msg-reply-btn:hover{text-decoration:underline}.header-chat-msg img{max-width:100%;max-height:120px;border-radius:6px}.header-chat-msg video{max-width:100%;max-height:120px;border-radius:6px}.header-chat-msg audio{width:100%;margin-top:4px}.header-chat-input{display:flex;gap:6px;padding:12px;border-top:1px solid #2a3544}.header-chat-replying{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid #2a3544;background:#1e3a5f40;font-size:12px;color:#cbd5e1}.header-chat-replying button{border:none;background:transparent;color:#93c5fd;cursor:pointer;font-size:12px}.header-chat-input input[type=text]{flex:1;padding:8px 12px;font-size:13px;border-radius:6px;border:1px solid #2a3544;background:#0f1419;color:#e4e8ec}.header-chat-input .btn-send{padding:8px 14px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px}.header-chat-input .btn-voice{padding:8px 10px;border-radius:6px;border:1px solid #2a3544;background:#1f2937;color:#e5e7eb;cursor:pointer}.header-chat-input .btn-voice.active{background:#dc2626;border-color:#ef4444;color:#fff}.header-chat-stt-draft{padding:6px 12px 10px;font-size:12px;color:#cbd5e1;border-top:1px dashed #2a3544}.header-chat-stt-draft .stt-interim{opacity:.8}.header-chat-stt-live{padding:6px 12px 10px;border-top:1px dashed #2a3544;display:flex;flex-direction:column;gap:4px}.header-chat-stt-item{display:flex;gap:8px;font-size:11px;color:#93c5fd}.header-chat-stt-item span:last-child{color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-chat-avatar-menu{position:fixed;z-index:1001;background:#1a2332;border:1px solid #2a3544;border-radius:8px;padding:4px;min-width:140px;box-shadow:0 8px 24px #0006}.header-chat-avatar-menu button{display:block;width:100%;padding:8px 12px;border:none;background:none;color:#e4e8ec;cursor:pointer;font-size:13px;text-align:left;border-radius:6px}.header-chat-avatar-menu button:hover{background:#1e293b}.header-chat-new-modal{position:absolute;inset:0;background:#0009;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1002;border-radius:12px}.new-modal-header{display:flex;align-items:center;justify-content:space-between;width:90%;max-width:320px;padding:12px 0;color:#e4e8ec;font-weight:600}.new-modal-close{padding:4px 10px;border:none;background:none;color:#94a3b8;cursor:pointer;font-size:20px;line-height:1}.new-modal-close:hover{color:#e4e8ec}.new-modal-search{width:90%;max-width:320px;padding:10px 14px;font-size:14px;border-radius:8px;border:1px solid #2a3544;background:#0f1419;color:#e4e8ec;margin-bottom:12px}.new-modal-list{width:90%;max-width:320px;max-height:240px;overflow-y:auto;background:#1a2332;border-radius:8px;border:1px solid #2a3544}.new-modal-user{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:none;background:none;color:#e4e8ec;cursor:pointer;font-size:14px;text-align:left;transition:background .2s}.new-modal-user:hover{background:#1e293b}.new-modal-user .chat-avatar{flex-shrink:0}.new-modal-user div{display:flex;flex-direction:column;align-items:flex-start}.new-modal-username{font-weight:500}.new-modal-email{font-size:11px;color:#64748b;margin-top:2px}.new-modal-empty,.new-modal-login-hint{padding:24px;color:#64748b;font-size:13px;text-align:center}[data-theme=light] .header-chat-btn{color:var(--text-muted)}[data-theme=light] .header-chat-btn:hover{color:var(--text);background:var(--bg-hover)}[data-theme=light] .header-chat-dropdown,[data-theme=light] .header-chat-sidebar,[data-theme=light] .header-chat-header,[data-theme=light] .header-chat-input,[data-theme=light] .header-chat-replying,[data-theme=light] .header-chat-avatar-menu,[data-theme=light] .new-modal-list,[data-theme=light] .new-modal-search{background:var(--bg-card);border-color:var(--border);color:var(--text)}[data-theme=light] .header-chat-conv-item{color:var(--text-muted)}[data-theme=light] .header-chat-conv-item:hover{background:var(--bg-hover);color:var(--text)}[data-theme=light] .header-chat-conv-item.active{background:var(--bg-active);color:var(--accent)}[data-theme=light] .header-chat-msg .msg-body{background:#eef2ff;color:var(--text);border:1px solid #dbeafe}[data-theme=light] .header-chat-msg.self .msg-body{background:#dbeafe;color:#0f172a;border:1px solid #bfdbfe}[data-theme=light] .header-chat-msg .msg-from,[data-theme=light] .header-chat-session-hint,[data-theme=light] .header-chat-empty,[data-theme=light] .header-chat-conv-item .conv-meta,[data-theme=light] .new-modal-email{color:var(--text-muted)}[data-theme=light] .msg-reply-quote{background:#eff6ff;border-left-color:var(--accent)}[data-theme=light] .msg-reply-from{color:#1d4ed8}[data-theme=light] .msg-reply-preview{color:#334155}[data-theme=light] .msg-code-block{background:#f8fafc;border-color:#cbd5e1}[data-theme=light] .msg-code-head{border-bottom-color:#cbd5e1;color:#475569;background:#f1f5f9}[data-theme=light] .msg-code-head button{border-color:#cbd5e1;background:#fff;color:#334155}[data-theme=light] .msg-code-head button:hover{background:#f1f5f9}[data-theme=light] .msg-code-block pre{color:#0f172a}[data-theme=light] .msg-reply-btn{color:#1d4ed8}[data-theme=light] .header-chat-session input,[data-theme=light] .header-chat-input input[type=text],[data-theme=light] .header-chat-join-input{background:#fff;color:var(--text);border-color:var(--border)}[data-theme=light] .header-chat-input .btn-voice{background:#f1f5f9;color:#334155;border-color:#cbd5e1}[data-theme=light] .header-chat-input .btn-voice.active{background:#ef4444;color:#fff;border-color:#ef4444}[data-theme=light] .header-chat-avatar-btn{background:#fff;color:var(--text);border-color:var(--border)}[data-theme=light] .header-chat-avatar-btn:hover{background:var(--bg-hover);border-color:var(--accent)}[data-theme=light] .header-chat-avatar-menu button,[data-theme=light] .new-modal-user{color:var(--text)}[data-theme=light] .header-chat-avatar-menu button:hover,[data-theme=light] .new-modal-user:hover{background:var(--bg-hover)}[data-theme=light] .header-chat-stt-draft,[data-theme=light] .header-chat-stt-live{border-top-color:var(--border);color:var(--text-muted)}[data-theme=light] .header-chat-stt-item{color:#2563eb}[data-theme=light] .header-chat-stt-item span:last-child{color:#334155}.goal3d-picker-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}.goal3d-picker-backdrop{position:absolute;inset:0;background:#00000080}.goal3d-picker-content{position:relative;background:var(--card-bg, #fff);border-radius:12px;padding:1.25rem;box-shadow:0 8px 32px #0003;max-width:90vw;max-height:90vh;overflow:auto}.goal3d-picker-content h3{margin:0 0 .5rem;font-size:1.1rem}.goal3d-picker-hint{font-size:.9rem;color:var(--text-muted, #64748b);margin-bottom:1rem}.goal3d-picker-plane-height{margin-bottom:.75rem}.goal3d-picker-plane-height label{font-size:.9rem;margin-right:.5rem}.goal3d-picker-plane-height input{width:80px;padding:.35rem .5rem;border:1px solid var(--border-color, #ddd);border-radius:6px}.goal3d-picker-canvas-wrap{width:400px;height:300px;border-radius:8px;overflow:hidden;border:1px solid var(--border-color, #e2e8f0);margin-bottom:1rem}.goal3d-picker-result{font-size:.9rem;font-family:monospace;color:var(--accent, #3b82f6);margin-bottom:1rem}.goal3d-picker-actions{display:flex;gap:.75rem;justify-content:flex-end}.goal3d-picker-actions button{padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:#fff;cursor:pointer;font-size:.9rem}.goal3d-picker-actions button.goal3d-confirm{background:var(--primary, #2563eb);border-color:var(--primary, #2563eb);color:#fff}.goal3d-picker-actions button.goal3d-confirm:disabled{opacity:.5;cursor:not-allowed}.teleop-page{padding:1rem;width:100%;max-width:min(1680px,calc(100vw - 2rem));margin:0 auto}.teleop-desc{color:var(--text-muted, #666);margin-bottom:1.5rem;font-size:.95rem}.teleop-focus-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.85rem}.teleop-focus-toolbar button{border:1px solid var(--border-color, #cbd5e1);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border-radius:8px;padding:.32rem .62rem;font-size:.8rem;cursor:pointer}.teleop-focus-toolbar button.active{background:var(--primary, #2563eb);border-color:var(--primary, #2563eb);color:#fff}.teleop-setup.compact .teleop-topology,.teleop-setup.compact .teleop-history,.teleop-setup.compact .teleop-report-panel,.teleop-setup.compact .teleop-self-monitor-panel,.teleop-setup.compact .teleop-network-panel,.teleop-setup.compact .teleop-followers-panel,.teleop-setup.compact .teleop-feedback{display:none}.teleop-collapsed-placeholder{display:flex;align-items:center;justify-content:space-between;gap:.6rem;border:1px dashed var(--border-color, #cbd5e1);border-radius:10px;padding:.55rem .75rem;margin:.3rem 0 .75rem;background:var(--bg-elevated, #f8fafc);color:var(--text-muted, #64748b);font-size:.82rem}.teleop-collapsed-placeholder button{border:1px solid var(--primary, #2563eb);background:#fff;color:var(--primary, #2563eb);border-radius:8px;padding:.2rem .55rem;cursor:pointer;font-size:.78rem}.teleop-guide-btn{margin-left:.5rem;padding:.25rem .6rem;font-size:.85rem;border-radius:6px;border:1px solid var(--border-color, #94a3b8);background:transparent;color:var(--accent, #3b82f6);cursor:pointer}.teleop-guide-btn:hover{background:var(--bg-hover, #f1f5f9)}.teleop-deploy-guide{background:var(--card-bg, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:1.25rem;margin-bottom:1.5rem}.teleop-deploy-guide h3{margin:0 0 .5rem;font-size:1.05rem}.deploy-intro{font-size:.9rem;color:var(--text-muted, #64748b);margin-bottom:1rem}.deploy-steps{margin:0 0 1rem;padding-left:1.25rem}.deploy-steps li{margin-bottom:1rem;font-size:.9rem}.deploy-steps li strong{display:block;margin-bottom:.35rem}.deploy-steps pre{margin:0;padding:.65rem .85rem;background:var(--bg-page, #1e293b);color:var(--text, #e2e8f0);border-radius:6px;font-size:.8rem;white-space:pre-wrap;word-break:break-all}.deploy-link{font-size:.85rem;margin-bottom:.5rem}.deploy-link a{color:var(--accent, #3b82f6)}.deploy-note{font-size:.85rem;color:var(--text-muted, #64748b);margin:0}.teleop-setup{background:var(--card-bg, #fff);border-radius:8px;padding:1.25rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #00000014}.teleop-arm-select{margin-bottom:1rem}.teleop-arm-select label{display:block;font-weight:500;margin-bottom:.35rem}.teleop-arm-select select{padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:var(--bg-page, #fff);color:var(--text, #333);font-size:.95rem;min-width:180px}.teleop-topology{margin-bottom:1rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:.7rem}.teleop-topology-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.55rem}.teleop-topology-head label{font-size:.86rem;font-weight:600;color:var(--text, #334155)}.teleop-topology-head select{min-width:220px;padding:.45rem .6rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:var(--bg-page, #fff);color:var(--text, #111827)}.teleop-topology-head button{padding:.45rem .75rem;border-radius:6px;border:1px solid var(--primary, #2563eb);background:var(--primary, #2563eb);color:var(--text-inverse, #fff);cursor:pointer;font-size:.82rem}.teleop-topology-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .8rem}.teleop-topology-grid label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-topology-grid input{padding:.4rem .55rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:var(--bg-page, #fff);color:var(--text, #111827)}.teleop-history{margin-bottom:1rem}.teleop-history-label{font-size:.85rem;color:var(--text-muted, #64748b);display:block;margin-bottom:.4rem}.teleop-history-list{display:flex;flex-wrap:wrap;gap:.5rem}.teleop-history-item{display:inline-flex;flex-direction:column;align-items:flex-start;padding:.4rem .65rem;border-radius:6px;border:1px solid var(--border-color, #e2e8f0);background:var(--bg-elevated, #f8fafc);color:var(--text, #334155);cursor:pointer;font-size:.8rem;transition:background .2s}.teleop-history-item:hover{background:var(--bg-hover, #e2e8f0);border-color:var(--accent, #3b82f6)}.teleop-history-item .history-id{font-family:monospace;font-weight:500}.teleop-history-item .history-type{font-size:.7rem;color:var(--text-muted, #64748b);margin-top:.15rem}.teleop-session{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.teleop-session label{font-weight:500;min-width:60px}.teleop-session input{flex:1;min-width:160px;padding:.5rem .75rem;border:1px solid var(--border-color, #ddd);border-radius:6px;font-family:monospace}.teleop-session button,.teleop-actions button{padding:.5rem 1rem;border-radius:6px;border:1px solid var(--primary, #2563eb);background:var(--primary, #2563eb);color:var(--text-inverse, #fff);cursor:pointer;font-size:.9rem}.teleop-session button:hover:not(:disabled),.teleop-actions button:hover:not(:disabled){opacity:.9}.teleop-share-btn{padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border-color, #64748b);background:transparent;color:var(--text-muted, #64748b);cursor:pointer;font-size:.85rem}.teleop-share-btn:hover{background:var(--bg-hover, #f1f5f9);color:var(--text, #334155)}.teleop-actions{display:flex;gap:.5rem}.teleop-reconnect-row{margin-top:.45rem;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-reconnect-row label{display:inline-flex;align-items:center;gap:.35rem}.teleop-connect{min-width:140px}.teleop-connect:disabled{opacity:.6;cursor:not-allowed}.teleop-connect.teleop-connected{background:var(--success, #16a34a);border-color:var(--success, #16a34a)}.teleop-disconnect{background:transparent;color:var(--primary, #2563eb)}.teleop-self-monitor-panel{margin-top:12px;background:var(--card-bg, #1a2332);border:1px solid var(--border-color, #2a3544);border-radius:8px;overflow:hidden}.teleop-self-monitor-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:transparent;border:none;color:var(--text, #e4e8ec);font-size:.95rem;cursor:pointer;text-align:left}.teleop-self-monitor-head:hover{background:var(--bg-hover, rgba(148, 163, 184, .12))}.teleop-self-monitor-title{font-weight:600}.teleop-self-monitor-toggle{font-size:.7rem;color:var(--text-muted, #94a3b8)}.teleop-self-monitor-body{padding:0 12px 12px}.teleop-self-monitor-grid{display:flex;flex-wrap:wrap;gap:16px 24px;margin-bottom:10px}.teleop-self-monitor-item{display:flex;flex-direction:column;gap:2px}.teleop-self-monitor-label{font-size:11px;color:var(--text-muted, #64748b)}.teleop-self-monitor-value{font-size:13px;font-family:monospace;color:var(--text, #e4e8ec)}.teleop-self-monitor-geo{font-size:11px;color:var(--text-muted, #94a3b8)}.teleop-self-monitor-quality{font-weight:700;font-size:.86rem}.teleop-self-monitor-quality.excellent{color:var(--success, #22c55e)}.teleop-self-monitor-quality.good{color:var(--success-soft, #84cc16)}.teleop-self-monitor-quality.fair{color:var(--warning, #f59e0b)}.teleop-self-monitor-quality.poor{color:var(--danger, #ef4444)}.teleop-self-monitor-preview{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color, #2a3544)}.teleop-self-monitor-preview-label{display:block;font-size:11px;color:var(--text-muted, #64748b);margin-bottom:6px}.teleop-self-monitor-video{width:160px;height:120px;object-fit:cover;border-radius:6px;background:var(--bg-overlay, #000)}.teleop-self-monitor-hint{font-size:.78rem;color:var(--text-muted, #94a3b8);margin-top:6px}.teleop-network-panel{padding:12px;background:var(--card-bg, #1a2332);border-radius:8px;border:1px solid var(--border-color, #2a3544);margin-top:12px}.teleop-network-panel h4{margin:0 0 10px;font-size:13px;color:var(--text-muted, #94a3b8)}.teleop-network-grid{display:flex;flex-wrap:wrap;gap:16px 24px}.teleop-network-item{display:flex;flex-direction:column;gap:2px}.teleop-network-label{font-size:11px;color:var(--text-muted, #64748b)}.teleop-network-value{font-size:13px;font-family:monospace;color:var(--text, #e4e8ec)}.teleop-network-geo{font-size:11px;color:var(--text-muted, #94a3b8)}.teleop-network-peer .teleop-network-value{font-size:12px}.teleop-network-quality{font-weight:700;font-size:.86rem}.teleop-network-quality.excellent{color:var(--success, #22c55e)}.teleop-network-quality.good{color:var(--success-soft, #84cc16)}.teleop-network-quality.fair{color:var(--warning, #f59e0b)}.teleop-network-quality.poor{color:var(--danger, #ef4444)}.teleop-followers-panel{margin-top:12px;padding:10px 12px;background:var(--bg-elevated, #1a2332);border:1px solid var(--border-color, #2a3544);border-radius:8px}.teleop-followers-panel h4{margin:0 0 8px;font-size:.9rem;color:var(--text-muted, #94a3b8)}.teleop-followers-empty-wrap{margin:0}.teleop-followers-empty{font-size:.85rem;color:var(--text-muted, #64748b);margin:0 0 .5rem}.teleop-followers-hint{font-size:.78rem;color:var(--text-muted, #94a3b8);margin:0 0 .35rem}.teleop-followers-empty-wrap code{display:block;font-size:.72rem;padding:.5rem;background:var(--bg-page, rgba(2, 6, 23, .35));border-radius:6px;word-break:break-all;margin-top:.4rem}.teleop-followers-summary{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:6px 0}.teleop-followers-summary .status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.teleop-followers-summary .status-dot.online{background:var(--success, #22c55e);box-shadow:0 0 6px color-mix(in srgb,var(--success, #22c55e) 65%,transparent)}.teleop-followers-summary .summary-latency{font-size:.78rem;color:var(--text-muted, #94a3b8);margin-left:.5rem}.teleop-followers-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.teleop-follower-item{display:grid;grid-template-columns:32px 1fr 220px 70px 62px 56px;align-items:center;gap:10px;font-size:.82rem;padding:6px 10px;border-radius:6px;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.teleop-follower-item.responded{border-color:#22c55e4d;background:#22c55e0f}.teleop-follower-item .follower-check{display:flex;align-items:center;gap:6px;cursor:pointer;margin:0}.teleop-follower-item .follower-check input{margin:0}.teleop-follower-item .status-dot{width:6px;height:6px;border-radius:50%}.teleop-follower-item .status-dot.online{background:var(--success, #22c55e)}.teleop-follower-item .follower-id{font-family:monospace;font-weight:500;color:var(--text, #e2e8f0)}.teleop-follower-item .follower-ip{display:flex;flex-direction:column;gap:2px;font-size:.78rem;color:var(--text-muted, #94a3b8);font-family:monospace}.teleop-follower-item .follower-ip-sub{font-size:.66rem;color:var(--text-muted, #64748b);font-family:inherit;line-height:1.2}.teleop-follower-item .follower-latency{font-size:.8rem;font-weight:600;color:var(--success, #22c55e);font-family:monospace}.teleop-follower-item .follower-latency:empty,.teleop-follower-item .follower-latency:has(:only-child:empty){color:var(--text-muted, #64748b)}.teleop-follower-item .follower-status{font-size:.7rem;color:var(--text-muted, #94a3b8)}.teleop-follower-item .follower-quality{font-size:.78rem;font-weight:700}.teleop-follower-item .follower-quality.excellent{color:var(--success, #22c55e)}.teleop-follower-item .follower-quality.good{color:var(--success-soft, #84cc16)}.teleop-follower-item .follower-quality.fair{color:var(--warning, #f59e0b)}.teleop-follower-item .follower-quality.poor{color:var(--danger, #ef4444)}.teleop-follower-header{display:grid;grid-template-columns:32px 1fr 220px 70px 62px 56px;gap:10px;padding:4px 10px;font-size:.7rem;color:var(--text-muted, #64748b);text-transform:uppercase;letter-spacing:.03em}.teleop-target-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;border-top:1px dashed var(--border-color, #334155)}.teleop-target-label{font-size:.8rem;color:var(--text-muted, #64748b)}.teleop-target-sep{color:var(--text-muted, #475569)}.teleop-target-row button{padding:.3rem .6rem;border-radius:6px;border:1px solid var(--border-color, #475569);background:transparent;color:var(--text-muted, #94a3b8);cursor:pointer;font-size:.78rem}.teleop-target-row button:hover{border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6)}.teleop-target-row button.active{background:var(--primary, #2563eb);border-color:var(--primary, #2563eb);color:var(--text-inverse, #fff)}.teleop-error{color:var(--danger, #dc2626);margin-top:.75rem;font-size:.9rem}.teleop-report-chat{margin-top:.9rem;border:1px solid var(--border-color, #2a3544);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:.7rem}.teleop-report-chat-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.5rem}.teleop-report-chat-head h4{margin:0;font-size:.86rem}.teleop-report-chat-head button{padding:.35rem .65rem;border-radius:6px;border:1px solid var(--primary, #2563eb);background:var(--primary, #2563eb);color:var(--text-inverse, #fff);cursor:pointer;font-size:.75rem}.teleop-report-empty{font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-report-list{display:grid;gap:.45rem;max-height:200px;overflow-y:auto}.teleop-report-item{background:var(--bg-card, #fff);border:1px dashed var(--border-color, #dbe3ef);border-radius:6px;padding:.45rem .55rem}.teleop-report-meta{display:flex;justify-content:space-between;gap:.5rem;font-size:.72rem;color:var(--text-muted, #64748b)}.teleop-report-meta .sid{font-family:monospace;font-weight:600;color:var(--text, #1f2937)}.teleop-report-text{margin-top:.25rem;font-size:.78rem;color:var(--text, #334155)}.teleop-report-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem}.teleop-report-links a{font-size:.75rem;color:var(--accent, #2563eb);text-decoration:underline}.teleop-controls{background:var(--card-bg, #fff);border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px #00000014}.teleop-workspace{background:transparent;box-shadow:none;padding:0}.teleop-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;align-items:start}.teleop-work-card{border:1px solid var(--border-color, #dbe3ef);border-radius:10px;background:var(--card-bg, #fff);overflow:hidden;box-shadow:0 4px 12px #0f172a0d}.teleop-work-card.dragging{opacity:.65}.teleop-work-card.size-sm,.teleop-work-card.size-md{grid-column:span 1}.teleop-work-card.size-lg{grid-column:span 2}.teleop-work-card-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.45rem .6rem;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-elevated, #f8fafc);cursor:grab}.teleop-work-card-head strong{font-size:.82rem;color:var(--text, #111827)}.teleop-work-card-tools{display:inline-flex;align-items:center;gap:.35rem}.teleop-work-card-tools .drag-hint{font-size:.68rem;color:var(--text-muted, #64748b)}.teleop-work-card-tools button{border:1px solid var(--border-color, #cbd5e1);border-radius:6px;background:var(--bg-card, #fff);width:24px;height:24px;line-height:1;cursor:pointer}.teleop-work-card-head button,.teleop-work-card-head input,.teleop-work-card-head select{cursor:pointer}.teleop-card-inner{margin:0!important;border:none!important;border-radius:0!important;box-shadow:none!important}.teleop-vision-card-inner .teleop-rva-panel{margin:0;border:none;border-radius:0;background:transparent;padding:.75rem}.teleop-rva-panel{margin-bottom:1rem;padding:.85rem;border:1px solid var(--border-color, #2a3544);border-radius:8px;background:var(--bg-elevated, #f8fafc)}.teleop-rva-panel h4{margin:0 0 .35rem;font-size:.95rem}.teleop-rva-tip{margin:0 0 .6rem;font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-rva-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-bottom:.6rem}.teleop-rva-pill{border:1px solid var(--border-color, #dbe3ef);border-radius:999px;padding:.3rem .55rem;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--bg-card, #fff);color:var(--text, #111827)}.teleop-rva-pill.ok{border-color:color-mix(in srgb,var(--success, #16a34a) 45%,var(--border-color, #dbe3ef));background:color-mix(in srgb,var(--success, #16a34a) 10%,transparent)}.teleop-rva-pill.warn{border-color:color-mix(in srgb,var(--warning, #f59e0b) 45%,var(--border-color, #dbe3ef));background:color-mix(in srgb,var(--warning, #f59e0b) 10%,transparent)}.teleop-rva-pill.err{border-color:color-mix(in srgb,var(--danger, #dc2626) 45%,var(--border-color, #dbe3ef));background:color-mix(in srgb,var(--danger, #dc2626) 10%,transparent)}.teleop-rva-cams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-bottom:.65rem}.teleop-rva-cam-card{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;overflow:hidden;background:var(--bg-card, #fff)}.teleop-rva-cam-card span{display:block;padding:.3rem .45rem;font-size:.72rem;color:var(--text-muted, #64748b);border-bottom:1px solid var(--border-color, #dbe3ef)}.teleop-rva-cam-card img{width:100%;display:block;aspect-ratio:16 / 9;object-fit:cover;background:var(--bg-page, #0f172a)}.teleop-rva-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem .6rem}.teleop-rva-grid label{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--text-muted, #64748b)}.teleop-rva-grid input,.teleop-rva-grid select,.teleop-rva-instruction input{padding:.4rem .55rem;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #111827)}.teleop-rva-inline{flex-direction:row!important;align-items:center;gap:.35rem!important;margin-top:1.1rem}.teleop-rva-instruction{margin-top:.45rem;display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--text-muted, #64748b)}.teleop-rva-actions{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.45rem}.teleop-rva-actions button{padding:.36rem .62rem;border-radius:6px;border:1px solid var(--border-color, #cbd5e1);background:var(--bg-card, #fff);color:var(--text, #111827);cursor:pointer;font-size:.76rem}.teleop-rva-actions button:hover:not(:disabled){border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.teleop-rva-error{margin-top:.45rem;color:var(--danger, #dc2626);font-size:.76rem}.teleop-rva-selfcheck{margin-top:.6rem;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #fff);overflow:hidden}.teleop-rva-selfcheck-head{font-size:.74rem;padding:.35rem .5rem;border-bottom:1px solid var(--border-color, #dbe3ef)}.teleop-rva-selfcheck-head.ok{background:color-mix(in srgb,var(--success, #16a34a) 10%,transparent);border-bottom-color:color-mix(in srgb,var(--success, #16a34a) 45%,var(--border-color, #dbe3ef))}.teleop-rva-selfcheck-head.warn{background:color-mix(in srgb,var(--warning, #f59e0b) 10%,transparent);border-bottom-color:color-mix(in srgb,var(--warning, #f59e0b) 45%,var(--border-color, #dbe3ef))}.teleop-rva-selfcheck-list{display:grid;gap:0}.teleop-rva-selfcheck-item{display:grid;grid-template-columns:16px 138px 1fr;gap:.35rem;padding:.28rem .45rem;font-size:.72rem;border-bottom:1px dashed var(--border-color, #e2e8f0)}.teleop-rva-selfcheck-item:last-child{border-bottom:none}.teleop-rva-selfcheck-item.ok .dot{color:var(--success, #16a34a)}.teleop-rva-selfcheck-item.fail .dot{color:var(--danger, #dc2626)}.teleop-rva-selfcheck-item .label{color:var(--text, #111827)}.teleop-rva-selfcheck-item .detail{color:var(--text-muted, #64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teleop-rva-json{margin:.55rem 0 0;padding:.55rem;border-radius:6px;font-size:.72rem;max-height:180px;overflow:auto;background:var(--bg-page, #0f172a);color:var(--text, #dbeafe);white-space:pre-wrap;word-break:break-word}.teleop-controls h3{margin:0 0 .5rem;font-size:1.1rem}.teleop-mode-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.teleop-mode-tabs button{padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border-color, #e2e8f0);background:var(--bg-elevated, #f8fafc);color:var(--text-muted, #64748b);cursor:pointer;font-size:.9rem}.teleop-mode-tabs button.active{background:var(--primary, #2563eb);border-color:var(--primary, #2563eb);color:var(--text-inverse, #fff)}.teleop-submode-tabs{display:flex;gap:.5rem;margin-bottom:.75rem}.teleop-submode-tabs button{padding:.42rem .8rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:var(--bg-elevated, #f8fafc);color:var(--text-muted, #64748b);cursor:pointer;font-size:.84rem}.teleop-submode-tabs button.active{background:var(--accent, #0ea5e9);border-color:var(--accent, #0ea5e9);color:var(--text-inverse, #fff)}.teleop-pad-wrap{margin-bottom:1rem}.teleop-control-config{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-bottom:.75rem}.teleop-control-config label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-control-config input,.teleop-control-config select,.teleop-goal-frame-row select{padding:.4rem .55rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:var(--bg-page, #fff);color:var(--text, #111827)}.teleop-brainco-config{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.8rem 1rem;margin-bottom:.9rem}.teleop-brainco-config label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-brainco-config input{width:160px;padding:.4rem .55rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:var(--bg-page, #fff);color:var(--text, #111827)}.teleop-brainco-quick{display:flex;flex-wrap:wrap;gap:.45rem}.teleop-brainco-quick button{padding:.42rem .75rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:var(--bg-page, #fff);color:var(--text, #111827);cursor:pointer}.teleop-brainco-quick button:hover:not(:disabled){border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.teleop-brainco-gesture-panel{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:.75rem}.teleop-brainco-gesture-panel p{margin:0 0 .55rem;color:var(--text-muted, #64748b);font-size:.84rem}.teleop-brainco-goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem 1rem;margin-bottom:.9rem}.teleop-brainco-goal-tools{margin-bottom:.65rem}.teleop-brainco-goal-tools button{padding:.35rem .68rem;border-radius:6px;border:1px solid var(--border-color, #ddd);background:var(--bg-page, #fff);color:var(--text-muted, #475569);cursor:pointer;font-size:.8rem}.teleop-brainco-goal-tools button:hover:not(:disabled){border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.teleop-joint-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;margin-bottom:1rem}.teleop-goal-frame-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem}.teleop-goal-frame-row label{font-size:.85rem;color:var(--text-muted, #64748b)}.teleop-goal-panel{padding:.5rem 0}.teleop-goal-mode-switch{display:flex;gap:1rem;margin-bottom:1rem}.teleop-goal-mode-switch label{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.9rem}.teleop-goal-delta,.teleop-goal-target{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.teleop-goal-row{display:flex;flex-direction:column;gap:.25rem}.teleop-goal-row label{font-size:.85rem;color:var(--text-muted, #64748b)}.teleop-goal-row input{width:100px;padding:.5rem .6rem;border:1px solid var(--border-color, #ddd);border-radius:6px}.teleop-goal-3d-btn{align-self:flex-end;padding:.5rem 1rem;border-radius:6px;border:1px solid var(--accent, #3b82f6);background:transparent;color:var(--accent, #3b82f6);cursor:pointer;font-size:.9rem}.teleop-goal-3d-btn:hover{background:#3b82f61a}.teleop-goal-execute{padding:.6rem 1.25rem;border-radius:6px;border:none;background:var(--primary, #2563eb);color:var(--text-inverse, #fff);cursor:pointer;font-size:.95rem}.teleop-goal-execute:hover:not(:disabled){opacity:.9}.teleop-goal-execute:disabled{opacity:.5;cursor:not-allowed}.teleop-hint{color:var(--text-muted, #666);font-size:.85rem;margin-bottom:1rem}.teleop-voice-panel{margin-bottom:1rem;padding:.9rem;border:1px solid var(--border-color, #ddd);border-radius:8px;background:var(--bg-elevated, #f8fafc)}.teleop-voice-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.teleop-voice-head button{padding:.4rem .8rem;border:1px solid var(--primary, #2563eb);background:var(--primary, #2563eb);color:var(--text-inverse, #fff);border-radius:6px;cursor:pointer;font-size:.82rem}.teleop-voice-head button.stop{background:var(--danger, #dc2626);border-color:var(--danger, #dc2626)}.teleop-voice-open-video{background:transparent!important;color:var(--primary, #2563eb)!important}.teleop-voice-text{font-size:.82rem;color:var(--text-muted, #64748b)}.teleop-voice-text code{display:block;margin-top:.35rem;background:var(--bg-page, #fff);border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.5rem;color:var(--text, #111827);white-space:pre-wrap;word-break:break-word}.teleop-voice-error{margin-top:.4rem;color:var(--danger, #dc2626);font-size:.8rem}.teleop-voice-logs{margin-top:.6rem;display:flex;flex-direction:column;gap:.3rem}.teleop-voice-log-item{display:grid;grid-template-columns:90px 1fr 170px;gap:.5rem;font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-pad{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.teleop-axis{display:flex;flex-direction:column;gap:.5rem}.axis-label{font-size:.9rem;font-weight:500}.axis-buttons{display:flex;gap:.5rem}.axis-buttons button{min-width:56px;padding:.6rem .75rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-card, #fff);cursor:pointer;font-size:.9rem;transition:background .15s}.axis-buttons button:hover:not(:disabled){background:color-mix(in srgb,var(--accent, #2563eb) 10%,transparent);border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.axis-buttons button:disabled{opacity:.5;cursor:not-allowed}.axis-buttons button:active:not(:disabled){background:var(--primary, #2563eb);color:var(--text-inverse, #fff);border-color:var(--primary, #2563eb)}.teleop-share{padding-top:1rem;border-top:1px solid var(--border-color, #eee)}.teleop-share p{margin:0 0 .5rem;font-size:.9rem;color:var(--text-muted, #666)}.teleop-share .teleop-commands p{margin:.5rem 0}.teleop-commands a{color:var(--accent, #3b82f6)}.teleop-commands code{margin-top:.75rem;font-size:.8rem;color:var(--text-muted, #94a3b8)}.teleop-share .teleop-commands code{display:inline;padding:.15rem .4rem;font-size:.75rem}.teleop-share code{display:block;padding:.5rem .75rem;background:var(--bg-elevated, #f5f5f5);border-radius:4px;font-family:monospace;font-size:.9rem;word-break:break-all}.teleop-agent-list{margin:.25rem 0 0 1rem;padding:0;font-size:.85rem}.teleop-agent-list li{margin-bottom:.2rem}.teleop-feedback{background:var(--card-bg, #1a2332);border:1px solid var(--border-color, #2a3544);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.teleop-feedback h4{margin:0 0 .5rem;font-size:.95rem}.teleop-joint-live{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;margin-bottom:.55rem}.teleop-joint-live-item{display:flex;flex-direction:column;gap:.2rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:.35rem .45rem}.teleop-joint-live-item .k{font-size:.7rem;color:var(--text-muted, #94a3b8)}.teleop-joint-live-item .v{font-size:.88rem;font-family:monospace;color:var(--text, #e2e8f0)}.teleop-feedback-meta{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-muted, #94a3b8);margin-bottom:.45rem}.telemetry-dot{width:8px;height:8px;border-radius:50%}.telemetry-dot.online{background:var(--success, #22c55e);box-shadow:0 0 6px #22c55e80}.telemetry-dot.offline{background:var(--danger, #ef4444)}.teleop-feedback-json{background:var(--bg-page, #0f1419);padding:.75rem;border-radius:6px;font-size:.8rem;overflow-x:auto;max-height:200px;overflow-y:auto;margin:0 0 .5rem;white-space:pre-wrap;word-break:break-all}.teleop-feedback-hint{font-size:.75rem;color:var(--text-muted, #64748b)}.teleop-command-feed,.teleop-boa-log-panel{border:1px solid var(--border-color, #2a3544);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:.7rem;margin-bottom:1rem}.teleop-boa-log-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem}.teleop-boa-log-head h4{margin:0;font-size:.86rem}.teleop-boa-log-head button{border:1px solid var(--border-color, #cbd5e1);border-radius:6px;background:var(--bg-card, #fff);font-size:.72rem;padding:.2rem .45rem;cursor:pointer}.teleop-boa-log-head button:disabled{opacity:.5;cursor:not-allowed}.teleop-boa-log-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .6rem;margin-bottom:.6rem}.teleop-boa-log-filters label{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:var(--text-muted, #64748b)}.teleop-boa-log-filters select{padding:.35rem .45rem;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #111827);font-size:.74rem}.teleop-persisted-logs{border:1px solid var(--border-color, #2a3544);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:.7rem;margin-bottom:1rem}.teleop-persisted-logs h4{margin:0 0 .4rem;font-size:.86rem}.teleop-persist-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.teleop-persist-head button{padding:.32rem .62rem;border-radius:6px;border:1px solid var(--primary, #2563eb);background:var(--primary, #2563eb);color:var(--text-inverse, #fff);cursor:pointer;font-size:.74rem}.teleop-persist-head button:disabled{opacity:.55;cursor:not-allowed}.teleop-persist-health{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;color:var(--text-muted, #64748b);margin-bottom:.5rem}.teleop-persist-health .dot{width:8px;height:8px;border-radius:50%}.teleop-persist-health .dot.ok{background:var(--success, #22c55e);box-shadow:0 0 6px #22c55e73}.teleop-persist-health .dot.warn{background:var(--warning, #f59e0b)}.teleop-persist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .7rem;padding:.5rem .6rem;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #fff);margin-bottom:.65rem}.teleop-persist-grid div{display:flex;justify-content:space-between;gap:.4rem;font-size:.74rem;color:var(--text-muted, #64748b)}.teleop-persist-grid b{color:var(--text, #111827);font-family:monospace}.teleop-raw-export-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem .6rem;margin-bottom:.65rem}.teleop-raw-export-filters label{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:var(--text-muted, #64748b)}.teleop-raw-export-filters select,.teleop-raw-export-filters input{padding:.35rem .45rem;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #111827);font-size:.74rem}.teleop-command-feed h4{margin:0 0 .4rem;font-size:.86rem}.teleop-command-empty{font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-command-list{display:grid;gap:.3rem;max-height:140px;overflow-y:auto}.teleop-boa-log-list{display:grid;gap:.3rem;max-height:220px;overflow-y:auto}.teleop-boa-log-item{display:grid;grid-template-columns:74px 54px 130px 1fr;gap:.45rem;font-size:.74rem;padding:.28rem .35rem;border-radius:6px;background:var(--bg-card, #fff);border:1px dashed var(--border-color, #dbe3ef)}.teleop-boa-log-item.status{background:var(--bg-elevated, #f8fafc);border-color:var(--border-color, #cbd5e1)}.teleop-boa-log-item.stdout{background:color-mix(in srgb,var(--success, #16a34a) 10%,transparent);border-color:color-mix(in srgb,var(--success, #10b981) 45%,var(--border-color, #dbe3ef))}.teleop-boa-log-item.stderr{background:color-mix(in srgb,var(--danger, #dc2626) 10%,transparent);border-color:color-mix(in srgb,var(--danger, #dc2626) 45%,var(--border-color, #dbe3ef))}.teleop-boa-log-item .at,.teleop-boa-log-item .lv,.teleop-boa-log-item .mid{color:var(--text-muted, #64748b)}.teleop-boa-log-item .txt{color:var(--text, #111827);white-space:pre-wrap;word-break:break-word}.teleop-command-item{display:grid;grid-template-columns:74px 56px 1fr;gap:.45rem;font-size:.76rem;padding:.28rem .35rem;border-radius:6px;background:var(--bg-card, #fff);border:1px dashed var(--border-color, #dbe3ef)}.teleop-command-item.robot{background:color-mix(in srgb,var(--accent, #06b6d4) 10%,transparent);border-color:color-mix(in srgb,var(--accent, #06b6d4) 45%,var(--border-color, #dbe3ef))}.teleop-command-item .at,.teleop-command-item .src{color:var(--text-muted, #64748b)}.teleop-command-item .txt{color:var(--text, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teleop-robot-chat{background:var(--card-bg, #1a2332);border:1px solid var(--border-color, #2a3544);border-radius:8px;padding:.9rem;margin-bottom:1rem}.teleop-robot-chat h3{margin:0 0 .4rem;font-size:1rem}.teleop-companion-stage{position:relative;height:230px;margin-bottom:.65rem;border-radius:10px;border:1px dashed var(--border-color, #334155);background:linear-gradient(180deg,#94a3b81f,#94a3b80a);overflow:hidden}.teleop-mirror-monitor{position:absolute;right:.45rem;top:.45rem;z-index:2;display:flex;flex-direction:column;gap:.25rem;padding:.35rem .42rem;border-radius:8px;border:1px solid var(--border-color, #334155);background:#0f172ab8;max-width:158px}.teleop-mirror-monitor label{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;color:var(--text, #dbeafe)}.teleop-mirror-monitor span{font-size:.66rem;color:var(--text-muted, #bfdbfe);line-height:1.2}.teleop-mirror-monitor video{width:142px;height:94px;object-fit:cover;border-radius:6px;border:1px solid rgba(148,163,184,.45)}.teleop-mirror-monitor canvas{display:none}.teleop-companion-card{position:absolute;width:186px;height:208px;border-radius:10px;border:1px solid var(--border-color, #334155);background:var(--card-bg, #0f172a);box-shadow:0 6px 18px #02061740;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none;touch-action:none;cursor:grab}.teleop-companion-card:active{cursor:grabbing}.companion-card-head{display:flex;align-items:center;justify-content:space-between;padding:.25rem .45rem;font-size:.74rem;color:var(--text-muted, #94a3b8)}.companion-card-head button{border:1px solid var(--border-color, #475569);border-radius:6px;background:transparent;color:inherit;font-size:.72rem;cursor:pointer;padding:.1rem .28rem}.virtual-companion-3d{width:100%;flex:1}.virtual-companion-3d canvas{width:100%!important;height:100%!important;display:block}.companion-card-tip{text-align:center;font-size:.7rem;color:var(--text-muted, #64748b);padding:.2rem .35rem .4rem}.companion-card-actions{display:flex;gap:.25rem;justify-content:center}.companion-card-actions button{border:1px solid var(--border-color, #475569);background:transparent;color:var(--text-muted, #94a3b8);border-radius:999px;font-size:.66rem;padding:.08rem .34rem;cursor:pointer}.companion-card-actions button:hover{border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6)}.teleop-companion-config{border:1px solid var(--border-color, #ddd);background:var(--bg-elevated, #f8fafc);border-radius:8px;padding:.6rem;margin-bottom:.6rem;display:grid;gap:.5rem}.teleop-companion-virtual-row{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}.teleop-companion-virtual-row label{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-companion-virtual-row .bot-name input{width:120px;padding:.2rem .4rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-card, #fff);color:var(--text, #111827)}.teleop-companion-virtual-row .mode-tip{font-size:.76rem;color:var(--primary, #2563eb);background:var(--bg-active, #eff6ff);border:1px solid color-mix(in srgb,var(--accent, #2563eb) 35%,var(--border-color, #dbe3ef));padding:.2rem .5rem;border-radius:999px}.teleop-companion-role>span{display:block;font-size:.8rem;color:var(--text-muted, #64748b);margin-bottom:.25rem}.teleop-companion-role .role-list{display:flex;flex-wrap:wrap;gap:.35rem}.teleop-companion-role .role-list button{padding:.25rem .55rem;border-radius:999px;border:1px solid var(--border-color, #ddd);background:var(--bg-card, #fff);color:var(--text-muted, #64748b);font-size:.75rem;cursor:pointer}.teleop-companion-role .role-list button.active{border-color:var(--primary, #2563eb);color:var(--primary, #2563eb);background:var(--bg-active, #eff6ff)}.teleop-companion-role small{display:block;margin-top:.25rem;color:var(--text-muted, #64748b);font-size:.74rem}.teleop-companion-toggles{display:flex;flex-wrap:wrap;gap:.5rem .8rem;align-items:center}.teleop-companion-toggles label{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--text-muted, #64748b)}.teleop-companion-toggles select{margin-left:.2rem;padding:.2rem .4rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-card, #fff);color:var(--text, #111827)}.teleop-companion-toggles button{padding:.35rem .65rem;border-radius:6px;border:1px solid var(--success, #16a34a);background:var(--success, #16a34a);color:var(--text-inverse, #fff);cursor:pointer;font-size:.76rem}.teleop-robot-chat-quick{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.teleop-robot-chat-quick button{padding:.35rem .65rem;border-radius:999px;border:1px solid var(--border-color, #ddd);background:var(--bg-elevated, #f8fafc);color:var(--text-muted, #64748b);cursor:pointer;font-size:.78rem}.teleop-robot-chat-quick button:hover:not(:disabled){border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.teleop-robot-chat-list{border:1px solid var(--border-color, #ddd);border-radius:8px;background:var(--bg-page, #fff);max-height:210px;overflow-y:auto;padding:.5rem;margin-bottom:.6rem}.teleop-robot-chat-empty{color:var(--text-muted, #64748b);font-size:.82rem;padding:.6rem .3rem}.teleop-robot-chat-item{display:grid;grid-template-columns:48px 1fr 74px;gap:.5rem;font-size:.8rem;padding:.3rem .1rem;border-bottom:1px dashed var(--border-color, #ddd)}.teleop-robot-chat-item:last-child{border-bottom:none}.teleop-robot-chat-item .who{color:var(--primary, #2563eb);font-weight:600}.teleop-robot-chat-item.robot .who{color:var(--success, #16a34a)}.teleop-robot-chat-item .txt{color:var(--text, #111827);white-space:pre-wrap;word-break:break-word}.teleop-robot-chat-item .at{color:var(--text-muted, #64748b);text-align:right}.teleop-robot-chat-input{display:flex;flex-wrap:wrap;gap:.45rem}.teleop-robot-chat-input input{flex:1;min-width:220px;padding:.5rem .65rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-page, #fff);color:var(--text, #111827)}.teleop-robot-chat-input button{padding:.45rem .75rem;border-radius:6px;border:1px solid var(--primary, #2563eb);background:var(--primary, #2563eb);color:var(--text-inverse, #fff);cursor:pointer;font-size:.8rem}.teleop-robot-chat-interim{margin-top:.45rem;font-size:.78rem;color:var(--text-muted, #64748b)}.gwb-panel{border:1px solid var(--border-color, #2a3544);border-radius:10px;background:var(--bg-elevated, #f8fafc);padding:.75rem;margin-bottom:1rem}.gwb-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.55rem}.gwb-head h4{margin:0;font-size:.9rem}.gwb-workstation{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr) minmax(300px,360px);grid-template-areas:"left mid right" "bottom bottom bottom";gap:.85rem}.gwb-col-left{grid-area:left;display:grid;gap:.6rem}.gwb-col-mid{grid-area:mid;display:grid;gap:.6rem}.gwb-col-right{grid-area:right;display:grid;gap:.6rem}.gwb-col-bottom{grid-area:bottom}.gwb-heat-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem}.gwb-head-actions{display:flex;align-items:center;gap:.4rem}.gwb-head-actions button,.gwb-head-actions select,.gwb-rec-row button,.gwb-rec-row select{padding:.3rem .5rem;border-radius:6px;border:1px solid var(--border-color, #cbd5e1);background:var(--bg-card, #fff);color:var(--text, #111827);font-size:.74rem}.gwb-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:.6rem}.gwb-card{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #fff);padding:.55rem}.gwb-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.gwb-card-head button{padding:.25rem .45rem;border-radius:6px;border:1px solid var(--border-color, #cbd5e1);background:var(--bg-card, #fff);font-size:.72rem;cursor:pointer}.gwb-card h5{margin:0 0 .5rem;font-size:.86rem}.gwb-status-row{display:flex;flex-wrap:wrap;gap:.6rem;font-size:.78rem;color:var(--text-muted, #64748b);margin-bottom:.45rem}.gwb-error-text{color:var(--danger, #dc2626);font-size:.72rem;margin-bottom:.35rem}.gwb-empty{color:var(--text-muted, #64748b);font-size:.78rem}.gwb-device-list{display:grid;gap:.4rem}.gwb-device-item{display:grid;grid-template-columns:10px 1fr;gap:.35rem .55rem;align-items:center;text-align:left;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:.4rem .5rem;cursor:pointer}.gwb-device-item .dot{width:8px;height:8px;border-radius:50%}.gwb-device-item .dot.ok{background:var(--success, #22c55e)}.gwb-device-item .dot.warn{background:var(--warning, #f59e0b)}.gwb-device-item .mid{font-family:monospace;font-size:.76rem;color:var(--text, #111827)}.gwb-device-item .meta{grid-column:2 / 3;font-size:.68rem;color:var(--text-muted, #64748b)}.gwb-device-item.active{border-color:var(--accent, #2563eb);background:var(--bg-active, #eff6ff)}.gwb-rec-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.45rem;font-size:.72rem}.gwb-rec-row label{display:inline-flex;align-items:center;gap:.25rem}.gwb-hand3d{position:relative;height:170px;border-radius:8px;background:radial-gradient(120% 80% at 50% 20%,color-mix(in srgb,var(--accent, #2563eb) 18%,var(--bg-card, #ffffff)) 0%,color-mix(in srgb,var(--accent, #2563eb) 10%,var(--bg-card, #ffffff)) 45%,var(--bg-elevated, #f8fafc) 100%);overflow:hidden;perspective:500px;transform:scaleZ(var(--hand-depth, 1))}.gwb-palm{position:absolute;width:84px;height:70px;left:50%;bottom:18px;transform:translate(-50%);border-radius:26px;background:linear-gradient(180deg,color-mix(in srgb,var(--warning, #f59e0b) 45%,var(--bg-card, #ffffff)),color-mix(in srgb,var(--danger, #ef4444) 70%,var(--bg-card, #ffffff)));box-shadow:0 8px 16px rgba(0,0,0,calc(.15 + var(--hand-glow, 0)))}.gwb-finger{position:absolute;display:flex;flex-direction:column;align-items:center;transform-style:preserve-3d;transform-origin:bottom center}.gwb-finger .seg{width:14px;border-radius:8px;margin-bottom:2px;background:linear-gradient(180deg,color-mix(in srgb,var(--danger, #ef4444) 38%,var(--bg-card, #ffffff)),color-mix(in srgb,var(--danger, #ef4444) 70%,var(--bg-card, #ffffff)));transform-origin:bottom center}.gwb-finger .seg.a{height:26px;transform:rotateX(calc(var(--bend) * 54deg))}.gwb-finger .seg.b{height:21px;transform:rotateX(calc(var(--bend) * 64deg))}.gwb-finger .seg.c{height:17px;transform:rotateX(calc(var(--bend) * 72deg))}.gwb-finger span{font-size:.62rem;color:var(--text, #334155)}.gwb-thumb{left:18%;bottom:54px;transform:rotate(-35deg)}.gwb-index{left:33%;bottom:82px}.gwb-middle{left:44%;bottom:88px}.gwb-ring{left:55%;bottom:84px}.gwb-little{left:66%;bottom:76px}.gwb-heatmap{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:2px}.gwb-heatmap .cell{width:var(--heat-cell-size, 12px);height:var(--heat-cell-size, 12px);border-radius:2px;border:1px solid rgba(2,6,23,.06);opacity:var(--heat-opacity, .95)}.gwb-heatmap .cell.hot{outline:1px solid var(--danger, #ef4444);box-shadow:inset 0 0 0 1px #7f1d1d66}.gwb-calib-grid{display:grid;grid-template-columns:1fr;gap:.45rem}.gwb-calib-row{border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:.45rem;background:var(--bg-elevated, #f8fafc);font-size:.76rem}.gwb-calib-row strong{display:block;margin-bottom:.35rem}.gwb-calib-row label{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.25rem}.gwb-calib-row input[type=range]{width:100%}.gwb-calib-steps{margin:0 0 .55rem;padding-left:1rem;font-size:.78rem;color:var(--text-muted, #64748b)}.gwb-range-row{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--text-muted, #64748b)}.gwb-heat-card{overflow-x:auto}.gwb-heatmap{width:max-content}.gwb-calibration-card .gwb-calib-grid{max-height:52vh;overflow-y:auto;padding-right:.2rem}@media(max-width:1320px){.gwb-workstation{grid-template-columns:minmax(280px,1fr) minmax(320px,1fr);grid-template-areas:"left right" "mid mid" "bottom bottom"}}@media(max-width:1024px){.gwb-workstation{grid-template-columns:1fr;grid-template-areas:"left" "mid" "right" "bottom"}}.gwb-marker-list{display:flex;flex-wrap:wrap;gap:.4rem}.gwb-marker-list button{padding:.2rem .45rem;border-radius:999px;border:1px solid var(--border-color, #cbd5e1);background:var(--bg-card, #fff);font-size:.7rem;cursor:pointer}.virtual-arm-workbench{display:flex;flex-direction:column;gap:.7rem}.virtual-arm-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.virtual-arm-toolbar label{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--text-muted, #64748b)}.virtual-arm-toolbar select{border:1px solid var(--border-color, #cbd5e1);border-radius:8px;padding:.28rem .46rem;background:var(--card-bg, #fff);color:var(--text, #0f172a);font-size:.82rem}.virtual-arm-inline input{margin:0}.virtual-arm-state{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;font-size:.82rem;color:var(--text-muted, #64748b)}.virtual-arm-state .dot{width:8px;height:8px;border-radius:999px;display:inline-block}.virtual-arm-state .dot.ok{background:#16a34a}.virtual-arm-state .dot.warn{background:#f59e0b}.virtual-arm-state button{border:1px solid var(--border-color, #cbd5e1);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border-radius:8px;padding:.3rem .55rem;cursor:pointer;font-size:.78rem}.virtual-arm-state button:disabled{opacity:.5;cursor:not-allowed}.virtual-arm-warning-list{display:flex;flex-wrap:wrap;gap:.35rem}.virtual-arm-warning-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid #f59e0b;background:#fff7ed;color:#9a3412;font-size:.76rem;padding:.12rem .5rem}.virtual-arm-stage{position:relative;width:100%;min-height:260px;border-radius:12px;border:1px solid var(--border-color, #334155);background:radial-gradient(circle at 35% 25%,#1e293bb3,#020617f2);overflow:hidden}.virtual-arm-stage canvas{display:block;width:100%;height:100%}.virtual-arm-overlay-note,.virtual-arm-overlay-error{position:absolute;top:10px;left:10px;z-index:2;border-radius:8px;padding:.25rem .5rem;font-size:.78rem;background:#0f172abf;color:#e2e8f0}.virtual-arm-overlay-error{background:#7f1d1dd1}.virtual-arm-joints{display:grid;gap:.45rem}.virtual-arm-joint-row{display:grid;grid-template-columns:minmax(110px,160px) 1fr 88px 70px;gap:.45rem;align-items:center}.virtual-arm-joint-row label{font-size:.82rem;color:var(--text, #0f172a)}.virtual-arm-joint-row input[type=range]{width:100%}.virtual-arm-joint-row input[type=number]{width:100%;border:1px solid var(--border-color, #cbd5e1);border-radius:8px;padding:.24rem .4rem;font-size:.8rem;background:var(--card-bg, #fff);color:var(--text, #0f172a)}.virtual-arm-joint-row button{border:1px solid var(--primary, #2563eb);background:var(--primary, #2563eb);color:#fff;border-radius:8px;padding:.28rem .45rem;font-size:.78rem;cursor:pointer}.virtual-arm-joint-row button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:760px){.teleop-work-grid{grid-template-columns:1fr}.teleop-work-card.size-sm,.teleop-work-card.size-md,.teleop-work-card.size-lg{grid-column:span 1}.teleop-topology-grid{grid-template-columns:1fr}.teleop-control-config{grid-template-columns:repeat(2,minmax(0,1fr))}.teleop-rva-grid,.teleop-rva-overview,.teleop-rva-cams{grid-template-columns:1fr}.teleop-rva-selfcheck-item{grid-template-columns:16px 1fr}.teleop-rva-selfcheck-item .detail{grid-column:2}.teleop-joint-grid,.teleop-brainco-goal-grid{grid-template-columns:1fr}.teleop-follower-item,.teleop-follower-header{grid-template-columns:28px 1fr 130px 50px 48px 46px;gap:6px;font-size:.75rem}.teleop-joint-live{grid-template-columns:repeat(3,minmax(0,1fr))}.teleop-raw-export-filters,.virtual-arm-joint-row,.gwb-layout{grid-template-columns:1fr}.gwb-workstation{grid-template-columns:1fr;grid-template-areas:"left" "mid" "right" "bottom"}.gwb-heat-stack{grid-template-columns:1fr}}.header-teleop{position:relative}.header-teleop-btn{padding:4px 10px;border:1px solid #2a3544;background:#0f172a;color:#a5f3fc;cursor:pointer;font-size:16px;border-radius:8px}.header-teleop-btn:hover{color:#ecfeff;background:#1f2937}.header-teleop-backdrop{position:fixed;inset:0;background:#0000004d;z-index:999}.header-teleop-panel{position:fixed;top:0;right:0;width:380px;max-width:95vw;height:100vh;background:#161e2a;border-left:1px solid #2a3544;box-shadow:-4px 0 24px #0000004d;z-index:1000;display:flex;flex-direction:column}.header-teleop-title{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #2a3544;font-weight:600}.header-teleop-close{padding:4px 10px;border:none;background:none;color:#94a3b8;cursor:pointer;font-size:20px}.header-teleop-close:hover{color:#e4e8ec}.header-teleop-content{flex:1;overflow-y:auto;padding:16px}.header-teleop-content .page-title{display:none}.header-teleop-content .teleop-page{padding:0}.layout{min-height:100vh;background:var(--bg-page);color:var(--text)}.header{display:flex;align-items:center;justify-content:space-between;padding:0 12px;min-height:44px;height:44px;background:var(--bg-card);border-bottom:1px solid var(--border);gap:8px}.header-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto;overflow:visible;position:relative}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.logo{width:28px;height:28px;flex-shrink:0;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:#fff}.platform-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.network-badge{font-size:9px;padding:2px 5px;color:#0f1419;border-radius:3px;font-weight:600;flex-shrink:0}.network-badge.lan{background:#22c55e}.network-badge.wan{background:#f59e0b}.trial-badge{font-size:10px;padding:2px 6px;background:#7c3aed;color:#e9d5ff;border-radius:4px;margin-left:6px}.network-mode-select{padding:3px 6px;border-radius:4px;border:1px solid var(--border);background:var(--bg-page);color:var(--text-muted);font-size:11px;flex-shrink:0}.network-mode-select:focus{outline:none;border-color:var(--accent)}.network-refreshing{font-size:10px;color:var(--text-dim)}.header-info-inline{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0;position:relative}.network-ip-item{font-size:10px;color:var(--text-dim);font-family:ui-monospace,monospace;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-info-btn{width:20px;height:20px;padding:0;border:none;background:var(--border);color:var(--text-muted);border-radius:50%;cursor:pointer;font-size:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.header-info-btn:hover{background:var(--accent);color:#fff}.header-info-popover{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px 12px;z-index:1200;font-size:11px;color:var(--text-muted);font-family:ui-monospace,monospace;line-height:1.5;white-space:nowrap;max-width:min(90vw,480px);overflow:hidden;text-overflow:ellipsis}.header-info-row{margin-bottom:4px}.header-info-row:last-child{margin-bottom:0}.lang-toggle{padding:4px 10px;border-radius:6px;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;font-size:12px}.lang-toggle:hover{background:#3b82f61f}.theme-toggle{padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;display:flex;align-items:center;gap:4px}.theme-toggle:hover{color:var(--text);background:var(--bg-hover)}.theme-toggle svg{width:14px;height:14px}.theme-menu-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:4px;z-index:101;min-width:120px}.theme-menu-dropdown button{display:block;width:100%;padding:8px 12px;border:none;background:none;color:var(--text);cursor:pointer;font-size:12px;text-align:left;border-radius:6px}.theme-menu-dropdown button:hover{background:var(--bg-hover)}.theme-menu-dropdown button.active{color:var(--accent);background:var(--bg-active)}.user-menu-upload{display:block;padding:8px 16px;cursor:pointer;font-size:13px}.user-capabilities-edit{padding:8px 16px;border-top:1px solid var(--border)}.user-capabilities-edit label{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;cursor:pointer}.user-menu{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:8px;cursor:pointer;font-size:13px;position:relative}.user-menu:hover{background:var(--bg-hover)}.user-menu-name{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:4px;z-index:100}.user-menu-dropdown button{display:block;width:100%;padding:8px 16px;border:none;background:none;color:var(--text);cursor:pointer;font-size:13px;text-align:left;border-radius:6px}.user-menu-dropdown button:hover{background:var(--bg-hover)}.avatar{width:28px;height:28px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}.dropdown{font-size:10px;opacity:.7}.main-wrapper{display:flex;min-height:calc(100vh - 44px)}.sidebar{width:220px;background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column}.nav{flex:1;padding:8px 0;overflow-y:auto}.nav-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 12px 8px}.nav-controls button{border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:var(--radius-sm);font-size:11px;padding:6px 8px;cursor:pointer}.nav-controls button:hover{background:var(--bg-hover);color:var(--text)}.nav-quick-paths{padding:8px 16px 12px;border-bottom:1px solid var(--border);margin-bottom:8px}.nav-quick-paths-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:6px}.nav-quick-item{padding:6px 16px 6px 24px!important;font-size:12px!important}.nav-group{margin-bottom:4px}.nav-group-title{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;text-align:left;transition:all .2s}.nav-group-title:hover{color:var(--text);background:var(--bg-hover)}.nav-group-title.has-active{color:var(--accent)}.nav-group-chevron{font-size:10px;opacity:.8;width:14px}.nav-group-items{padding-left:8px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 16px 8px 24px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:13px;text-align:left;transition:all .2s}.nav-item:hover{color:var(--text);background:var(--bg-hover)}.nav-item.active{color:var(--accent);background:var(--bg-active);border-left:3px solid var(--accent)}.nav-icon{font-size:15px}.sidebar-collapse{padding:12px;border:none;background:none;color:var(--text-dim);cursor:pointer;font-size:18px}.content{flex:1;overflow:auto;padding:16px}@media(max-width:900px){.header-info-inline .network-ip-item{display:none}.platform-name{max-width:120px}}@media(max-width:640px){.header{padding:0 8px;gap:6px}.platform-name,.header-info-inline,.user-menu-name{display:none}.theme-toggle span:last-child{display:none}.avatar{width:24px;height:24px;font-size:10px}.content{padding:12px}.sidebar{width:180px}}@media(max-width:480px){.header{padding:0 6px}.network-mode-select{font-size:10px;padding:2px 4px}.lang-toggle{padding:3px 8px;font-size:11px}}.profile-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.profile-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:90%;max-width:420px;max-height:90vh;overflow-y:auto}.profile-modal-title{margin:0;padding:16px 20px;font-size:18px;border-bottom:1px solid var(--border)}.profile-modal-body{padding:20px}.profile-field{margin-bottom:16px}.profile-field label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:6px}.profile-field input[type=text],.profile-field input[type=tel]{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-page);color:var(--text);font-size:14px}.profile-avatar-field .profile-avatar-row{display:flex;align-items:center;gap:16px}.profile-avatar-upload{padding:6px 14px;font-size:13px;background:var(--accent);color:#fff;border-radius:6px;cursor:pointer}.profile-avatar-upload:hover{opacity:.9}.profile-capabilities{display:flex;flex-wrap:wrap;gap:12px}.profile-cap-label{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.profile-email-readonly .profile-email-val{font-size:14px;color:var(--text-muted)}.profile-hint{font-size:11px;color:var(--text-dim);display:block;margin-top:4px}.profile-link-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.profile-link-url{flex:1;min-width:0;font-size:12px;padding:6px 10px;background:var(--bg-page);border-radius:6px;overflow:hidden;text-overflow:ellipsis}.profile-link-copy{padding:6px 12px;font-size:12px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer}.profile-error{color:#ef4444;font-size:13px;margin-top:12px}.profile-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid var(--border)}.profile-btn-cancel{padding:8px 16px;border:1px solid var(--border);background:transparent;color:var(--text-muted);border-radius:6px;cursor:pointer;font-size:13px}.profile-btn-save{padding:8px 20px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px}.user-profile-page{min-height:100vh;background:var(--bg-page, #0f1419);display:flex;align-items:center;justify-content:center;padding:24px}.user-profile-card{background:var(--bg-card, #1a2332);border:1px solid var(--border, #2a3544);border-radius:16px;padding:32px;max-width:520px;width:100%}.user-profile-back-link{display:inline-block;color:var(--text-muted, #94a3b8);font-size:14px;text-decoration:none;margin-bottom:24px}.user-profile-back-link:hover{color:var(--accent, #3b82f6)}.user-profile-loading,.user-profile-error{color:var(--text-muted);text-align:center;padding:48px}.user-profile-back{display:block;text-align:center;margin-top:16px;color:var(--accent)}.user-profile-header{text-align:center;margin-bottom:28px}.user-profile-avatar{width:96px;height:96px;margin:0 auto 16px;border-radius:50%;overflow:hidden;background:var(--bg-elevated, #161e2a);display:flex;align-items:center;justify-content:center}.user-profile-avatar img{width:100%;height:100%;object-fit:cover}.user-profile-avatar-init{font-size:40px;color:var(--text-muted)}.user-profile-username{margin:0;font-size:24px;color:var(--text)}.user-profile-section{margin-bottom:20px}.user-profile-section h3{margin:0 0 12px;font-size:14px;color:var(--text-muted);font-weight:500}.user-profile-capabilities{display:flex;flex-wrap:wrap;gap:8px}.user-profile-cap{padding:6px 12px;background:var(--bg-active, #1e3a5f);border-radius:8px;font-size:13px;color:var(--text)}.user-profile-hint{font-size:12px;color:var(--text-dim);margin:0;line-height:1.5}.user-profile-posts{display:flex;flex-direction:column;gap:16px}.user-profile-post{padding:12px;background:var(--bg-page, #0f1419);border:1px solid var(--border, #2a3544);border-radius:10px}.user-profile-post p{margin:0 0 8px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.user-profile-post img{max-width:100%;max-height:280px;border-radius:8px;display:block}.user-profile-post video{max-width:100%;max-height:280px;border-radius:8px}.user-profile-post-time{display:block;font-size:11px;color:var(--text-dim);margin-top:8px}.dashboard{max-width:1400px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}.stat-card{background:var(--bg-card);border-radius:var(--radius-md);padding:20px;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.stat-label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:8px}.stat-value{font-size:24px;font-weight:700;color:var(--accent)}.charts-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.chart-card{background:var(--bg-card);border-radius:var(--radius-md);padding:20px;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.chart-card.wide{grid-column:span 2}.chart-card h3{font-size:14px;font-weight:600;margin-bottom:16px;color:var(--text)}.bar-chart{display:flex;flex-direction:column;gap:12px}.bar-row{display:flex;align-items:center;gap:12px}.bar-label{flex:0 0 140px;font-size:12px;color:var(--text-muted)}.bar-track{flex:1;height:8px;background:color-mix(in srgb,var(--border) 75%,transparent);border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,var(--bg-card, #ffffff)));border-radius:4px;transition:width .3s}.bar-fill-2{background:linear-gradient(90deg,var(--success, #10b981),color-mix(in srgb,var(--success, #10b981) 72%,var(--bg-card, #ffffff)))}.bar-fill-3{background:linear-gradient(90deg,var(--warning, #f59e0b),color-mix(in srgb,var(--warning, #f59e0b) 72%,var(--bg-card, #ffffff)))}.bar-value{flex:0 0 40px;font-size:12px;font-weight:600;text-align:right}.quality-metrics{display:flex;gap:24px;margin-bottom:16px;font-size:13px;color:var(--text-muted)}.quality-metrics strong{color:var(--accent)}.trend-chart{display:flex;align-items:flex-end;gap:8px;height:120px}.trend-chart .trend-bar{flex:1;min-width:20px;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 60%,var(--bg-card, #ffffff)));border-radius:4px 4px 0 0;transition:height .3s}.trend-quality .trend-bar{background:linear-gradient(180deg,var(--success, #10b981),color-mix(in srgb,var(--success, #10b981) 72%,var(--bg-card, #ffffff)))}.tag-list{list-style:none;padding:0;margin:0}.tag-list li{padding:8px 12px;margin-bottom:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px}.lc-shell{display:grid;grid-template-columns:250px 1fr;gap:16px;min-height:calc(100vh - 120px)}.lc-side{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:12px}.lc-logo{color:var(--text);font-size:18px;font-weight:700}.lc-create-btn,.lc-mini-btn{border:0;border-radius:10px;background:linear-gradient(90deg,#2563eb,#7c3aed);color:#fff;padding:9px 12px;cursor:pointer}.lc-nav{display:flex;flex-direction:column;gap:6px}.lc-nav-item{border:1px solid transparent;background:var(--bg-elevated);color:var(--text-muted);border-radius:8px;padding:9px 10px;text-align:left;cursor:pointer}.lc-nav-item.active{color:var(--text);border-color:var(--border);background:var(--bg-hover)}.lc-side-card{margin-top:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:10px}.lc-side-card-title{color:var(--text);font-weight:600;margin-bottom:4px}.lc-side-card-sub{color:var(--text-muted);font-size:12px}.lc-main{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:16px}.lc-overview-strip{display:flex;flex-wrap:wrap;gap:10px;color:var(--text-muted);margin-bottom:10px}.lc-overview-strip span{background:var(--bg-elevated);border:1px solid var(--border);padding:4px 8px;border-radius:999px;font-size:12px}.lc-error{color:#fecaca;background:#7f1d1d;border:1px solid #991b1b;border-radius:8px;padding:8px 10px;margin-bottom:8px}.lc-loading{color:var(--text-muted);font-size:13px;margin-bottom:10px}.lc-hero{border-radius:12px;padding:30px;font-size:28px;font-weight:700;color:#fff;background:linear-gradient(120deg,var(--accent),color-mix(in srgb,var(--accent) 30%,#0f172a));margin-bottom:16px}.lc-feature-grid,.lc-work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.lc-feature-card,.lc-work-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:12px}.lc-feature-title,.lc-work-title{color:var(--text);font-weight:600;margin-bottom:6px}.lc-feature-desc,.lc-work-meta{color:var(--text-muted);font-size:13px}.lc-thumb{height:100px;border-radius:10px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 45%,#0f172a),color-mix(in srgb,var(--accent) 20%,#312e81));margin-bottom:8px;overflow:hidden}.lc-thumb img{width:100%;height:100%;object-fit:cover}.lc-work-actions{margin-top:8px;display:flex;gap:6px}.lc-inline-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:8px;padding:4px 8px;cursor:pointer;font-size:12px}.lc-inline-btn.on{border-color:#3b82f6;color:#fff}.lc-status-pill{margin-top:6px;display:inline-block;border-radius:999px;padding:2px 8px;font-size:11px;border:1px solid var(--border);color:var(--text-muted)}.lc-status-pill.published{border-color:#065f46;color:#a7f3d0}.lc-status-pill.pending_review{border-color:#92400e;color:#fcd34d}.lc-status-pill.rejected{border-color:#991b1b;color:#fca5a5}.lc-review-note{margin-top:6px;color:#fecaca;font-size:12px}.lc-block-title{color:var(--text);margin:18px 0 10px}.lc-empty-wrap{min-height:360px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px}.lc-empty-title{color:var(--text);font-size:18px;font-weight:600}.lc-tabs{width:100%;display:flex;gap:8px;margin-bottom:14px}.lc-tabs button{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);border-radius:999px;padding:6px 10px;cursor:pointer}.lc-tabs button.active{border-color:#3b82f6;color:#fff}.lc-task-list{width:min(900px,100%);margin-top:10px;display:flex;flex-direction:column;gap:8px}.lc-device-strip{width:min(900px,100%);display:flex;flex-wrap:wrap;gap:8px}.lc-device-chip{font-size:12px;border-radius:999px;padding:4px 8px;border:1px solid var(--border);color:var(--text-muted)}.lc-device-chip.online{border-color:#1d4ed8}.lc-device-chip.idle{border-color:#475569}.lc-task-item{width:100%;display:flex;justify-content:space-between;gap:10px;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.lc-modal-mask{position:fixed;inset:0;background:#020617b8;display:flex;align-items:center;justify-content:center;z-index:100}.lc-modal{width:min(420px,92vw);background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px;color:var(--text)}.lc-modal h3{margin-top:0}.lc-modal label{display:block;margin-bottom:10px;font-size:13px;color:var(--text-muted)}.lc-modal select,.lc-modal input,.lc-modal textarea{display:block;width:100%;margin-top:4px;padding:8px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text)}.lc-upload-note{color:var(--text-muted);font-size:12px}.lc-device-list{display:flex;flex-direction:column;gap:8px}.lc-device-row{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.lc-review-input{margin-top:8px;min-height:72px}.lc-review-toolbar{width:min(900px,100%);display:flex;flex-wrap:wrap;gap:8px}.lc-review-toolbar select,.lc-review-toolbar input,.lc-bulk-panel select,.lc-bulk-panel input{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:8px;padding:6px 8px}.lc-select-row{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px;margin-bottom:6px}.lc-bulk-panel{background:var(--bg-elevated);border:1px dashed var(--border);border-radius:10px;padding:10px}.lc-audit-verify{width:min(900px,100%);border-radius:10px;padding:10px;border:1px solid var(--border);color:var(--text-muted)}.lc-audit-verify.ok{border-color:#065f46;color:#a7f3d0}.lc-audit-verify.bad{border-color:#991b1b;color:#fecaca}.lc-link{color:#93c5fd;font-size:12px}.lc-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.lc-manual-list{width:min(900px,100%);display:flex;flex-direction:column;gap:8px}.lc-manual-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:10px;color:var(--text-muted)}.lc-manual-q{color:var(--text);font-weight:600;margin-bottom:6px}.lc-manual-a{color:var(--text-muted);font-size:13px;line-height:1.6}.video-modal-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.video-modal{background:#1a2332;border-radius:12px;padding:24px;max-width:90vw;max-height:90vh;position:relative;border:1px solid #2a3544}.video-modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;background:#2a3544;color:#94a3b8;border-radius:8px;cursor:pointer;font-size:18px}.video-modal-close:hover{background:#3b82f6;color:#fff}.video-modal-title{margin:0 0 16px;font-size:16px;color:#e4e8ec}.video-modal-player{width:100%;max-width:800px;max-height:70vh;border-radius:8px;background:#000}.video-modal-download{padding:24px;text-align:center}.video-modal-download p{color:#94a3b8;margin-bottom:12px}.download-link{color:#3b82f6;text-decoration:none}.download-link:hover{text-decoration:underline}.data-page{max-width:1400px}.error-msg,.loading-msg,.empty-msg{padding:12px;margin-bottom:12px}.error-msg{background:color-mix(in srgb,var(--danger, #dc2626) 14%,transparent);color:var(--danger, #dc2626);border-radius:8px}.loading-msg{color:var(--text-muted, #64748b)}.empty-msg{color:var(--text-muted, #64748b);text-align:center}.status-filters{display:flex;gap:8px;margin-left:auto}.status-btn{padding:6px 12px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:transparent;color:var(--text-muted, #64748b);cursor:pointer;font-size:12px}.status-btn.active{background:color-mix(in srgb,var(--success, #16a34a) 16%,transparent);color:var(--success, #16a34a);border-color:color-mix(in srgb,var(--success, #16a34a) 50%,var(--border-color, #dbe3ef))}.link{color:var(--accent, #2563eb);text-decoration:none}.link:hover{text-decoration:underline}.file-tag{margin-left:8px;padding:2px 8px;background:var(--bg-elevated, #f8fafc);border-radius:4px;font-size:11px}.pill{padding:4px 10px;border-radius:6px;font-size:12px}.pill-blue{background:color-mix(in srgb,var(--accent, #2563eb) 16%,transparent);color:var(--accent, #2563eb)}.pill-green{background:color-mix(in srgb,var(--success, #16a34a) 16%,transparent);color:var(--success, #16a34a)}.play-btn{padding:4px 12px;background:transparent;color:var(--accent, #2563eb);border:1px solid var(--accent, #2563eb);border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit}.play-btn:hover{background:color-mix(in srgb,var(--accent, #2563eb) 12%,transparent)}.data-page .table-footer{justify-content:space-between}.footer-left{display:flex;align-items:center;gap:12px}.footer-left select{padding:4px 8px;border-radius:4px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a)}.range{margin-left:8px}.action-bar{display:flex;gap:8px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border-color, #dbe3ef)}.action-bar button{padding:6px 12px;background:transparent;color:var(--text-muted, #64748b);border:1px solid var(--border-color, #dbe3ef);border-radius:6px;cursor:pointer;font-size:12px}.action-bar button:hover{background:var(--bg-elevated, #f8fafc)}.upload-page{max-width:900px}.upload-main{margin-bottom:24px}.upload-heading{font-size:1.4rem;margin:0 0 8px;color:var(--text, #0f172a)}.upload-subheading{font-size:14px;color:var(--text-muted, #64748b);margin:0 0 24px;line-height:1.5}.drop-zone.large{padding:48px 24px;min-height:180px}.drop-zone.large .drop-icon{font-size:56px}.drop-zone.large .drop-text{font-size:18px}.upload-options{margin-top:24px;padding-top:24px;border-top:1px solid var(--border-color, #dbe3ef)}.upload-options .form-row{margin-bottom:16px}.upload-options .project-tabs{display:flex;gap:8px;flex-wrap:wrap}.upload-options .project-tabs button{padding:8px 16px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text-muted, #64748b);cursor:pointer;font-size:13px}.upload-options .project-tabs button.active{background:color-mix(in srgb,var(--accent, #2563eb) 14%,var(--bg-card, #fff));color:var(--accent, #2563eb)}.upload-btn.large{margin-top:16px;padding:12px 32px;font-size:16px}.file-change{font-size:12px;color:var(--text-muted, #64748b);margin-top:4px}.upload-form{margin-bottom:24px}.upload-form h3{margin-bottom:8px}.upload-hint{font-size:12px;color:var(--text-muted, #64748b);margin-bottom:16px;display:block}.error-msg{color:var(--danger, #dc2626);font-size:13px;margin-top:8px}.success-msg{color:var(--success, #16a34a);font-size:13px;margin-top:8px}.file-size{font-size:12px;color:var(--text-muted, #64748b)}.project-select,.storage-section{margin-bottom:24px}.project-select label,.storage-section label{display:block;font-size:13px;color:var(--text-muted, #64748b);margin-bottom:8px}.project-tabs{display:flex;gap:8px;flex-wrap:wrap}.project-tabs button{padding:8px 16px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text-muted, #64748b);cursor:pointer;font-size:13px}.project-tabs button.active{background:color-mix(in srgb,var(--accent, #2563eb) 14%,var(--bg-card, #fff));color:var(--accent, #2563eb)}.storage-chips{display:flex;flex-wrap:wrap;gap:12px}.storage-chip{padding:10px 16px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text-muted, #64748b);cursor:pointer;font-size:13px;white-space:nowrap}.storage-chip:hover{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.storage-chip.more{color:var(--text-muted, #64748b)}.file-types-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.file-type-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:12px;padding:24px;cursor:pointer;transition:all .2s}.file-type-card:hover{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 10%,var(--bg-card, #fff))}.card-icon{width:48px;height:48px;background:var(--bg-elevated, #f8fafc);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:12px}.file-type-card h4{font-size:15px;margin-bottom:8px;color:var(--text, #0f172a)}.file-type-card p{font-size:12px;color:var(--text-muted, #64748b);line-height:1.5}.drop-zone{border:2px dashed var(--border-color, #dbe3ef);border-radius:12px;padding:36px;text-align:center;background:var(--bg-card, #fff);cursor:pointer;transition:all .2s;margin-bottom:16px}.drop-zone:hover,.drop-zone.dragging{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 10%,var(--bg-card, #fff))}.drop-zone.is-video{border-color:var(--accent, #2563eb)}.drop-icon{font-size:48px;display:block;margin-bottom:12px}.drop-text{font-size:16px;color:var(--text, #0f172a);margin:0 0 8px}.drop-sub{font-size:13px;color:var(--text-muted, #64748b);margin:0}.file-preview{display:flex;flex-direction:column;align-items:center;gap:8px}.file-preview .file-icon{font-size:40px}.file-preview .file-name{font-size:15px;color:var(--text, #0f172a);word-break:break-all}.file-preview .file-size{font-size:13px;color:var(--text-muted, #64748b)}.progress-bar{height:8px;background:color-mix(in srgb,var(--text-muted, #64748b) 22%,transparent);border-radius:4px;overflow:hidden;margin-bottom:16px;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent, #2563eb),color-mix(in srgb,var(--accent, #2563eb) 65%,var(--text-inverse, #fff)));transition:width .2s}.progress-text{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--text-muted, #64748b)}.upload-btn{margin-top:8px}.upload-tip{margin-top:20px;padding:16px}.upload-tip p{margin:0;font-size:13px;color:var(--text-muted, #64748b);line-height:1.5}.file-type-card.highlight{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 10%,var(--bg-card, #fff))}.file-type-card.omni-card .omni-learn{display:inline-block;margin-top:8px;font-size:12px;color:var(--accent, #2563eb);text-decoration:none}.file-type-card.omni-card .omni-learn:hover{text-decoration:underline}.collection-page{max-width:1400px}.collection-page .filters-row,.collection-page .search-row{margin-bottom:16px}.collection-page .btn-create{margin-left:auto;padding:8px 20px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px}.action-tag{display:inline-block;padding:4px 10px;margin:2px 4px 2px 0;background:#2a3544;border-radius:6px;font-size:12px}.pill-orange{background:#78350f;color:#fbbf24}.pill-purple{background:#4c1d95;color:#c4b5fd}.avatar-sm{display:inline-block;width:24px;height:24px;background:#3b82f6;border-radius:50%;text-align:center;line-height:24px;font-size:11px;margin-right:6px;vertical-align:middle}.annotation-page{max-width:1200px}.anno-vision-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.anno-vision-card{border:1px solid #1e293b;border-radius:10px;background:#0f172a;padding:14px}.anno-vision-card h3{margin:0 0 8px;font-size:15px}.anno-vision-card p{margin:0 0 10px;color:#94a3b8;font-size:13px;line-height:1.5}.anno-workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.anno-workflow-card{display:flex;gap:10px;align-items:flex-start;border:1px solid #1e293b;background:#0b1220;border-radius:10px;padding:12px}.anno-workflow-icon{font-size:22px}.anno-workflow-title{font-size:14px;font-weight:600;margin-bottom:4px}.anno-workflow-desc{font-size:12px;color:#94a3b8;line-height:1.5}.anno-quality-card{border:1px solid #1e293b;border-radius:10px;padding:14px;margin-bottom:16px;background:#0b1220}.anno-quality-card h3{margin:0 0 8px;font-size:15px}.anno-quality-card ul{margin:0;padding-left:18px;color:#94a3b8;font-size:13px;line-height:1.6}.anno-quality-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.anno-metric-card{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:10px}.anno-metric-label{font-size:12px;color:#94a3b8}.anno-metric-value{font-size:20px;font-weight:700;margin-top:6px}.anno-reasons-card{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:10px 12px;margin-bottom:14px}.anno-reasons-card h4{margin:0 0 8px;font-size:14px}.anno-reason-row{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid rgba(148,163,184,.15);font-size:13px;color:#cbd5e1}.fail-badge{display:inline-block;padding:2px 8px;background:#7f1d1d;color:#fca5a5;border-radius:4px;font-weight:600;margin-right:8px}.pass-badge{display:inline-block;padding:2px 8px;background:#065f46;color:#34d399;border-radius:4px;font-weight:600;margin-right:8px}.meta{font-size:12px;color:#64748b}.status-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;border:1px solid transparent}.status-todo{background:#1e293b;color:#cbd5e1;border-color:#334155}.status-in_progress{background:#1e3a8a;color:#bfdbfe;border-color:#2563eb}.status-in_review{background:#7c2d12;color:#fed7aa;border-color:#ea580c}.status-done{background:#064e3b;color:#6ee7b7;border-color:#059669}.status-rejected{background:#7f1d1d;color:#fecaca;border-color:#ef4444}.op-row{display:flex;gap:6px;flex-wrap:wrap}.btn-sm{padding:4px 8px;font-size:12px}.anno-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.anno-modal{width:520px;max-width:92vw;background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.anno-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.anno-modal-actions{display:flex;justify-content:flex-end;gap:8px}.dictionary-page{max-width:1200px}.dict-table{width:100%;border-collapse:collapse;font-size:13px}.dict-table th,.dict-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}.dict-table th{background:var(--bg-elevated);color:var(--text-muted);font-weight:500}.dict-table tbody tr:hover{background:var(--bg-hover)}.dict-search{margin-bottom:20px}.input.wide{width:100%;max-width:400px}.dict-table th,.dict-table td{padding:12px 16px}.dict-table .count{font-weight:600;color:var(--accent)}.dict-table .en{font-family:ui-monospace,monospace;color:var(--text)}.dict-table .zh{color:var(--text-muted)}.dict-table .jp{color:var(--text-dim);font-size:12px}.dict-table .meta{font-size:12px;color:var(--text-dim)}.ai-guide-card{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #ffffff);border-radius:12px;padding:12px;margin-bottom:12px;box-shadow:var(--shadow-soft, 0 2px 8px rgba(2, 6, 23, .08))}.ai-guide-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ai-guide-head h3{margin:0}.ai-guide-sub{margin:6px 0 0;color:var(--text-muted, #64748b);font-size:13px}.ai-guide-terms{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.ai-term-wrap{position:relative;display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);border-radius:999px;padding:3px 8px}.ai-term-text{font-size:12px}.ai-term-q{width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;border:1px solid var(--border-color, #dbe3ef);color:var(--text-muted, #64748b);font-size:11px;cursor:help}.ai-term-tip{position:absolute;left:0;top:calc(100% + 6px);min-width:220px;max-width:320px;padding:8px 10px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #ffffff);box-shadow:var(--shadow-soft, 0 2px 8px rgba(2, 6, 23, .12));color:var(--text, #0f172a);font-size:12px;z-index:20;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease}.ai-term-wrap:hover .ai-term-tip,.ai-term-wrap:focus-within .ai-term-tip{opacity:1;transform:translateY(0)}.ai-guide-dataset{margin-top:10px}.ai-guide-dataset-title{font-size:12px;color:var(--text-muted, #64748b);margin-bottom:6px}.ai-guide-dataset pre{margin:0;padding:8px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-page, #f1f5f9);font-size:12px;max-height:180px;overflow:auto}.ai-guide-steps{margin:10px 0 0;padding-left:18px;font-size:13px;color:var(--text-muted, #64748b)}.ai-guide-steps li{margin:4px 0}.auto-research-card{border:1px solid var(--border-color, #dbe3ef);border-radius:12px;background:var(--bg-card, #fff);padding:14px;margin-bottom:14px}.auto-research-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.auto-research-head h3{margin:0}.auto-research-badge{font-size:11px;border:1px solid var(--accent, #2563eb);color:var(--accent, #2563eb);border-radius:999px;padding:2px 8px}.auto-research-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.auto-research-grid-small{grid-template-columns:repeat(4,minmax(120px,1fr))}.auto-research-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-muted, #64748b)}.auto-research-grid input{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);padding:7px 10px}.auto-research-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.auto-research-status{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12px;color:var(--text-muted, #64748b)}.auto-research-table{margin-top:10px;border:1px solid var(--border-color, #dbe3ef);border-radius:10px;overflow:auto;max-height:260px}.auto-research-row{display:grid;grid-template-columns:72px 84px 72px 1fr;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border-color, #dbe3ef);font-size:12px}.auto-research-row.running{background:color-mix(in srgb,var(--accent, #2563eb) 8%,transparent)}.auto-research-row.done{background:color-mix(in srgb,var(--success, #16a34a) 8%,transparent)}.auto-research-empty{padding:14px;color:var(--text-muted, #64748b);font-size:13px}.auto-research-best{margin-top:10px;display:flex;flex-direction:column;gap:4px;font-size:12px}.auto-research-best code{background:var(--bg-elevated, #f8fafc);border:1px solid var(--border-color, #dbe3ef);padding:6px 8px;border-radius:8px;word-break:break-all}.auto-research-timeline{margin-top:12px;border-top:1px solid var(--border-color, #dbe3ef);padding-top:10px}.auto-research-timeline-title{font-size:12px;color:var(--text-muted, #64748b);margin-bottom:8px}.auto-research-timeline-row{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);border-radius:8px;padding:8px 10px;margin-bottom:8px;font-size:12px}.auto-research-timeline-meta{display:flex;flex-wrap:wrap;gap:10px}.auto-research-timeline-note{margin-top:4px;color:var(--text-muted, #64748b)}.auto-research-timeline-external{margin-top:6px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:6px;padding:6px 8px;overflow:auto;max-height:120px}@media(max-width:980px){.auto-research-grid,.auto-research-grid-small{grid-template-columns:1fr}.auto-research-row{grid-template-columns:1fr;gap:2px}}.ce-step-desc{margin-top:8px;font-size:12px;color:var(--text-muted, #64748b)}.training-page{max-width:1200px}.tabs-row{display:flex;gap:16px;margin-bottom:20px}.tab{padding:8px 16px;border:none;background:transparent;color:var(--text-muted, #64748b);cursor:pointer;font-size:14px}.tab.active{color:var(--accent, #2563eb);border-bottom:2px solid var(--accent, #2563eb)}.tab.btn-create{margin-left:auto;background:var(--accent, #2563eb);color:var(--text-inverse, #fff);border-radius:6px}.tab.btn-create:hover{background:var(--accent-hover, #1d4ed8)}.mono{font-family:ui-monospace,monospace;font-size:12px}.link-btn{background:none;border:none;color:var(--accent, #2563eb);cursor:pointer;font-size:16px;padding:0 4px}.link-btn:hover{color:color-mix(in srgb,var(--accent, #2563eb) 75%,#ffffff)}.training-mini-pill{margin-left:6px;font-size:11px;padding:2px 6px}.training-error{color:var(--danger, #dc2626);padding:12px;background:color-mix(in srgb,var(--danger, #dc2626) 10%,transparent);border-radius:6px;margin-bottom:16px}.training-loading{padding:24px;text-align:center;color:var(--text-muted, #64748b)}.training-empty{text-align:center;color:#64748b;padding:32px!important}.pill-gray{background:var(--text-muted, #475569)}.pill-red{background:var(--danger, #dc2626)}.modal-overlay{position:fixed;inset:0;background:var(--bg-overlay, rgba(2, 6, 23, .5));display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-card, #ffffff);border-radius:12px;max-width:560px;width:90%;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-soft, 0 12px 36px rgba(2, 6, 23, .22))}.modal-builder{max-width:980px}.modal-create-training .modal-body{overflow-y:auto;padding:20px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color, #dbe3ef)}.modal-header h2{margin:0;font-size:18px}.modal-close{background:none;border:none;color:var(--text-muted, #64748b);font-size:24px;cursor:pointer;padding:0 8px}.modal-close:hover{color:var(--text, #0f172a)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color, #dbe3ef)}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:13px;color:var(--text-muted, #64748b)}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.form-error{color:var(--danger, #dc2626);font-size:13px;margin-top:8px}.dataset-select-actions{display:flex;align-items:center;gap:12px;margin-bottom:8px}.btn-small{padding:4px 12px;font-size:12px;background:color-mix(in srgb,var(--accent, #2563eb) 16%,transparent);color:var(--accent, #2563eb);border:none;border-radius:4px;cursor:pointer}.btn-small:hover{background:color-mix(in srgb,var(--accent, #2563eb) 22%,transparent)}.btn-plan{background:color-mix(in srgb,var(--success, #16a34a) 16%,transparent);color:var(--success, #16a34a)}.btn-plan:hover{background:color-mix(in srgb,var(--success, #16a34a) 22%,transparent)}.selected-count{font-size:12px;color:var(--text-muted, #64748b)}.dataset-list{max-height:220px;overflow-y:auto;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;background:var(--bg-elevated, #f8fafc)}.dataset-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;cursor:pointer}.dataset-item:hover{background:var(--bg-hover, #eef2ff)}.dataset-item input{flex-shrink:0}.dataset-name{flex:1;font-size:14px}.dataset-meta{font-size:12px;color:var(--text-muted, #64748b)}.dataset-loading,.dataset-empty{padding:24px;text-align:center;color:var(--text-muted, #64748b);font-size:14px}.train-switches{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text, #0f172a)}.cost-estimate-row{display:flex;align-items:center;gap:10px;min-height:32px}.cost-estimate-text{font-size:12px;color:var(--success, #16a34a)}.auto-plan-preview{margin-top:12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--success, #16a34a) 40%,var(--border-color, #dbe3ef));background:color-mix(in srgb,var(--success, #16a34a) 8%,transparent);border-radius:8px;font-size:13px;color:var(--text, #0f172a);display:flex;flex-direction:column;gap:4px}.modal-feedback .modal-body{overflow-y:auto;padding:20px}.modal-progress{max-width:720px}.feedback-job{margin-bottom:12px;color:var(--text, #0f172a);font-size:13px}.progress-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;font-size:13px;color:var(--text, #0f172a)}.progress-track{width:100%;height:10px;border-radius:999px;background:color-mix(in srgb,var(--border-color, #dbe3ef) 65%,transparent);overflow:hidden;margin-bottom:6px}.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent, #2563eb),var(--success, #16a34a));transition:width .25s ease}.progress-pct{color:var(--accent, #2563eb);font-size:12px;margin-bottom:10px}.progress-stage-row{display:grid;grid-template-columns:80px 1fr 56px;align-items:center;gap:8px}.feedback-notes{min-height:88px;resize:vertical}.builder-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}.builder-panel{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:10px}.builder-title{font-size:12px;color:var(--accent, #2563eb);margin-bottom:8px}.builder-list{max-height:380px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.builder-algo-item{display:grid;grid-template-columns:118px 1fr;gap:8px;align-items:center;font-size:12px;color:var(--text, #0f172a);border:1px solid var(--border-color, #dbe3ef);border-radius:6px;padding:8px;cursor:grab;background:var(--bg-card, #fff)}.builder-algo-item:hover{border-color:color-mix(in srgb,var(--accent, #2563eb) 55%,var(--border-color, #dbe3ef));background:color-mix(in srgb,var(--accent, #2563eb) 8%,transparent)}.builder-dropzone{border:1px dashed color-mix(in srgb,var(--success, #16a34a) 60%,var(--border-color, #dbe3ef));border-radius:8px;color:var(--success, #16a34a);font-size:12px;padding:8px;text-align:center;margin-bottom:8px;background:var(--bg-card, #fff)}.builder-fixed-node{color:var(--text-muted, #64748b);font-size:12px;margin:6px 0}.builder-seq{display:flex;flex-direction:column;gap:6px;margin:8px 0}.builder-seq-item{display:grid;grid-template-columns:118px 1fr auto;gap:8px;align-items:center;font-size:12px;color:var(--text, #0f172a);border:1px solid var(--border-color, #dbe3ef);border-radius:6px;padding:8px;background:var(--bg-card, #fff)}.builder-seq-actions{display:flex;gap:4px}.feedback-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text, #0f172a);margin-top:8px}.feedback-header-actions{display:flex;align-items:center;gap:8px}.feedback-runner-select{min-width:180px;height:30px;font-size:12px}.feedback-evidence{margin-top:12px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);border-radius:8px;padding:10px}.feedback-evidence-title{font-size:12px;color:var(--text, #0f172a);margin-bottom:8px}.feedback-evidence-group{margin-bottom:8px}.feedback-evidence-metric{font-size:12px;color:var(--accent, #2563eb);margin-bottom:4px}.feedback-evidence-item{font-size:12px;color:var(--text, #0f172a);line-height:1.45}.feedback-evidence-empty{font-size:12px;color:var(--text-muted, #64748b)}.feedback-evidence-actions{display:flex;gap:8px;margin-top:8px}.parser-quality-card{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;color:var(--text, #0f172a);font-size:12px}.parser-quality-head{display:flex;gap:16px;margin-bottom:8px}.parser-quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}.parser-quality-col{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;background:var(--bg-elevated, #f8fafc)}.parser-quality-title{color:var(--accent, #2563eb);margin-bottom:6px;font-size:12px}.parser-quality-row{display:flex;justify-content:space-between;color:var(--text, #0f172a);font-size:12px;line-height:1.45}.evidence-context-btn{margin-left:8px;padding:2px 8px;font-size:11px}.log-context-box{max-height:320px;overflow-y:auto;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;background:var(--bg-elevated, #f8fafc)}.log-context-line{font-size:12px;color:var(--text, #0f172a);line-height:1.45;padding:2px 4px;border-radius:4px}.log-context-hit{background:color-mix(in srgb,var(--accent, #2563eb) 16%,transparent);color:var(--accent, #2563eb)}.inference-page{max-width:1280px}.obs-empty{color:var(--text-muted);text-align:center;font-size:13px}.inference-sub{color:var(--text-muted);margin:-8px 0 12px}.inference-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:12px}.inference-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);min-height:88px;padding:10px 12px;resize:vertical}.inference-actions{display:flex;flex-direction:column;gap:8px}.inference-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:12px;margin-bottom:12px}.inference-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:12px;margin-bottom:12px}.inference-card h3{margin:0 0 10px}.inference-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--text-muted);margin-bottom:8px}.weight-list{display:grid;gap:8px}.weight-row{display:grid;grid-template-columns:112px 1fr 54px;gap:8px;align-items:center}.weight-label{font-size:12px;color:var(--text-muted)}.weight-track{height:8px;border-radius:99px;background:color-mix(in srgb,var(--border) 70%,transparent);overflow:hidden}.weight-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),#60a5fa)}.weight-value{font-size:12px;color:var(--text);text-align:right}.inference-tip{margin-top:10px;color:var(--text-muted);font-size:13px}.adapter-list{display:grid;gap:8px;margin-bottom:12px}.adapter-item{display:grid;grid-template-columns:1.2fr .6fr 1fr;gap:8px;padding:8px 10px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);font-size:12px}.structure-base h4{margin:0 0 6px;color:var(--text-muted);font-size:12px}.structure-base ul{margin:0;padding-left:18px}.structure-base li{font-size:12px;color:var(--text-muted)}.structure-diagram{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.structure-node{padding:6px 12px;border-radius:var(--radius-sm);font-size:12px;border:1px solid var(--border)}.structure-node--input{background:#e0f2fe;color:#0369a1}.structure-node--base{background:var(--bg-elevated);color:var(--text)}.structure-node--adapter{background:#fef3c7;color:#b45309}.structure-node--output{background:#d1fae5;color:#047857}.structure-node-label{font-weight:500}.structure-node-focus{margin-left:6px;font-size:11px;color:var(--text-muted)}.weight-timeline{margin-top:8px}.weight-timeline-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted);margin-bottom:4px}.weight-timeline-tick{flex:1;text-align:center}.weight-timeline-chart{display:flex;flex-direction:column;gap:12px}.weight-timeline-series{display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:center}.weight-timeline-legend{font-size:12px;color:var(--text-muted)}.weight-timeline-svg{height:36px;width:100%;color:var(--accent)}.dual-curve{display:flex;flex-direction:column;gap:10px}.dual-curve-row{display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:center}.dual-curve-label{font-size:12px;color:var(--text-muted)}.dual-curve-bars{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dual-curve-bar-wrap{display:flex;align-items:center;gap:6px}.dual-curve-legend{font-size:11px;color:var(--text-muted);width:28px}.dual-curve-track{flex:1;height:6px;border-radius:99px;background:color-mix(in srgb,var(--border) 60%,transparent);overflow:hidden}.dual-curve-fill{height:100%;border-radius:99px;transition:width .3s ease}.dual-curve-fill--current{background:linear-gradient(90deg,var(--accent),#60a5fa)}.dual-curve-fill--target{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.inference-preview{margin-bottom:12px}.inference-preview-desc{color:var(--text-muted);font-size:13px;margin:0 0 10px}.inference-preview-toolbar{display:flex;gap:10px;margin-bottom:12px}.inference-preview-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text)}.inference-preview-result{padding:12px;background:var(--bg-elevated);border-radius:var(--radius-sm);border-left:4px solid var(--accent)}.inference-preview-result blockquote{margin:0 0 8px;font-style:italic;color:var(--text)}.inference-preview-result small{color:var(--text-muted);font-size:12px}@media(max-width:980px){.inference-toolbar{grid-template-columns:1fr}.inference-actions{flex-direction:row}.inference-grid,.dual-curve-bars{grid-template-columns:1fr}}.actions-page{max-width:1200px}.section-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.section-header h2{margin:0;font-size:16px}.section-header .count{color:#94a3b8;font-size:13px}.section-header .view-all{margin-left:auto;color:#3b82f6;text-decoration:none}.motion-gallery{display:flex;gap:16px;overflow-x:auto;padding-bottom:16px}.motion-card{flex:0 0 200px}.motion-placeholder{width:200px;height:120px;background:#2a3544;border-radius:8px;display:flex;align-items:center;justify-content:center}.motion-placeholder .loading{color:#64748b;font-size:12px}.motion-name{margin:8px 0 4px;font-size:14px}.motion-diff{font-size:12px;padding:2px 8px;border-radius:4px}.diff-simple{background:#065f46;color:#34d399}.diff-medium{background:#78350f;color:#fbbf24}.diff-complex{background:#7f1d1d;color:#fca5a5}.projects-page{max-width:1200px}.projects-page .tabs-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.projects-page .tab{padding:8px 16px;border-radius:8px;border:1px solid #2a3544;background:#1a2332;color:#94a3b8;cursor:pointer;font-size:13px}.projects-page .tab.active{background:#1e3a5f;color:#3b82f6;border-color:#3b82f6}.toolbar{margin-left:auto;display:flex;align-items:center;gap:12px}.toolbar label{font-size:13px;color:#94a3b8}.project-grid{display:flex;flex-direction:column;gap:16px;margin-top:20px}.project-card{display:flex;align-items:flex-start;gap:16px;padding:20px;background:#1a2332;border-radius:12px;border:1px solid #2a3544}.project-info{flex:1}.project-info h3{margin:0 0 12px;font-size:16px}.project-stats{display:flex;gap:24px;color:#94a3b8;font-size:13px;margin-bottom:12px}.project-actions{display:flex;align-items:center;gap:8px}.icon-btn{background:none;border:none;cursor:pointer;font-size:14px}.arrow{color:#64748b;margin-left:auto}.users-page{max-width:1200px}.users-page .tip{font-size:12px;color:#64748b;margin-top:8px}.devices-page{max-width:1400px}.input.wide{width:100%;max-width:400px;margin-bottom:20px}.system-tag{font-size:12px;color:var(--text-muted, #64748b)}.mono{font-family:ui-monospace,monospace}.robots-page{max-width:1200px}.category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.robot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.robot-card{background:#1a2332;border-radius:12px;padding:20px;border:1px solid #2a3544;text-align:center}.robot-placeholder{width:100%;height:120px;background:#2a3544;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:48px;margin-bottom:12px}.robot-card h4{margin:0 0 8px;font-size:14px}.company-badge{font-size:11px;color:#64748b}.count{display:block;margin-top:8px;color:#3b82f6;font-size:13px}.urdf-page{max-width:100%;height:calc(100vh - 120px);display:flex;flex-direction:column}.urdf-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;flex:1;min-height:0}.urdf-sidebar{display:flex;flex-direction:column;gap:16px;overflow:hidden}.upload-zone{padding:20px;border:2px dashed var(--border-color, #dbe3ef);border-radius:12px;background:var(--bg-card, #fff);cursor:pointer;transition:all .2s;position:relative}.upload-zone:hover,.upload-zone.active{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 16%,transparent)}.upload-zone.uploading{cursor:wait}.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-zone span{display:block;text-align:center;font-size:13px;color:var(--text-muted, #64748b)}.upload-icon{font-size:28px;margin-bottom:8px}.upload-progress{position:relative;height:24px;background:color-mix(in srgb,var(--text-muted, #64748b) 24%,transparent);border-radius:6px;overflow:hidden}.upload-progress .progress-bar{height:100%;background:var(--accent, #2563eb);transition:width .2s}.upload-progress span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text, #0f172a)}.urdf-list-section{flex:1;min-height:0;display:flex;flex-direction:column}.urdf-list-title{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--text-muted, #64748b);text-transform:uppercase;letter-spacing:.05em}.urdf-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.urdf-item{padding:12px;text-align:left;background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;cursor:pointer;transition:all .2s}.urdf-item:hover{border-color:var(--accent, #2563eb);background:var(--bg-elevated, #f8fafc)}.urdf-item.active{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 12%,var(--bg-card, #fff))}.urdf-item .name{display:block;font-weight:500;margin-bottom:4px}.urdf-item .meta{font-size:11px;color:var(--text-muted, #64748b)}.list-loading,.list-empty{padding:24px;text-align:center;color:var(--text-muted, #64748b);font-size:13px}.urdf-demo-area{height:100%}.urdf-viewer-panel{background:var(--bg-card, #fff);border-radius:12px;border:1px solid var(--border-color, #dbe3ef);overflow:hidden;min-height:400px}.viewer-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:400px;color:var(--text-muted, #64748b)}.placeholder-icon{font-size:64px;margin-bottom:16px;opacity:.5}.viewer-placeholder p{margin:0 0 8px}.viewer-placeholder .hint{font-size:12px;color:var(--text-muted, #64748b)}.urdf-viewer-wrap{display:flex;height:100%;min-height:400px}.urdf-joint-panel{width:200px;flex-shrink:0;padding:12px;background:var(--bg-elevated, #f8fafc);border-right:1px solid var(--border-color, #dbe3ef);overflow-y:auto}.urdf-joint-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.urdf-joint-title{font-size:12px;color:var(--text-muted, #64748b);font-weight:500}.urdf-reset-btn{padding:4px 10px;font-size:11px;background:var(--accent, #2563eb);color:var(--text-inverse, #fff);border:none;border-radius:6px;cursor:pointer}.urdf-reset-btn:hover{background:color-mix(in srgb,var(--accent, #2563eb) 85%,#000)}.urdf-joint-row{margin-bottom:10px}.urdf-joint-row label{display:block;font-size:11px;color:var(--text-muted, #64748b);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis}.urdf-joint-row input[type=range]{width:100%;accent-color:var(--accent, #2563eb)}.urdf-viewer-wrap .urdf-viewer{flex:1;min-width:0;touch-action:none}.urdf-viewer-wrap [data-urdf-canvas]{touch-action:none}.urdf-viewer-hint{position:absolute;bottom:8px;left:50%;transform:translate(-50%);font-size:11px;color:var(--text-muted, #64748b);z-index:5}.urdf-loading,.urdf-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:12px 20px;background:color-mix(in srgb,var(--bg-page, #f1f5f9) 76%,#000);border-radius:8px;font-size:14px;z-index:10}.urdf-loading{color:var(--text-muted, #64748b)}.urdf-error{color:var(--danger, #dc2626)}.camera-page{max-width:900px}.camera-device-section{margin-bottom:20px;padding:16px;background:var(--bg-card, #fff);border-radius:12px;border:1px solid var(--border-color, #dbe3ef)}.camera-device-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.camera-device-title{margin:0;font-size:14px;font-weight:600;color:var(--text-muted, #64748b)}.camera-device-refresh{padding:4px 10px;font-size:14px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text-muted, #64748b);border-radius:6px;cursor:pointer}.camera-device-refresh:hover{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.camera-device-loading,.camera-device-empty{font-size:13px;color:var(--text-muted, #64748b)}.camera-device-grid{display:flex;flex-wrap:wrap;gap:12px}.camera-device-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 16px;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);font-size:13px;cursor:pointer;text-align:left;min-width:180px;transition:border-color .15s,background .15s}.camera-device-card:hover{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 8%,var(--bg-elevated, #f8fafc))}.camera-device-card.selected{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 14%,var(--bg-elevated, #f8fafc))}.camera-device-badge{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:500}.camera-device-badge.realsense{background:color-mix(in srgb,var(--success, #16a34a) 20%,transparent);color:var(--success, #16a34a)}.camera-device-badge.usb{background:color-mix(in srgb,var(--accent, #2563eb) 20%,transparent);color:var(--accent, #2563eb)}.camera-device-badge.builtin{background:color-mix(in srgb,var(--text-muted, #64748b) 18%,transparent);color:var(--text, #0f172a)}.camera-device-badge.unknown{background:color-mix(in srgb,var(--text-muted, #64748b) 14%,transparent);color:var(--text-muted, #64748b)}.camera-device-label{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.camera-device-model{font-size:11px;color:var(--text-muted, #64748b)}.camera-device-in-use{font-size:11px;color:var(--success, #16a34a)}.camera-device-card.disabled{cursor:default;opacity:.9}.camera-device-card.disabled:not(.selected){opacity:.6}.camera-call-device-select{padding:6px 10px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a);font-size:13px;max-width:240px}.camera-page-call{max-width:1280px}.camera-controls{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.camera-controls select{padding:8px 12px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a);font-size:13px}.btn-record{padding:8px 16px;background:var(--danger, #dc2626);color:var(--text-inverse, #fff);border:none;border-radius:6px;cursor:pointer;font-size:13px}.btn-record:hover{background:color-mix(in srgb,var(--danger, #dc2626) 85%,#000)}.btn-stop{padding:8px 16px;background:var(--danger, #dc2626);color:var(--text-inverse, #fff);border:2px solid color-mix(in srgb,var(--danger, #dc2626) 45%,var(--text-inverse, #fff));border-radius:6px;cursor:pointer;font-size:13px;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.85}}.camera-error{padding:12px;background:color-mix(in srgb,var(--danger, #dc2626) 14%,transparent);color:var(--danger, #dc2626);border-radius:8px;margin-bottom:16px;font-size:13px}.camera-preview{position:relative;background:var(--bg-elevated, #f8fafc);border-radius:12px;border:1px solid var(--border-color, #dbe3ef);overflow:hidden;aspect-ratio:16/9;min-height:360px}.preview-video{width:100%;height:100%;object-fit:contain;display:block;background:var(--bg-page, #f1f5f9)}.preview-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted, #64748b)}.placeholder-icon{font-size:64px;margin-bottom:16px;opacity:.6}.recording-badge{position:absolute;top:12px;right:12px;padding:6px 12px;background:color-mix(in srgb,var(--danger, #dc2626) 90%,transparent);color:var(--text-inverse, #fff);border-radius:6px;font-size:12px}.upload-overlay{position:absolute;bottom:0;left:0;right:0;padding:12px;background:color-mix(in srgb,var(--bg-page, #f1f5f9) 70%,#000);color:var(--text, #0f172a);font-size:13px}.upload-progress-bar{height:6px;background:color-mix(in srgb,var(--text-muted, #64748b) 24%,transparent);border-radius:3px;overflow:hidden;margin-bottom:8px}.upload-progress-bar div{height:100%;background:var(--accent, #2563eb);transition:width .2s}.camera-recording-history{margin-top:20px;padding:16px;background:var(--bg-card, #fff);border-radius:12px;border:1px solid var(--border-color, #dbe3ef)}.history-title{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-muted, #64748b)}.history-empty{padding:16px;text-align:center;color:var(--text-muted, #64748b);font-size:13px}.history-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.history-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-elevated, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #dbe3ef)}.history-play-btn{padding:6px 12px;font-size:12px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a);border-radius:6px;cursor:pointer;flex-shrink:0}.history-play-btn:hover{background:var(--bg-elevated, #f8fafc);border-color:var(--accent, #2563eb)}.history-play-btn.playing{background:color-mix(in srgb,var(--accent, #2563eb) 12%,var(--bg-card, #fff));border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.history-info{flex:1;min-width:0}.history-name{display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-meta{font-size:11px;color:var(--text-muted, #64748b)}.history-playback{margin-top:12px;padding:12px;background:var(--bg-elevated, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #dbe3ef)}.history-playback video{width:100%;max-height:320px;border-radius:6px}.playback-label{display:block;font-size:12px;color:var(--text-muted, #64748b);margin-bottom:8px}.playback-close{padding:4px 10px;font-size:12px;background:transparent;color:var(--text-muted, #64748b);border:1px solid var(--border-color, #dbe3ef);border-radius:6px;cursor:pointer}.playback-close:hover{color:var(--text, #0f172a);border-color:var(--accent, #2563eb)}.camera-mode-tabs{display:flex;gap:8px;margin-bottom:16px}.camera-mode-tabs button{padding:8px 16px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text-muted, #64748b);cursor:pointer;font-size:13px}.camera-mode-tabs button.active{background:color-mix(in srgb,var(--accent, #2563eb) 12%,var(--bg-card, #fff));color:var(--accent, #2563eb);border-color:var(--accent, #2563eb)}.ai-connect-panel{margin-bottom:16px;padding:12px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:8px}.ai-connect-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.ai-connect-head h4{margin:0;font-size:13px;color:var(--text-muted, #64748b)}.ai-apply-btn{padding:6px 10px;border:1px solid var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 12%,var(--bg-card, #fff));color:var(--accent, #2563eb);border-radius:6px;cursor:pointer;font-size:12px}.ai-apply-btn:hover{background:var(--accent, #2563eb);color:var(--text-inverse, #fff)}.ai-connect-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:8px 12px}.ai-connect-grid label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text, #0f172a)}.ai-connect-grid select,.ai-connect-grid input{padding:7px 10px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);font-size:12px}.ai-connect-grid .ai-custom-url{grid-column:1 / -1}.ai-connect-hint{margin-top:8px;font-size:11px;color:var(--text-muted, #64748b)}.remote-desc{color:var(--text-muted, #64748b);font-size:14px;margin-bottom:16px;line-height:1.5}.ip-geo-panel{padding:12px;background:var(--bg-card, #fff);border-radius:8px;border:1px solid var(--border-color, #dbe3ef);margin-bottom:16px}.ip-geo-panel h4{margin:0 0 8px;font-size:13px;color:var(--text-muted, #64748b)}.ip-geo-grid{display:flex;flex-wrap:wrap;gap:12px 18px}.ip-geo-item{display:flex;flex-direction:column;gap:2px;min-width:180px}.ip-geo-label{font-size:11px;color:var(--text-muted, #64748b)}.ip-geo-value{font-size:13px;font-family:monospace;color:var(--text, #0f172a)}.ip-geo-loc{font-size:11px;color:var(--text-muted, #64748b)}.remote-setup{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.remote-setup input{flex:1;min-width:180px;padding:8px 12px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a);font-family:monospace}.camera-recent{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%}.camera-recent-label{font-size:12px;color:var(--text-muted, #64748b)}.camera-recent-btn{padding:4px 10px;font-size:12px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text-muted, #64748b);cursor:pointer;font-family:monospace}.camera-recent-btn:hover{background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a)}.remote-view{margin-top:20px}.remote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.remote-cam-cell{aspect-ratio:16/9;background:var(--bg-elevated, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #dbe3ef);overflow:hidden}.remote-cam-cell img{width:100%;height:100%;object-fit:contain;display:block}.remote-cam-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted, #64748b);font-size:13px}.remote-robot-panel{padding:12px;background:var(--bg-card, #fff);border-radius:8px;border:1px solid var(--border-color, #dbe3ef);margin-bottom:12px}.remote-robot-panel h4{margin:0 0 8px;font-size:14px}.remote-robot-panel pre{margin:0;font-size:12px;color:var(--text-muted, #64748b);overflow:auto;max-height:200px}.remote-ai-insight-panel{padding:12px;background:color-mix(in srgb,var(--success, #16a34a) 10%,var(--bg-card, #fff));border-radius:8px;border:1px solid color-mix(in srgb,var(--success, #16a34a) 45%,var(--border-color, #dbe3ef));margin-bottom:12px}.remote-ai-insight-panel h4{margin:0 0 10px;font-size:14px;color:var(--success, #16a34a)}.ai-insight-section{margin-bottom:8px}.ai-insight-section:last-of-type{margin-bottom:0}.ai-insight-label{font-size:11px;color:var(--success, #16a34a);font-weight:500}.ai-insight-section p{margin:4px 0 0;font-size:13px;color:var(--text, #0f172a);line-height:1.5;white-space:pre-wrap}.ai-insight-raw{margin-top:10px;font-size:11px;color:var(--text-muted, #64748b)}.ai-insight-raw summary{cursor:pointer}.ai-insight-raw pre{margin:8px 0 0;font-size:11px;overflow:auto;max-height:120px}.ai-insight-usage{background:color-mix(in srgb,var(--text-muted, #64748b) 14%,transparent);padding:6px 8px;border-radius:4px;margin-top:6px}.ai-insight-usage p{margin:2px 0 0}.ai-insight-usage p:first-of-type{margin-top:4px}.ai-insight-history-panel{padding:12px;background:color-mix(in srgb,var(--success, #16a34a) 8%,var(--bg-card, #fff));border-radius:8px;border:1px solid color-mix(in srgb,var(--success, #16a34a) 35%,var(--border-color, #dbe3ef));margin-bottom:12px}.ai-insight-history-panel h4{margin:0 0 10px;font-size:14px;color:var(--success, #16a34a)}.ai-insight-history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}.ai-insight-history-actions{display:flex;gap:8px}.ai-insight-history-empty{font-size:12px;color:var(--text-muted, #64748b)}.ai-insight-history-list{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.ai-insight-history-item{border:1px solid color-mix(in srgb,var(--success, #16a34a) 30%,var(--border-color, #dbe3ef));border-radius:6px;padding:8px;background:var(--bg-elevated, #f8fafc)}.ai-insight-history-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.ai-insight-history-time{font-family:ui-monospace,monospace;color:var(--success, #16a34a);font-size:12px}.ai-insight-history-model{color:var(--accent, #2563eb);font-size:11px}.ai-insight-history-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--text-muted, #64748b);font-size:11px;margin-bottom:4px}.ai-insight-history-scene{color:var(--text, #0f172a);font-size:12px;line-height:1.4}.ai-insight-history-actions{color:color-mix(in srgb,var(--success, #16a34a) 85%,var(--text, #0f172a));font-size:11px;margin-top:4px}.ai-insight-history-detail{margin-top:6px;font-size:11px;color:var(--text-muted, #64748b)}.ai-insight-history-detail summary{cursor:pointer}.ai-insight-history-detail pre{margin:6px 0 0;max-height:140px;overflow:auto;font-size:11px;color:var(--text, #0f172a)}.ai-insight-keyframe{width:160px;max-width:100%;margin-top:6px;border-radius:6px;border:1px solid color-mix(in srgb,var(--text-muted, #64748b) 35%,transparent);cursor:pointer}.ai-feedback-row{display:flex;gap:8px;margin-top:8px;align-items:center}.ai-feedback-row select{padding:4px 8px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);font-size:12px}.ai-feedback-input{width:100%;margin-top:6px;min-height:56px;resize:vertical;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);font-size:12px;padding:8px}.ai-timeline{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:8px}.ai-timeline-item{min-width:88px;border:1px solid color-mix(in srgb,var(--text-muted, #64748b) 35%,transparent);border-radius:6px;background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);font-size:11px;padding:4px;display:flex;flex-direction:column;gap:4px;align-items:center;cursor:pointer}.ai-timeline-item.active{border-color:var(--success, #16a34a);box-shadow:0 0 0 1px color-mix(in srgb,var(--success, #16a34a) 40%,transparent) inset}.ai-timeline-item img{width:78px;height:50px;object-fit:cover;border-radius:4px}.ai-timeline-placeholder{width:78px;height:50px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #64748b);background:var(--bg-page, #f1f5f9)}.call-participants-hint{font-size:12px;color:var(--text-muted, #64748b);margin-bottom:12px}.call-network-panel{padding:12px;background:var(--bg-card, #fff);border-radius:8px;border:1px solid var(--border-color, #dbe3ef);margin-bottom:16px}.call-network-panel h4{margin:0 0 10px;font-size:13px;color:var(--text-muted, #64748b)}.call-network-grid{display:flex;flex-wrap:wrap;gap:16px 24px}.call-network-item{display:flex;flex-direction:column;gap:2px}.call-network-label{font-size:11px;color:var(--text-muted, #64748b)}.call-network-value{font-size:13px;font-family:monospace;color:var(--text, #0f172a)}.call-network-geo{font-size:11px;color:var(--text-muted, #64748b)}.call-network-peer .call-network-value{font-size:12px}.call-record-panel{margin-bottom:12px;padding:10px 12px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.call-record-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text, #0f172a)}.call-record-status{font-size:12px;color:var(--text-muted, #64748b)}.call-view{margin-top:20px;display:flex;gap:16px;min-height:420px}.call-main{flex:1;min-width:0}.call-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}@media(min-width:900px){.call-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.call-cell{position:relative;aspect-ratio:16/9;background:var(--bg-elevated, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #dbe3ef);overflow:hidden;min-height:140px}.call-cell.self{border-color:var(--accent, #2563eb)}.call-cell.has-video{border-color:var(--success, #16a34a)}.call-cell video,.call-cell img{width:100%;height:100%;object-fit:contain;display:block}.call-cell-footer{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:8px;padding:6px 8px;background:linear-gradient(to top,color-mix(in srgb,var(--bg-page, #f1f5f9) 70%,#000),color-mix(in srgb,var(--bg-page, #f1f5f9) 45%,#000))}.call-avatar,.call-avatar-img{width:22px;height:22px;border-radius:50%;flex-shrink:0}.call-avatar{display:inline-flex;align-items:center;justify-content:center;background:var(--accent, #2563eb);color:var(--text-inverse, #fff);font-size:11px;font-weight:700}.call-avatar-img{object-fit:cover}.call-label-text{font-size:12px;color:var(--text, #0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-waiting{display:block;font-size:11px;color:var(--text-muted, #64748b);margin-top:4px}.call-chat-panel{width:320px;flex-shrink:0;background:var(--bg-card, #fff);border-radius:12px;border:1px solid var(--border-color, #dbe3ef);display:flex;flex-direction:column}.call-chat-header{padding:12px 16px;border-bottom:1px solid var(--border-color, #dbe3ef);font-weight:600;font-size:14px}.call-chat-messages{flex:1;min-height:180px;max-height:280px;overflow-y:auto;padding:12px}.call-chat-empty{color:var(--text-muted, #64748b);font-size:13px;text-align:center;padding:24px}.call-chat-msg{margin-bottom:10px;padding:8px 10px;background:var(--bg-elevated, #f8fafc);border-radius:8px;font-size:13px}.call-chat-msg.self{background:color-mix(in srgb,var(--accent, #2563eb) 12%,var(--bg-elevated, #f8fafc))}.call-chat-from{font-size:11px;color:var(--text-muted, #64748b);display:block;margin-bottom:4px}.call-chat-msg img{max-width:100%;max-height:100px;border-radius:6px;display:block;margin-top:4px}.call-chat-msg video{max-width:100%;max-height:100px;border-radius:6px;display:block;margin-top:4px}.call-chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border-color, #dbe3ef)}.call-chat-input input[type=text]{flex:1;padding:8px 12px;font-size:13px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a)}.call-chat-input .btn-send{padding:8px 14px;background:var(--accent, #2563eb);color:var(--text-inverse, #fff);border:none;border-radius:6px;cursor:pointer;font-size:13px}.call-recording-history{margin-top:16px}.omni-sharing-page{padding:1rem;max-width:840px;margin:0 auto}.omni-subtitle{color:var(--text-muted, #64748b);margin-bottom:1.5rem;font-size:1rem}.omni-section{background:var(--bg-card, #fff);border-radius:8px;padding:1.25rem;margin-bottom:1.25rem;box-shadow:var(--shadow-soft, 0 2px 8px color-mix(in srgb, var(--text, #0f172a) 8%, transparent))}.omni-section h2{margin:0 0 1rem;font-size:1.1rem}.format-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.format-card{border:1px solid var(--border-color, #dbe3ef);border-radius:6px;padding:1rem;background:var(--bg-elevated, #f8fafc)}.format-card h3{margin:0 0 .5rem;font-size:1rem}.format-card ul{margin:.5rem 0 0;padding-left:1.25rem;font-size:.85rem;color:var(--text-muted, #64748b)}.toolkit-flow{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0}.flow-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-elevated, #f8fafc);border-radius:6px;font-size:.9rem}.flow-num{width:24px;height:24px;line-height:24px;text-align:center;background:var(--accent, #2563eb);color:var(--text-inverse, #fff);border-radius:50%;font-size:.8rem}.flow-arrow{color:var(--text-muted, #64748b);font-size:1.2rem}.omni-link{display:inline-block;margin-top:.5rem;color:var(--accent, #2563eb);text-decoration:none;font-size:.95rem}.omni-link:hover{text-decoration:underline}.omni-steps{margin:.5rem 0 0;padding-left:1.5rem;line-height:1.7}.omni-steps li{margin-bottom:.5rem}.tactile-sensors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:1rem 0}.tactile-sensor-card{padding:12px;background:var(--bg-elevated, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #dbe3ef);display:flex;flex-direction:column;gap:6px}.tactile-sensor-card strong{font-size:13px}.tactile-sensor-card span{font-size:12px;color:var(--text-muted, #64748b);line-height:1.4}.modalities-grid{display:flex;flex-wrap:wrap;gap:.5rem}.toolchain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-top:.5rem}.toolchain-item{padding:.75rem;background:var(--bg-elevated, #f8fafc);border-radius:6px;font-size:.9rem}.modalities-grid span{padding:.35rem .75rem;background:color-mix(in srgb,var(--accent, #2563eb) 10%,var(--bg-card, #fff));border-radius:4px;font-size:.9rem}.omni-contact{font-size:.9rem;color:var(--text-muted, #64748b)}.omni-contact a{color:var(--accent, #2563eb)}.text-transfer-page{padding:1rem;max-width:640px;margin:0 auto}.text-transfer-desc{color:var(--text-muted, #94a3b8);margin-bottom:1rem;font-size:.95rem}.text-transfer-setup{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.text-transfer-setup input{flex:1;min-width:160px;padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a);font-family:monospace}.text-transfer-error{color:var(--danger, #dc2626);font-size:.9rem;margin-bottom:1rem}.text-transfer-main{margin-top:1rem;background:var(--bg-card, #fff);border-radius:8px;border:1px solid var(--border-color, #dbe3ef);overflow:hidden}.text-transfer-main.drag-over{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 8%,transparent)}.text-transfer-messages{min-height:200px;max-height:400px;overflow-y:auto;padding:1rem}.text-transfer-empty{color:var(--text-muted, #64748b);text-align:center;padding:2rem}.text-transfer-msg{margin-bottom:1rem;padding:.5rem .75rem;background:var(--bg-elevated, #f8fafc);border-radius:6px;border-left:3px solid var(--accent, #2563eb)}.text-transfer-msg.self{border-left-color:var(--success, #16a34a)}.msg-from{font-size:.75rem;color:var(--text-muted, #94a3b8);display:block;margin-bottom:.25rem}.msg-content{margin:0;white-space:pre-wrap;word-break:break-word;font-size:.9rem;font-family:inherit}.msg-time{font-size:.7rem;color:var(--text-muted, #64748b);display:block;margin-top:.25rem}.text-transfer-input-wrap{padding:1rem;border-top:1px solid var(--border-color, #dbe3ef)}.text-transfer-input-wrap textarea{width:100%;padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);font-size:.9rem;resize:vertical;margin-bottom:.5rem}.text-transfer-actions{display:flex;gap:.5rem;align-items:center}.btn-attach{padding:.5rem .75rem;background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border:1px solid var(--border-color, #dbe3ef);border-radius:6px;cursor:pointer;font-size:1.1rem}.btn-attach:hover:not(:disabled){border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.btn-attach:disabled{opacity:.6;cursor:not-allowed}.uploading-label{font-size:.8rem;color:var(--text-muted, #94a3b8)}.msg-media-wrap{display:block;margin:.25rem 0}.msg-image{max-width:100%;max-height:300px;border-radius:6px;display:block}.msg-video{max-width:100%;max-height:320px;border-radius:6px;display:block}.btn-send{padding:.5rem 1rem;background:var(--accent, #2563eb);color:var(--text-inverse, #fff);border:none;border-radius:6px;cursor:pointer;font-size:.9rem}.btn-send:hover:not(:disabled){background:color-mix(in srgb,var(--accent, #2563eb) 85%,#000)}.btn-send:disabled{opacity:.5;cursor:not-allowed}.anno-studio{height:calc(100vh - 60px);display:flex;flex-direction:column;background:var(--bg-page)}.anno-studio-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--bg-card)}.anno-studio-title{margin:0;font-size:18px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:10px}.anno-studio-logo{width:28px;height:28px;background:linear-gradient(135deg,var(--accent),#8b5cf6);clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%)}.anno-studio-actions{display:flex;align-items:center;gap:12px}.anno-badge{font-size:12px;color:var(--text-muted);padding:4px 10px;background:var(--bg-hover);border-radius:6px}.anno-btn{padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer;border:none}.anno-btn-save{background:#16a34a;color:#fff}.anno-btn-submit{background:#d97706;color:#fff}.anno-btn-export{background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:#fff}.anno-studio-body{flex:1;display:grid;grid-template-columns:240px 1fr 220px;min-height:0}.anno-sidebar,.anno-right-panel{background:var(--bg-elevated);border-right:1px solid var(--border);overflow-y:auto;padding:16px}.anno-right-panel{border-right:none;border-left:1px solid var(--border)}.anno-section{margin-bottom:24px}.anno-section-title{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.anno-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.anno-section-header .anno-section-title{margin-bottom:0}.anno-add-btn{width:24px;height:24px;border-radius:6px;background:var(--bg-hover);color:var(--accent);border:none;cursor:pointer;font-size:14px;line-height:1}.anno-type-tabs{display:flex;flex-direction:column;gap:4px}.anno-type-tabs button{padding:10px 12px;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text-muted);font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px}.anno-type-tabs button:hover{background:var(--bg-hover);color:var(--text)}.anno-type-tabs button.active{background:var(--bg-active);color:var(--accent);border-color:var(--accent)}.anno-datalist{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.anno-data-item{padding:10px 12px;text-align:left;background:var(--bg-card);border:1px solid transparent;border-radius:8px;color:var(--text);font-size:13px;cursor:pointer;transition:all .15s}.anno-data-item:hover{border-color:var(--border)}.anno-data-item.active{border-color:var(--accent);background:var(--bg-active)}.anno-data-name{display:block}.anno-data-meta{font-size:11px;color:var(--text-dim)}.anno-labels{display:flex;flex-direction:column;gap:6px}.anno-label-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted);background:transparent;border:1px solid transparent;padding:6px 8px;border-radius:6px;cursor:pointer;text-align:left}.anno-label-row.active{border-color:var(--accent);background:var(--bg-active);color:var(--text)}.anno-label-dot{width:10px;height:10px;border-radius:50%}.anno-main{display:flex;flex-direction:column;background:var(--bg-page);overflow:hidden}.anno-toolbar{padding:8px 16px;display:flex;gap:4px;border-bottom:1px solid var(--border)}.anno-toolbar button{width:36px;height:36px;border-radius:8px;background:var(--bg-card);border:1px solid transparent;color:var(--text-muted);font-size:16px;cursor:pointer}.anno-toolbar button:hover{color:var(--text);background:var(--bg-hover)}.anno-toolbar button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.anno-toolbar-finish{margin-left:auto;padding:0 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);cursor:pointer}.anno-canvas-wrap{flex:1;position:relative;display:flex;align-items:center;justify-content:center;min-height:300px}.anno-media{max-width:100%;max-height:100%;object-fit:contain}.anno-canvas{position:absolute;top:0;left:0;width:100%;height:100%;cursor:crosshair;pointer-events:all}.anno-canvas-pointcloud{position:static;width:auto;height:auto;border:1px solid var(--border);border-radius:10px}.anno-timeline{position:absolute;bottom:0;left:0;right:0;padding:12px 20px;background:linear-gradient(transparent,#0009)}[data-theme=light] .anno-timeline{background:linear-gradient(transparent,#f1f5f9f2)}.anno-timeline input[type=range]{width:100%;accent-color:var(--accent)}.anno-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);padding:48px}.anno-placeholder-icon{font-size:64px;margin-bottom:16px;opacity:.5}.anno-placeholder-hint{font-size:12px;color:var(--text-dim);margin-top:8px}.anno-saving{font-size:12px;color:var(--text-muted)}.anno-history-list{max-height:200px;overflow-y:auto}.anno-history-item{width:100%;padding:8px 12px;text-align:left;background:var(--bg-card);border:1px solid transparent;border-radius:6px;color:var(--text-muted);font-size:12px;cursor:pointer;margin-bottom:4px}.anno-history-item:hover{border-color:var(--border);color:var(--text)}.anno-history-time{display:block}.anno-history-meta{display:block;font-size:11px;color:var(--text-dim);margin-top:2px}.anno-history-note{display:block;font-size:11px;color:var(--accent);margin-top:2px}.anno-empty{padding:20px;text-align:center;font-size:13px;color:var(--text-dim)}.anno-annotation-list{max-height:300px;overflow-y:auto}.anno-anno-item{padding:8px 12px;margin-bottom:4px;background:var(--bg-card);border-radius:6px;font-size:12px;display:flex;gap:8px}.anno-anno-type{color:var(--text-muted);text-transform:uppercase}.anno-anno-label{color:var(--text)}.anno-shortcuts{margin-top:20px}.anno-shortcuts span{font-size:12px;color:var(--text-dim);margin-left:4px}.anno-kbd{display:inline-block;padding:2px 8px;margin:4px 4px 4px 0;background:var(--bg-hover);border-radius:4px;font-size:11px;font-family:ui-monospace,monospace}.anno-project-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px}.anno-project-mode button{border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:6px;padding:8px;cursor:pointer}.anno-project-mode button.active{border-color:var(--accent);color:var(--text);background:var(--bg-active)}.anno-guidelines{margin:0;padding-left:16px;color:var(--text-muted);font-size:12px;line-height:1.5}.anno-note-input{width:100%;border:1px solid var(--border);border-radius:6px;padding:8px;background:var(--bg-card);color:var(--text);font-size:12px}.episode-browser{max-width:960px;margin:0 auto}.episode-browser-desc{color:#94a3b8;font-size:14px;margin-bottom:20px;line-height:1.5}.episode-filters{display:flex;gap:12px;align-items:center;margin-bottom:20px}.episode-filter-input{flex:1;max-width:280px;padding:8px 12px;border-radius:6px;border:1px solid #2a3544;background:#1a2332;color:#e4e8ec;font-size:13px}.episode-count{font-size:13px;color:#64748b}.episode-error{padding:12px;background:#7f1d1d;color:#fca5a5;border-radius:8px;margin-bottom:16px;font-size:13px}.episode-loading{padding:24px;text-align:center;color:#64748b}.episode-empty{padding:48px 24px;text-align:center;background:#1a2332;border-radius:12px;border:1px dashed #2a3544;color:#94a3b8}.episode-empty-hint{font-size:13px;margin-top:12px;color:#64748b}.episode-empty-hint code{background:#0f1419;padding:2px 6px;border-radius:4px;font-size:12px}.episode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.episode-card{text-align:left;padding:16px;background:#1a2332;border:1px solid #2a3544;border-radius:10px;cursor:pointer;transition:border-color .2s,background .2s}.episode-card:hover{border-color:#3b82f6;background:#1e293b}.episode-card-header{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.episode-card-id{font-family:monospace;font-weight:600;font-size:14px;color:#e4e8ec}.episode-card-task{font-size:12px;color:#3b82f6}.episode-card-meta{display:flex;gap:12px;font-size:12px;color:#64748b;margin-bottom:8px}.episode-card-notes{font-size:12px;color:#94a3b8;margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.episode-playback{max-width:1280px;margin:0 auto}.episode-playback-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}.episode-back-btn{padding:8px 14px;font-size:13px;background:#1a2332;color:#94a3b8;border:1px solid #2a3544;border-radius:6px;cursor:pointer}.episode-back-btn:hover{background:#1e293b;color:#e4e8ec;border-color:#3b82f6}.episode-export-btn{padding:8px 14px;font-size:13px;background:#166534;color:#dcfce7;border:1px solid #22c55e;border-radius:6px;cursor:pointer;margin-left:auto}.episode-export-btn:hover:not(:disabled){background:#15803d}.episode-export-btn:disabled{opacity:.6;cursor:not-allowed}.episode-playback-title{display:flex;flex-direction:column;gap:2px}.episode-playback-id{font-family:monospace;font-weight:600;font-size:16px;color:#e4e8ec}.episode-playback-task{font-size:13px;color:#3b82f6}.episode-playback-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:16px;margin-bottom:20px}.episode-cam-cell{position:relative;background:#0f1419;border-radius:8px;border:1px solid #2a3544;overflow:hidden}.episode-cam-label{position:absolute;top:8px;left:8px;padding:4px 8px;background:#0009;font-size:12px;color:#94a3b8;border-radius:4px;z-index:1}.episode-video{width:100%;display:block;aspect-ratio:4/3;object-fit:contain}.episode-playback-no-video{padding:32px;text-align:center;background:#1a2332;border-radius:8px;border:1px dashed #2a3544;color:#64748b}.episode-playback-loading{padding:48px;text-align:center;color:#94a3b8}.episode-playback-error{padding:16px;background:#7f1d1d;color:#fca5a5;border-radius:8px;margin-bottom:16px}.episode-metadata{margin-top:20px;padding:12px;background:#1a2332;border-radius:8px;border:1px solid #2a3544}.episode-metadata summary{cursor:pointer;font-size:13px;color:#94a3b8}.episode-metadata pre{margin:12px 0 0;font-size:12px;color:#64748b;overflow:auto;max-height:200px}.episode-ai-suggestions{margin-top:20px;padding:16px;background:#1a2e1a;border-radius:8px;border:1px solid #166534}.episode-ai-suggestions h4{margin:0 0 8px;font-size:14px;color:#4ade80}.episode-ai-hint{font-size:12px;color:#86efac;margin-bottom:12px}.episode-ai-list{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow-y:auto}.episode-ai-item{padding:10px;background:#0f1419;border-radius:6px;border:1px solid #166534}.episode-ai-frame{font-size:11px;color:#64748b;font-family:monospace}.episode-ai-desc{margin:6px 0;font-size:13px;color:#d1fae5}.episode-ai-actions{margin:4px 0;font-size:12px;color:#86efac}.episode-ai-accept{padding:4px 10px;font-size:12px;background:#166534;color:#dcfce7;border:none;border-radius:4px;cursor:pointer}.episode-ai-accept:hover:not(:disabled){background:#15803d}.community-page{max-width:680px;margin:0 auto}.community-desc{color:var(--text-muted);font-size:14px;margin:-8px 0 24px}.community-composer{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:24px}.community-composer textarea{width:100%;min-height:80px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-page);color:var(--text);font-size:14px;font-family:inherit;resize:vertical;margin-bottom:12px}.community-composer textarea:focus{outline:none;border-color:var(--accent)}.community-composer textarea::placeholder{color:var(--text-dim)}.composer-media-preview{position:relative;margin-bottom:12px;max-width:300px}.composer-media-preview img{max-width:100%;max-height:200px;border-radius:8px;object-fit:contain;border:1px solid var(--border)}.composer-video-tag{display:inline-block;padding:8px 12px;background:var(--bg-hover);border-radius:8px;font-size:13px;color:var(--text-muted)}.composer-remove-media{position:absolute;top:8px;right:8px;width:28px;height:28px;padding:0;border:none;background:var(--bg-overlay, rgba(2, 6, 23, .6));color:var(--text-inverse, #fff);border-radius:50%;font-size:18px;cursor:pointer;line-height:1}.composer-actions{display:flex;align-items:center;gap:12px}.composer-actions button:first-of-type{padding:8px 12px;background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:6px;cursor:pointer;font-size:16px}.composer-actions button:first-of-type:hover{background:var(--bg-hover);color:var(--text)}.composer-submit{padding:8px 20px;background:var(--accent);color:var(--text-inverse, #fff);border:none;border-radius:6px;cursor:pointer;font-size:14px}.composer-submit:hover:not(:disabled){background:var(--accent-hover)}.composer-submit:disabled{opacity:.5;cursor:not-allowed}.composer-error{margin-top:12px;font-size:13px;color:var(--danger, #dc2626)}.community-login-hint{color:var(--text-muted);font-size:13px;margin-bottom:24px}.community-feed{display:flex;flex-direction:column;gap:16px}.community-post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px}.post-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.post-avatar-btn{padding:0;border:none;background:none;cursor:pointer;flex-shrink:0}.post-avatar,.post-avatar-init{width:40px;height:40px;border-radius:50%;display:block}.post-avatar-init{background:var(--accent);color:var(--text-inverse, #fff);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600}.post-meta{flex:1;min-width:0}.post-username{display:block;font-weight:600;font-size:15px;color:var(--text);background:none;border:none;cursor:pointer;padding:0;text-align:left}.post-username:hover{color:var(--accent)}.post-time{font-size:12px;color:var(--text-dim)}.post-content{font-size:15px;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word;margin-bottom:12px}.post-media{margin-top:8px}.post-media img{max-width:100%;max-height:400px;border-radius:8px;object-fit:contain}.post-media video{max-width:100%;max-height:400px;border-radius:8px}.post-media a{display:block}.community-post-actions{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.community-reaction-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.community-reaction-btn,.community-action-btn{border:1px solid var(--border);background:var(--bg-page);color:var(--text);border-radius:999px;padding:6px 10px;cursor:pointer;font-size:13px}.community-reaction-btn.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.community-reaction-btn span{color:var(--text-muted);margin-left:4px}.community-comments-block{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.community-comments-empty{color:var(--text-muted);font-size:13px;margin-bottom:10px}.community-comments-list{display:flex;flex-direction:column;gap:12px}.community-comment-item{background:var(--bg-page);border:1px solid var(--border);border-radius:10px;padding:10px}.community-comment-header{display:flex;align-items:center;gap:8px}.community-comment-content{margin:8px 0;white-space:pre-wrap;word-break:break-word;font-size:14px}.community-comment-reply{border:none;background:transparent;color:var(--accent);font-size:13px;cursor:pointer;padding:0}.community-comment-children{margin-top:10px;padding-left:14px;border-left:2px solid var(--border);display:flex;flex-direction:column;gap:10px}.community-comment-input-row{margin-top:10px;display:flex;gap:10px}.community-comment-input-row input{flex:1;border:1px solid var(--border);border-radius:8px;background:var(--bg-page);color:var(--text);padding:10px}.community-replying-tip{margin-top:8px;font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.community-replying-tip button{border:none;background:transparent;color:var(--accent);cursor:pointer}.community-loading,.community-empty{text-align:center;padding:48px;color:var(--text-muted);font-size:14px}.admin-page{max-width:1200px;padding-bottom:40px}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.admin-title{font-size:20px;font-weight:600;color:var(--text, #e4e8ec)}.admin-days{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-muted, #94a3b8)}.admin-days select{padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:14px;cursor:pointer}.admin-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:32px}.admin-stat-card{background:var(--bg-card, #1a2332);border-radius:12px;padding:20px;border:1px solid var(--border)}.admin-stat-label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:8px}.admin-stat-value{font-size:28px;font-weight:700;color:var(--accent, #3b82f6)}.admin-section{background:var(--bg-card, #1a2332);border-radius:12px;padding:20px;border:1px solid var(--border);margin-bottom:20px}.admin-section h2{font-size:15px;font-weight:600;margin:0 0 16px;color:var(--text)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-bar-chart{display:flex;flex-direction:column;gap:10px}.admin-bar-row{display:flex;align-items:center;gap:12px}.admin-bar-label{flex:0 0 120px;font-size:13px;color:var(--text-muted)}.admin-bar-track{flex:1;min-width:0;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.admin-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#60a5fa);border-radius:4px;transition:width .3s}.admin-bar-value{flex:0 0 36px;font-size:13px;font-weight:600;text-align:right}.admin-bar-duration{flex:0 0 70px;font-size:12px;color:var(--text-dim)}.admin-empty{color:var(--text-muted);font-size:14px;margin:0}.admin-loading,.admin-error{color:var(--text-muted);font-size:14px}.admin-error{padding:20px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;margin-top:16px}.admin-error p{margin:0 0 8px}.admin-hint{font-size:12px!important;color:var(--text-dim)!important;margin-top:8px!important}.admin-user-table{display:flex;flex-direction:column;gap:12px}.admin-user-row{display:flex;align-items:flex-start;gap:16px;padding:12px;background:var(--bg-elevated, #161e2a);border-radius:8px;flex-wrap:wrap}.admin-user-name{font-weight:600;min-width:100px}.admin-user-total{color:var(--accent);font-weight:600;min-width:80px}.admin-user-pages{display:flex;flex-wrap:wrap;gap:8px}.admin-user-page-tag{font-size:12px;padding:4px 8px;background:var(--border);border-radius:4px;color:var(--text-muted)}.unified-robot-page{max-width:1400px}.unified-desc{color:var(--text-muted, #64748b);font-size:14px;margin-bottom:20px;line-height:1.5}.unified-setup{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.unified-setup input{flex:1;min-width:200px;padding:8px 12px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a);font-family:monospace}.unified-setup button{padding:8px 16px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a);cursor:pointer;font-size:13px}.unified-setup button:hover:not(:disabled){border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.unified-setup button:disabled{opacity:.5;cursor:not-allowed}.unified-setup .btn-connected{border-color:var(--success, #16a34a);color:var(--success, #16a34a)}.unified-share-btn{background:transparent!important}.unified-error{padding:12px;background:color-mix(in srgb,var(--danger, #dc2626) 14%,transparent);color:var(--danger, #dc2626);border-radius:8px;margin-bottom:16px}.unified-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:1000px){.unified-layout{grid-template-columns:1fr}}.unified-cameras{background:var(--bg-card, #fff);border-radius:12px;padding:16px;border:1px solid var(--border-color, #dbe3ef)}.unified-cameras h3,.unified-data-section h3,.unified-controls-section h3{margin:0 0 12px;font-size:15px;color:var(--text, #0f172a)}.unified-cam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.unified-cam-cell{position:relative;aspect-ratio:16/9;background:var(--bg-elevated, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #dbe3ef);overflow:hidden}.unified-cam-cell img{width:100%;height:100%;object-fit:contain;display:block}.unified-cam-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted, #64748b);font-size:13px}.unified-cam-placeholder .cam-hint{font-size:11px;margin-top:4px;color:var(--text-muted, #64748b)}.unified-cam-label{position:absolute;bottom:4px;left:8px;font-size:11px;background:color-mix(in srgb,var(--bg-page, #f1f5f9) 72%,#000);padding:2px 6px;border-radius:4px;color:var(--text, #0f172a)}.unified-cam-config{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.unified-cam-config span{font-size:12px;color:var(--text-muted, #64748b)}.cam-label-input{width:60px;padding:4px 6px;font-size:12px;border-radius:4px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a)}.unified-data-section{background:var(--bg-card, #fff);border-radius:12px;padding:16px;border:1px solid var(--border-color, #dbe3ef)}.unified-data-empty{padding:24px;text-align:center;color:var(--text-muted, #64748b);font-size:14px}.unified-data-hint{font-size:12px;margin-top:12px;line-height:1.6}.unified-data-hint code{background:var(--bg-elevated, #f8fafc);padding:2px 6px;border-radius:4px}.unified-robot-data{display:flex;flex-direction:column;gap:12px}.robot-panel{padding:12px;background:var(--bg-elevated, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #dbe3ef)}.robot-panel h4{margin:0 0 8px;font-size:13px;color:var(--text-muted, #64748b)}.robot-panel-grid,.robot-panel-content{display:flex;flex-wrap:wrap;gap:12px 20px}.robot-data-item{display:flex;gap:8px;font-size:13px}.robot-data-item span:first-child{color:var(--text-muted, #64748b);min-width:48px}.robot-data-item span:last-child{font-family:monospace;color:var(--text, #0f172a)}.robot-motors-table{width:100%;border-collapse:collapse;font-size:12px}.robot-motors-table th{text-align:left;padding:8px;color:var(--text-muted, #64748b);border-bottom:1px solid var(--border-color, #dbe3ef)}.robot-motors-table td{padding:8px;border-bottom:1px solid var(--border-color, #dbe3ef)}.robot-motors-table .temp-warn{color:var(--danger, #dc2626)}.robot-motors-table .temp-caution{color:var(--warning, #d97706)}.robot-panel-raw pre{margin:0;font-size:11px;overflow:auto;max-height:200px;color:var(--text-muted, #64748b)}.robot-panel-badge{font-size:10px;margin-left:8px;padding:2px 6px;background:color-mix(in srgb,var(--success, #16a34a) 18%,transparent);color:var(--success, #16a34a);border-radius:4px}.robot-tactile-grid{display:flex;gap:16px;flex-wrap:wrap}.robot-tactile-hand,.robot-tactile-sensor{padding:8px;background:var(--bg-page, #f1f5f9);border-radius:6px;border:1px solid var(--border-color, #dbe3ef);min-width:140px}.robot-tactile-label{display:block;font-size:12px;font-weight:600;color:var(--text-muted, #64748b);margin-bottom:4px}.robot-tactile-info{font-size:11px;color:var(--text-muted, #64748b)}.robot-tactile-preview{display:flex;gap:2px;align-items:flex-end;height:24px;margin-top:6px}.robot-tactile-bar{width:6px;min-height:2px;background:var(--accent, #2563eb);border-radius:2px;transition:height .2s}.robot-tactile-more{font-size:10px;color:var(--text-muted, #64748b);margin-left:4px}.unified-controls-section{grid-column:1 / -1;background:var(--bg-card, #fff);border-radius:12px;padding:16px;border:1px solid var(--border-color, #dbe3ef)}.unified-controls-hint{font-size:12px;color:var(--text-muted, #64748b);margin-bottom:12px}.unified-control-pad{display:flex;gap:20px;flex-wrap:wrap}.unified-axis{display:flex;flex-direction:column;gap:6px}.unified-axis>span{font-size:12px;color:var(--text-muted, #64748b)}.unified-axis>div{display:flex;gap:8px}.unified-axis button{padding:8px 14px;border-radius:6px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);cursor:pointer;font-size:13px}.unified-axis button:hover:not(:disabled){border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 12%,var(--bg-elevated, #f8fafc))}.unified-axis button:disabled{opacity:.5;cursor:not-allowed}.unified-backend-hint{margin-top:12px;font-size:11px;color:var(--text-muted, #64748b)}.unified-backend-hint code{font-size:11px;word-break:break-all}.ops-page{padding:12px}.ops-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.ops-title{margin:0;font-size:24px}.ops-controls{display:flex;align-items:center;gap:8px}.ops-controls select,.ops-controls button{padding:6px 10px;border-radius:6px;border:1px solid #2a3544;background:#1a2332;color:#e4e8ec}.ops-controls button{cursor:pointer}.ops-note{margin:0 0 12px;color:#94a3b8;font-size:13px}.ops-error{padding:10px 12px;border:1px solid #7f1d1d;background:#3f0d0d;color:#fca5a5;border-radius:8px;margin-bottom:12px}.ops-loading{color:#94a3b8;margin-bottom:12px}.ops-section{margin-bottom:16px;background:#111827;border:1px solid #2a3544;border-radius:10px;padding:12px}.ops-section h2{margin:0 0 8px;font-size:16px}.ops-summary{color:#60a5fa;font-size:13px;margin-bottom:10px}.ops-table-wrap{overflow-x:auto}.ops-table{width:100%;border-collapse:collapse;font-size:13px}.ops-table th,.ops-table td{border-bottom:1px solid #1f2937;padding:8px 10px;text-align:left;white-space:nowrap}.ops-table th{color:#94a3b8;font-weight:500}.ops-table td code{color:#e2e8f0}.ops-empty{color:#64748b;text-align:center}.ops-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.ops-kpi-card{border:1px solid #2a3544;border-radius:10px;padding:10px;background:#0f172a}.ops-kpi-title{font-size:13px;color:#cbd5e1;margin-bottom:8px}.ops-kpi-row{display:grid;grid-template-columns:52px 1fr;gap:8px;margin-bottom:6px;align-items:center}.ops-kpi-row label{color:#94a3b8;font-size:12px}.ops-kpi-row input,.ops-table td select{border:1px solid #334155;border-radius:6px;padding:5px 8px;background:#111827;color:#e2e8f0}.ops-jump-btn{border:1px solid #334155;background:#1e293b;color:#cbd5e1;border-radius:8px;padding:4px 10px;cursor:pointer}.ops-jump-btn:hover{background:#334155}.ops-moat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ops-moat-card{border:1px solid #2a3544;border-radius:10px;padding:10px;background:#0b1220}.ops-moat-card h3{margin:0 0 8px;font-size:13px;color:#cbd5e1}.ops-moat-card ul{margin:0;padding-left:16px;color:#94a3b8;font-size:12px;line-height:1.5}@media(max-width:920px){.ops-moat-grid{grid-template-columns:1fr}}.bigscreen-page{min-height:calc(100vh - 96px);background:var(--bg-page, #f1f5f9);color:var(--text, #0f172a);padding:14px}.bigscreen-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.bigscreen-topbar h1{margin:0;font-size:28px;letter-spacing:.5px}.bigscreen-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.bigscreen-controls input,.bigscreen-controls button{height:34px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text, #0f172a);padding:0 10px}.bigscreen-controls input{width:320px}.bigscreen-controls .btn-primary{border-color:var(--accent, #2563eb);background:var(--accent, #2563eb);color:var(--text-inverse, #fff)}.bigscreen-error{margin-bottom:10px;color:var(--danger, #dc2626);background:color-mix(in srgb,var(--danger, #dc2626) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger, #dc2626) 35%,transparent);padding:8px 10px;border-radius:8px}.bigscreen-status{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px}.bigscreen-status>div{background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:10px;font-size:13px}.bigscreen-grid{display:grid;grid-template-columns:2fr 1.2fr 1.2fr;grid-template-rows:42vh 32vh;gap:10px}.panel{background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:10px;padding:10px;overflow:hidden}.panel h3{margin:0 0 8px;font-size:16px;color:var(--accent, #2563eb)}.panel-video{grid-row:1 / span 2}.video-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:calc(100% - 28px);overflow:auto}.video-tile{background:var(--bg-elevated, #f8fafc);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;overflow:hidden}.video-tile img{width:100%;height:180px;object-fit:cover;display:block}.video-meta{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--text-muted, #64748b);padding:6px 8px}.chat-list{height:calc(100% - 28px);overflow:auto;display:flex;flex-direction:column;gap:6px}.chat-item{display:grid;grid-template-columns:90px 60px 1fr;gap:8px;font-size:13px;border-bottom:1px dashed color-mix(in srgb,var(--text-muted, #64748b) 40%,transparent);padding-bottom:5px}.chat-from{color:var(--accent, #2563eb)}.chat-kind{color:var(--text-muted, #64748b)}.chat-content{color:var(--text, #0f172a);white-space:pre-wrap;word-break:break-word}.json-box{background:var(--bg-elevated, #f8fafc);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;height:calc(100% - 34px);overflow:auto}.json-box pre{margin:0;font-size:12px;line-height:1.4;color:var(--text, #0f172a)}.json-meta{margin-top:6px;font-size:11px;color:var(--text-muted, #64748b)}.ai-kvs{display:grid;gap:4px;margin-bottom:6px;font-size:12px}.participants{display:grid;gap:6px;margin-bottom:8px}.participant{display:flex;justify-content:space-between;gap:8px;background:var(--bg-elevated, #f8fafc);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;font-size:12px}.panel-empty{color:var(--text-muted, #64748b);font-size:12px}@media(max-width:1440px){.bigscreen-status{grid-template-columns:repeat(3,minmax(0,1fr))}.bigscreen-grid{grid-template-columns:1fr;grid-template-rows:auto}.panel-video{grid-row:auto}}.world-model-page{max-width:1200px}.wm-status-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.wm-status-pill{padding:4px 10px;border-radius:999px;font-size:12px;border:1px solid var(--border-color, #dbe3ef)}.wm-status-pill.mode-proxy{background:color-mix(in srgb,var(--success, #16a34a) 16%,transparent);color:var(--success, #16a34a);border-color:color-mix(in srgb,var(--success, #16a34a) 40%,var(--border-color, #dbe3ef))}.wm-status-pill.mode-baseline{background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a)}.wm-status-meta{font-size:12px;color:var(--text-muted, #64748b)}.wm-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-bottom:12px}.wm-card{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);border-radius:10px;padding:12px}.wm-card h3{margin:0 0 10px}.wm-card label{display:block;font-size:12px;color:var(--text-muted, #64748b);margin:8px 0 4px}.wm-check{display:flex!important;align-items:center;gap:8px}.wm-template{width:100%;text-align:left;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);border-radius:8px;padding:8px;margin-bottom:8px;cursor:pointer}.wm-template:hover{border-color:var(--accent, #2563eb)}.wm-template-title{font-size:13px;font-weight:600;margin-bottom:4px}.wm-template-prompt{font-size:12px;color:var(--text-muted, #64748b);line-height:1.4}.wm-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.wm-result-item{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:10px;display:flex;flex-direction:column;gap:6px}.wm-result-item span{font-size:12px;color:var(--text-muted, #64748b)}.wm-result-item strong{font-size:16px}.wm-actions{margin-top:10px;display:flex;justify-content:flex-end;gap:8px}.wm-admin{margin-top:12px}.wm-admin-grid{display:grid;grid-template-columns:140px 1fr;gap:8px 10px;align-items:center}.wm-admin-grid label{margin:0;font-size:12px;color:var(--text-muted, #64748b)}.wm-ping-result{margin-top:10px;padding:10px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);font-size:12px;color:var(--text, #0f172a);max-height:220px;overflow:auto}.wm-audits{margin-top:12px;border-top:1px solid var(--border-color, #dbe3ef);padding-top:10px}.wm-audits h4{margin:0 0 8px;font-size:13px}.wm-audit-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px dashed color-mix(in srgb,var(--text-muted, #64748b) 30%,transparent);font-size:12px}.wm-audit-main{color:var(--text, #0f172a)}.wm-audit-time{color:var(--text-muted, #64748b);white-space:nowrap}.wm-rollout{margin-top:12px}.wm-rollout-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.wm-rollout-row{margin-top:10px}.wm-rollout-error{margin-top:10px;color:var(--danger, #dc2626);font-size:12px}.wm-rollout-summary{margin-top:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.wm-scenario-list{margin-top:12px;display:grid;gap:10px}.wm-scenario-card{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);border-radius:10px;padding:10px}.wm-scenario-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.wm-scenario-badges{display:flex;gap:6px;font-size:11px}.wm-scenario-badges em{font-style:normal;border:1px solid var(--border-color, #dbe3ef);border-radius:999px;padding:2px 8px;color:var(--text, #0f172a)}.wm-scenario-text{margin-top:8px;font-size:12px;color:var(--text-muted, #64748b)}.wm-scenario-grid{margin-top:10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.wm-scenario-label{font-size:11px;color:var(--text-muted, #64748b);margin-bottom:4px}.wm-scenario-grid pre{margin:0;max-height:220px;overflow:auto;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-page, #f1f5f9);padding:8px;font-size:11px;line-height:1.4;color:var(--text, #0f172a)}.scene-preview-shell{position:relative;border:1px solid var(--border-color, #dbe3ef);border-radius:12px;overflow:hidden;background:#081225;min-height:420px}.scene-preview-hint{position:absolute;top:10px;left:10px;z-index:2;padding:6px 10px;border-radius:999px;font-size:12px;color:#dbeafe;background:#081225b8;border:1px solid rgba(148,163,184,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.scene-preview-status{position:absolute;left:10px;bottom:10px;z-index:2;padding:6px 10px;border-radius:8px;font-size:12px;color:#f8fafc;background:#0f172ac7;border:1px solid rgba(148,163,184,.32)}.scene-preview-status-error{left:auto;right:10px;max-width:calc(100% - 20px);color:#fee2e2;background:#7f1d1dc7;border-color:#f8717173}.scene-preview-issues{position:absolute;right:10px;bottom:54px;z-index:2;max-width:min(560px,calc(100% - 20px));display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.scene-preview-issue-btn{border:1px solid rgba(248,113,113,.5);background:#7f1d1db8;color:#fee2e2;border-radius:999px;padding:4px 10px;font-size:11px;cursor:pointer}.scene-preview-issue-btn:hover{background:#991b1bcc}.scene-preview-canvas{width:100%;height:100%;min-height:420px}.world-studio-page{max-width:1280px}.world-studio-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:12px;margin-bottom:12px}.world-studio-grid-wide{grid-template-columns:1fr 1fr}.world-studio-card{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);border-radius:12px;padding:12px;box-shadow:var(--shadow-soft, 0 2px 8px rgba(2, 6, 23, .08))}.world-studio-card h3{margin:0}.world-studio-real-model-toggle{margin-top:10px;margin-bottom:8px;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted, #64748b)}.world-studio-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.world-studio-card-actions{display:flex;gap:8px;flex-wrap:wrap}.world-studio-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.world-studio-json{width:100%;min-height:320px;resize:vertical;border:1px solid var(--border-color, #dbe3ef);border-radius:10px;background:var(--bg-page, #f8fafc);color:var(--text, #0f172a);padding:10px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.world-studio-note-list{margin-top:10px;display:grid;gap:6px}.world-studio-provider-strip{margin-top:10px;padding:8px 10px;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc)}.world-studio-ecosystem-strip a{color:var(--primary, #2563eb);text-decoration:none}.world-studio-ecosystem-strip a:hover{text-decoration:underline}.world-studio-lightwheel-stack .world-studio-lightwheel-layers{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px}.world-studio-lightwheel-stack .world-studio-lightwheel-layers a{color:var(--primary, #2563eb);text-decoration:none;font-size:12px}.world-studio-lightwheel-stack .world-studio-lightwheel-layers a:hover{text-decoration:underline}.world-studio-provider-grid{margin-top:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.world-studio-provider-grid .input,.world-studio-provider-grid .btn-secondary{grid-column:span 3}.world-studio-asset-list,.world-studio-phase-list,.world-studio-job-list{display:grid;gap:8px}.world-studio-asset-item,.world-studio-phase-item,.world-studio-job-item{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border-color, #dbe3ef);border-radius:10px;background:var(--bg-elevated, #f8fafc);padding:10px}.world-studio-asset-item input{margin-top:3px}.world-studio-warning-list{margin-top:10px;display:grid;gap:6px}.world-studio-warning{padding:8px 10px;border:1px solid color-mix(in srgb,var(--warning, #d97706) 30%,var(--border-color, #dbe3ef));border-radius:8px;background:color-mix(in srgb,var(--warning, #d97706) 12%,transparent);color:var(--warning, #d97706);font-size:12px}.world-studio-error{margin-top:10px;color:var(--danger, #dc2626);font-size:13px}.world-studio-result-block{margin-top:12px}.world-studio-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.world-studio-metric{border:1px solid var(--border-color, #dbe3ef);border-radius:10px;background:var(--bg-elevated, #f8fafc);padding:10px;display:flex;flex-direction:column;gap:4px}.world-studio-metric span{font-size:12px;color:var(--text-muted, #64748b)}.world-studio-pre{margin:10px 0 0;max-height:260px;overflow:auto;border:1px solid var(--border-color, #dbe3ef);border-radius:10px;background:var(--bg-page, #f1f5f9);padding:10px;font-size:12px;line-height:1.5;color:var(--text, #0f172a)}@media(max-width:1100px){.world-studio-grid,.world-studio-grid-wide{grid-template-columns:1fr}}.mobile-base-page{max-width:1280px}.mb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mb-card{border:1px solid #1e293b;border-radius:10px;background:#0f172a;padding:12px}.mb-card h3{margin:0 0 10px;font-size:15px}.mb-row{display:flex;gap:8px;align-items:center;margin-bottom:10px}.mb-map-canvas{border:1px solid #334155;border-radius:8px;overflow:auto;max-height:280px;padding:8px;background:#020617}.mb-map-row{display:flex;gap:1px;line-height:0}.mb-cell{width:8px;height:8px;display:inline-block}.mb-cell.free{background:#0f172a}.mb-cell.obs{background:#475569}.mb-cell.path{background:#22d3ee}.mb-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}.mb-form-grid label{font-size:12px;color:#94a3b8;display:flex;flex-direction:column;gap:6px}.mb-meta-box{margin-top:10px;border:1px solid #1e293b;border-radius:8px;background:#0b1220;padding:8px;font-size:13px;color:#cbd5e1;display:grid;gap:4px}.agv-sim-page{padding:20px;color:var(--text-color, #e5e7eb)}.agv-sim-grid{display:grid;grid-template-columns:360px 1fr;gap:16px}.agv-card{background:var(--surface-1, #0f172a);border:1px solid var(--border-color, #334155);border-radius:12px;padding:14px}.agv-row{display:flex;gap:10px;align-items:end;margin-bottom:10px;flex-wrap:wrap}.agv-row label{display:grid;gap:6px;font-size:12px;color:#cbd5e1}.agv-stats{display:grid;grid-template-columns:1fr;gap:6px;margin:12px 0}.agv-stats div{display:flex;justify-content:space-between;padding:8px 10px;background:#94a3b81f;border-radius:8px;font-size:13px}.agv-tip{font-size:12px;color:#a5b4fc;line-height:1.5}.agv-warn{margin:8px 0 12px;padding:8px 10px;border-radius:8px;background:#ef44442e;border:1px solid rgba(248,113,113,.55);color:#fecaca;font-size:12px}.agv-observe{margin:8px 0 12px;padding:8px 10px;border-radius:8px;background:#3b82f629;border:1px solid rgba(96,165,250,.55);color:#bfdbfe;font-size:12px}.agv-auto-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.agv-script-meta{font-size:12px;color:#93c5fd;margin-bottom:8px}.agv-ok{color:#86efac}.agv-fail{color:#fca5a5}.agv-bench-list,.agv-record-list{display:grid;gap:6px;margin:8px 0 10px}.agv-bench-item,.agv-record-item{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;font-size:12px;padding:6px 8px;border-radius:7px;border:1px solid rgba(148,163,184,.25);background:#0f172a7a}.agv-session{min-width:220px}.agv-check{display:inline-flex!important;align-items:center;gap:6px!important;color:#cbd5e1;font-size:12px}.agv-profile-field{min-width:180px}.agv-pad{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.agv-pad-btn{border:1px solid #334155;background:#111827;color:#e5e7eb;border-radius:8px;padding:9px 8px;cursor:pointer}.agv-pad-btn.active{border-color:#22c55e;box-shadow:0 0 0 2px #22c55e40 inset}.agv-pad-btn:disabled{opacity:.5;cursor:not-allowed}.agv-world-wrap{overflow:auto}.agv-world{position:relative;border-radius:12px;overflow:hidden;border:1px solid #334155;background:#0b1220}.agv-grid-bg{position:absolute;inset:0;background-image:linear-gradient(to right,rgba(148,163,184,.15) 1px,transparent 1px),linear-gradient(to bottom,rgba(148,163,184,.15) 1px,transparent 1px);background-size:36px 36px}.agv-obstacle{position:absolute;background:#ef444459;border:1px solid rgba(248,113,113,.8);border-radius:6px}.agv-goal{position:absolute;width:20px;height:20px;border-radius:50%;background:#22c55eeb;border:2px solid #86efac;z-index:4}.agv-trail{position:absolute;inset:0;z-index:3}.agv-car{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 35%,#60a5fa,#2563eb);border:2px solid #93c5fd;z-index:5;transform-origin:center;display:flex;justify-content:center;align-items:center}.agv-head{width:2px;height:40%;background:#dbeafe;transform:translateY(-35%)}@media(max-width:1100px){.agv-sim-grid{grid-template-columns:1fr}}.obs-shell{display:grid;grid-template-columns:220px 1fr;gap:0;min-height:72vh;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-card)}.obs-sidebar{background:var(--bg-elevated);border-right:1px solid var(--border);padding:14px 12px}.obs-brand{font-size:20px;font-weight:700;margin-bottom:14px}.obs-sidebar-group{margin-bottom:14px}.obs-sidebar-title{color:var(--text-dim);font-size:11px;text-transform:uppercase;margin-bottom:6px}.obs-sidebar-link,.obs-nav-item{width:100%;text-align:left;border:1px solid transparent;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:4px;cursor:pointer;font-size:13px}.obs-sidebar-link:hover,.obs-nav-item:hover{background:var(--bg-hover);color:var(--text)}.obs-nav-item.active{background:var(--bg-active);color:var(--accent)}.obs-main{padding:16px;background:var(--bg-page)}.obs-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.obs-main-head h1{margin:0;font-size:24px}.obs-refresh{border:1px solid var(--border);background:var(--bg-card);color:var(--text);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer}.obs-sub{color:var(--text-muted);margin-top:6px;margin-bottom:12px}.obs-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;margin-bottom:12px;box-shadow:var(--shadow-soft)}.obs-card h3{margin:0 0 10px}.obs-card h4{margin:8px 0;color:var(--text-muted, #64748b)}.obs-muted{color:var(--text-muted);margin-bottom:10px}.obs-actions{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}.obs-actions button{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:var(--radius-sm);padding:6px 10px;cursor:pointer}.obs-actions input,.obs-actions select{border:1px solid var(--border);background:var(--bg-page);color:var(--text);border-radius:var(--radius-sm);padding:6px 8px}.obs-playback{display:flex;align-items:center;gap:10px;margin-bottom:8px}.obs-playback input[type=range]{flex:1}.obs-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px}.obs-quick{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:var(--radius-sm);padding:10px;text-align:left;cursor:pointer}.obs-quick span{display:block;color:var(--text-muted);font-size:12px;margin-top:4px}.obs-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;margin-bottom:10px}.obs-stat{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;background:var(--bg-elevated)}.obs-stat-label{font-size:11px;color:var(--text-muted)}.obs-stat-value{font-size:18px;font-weight:700}.obs-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.obs-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:center}.obs-token{margin-bottom:10px;background:var(--bg-elevated);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:8px;color:var(--accent);word-break:break-all}.obs-card ul{margin:0;padding-left:18px}.obs-card li{margin-bottom:4px}.obs-table{width:100%;border-collapse:collapse;font-size:13px}.obs-table th,.obs-table td{border-bottom:1px solid var(--border);text-align:left;padding:8px 10px}.obs-table th{color:var(--text-muted);font-weight:500;background:var(--bg-elevated)}.obs-empty{color:var(--text-dim);text-align:center}.obs-timeline{list-style:none;padding-left:0!important}.obs-timeline li{display:grid;grid-template-columns:190px 1fr;gap:10px;padding:6px 0;border-bottom:1px dashed var(--border)}.obs-time{color:var(--text-muted);font-size:12px}.obs-mini{font-size:11px;color:var(--text-dim);margin-top:4px}@media(max-width:980px){.obs-shell{grid-template-columns:1fr}.obs-sidebar{border-right:none;border-bottom:1px solid var(--border)}.obs-quick-grid{grid-template-columns:1fr}.obs-stat-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.obs-grid2{grid-template-columns:1fr}}.rl2-page{padding:12px}.rl2-subtitle{margin-top:-2px;color:var(--text-muted, #64748b)}.rl2-flow{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.rl2-flow span{padding:5px 10px;border-radius:999px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);font-size:12px}.rl2-guide-mode{display:flex;gap:8px;margin:0 0 12px}.rl2-guide-mode button{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #fff);color:var(--text-muted, #64748b);padding:5px 10px;cursor:pointer}.rl2-guide-mode button.active{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb);background:var(--bg-active, #eff6ff)}.rl2-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:14px 0}.rl2-kpi-item{background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-soft, 0 2px 8px rgba(2, 6, 23, .1))}.rl2-grid{display:grid;grid-template-columns:1fr;gap:14px;max-width:1080px}.rl2-card{border:1px solid var(--border-color, #dbe3ef);border-radius:12px;padding:14px;background:var(--bg-card, #fff);box-shadow:var(--shadow-soft, 0 2px 8px rgba(2, 6, 23, .1))}.rl2-step-desc{margin:-2px 0 10px;color:var(--text-muted, #64748b);font-size:13px}.rl2-form-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.rl2-form-row label{display:flex;flex-direction:column;gap:4px;min-width:120px;font-size:12px;color:var(--text-muted, #64748b)}.rl2-form-row input,.rl2-form-row select{padding:6px 8px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a)}.rl2-actions{display:flex;gap:8px;margin-bottom:10px}.rl2-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto}.rl2-list-item{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;font-size:12px;display:flex;flex-direction:column;gap:4px;background:var(--bg-elevated, #f8fafc)}.btn-small{align-self:flex-start;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:4px 8px;background:var(--bg-card, #fff);color:var(--text-muted, #64748b);cursor:pointer}.rl2-pre{white-space:pre-wrap;margin:0;padding:8px;border-radius:8px;background:var(--bg-page, #f1f5f9);border:1px solid var(--border-color, #dbe3ef)}.rl2-report-preview{margin-top:8px;max-height:260px;overflow:auto}.rl2-result{margin-top:10px;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;font-size:13px;background:var(--bg-elevated, #f8fafc)}.rl2-subhead{margin:10px 0 8px;font-size:13px;color:var(--text, #0f172a)}.rl2-input-inline{width:130px;padding:6px 8px;border-radius:8px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a)}.rl2-snapshot-list{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px}.rl2-link{color:var(--accent, #2563eb);text-decoration:none;font-size:12px}.rl2-link:hover{text-decoration:underline}@media(max-width:1120px){.rl2-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}}.hub-builder{display:grid;grid-template-columns:280px 1fr;gap:16px;padding:8px}.hub-sidebar,.hub-main{background:var(--card-bg, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:12px;padding:14px;box-shadow:var(--shadow-soft, 0 2px 8px rgba(2, 6, 23, .12))}.hub-sidebar h3,.hub-main h3,.hub-main h4{margin-top:0;color:var(--text, #0f172a)}.hub-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;max-height:70vh;overflow:auto}.hub-list button{text-align:left;background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px}.hub-list button.active{border-color:var(--primary, #2563eb);background:var(--bg-active, #eff6ff)}.hub-toolbar{display:flex;gap:8px;margin-bottom:8px}.hub-toolbar input{flex:1}.hub-desc{width:100%;min-height:58px;margin-bottom:10px}.hub-columns{display:grid;grid-template-columns:repeat(3,minmax(200px,1fr));gap:10px}.hub-card{background:var(--bg-elevated, #f8fafc);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;margin-bottom:8px;display:grid;gap:6px}.hub-card label{font-size:11px;color:var(--text-muted, #64748b)}.hub-config{min-height:72px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.hub-card input,.hub-card select,.hub-route input,.hub-route select,.hub-toolbar input,.hub-desc{background:var(--bg-card, #fff);color:var(--text, #0f172a);border:1px solid var(--border-color, #dbe3ef);border-radius:6px;padding:6px 8px}.hub-routes{margin-top:12px}.hub-route{display:grid;grid-template-columns:180px 20px 180px 1fr auto;gap:8px;align-items:center;margin-bottom:8px}.hub-preview{margin-top:12px}.hub-preview pre{background:var(--bg-elevated, #f8fafc);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:10px;max-height:220px;overflow:auto}.hub-warnings{margin-top:10px;color:#b45309}.hub-status{margin-top:8px;color:#166534}.hub-intro{background:var(--bg-elevated, #f8fafc);border:1px solid var(--border-color, #dbe3ef);border-radius:10px;padding:10px 12px;margin-bottom:10px}.hub-intro h3{margin:0 0 6px}.hub-intro p{margin:0;color:var(--text-muted, #64748b);font-size:13px}.hub-intro-steps{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.hub-intro-steps span{font-size:12px;border:1px solid var(--border-color, #dbe3ef);border-radius:999px;padding:2px 10px;color:var(--text, #0f172a);background:var(--bg-card, #fff)}.hub-view-mode{margin-top:10px;display:flex;gap:8px}.hub-view-mode button{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #fff);color:var(--text-muted, #64748b);padding:5px 10px;cursor:pointer}.hub-view-mode button.active{border-color:var(--primary, #2563eb);color:var(--primary, #2563eb);background:var(--bg-active, #eff6ff)}.hub-preset-row{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.hub-novice-tip{margin-top:10px;font-size:12px;color:var(--text-muted, #64748b);border:1px dashed var(--border-color, #dbe3ef);background:var(--bg-card, #fff);border-radius:8px;padding:8px 10px}.hub-preset-row button{background:var(--bg-card, #fff);color:var(--text, #0f172a);border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:6px 10px;cursor:pointer}.hub-preset-row button.active{border-color:var(--primary, #2563eb);box-shadow:0 0 0 1px #2563eb33 inset;background:var(--bg-active, #eff6ff)}.hub-stats{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.hub-stats span{font-size:12px;color:var(--text-muted, #64748b)}.hub-preflight{margin-bottom:10px;border-radius:10px;padding:10px 12px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc)}.hub-preflight-ok{border-color:#2d6a4f;background:#0f2018}.hub-preflight-warn{border-color:#7c5b1a;background:#221a0b}.hub-preflight-error{border-color:#7f1d1d;background:#2a1111}.hub-preflight-title{font-size:13px;font-weight:600;margin-bottom:6px}.hub-preflight-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}.hub-preflight-fix-btn{background:var(--primary, #2563eb);color:#fff;border:1px solid var(--primary, #2563eb);border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer}.hub-preflight-fix-btn:disabled{opacity:.6;cursor:not-allowed}.hub-preflight-line{font-size:12px;margin-top:3px}.hub-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.hub-preview-head button{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #fff);color:var(--text-muted, #64748b);border-radius:8px;padding:4px 10px;cursor:pointer}.hub-preview-tip{margin-top:8px;font-size:12px;color:var(--text-muted, #64748b);background:var(--bg-elevated, #f8fafc);border:1px dashed var(--border-color, #dbe3ef);border-radius:8px;padding:8px 10px}.hf-skills-page{padding:20px;color:var(--text-primary, #e5e7eb)}.hf-subtitle{margin-top:-6px;margin-bottom:16px;opacity:.8}.hf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:14px}.hf-card{background:var(--panel-bg, #111827);border:1px solid var(--border-color, #334155);border-radius:10px;padding:14px}.hf-card h3{margin-top:0;margin-bottom:10px}.hf-card label{display:block;margin-top:8px;margin-bottom:4px;font-size:13px;opacity:.85}.hf-skill-meta{margin-top:10px;font-size:13px;line-height:1.4;opacity:.9}.hf-dataset-list{max-height:220px;overflow:auto;border:1px solid var(--border-color, #334155);border-radius:8px;padding:8px}.hf-check{display:flex;gap:8px;align-items:center;margin:4px 0;font-size:13px}.hf-empty{font-size:13px;opacity:.7}.hf-actions{display:flex;align-items:center;gap:10px;margin:10px 0 14px}.hf-error{color:#f87171;font-size:13px}.hf-result{margin:0;max-height:420px;overflow:auto;background:#0b1220;border:1px solid var(--border-color, #334155);border-radius:8px;padding:10px;font-size:12px;line-height:1.45;white-space:pre-wrap}.hf-runs-card{margin-top:14px}.hf-run-list{display:grid;gap:8px}.hf-run-item{text-align:left;border:1px solid var(--border-color, #334155);background:#0b1220;color:inherit;border-radius:8px;padding:8px 10px;cursor:pointer}.hf-run-item.active{border-color:#60a5fa}.hf-run-meta{opacity:.75;margin-top:2px;font-size:12px}.t3d-page{display:flex;flex-direction:column;gap:16px}.t3d-top-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.t3d-view-mode{display:flex;gap:8px}.t3d-view-mode button{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #fff);color:var(--text-muted, #64748b);padding:5px 10px;cursor:pointer}.t3d-view-mode button.active{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb);background:var(--bg-active, #eff6ff)}.t3d-pill{display:inline-flex;align-items:center;background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border-radius:999px;padding:4px 10px;font-size:12px;border:1px solid var(--border-color, #dbe3ef)}.t3d-meta{font-size:12px;color:var(--text-muted, #64748b)}.t3d-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.t3d-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:12px;padding:14px}.t3d-card h3{margin:0 0 10px}.t3d-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.t3d-error{margin-top:10px;color:var(--danger, #dc2626);font-size:13px}.t3d-progress-panel{margin-top:10px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.t3d-progress-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.t3d-progress-line{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-muted, #64748b)}.t3d-progress-note{font-size:12px;color:var(--text-muted, #64748b)}.t3d-job-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto}.t3d-job-item{text-align:left;border:1px solid var(--border-color, #dbe3ef);background:transparent;border-radius:10px;padding:10px;color:inherit;cursor:pointer}.t3d-job-item.active{border-color:var(--accent, #2563eb)}.t3d-job-top{display:flex;justify-content:space-between;gap:8px}.t3d-job-prompt{font-size:13px;color:var(--text, #0f172a);margin-top:4px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.t3d-job-progress{margin-top:5px;font-size:12px;color:var(--text-muted, #64748b)}.status{font-size:12px;border-radius:999px;padding:2px 8px;background:color-mix(in srgb,var(--text-muted, #64748b) 16%,transparent)}.status-queued,.status-provisioning,.status-running{background:color-mix(in srgb,var(--accent, #2563eb) 16%,transparent);color:var(--accent, #2563eb)}.status-succeeded{background:color-mix(in srgb,var(--success, #16a34a) 16%,transparent);color:var(--success, #16a34a)}.status-failed,.status-cancelled{background:color-mix(in srgb,var(--danger, #dc2626) 16%,transparent);color:var(--danger, #dc2626)}.t3d-empty{color:var(--text-muted, #64748b);font-size:13px}.t3d-detail{display:flex;flex-direction:column;gap:10px}.t3d-detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.t3d-progress{height:10px;border-radius:999px;background:color-mix(in srgb,var(--text-muted, #64748b) 20%,transparent);overflow:hidden}.t3d-progress>div{height:100%;background:linear-gradient(90deg,var(--accent, #2563eb),var(--success, #16a34a))}.t3d-artifacts{display:flex;flex-direction:column;gap:8px}.t3d-artifact-item{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--border-color, #dbe3ef);border-radius:10px;padding:8px 10px;color:var(--text, #0f172a);text-decoration:none}@media(max-width:900px){.t3d-grid{grid-template-columns:1fr}}.video-studio-page{display:flex;flex-direction:column;gap:16px}.video-studio-top-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.video-studio-view-mode{display:flex;gap:8px}.video-studio-view-mode button{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #fff);color:var(--text-muted, #64748b);padding:5px 10px;cursor:pointer}.video-studio-view-mode button.active{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb);background:var(--bg-active, #eff6ff)}.video-studio-pill{display:inline-flex;align-items:center;background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border-radius:999px;padding:4px 10px;font-size:12px;border:1px solid var(--border-color, #dbe3ef)}.video-studio-meta{font-size:12px;color:var(--text-muted, #64748b)}.video-studio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.video-studio-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:12px;padding:14px}.video-studio-card h3{margin:0 0 10px}.video-studio-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.video-studio-upload-row{display:flex;align-items:center;gap:10px}.video-studio-upload-done{font-size:13px;color:var(--success, #16a34a)}.video-studio-error{margin-top:10px;color:var(--danger, #dc2626);font-size:13px}.video-studio-progress-panel{margin-top:10px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.video-studio-progress-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.video-studio-progress-line{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-muted, #64748b)}.video-studio-job-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto}.video-studio-job-item{text-align:left;border:1px solid var(--border-color, #dbe3ef);background:transparent;border-radius:10px;padding:10px;color:inherit;cursor:pointer}.video-studio-job-item.active{border-color:var(--accent, #2563eb)}.video-studio-job-top{display:flex;justify-content:space-between;gap:8px}.video-studio-job-prompt{font-size:13px;color:var(--text, #0f172a);margin-top:4px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.video-studio-job-meta{margin-top:5px;font-size:12px;color:var(--text-muted, #64748b)}.video-studio-progress{height:10px;border-radius:999px;background:color-mix(in srgb,var(--text-muted, #64748b) 20%,transparent);overflow:hidden}.video-studio-progress>div{height:100%;background:linear-gradient(90deg,var(--accent, #2563eb),var(--success, #16a34a))}.video-studio-empty{color:var(--text-muted, #64748b);font-size:13px}.video-studio-detail{display:flex;flex-direction:column;gap:10px}.video-studio-detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.video-studio-detail-actions{display:flex;gap:8px}.video-studio-preview{display:flex;flex-wrap:wrap;gap:16px}.video-studio-artifact-block{display:flex;flex-direction:column;align-items:flex-start}.video-studio-video{max-width:100%;max-height:360px;border-radius:8px;background:#1a1a2e}.video-studio-dl-btn{margin-top:8px}.video-studio-artifacts{display:flex;flex-direction:column;gap:8px}.video-studio-artifact-item{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--border-color, #dbe3ef);border-radius:10px;padding:8px 10px;color:var(--text, #0f172a);text-decoration:none}.video-studio-artifact-item:hover{background:var(--bg-elevated, #f8fafc)}@media(max-width:900px){.video-studio-grid{grid-template-columns:1fr}}.contacteval-page{max-width:1280px}.ce-subtitle{margin-top:-2px;margin-bottom:12px;color:var(--text-muted, #64748b);font-size:13px}.ce-status-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.ce-flow{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.ce-flow span{padding:5px 10px;border-radius:999px;border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);font-size:12px}.ce-guide-mode{display:flex;gap:8px;margin-bottom:12px}.ce-guide-mode button{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #fff);color:var(--text-muted, #64748b);padding:5px 10px;cursor:pointer}.ce-guide-mode button.active{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb);background:var(--bg-active, #eff6ff)}.ce-pill{padding:4px 10px;border-radius:999px;font-size:12px;border:1px solid var(--border-color, #dbe3ef)}.ce-pill.ok{background:color-mix(in srgb,var(--success, #16a34a) 16%,transparent);color:var(--success, #16a34a);border-color:color-mix(in srgb,var(--success, #16a34a) 45%,var(--border-color, #dbe3ef))}.ce-pill.warn{background:color-mix(in srgb,var(--warning, #d97706) 16%,transparent);color:var(--warning, #d97706);border-color:color-mix(in srgb,var(--warning, #d97706) 45%,var(--border-color, #dbe3ef))}.ce-meta,.ce-row-meta{font-size:12px;color:var(--text-muted, #64748b)}.ce-grid{display:grid;gap:12px;margin-bottom:12px}.ce-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ce-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ce-card{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-card, #ffffff);border-radius:12px;padding:12px;box-shadow:var(--shadow-soft, 0 2px 8px rgba(2, 6, 23, .08))}.ce-card h3{margin:0 0 10px}.ce-step-desc{margin:-4px 0 10px;font-size:12px;color:var(--text-muted, #64748b)}.ce-error{color:var(--danger, #dc2626)}.ce-stat{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:10px;display:flex;flex-direction:column;gap:6px}.ce-stat span{font-size:12px;color:var(--text-muted, #64748b)}.ce-stat strong{font-size:18px}.ce-pill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ce-layer{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:10px;display:flex;flex-direction:column;gap:6px}.ce-layer span{font-size:12px;color:var(--text-muted, #64748b);line-height:1.5}.ce-list,.ce-table{display:grid;gap:8px}.ce-row,.ce-table-row{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-elevated, #f8fafc);padding:10px}.ce-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.ce-table-row{display:grid;grid-template-columns:1.7fr .7fr .7fr .9fr;gap:8px;align-items:center}.ce-badge{padding:4px 8px;border-radius:999px;border:1px solid var(--border-color, #dbe3ef);font-size:11px;white-space:nowrap;color:var(--text-muted, #64748b);background:var(--bg-card, #ffffff)}.ce-ab-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:13px}.ce-code-list{display:grid;gap:8px}.ce-code-list code{display:block;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-page, #f1f5f9);padding:10px;color:var(--text, #0f172a);overflow-x:auto;font-size:12px}.ce-empty{color:var(--text-muted, #64748b);font-size:12px}.ce-actions{display:flex;gap:8px;flex-wrap:wrap}.ce-form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}.ce-form-row label{display:grid;gap:6px;font-size:12px;color:var(--text-muted, #64748b)}.ce-form-row input{border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-card, #ffffff);color:var(--text, #0f172a);font-size:13px;padding:7px 9px}.ce-action-status{margin-top:8px;font-size:12px;color:var(--text, #0f172a)}.ce-cluster-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ce-cluster-chip{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border-radius:999px;padding:4px 10px;font-size:12px}.ce-cluster-chip.active{border-color:var(--accent, #2563eb);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent, #2563eb) 30%,transparent) inset}.ce-row.active{border-color:var(--accent, #2563eb)}.ce-graph-panel{margin-top:10px;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:var(--bg-page, #f1f5f9);padding:10px}.ce-graph-title{font-size:12px;color:var(--text-muted, #64748b);margin-bottom:8px}.ce-graph-list{display:grid;gap:6px}.ce-graph-node{text-align:left;cursor:pointer;display:grid;grid-template-columns:1.2fr 1fr auto;gap:8px;align-items:center;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px;background:var(--bg-card, #ffffff)}.ce-graph-node.active{border-color:var(--accent, #2563eb)}.ce-graph-node span{color:var(--text-muted, #64748b);font-size:12px}.ce-graph-node em{font-style:normal;font-size:11px;border:1px solid var(--border-color, #dbe3ef);border-radius:999px;padding:2px 8px;color:var(--text-muted, #64748b)}.ce-badge.ok{border-color:color-mix(in srgb,var(--success, #16a34a) 45%,var(--border-color, #dbe3ef));color:var(--success, #16a34a)}.ce-badge.fail{border-color:color-mix(in srgb,var(--danger, #dc2626) 45%,var(--border-color, #dbe3ef));color:var(--danger, #dc2626)}.ce-graph-svg{width:100%;height:220px;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;background:radial-gradient(circle at 20% 20%,color-mix(in srgb,var(--accent, #2563eb) 8%,var(--bg-card, #fff)) 0%,var(--bg-page, #f1f5f9) 70%);margin-bottom:10px}.ce-edge{stroke:color-mix(in srgb,var(--text-muted, #64748b) 60%,transparent);stroke-width:2}.ce-node-cluster{fill:color-mix(in srgb,var(--accent, #2563eb) 70%,var(--bg-card, #fff));stroke:color-mix(in srgb,var(--accent, #2563eb) 40%,var(--bg-card, #fff));stroke-width:2}.ce-node-failure{fill:var(--bg-card, #fff);stroke:var(--text-muted, #64748b);stroke-width:2}.ce-node-group.active .ce-node-failure{stroke:var(--accent, #2563eb);fill:color-mix(in srgb,var(--accent, #2563eb) 10%,var(--bg-card, #fff))}.ce-node-group{cursor:pointer}.ce-node-label{fill:var(--bg-card, #ffffff);font-size:11px;text-transform:uppercase}.ce-node-label-small{fill:var(--text, #0f172a);font-size:11px}.ce-selected-failure{display:flex;gap:10px;align-items:center;border:1px solid var(--border-color, #dbe3ef);border-radius:8px;padding:8px 10px;margin-top:10px;font-size:12px;background:var(--bg-card, #ffffff)}@media(max-width:1100px){.ce-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.ce-grid-2{grid-template-columns:1fr}}@media(max-width:680px){.ce-grid-4,.ce-form-row{grid-template-columns:1fr}}.mdl-page{min-height:100%;color:#e8f4ff;background:radial-gradient(circle at 10% 0%,rgba(83,172,255,.15),transparent 35%),radial-gradient(circle at 100% 30%,rgba(255,138,199,.14),transparent 40%),#060c13;padding:18px}.mdl-header h1{margin:0;font-size:24px;letter-spacing:.4px}.mdl-header p{margin:8px 0 14px;color:#9fc5de}.mdl-controls{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px 14px;margin-bottom:16px;padding:12px;border:1px solid rgba(118,181,255,.28);border-radius:12px;background:#08101ab3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mdl-btn{align-self:center;width:100px;height:34px;border:none;border-radius:10px;background:linear-gradient(135deg,#37b9ff,#6e83ff);color:#f6fcff;cursor:pointer;font-weight:700}.mdl-btn.secondary{background:linear-gradient(135deg,#2a3c58,#4a6a8f)}.mdl-controls label{display:grid;grid-template-columns:90px 1fr 48px;align-items:center;gap:8px;color:#d9eeff;font-size:13px}.mdl-controls select{height:30px;border-radius:8px;border:1px solid rgba(124,177,255,.35);background:#0f1a2a;color:#e8f2ff;padding:0 8px}.mdl-controls input[type=range]{width:100%}.mdl-controls span{color:#89ddc0;font-family:ui-monospace,Menlo,monospace;text-align:right}.mdl-mode-pill{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:2px 8px;border-radius:999px;font-size:11px;text-transform:uppercase}.mdl-mode-pill.training{background:#65e7bf33;color:#8ef5d5}.mdl-mode-pill.inference{background:#ffbe7d33;color:#ffd4a3}.mdl-narration{margin-bottom:14px;border:1px solid rgba(126,196,255,.3);border-radius:12px;background:#0a121cb8;padding:10px 12px}.mdl-narration-progress{width:100%;height:6px;border-radius:999px;background:#ffffff14;overflow:hidden;margin-bottom:8px}.mdl-narration-progress>div{height:100%;background:linear-gradient(90deg,#59d2ff,#8affcb)}.mdl-narration-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mdl-narration-row>div{flex:1}.mdl-narration h3{margin:0;color:#d7f2ff;font-size:15px}.mdl-narration p{margin:6px 0 0;color:#b7d1e3;font-size:13px}.mdl-recording-bar{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding:8px 12px;border-radius:10px;background:#0c162499;border:1px solid rgba(100,160,220,.2)}.mdl-recording-bar.active{border-color:#ffb46480;background:#281c1280}.mdl-recording-toggle{display:flex;align-items:center;gap:8px;color:#c8e0f5;font-size:13px;cursor:pointer}.mdl-recording-toggle input{width:18px;height:18px}.mdl-recording-hint{color:#ffc98a;font-size:12px;margin-left:auto}.mdl-grid.focus-view .mdl-card{grid-column:1 / -1}.mdl-card-hidden{display:none!important}.mdl-rollout-tools{margin-bottom:14px;border:1px dashed rgba(124,178,255,.35);border-radius:12px;padding:10px;background:#090f1880;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mdl-hidden-input{display:none}.mdl-rollout-meta{color:#a9c4d9;font-size:12px}.mdl-error{color:#ff9aa9}.mdl-grid{display:grid;grid-template-columns:repeat(2,minmax(340px,1fr));gap:14px}.mdl-card{border:1px solid rgba(122,176,255,.28);border-radius:14px;background:#0c1420b8;padding:12px}.mdl-card.focus{border-color:#88edc6b8;box-shadow:0 0 0 1px #88edc673,0 8px 24px #255c7859}.mdl-card h3{margin:0 0 8px;color:#c8ecff}.mdl-card canvas,.mdl-world{width:100%;height:280px;border:1px solid rgba(130,189,255,.32);border-radius:10px;display:block}.mdl-card p{margin:8px 2px 0;color:#9bb8cc;font-size:13px;line-height:1.35}@media(max-width:1200px){.mdl-grid{grid-template-columns:1fr}}.ws-launcher{position:fixed;right:14px;bottom:14px;z-index:999;background:var(--card-bg, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:10px;box-shadow:0 8px 24px #02061729;padding:.6rem;min-width:280px}.ws-launcher.collapsed{min-width:0;padding:.4rem}.ws-launcher-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.ws-launcher-title{font-size:.82rem;font-weight:700;margin-bottom:.45rem}.ws-launcher-head .ws-launcher-title{margin-bottom:0}.ws-launcher-collapse-btn,.ws-launcher-expand-btn{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border-radius:8px;cursor:pointer}.ws-launcher-collapse-btn{width:28px;height:24px;line-height:1;font-size:.9rem}.ws-launcher-expand-btn{font-size:.75rem;padding:.35rem .55rem}.ws-launcher-buttons{display:flex;flex-wrap:wrap;gap:.35rem}.ws-launcher-buttons button{border:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);color:var(--text, #0f172a);border-radius:8px;font-size:.75rem;padding:.35rem .5rem;cursor:pointer}.ws-launcher-active{margin-top:.45rem;font-size:.72rem;color:var(--text-muted, #64748b)}.ws-launcher-presets{margin-top:.45rem;display:flex;gap:.35rem}.ws-launcher-presets button{border:1px dashed var(--border-color, #dbe3ef);background:transparent;color:var(--text-muted, #64748b);border-radius:8px;font-size:.72rem;padding:.3rem .45rem;cursor:pointer}.ws-launcher-presets button:hover{border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.ws-window{position:fixed;display:flex;flex-direction:column;background:var(--card-bg, #fff);border:1px solid var(--border-color, #dbe3ef);border-radius:10px;box-shadow:0 14px 32px #02061738;overflow:hidden}.ws-window.min{height:42px!important}.ws-window-head{display:flex;align-items:center;justify-content:space-between;gap:.45rem;padding:.35rem .45rem;border-bottom:1px solid var(--border-color, #dbe3ef);background:var(--bg-elevated, #f8fafc);cursor:grab}.ws-window-head:active{cursor:grabbing}.ws-title{font-size:.8rem;font-weight:700}.ws-net{display:flex;gap:.45rem;font-size:.7rem;color:var(--text-muted, #64748b)}.ws-actions{display:flex;gap:.2rem}.ws-actions button{width:24px;height:24px;border:1px solid var(--border-color, #dbe3ef);background:#fff;border-radius:6px;cursor:pointer;font-size:.72rem}.ws-window-body{flex:1;overflow:auto}@media(max-width:900px){.ws-launcher{left:10px;right:10px;min-width:0}}
