.route-viz{margin:32px 0 40px;padding:26px;border:1px solid #d4e0d7;border-radius:18px;background:linear-gradient(135deg,#f6faf7,#fff 60%);box-shadow:0 14px 44px #243d2910;overflow:hidden}
.route-viz .rv-eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#54725d;font-weight:700;margin:0 0 9px}
.route-viz h3{font-family:Unbounded,system-ui,sans-serif;font-size:clamp(17px,3vw,22px);line-height:1.45;margin:0 0 12px;letter-spacing:-.02em}
.route-viz .rv-intro{font-size:13px;line-height:1.6;margin:0 0 24px;color:#53685a}
.rv-row{--tone:#3f7a57;padding:18px 0;border-top:1px solid #dfe8e1}
.rv-row[data-kind="oral"]{--tone:#7e7550}.rv-row[data-kind="mucosa"]{--tone:#4d7c86}.rv-row[data-kind="unknown"]{--tone:#89958b}.rv-row[data-kind="slow"]{--tone:#727e9c}
.rv-label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;line-height:1.5}
.rv-label strong{font-weight:700;color:#203a2a}.rv-time{font-size:12px;color:var(--tone);font-weight:700;text-align:right}
.rv-path{font-size:11px;color:#6b7d71;line-height:1.6;margin-top:3px}
.rv-track{position:relative;height:32px;margin:10px 12px 2px}
.rv-track::before{content:"";position:absolute;top:15px;left:0;right:0;height:2px;background:#dae4dd;border-radius:2px}
.rv-track::after{content:"";position:absolute;right:-4px;top:12px;width:8px;height:8px;border-radius:50%;background:#e1e8e3;border:1px solid #b5c8bb}
.rv-trail{position:absolute;top:14px;left:0;width:100%;height:4px;background:linear-gradient(90deg,#dbe7df,var(--tone));transform-origin:left;border-radius:8px;opacity:.6}
.rv-molecule{position:absolute;left:100%;top:7px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0%,#edf5ef 14%,var(--tone) 62%);box-shadow:0 0 0 4px #ffffffbb,0 0 15px color-mix(in srgb,var(--tone),transparent 40%)}
.rv-molecule::before,.rv-molecule::after{content:"";position:absolute;width:5px;height:5px;background:var(--tone);border:1px solid #fff;border-radius:50%;top:-3px;left:-4px}.rv-molecule::after{top:14px;left:17px}
.rv-checkpoint{position:absolute;left:45%;top:10px;width:12px;height:12px;border:1px solid var(--tone);border-radius:3px;background:#f9faf7;transform:rotate(45deg)}
.rv-end{font-size:10px;color:#66806e;text-align:right;margin:0 8px 0 0}
.rv-row[data-kind="unknown"] .rv-track::before{height:0;border-top:2px dashed #bfcac2}.rv-row[data-kind="unknown"] .rv-track::after,.rv-row[data-kind="slow"] .rv-track::after{display:none}
.rv-row[data-kind="unknown"] .rv-trail{background:repeating-linear-gradient(90deg,transparent 0 12%,#acbcb0 12% 18%,transparent 18% 30%);opacity:.6}
.rv-row[data-kind="unknown"] .rv-molecule{left:50%}.rv-row[data-kind="slow"] .rv-molecule{left:72%}.rv-row[data-kind="slow"] .rv-trail{transform:scaleX(.72)}
.route-viz.rv-ready .rv-molecule{left:0}.route-viz.rv-ready .rv-trail{transform:scaleX(0)}
.route-viz .rv-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.rv-controls button{font:600 12px Manrope,system-ui,sans-serif;cursor:pointer;border:1px solid #bdd0c3;border-radius:30px;padding:10px 16px;background:#fff;color:#34583f;min-height:40px}.rv-controls button:hover{background:#eaf3ed}.rv-controls button:focus-visible{outline:2px solid #3f7a57;outline-offset:3px}.rv-controls button:disabled{opacity:.5;cursor:default}
.route-viz figcaption{font-size:11px;line-height:1.65;color:#64776a;margin-top:18px}.route-viz figcaption a{text-decoration:underline;text-underline-offset:2px}
@media(max-width:480px){.route-viz{padding:19px 16px}.rv-label{align-items:flex-start}.rv-label strong{max-width:57%;font-size:13px}.rv-time{max-width:43%;font-size:11px}.rv-path{font-size:10px}}
@media print{.rv-controls{display:none!important}.route-viz{break-inside:avoid;box-shadow:none}}
