/* Component styles for the shared watch-page core (static/watch-core.js), taken
   unchanged from the Classic watch page so every part behaves the same: chat,
   embeds, emote picker, user cards, moderation menu, in-player guide, status
   overlays. The Browse theme points their CSS variables at its own colours
   (see browse.css, body.bx-theatre) and adds its own layout on top.
   Generated from templates/index.html; page layout, the classic control bar
   and the top bar are left out. */
.stream-reconnect{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:7;display:none;align-items:center;gap:8px;background:rgba(0,0,0,0.72);border:1px solid var(--border);color:#fff;font-family:var(--font-mono);font-size:0.62rem;letter-spacing:1.5px;text-transform:uppercase;padding:7px 14px;pointer-events:none;}
.stream-reconnect.on{display:flex;}
.stream-reconnect i{width:11px;height:11px;border:2px solid rgba(255,255,255,0.3);border-top-color:var(--accent);border-radius:50%;animation:sr-spin .8s linear infinite;}
@keyframes sr-spin{to{transform:rotate(360deg);}}
.upnext-pill{position:absolute;left:14px;bottom:14px;z-index:6;display:none;max-width:min(70%,460px);background:rgba(0,0,0,0.72);border:1px solid var(--border);border-left:3px solid var(--accent);color:#fff;font-family:var(--font-body);font-size:0.8rem;padding:8px 14px;pointer-events:none;}
.upnext-pill.on{display:block;}
.upnext-pill b{font-family:var(--font-mono);font-size:0.62rem;letter-spacing:1.5px;color:var(--accent);text-transform:uppercase;margin-right:8px;}
.cb-slot-count{font-family:var(--font-mono);font-size:0.56rem;color:var(--text-dim);flex-shrink:0;white-space:nowrap;}
.video-wrap iframe,.video-wrap video{width:100%;height:100%;border:none;display:block;transition:all 0.35s cubic-bezier(0.4,0,0.2,1);object-fit:contain;background:#000;}
.video-wrap.pip-mode iframe,.video-wrap.pip-mode video{position:absolute;top:16px;right:16px;width:280px;height:158px;border:2px solid var(--border);box-shadow:0 8px 32px rgba(0,0,0,0.7);z-index:10;}
.player-overlay{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(rgba(0,0,0,0.75),rgba(0,0,0,0.75)),url('/static/slate.png') center/cover;color:#fff;text-align:center;padding:20px;}
.player-overlay-title{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--tb-warn);}
.player-overlay-sub{font-size:0.8rem;color:#c8ccd4;}
.next-overlay{position:absolute;inset:0;z-index:8;display:none;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(ellipse at 50% 30%,#101a2c 0%,#0a0e14 70%);color:#e8f0f8;overflow-y:auto;}
.next-inner{width:100%;max-width:640px;display:flex;flex-direction:column;gap:14px;margin:auto;}
.next-brand{font-family:var(--font-display,var(--font-mono));font-size:1.9rem;letter-spacing:3px;color:var(--accent);line-height:1;}
.next-brand span{color:#e08030;}
.next-tag{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:2px;font-weight:700;color:#e05565;text-transform:uppercase;}
.next-hold{border-left:3px solid #e05565;background:rgba(20,30,50,0.9);padding:12px 14px;font-size:1rem;font-weight:600;line-height:1.4;word-break:break-word;}
.next-hold small{display:block;margin-top:6px;font-size:0.78rem;font-weight:600;color:#fbbf24;}
.next-label{font-family:var(--font-mono);font-size:0.62rem;letter-spacing:3px;color:var(--accent);text-transform:uppercase;border-bottom:1px solid rgba(77,168,218,0.25);padding-bottom:6px;}
.next-row{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-left:3px solid transparent;}
.next-row.first{background:rgba(20,30,50,0.9);border-left-color:#fbbf24;}
.next-when{font-family:var(--font-mono);font-size:0.78rem;font-weight:700;color:var(--accent);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.next-row.first .next-when{color:#fbbf24;}
.next-title{font-size:0.95rem;color:#b4c8dc;word-break:break-word;}
.next-row.first .next-title{color:#fff;font-size:1.1rem;font-weight:600;}
.next-empty{font-size:0.85rem;color:#4a6080;text-align:center;padding:14px 0;}
@media (min-width:681px){
  .video-wrap.chat-open .next-overlay{right:25%;}
}
@media (max-width:680px){
  .video-wrap.chat-open .next-overlay{bottom:50%;}
  .next-brand{font-size:1.4rem;}
  .next-hold{font-size:0.9rem;}
}
video:fullscreen,video:-webkit-full-screen{width:100%;height:100%;object-fit:contain;background:#000;}
#stream-video.pseudo-fullscreen{position:fixed;inset:0;width:100vw;height:100vh;z-index:9999;object-fit:contain;background:#000;}
@keyframes livepulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.3;transform:scale(0.8);}}
.cb-viewer-count{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:0.62rem;color:var(--text-dim);flex-shrink:0;white-space:nowrap;margin-left:auto;}
.cb-viewer-dot{width:5px;height:5px;border-radius:50%;background:var(--accent2);flex-shrink:0;}
.slide-panel{position:absolute;left:0;right:0;bottom:0;background:var(--overlay);backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);border-top:1px solid rgba(77,168,218,0.22);transform:translateY(102%);transition:transform 0.32s cubic-bezier(0.4,0,0.2,1);z-index:100;overflow:hidden;}
.slide-panel.open{transform:translateY(0);}
#guide-panel{height:min(460px,calc(100% - 20px));}
#chat-panel{height:min(420px,calc(100% - 20px));}
@media (min-width:681px){
  .video-wrap.chat-open iframe,.video-wrap.chat-open video{width:75%;}
  #chat-panel{left:auto;right:0;top:0;bottom:0;height:auto;width:25%;
    transform:translateX(102%);border-top:none;border-left:1px solid rgba(77,168,218,0.22);}
  #chat-panel.open{transform:translateX(0);}
  .video-wrap.chat-open .video-unmute-btn{right:calc(25% + 14px);}
}
.guide-inner{display:flex;flex-direction:column;height:100%;}
.guide-header{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(77,168,218,0.15);flex-shrink:0;gap:12px;}
.guide-header-title{font-family:var(--font-mono);font-size:0.6rem;letter-spacing:3px;color:var(--accent);text-transform:uppercase;}
.idx-guide-search-wrap{flex:1;min-width:0;margin-left:auto;max-width:220px;}
.idx-guide-search-wrap .guide-search-input{width:100%;}
.guide-time-now{font-family:var(--font-mono);font-size:0.6rem;color:var(--text-dim);margin-left:auto;white-space:nowrap;}
.guide-full-week-link{font-family:var(--font-mono);font-size:0.6rem;color:var(--accent);text-transform:uppercase;letter-spacing:0.5px;cursor:pointer;text-decoration:none;white-space:nowrap;flex-shrink:0;}
.guide-full-week-link:hover{color:var(--text-bright);text-decoration:underline;}
.guide-grid-wrap{flex:1;overflow:auto;position:relative;}
.guide-grid-wrap::-webkit-scrollbar{width:4px;height:4px;}
.guide-grid-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.chat-inner{display:flex;flex-direction:column;height:100%;}
.chat-header{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(77,168,218,0.15);flex-shrink:0;gap:12px;}
.chat-header-title{font-family:var(--font-mono);font-size:0.6rem;letter-spacing:3px;color:var(--accent);text-transform:uppercase;}
.chat-header-btn{background:none;border:1px solid var(--border);color:var(--text-dim);font-size:0.72rem;line-height:1;cursor:pointer;padding:4px 7px;border-radius:5px;margin-left:8px;}
.chat-header-btn:hover{color:var(--text-bright);border-color:var(--text-dim);}
.chat-header-btn.active{color:var(--accent);border-color:var(--accent);background:rgba(77,168,218,0.12);}
.chat-viewers-list{flex:1;overflow-y:auto;padding:10px 14px;}
.chat-viewers-user{font-size:0.82rem;color:var(--text-bright);padding:7px 0;border-bottom:1px solid rgba(77,168,218,0.08);}
.chat-viewers-user-clickable{cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px;}
.chat-viewers-user-clickable:hover{color:var(--accent);}
.chat-viewers-anon{font-size:0.75rem;color:var(--text-dim);padding:7px 0;font-style:italic;}
.chat-viewers-empty{font-size:0.78rem;color:var(--text-dim);padding:8px 0;}
.chat-embed-row{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-bottom:1px solid rgba(77,168,218,0.15);flex-shrink:0;}
.chat-embed-row:empty{display:none;}
.chat-embed-pill{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text-dim);font-size:0.68rem;font-weight:600;padding:4px 9px;border-radius:14px;cursor:pointer;white-space:nowrap;}
.chat-embed-pill:hover{background:rgba(255,255,255,0.12);color:var(--text-bright);}
.chat-embed-pill.active{border-color:var(--accent);color:var(--text-bright);background:rgba(77,168,218,0.15);}
.chat-embed-pill.has-remove{padding-right:3px;}
.chat-embed-pill-label{display:flex;align-items:center;gap:5px;background:none;border:none;color:inherit;font:inherit;padding:0;cursor:pointer;}
.chat-embed-pill-remove{background:none;border:none;color:var(--text-dim);font-size:0.85rem;line-height:1;cursor:pointer;padding:2px 5px;border-radius:50%;margin-left:1px;}
.chat-embed-pill-remove:hover{color:#fff;background:var(--danger);}
.chat-embed-badge{width:7px;height:7px;border-radius:2px;flex-shrink:0;}
.chat-embed-badge.badge-twitch{background:#9146FF;}
.chat-embed-badge.badge-kick{background:#53FC18;}
.chat-embed-badge.badge-youtube{background:#FF0000;}
.chat-messages{flex:1;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:6px;}
.chat-messages::-webkit-scrollbar{width:4px;}
.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.chat-msg{font-size:0.8rem;line-height:1.4;word-break:break-word;position:relative;padding-right:20px;}
.chat-msg-time{font-size:0.65rem;color:var(--text-dim);margin-right:5px;white-space:nowrap;}
.chat-msg-user{font-weight:700;color:var(--accent);margin-right:6px;}
.chat-msg-user-mod{cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px;}
.chat-msg-user-mod:hover{color:#fff;}
.chat-msg-body{color:var(--text-bright);}
.chat-msg-del{position:absolute;top:0;right:0;background:none;border:none;color:var(--text-dim);font-size:0.68rem;cursor:pointer;opacity:0.5;padding:2px;}
.chat-msg-del:hover{opacity:1;color:var(--danger);}
.chat-emote{height:1.85em;width:auto;vertical-align:middle;margin:-0.25em 1px;}
.chat-compose{position:relative;}
.chat-compose .chat-emote-btn{background:var(--panel2);border:1px solid var(--border);color:var(--text-dim);font-size:1rem;padding:0 9px;line-height:1;}
.chat-compose .chat-emote-btn:hover{color:var(--text-bright);border-color:var(--accent);filter:none;}
.chat-emote-pop{display:none;position:absolute;left:10px;right:10px;bottom:calc(100% - 2px);z-index:40;background:var(--panel2);border:1px solid var(--border);border-radius:8px;box-shadow:0 -6px 24px rgba(0,0,0,0.45);padding:8px;}
.chat-emote-pop.open{display:block;}
.chat-emote-pop input{width:100%;box-sizing:border-box;margin-bottom:8px;background:var(--panel);border:1px solid var(--border);color:var(--text-bright);font-size:0.76rem;padding:6px 8px;border-radius:4px;outline:none;}
.chat-emote-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:4px;max-height:190px;overflow-y:auto;}
.chat-compose .chat-emote-grid button{background:transparent;border:1px solid transparent;padding:3px;height:38px;border-radius:5px;display:flex;align-items:center;justify-content:center;}
.chat-compose .chat-emote-grid button:hover{background:rgba(255,255,255,0.08);border-color:var(--border);filter:none;}
.chat-emote-grid img{max-height:30px;max-width:34px;width:auto;height:auto;}
.chat-emote-empty{grid-column:1/-1;color:var(--text-dim);font-size:0.72rem;padding:8px 2px;}
.chat-announce{display:none;flex-shrink:0;gap:9px;align-items:flex-start;margin:8px 10px 0;padding:9px 10px;border-radius:8px;border:1px solid rgba(217,119,6,0.5);background:rgba(217,119,6,0.13);font-size:0.78rem;line-height:1.4;color:var(--text-bright);}
.chat-announce.show{display:flex;}
.chat-announce-icon{font-size:0.95rem;line-height:1.25;flex-shrink:0;}
.chat-announce-body{flex:1;min-width:0;white-space:pre-wrap;word-break:break-word;max-height:8em;overflow-y:auto;}
.chat-announce-body a{color:var(--accent);text-decoration:underline;}
.chat-announce-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;}
.chat-announce-x,.chat-announce-edit{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:0.8rem;line-height:1;padding:2px 4px;text-decoration:none;border-radius:4px;}
.chat-announce-x:hover,.chat-announce-edit:hover{color:var(--text-bright);background:rgba(255,255,255,0.08);}
.chat-user-card{position:fixed;z-index:600;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px;box-shadow:0 8px 32px rgba(0,0,0,0.5);min-width:220px;max-width:260px;display:flex;flex-direction:column;gap:6px;}
.chat-user-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:2px;cursor:move;touch-action:none;}
.chat-user-card-title-wrap{display:flex;align-items:center;gap:6px;min-width:0;}
.chat-user-card-title{font-weight:700;color:var(--text-bright);font-size:0.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chat-user-card-role{font-size:0.55rem;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;padding:2px 6px;border-radius:3px;flex-shrink:0;display:none;}
.chat-user-card-role.role-owner{display:inline;color:#1a1206;background:var(--tb-warn,#e0b95a);}
.chat-user-card-role.role-admin{display:inline;color:#06121a;background:var(--accent);}
.chat-user-card-role.role-user{display:inline;color:var(--text-dim);background:rgba(255,255,255,0.08);}
.chat-user-card-close{background:none;border:none;color:var(--text-dim);font-size:1.1rem;line-height:1;cursor:pointer;padding:0 4px;}
.chat-user-card-close:hover{color:var(--text-bright);}
.chat-user-card-status{font-size:0.7rem;color:var(--text-dim);line-height:1.4;}
.chat-user-card-messages{max-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;background:rgba(0,0,0,0.2);border-radius:5px;padding:5px;}
.chat-user-card-msg{font-size:0.7rem;color:var(--text-bright);line-height:1.3;}
.chat-user-card-msg-time{color:var(--text-dim);font-size:0.6rem;margin-right:4px;}
.chat-user-card-msg-empty{font-size:0.7rem;color:var(--text-dim);font-style:italic;}
.chat-user-card-section-label{font-size:0.6rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);margin-top:4px;}
.chat-user-card-row{display:flex;gap:4px;}
.chat-user-card-row button{flex:1;background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text-bright);font-size:0.7rem;padding:6px 4px;border-radius:5px;cursor:pointer;}
.chat-user-card-row button:hover{background:rgba(255,255,255,0.12);}
.chat-user-card-unmute{background:none;border:1px solid var(--border);color:var(--text-dim);font-size:0.72rem;padding:6px;border-radius:5px;cursor:pointer;}
.chat-user-card-unmute:hover{color:var(--text-bright);border-color:var(--text-dim);}
.chat-user-card-ban{background:rgba(224,90,90,0.12);border:1px solid var(--danger);color:var(--danger);font-size:0.74rem;font-weight:600;padding:7px;border-radius:5px;cursor:pointer;}
.chat-user-card-ban:hover{background:var(--danger);color:#fff;}
.chat-user-card-unban{background:none;border:1px solid var(--border);color:var(--text-dim);font-size:0.72rem;padding:6px;border-radius:5px;cursor:pointer;margin-top:4px;}
.chat-user-card-unban:hover{color:var(--text-bright);border-color:var(--text-dim);}
.chat-compose{display:flex;gap:8px;padding:10px 14px;border-top:1px solid rgba(77,168,218,0.15);flex-shrink:0;}
.chat-compose input{flex:1;background:var(--panel2);border:1px solid var(--border);color:var(--text-bright);font-family:var(--font-body);font-size:0.82rem;padding:8px 10px;border-radius:4px;outline:none;}
.chat-compose input:focus{border-color:var(--accent);}
.chat-compose input:disabled{opacity:0.6;cursor:not-allowed;}
.chat-compose button{background:var(--accent);border:none;color:#06121a;font-weight:700;font-size:0.76rem;padding:0 16px;border-radius:4px;cursor:pointer;}
.chat-compose button:hover{filter:brightness(1.1);}
.chat-compose button:disabled{opacity:0.5;cursor:not-allowed;filter:none;}
.chat-mod-cog{background:none!important;border:1px solid var(--border)!important;color:var(--text-dim)!important;font-size:0.9rem!important;padding:0 12px!important;flex-shrink:0;}
.chat-mod-cog:hover{color:var(--text-bright)!important;border-color:var(--text-dim)!important;filter:none!important;}
.chat-mod-cog.active{color:var(--accent)!important;border-color:var(--accent)!important;}
.chat-mod-menu{position:fixed;z-index:600;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px;box-shadow:0 8px 32px rgba(0,0,0,0.5);width:220px;display:flex;flex-direction:column;gap:6px;}
.chat-mod-menu-title{font-weight:700;color:var(--text-bright);font-size:0.8rem;margin-bottom:2px;}
.chat-mod-menu-label{font-size:0.6rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);margin-top:4px;}
.chat-mod-menu-row{display:flex;gap:4px;flex-wrap:wrap;}
.chat-mod-menu-row button{flex:1;min-width:38px;background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text-bright);font-size:0.7rem;padding:6px 4px;border-radius:5px;cursor:pointer;}
.chat-mod-menu-row button:hover{background:rgba(255,255,255,0.12);}
.chat-mod-menu-row button.active{border-color:var(--accent);color:var(--accent);background:rgba(77,168,218,0.15);}
.chat-mod-menu-toggle{background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text-bright);font-size:0.76rem;font-weight:600;padding:8px;border-radius:5px;cursor:pointer;text-align:left;}
.chat-mod-menu-toggle:hover{background:rgba(255,255,255,0.12);}
.chat-mod-menu-toggle.on{border-color:var(--tb-warn,#e0b95a);color:var(--tb-warn,#e0b95a);}
.chat-mod-menu-clear{background:rgba(224,90,90,0.12);border:1px solid var(--danger);color:var(--danger);font-size:0.76rem;font-weight:600;padding:8px;border-radius:5px;cursor:pointer;margin-top:2px;}
.chat-mod-menu-clear:hover{background:var(--danger);color:#fff;}
.chat-signin-cta{padding:14px;text-align:center;border-top:1px solid rgba(77,168,218,0.15);flex-shrink:0;}
.chat-signin-cta a{color:var(--accent);font-size:0.8rem;font-weight:600;text-decoration:none;border-bottom:1px dotted var(--accent);}
.embed-modal-overlay{position:fixed;inset:0;z-index:700;background:rgba(0,0,0,0.6);display:none;align-items:center;justify-content:center;padding:16px;}
.embed-modal-overlay.open{display:flex;}
.embed-modal{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:18px;width:100%;max-width:340px;box-shadow:0 12px 48px rgba(0,0,0,0.55);display:flex;flex-direction:column;gap:14px;}
.embed-modal-head{display:flex;align-items:center;justify-content:space-between;}
.embed-modal-title{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--accent);}
.embed-modal-close{background:none;border:none;color:var(--text-dim);font-size:1.2rem;line-height:1;cursor:pointer;padding:0 4px;}
.embed-modal-close:hover{color:var(--text-bright);}
.embed-platform-row{display:flex;gap:6px;}
.embed-platform-btn{flex:1;background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text-bright);font-size:0.76rem;font-weight:600;padding:8px 4px;border-radius:6px;cursor:pointer;}
.embed-platform-btn:hover{background:rgba(255,255,255,0.12);}
.embed-platform-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(77,168,218,0.15);}
.embed-modal-field{display:flex;flex-direction:column;gap:5px;}
.embed-modal-label{font-size:0.68rem;letter-spacing:0.5px;text-transform:uppercase;color:var(--text-dim);}
.embed-modal-input{width:100%;background:var(--panel3);border:1px solid var(--border);color:var(--text-bright);font-family:var(--font-body);font-size:0.85rem;padding:9px 10px;border-radius:5px;outline:none;}
.embed-modal-input:focus{border-color:var(--accent);}
.embed-modal-hint{font-size:0.68rem;color:var(--text-dim);line-height:1.4;}
.embed-modal-error{font-size:0.72rem;color:var(--danger);display:none;}
.embed-modal-actions{display:flex;gap:8px;justify-content:flex-end;}
.embed-modal-btn{background:none;border:1px solid var(--border);color:var(--text-dim);font-size:0.76rem;font-weight:600;padding:8px 16px;border-radius:6px;cursor:pointer;}
.embed-modal-btn:hover{color:var(--text-bright);border-color:var(--text-dim);}
.embed-modal-btn.primary{background:var(--accent);border-color:var(--accent);color:#06121a;}
.embed-modal-btn.primary:hover{filter:brightness(1.1);}
.remind-star{background:none;border:none;cursor:pointer;font-size:1rem;line-height:1;padding:2px;color:var(--text-dim);flex-shrink:0;}
.remind-star:hover{color:var(--accent);}
.remind-star.on{color:var(--tb-warn);}
.remind-star:disabled{opacity:0.5;cursor:default;}
.guide-row .remind-star,.guide-now-badge{margin-left:auto;}
.guide-prog-block .remind-star{position:absolute;top:4px;right:4px;}
.guide-prog-block{position:relative;}
.guide-grid{display:flex;flex-direction:column;min-width:max-content;}
.guide-empty{padding:32px;text-align:center;font-family:var(--font-mono);font-size:0.7rem;color:var(--text-dim);}
.guide-ch-num{font-family:var(--font-mono);font-size:0.55rem;color:var(--accent);letter-spacing:1px;flex-shrink:0;}
.guide-ch-name{font-family:var(--font-body);font-size:0.82rem;font-weight:700;color:var(--text-bright);}
.guide-ruler-row{display:flex;align-items:stretch;position:sticky;top:0;z-index:20;background:var(--guide-ruler-bg);border-bottom:2px solid var(--border);}
.guide-corner{width:120px;flex-shrink:0;display:flex;align-items:center;padding:7px 14px;border-right:2px solid var(--border);font-family:var(--font-mono);font-size:0.58rem;letter-spacing:2px;color:var(--accent);text-transform:uppercase;background:var(--guide-head-bg);position:sticky;left:0;z-index:30;}
.guide-ruler{display:flex;align-items:stretch;flex-shrink:0;}
.guide-ruler-slot{width:var(--col-w);flex-shrink:0;display:flex;align-items:center;padding:7px 10px;border-right:1px solid rgba(26,58,92,0.5);font-family:var(--font-mono);font-size:0.62rem;color:var(--text-bright);font-weight:600;letter-spacing:0.5px;}
.guide-ch-row{display:flex;align-items:stretch;border-bottom:1px solid rgba(26,58,92,0.45);min-height:54px;flex-shrink:0;}
.guide-ch-label{width:120px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;padding:8px 14px;border-right:2px solid var(--border);background:var(--guide-head-bg);position:sticky;left:0;z-index:10;}
.guide-ch-label .guide-ch-name{margin-top:2px;}
.guide-progs{display:flex;align-items:stretch;position:relative;}
.guide-prog-block{flex-shrink:0;
  display:flex;flex-direction:column;justify-content:center;
  padding:6px 10px;
  border-right:1px solid rgba(26,58,92,0.5);
  overflow:hidden;
  cursor:default;
  transition:background 0.12s;
  min-width:0;}
.guide-prog-block:hover{background:rgba(77,168,218,0.08);}
.guide-prog-block.now-block{background:var(--now-bg);
  border-left:3px solid var(--now-border);
  padding-left:7px;}
.guide-prog-block.now-block .gpb-time{color:var(--now-time);}
.guide-prog-block.now-block .gpb-title{color:var(--now-title);}
.guide-prog-block.past-block{opacity:0.45;}
.gpb-time{font-family:var(--font-mono);font-size:0.5rem;color:var(--accent);letter-spacing:0.3px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gpb-title{font-family:var(--font-body);font-size:0.82rem;font-weight:600;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gpb-dur{font-family:var(--font-mono);font-size:0.46rem;color:var(--text-dim);margin-top:1px;white-space:nowrap;}
.guide-gap-block{flex-shrink:0;
  background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(26,58,92,0.15) 4px,rgba(26,58,92,0.15) 8px);
  border-right:1px solid rgba(26,58,92,0.3);
  display:flex;align-items:center;justify-content:center;}
.guide-gap-label{font-family:var(--font-mono);font-size:0.46rem;color:var(--text-dim);opacity:0.6;}
.guide-ch-section{border-bottom:1px solid rgba(26,58,92,0.35);}
.guide-ch-section:last-child{border-bottom:none;}
.guide-ch-head{display:flex;align-items:baseline;gap:8px;padding:9px 14px;background:var(--guide-head-bg);position:sticky;top:0;z-index:5;}
.guide-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid rgba(26,58,92,0.22);}
.guide-row.now-row{background:var(--now-bg);border-left:3px solid var(--now-border);padding-left:11px;}
.guide-row-time{width:68px;flex-shrink:0;font-family:var(--font-mono);font-size:0.68rem;color:var(--accent);}
.guide-row.now-row .guide-row-time{color:var(--now-time);}
.guide-row-body{flex:1;min-width:0;}
.guide-row-title{font-family:var(--font-body);font-size:0.85rem;font-weight:600;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.guide-row.now-row .guide-row-title{color:var(--now-title);}
.guide-row-dur{font-family:var(--font-mono);font-size:0.62rem;color:var(--text-dim);margin-top:1px;}
.guide-now-badge{flex-shrink:0;font-family:var(--font-mono);font-size:0.55rem;font-weight:700;letter-spacing:1px;color:var(--now-border);border:1px solid var(--now-border);border-radius:3px;padding:2px 6px;}
@media (max-width:680px){
  #guide-panel{height:calc(100% - 12px);}
  #chat-panel{height:50%;}
  .video-wrap.chat-open video,.video-wrap.chat-open iframe{height:50%;}
  .video-wrap.chat-open .video-unmute-btn{bottom:calc(50% + 10px);}
  .guide-full-week-link{display:none;}
  .guide-time-now{display:none;}
  .idx-guide-search-wrap{max-width:none;}
  .idx-guide-search-wrap .guide-search-results{width:calc(100vw - 28px);max-width:340px;}
  .video-wrap.pip-mode iframe,.video-wrap.pip-mode video{width:120px;height:68px;top:8px;right:8px;border-width:1px;}
}
