/*! tachira-dial ott shell — app.css v1.4.2 */
:root{
  --ott-night:#0d1320;--ott-panel:#141c2c;--ott-panel-2:#1a2438;--ott-line:#27344d;
  --ott-ink:#e9eef6;--ott-mute:#97a5bc;--ott-signal:#39d98a;--ott-amber:#ffb547;--ott-rec:#ff4d5e;--ott-sky:#5aa9ff;
  --ott-display:"Barlow Condensed","Arial Narrow",sans-serif;--ott-text:"Source Sans 3","Segoe UI",sans-serif;--ott-mono:"Space Mono",ui-monospace,monospace;
  --ott-radius:4px;--ott-ch-w:168px;--ott-max:1240px;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--ott-night)}
body{margin:0;background:radial-gradient(1200px 500px at 85% -10%,#1b2a48 0,transparent 60%),var(--ott-night);color:var(--ott-ink);font:400 17px/1.6 var(--ott-text)}
a{color:var(--ott-sky)}
a:hover{color:var(--ott-signal)}
img{max-width:100%;height:auto;display:block}
.ott-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vjs-skip:focus{position:fixed!important;top:8px;left:8px;width:auto;height:auto;clip:auto;background:var(--ott-signal);color:#04120b;padding:.5rem 1rem;z-index:99}

/* status bar */
.ott-statusbar{display:flex;gap:1.25rem;align-items:center;padding:.35rem max(16px,calc((100% - var(--ott-max))/2));background:#070b13;border-bottom:1px solid var(--ott-line);font:400 .74rem/1.4 var(--ott-mono);color:var(--ott-mute);letter-spacing:.02em}
.ott-statusbar__live{color:var(--ott-ink);text-transform:uppercase;display:flex;align-items:center;gap:.45rem}
.ott-dot{width:8px;height:8px;border-radius:50%;background:var(--ott-rec);box-shadow:0 0 0 0 rgba(255,77,94,.6);animation:ott-pulse 2s infinite}
@keyframes ott-pulse{0%{box-shadow:0 0 0 0 rgba(255,77,94,.55)}70%{box-shadow:0 0 0 8px rgba(255,77,94,0)}100%{box-shadow:0 0 0 0 rgba(255,77,94,0)}}
.ott-statusbar__now{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ott-statusbar__lbl{color:var(--ott-amber)}
.ott-statusbar__clock{white-space:nowrap}

/* masthead */
.ott-masthead{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:center;padding:1.1rem max(16px,calc((100% - var(--ott-max))/2));border-bottom:1px solid var(--ott-line)}
.ott-brand{display:flex;gap:.9rem;align-items:center;text-decoration:none;color:var(--ott-ink)}
.ott-brand__badge{position:relative;display:grid;place-items:center;width:54px;height:54px;border:2px solid var(--ott-signal);border-radius:10px;font:700 1.35rem/1 var(--ott-display);letter-spacing:.04em;color:var(--ott-signal)}
.ott-brand__badge i{position:absolute;bottom:6px;width:3px;background:var(--ott-signal);border-radius:2px}
.ott-brand__badge i:nth-child(1){right:15px;height:4px}.ott-brand__badge i:nth-child(2){right:10px;height:7px}.ott-brand__badge i:nth-child(3){right:5px;height:10px}
.ott-brand__name{display:block;font:700 1.9rem/1 var(--ott-display);text-transform:uppercase;letter-spacing:.03em}
.ott-brand__sub{display:block;color:var(--ott-mute);font-size:.82rem;margin-top:.2rem}
.ott-switcher__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}
.ott-switcher__item a{display:flex;align-items:baseline;gap:.45rem;padding:.45rem .8rem;border:1px solid var(--ott-line);border-radius:999px;text-decoration:none;color:var(--ott-ink);font:600 1.02rem/1 var(--ott-display);text-transform:uppercase;letter-spacing:.05em;transition:border-color .2s,background .2s}
.ott-switcher__item b{font:400 .7rem/1 var(--ott-mono);color:var(--ott-mute)}
.ott-switcher__item a:hover{border-color:var(--ott-signal)}
.ott-switcher__item.is-tuned a{background:var(--ott-signal);border-color:var(--ott-signal);color:#04120b}
.ott-switcher__item.is-tuned b{color:#0a3b23}

.ott-main{max-width:var(--ott-max);margin:0 auto;padding:0 16px 3rem}

/* crawl ticker (F13) */
.ott-crawl{display:flex;align-items:stretch;margin:0 0 1.5rem;border:0;border-bottom:1px solid var(--ott-line);background:var(--ott-panel)}
.ott-crawl__label{flex:none;display:flex;align-items:center;padding:0 .9rem;background:var(--ott-amber);color:#231500;font:700 .95rem/1 var(--ott-display);text-transform:uppercase;letter-spacing:.08em}
.ott-crawl__window{flex:1;overflow:hidden;min-width:0}
.ott-crawl .feed-ticker-track{animation-duration:55s}
.ott-crawl:hover .feed-ticker-track{animation-play-state:paused}
.ott-crawl__dup{display:contents}
.ott-crawl__item{color:var(--ott-ink);font-size:.92rem}
.ott-crawl__item time{font:400 .72rem var(--ott-mono);color:var(--ott-amber);margin-right:.35rem}
.ott-crawl__all{flex:none;display:flex;align-items:center;padding:0 .9rem;border-left:1px solid var(--ott-line);font:600 .9rem var(--ott-display);text-transform:uppercase;text-decoration:none}

/* home stage: player + queue */
.ott-stage{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1.25rem;margin:1.5rem 0 2.5rem}
.vjs-frame{position:relative;border-radius:var(--ott-radius);overflow:hidden;background:#000;border:1px solid var(--ott-line)}
.vjs-frame img{width:100%;aspect-ratio:16/9;object-fit:cover;opacity:.88}
.vjs-frame__overlay{position:absolute;inset:auto 0 0 0;padding:4.5rem 1.4rem 3.6rem;background:linear-gradient(transparent,rgba(5,8,14,.92))}
.vjs-frame__overlay h1,.vjs-frame__overlay h2{margin:.2rem 0 .4rem;font:700 clamp(2rem,4.4vw,3.2rem)/1 var(--ott-display);text-transform:uppercase;letter-spacing:.01em}
.vjs-frame__overlay p{margin:0 0 .8rem;max-width:44ch;color:#d4dbe7}
.vjs-badge{display:inline-block;font:400 .7rem var(--ott-mono);color:#04120b;background:var(--ott-signal);padding:.15rem .45rem;border-radius:2px;text-transform:uppercase}
.vjs-control-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:.8rem;padding:.55rem 1rem;background:rgba(7,11,19,.85);font:400 .72rem var(--ott-mono);color:var(--ott-mute)}
.vjs-play-control{width:0;height:0;border-left:11px solid var(--ott-ink);border-top:7px solid transparent;border-bottom:7px solid transparent}
.plyr__progress{flex:1;height:4px;border-radius:2px;background:var(--ott-line);position:relative;overflow:hidden}
.plyr__progress i{position:absolute;inset:0 auto 0 0;width:38%;background:var(--ott-signal);animation:ott-progress 18s linear infinite}
@keyframes ott-progress{from{width:4%}to{width:96%}}
.ott-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;border:0;border-radius:2px;background:var(--ott-signal);color:#04120b;font:700 1rem/1 var(--ott-display);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;cursor:pointer}
.ott-btn:hover{background:#6ff0ae;color:#04120b}
.ott-btn--ghost{background:transparent;color:var(--ott-ink);border:1px solid var(--ott-line);margin-top:1rem}
.ott-btn--ghost:hover{border-color:var(--ott-signal);background:transparent;color:var(--ott-signal)}
.ott-queue-box{background:var(--ott-panel);border:1px solid var(--ott-line);border-radius:var(--ott-radius);padding:1rem 1.1rem}
.ott-queue-box h2{margin:0 0 .2rem;font:700 1.35rem/1.1 var(--ott-display);text-transform:uppercase;letter-spacing:.04em}
.ott-queue-box .ott-sub{margin:0 0 .8rem;color:var(--ott-mute);font-size:.86rem}
.ott-queue{list-style:none;margin:0;padding:0}
.ott-queue__ep{display:grid;grid-template-columns:2.6rem 1fr;gap:.6rem;padding:.6rem 0;border-top:1px solid var(--ott-line)}
.ott-queue__no{font:400 .78rem var(--ott-mono);color:var(--ott-mute);padding-top:.15rem}
.ott-queue__ep.is-playing .ott-queue__no{color:var(--ott-signal)}
.ott-queue__link{text-decoration:none;color:var(--ott-ink);display:block}
.ott-queue__link strong{display:block;font-weight:600;line-height:1.3}
.ott-queue__link:hover strong{color:var(--ott-signal)}
.ott-queue__meta{display:block;font-size:.8rem;color:var(--ott-mute);margin-top:.15rem}

/* EPG grid — the home spine */
.epg{margin:0 0 3rem}
.epg__head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.6rem;flex-wrap:wrap}
.epg__head h2{margin:0;font:700 2rem/1 var(--ott-display);text-transform:uppercase}
.epg__head p{margin:.3rem 0 0;color:var(--ott-mute);max-width:60ch}
.epg__jump{display:flex;gap:.35rem;flex-wrap:wrap}
.epg__jump a{font:400 .74rem var(--ott-mono);padding:.3rem .6rem;border:1px solid var(--ott-line);border-radius:2px;text-decoration:none;color:var(--ott-mute)}
.epg__jump a:hover{color:var(--ott-signal);border-color:var(--ott-signal)}
.epg__scroller{overflow-x:auto;border:1px solid var(--ott-line);border-radius:var(--ott-radius);background:var(--ott-panel)}
.epg__grid{min-width:980px}
.epg__times,.epg-row{display:grid;grid-template-columns:var(--ott-ch-w) 1fr}
.epg__times{position:sticky;top:0;background:#0a101b;border-bottom:1px solid var(--ott-line);font:400 .72rem var(--ott-mono);color:var(--ott-mute)}
.epg__times-track{display:grid;grid-template-columns:repeat(8,1fr)}
.epg__times-track span{padding:.45rem .6rem;border-left:1px solid var(--ott-line)}
.epg__times-corner{padding:.45rem .8rem;color:var(--ott-amber)}
.epg-row{border-bottom:1px solid var(--ott-line)}
.epg-row:last-child{border-bottom:0}
.epg-row__ch{position:sticky;left:0;z-index:1;display:grid;grid-template-columns:auto 1fr;column-gap:.6rem;align-content:center;padding:.7rem .8rem;background:var(--ott-panel-2);border-right:1px solid var(--ott-line)}
.epg-row__num{grid-row:span 2;font:700 1.7rem/1 var(--ott-display);color:var(--ott-signal)}
.epg-row__name{font:700 1.05rem/1.1 var(--ott-display);text-transform:uppercase;letter-spacing:.04em}
.epg-row__tag{font-size:.74rem;color:var(--ott-mute);line-height:1.25}
.epg-row__track{display:grid;grid-template-columns:repeat(8,1fr)}
.epg-slot{grid-column:span var(--span,2);display:flex;flex-direction:column;gap:.15rem;min-height:92px;padding:.55rem .7rem;border-left:1px solid var(--ott-line);text-decoration:none;color:var(--ott-ink);transition:background .2s}
.epg-slot:hover{background:#21304b}
.epg-slot__time{font:400 .7rem var(--ott-mono);color:var(--ott-mute)}
.epg-slot__title{font-weight:600;line-height:1.25}
.epg-slot__kicker{font-size:.78rem;color:var(--ott-mute);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.epg-slot.is-live{background:linear-gradient(90deg,rgba(57,217,138,.16),transparent);box-shadow:inset 3px 0 0 var(--ott-signal)}
.epg-slot.is-live .epg-slot__time::after{content:" · on now";color:var(--ott-signal)}

/* outside-broadcast locations (home + hub) */
.ob{margin:0 0 3rem}
.ob h2,.ott-section h2{font:700 2rem/1 var(--ott-display);text-transform:uppercase;margin:0 0 .4rem}
.ob__intro{color:var(--ott-mute);max-width:70ch;margin:0 0 1rem}
.ob__table{width:100%;border-collapse:collapse;background:var(--ott-panel);border:1px solid var(--ott-line)}
.ob__table th,.ob__table td{padding:.7rem .8rem;border-bottom:1px solid var(--ott-line);text-align:left;vertical-align:middle}
.ob__table th{font:400 .72rem var(--ott-mono);color:var(--ott-mute);text-transform:uppercase;background:#0a101b}
.ob__unit{font:700 1.2rem var(--ott-display);color:var(--ott-amber);white-space:nowrap}
.ob__thumb img{width:96px;height:60px;object-fit:cover;border-radius:2px}
.ob__name a{font-weight:600;color:var(--ott-ink);text-decoration:none}
.ob__name a:hover{color:var(--ott-signal)}
.ob__name small{display:block;color:var(--ott-mute)}

.ott-section{margin:0 0 3rem}
.ott-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;border-top:1px solid var(--ott-line);padding-top:1.5rem}
.ott-notes h3{font:700 1.2rem var(--ott-display);text-transform:uppercase;margin:0 0 .4rem;color:var(--ott-amber)}
.ott-notes p{margin:0 0 .6rem;color:#cfd7e3}

/* episode pages (venues, shows, bulletins) */
.ott-crumbs{font:400 .74rem var(--ott-mono);color:var(--ott-mute);margin:1.2rem 0 .8rem}
.ott-crumbs a{color:var(--ott-mute)}
.ott-episode{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:2rem;align-items:start}
.ott-titlecard{margin:0 0 1.2rem}
.ott-titlecard__kicker{font:400 .76rem var(--ott-mono);color:var(--ott-amber);text-transform:uppercase}
.ott-titlecard h1{margin:.3rem 0 .4rem;font:700 clamp(2.1rem,5vw,3.4rem)/1 var(--ott-display);text-transform:uppercase}
.ott-titlecard__dek{font-size:1.12rem;color:#cdd6e4;margin:0;max-width:62ch}
.ott-episode .vjs-frame{margin:0 0 1.5rem}
.ott-episode .vjs-frame img{aspect-ratio:16/8}
.ott-prose{max-width:70ch}
.ott-prose h2{font:700 1.6rem/1.1 var(--ott-display);text-transform:uppercase;margin:2rem 0 .6rem;letter-spacing:.02em}
.ott-prose h3{font:600 1.2rem var(--ott-text);margin:1.5rem 0 .4rem}
.ott-prose p,.ott-prose li{color:#dbe2ec}
.ott-prose figure{margin:1.6rem 0}
.ott-prose figure img{border-radius:var(--ott-radius);border:1px solid var(--ott-line)}
.ott-prose figcaption{font-size:.8rem;color:var(--ott-mute);margin-top:.4rem}
.ott-prose blockquote{margin:1.4rem 0;padding:.4rem 1rem;border-left:3px solid var(--ott-amber);color:#e6ecf5}
.ott-rail{position:sticky;top:1rem;display:flex;flex-direction:column;gap:1rem}
.ott-card{background:var(--ott-panel);border:1px solid var(--ott-line);border-radius:var(--ott-radius);padding:1rem}
.ott-card h2{font:700 1.15rem var(--ott-display);text-transform:uppercase;margin:0 0 .6rem;letter-spacing:.04em}
.ott-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.35rem .8rem;font-size:.9rem}
.ott-card dt{font:400 .72rem var(--ott-mono);color:var(--ott-mute);text-transform:uppercase;padding-top:.2rem}
.ott-card dd{margin:0}
.ott-card ul{margin:0;padding-left:1.1rem;font-size:.92rem}
.ott-card li{margin:.25rem 0}
.ott-notice{font-size:.84rem;color:var(--ott-mute);border:1px dashed var(--ott-line);padding:.7rem .9rem;border-radius:var(--ott-radius)}

/* shows shelf */
.ott-shelf{margin:0 0 2.5rem}
.ott-shelf__head{display:flex;align-items:baseline;gap:.8rem;margin:0 0 .8rem;border-bottom:1px solid var(--ott-line);padding-bottom:.4rem}
.ott-shelf__head h2{margin:0;font:700 1.6rem var(--ott-display);text-transform:uppercase}
.ott-shelf__head span{font:400 .74rem var(--ott-mono);color:var(--ott-mute)}
.ott-shelf__row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem}
.ott-tile{position:relative;display:block;text-decoration:none;color:var(--ott-ink);border-radius:var(--ott-radius);overflow:hidden;background:#000;border:1px solid var(--ott-line);transition:transform .25s}
.ott-tile:hover{transform:translateY(-4px)}
.ott-tile img{width:100%;aspect-ratio:2/3;object-fit:cover;opacity:.78}
.ott-tile__meta{position:absolute;inset:auto 0 0 0;padding:2.5rem .8rem .8rem;background:linear-gradient(transparent,rgba(4,7,12,.95))}
.ott-tile__meta strong{display:block;font:700 1.3rem/1.05 var(--ott-display);text-transform:uppercase}
.ott-tile__meta span{font-size:.78rem;color:#c4cede}

/* list + archive */
.ott-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ott-line)}
.ott-list__row{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.2rem 1rem;padding:.7rem 0;border-bottom:1px solid var(--ott-line)}
.ott-list__row time{font:400 .76rem var(--ott-mono);color:var(--ott-amber);padding-top:.2rem;grid-row:span 2}
.ott-list__row a{font-weight:600;color:var(--ott-ink);text-decoration:none}
.ott-list__row a:hover{color:var(--ott-signal)}
.ott-list__row span{font-size:.86rem;color:var(--ott-mute)}
.ott-empty{color:var(--ott-mute)}

/* forms */
.ott-form{display:grid;gap:.9rem;max-width:560px}
.ott-form label{font:400 .74rem var(--ott-mono);text-transform:uppercase;color:var(--ott-mute)}
.ott-form input,.ott-form textarea,.ott-form select,.ott-find input,.ott-search input{width:100%;padding:.65rem .8rem;border:1px solid var(--ott-line);border-radius:2px;background:#0a101b;color:var(--ott-ink);font:inherit}
.ott-form input:focus,.ott-form textarea:focus,.ott-find input:focus,.ott-search input:focus{outline:2px solid var(--ott-signal);outline-offset:1px}
.ott-form__status{min-height:1.4em;color:var(--ott-signal)}
.ott-search{display:flex;gap:.5rem;margin:1rem 0 1.5rem;max-width:640px}
.ott-hits{list-style:none;padding:0;margin:0}
.ott-hits li{padding:.8rem 0;border-bottom:1px solid var(--ott-line)}
.ott-hits a{font-weight:600;font-size:1.05rem}
.ott-hits p{margin:.2rem 0 0;color:var(--ott-mute);font-size:.9rem}
.ott-hits small{font:400 .7rem var(--ott-mono);color:var(--ott-amber);text-transform:uppercase}

/* credits */
.ott-credits{width:100%;border-collapse:collapse;font-size:.86rem}
.ott-credits th,.ott-credits td{text-align:left;padding:.5rem;border-bottom:1px solid var(--ott-line);vertical-align:top}
.ott-credits img{width:80px;height:52px;object-fit:cover}
.ott-credits th{font:400 .7rem var(--ott-mono);color:var(--ott-mute);text-transform:uppercase}

/* sign-off footer */
.ott-signoff{margin-top:2rem;background:#070b13;border-top:1px solid var(--ott-line);padding:0 0 1.2rem}
.ott-signoff__bars{display:grid;grid-template-columns:repeat(7,1fr);height:14px}
.ott-signoff__bars i:nth-child(1){background:#c0c0c0}.ott-signoff__bars i:nth-child(2){background:#c0c000}.ott-signoff__bars i:nth-child(3){background:#00c0c0}.ott-signoff__bars i:nth-child(4){background:#00c000}.ott-signoff__bars i:nth-child(5){background:#c000c0}.ott-signoff__bars i:nth-child(6){background:#c00000}.ott-signoff__bars i:nth-child(7){background:#0000c0}
.ott-signoff__eot{max-width:var(--ott-max);margin:1.4rem auto 1rem;padding:0 16px;font-size:.92rem;color:#cbd4e2}
.ott-signoff__eot strong{font:700 1.1rem var(--ott-display);text-transform:uppercase;color:var(--ott-amber);letter-spacing:.05em}
.ott-signoff__grid{max-width:var(--ott-max);margin:0 auto;padding:1rem 16px;display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:2rem;border-top:1px dashed var(--ott-line)}
.ott-signoff__h{font:400 .74rem var(--ott-mono);text-transform:uppercase;color:var(--ott-mute);margin:0 0 .6rem}
.ott-signoff__col ul{list-style:none;margin:0;padding:0}
.ott-signoff__col li{margin:.25rem 0}
.ott-signoff__col a{color:var(--ott-ink);text-decoration:none}
.ott-signoff__col a:hover{color:var(--ott-signal)}
.ott-signoff__inline{display:flex;gap:1rem;margin-top:.8rem!important}
.ott-find{display:flex;gap:.4rem}
.ott-signoff__ref{font-size:.8rem;color:var(--ott-mute);margin:.8rem 0 0}
.ott-signoff__legal{max-width:var(--ott-max);margin:0 auto;padding:.6rem 16px 0;font:400 .7rem var(--ott-mono);color:var(--ott-mute)}

@media (max-width:960px){
  .ott-stage,.ott-episode{grid-template-columns:1fr}
  .ott-rail{position:static}
  .ott-notes{grid-template-columns:1fr}
  .ott-signoff__grid{grid-template-columns:1fr}
  .ott-masthead{grid-template-columns:1fr}
  .ott-switcher__list{justify-content:flex-start}
  .ob__thumb{display:none}
}
@media (max-width:600px){
  :root{--ott-ch-w:118px}
  .ott-statusbar__clock{display:none}
  .ott-brand__sub{display:none}
  .ott-crawl__all{display:none}
  .ob__table th:nth-child(4),.ob__table td:nth-child(4){display:none}
  .ott-list__row{grid-template-columns:1fr}
  .ott-list__row time{grid-row:auto}
}
@media (prefers-reduced-motion:reduce){.feed-ticker-track,.plyr__progress i,.ott-dot{animation:none}}
/* broadcast slate on bulletin pages */
.vjs-slate{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:center;margin:0 0 1.4rem;padding:.7rem 1rem;border:1px solid var(--ott-line);border-left:4px solid var(--ott-signal);background:repeating-linear-gradient(135deg,#111a2a 0 12px,#141e31 12px 24px);font:400 .74rem var(--ott-mono);color:var(--ott-mute);text-transform:uppercase}
.vjs-slate span:first-child{font:700 1.2rem var(--ott-display);color:var(--ott-signal)}
.vjs-slate__rec{margin-left:auto;color:var(--ott-rec)}
.ott-rail .ott-list__row{grid-template-columns:1fr;gap:.1rem}
.ott-rail .ott-list__row time{grid-row:auto}
.ott-doc{max-width:860px}
.ott-hub-intro{max-width:72ch;color:#cfd7e3;margin:0 0 1.6rem}
