body.tvi-shelf { --ivory-muted: #beb6aa; }
.tvi-shelf [hidden] { display: none !important; }
.tvi-shelf .wrap { max-width: 1000px; padding-inline: clamp(20px,4vw,40px); }
.tvi-shelf .sh-hero { text-align: left; padding: 40px 0 28px; }
.tvi-shelf .sh-hero h1 { font-size: clamp(38px,5vw,54px); }
.tvi-shelf .sh-hero p { margin: 0; max-width: 600px; font-size: 16px; font-weight: 400; }
.tvi-shelf .sh-eyebrow { font-size: 12px; }
.tvi-shelf .sh-empty { border: 1px solid #4b3d32; border-radius: 12px; background: #211d19; font-size: 16px; line-height: 1.7; }
.tvi-shelf .sh-tag { min-height: 44px; font-size: 13px; padding: 10px 14px; border-color: #645345; }
.tvi-shelf .sh-count { margin-top: 14px; font-size: 14px; }
.tvi-shelf .sh-card { padding: 20px; border-color: #4a3b30; }
.tvi-shelf .sh-name { font-size: 25px; line-height: 1.3; display: inline-block; }
.tvi-shelf .sh-meta { font-size: 13px; line-height: 1.7; margin-top: 6px; }
.tvi-shelf .sh-poster,.tvi-shelf .sh-poster-fb { width: 64px; height: 96px; }
.tvi-shelf .sh-select { font-size: 16px; min-height: 44px; max-width: 100%; color: #e1d4c3; border-color: #76604e; }
.tvi-shelf .sh-remove { font-size: 13px; min-height: 44px; padding: 8px 12px; color: #d2bfae; }
.tvi-shelf .sh-export { min-height: 44px; }
.tvi-shelf .sh-capture { max-width: 580px; }
.tvi-shelf .sh-capture h2 { font-size: 28px; }
.tvi-shelf .sh-capture p { font-size: 14px; line-height: 1.6; }
.tvi-shelf .sh-capture label { flex-basis: 100%; text-align: left; font-size: 14px; color: #d0c4b5; }
.tvi-shelf .sh-capture input { min-width: 0; font-size: 16px; min-height: 48px; }
.tvi-shelf .sh-capture button { min-height: 48px; }
.tvi-shelf :is(a,button,input,select):focus-visible { outline: 2px solid #eba18a; outline-offset: 4px; }
.tvi-shelf .shelf-skip { position: fixed; top: -100px; left: 20px; z-index: 10001; background: #f5f0e8; color: #211912; padding: 12px 18px; }
.tvi-shelf .shelf-skip:focus { top: 12px; }
@media(max-width: 560px) {
  .tvi-shelf .sh-card { padding: 16px; gap: 14px; }
  .tvi-shelf .sh-controls { gap: 8px; }
  .tvi-shelf .sh-select { min-width: 0; flex: 1; }
  .tvi-shelf .sh-capture { padding: 24px 18px; }
  .tvi-shelf .sh-capture input,.tvi-shelf .sh-capture button { flex-basis: 100%; }
}
@media(prefers-reduced-motion: reduce) { .tvi-shelf * { animation: none !important; transition: none !important; } }
