/* Plugin-rendered personal cards retain their documented class contract. */
.fv-library-list .card { position: relative; min-width: 0; }
.fv-library-list .card__media { display: block; position: relative; overflow: hidden; background: var(--sy-surface-deep); }
.fv-library-list .card__poster { display: block; width: 100%; height: auto; aspect-ratio: var(--fv-thumb-aspect-ratio); object-fit: cover; }
.fv-library-list .card__body { display: flex; gap: 9px; align-items: start; padding: 10px 0; }
.fv-library-list .card__title { margin: 0; font-size: 15px; line-height: 1.25; }
.fv-library-list .card__title a:hover { color: var(--sy-accent); }
.fv-library-list .card-remove-btn { margin-left: auto; border: 1px solid var(--sy-border); background: transparent; color: var(--sy-text-muted); width: 28px; height: 28px; padding: 6px; border-radius: 0; }
.fv-library-list .card-remove-btn:hover { color: var(--sy-text-on-accent); border-color: var(--sy-accent); background: var(--sy-accent); }
.fv-library-list .remove-icon { display: block; width: 100%; height: 100%; }
body.switchyard-panel-open { overflow: hidden; }

/* Signal red reserves route state and explicit calls to action; quiet text uses the material scale. */
:root { --sy-focus: var(--sy-paper); }
.route-nav button:focus-visible,
.route-nav a:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible { outline-color: var(--sy-focus); }
.video-card__title a:hover,
.footer-links a:hover { color: var(--sy-paper); }
