/* Clean ASYLUM RADIO LIVE TV page — scoped to avoid changing the rest of the site. */
.video-studio.arl-tv-clean{width:min(100% - 32px,1450px);max-width:1450px!important;margin:0 auto;padding:26px 0 74px;color:#f2fbfc;box-sizing:border-box}
.arl-tv-clean *{box-sizing:border-box}
.arl-tv-title{font-size:clamp(29px,4.2vw,54px);color:#f6ffff;line-height:1.1;margin:2px 0 22px;text-align:center;letter-spacing:.005em;font-weight:850}
.arl-tv-title em{font-style:normal;color:#5be7ec}
.arl-tv-card{width:100%;max-width:1240px;margin:0 auto;border:1px solid rgba(80,222,232,.32);border-radius:16px;overflow:hidden;background:linear-gradient(155deg,#0b1d27,#0a101b);box-shadow:0 14px 38px #0005}
.arl-tv-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid #26525a}
.arl-tv-card-top h2{color:white;font-size:clamp(16px,2vw,20px);font-weight:700;margin:0}
.arl-tv-card-status{border:1px solid #2d7884;border-radius:100px;padding:6px 11px;white-space:nowrap;color:#82e0e9;font-size:11px;letter-spacing:.07em;font-weight:750}
.arl-tv-screen{display:block;aspect-ratio:16/9;background:#050a12;position:relative;overflow:hidden;isolation:isolate}
.arl-tv-screen>iframe,.arl-tv-offline,.arl-tv-radio-screen{position:absolute;inset:0;width:100%;height:100%}
.arl-tv-screen iframe{display:block;border:0;background:#050a12}
.arl-tv-screen [hidden]{display:none!important}
.arl-tv-offline{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:radial-gradient(ellipse at 50% 40%,#14333c,#060a12 72%);padding:25px}
.arl-tv-offline img{width:min(55%,360px);max-height:55%;object-fit:contain;filter:drop-shadow(0 0 17px #1497a844)}
.arl-tv-offline strong{color:#cce9ee;font-size:clamp(11px,1.6vw,17px);letter-spacing:.17em}
.arl-tv-radio-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:17px;background:radial-gradient(ellipse at center,#143940,#070e16 70%)}
.arl-tv-music-note{font-size:56px;color:#59e4e8}
.arl-tv-radio-screen strong{font-size:19px;letter-spacing:.14em}
.arl-tv-radio-screen button{border-radius:10px;border:1px solid #3f9ba9;background:#154552;color:white;padding:11px 19px;font-weight:700;cursor:pointer}
.arl-tv-controls{display:flex;gap:10px;padding:16px 22px;border-top:1px solid #1b4752;justify-content:center}
.arl-tv-controls button{flex:1 1 200px;max-width:340px;min-height:44px;border-radius:10px;border:1px solid #336575;background:#132b38;color:#e2f2f5;cursor:pointer;font:700 13px/1.2 system-ui,-apple-system,sans-serif;padding:12px 14px}
.arl-tv-controls button.is-active{color:#072229;background:#61e7ed;border-color:#61e7ed}
.arl-tv-controls button:focus-visible,.arl-tv-radio-screen button:focus-visible{outline:2px solid white;outline-offset:3px}
.arl-tv-playback-message{color:#b8dae1;font-size:12px;padding:0 23px 15px;text-align:center;margin:0}
@media (max-width:600px){.video-studio.arl-tv-clean{width:calc(100% - 20px);padding:18px 0 50px}.arl-tv-title{margin:4px 0 18px}.arl-tv-card{border-radius:12px}.arl-tv-card-top{padding:12px 14px}.arl-tv-controls{padding:12px;gap:8px}.arl-tv-controls button{flex:1;min-width:0;font-size:12px}.arl-tv-offline img{width:58%}}

/* Live TV side-by-side broadcast and the station's ORIGINAL community chat. */
.arl-tv-layout{display:grid;grid-template-columns:minmax(0, 1.85fr) minmax(340px, .82fr);align-items:start;gap:18px;width:100%}
.arl-tv-layout>.arl-tv-card{width:100%;max-width:none;min-width:0;margin:0}
.arl-tv-layout>.arl-tv-chat{min-width:0;margin:0;padding:0!important;border:1px solid rgba(80,222,232,.32)!important;border-radius:16px;overflow:hidden;background:#0b1118;box-shadow:0 14px 38px #0005}
.arl-tv-chat .live-chat-title{min-height:58px;margin:0;padding:16px 18px;font-size:1.03rem;letter-spacing:.045em;border-bottom:1px solid #26525a;background:#0b1d27;white-space:nowrap}
.arl-tv-chat .chat-live-light{width:9px;height:9px}
.arl-tv-chat .station-chat-panel{height:clamp(590px,54vw,715px);max-height:none;min-height:0}
.arl-tv-chat .station-chat-messages{min-height:150px;padding:13px;background-size:100% 100%,min(260px,65%) auto}
.arl-tv-chat .station-chat-form{flex:none;padding:13px 14px;gap:6px}
.arl-tv-chat .station-chat-form textarea{min-height:56px;max-height:95px}
.arl-tv-chat .chat-emoji-row{gap:6px}
.arl-tv-chat .chat-emoji-row button{padding:7px 10px;min-width:40px;min-height:38px}
.arl-tv-chat .chat-send-row{flex-wrap:wrap}
.arl-tv-chat .chat-send-row span{max-width:100%}
@media(max-width:900px){
  .arl-tv-layout{grid-template-columns:minmax(0,1fr);gap:16px}
  .arl-tv-layout>.arl-tv-chat{width:100%;max-width:none}
  .arl-tv-chat .station-chat-panel{height:610px}
}
@media(max-width:600px){
  .arl-tv-layout{gap:14px}
  .arl-tv-layout>.arl-tv-chat{border-radius:12px}
  .arl-tv-chat .station-chat-panel{height:570px}
  .arl-tv-chat .chat-emoji-row button{flex:1 1 0;min-width:0}
}


/* LIVE TV + CHAT — compact, even media controls; no changes to the homepage chat. */
.arl-tv-chat .chat-emoji-row{
  display:flex; flex-wrap:wrap; justify-content:flex-start; align-items:center;
  gap:7px; margin:2px 0 0;
}
.arl-tv-chat .chat-emoji-row button,
.arl-tv-chat .chat-emoji-row button[aria-controls="emoji-picker"]{
  flex:0 0 44px; width:44px; min-width:44px; height:44px; min-height:44px;
  padding:0; border:1px solid #3b6370; border-radius:9px;
  background:#162d38; box-shadow:none; transform:none;
  display:inline-flex; align-items:center; justify-content:center;
}
.arl-tv-chat .chat-emoji-row .chat-button-icon{
  display:grid; place-items:center; width:100%; height:100%;
  color:#b1e3e9; font-size:1.25rem; line-height:1;
  text-shadow:none;
}
.arl-tv-chat .chat-emoji-row .chat-gif-icon{
  font-size:.74rem; letter-spacing:.01em; font-weight:850;
}
.arl-tv-chat .chat-emoji-row button:hover{
  border-color:#81dbe3; background:#21424d; box-shadow:none;
}
.arl-tv-chat .chat-emoji-row button:focus-visible{
  outline:2px solid #8ce3eb; outline-offset:2px;
}
.arl-tv-chat .chat-emoji-row button[aria-expanded="true"]{
  border-color:#89dfe5; background:#26515b; box-shadow:none;
}
.arl-tv-chat .chat-emoji-row #voice-record[aria-pressed="true"]{
  background:#70303a; border-color:#fa8291; box-shadow:none;
}
/* Tidy the picker items too, without reducing the comfortable tap target. */
.arl-tv-chat .emoji-picker-grid button{min-height:50px; font-size:1.65rem}
.arl-tv-chat .emoji-picker-grid.flag-picker-grid button{
  min-height:62px; padding:7px 9px; font-size:.83rem;
}
.arl-tv-chat .flag-picker-grid .flag-mark{font-size:2rem}
.arl-tv-chat .gif-picker-grid img{height:70px}
.arl-tv-chat .chat-message .chat-inline-icon{font-size:1.7rem}
.arl-tv-chat .chat-message .chat-inline-flag{font-size:2rem}
@media (max-width:600px){
  .arl-tv-chat .chat-emoji-row{display:flex; grid-template-columns:none; gap:7px}
  .arl-tv-chat .chat-emoji-row button,
  .arl-tv-chat .chat-emoji-row button[aria-controls="emoji-picker"]{
    flex:0 0 44px; width:44px; min-width:44px; height:44px; min-height:44px;
  }
}

/* 800 x 100 side-to-side ad below BOTH the TV player and the chat.
   0% = right edge; 100% = left edge; alternate automatically returns right. */
.arl-tv-clean .arl-tv-ad-strip {
  margin: 24px auto 0;
  width: 100%;
  min-width: 0;
}
.arl-tv-clean .arl-tv-ad-runway {
  width: 100%;
  height: clamp(52px, 9vw, 100px);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.arl-tv-clean .arl-tv-ad-banner {
  position: absolute;
  display: block;
  top: 50%;
  left: 100%;
  width: min(800px, 82%);
  aspect-ratio: 8 / 1;
  height: auto;
  max-height: 100px;
  overflow: hidden;
  border-radius: 5px;
  text-decoration: none;
  box-shadow: 0 5px 22px rgba(0,0,0,.27);
  animation: arl-tv-ad-crossing 20s linear infinite alternate;
  will-change: left, transform;
}
.arl-tv-clean .arl-tv-ad-banner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.arl-tv-clean .arl-tv-ad-banner:hover,
.arl-tv-clean .arl-tv-ad-banner:focus-visible {animation-play-state: paused;}
.arl-tv-clean .arl-tv-ad-banner:focus-visible {outline: 3px solid #64e8ee;outline-offset: 2px;}
@keyframes arl-tv-ad-crossing {
  from {left: 100%; transform: translate(-100%, -50%);}
  to {left: 0; transform: translate(0, -50%);}
}
@media (prefers-reduced-motion: reduce) {
  .arl-tv-clean .arl-tv-ad-banner {
    animation: none;
    left: 50%;
    transform: translate(-50%, -50%);
    will-change: auto;
  }
}
@media (max-width: 600px) {
  .arl-tv-clean .arl-tv-ad-strip {margin-top: 18px;}
}


/* ASYLUM LIVE TV + CHAT — align both cards, submit beside chat icons.
   Scoped to TV page: station chat elsewhere is untouched. */
@media (min-width:901px) {
  .arl-tv-clean .arl-tv-layout { align-items: stretch; }
  .arl-tv-clean .arl-tv-layout > .arl-tv-chat {
    display: flex; flex-direction: column; align-self: stretch;
    height: auto; min-height: 0;
  }
  .arl-tv-clean .arl-tv-chat .station-chat-panel {
    flex: 1 1 auto; height: auto; min-height: 0; max-height: none;
  }
  .arl-tv-clean .arl-tv-chat .station-chat-messages {
    flex: 1 1 auto; min-height: 140px;
  }
}
.arl-tv-clean .arl-tv-chat .chat-emoji-row {
  display: flex; flex-flow: row nowrap;
  align-items: center; justify-content: flex-start;
  gap: 6px; width: 100%; min-width: 0;
}
.arl-tv-clean .arl-tv-chat .chat-emoji-row button:not(.arl-tv-chat-submit) {
  flex: 0 0 44px; width: 44px; min-width: 44px;
  height: 44px; min-height: 44px;
}
.arl-tv-clean .arl-tv-chat .chat-emoji-row .arl-tv-chat-submit {
  flex: 0 0 auto; margin-left: auto;
  min-width: 86px; width: auto; height: 44px; min-height: 44px;
  border: 0; border-radius: 9px; padding: 0 12px;
  background: #d73c4b; color: #fff;
  font: 800 0.85rem/1 system-ui, -apple-system, sans-serif;
  text-align: center; white-space: nowrap; cursor: pointer;
}
.arl-tv-clean .arl-tv-chat .chat-emoji-row .arl-tv-chat-submit:hover {
  background: #ee4b5b; border: 0;
}
.arl-tv-clean .arl-tv-chat .chat-emoji-row .arl-tv-chat-submit:focus-visible {
  outline: 2px solid #fff; outline-offset: 2px;
}
.arl-tv-clean .arl-tv-chat .chat-emoji-row .arl-tv-chat-submit:disabled {
  opacity: .55; cursor: wait;
}
.arl-tv-clean .arl-tv-chat .chat-send-row {
  margin: 0; padding: 0; min-height: 0; display: block;
}
.arl-tv-clean .arl-tv-chat .chat-send-row:has(#chat-feedback:empty) { display: none; }
.arl-tv-clean .arl-tv-chat #chat-feedback { display: block; }
@media (max-width: 900px) {
  .arl-tv-clean .arl-tv-layout { align-items: start; }
  .arl-tv-clean .arl-tv-chat .station-chat-panel { height: 610px; }
}
@media (max-width: 600px) {
  .arl-tv-clean .arl-tv-chat .station-chat-panel { height: 570px; }
}
@media (max-width: 420px) {
  .arl-tv-clean .arl-tv-chat .chat-emoji-row { gap: 6px; }
  .arl-tv-clean .arl-tv-chat .chat-emoji-row button:not(.arl-tv-chat-submit) {
    flex: 0 0 40px; width: 40px; min-width: 40px;
  }
  .arl-tv-clean .arl-tv-chat .chat-emoji-row .arl-tv-chat-submit {
    min-width: 80px; padding: 0 7px; font-size: .81rem;
  }
}


/* Replaced the legacy 2560px public TV width with the page-scoped bounds below. */

/* Live TV card header: on-air label and viewer-local clock only. */
.arl-tv-card-top .arl-tv-onair-heading {
  display: flex; align-items: center; flex-wrap: wrap; column-gap: 15px; row-gap: 5px;
  margin: 0; color: #fff; font-size: clamp(15px, 1.45vw, 20px);
  font-weight: 800; letter-spacing: .035em; line-height: 1.3;
}
.arl-tv-onair-label { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.arl-tv-onair-dot { color: #ff3e49; font-size: 1.05em; text-shadow: 0 0 10px rgba(255,62,73,.35); }
.arl-tv-clock { color: #fff; font-size: .93em; font-weight: 750; letter-spacing: .055em; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 490px) {
  .arl-tv-card-top .arl-tv-onair-heading { font-size: 14px; column-gap: 10px; }
  .arl-tv-card-top .arl-tv-card-status { font-size: 9px; padding: 5px 7px; }
}

/* LIVE TV: show the ON AIR clock only when Cloudflare confirms a live feed. */
.arl-tv-clock[hidden]{display:none!important}
.arl-tv-onair-label{color:#c6d4da;letter-spacing:.07em}
.arl-tv-onair-label.is-live{color:#fff}
.arl-tv-card-status.is-offline{color:#c4cdd4;border-color:#55616d;background:#101721}
.arl-tv-card-status.is-live{color:#f3fafc;border-color:#ec4e5b;background:#4b121a}

/* ASYLUM TV + CHAT: public-page overflow correction (2026-10-12).
   Keep both cards inside the standard public content width. Do not alter
   global header/footer sizing, iframe playback, chat handlers, or ad rotation. */
html body main.video-studio.arl-tv-clean {
  box-sizing: border-box !important;
  width: calc(100% - 40px) !important;
  max-width: 1440px !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
html body main.video-studio.arl-tv-clean .arl-tv-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.75fr) minmax(0, .85fr);
  gap: 18px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0 auto;
}
html body main.video-studio.arl-tv-clean .arl-tv-layout > .arl-tv-card,
html body main.video-studio.arl-tv-clean .arl-tv-layout > .arl-tv-chat {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
}
html body main.video-studio.arl-tv-clean .arl-tv-screen,
html body main.video-studio.arl-tv-clean .station-chat-panel,
html body main.video-studio.arl-tv-clean .station-chat-form,
html body main.video-studio.arl-tv-clean .station-chat-messages,
html body main.video-studio.arl-tv-clean .arl-tv-ad-strip {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
html body main.video-studio.arl-tv-clean .station-chat-form :is(input, textarea),
html body main.video-studio.arl-tv-clean .station-chat-form .chat-emoji-row,
html body main.video-studio.arl-tv-clean .emoji-picker {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}
html body main.video-studio.arl-tv-clean .station-chat-messages {
  overflow-wrap: anywhere;
}
html body main.video-studio.arl-tv-clean .arl-tv-ad-runway {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
@media (max-width: 1050px) {
  html body main.video-studio.arl-tv-clean .arl-tv-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
}
@media (max-width: 720px) {
  html body main.video-studio.arl-tv-clean {
    width: calc(100% - 24px) !important;
    max-width: calc(100% - 24px) !important;
  }
  html body main.video-studio.arl-tv-clean .arl-tv-layout { gap: 14px; }
  html body main.video-studio.arl-tv-clean .arl-tv-controls { flex-wrap: wrap; }
  html body main.video-studio.arl-tv-clean .arl-tv-controls button {
    min-width: 0;
    flex: 1 1 120px;
  }
}


/* 2026-10-12 — Live & Chat frame-height containment.
   The video keeps its existing 16:9 frame and original card width.
   Desktop chat stops at the video card's bottom; chat messages scroll inside.
   Tablet/mobile chat remains a separate finite-height card. */
html body main.video-studio.arl-tv-clean .arl-tv-layout {
  align-items: start !important;
}
html body main.video-studio.arl-tv-clean .arl-tv-screen {
  position: relative;
  aspect-ratio: 16 / 9;
  height: auto !important;
  min-height: 0;
  overflow: hidden !important;
}
html body main.video-studio.arl-tv-clean .arl-tv-screen > :is(iframe, .arl-tv-offline, .arl-tv-radio-screen) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
}
html body main.video-studio.arl-tv-clean .arl-tv-layout > .arl-tv-card {
  align-self: start !important;
  height: auto !important;
  min-height: 0;
}
html body main.video-studio.arl-tv-clean .arl-tv-layout > .arl-tv-chat {
  display: flex;
  flex-direction: column;
  align-self: start !important;
  height: var(--arl-tv-chat-frame-height, 650px) !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
html body main.video-studio.arl-tv-clean .arl-tv-chat > .live-chat-title {
  flex: 0 0 auto;
}
html body main.video-studio.arl-tv-clean .arl-tv-chat .station-chat-panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 0 !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
html body main.video-studio.arl-tv-clean .arl-tv-chat .station-chat-messages {
  flex: 1 1 0 !important;
  height: 0;
  min-height: 0 !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}
html body main.video-studio.arl-tv-clean .arl-tv-chat .station-chat-form {
  flex: 0 0 auto !important;
  min-height: 0;
}
html body main.video-studio.arl-tv-clean .arl-tv-chat .station-chat-form textarea {
  resize: none;
}
@media (max-width: 1050px) {
  html body main.video-studio.arl-tv-clean .arl-tv-layout > .arl-tv-chat {
    height: 580px !important;
  }
}
@media (max-width: 600px) {
  html body main.video-studio.arl-tv-clean .arl-tv-layout > .arl-tv-chat {
    height: 535px !important;
  }
}
