/* DX.Wire / NewsTalker on-air tally, 2026-11-15.
   A single chrome-rimmed ruby pilot belongs to the NewsTalker receiver,
   not to the masthead wire-health tally. It reports actual voice playback.
   Generated optical asset is a 2.8 KB 64px WebP, no runtime image generation.
   Keep native transport/morph, source statuses, audio, dimensions unchanged. */
html:is([data-theme=newsprint],[data-theme=dark]) .talker-morph-console{
  --talker-onair-lens:url("/newstalker-on-air-lamp.webp?v=red-chrome-20261115");
}
/* Desktop: tiny physical jewel beside LISTEN/PAUSE, mounted on the cabinet.
   No extra button, hitbox, flex column or change to action-pill text. */
@media(min-width:701px) and (pointer:fine){
  html:is([data-theme=newsprint],[data-theme=dark]) #bar .talker-morph-console::after{
    content:"";position:absolute;z-index:6;top:-6px;right:1px;
    display:block;width:22px;height:22px;box-sizing:border-box;
    background:var(--talker-onair-lens) center/contain no-repeat;
    opacity:.66;filter:grayscale(.7) brightness(.55);
    pointer-events:none;
    transition:opacity .18s ease,filter .18s ease;
  }
  html:is([data-theme=newsprint],[data-theme=dark]) #bar .talker-morph-console[data-state=playing]::after{
    opacity:1;filter:brightness(1.1) drop-shadow(0 0 3px #f4261a99);
  }
}
/* Narrow fine-pointer laptops use the same jewel without extra width. */
@media(min-width:701px) and (max-width:1020px) and (pointer:fine){
  html:is([data-theme=newsprint],[data-theme=dark]) #bar .talker-morph-console::after{
    width:18px;height:18px;top:-5px;right:1px;
  }
}
/* On touch iPads the existing right-hand station-status lens is the mount.
   Only true PLAYING receives the red chrome optic; READY remains blue,
   PAUSED amber, and the existing green cabinet lighting remains untouched. */
@media(min-width:701px) and (max-width:1366px) and (any-pointer:coarse){
  html:is([data-theme=newsprint],[data-theme=dark]) #bar .talker-morph-console[data-state=standby] #night-read-aloud .dispatch-action{
    filter:saturate(.6) brightness(.58)!important;
  }
  html:is([data-theme=newsprint],[data-theme=dark]) #bar .talker-morph-console[data-state=playing] #night-read-aloud .dispatch-action{
    background:var(--talker-onair-lens) center/contain no-repeat!important;
    border-color:#812129!important;box-shadow:0 0 7px 1px #ff382882!important;
    filter:none!important;
  }
}
/* Phone: skin the EXISTING status dot inside the compact 38px station strip.
   Do not add a second indicator or bring back the hidden masthead LIVE key.
   Standby/STARTING are unlit; this red lens illuminates only after speech
   actually begins. The PAUSED amber lens remains its original control state. */
@media(max-width:700px){
  html:is([data-theme=newsprint],[data-theme=dark]) #mast>.edition-dateline.edition-audio-mobile .talker-morph-console:is([data-state=standby],[data-state=starting]) #night-read-aloud::after{
    background:var(--talker-onair-lens) center/contain no-repeat!important;
    border:0!important;box-shadow:none!important;
    opacity:.66!important;filter:grayscale(.72) brightness(.50)!important;
    animation:none!important;
  }
  html:is([data-theme=newsprint],[data-theme=dark]) #mast>.edition-dateline.edition-audio-mobile .talker-morph-console[data-state=playing] #night-read-aloud::after{
    background:var(--talker-onair-lens) center/contain no-repeat!important;
    border:0!important;box-shadow:none!important;
    opacity:1!important;filter:brightness(1.1) drop-shadow(0 0 2px #ff351fa6)!important;
    animation:none!important;
  }
}
/* An ON AIR indication must never rely on a decorative blinking clock. */
@media(prefers-reduced-motion:reduce){
  html:is([data-theme=newsprint],[data-theme=dark]) #bar .talker-morph-console::after{
    transition:none!important;
  }
}
