/* Dark Mirror AI — Remote Viewing UI styles.
   Layered on top of the base dark theme in base.html. RV-specific components:
   session console, sketch canvas, stage rail, guide panel, score cards. */

:root {
  --rv-accent: #22C55E;
  --rv-accent-soft: #86EFAC;
  --rv-blue: #38BDF8;
  --rv-violet: #A78BFA;
  --rv-amber: #FBBF24;
  --rv-danger: #F87171;
  --rv-panel: #12141C;
  --rv-card: #1E1E2E;
  --rv-card2: #151721;
  --rv-line: rgba(255,255,255,.08);
  --rv-muted: #94A3B8;
}

/* ── TRN + monospace refs ── */
.rv-trn { font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .12em; font-size: 1.4rem; color: var(--rv-accent-soft); }

/* ── Stage rail ── */
.rv-stage-rail { display:flex; gap:6px; align-items:center; }
.rv-stage-dot { width:14px; height:14px; border-radius:50%; background:#2A2B3C; border:1px solid var(--rv-line); }
.rv-stage-dot.active { background:var(--rv-accent); box-shadow:0 0 0 4px rgba(34,197,94,.18); }
.rv-stage-dot.done { background:var(--rv-blue); }

/* ── Session console layout ── */
.rv-console-grid { display:grid; grid-template-columns: 1fr 1.2fr; gap:16px; }
@media (max-width: 900px){ .rv-console-grid { grid-template-columns: 1fr; } }

.rv-panel { background:var(--rv-card); border:1px solid var(--rv-line); border-radius:14px; padding:16px; }
.rv-panel h6 { text-transform:uppercase; font-size:11px; letter-spacing:.06em; color:var(--rv-muted); margin-bottom:10px; }

/* ── Sketch canvas ── */
.rv-canvas-wrap { position:relative; background:#0E1016; border:1px solid var(--rv-line); border-radius:12px; overflow:hidden; }
.rv-canvas-wrap canvas { display:block; width:100%; touch-action:none; background:#0E1016; }
.rv-tool { border:1px solid var(--rv-line); background:var(--rv-card2); color:var(--rv-muted);
  border-radius:8px; padding:6px 10px; cursor:pointer; }
.rv-tool.active { border-color:var(--rv-accent); color:var(--rv-accent-soft); }

/* ── Camera capture ── */
.rv-camera video { width:100%; border-radius:12px; background:#000; }

/* ── AOL ── */
.rv-aol-btn { background:linear-gradient(180deg,#3a1d1d,#2a1414); border:1px solid #5b2b2b; color:#fca5a5; }
.rv-aol-btn:hover { color:#fff; border-color:var(--rv-danger); }
.rv-aol-log li { color:#fca5a5; }

/* ── Guide panel ── */
.rv-guide-msg { background:var(--rv-card2); border-left:3px solid var(--rv-violet); padding:10px 12px; border-radius:8px; margin-bottom:8px; }
.rv-depth { display:inline-flex; gap:4px; }
.rv-depth i { color:#2A2B3C; } .rv-depth i.on { color:var(--rv-accent); }

/* ── Score cards ── */
.rv-score-big { font-size:2.6rem; font-weight:700; color:#fff; line-height:1; }
.rv-score-label { font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--rv-muted); }
.rv-badge-tier { background:linear-gradient(180deg,#1e293b,#0f172a); border:1px solid var(--rv-line); color:var(--rv-accent-soft);
  border-radius:999px; padding:4px 12px; font-size:12px; }

/* ── Timer / cool-down ── */
.rv-timer { font-variant-numeric: tabular-nums; font-size:1.2rem; color:var(--rv-amber); }
.rv-cooldown { font-variant-numeric: tabular-nums; font-size:2rem; color:var(--rv-blue); }



/* ═══════════════════════════════════════════════════════════════════
   PHASE 1 — Session builder, interactive console, review report
   ═══════════════════════════════════════════════════════════════════ */

.rv-primary { background:linear-gradient(180deg,var(--rv-accent),#16a34a); border:1px solid #16a34a;
  color:#04120a; font-weight:600; border-radius:10px; padding:10px 18px; cursor:pointer; transition:.15s; }
.rv-primary:hover { filter:brightness(1.08); color:#04120a; }
.rv-primary:disabled { opacity:.45; cursor:not-allowed; filter:none; }
.rv-ghost { background:var(--rv-card2); border:1px solid var(--rv-line); color:var(--rv-muted);
  border-radius:10px; padding:9px 16px; cursor:pointer; transition:.15s; }
.rv-ghost:hover { color:#fff; border-color:var(--rv-accent); }
.rv-badge { display:inline-block; background:var(--rv-card2); border:1px solid var(--rv-line);
  border-radius:999px; padding:3px 11px; font-size:11px; letter-spacing:.04em; color:var(--rv-muted); }

/* ── New-session builder ── */
.rv-new-grid { display:grid; grid-template-columns: 1fr 300px; gap:20px; align-items:start; }
@media (max-width: 900px){ .rv-new-grid { grid-template-columns:1fr; } }
.rv-new-main { display:flex; flex-direction:column; gap:22px; }
.rv-new-side { background:var(--rv-card); border:1px solid var(--rv-line); border-radius:14px; padding:18px; position:sticky; top:16px; }
.rv-choice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.rv-choice-row { display:flex; flex-wrap:wrap; gap:12px; }
.rv-choice { position:relative; display:block; background:var(--rv-card2); border:1.5px solid var(--rv-line);
  border-radius:12px; padding:14px 16px; cursor:pointer; transition:.15s; flex:1 1 160px; }
.rv-choice:hover { border-color:rgba(34,197,94,.5); }
.rv-choice input { position:absolute; opacity:0; pointer-events:none; }
.rv-choice input:checked + .rv-choice-title,
.rv-choice.selected .rv-choice-title { color:var(--rv-accent-soft); }
.rv-choice.selected { border-color:var(--rv-accent); background:rgba(34,197,94,.07);
  box-shadow:0 0 0 3px rgba(34,197,94,.12); }
.rv-choice-title { font-weight:600; color:#e2e8f0; display:block; margin-bottom:3px; }
.rv-choice-sub { font-size:12px; color:var(--rv-muted); display:block; line-height:1.35; }
.rv-stat-big { font-size:2rem; font-weight:700; color:var(--rv-accent-soft); line-height:1; }

/* ── Console shell ── */
.rv-console { max-width:1180px; margin:0 auto; }
.rv-console-top { display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:var(--rv-card); border:1px solid var(--rv-line); border-radius:14px; padding:14px 20px; margin-bottom:16px; }
.rv-console-meta { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.rv-stage-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; }
.rv-stage-label { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--rv-accent-soft); font-weight:600; }
.rv-stage-prompt { color:var(--rv-muted); font-size:14px; line-height:1.5; margin-bottom:14px; }
.rv-stage-nav { display:flex; gap:10px; justify-content:space-between; margin-top:16px; }

/* ── Data capture ── */
.rv-data-text { width:100%; min-height:120px; background:#0E1016; border:1px solid var(--rv-line);
  border-radius:10px; color:#e2e8f0; padding:12px; resize:vertical; font-size:15px; line-height:1.5; }
.rv-data-text:focus { outline:none; border-color:var(--rv-accent); }
.rv-conf { display:flex; align-items:center; gap:10px; margin:12px 0; }
.rv-conf-dots { display:inline-flex; gap:6px; }
.rv-dot { width:20px; height:20px; border-radius:50%; background:#23252F; border:1px solid var(--rv-line); cursor:pointer; transition:.12s; }
.rv-dot:hover { border-color:var(--rv-accent-soft); }
.rv-dot.on { background:var(--rv-accent); border-color:var(--rv-accent); }
.rv-aol-box { background:linear-gradient(180deg,#2a1414,#1c0f0f); border:1px solid #5b2b2b; border-radius:10px; padding:12px; margin-top:12px; }
.rv-aol-box textarea { width:100%; background:#160c0c; border:1px solid #5b2b2b; border-radius:8px; color:#fca5a5; padding:8px; }

/* ── Sketch ── */
.rv-sketch-wrap { margin-top:12px; }
.rv-sketch-tools { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px; align-items:center; }
.rv-sketch-canvas { display:block; width:100%; height:auto; background:#0E1016; border:1px solid var(--rv-line);
  border-radius:12px; touch-action:none; cursor:crosshair; }

/* ── Media / camera ── */
.rv-media-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.rv-media-row { display:flex; flex-wrap:wrap; gap:10px; }
.rv-capture-block { margin-top:12px; }
.rv-capture-controls { display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.rv-cam-wrap { position:relative; }
.rv-cam-view { width:100%; border-radius:12px; background:#000; display:block; }
.rv-cam-placeholder { display:flex; align-items:center; justify-content:center; min-height:160px;
  background:#0E1016; border:1px dashed var(--rv-line); border-radius:12px; color:var(--rv-muted); }
.rv-capture { max-width:120px; border-radius:8px; border:1px solid var(--rv-line); }

/* ── Logged entries in console ── */
.rv-logged { display:flex; flex-direction:column; gap:8px; max-height:260px; overflow-y:auto; }
.rv-logged .rv-log-item { background:var(--rv-card2); border:1px solid var(--rv-line); border-radius:8px; padding:8px 10px; font-size:13px; }

/* ── Overlays (preflight / induction / cooldown) ── */
.rv-overlay { position:fixed; inset:0; background:rgba(6,8,14,.86); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; z-index:1080;
  /* let tall cards (pre-flight checklist, reveal, scoring) scroll instead of
     being clipped off the top & bottom of the viewport */
  overflow-y:auto; overflow-x:hidden; padding:24px 16px; }
.rv-overlay[hidden] { display:none; }
.rv-overlay-card { background:var(--rv-card); border:1px solid var(--rv-line); border-radius:18px;
  padding:34px; max-width:520px; width:92%; text-align:center;
  /* never exceed the viewport — cap height and scroll the card's own content */
  max-height:calc(100vh - 48px); overflow-y:auto; overflow-x:hidden; margin:auto; }
@media (max-width:560px){ .rv-overlay-card { padding:22px 18px; } }
@media (max-height:560px){ .rv-overlay-card { padding:20px 22px; } }
.rv-induction { display:flex; flex-direction:column; align-items:center; gap:20px; }
.rv-induction-orb { width:120px; height:120px; border-radius:50%;
  background:radial-gradient(circle at 40% 35%, var(--rv-accent-soft), var(--rv-accent) 45%, #0f5132 100%);
  box-shadow:0 0 60px rgba(34,197,94,.5); animation:rvBreathe 8s ease-in-out infinite; }
@keyframes rvBreathe { 0%,100%{ transform:scale(.72); opacity:.6; } 50%{ transform:scale(1); opacity:1; } }
.rv-induction-text { color:var(--rv-muted); font-size:15px; line-height:1.6; min-height:48px; }
.rv-cooldown-ring { width:150px; height:150px; margin:0 auto 18px; position:relative;
  display:flex; align-items:center; justify-content:center; border-radius:50%;
  background:conic-gradient(var(--rv-blue) var(--rv-cd-pct,0%), #1b2430 0); }
.rv-cooldown-ring::before { content:''; position:absolute; inset:12px; border-radius:50%; background:var(--rv-card); }

/* ── Guide column / state panel ── */
.rv-guide-col { display:flex; flex-direction:column; gap:16px; }
.rv-guide-panel { background:linear-gradient(180deg,#1a1730,#15131f); border:1px solid rgba(167,139,250,.25); border-radius:14px; padding:16px; }
.rv-guide-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.rv-guide-body { color:#cbd5e1; font-size:14px; line-height:1.6; }
.rv-mute { background:transparent; border:1px solid var(--rv-line); color:var(--rv-muted); border-radius:8px; padding:5px 10px; cursor:pointer; }
.rv-mute.on { color:var(--rv-violet); border-color:var(--rv-violet); }
.rv-state-panel { background:var(--rv-card); border:1px solid var(--rv-line); border-radius:14px; padding:16px; }
.rv-state-body { display:flex; flex-direction:column; gap:14px; }
.rv-state-readouts { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; font-size:13px; }
.rv-state-readouts .rv-metric-l { color:var(--rv-muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.rv-state-readouts .rv-metric-v { color:#e2e8f0; font-weight:600; font-variant-numeric:tabular-nums; }

/* ═══ Review report ═══ */
.rv-review-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:20px; align-items:start; }
@media (max-width: 900px){ .rv-review-grid { grid-template-columns:1fr; } }
.rv-score-hero { background:var(--rv-card); border:1px solid var(--rv-line); border-radius:16px; padding:24px; text-align:center; }
.rv-score-ring { width:180px; height:180px; margin:0 auto 16px; border-radius:50%; position:relative;
  display:flex; align-items:center; justify-content:center;
  background:conic-gradient(var(--rv-accent) calc(var(--rv-score,0)*1%), #1b2430 0); }
.rv-score-ring::before { content:''; position:absolute; inset:14px; border-radius:50%; background:var(--rv-card); }
.rv-score-num { position:relative; font-size:3rem; font-weight:700; color:#fff; line-height:1; }
.rv-score-cap { position:relative; font-size:12px; color:var(--rv-muted); text-transform:uppercase; letter-spacing:.06em; }
.rv-score-side { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:18px; }
.rv-score-metric { background:var(--rv-card2); border:1px solid var(--rv-line); border-radius:10px; padding:10px; }
.rv-score-metric .rv-metric-v { font-size:1.4rem; font-weight:700; color:var(--rv-accent-soft); }
.rv-score-metric .rv-metric-l { font-size:11px; color:var(--rv-muted); text-transform:uppercase; letter-spacing:.04em; }

/* IRVA dimension bars */
.rv-irva-row { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.rv-irva-label { flex:0 0 130px; font-size:13px; color:var(--rv-muted); text-transform:capitalize; }
.rv-irva-bar { flex:1; height:12px; background:#1b2430; border-radius:999px; overflow:hidden; }
.rv-irva-fill { height:100%; background:linear-gradient(90deg,var(--rv-blue),var(--rv-accent)); border-radius:999px; }
.rv-irva-val { flex:0 0 42px; text-align:right; font-size:13px; font-weight:600; color:#e2e8f0; font-variant-numeric:tabular-nums; }

/* descriptor chips */
.rv-cmp-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; }
.rv-chips { display:flex; flex-wrap:wrap; gap:6px; }
.rv-chip { display:inline-block; border-radius:999px; padding:3px 11px; font-size:12px; border:1px solid var(--rv-line); }
.rv-chip.hit { background:rgba(34,197,94,.14); border-color:rgba(34,197,94,.5); color:var(--rv-accent-soft); }
.rv-chip.miss { background:rgba(148,163,184,.1); color:var(--rv-muted); }
.rv-chip.noise { background:rgba(248,113,113,.12); border-color:rgba(248,113,113,.4); color:#fca5a5; }

/* decoy ranking */
.rv-decoy-list { display:flex; flex-direction:column; gap:8px; }
.rv-decoy-row { display:flex; align-items:center; gap:12px; }
.rv-decoy-rank { flex:0 0 28px; font-weight:700; color:var(--rv-muted); text-align:center; }
.rv-decoy-row.target .rv-decoy-rank { color:var(--rv-accent); }
.rv-decoy-bar { flex:1; height:14px; background:#1b2430; border-radius:999px; overflow:hidden; }
.rv-decoy-fill { height:100%; background:#334155; border-radius:999px; }
.rv-decoy-row.target .rv-decoy-fill { background:linear-gradient(90deg,var(--rv-accent),var(--rv-accent-soft)); }
.rv-decoy-val { flex:0 0 46px; text-align:right; font-size:13px; color:#e2e8f0; font-variant-numeric:tabular-nums; }

/* reveal card */
.rv-reveal-card { background:var(--rv-card); border:1px solid rgba(56,189,248,.3); border-radius:16px; padding:20px; }
.rv-reveal-grid { display:grid; grid-template-columns:200px 1fr; gap:18px; align-items:start; }
@media (max-width: 640px){ .rv-reveal-grid { grid-template-columns:1fr; } }
.rv-reveal-img { width:100%; border-radius:12px; border:1px solid var(--rv-line); }
.rv-reveal-title { font-size:1.2rem; font-weight:700; color:#fff; margin-bottom:6px; }
.rv-reveal-desc { color:var(--rv-muted); font-size:14px; line-height:1.6; }

/* session record entries */
.rv-entry { display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-bottom:1px solid var(--rv-line); }
.rv-entry-stage { flex:0 0 60px; font-size:11px; color:var(--rv-muted); text-transform:uppercase; letter-spacing:.04em; }
.rv-entry-body { flex:1; color:#e2e8f0; font-size:14px; line-height:1.5; }
.rv-entry-aol { color:#fca5a5; font-size:13px; margin-top:4px; }
.rv-entry-media img { max-width:160px; border-radius:8px; border:1px solid var(--rv-line); margin-top:8px; }
.rv-entry-conf { flex:0 0 auto; color:var(--rv-accent-soft); font-size:12px; letter-spacing:2px; }



/* =========================================================================
   PHASE 3 — Guide engine: pre-flight checklist, voice induction, live guide,
   fused state panel. Layered on top of the base RV styles above.
   ========================================================================= */

/* ── Pre-flight checklist card ── */
.rv-preflight-card { max-width:720px; text-align:left; }
.rv-preflight-checklist { display:grid; grid-template-columns:repeat(2,1fr); gap:14px 22px; margin-bottom:18px; }
@media (max-width:640px){ .rv-preflight-checklist { grid-template-columns:1fr; } }
.rv-check-group { }
.rv-check-title { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--rv-accent-soft); margin-bottom:8px; }
.rv-check-item { display:flex; align-items:flex-start; gap:9px; padding:6px 8px; border-radius:8px;
  cursor:pointer; color:#cbd5e1; font-size:13.5px; line-height:1.4; transition:background .15s; }
.rv-check-item:hover { background:var(--rv-card2); }
.rv-check-item input { margin-top:2px; accent-color:var(--rv-accent); width:16px; height:16px; flex:0 0 auto; }
.rv-check-item.checked { color:#e8fef0; }
.rv-check-item.checked span { text-decoration:line-through; text-decoration-color:rgba(134,239,172,.5); }

/* ── Induction selector ── */
.rv-induction-select { border-top:1px solid var(--rv-line); padding-top:14px; margin-bottom:16px; }
.rv-induction-options { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:10px 0; }
@media (max-width:640px){ .rv-induction-options { grid-template-columns:1fr; } }
.rv-induction-opt { display:block; position:relative; padding:11px 12px 11px 34px; border:1px solid var(--rv-line);
  border-radius:11px; background:var(--rv-card2); cursor:pointer; transition:border-color .15s, background .15s; }
.rv-induction-opt:hover { border-color:rgba(167,139,250,.5); }
.rv-induction-opt.sel { border-color:var(--rv-violet); background:linear-gradient(180deg,#1a1730,#15131f); }
.rv-induction-opt input { position:absolute; left:12px; top:13px; accent-color:var(--rv-violet); }
.rv-ind-name { display:block; color:#e2e8f0; font-size:13.5px; font-weight:600; }
.rv-ind-len { color:var(--rv-muted); font-weight:400; font-size:11px; }
.rv-ind-desc { display:block; color:var(--rv-muted); font-size:12px; line-height:1.4; margin-top:3px; }
.rv-tts-pref { display:flex; align-items:center; gap:9px; color:#cbd5e1; font-size:13px; cursor:pointer; margin-top:4px; }
.rv-tts-pref input { accent-color:var(--rv-violet); width:16px; height:16px; }
.rv-preflight-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--rv-line); padding-top:14px; }

/* ── Induction playback overlay ── */
.rv-induction-card { max-width:560px; display:flex; flex-direction:column; align-items:center; gap:22px; text-align:center; }
.rv-induction-name { font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--rv-accent-soft); }
.rv-induction-card .rv-induction-orb { position:relative; display:flex; align-items:center; justify-content:center;
  transition:transform 3.5s ease-in-out, box-shadow 3.5s ease-in-out; }
.rv-orb-count { font-size:34px; font-weight:700; color:#e8fef0; font-variant-numeric:tabular-nums; }
.rv-induction-card .rv-induction-text { font-size:18px; line-height:1.6; color:#e2e8f0; min-height:60px; max-width:460px; }
.rv-induction-orb.breathe-in  { animation:rv-breathe-in 4s ease-in-out forwards; }
.rv-induction-orb.breathe-out { animation:rv-breathe-out 8s ease-in-out forwards; }
.rv-induction-orb.breathe-hold{ animation:rv-breathe-hold 1.6s ease-in-out infinite; }
@keyframes rv-breathe-in  { from{ transform:scale(.8); box-shadow:0 0 30px rgba(56,189,248,.25);} to{ transform:scale(1.25); box-shadow:0 0 70px rgba(56,189,248,.55);} }
@keyframes rv-breathe-out { from{ transform:scale(1.25); box-shadow:0 0 70px rgba(167,139,250,.5);} to{ transform:scale(.8); box-shadow:0 0 25px rgba(167,139,250,.2);} }
@keyframes rv-breathe-hold{ 0%,100%{ transform:scale(1.15);} 50%{ transform:scale(1.2);} }
.rv-induction-progress { width:100%; max-width:460px; height:5px; background:var(--rv-card2); border-radius:999px; overflow:hidden; }
.rv-induction-bar { height:100%; width:0%; background:linear-gradient(90deg,var(--rv-blue),var(--rv-violet)); transition:width .6s ease; }
.rv-induction-controls { margin-top:2px; }

/* ── Live guide panel additions ── */
.rv-guide-live { font-size:9px; color:var(--rv-muted); margin-left:auto; margin-right:8px; opacity:.5; transition:color .2s, opacity .2s; }
.rv-guide-live.on { color:var(--rv-accent); opacity:1; animation:rv-pulse 2s ease-in-out infinite; }
@keyframes rv-pulse { 0%,100%{ opacity:1;} 50%{ opacity:.35;} }
.rv-mute.muted { color:var(--rv-danger); border-color:rgba(248,113,113,.5); }
.rv-guide-actions { display:flex; gap:8px; margin-top:12px; }
.rv-guide-actions .btn { flex:1; }
.rv-anchor-row { display:flex; gap:6px; margin-top:10px; align-items:center; }
.rv-anchor-row input { flex:1; min-width:0; background:var(--rv-card2); border:1px solid var(--rv-line); color:#e2e8f0; }
.rv-cue-log { margin-top:12px; max-height:180px; overflow-y:auto; display:flex; flex-direction:column; gap:6px; }
.rv-cue-item { background:var(--rv-card2); border:1px solid var(--rv-line); border-left:3px solid var(--rv-line);
  border-radius:8px; padding:7px 10px; font-size:12.5px; color:#cbd5e1; line-height:1.45; }
.rv-cue-item.ai { border-left-color:var(--rv-violet); }
.rv-cue-time { color:var(--rv-muted); font-size:10.5px; font-variant-numeric:tabular-nums; margin-right:6px; }

/* ── Fused state quality ── */
.rv-quality-wrap { display:flex; flex-direction:column; gap:6px; }
.rv-quality-top { display:flex; align-items:baseline; justify-content:space-between; }
.rv-quality-val { font-size:18px; font-weight:700; color:#e8fef0; font-variant-numeric:tabular-nums; }
.rv-quality-bar { height:10px; background:var(--rv-card2); border:1px solid var(--rv-line); border-radius:999px; overflow:hidden; }
.rv-quality-fill { height:100%; width:0%; border-radius:999px; transition:width .5s ease, background .3s; background:var(--rv-muted); }
.rv-quality-fill.low  { background:linear-gradient(90deg,#ef4444,#f87171); }
.rv-quality-fill.mid  { background:linear-gradient(90deg,#f59e0b,#fbbf24); }
.rv-quality-fill.high { background:linear-gradient(90deg,#16a34a,#22c55e); }
.rv-quality-spark { display:flex; align-items:flex-end; gap:3px; height:26px; margin-top:2px; }
.rv-spark-bar { flex:1; min-width:4px; border-radius:2px 2px 0 0; background:var(--rv-muted); opacity:.85; }
.rv-spark-bar.low { background:#f87171; } .rv-spark-bar.mid { background:#fbbf24; } .rv-spark-bar.high { background:#22c55e; }

/* ── Wearable connect ── */
.rv-bio-readout { display:grid; grid-template-columns:repeat(2,1fr); gap:6px 12px;
  padding:10px; border:1px solid var(--rv-line); border-radius:10px;
  background:rgba(124,58,237,.06); color:#cbd5e1; }
.rv-bio-readout span { color:#e2e8f0; font-weight:600; font-variant-numeric:tabular-nums; }
.rv-wearable { border-top:1px solid var(--rv-line); padding-top:10px; }
.rv-wearable summary { cursor:pointer; color:var(--rv-blue); font-size:13px; list-style:none; }
.rv-wearable summary::-webkit-details-marker { display:none; }
.rv-wearable-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.rv-wearable-grid label { display:flex; flex-direction:column; gap:3px; color:var(--rv-muted); }
.rv-wearable-grid input { background:var(--rv-card2); border:1px solid var(--rv-line); color:#e2e8f0; }



/* ====================================================================
   PHASE 4: Progression, Onboarding, Tier System
   ==================================================================== */

/* Tier badge */
.rv-tier-badge{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;margin:0 auto;border:3px solid var(--line)}
.rv-tier-badge.tier-0{background:rgba(148,163,184,.15);color:#94A3B8;border-color:#475569}
.rv-tier-badge.tier-1{background:rgba(56,189,248,.12);color:#38BDF8;border-color:#0EA5E9}
.rv-tier-badge.tier-2{background:rgba(34,197,94,.12);color:#22C55E;border-color:#16A34A}
.rv-tier-badge.tier-3{background:rgba(251,191,36,.12);color:#FBBF24;border-color:#F59E0B}
.rv-tier-badge.tier-4{background:rgba(168,85,247,.12);color:#A855F7;border-color:#9333EA}
.rv-tier-badge.tier-5{background:rgba(239,68,68,.12);color:#EF4444;border-color:#DC2626;box-shadow:0 0 24px rgba(239,68,68,.25)}

/* Progress bars */
.rv-prog-bar{margin-bottom:4px}
.rv-prog-label{display:flex;justify-content:space-between;font-size:11px;color:#94A3B8;margin-bottom:2px}

/* Recommendation cards */
.rv-rec-card{padding:12px 16px;border-radius:10px;border:1px solid var(--line);background:var(--card2)}
.rv-rec-card.priority-high{border-left:3px solid #EF4444}
.rv-rec-card.priority-medium{border-left:3px solid #FBBF24}
.rv-rec-card.priority-low{border-left:3px solid #22C55E}
.rv-rec-badge-high{background:rgba(239,68,68,.15);color:#FCA5A5}
.rv-rec-badge-medium{background:rgba(251,191,36,.15);color:#FCD34D}
.rv-rec-badge-low{background:rgba(34,197,94,.15);color:#86EFAC}

/* Feature gate cards */
.rv-gate-card{padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card2);display:flex;justify-content:space-between;align-items:center;font-size:13px}
.rv-gate-card.unlocked{border-color:rgba(34,197,94,.25)}
.rv-gate-card.locked{opacity:.55}

/* Onboarding steps */
.rv-onboard-num{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;border:2px solid var(--line);background:var(--card2);color:#94A3B8}
.rv-onboard-step.status-completed .rv-onboard-num{background:rgba(34,197,94,.15);border-color:#22C55E;color:#22C55E}
.rv-onboard-step.status-current .rv-onboard-num{background:rgba(56,189,248,.15);border-color:#38BDF8;color:#38BDF8}
.rv-onboard-step.status-locked{opacity:.5}
.rv-onboard-step.status-current{border-color:rgba(56,189,248,.25)}



/* ===================================================================
   PHASE 5 — Telepathy Module (T0-T9)
   =================================================================== */

/* ── Phase sidebar ── */
.tp-phase-nav { background: rgba(20,20,30,.85); border: 1px solid rgba(100,200,255,.12); }
.tp-phase-list { display: flex; flex-direction: column; gap: 4px; }
.tp-phase-item {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 8px; border-radius: 6px; cursor: default;
  transition: background .2s, border-color .2s;
  border: 1px solid transparent;
}
.tp-phase-item.active {
  background: rgba(13,202,240,.12); border-color: rgba(13,202,240,.35);
}
.tp-phase-item.completed { opacity: .7; }
.tp-phase-item.completed .tp-phase-num { background: rgba(25,135,84,.3); }
.tp-phase-num {
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(100,100,130,.25); color: #ccc;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; flex-shrink: 0;
}
.tp-phase-item.active .tp-phase-num {
  background: rgba(13,202,240,.3); color: #fff;
}
.tp-phase-label { flex: 1; min-width: 0; }
.tp-phase-check { flex-shrink: 0; }

/* ── Phase header ── */
.tp-phase-header {
  background: linear-gradient(135deg, rgba(13,202,240,.08), rgba(102,16,242,.08));
  border: 1px solid rgba(13,202,240,.2);
}

/* ── Prompt card ── */
.tp-prompt-card { background: rgba(20,20,35,.85); border: 1px solid rgba(13,202,240,.15); }
.tp-prompt-text {
  white-space: pre-wrap; font-size: 14px; line-height: 1.6;
  color: rgba(220,220,240,.9);
}

/* ── Probe textarea ── */
.tp-probe-textarea {
  background: rgba(15,15,25,.9); color: #e0e0e8;
  border: 1px solid rgba(100,200,255,.15); font-size: 14px;
  resize: vertical; min-height: 120px;
}
.tp-probe-textarea:focus {
  background: rgba(15,15,25,.95); border-color: rgba(13,202,240,.4);
  color: #fff; box-shadow: 0 0 8px rgba(13,202,240,.15);
}

/* ── Confidence stars ── */
.tp-star-btn {
  width: 32px; height: 32px; padding: 0; border-radius: 50%;
  font-weight: 700; font-size: 13px;
}
.tp-star-btn.active, .tp-star-btn.btn-info {
  background: rgba(13,202,240,.25) !important;
  border-color: rgba(13,202,240,.5) !important; color: #0dcaf0 !important;
}

/* ── Probe log ── */
.tp-probe-log { max-height: 300px; overflow-y: auto; }
.tp-log-entry {
  background: rgba(20,20,35,.7); border-radius: 6px;
  border-left: 3px solid rgba(13,202,240,.3);
}

/* ── Review: probe results ── */
.tp-probe-result {
  padding: 12px; border-radius: 8px;
  background: rgba(20,20,35,.6);
  border-left: 4px solid rgba(100,100,130,.3);
}
.tp-probe-result.tp-hit { border-left-color: #198754; background: rgba(25,135,84,.06); }
.tp-probe-result.tp-partial { border-left-color: #0dcaf0; background: rgba(13,202,240,.04); }
.tp-probe-result.tp-miss { border-left-color: #ffc107; background: rgba(255,193,7,.04); }
.tp-probe-content {
  white-space: pre-wrap; font-size: 13px; line-height: 1.55;
  color: rgba(220,220,240,.85);
}

/* ── Score hero ── */
.tp-score-hero { background: rgba(20,20,35,.85); border: 1px solid rgba(13,202,240,.2); }
.tp-score-big { font-size: 48px; font-weight: 800; line-height: 1; }

/* ── Reveal card ── */
.tp-reveal-card {
  background: linear-gradient(135deg, rgba(13,202,240,.06), rgba(102,16,242,.06));
  border: 1px solid rgba(13,202,240,.2);
}
.tp-reveal-desc { color: rgba(200,200,220,.8); line-height: 1.5; }

/* ── Pre-session ── */
.tp-console .alert-dark {
  background: rgba(13,202,240,.06); border-color: rgba(13,202,240,.2);
  color: rgba(220,220,240,.9);
}


/* ===================================================================
   PHASE 6 — ARV Prediction Engine
   =================================================================== */

/* Stats banner */
.arv-stats-banner {
  display: flex; gap: 1rem; flex-wrap: wrap;
}
.arv-stat-card {
  flex: 1 1 100px; min-width: 90px; background: var(--rv-card-bg, #1a1a2e);
  border: 1px solid rgba(255,255,255,.08); border-radius: .75rem;
  padding: .75rem 1rem; text-align: center;
}
.arv-stat-val { font-size: 1.6rem; font-weight: 700; }
.arv-stat-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; opacity: .55; }
.arv-sig-highly_significant { color: #ffd700; }
.arv-sig-significant { color: #90ee90; }
.arv-sig-suggestive { color: #87ceeb; }

/* Status badges */
.arv-status-open { background: #2563eb; color: #fff; }
.arv-status-predicted { background: #7c3aed; color: #fff; }
.arv-status-resolved { background: #059669; color: #fff; }
.arv-status-cancelled { background: #6b7280; color: #fff; }

/* Project cards */
.arv-project-card {
  background: var(--rv-card-bg, #1a1a2e); border: 1px solid rgba(255,255,255,.08);
  transition: border-color .2s, transform .15s;
}
.arv-project-card:hover {
  border-color: rgba(99,102,241,.5); transform: translateY(-1px);
  color: inherit;
}

/* New project modal */
.arv-modal {
  position: fixed; inset: 0; z-index: 1050;
  background: rgba(0,0,0,.7); display: flex;
  align-items: center; justify-content: center;
}
.arv-modal-inner {
  width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto;
}

/* Outcome cards (project detail) */
.arv-outcome-card {
  background: var(--rv-card-bg, #1a1a2e); border: 1px solid rgba(255,255,255,.08);
  position: relative;
}
.arv-outcome-label {
  position: absolute; top: .5rem; right: .75rem;
  font-size: 1.6rem; font-weight: 800; opacity: .15;
}
.arv-prediction-badge {
  display: inline-block; padding: .25rem .6rem; border-radius: .5rem;
  background: rgba(124,58,237,.25); color: #a78bfa; font-size: .82rem;
}
.arv-actual-badge {
  display: inline-block; padding: .25rem .6rem; border-radius: .5rem;
  background: rgba(5,150,105,.25); color: #6ee7b7; font-size: .82rem;
}

/* Resolution card */
.arv-resolution-card { border: 2px solid transparent; }
.arv-resolution-card.arv-hit { border-color: #059669; background: rgba(5,150,105,.08); }
.arv-resolution-card.arv-miss { border-color: #dc2626; background: rgba(220,38,38,.08); }

/* Vote bar */
.arv-vote-bar {
  display: flex; height: 2rem; border-radius: .5rem; overflow: hidden;
  background: rgba(255,255,255,.05);
}
.arv-vote-a {
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: .75rem; font-weight: 600; transition: width .4s ease;
}
.arv-vote-b {
  background: linear-gradient(135deg, #7c3aed, #8b5cf6);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: .75rem; font-weight: 600; transition: width .4s ease;
}

/* Vote badges in table */
.arv-vote-badge-a { background: #2563eb; color: #fff; }
.arv-vote-badge-b { background: #7c3aed; color: #fff; }



/* ═══════════════════════════════════════════════════════════════════
   PHASE 7 — Target Vault, submission form, moderation, generate
   ═══════════════════════════════════════════════════════════════════ */

/* Vault tabs */
#vaultTabs .nav-link { color: var(--rv-muted); border-radius: 8px; padding: 6px 16px; }
#vaultTabs .nav-link.active { background: var(--rv-accent); color: #04120a; font-weight: 600; }
#vaultTabs .nav-link:hover:not(.active) { color: #fff; }

/* Target table tweaks */
#targetTable th { font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
  color: var(--rv-muted); border-color: var(--rv-line); white-space: nowrap; }
#targetTable td { border-color: var(--rv-line); font-size: 14px; vertical-align: middle; }
#targetTable tr:hover { background: rgba(34,197,94,.04); }

/* Image thumb in table */
#targetTable td img { transition: transform .2s; }
#targetTable td img:hover { transform: scale(2.5); z-index: 10; position: relative; }

/* Drop zone for image upload */
.rv-drop-zone { border: 2px dashed var(--rv-line); border-radius: 12px; padding: 24px;
  text-align: center; cursor: pointer; transition: .2s; }
.rv-drop-zone:hover, .rv-drop-zone.rv-drop-hover {
  border-color: var(--rv-accent); background: rgba(34,197,94,.04); }

/* Generate result cards */
#genResult .alert, #calResult .alert, #healthResult .alert {
  border-radius: 10px; font-size: 14px; }

/* Moderation cards */
#moderationList .card { background: var(--rv-card2); border: 1px solid var(--rv-line); }
#moderationList .card:hover { border-color: var(--rv-accent); }

/* Submit form styling */
#submitForm .form-label { font-size: 13px; font-weight: 500; color: var(--rv-muted); }
#submitForm .form-text { font-size: 11px; color: var(--rv-muted); }

/* Pending badge in tab */
#pendingBadge { font-size: 10px; min-width: 18px; }



/* ============================================================
   PHASE 8 — Polish, Performance, Advanced Features
   ============================================================ */

/* --- 8.1  Mirror-glass visual theme --- */
.mirror-glass {
  background: rgba(10,13,20,0.65);
  backdrop-filter: blur(14px) saturate(1.3);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 8px 32px rgba(0,0,0,0.45);
}
.glow-accent { box-shadow: 0 0 18px rgba(138,92,246,0.25); }
.glow-green  { box-shadow: 0 0 18px rgba(52,211,153,0.25); }
.glow-amber  { box-shadow: 0 0 18px rgba(251,191,36,0.25); }

/* --- 8.2  Mobile responsive refinements --- */
@media (max-width: 767px) {
  .rv-canvas-wrap canvas,
  .rv-canvas-wrap .sketch-canvas {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 520/300;
  }
  .rv-console { grid-template-columns: 1fr !important; }
  .rv-stage-pills { flex-wrap: wrap; gap: 4px; }
  .rv-stage-pills .badge { font-size: 11px; }
  .card { margin-bottom: 12px; }
  .quick-start-grid { grid-template-columns: 1fr !important; }
  .btn { font-size: 13px; padding: 8px 12px; }
}

/* --- 8.5  Signal Library --- */
.signal-card {
  background: var(--rv-card);
  border: 1px solid var(--rv-line);
  border-radius: 10px;
  padding: 14px;
  transition: border-color .2s, box-shadow .2s;
}
.signal-card:hover { border-color: var(--rv-accent); box-shadow: 0 0 12px rgba(138,92,246,0.15); }
.signal-reliability {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
}
.signal-reliability.high   { background: rgba(52,211,153,0.15); color: #34d399; }
.signal-reliability.medium { background: rgba(251,191,36,0.15); color: #fbbf24; }
.signal-reliability.low    { background: rgba(248,113,113,0.15); color: #f87171; }
.signal-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px,1fr));
  gap: 10px;
}
.signal-stat-box {
  background: var(--rv-card2);
  border-radius: 8px;
  padding: 12px;
  text-align: center;
}
.signal-stat-box .num { font-size: 22px; font-weight: 700; color: var(--rv-accent); }
.signal-stat-box .lbl { font-size: 11px; color: var(--rv-muted); text-transform: uppercase; letter-spacing: .5px; }

/* --- 8.6  Group Sessions --- */
.group-card {
  background: var(--rv-card);
  border: 1px solid var(--rv-line);
  border-radius: 10px;
  padding: 16px;
  transition: border-color .2s;
}
.group-card:hover { border-color: var(--rv-accent); }
.group-status {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.group-status.open   { background: rgba(52,211,153,0.15); color: #34d399; }
.group-status.closed { background: rgba(148,163,184,0.15); color: #94a3b8; }
.group-status.scored { background: rgba(138,92,246,0.15); color: #a78bfa; }
.agreement-matrix {
  width: 100%;
  border-collapse: separate;
  border-spacing: 2px;
}
.agreement-matrix td, .agreement-matrix th {
  padding: 6px 8px;
  font-size: 12px;
  text-align: center;
  border-radius: 4px;
}
.agreement-matrix th { background: var(--rv-card2); color: var(--rv-muted); }
.agreement-cell-high   { background: rgba(52,211,153,0.2); color: #34d399; }
.agreement-cell-medium { background: rgba(251,191,36,0.15); color: #fbbf24; }
.agreement-cell-low    { background: rgba(248,113,113,0.12); color: #f87171; }

/* --- 8.7  Remote Influencing --- */
.ri-stage-card {
  background: var(--rv-card);
  border: 1px solid var(--rv-line);
  border-radius: 10px;
  padding: 16px;
  position: relative;
  overflow: hidden;
}
.ri-stage-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: var(--rv-accent);
  border-radius: 4px 0 0 4px;
}
.ri-stage-card .stage-num {
  font-size: 28px;
  font-weight: 800;
  color: rgba(138,92,246,0.25);
  position: absolute;
  top: 8px; right: 14px;
}
.ri-stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px,1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.ri-stat {
  background: var(--rv-card2);
  border-radius: 10px;
  padding: 16px;
  text-align: center;
}
.ri-stat .big { font-size: 26px; font-weight: 700; color: var(--rv-accent); }
.ri-stat .lbl { font-size: 11px; color: var(--rv-muted); text-transform: uppercase; }

/* --- 8.3  Export button --- */
.btn-export {
  background: transparent;
  border: 1px solid var(--rv-line);
  color: var(--rv-muted);
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 13px;
  transition: all .2s;
}
.btn-export:hover { border-color: var(--rv-accent); color: #fff; }
.btn-export i { margin-right: 6px; }

/* --- 8.8  Performance: reduce paint on scroll --- */
.sidebar, .app-header { will-change: transform; }
.app-main { contain: layout style; }



/* ── Collapse Wave / Space-Time panel (additive, opt-in) ── */
.rv-collapse-panel { background:linear-gradient(180deg,#0f1a24,#111722); border:1px solid rgba(56,189,248,.28); border-radius:14px; padding:16px; }
.rv-collapse-sub { font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--rv-blue); border:1px solid rgba(56,189,248,.4); border-radius:999px; padding:1px 8px; margin-left:8px; }
.rv-collapse-body { display:flex; flex-direction:column; gap:14px; }
.rv-cw-axes { display:flex; flex-direction:column; gap:10px; }
.rv-cw-axis-top { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:4px; }
.rv-cw-axis-label { font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:#cbd5e1; }
.rv-cw-axis-val { font-size:15px; font-weight:700; font-variant-numeric:tabular-nums; color:#e8f6ff; }
.rv-cw-bar { position:relative; height:10px; background:var(--rv-card2); border:1px solid var(--rv-line); border-radius:999px; overflow:visible; }
.rv-cw-fill { position:absolute; left:0; top:0; bottom:0; width:0%; border-radius:999px; transition:width .5s ease; }
.rv-cw-fill-space { background:linear-gradient(90deg,#38bdf8,#7dd3fc); }
.rv-cw-fill-time  { background:linear-gradient(90deg,#a78bfa,#c4b5fd); }
.rv-cw-ceiling { position:absolute; top:-3px; bottom:-3px; width:2px; background:var(--rv-amber); box-shadow:0 0 4px rgba(251,191,36,.8); border-radius:2px; }
.rv-cw-geo { display:flex; align-items:center; gap:16px; }
.rv-cw-dial { position:relative; width:96px; height:56px; flex:0 0 auto; overflow:hidden;
  border-bottom:2px solid var(--rv-line); }
.rv-cw-dial:before { content:''; position:absolute; left:0; right:0; bottom:0; height:96px; width:96px;
  border-radius:50%; border:2px solid rgba(255,255,255,.08); border-bottom:none;
  background:conic-gradient(from -90deg at 50% 100%, rgba(56,189,248,.18), rgba(167,139,250,.18)); }
.rv-cw-needle { position:absolute; left:50%; bottom:0; width:2px; height:46px; background:#e8f6ff;
  transform-origin:bottom center; transform:rotate(0deg); transition:transform .6s cubic-bezier(.22,1,.36,1);
  box-shadow:0 0 6px rgba(232,246,255,.6); border-radius:2px; z-index:2; }
.rv-cw-dial-val { position:absolute; left:0; right:0; bottom:2px; text-align:center; font-size:13px; font-weight:700;
  color:#e8f6ff; font-variant-numeric:tabular-nums; z-index:3; }
.rv-cw-geo-meta { flex:1; display:flex; flex-direction:column; gap:3px; }
.rv-cw-label { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--rv-muted); }
.rv-cw-label.lblspacelocked { color:var(--rv-blue); }
.rv-cw-label.lbltimelocked  { color:var(--rv-violet); }
.rv-cw-label.lblbalanced,.rv-cw-label.lblresolved { color:var(--rv-accent-soft); }
.rv-cw-label.lbldiffuse { color:var(--rv-danger); }
.rv-cw-stat { display:flex; justify-content:space-between; font-size:12px; color:#cbd5e1; font-variant-numeric:tabular-nums; }
.rv-cw-guidance { background:var(--rv-card2); border:1px solid var(--rv-line); border-left:3px solid var(--rv-blue);
  border-radius:8px; padding:10px 12px; }
.rv-cw-guidance-head { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:5px; }
.rv-cw-guidance-head span:first-child { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#e8f6ff; }
.rv-cw-headroom { font-size:10.5px; color:var(--rv-amber); font-variant-numeric:tabular-nums; }
.rv-cw-rationale { font-size:12px; color:var(--rv-muted); line-height:1.45; margin-bottom:6px; }
.rv-cw-protocol { margin:0; padding-left:18px; display:flex; flex-direction:column; gap:3px; }
.rv-cw-protocol li { font-size:12px; color:#cbd5e1; line-height:1.4; }
.rv-cw-actions { display:flex; gap:6px; align-items:center; }
.rv-cw-want { flex:1; min-width:0; background:var(--rv-card2); border:1px solid var(--rv-line); color:#e2e8f0; font-size:12px; }
.rv-cw-note { line-height:1.4; }



/* ── Voice V1: top-bar voice selector ── */
.rv-voice-selector { display:inline-flex; align-items:center; gap:4px; margin-left:8px; }
.rv-voice-dropdown { background:var(--rv-card2,#1a1f2e); border:1px solid var(--rv-line,#334155);
  color:#e2e8f0; font-size:12px; padding:3px 6px; border-radius:6px; max-width:220px;
  cursor:pointer; outline:none; }
.rv-voice-dropdown:focus { border-color:var(--rv-accent,#22C55E); }
.rv-voice-dropdown optgroup { font-weight:700; color:var(--rv-accent-soft,#86EFAC); font-size:11px; }
.rv-voice-dropdown option { color:#e2e8f0; background:#1a1f2e; font-size:12px; }
.rv-voice-preview { background:none; border:1px solid var(--rv-line,#334155); color:var(--rv-accent,#22C55E);
  border-radius:50%; width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:14px; transition:border-color .15s,color .15s; padding:0; }
.rv-voice-preview:hover { border-color:var(--rv-accent,#22C55E); color:#fff; }



/* ── Collective Field card (post-reveal, advisory) ───────────────────── */
.rv-cf-card { border:1px solid var(--rv-line,#334155); }
.rv-cf-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.rv-cf-head h5 { color:var(--rv-accent-soft,#86EFAC); letter-spacing:.04em; }
.rv-cf-badge { font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--rv-accent,#22C55E);
  border:1px solid var(--rv-line,#334155); border-radius:999px; padding:2px 10px; opacity:.85; }
.rv-cf-sec-label { color:var(--rv-muted,#94a3b8); font-size:12px; letter-spacing:.03em; margin-bottom:6px; }
.rv-cf-row { font-family:'Rajdhani','Consolas',monospace; font-size:14px; margin:3px 0; color:#e2e8f0; }
.rv-cf-bar { color:var(--rv-accent,#22C55E); letter-spacing:1px; }
.rv-cf-cls { color:var(--rv-accent-soft,#86EFAC); font-weight:600; text-transform:capitalize; }
.rv-cf-meta { color:var(--rv-muted,#94a3b8); font-size:12px; }
.rv-cf-sig { font-size:13px; color:#cbd5e1; margin:2px 0; }
.rv-cf-sig b { color:var(--rv-accent-soft,#86EFAC); }
.rv-cf-stats { display:flex; gap:22px; flex-wrap:wrap; font-size:13px; color:#cbd5e1; }
.rv-cf-stats b { color:var(--rv-accent-soft,#86EFAC); text-transform:capitalize; }
.rv-cf-advisory { margin-top:10px; padding:10px 12px; background:rgba(34,197,94,.06);
  border-left:3px solid var(--rv-accent,#22C55E); border-radius:6px; font-size:13px; color:#e2e8f0; }
.rv-cf-caveat { margin-top:10px; font-size:11.5px; color:var(--rv-muted,#94a3b8); font-style:italic; }
