/* VC1 floating voice overlay (2026-07-03). Opened by "Talk to Victoria"
   on any page. Compact, bottom-right, draggable via header. */
.vo-root {
  position: fixed; right: 20px; bottom: 20px; width: 300px;
  background: var(--bg-modal, rgba(18,18,26,0.97));
  border: 1px solid var(--border-subtle, rgba(255,255,255,0.12));
  border-radius: 12px; z-index: 99990;
  box-shadow: 0 12px 40px rgba(0,0,0,0.45);
  font-family: 'Inter', -apple-system, sans-serif;
  color: var(--text-primary, #e8e8f0);
  font-size: 13px;
}
.vo-head {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px; cursor: grab; user-select: none;
  border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}
.vo-head .vo-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--text-muted, #777); flex: 0 0 auto;
}
.vo-root[data-state="connecting"] .vo-dot { background: #b8842f; animation: vo-pulse 1s infinite; }
.vo-root[data-state="live"] .vo-dot { background: #2f8f6c; animation: vo-pulse 1.4s infinite; }
@keyframes vo-pulse { 50% { opacity: 0.35; } }
.vo-title { font-weight: 600; flex: 1; font-size: 12.5px; }
.vo-status { font-size: 10.5px; color: var(--text-muted, #999); font-family: 'JetBrains Mono', monospace; }
.vo-x { cursor: pointer; opacity: 0.6; padding: 2px 5px; font-size: 13px; }
.vo-x:hover { opacity: 1; }
.vo-body { padding: 10px; }
.vo-meters { display: flex; gap: 10px; margin-bottom: 8px; }
.vo-meter-wrap { flex: 1; }
.vo-meter-label {
  font-size: 9px; letter-spacing: 0.08em; color: var(--text-muted, #888);
  font-family: 'JetBrains Mono', monospace; margin-bottom: 3px; text-transform: uppercase;
}
.vo-meter { height: 4px; border-radius: 2px; background: rgba(127,127,127,0.22); overflow: hidden; }
.vo-meter-fill { height: 100%; width: 0%; background: var(--accent, #6366f1); transition: width 90ms linear; }
.vo-meter-fill.them { background: #c4827a; }
.vo-controls { display: flex; gap: 6px; }
.vo-btn {
  flex: 1; padding: 6px 8px; border-radius: 7px; border: 1px solid var(--border-subtle, rgba(255,255,255,0.14));
  background: transparent; color: inherit; font-size: 12px; font-weight: 600;
  cursor: pointer; line-height: 1.2;
}
.vo-btn:hover:not(:disabled) { border-color: var(--accent, #6366f1); }
.vo-btn:disabled { opacity: 0.45; cursor: default; }
.vo-btn.vo-primary { background: var(--accent, #6366f1); border-color: transparent; color: #fff; }
.vo-btn.vo-danger { background: #c4685c; border-color: transparent; color: #fff; }
.vo-btn.vo-active { background: rgba(196,130,122,0.25); border-color: #c4827a; }
.vo-transcript {
  display: none; margin-top: 8px; max-height: 170px; overflow-y: auto;
  border-top: 1px solid var(--border-subtle, rgba(255,255,255,0.08)); padding-top: 6px;
  font-size: 12px; line-height: 1.45;
}
.vo-transcript.open { display: block; }
.vo-line { margin-bottom: 4px; }
.vo-line .vo-who {
  font-family: 'JetBrains Mono', monospace; font-size: 9px; margin-right: 6px;
  color: var(--text-muted, #999);
}
.vo-line.assistant { color: var(--accent, #8b8bf5); }
.vo-err {
  margin-top: 8px; font-size: 11px; color: #c4827a; display: none;
  word-break: break-word;
}
.vo-err.show { display: block; }
