.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
#shows-dialog{width:min(1120px,calc(100vw - 40px));max-width:none;height:min(860px,calc(100dvh - 48px));max-height:none;padding:0;border:1px solid #a7bac03d;border-radius:22px;background:#11191ef5;color:#edf2f5;overflow:hidden;box-shadow:0 30px 120px #0009}
#shows-dialog[open]{display:flex;flex-direction:column}
#shows-dialog::backdrop{background:#03090bd6;backdrop-filter:blur(16px)}
.library-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 0;gap:12px;flex-shrink:0}
.library-header .eyebrow{font-size:11px;letter-spacing:.2em;color:#a6beb0}
.library-header .icon-button{border:1px solid #ffffff40;width:36px;height:36px;flex-shrink:0}
.library-heading{padding:8px 26px 16px;flex-shrink:0}
#shows-title{font-size:clamp(24px,4vw,34px);line-height:1.2;letter-spacing:-.03em;margin:6px 0}
#shows-subtitle{font-size:14px;line-height:1.5;color:#aebfc4;margin:8px 0 0;max-width:75ch}
.library-search{display:block;margin-top:20px}
#shows-search{width:100%;height:44px;border:1px solid #bac9d15c;border-radius:24px;background:#050e14;color:#edf2f5;font:inherit;padding:0 18px;outline:none}
#shows-search:focus{border-color:#b4e4cd}
.library-scroll{overflow:auto;min-height:0;padding:0 26px 26px;scrollbar-width:none;overscroll-behavior:contain;scroll-behavior:smooth}
.library-scroll::-webkit-scrollbar{display:none}
#shows-status{display:flex;align-items:center;gap:12px;margin:4px 0 18px;color:#b4c4c9;font-size:13px}
.library-grid,.library-episodes,.library-activity{list-style:none;padding:0;margin:0}
.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.library-grid>li{min-width:0}
.library-show{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;height:100%;min-height:158px;border:1px solid #b4c5cb33;border-radius:14px;padding:20px;background:linear-gradient(140deg,#21322b80,#15232a80);transition:background .2s,border-color .2s}
.library-show:not(:disabled):hover{background:#293f38;border-color:#96d9b990}
.library-show:disabled{opacity:.5}
.library-channel{font-size:10px;color:#83d3a8;letter-spacing:.13em;text-transform:uppercase;margin-bottom:14px}
.library-show-title{font-size:19px;line-height:1.25;letter-spacing:-.025em}
.library-logline{font-size:13px;color:#b9c9cd;line-height:1.5;margin:10px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.library-meta{font-size:12px;color:#a6b7bf;line-height:1.5}
.library-show>.library-meta{margin-top:auto;padding-top:14px}
.library-pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #b5c5ce70;background:#1d2a3280;padding:7px 13px;border-radius:999px;font-size:12px;white-space:nowrap}
.library-pill:hover{background:#ffffff23;border-color:#d5e4e8}
.library-episode-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}
.library-episode-heading h3,.library-playback h3{font-size:16px;font-weight:600;margin:12px 0}
.library-reruns{display:flex;align-items:center;gap:7px;font-size:12px;color:#b9c9ce;white-space:nowrap}
.library-reruns input{accent-color:#79eea5;width:16px;height:16px}
.library-episodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.library-episode{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100%;height:100%;padding:16px;border:1px solid #b5c5ce40;border-radius:12px;background:#18252c;text-align:left}
.library-episode:hover{background:#27373c;border-color:#bed8d3}
.library-episode[aria-pressed=true]{background:#203e32;border-color:#79eea5}
.library-episode strong{font-size:14px}
.library-episode-action{font-size:12px;color:#a0dfbe;margin-top:6px}
.library-playback{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr);gap:18px;margin:4px 0 24px;scroll-margin-top:6px}
.library-video{display:block;width:100%;aspect-ratio:16/9;background:#05090d;border:1px solid #829f9850;border-radius:12px;object-fit:contain}
.library-player-status{font-size:13px;color:#c2d0d5;padding:10px 0}
.library-chapters{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.library-activity-panel{min-width:0}
.library-activity-panel>h3{margin-top:0}
.library-activity{max-height:400px;overflow:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:9px;overscroll-behavior:contain}
.library-activity::-webkit-scrollbar{display:none}
.library-event{border:1px solid color-mix(in srgb,var(--creator-color,#8eb3a8) 48%,transparent);border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--creator-color,#8eb3a8) 9%,#111b23);position:relative;isolation:isolate}
.library-event-jump{display:block;width:100%;padding:12px;text-align:left;background:transparent}
button.library-event-jump:hover{background:#ffffff0c}
.library-event-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--creator-color,#b4d7c4)}
.library-event-state{font-size:11px;color:#b7c5ce}
.library-event p{margin:5px 0 0;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.library-wish p{font-style:italic}
.library-clip-link{display:inline-block;padding:0 12px 10px;font-size:11px;text-decoration:underline;color:#bfced5}
.library-event.is-playing{border-color:var(--creator-color,#b4d7c4);background:color-mix(in srgb,var(--creator-color,#8eb3a8) 22%,#111b23)}
.library-event.is-playing:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 25%,#ffffff24 50%,transparent 75%);background-size:300% 100%;animation:library-shimmer 7s linear infinite}
@keyframes library-shimmer{from{background-position:150% 0}to{background-position:-150% 0}}
.channel-show .library-pill{margin-top:10px;position:relative;z-index:2}
body.desktop-theater.history-overlay-open :is(.header-actions,.header-actions *,#shows-dialog,#shows-dialog *){pointer-events:auto!important}
@media(max-width:800px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-playback{grid-template-columns:1fr}.library-activity{max-height:260px}}
@media(max-width:600px){
 .header-actions{gap:7px}
 #shows-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px);border-radius:18px}
 .library-header{padding:12px 16px 0}.library-heading{padding:6px 16px 14px}.library-scroll{padding:0 16px 20px}
 .library-grid,.library-episodes{grid-template-columns:1fr}.library-show{min-height:130px;padding:17px}.library-search{margin-top:15px}
 #shows-subtitle{font-size:13px;max-height:84px;overflow:auto}.library-video{border-radius:10px}.library-playback{gap:14px}
}
/* ── A PERSON'S OWN WISHES ON AN EPISODE ─────────────────────────────────────────────────────────────────────────
   The composer sits directly under the picture, in the same shape as the live channel's wish box, because a person
   watching has their attention on the frame and already knows that control (Drift, 2026-09-23: "if it is somewhere
   else I will not find it, and worse, I will assume the feature is not there"). The list under it is what makes a
   wish keepable — it is the feature, not a receipt. */
.library-wish-panel{margin-top:18px;border-top:1px solid #829f9830;padding-top:14px}
.library-wish-panel>h3{margin:0 0 10px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#b4d7c4}
.library-wish-form{display:flex;gap:8px;align-items:center}
.library-wish-form input{flex:1 1 auto;min-width:0;padding:10px 12px;font:inherit;font-size:13px;color:#eaf3f0;background:#0b1419;border:1px solid #829f9850;border-radius:10px}
.library-wish-form input:focus-visible{outline:2px solid #b4d7c4;outline-offset:1px}
.library-wish-form button{flex:0 0 auto}
#library-wish-line{margin:10px 0 0;font-size:12px;line-height:1.45;color:#b4d7c4}
.library-wish-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px;max-height:280px;overflow:auto}
.library-wish-list>li{position:relative;z-index:0;border:1px solid #829f9838;border-radius:12px;background:#0d161d;overflow:hidden}
.library-wish-list>li.is-ready{border-color:#b4d7c4}
.library-wish-list .library-event-jump{display:block;width:100%;padding:12px;text-align:left;background:transparent;border:0;color:inherit;font:inherit}
.library-wish-list button.library-event-jump{cursor:pointer}
.library-wish-list button.library-event-jump:hover{background:#ffffff0c}
.library-wish-list p{margin:5px 0 0;font-size:13px;font-style:italic;line-height:1.45;overflow-wrap:anywhere}
/* the wish plays in its OWN element, IN THE PICTURE: the stage sits over the episode's frame, same box, while the
   episode stays mounted and paused beneath it (Raina: "in the frame of the other video, not below it") */
.library-screen{position:relative}
.library-wish-stage:not([hidden]){position:absolute;inset:0;z-index:2;display:block;background:#05090d;border-radius:12px;overflow:hidden}
.library-wish-video{display:block;width:100%;height:100%;background:#05090d;border:1px solid #b4d7c4;border-radius:12px;object-fit:contain}
.library-wish-stage .library-meta{position:absolute;left:12px;right:12px;bottom:10px;margin:0;font-size:12px;color:#b4d7c4;text-shadow:0 1px 2px #000c;pointer-events:none}
@media(max-width:600px){.library-wish-video,.library-wish-stage:not([hidden]){border-radius:10px}.library-wish-form{flex-wrap:wrap}.library-wish-form input{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.library-scroll{scroll-behavior:auto}.library-event.is-playing:before{animation:none}}
.library-wish-why{margin:14px 0 0;padding-top:12px;border-top:1px solid #829f9830;font-size:12px;color:#99a2ab}

/* Sonar, 2026-09-23: while the library is open the channel's live wish feed is hidden, not labelled — beside a
   recording of a real person, "Wish activity is reconnecting…" is the worst sentence in the product */
body:has(#shows-dialog[open]) #live-dock,body:has(#shows-dialog[open]) #show-history{display:none!important}
