/* Residential course visuals; no shared course rules are changed. */
.cv-table-viewport { max-width:100%; overflow-x:auto; margin:1rem 0; }
.cv-table-viewport table { min-width:600px; margin:0; }
.cv-table-viewport:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
[data-new-visual] .cv-box { fill:var(--tint); stroke:var(--accent); stroke-width:1.5; }
[data-new-visual] .cv-structure { fill:none; stroke:var(--muted); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
[data-new-visual] .cv-trace { fill:none; stroke:var(--accent-warm); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
[data-new-visual] .cv-label, [data-new-visual] .cv-center { font:600 17px system-ui,sans-serif; fill:var(--ink); }
[data-new-visual] .cv-note, [data-new-visual] .cv-center-note { font:14px system-ui,sans-serif; fill:var(--muted); }
[data-new-visual] .cv-center, [data-new-visual] .cv-center-note { text-anchor:middle; }
@media print { .cv-table-viewport { overflow:visible; } .cv-table-viewport table { min-width:0; } }

[data-new-visual] .cv-zone { fill:var(--accent-warm); opacity:.18; }
/* Separate the inherited two-line shield label without changing its wording. */
figure.course-fig .pl1-onfill[y="118"] { transform:translateY(3px); }
