:root{--bg-primary:#0d0f18;--bg-secondary:#151825;--bg-card:#1a1e2e;--bg-hover:#1f2540;--accent:#6c63ff;--accent-light:#8b84ff;--accent-glow:#6c63ff40;--accent-border:#6c63ff59;--success:#4ade80;--success-glow:#4ade8033;--warning:#fbbf24;--danger:#f87171;--text-primary:#e8eaf6;--text-secondary:#9da8d0;--text-muted:#5c6490;--border:#6c63ff26;--border-bright:#6c63ff66;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--shadow-card:0 4px 24px #0006;--shadow-glow:0 0 30px var(--accent-glow)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--accent-border);border-radius:2px}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 var(--success-glow)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}@keyframes fade-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-top{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}@keyframes border-glow{0%,to{box-shadow:0 0 0 1px var(--accent-border), 0 0 20px var(--accent-glow)}50%{box-shadow:0 0 0 1px var(--accent-light), 0 0 40px #6c63ff66}}.camera-panel[data-v-5af1591a]{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;gap:16px;min-height:0;padding:20px;display:flex;overflow:hidden}.video-wrapper[data-v-5af1591a]{border-radius:var(--radius-lg);background:var(--bg-primary);border:1px solid var(--border);flex:1;min-height:0;transition:border-color .4s,box-shadow .4s;position:relative;overflow:hidden}.video-wrapper.active[data-v-5af1591a]{border-color:var(--accent-border);box-shadow:var(--shadow-glow)}.video-wrapper.has-hands[data-v-5af1591a]{animation:2s ease-in-out infinite border-glow}.video-source[data-v-5af1591a]{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.skeleton-canvas[data-v-5af1591a]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.overlay[data-v-5af1591a]{background:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.idle-icon[data-v-5af1591a],.error-icon[data-v-5af1591a]{display:none}.overlay p[data-v-5af1591a]{color:var(--text-secondary);font-size:15px}.overlay .hint[data-v-5af1591a]{color:var(--text-muted);font-size:12px}.error-overlay p[data-v-5af1591a]{color:var(--danger);text-align:center;padding:0 24px}.spinner[data-v-5af1591a]{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin-5af1591a}@keyframes spin-5af1591a{to{transform:rotate(360deg)}}.live-badge[data-v-5af1591a]{color:#fff;letter-spacing:1px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f87171d9;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:flex;position:absolute;top:12px;left:12px}.live-dot[data-v-5af1591a]{background:#fff;border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite pulse-dot}.parts-badge[data-v-5af1591a]{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex;position:absolute;top:12px;right:12px}.part-tag[data-v-5af1591a]{color:var(--accent-light);border:1px solid var(--accent-border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#6c63ff33;border-radius:10px;padding:3px 8px;font-size:11px;font-weight:600}.info-panel[data-v-5af1591a]{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-shrink:0;display:flex;overflow:hidden}.info-item[data-v-5af1591a]{border-right:1px solid var(--border);flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px 8px;display:flex}.info-item[data-v-5af1591a]:last-child{border-right:none}.info-label[data-v-5af1591a]{color:var(--text-muted);letter-spacing:.5px;font-size:11px}.info-value[data-v-5af1591a]{color:var(--text-secondary);font-size:14px;font-weight:600}.info-value.accent[data-v-5af1591a]{color:var(--accent-light)}.info-value.success[data-v-5af1591a]{color:var(--success)}.controls[data-v-5af1591a]{flex-shrink:0}.btn[data-v-5af1591a]{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 24px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s;display:flex}.btn[data-v-5af1591a]:disabled{opacity:.6;cursor:not-allowed}.btn-start[data-v-5af1591a]{background:linear-gradient(135deg, var(--accent), #9b59b6);color:#fff;box-shadow:0 4px 16px var(--accent-glow)}.btn-start[data-v-5af1591a]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #6c63ff73}.btn-stop[data-v-5af1591a]{background:var(--bg-card);color:var(--danger);border:1px solid #f871714d}.btn-stop[data-v-5af1591a]:hover{background:#f871711a}.btn-icon[data-v-5af1591a]{font-size:13px}.skeleton-toggles[data-v-5af1591a]{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.toggle-row[data-v-5af1591a]{align-items:center;gap:6px;display:flex}.toggles-label[data-v-5af1591a]{color:var(--text-muted);letter-spacing:.3px;flex-shrink:0;width:28px;font-size:11px}.toggle-btn[data-v-5af1591a]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-family:inherit;font-size:11px;transition:all .2s;display:flex}.toggle-btn[data-v-5af1591a]:hover{border-color:var(--border-bright);color:var(--text-secondary)}.toggle-btn.active[data-v-5af1591a]{background:var(--bg-hover);border-color:var(--border-bright);color:var(--text-primary)}.toggle-btn:not(.active) .toggle-dot[data-v-5af1591a]{opacity:.25}.toggle-dot[data-v-5af1591a]{border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:opacity .2s}.fade-enter-active[data-v-5af1591a],.fade-leave-active[data-v-5af1591a]{transition:opacity .3s}.fade-enter-from[data-v-5af1591a],.fade-leave-to[data-v-5af1591a]{opacity:0}.translation-panel[data-v-22b13ecd]{background:var(--bg-secondary);flex-direction:column;gap:16px;min-height:0;padding:20px;display:flex;overflow:hidden}.panel-header[data-v-22b13ecd]{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.panel-title[data-v-22b13ecd]{color:var(--text-primary);font-size:16px;font-weight:600}.header-actions[data-v-22b13ecd]{gap:8px;display:flex}.icon-btn[data-v-22b13ecd]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;font-family:inherit;font-size:15px;transition:all .2s;display:flex}.icon-btn[data-v-22b13ecd]:hover{background:var(--bg-hover)}.icon-btn.active[data-v-22b13ecd]{color:var(--accent-light);border-color:var(--accent-border);background:var(--accent-glow)}.icon-btn.success[data-v-22b13ecd]{color:var(--success);background:var(--success-glow);border-color:#4ade8066}.icon-btn.danger[data-v-22b13ecd]:hover{color:var(--danger);background:#f871711a;border-color:#f8717166}.translation-output[data-v-22b13ecd]{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex:none;justify-content:center;align-items:center;min-height:200px;padding:24px;display:flex;position:relative;overflow:hidden}.translation-output[data-v-22b13ecd]:before{content:"";background:radial-gradient(ellipse at 50% 50%, var(--accent-glow) 0%, transparent 70%);opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;inset:0}.translation-output[data-v-22b13ecd]:has(.result-content):before{opacity:1}.result-content[data-v-22b13ecd]{flex-direction:column;align-items:center;gap:16px;width:100%;animation:.35s fade-slide-up;display:flex}.result-text[data-v-22b13ecd]{color:var(--text-primary);text-align:center;letter-spacing:2px;font-size:28px;font-weight:700}.result-meta[data-v-22b13ecd]{flex-direction:column;align-items:center;gap:6px;width:100%;max-width:200px;display:flex}.confidence-bar[data-v-22b13ecd]{background:var(--bg-hover);border-radius:2px;width:100%;height:4px;overflow:hidden}.confidence-fill[data-v-22b13ecd]{background:linear-gradient(90deg, var(--accent), var(--accent-light));border-radius:2px;height:100%;transition:width .4s}.confidence-label[data-v-22b13ecd]{color:var(--text-muted);font-size:12px}.result-placeholder[data-v-22b13ecd]{flex-direction:column;align-items:center;gap:10px;display:flex}.result-placeholder p[data-v-22b13ecd]{color:var(--text-muted);font-size:15px}.result-placeholder .hint[data-v-22b13ecd]{color:var(--text-muted);opacity:.7;font-size:12px}.history-section[data-v-22b13ecd]{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.history-header[data-v-22b13ecd]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.history-title[data-v-22b13ecd]{color:var(--text-secondary);letter-spacing:.5px;font-size:13px;font-weight:600}.history-count[data-v-22b13ecd]{color:var(--text-muted);background:var(--bg-hover);border-radius:10px;padding:2px 8px;font-size:12px}.history-list[data-v-22b13ecd]{flex-direction:column;flex:1;gap:4px;padding:8px;display:flex;overflow-y:auto}.history-item[data-v-22b13ecd]{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid #0000;align-items:center;gap:12px;padding:10px 12px;transition:all .2s;display:flex}.history-item[data-v-22b13ecd]:hover{border-color:var(--border);background:var(--bg-hover)}.history-info[data-v-22b13ecd]{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.history-text[data-v-22b13ecd]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.history-conf[data-v-22b13ecd]{color:var(--accent-light);background:var(--accent-glow);border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:11px}.history-time[data-v-22b13ecd]{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px}.history-empty[data-v-22b13ecd]{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.ws-echo[data-v-22b13ecd]{background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid #4ade8033;flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.ws-echo-label[data-v-22b13ecd]{color:var(--success);white-space:nowrap;background:#4ade8026;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700}.ws-echo-text[data-v-22b13ecd]{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.pop-enter-active[data-v-22b13ecd]{animation:.35s cubic-bezier(.34,1.56,.64,1) pop-in-22b13ecd}.pop-leave-active[data-v-22b13ecd]{animation:.2s pop-out-22b13ecd}@keyframes pop-in-22b13ecd{0%{opacity:0;transform:scale(.85)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes pop-out-22b13ecd{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.slide-top-enter-active[data-v-22b13ecd]{animation:.3s slide-in-top}.slide-top-leave-active[data-v-22b13ecd]{transition:opacity .2s}.slide-top-leave-to[data-v-22b13ecd]{opacity:0}.app-layout[data-v-7dd64bb5]{background:var(--bg-primary);flex-direction:column;height:100vh;display:flex}.app-header[data-v-7dd64bb5]{background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex}.header-left[data-v-7dd64bb5]{align-items:center;gap:12px;display:flex}.app-title[data-v-7dd64bb5]{color:var(--text-primary);letter-spacing:.5px;font-size:18px;font-weight:600}.version-badge[data-v-7dd64bb5]{color:var(--accent-light);background:var(--accent-glow);border:1px solid var(--accent-border);letter-spacing:1px;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.status-indicator[data-v-7dd64bb5]{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);border-radius:20px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;transition:all .3s;display:flex}.status-indicator .dot[data-v-7dd64bb5]{background:var(--text-muted);border-radius:50%;width:7px;height:7px;transition:background .3s}.status-indicator.detecting .dot[data-v-7dd64bb5],.status-indicator.detected .dot[data-v-7dd64bb5]{background:var(--success);animation:1.4s ease-in-out infinite pulse-dot}.status-indicator.detecting[data-v-7dd64bb5],.status-indicator.detected[data-v-7dd64bb5]{color:var(--success);border-color:#4ade804d}.status-indicator.error .dot[data-v-7dd64bb5]{background:var(--danger)}.status-indicator.error[data-v-7dd64bb5]{color:var(--danger);border-color:#f871714d}.app-main[data-v-7dd64bb5]{flex:1;grid-template-columns:1fr 1fr;gap:0;min-height:0;display:grid;overflow:hidden}
