/* ============================================================
   RAR PHYSIOLOGY · Dynamics · Page 4 — flow-volume loop engine.
   Interactive-specific; shared atoms (.mov-btn/.mov-readout/.dov-seg/
   .mov-pv-leg) live elsewhere.
   ============================================================ */

.rar-topic-content .dov-fv-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.rar-topic-content .dov-fv-controls--2 { margin-bottom: 12px; }
.rar-topic-content .dov-fv-states { flex-wrap: wrap; }
.rar-topic-content .dov-fv-controls .mov-btn.is-on { background: var(--text, #111318); border-color: var(--text, #111318); color: #fff; }

.rar-topic-content .dov-fv-stage { border: 1px solid var(--line, rgba(15, 23, 42, 0.08)); border-radius: var(--radius-sm, 14px); background: #fff; padding: 8px; }
.rar-topic-content .dov-fv-svg { width: 100%; max-width: 580px; height: auto; display: block; margin: 0 auto; }

.rar-topic-content .dov-fv-frame { fill: none; stroke: var(--line, rgba(15, 23, 42, 0.14)); stroke-width: 1; }
.rar-topic-content .dov-fv-grid { stroke: rgba(15, 23, 42, 0.05); stroke-width: 1; }
.rar-topic-content .dov-fv-zero { stroke: rgba(15, 23, 42, 0.34); stroke-width: 1.2; }
.rar-topic-content .dov-fv-num { fill: var(--muted, #667085); font-size: 9.5px; font-weight: 600; }
.rar-topic-content .dov-fv-axlabel { fill: var(--muted-strong, #475467); font-size: 10.5px; font-weight: 700; }

.rar-topic-content .dov-fv-limb { fill: none; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.rar-topic-content .dov-fv-exp { stroke: #c0392b; }
.rar-topic-content .dov-fv-in { stroke: #0a84ff; }
.rar-topic-content .dov-fv-fef { fill: none; stroke: #d98500; stroke-width: 5; stroke-linecap: round; opacity: 0.85; }

.rar-topic-content .dov-fv-mk { stroke: #fff; stroke-width: 1.4; }
.rar-topic-content .dov-fv-pef { fill: #c0392b; }
.rar-topic-content .dov-fv-pif { fill: #0a84ff; }
.rar-topic-content .dov-fv-mklbl { font-size: 10px; font-weight: 850; fill: var(--text, #111318); }

.rar-topic-content .dov-fv-tidal { fill: rgba(15, 23, 42, 0.05); stroke: #64748b; stroke-width: 1.4; stroke-dasharray: 3 2; }
.rar-topic-content .dov-fv-vline { stroke: rgba(122, 79, 208, 0.55); stroke-width: 1.2; stroke-dasharray: 4 3; }
.rar-topic-content .dov-fv-vlbl { fill: #5e3ea8; font-size: 9.5px; font-weight: 800; }
.rar-topic-content .dov-fv-fvc { stroke: #5e3ea8; stroke-width: 1.8; }

.rar-topic-content .dov-fv-head { fill: #111318; stroke: #fff; stroke-width: 1.5; opacity: 0; }

/* effort region shading (Page 5 reuse) + synced volume marker */
.rar-topic-content .dov-fv-region--dep { fill: rgba(10, 132, 255, 0.08); }
.rar-topic-content .dov-fv-region--indep { fill: rgba(217, 133, 0, 0.1); }
.rar-topic-content .dov-fv-region-lbl { fill: var(--muted-strong, #475467); font-size: 9px; font-weight: 800; }
.rar-topic-content .dov-fv-vmarker { fill: #111318; stroke: #fff; stroke-width: 1.8; transition: opacity 0.2s ease; }
