:root{color-scheme:dark;--bg:#080a0f;--panel:#11161f;--panel2:#171d28;--line:#293345;--text:#f2f4f7;--muted:#919baa;--hot:#ff6428;--hot2:#ffad5e;--ok:#53da8e}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 8% 0%,#2a130f 0,transparent 30rem),#080a0f;color:var(--text)}button,input,textarea{font:inherit}button{cursor:pointer}
.app{max-width:1450px;height:100dvh;margin:auto;padding:22px 26px 12px;display:flex;flex-direction:column;overflow:hidden}.eyebrow{font-size:.7rem;letter-spacing:.22em;font-weight:900;color:var(--hot2)}.topbar{flex:0 0 auto;display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.logo{font-size:2.35rem;font-weight:900;letter-spacing:-.06em;line-height:1}.logo span{font-size:.35em;color:var(--hot);vertical-align:top}.head-actions{display:flex;align-items:center;gap:9px}.head-actions button,#mobileUsers,#closeUsers,.header-link{background:#171d28;border:1px solid #354156;color:#e8ebf0;border-radius:9px;padding:8px 11px;text-decoration:none;font-size:.78rem}.header-link.admin-link{border-color:#744829;color:#ffb46e;background:#25150d}.role-badge{display:none;font-size:.68rem;font-weight:900;letter-spacing:.08em;color:#ffb46e;border:1px solid #6e4932;background:#27170f;border-radius:999px;padding:5px 8px}.role-badge.visible{display:inline-block}
.layout{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;overflow:hidden}.chat-card,.online-card{min-height:0;height:100%;background:linear-gradient(145deg,#141923,#0d1118);border:1px solid var(--line);border-radius:16px;overflow:hidden}.chat-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}.room-head,.online-head{min-height:58px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px}.room-head small,.online-head small{display:block;color:var(--muted);font-size:.73rem;margin-top:2px}.messages{min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 17px 14px;scrollbar-width:thin;scrollbar-color:#3f4a5e #0d1118}.messages::-webkit-scrollbar,.online-list::-webkit-scrollbar{width:10px}.messages::-webkit-scrollbar-track,.online-list::-webkit-scrollbar-track{background:#0d1118}.messages::-webkit-scrollbar-thumb,.online-list::-webkit-scrollbar-thumb{background:#3f4a5e;border-radius:10px;border:2px solid #0d1118}.message{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid #222b39}.system-message{justify-content:center;color:var(--muted);font-size:.8rem;border:0;padding:6px}.avatar,.user-avatar,.profile-letter,.admin-avatar{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#263147,#465064);display:grid;place-items:center;font-weight:900;flex:none}.image-avatar{object-fit:cover;display:block}.message-body{min-width:0}.message-meta{display:flex;gap:8px;align-items:baseline}.message-meta small{color:var(--muted)}.message-text{margin-top:3px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.composer{border-top:1px solid var(--line);padding:10px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;background:#0c1017}.composer input,.entry-row input,.entry-panel>input,.setup-form input,.setup-form textarea{min-width:0;background:#0d1118;border:1px solid #303b4e;color:white;border-radius:10px;padding:11px 12px;outline:none}.setup-form textarea{width:100%;resize:vertical}.composer input:focus,.entry-row input:focus,.entry-panel>input:focus,.setup-form input:focus,.setup-form textarea:focus{border-color:#ff7f43;box-shadow:0 0 0 3px #ff642818}.composer button,.entry-row button,.wide-action,.setup-form button,.admin-user-actions button{border-radius:10px;border:1px solid #38445a;background:#171d28;color:white}.composer .send,.entry-row button,.wide-action,.setup-form button,.admin-user-actions button{padding:0 18px;background:linear-gradient(135deg,#e85218,#ff873f);border-color:#ff8043;font-weight:900}.send-error{padding:0 12px 6px}.online-card{display:grid;grid-template-rows:auto minmax(0,1fr)}.online-list{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#3f4a5e #0d1118}.user-row{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid #222b39}.user-info{min-width:0;flex:1}.user-info b,.user-info small{display:block}.user-info b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info small{color:var(--ok);font-size:.72rem}.user-row i{width:8px;height:8px;border-radius:50%;background:#36cd79;box-shadow:0 0 12px #36cd7966}footer{flex:0 0 auto;text-align:center;color:#596374;font-size:.7rem;padding:9px 0 0}.error{color:#ff7783;min-height:21px;font-size:.8rem;margin-top:7px}
.overlay{position:fixed;inset:0;z-index:50;background:#05070be8;backdrop-filter:blur(12px);display:grid;place-items:center;padding:20px;overflow:auto}.overlay.hidden{display:none}.entry-card{width:min(620px,100%);background:linear-gradient(145deg,#171d28,#0d1118);border:1px solid #303b4d;border-radius:20px;padding:28px}.entry-card h1{font-size:clamp(2.45rem,8vw,4.55rem);line-height:.9;letter-spacing:-.065em;margin:.35rem 0 .8rem}.entry-card h1 span{color:var(--hot)}.entry-intro{color:#aeb6c2;margin-bottom:18px}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:18px}.tab{border:1px solid #303b4e;background:#10151d;color:#98a2b1;border-radius:9px;padding:9px;font-size:.75rem;font-weight:900}.tab.active{background:#21140f;color:#ffb16d;border-color:#70462e}.entry-panel{display:none}.entry-panel.active{display:block}.entry-panel label,.setup-form label{display:block;color:#aeb6c2;font-size:.76rem;margin:11px 0 6px}.entry-panel label small,.setup-form label small{color:#697487}.entry-panel>input{width:100%}.entry-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.wide-action{width:100%;min-height:42px;margin-top:15px}
.setup-body{overflow:auto;display:grid;place-items:center;padding:24px}.profile-card,.setup-card{width:min(680px,100%);background:linear-gradient(145deg,#171d28,#0d1118);border:1px solid #303b4d;border-radius:20px;padding:28px}.profile-card h1,.setup-card h1{font-size:2.8rem;letter-spacing:-.05em}.profile-card h1 span,.setup-card h1 span{font-size:.35em;color:var(--hot);vertical-align:top}.profile-preview{display:flex;align-items:center;gap:13px;margin:18px 0}.profile-preview img,.profile-letter{width:64px;height:64px;border-radius:16px;object-fit:cover}.profile-preview strong,.profile-preview small{display:block}.profile-preview small{color:var(--hot2);margin-top:3px}.setup-form input{width:100%}.setup-form button{width:100%;min-height:44px;margin-top:16px}.notice{border:1px solid #39465a;background:#121923;border-radius:10px;padding:12px;margin:14px 0;color:#cbd3df}.notice.ok{border-color:#2c7950;background:#10271c}.notice.bad{border-color:#7d3440;background:#291116}.profile-links{display:flex;gap:16px;margin-top:18px}.profile-links a,.admin-links a{color:#ff9b60;text-decoration:none}
.admin-body{overflow:auto;background:#090c12}.admin-shell{max-width:1200px;margin:auto;padding:28px}.admin-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.admin-top h1{font-size:3rem;margin:.2rem 0 0}.admin-top h1 span{font-size:.3em;color:var(--hot);vertical-align:top}.admin-links{display:flex;gap:14px}.admin-panel{background:linear-gradient(145deg,#141923,#0d1118);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:16px}.admin-panel-head{padding:15px;border-bottom:1px solid var(--line)}.admin-panel-head small{display:block;color:var(--muted);margin-top:3px}.admin-user{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border-bottom:1px solid #222b39}.admin-avatar{width:48px;height:48px}.admin-avatar img{width:48px;height:48px;border-radius:11px;object-fit:cover}.admin-user-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-user-main small{color:var(--muted)}.admin-user-main p{margin:.5rem 0 0;color:#c6ccd5;line-height:1.4}.role-chip,.online-chip{font-size:.65rem;font-weight:900;border-radius:999px;padding:4px 7px;border:1px solid #435066}.role-chip.admin{color:#ffb46e;border-color:#70462e;background:#24150d}.role-chip.moderator{color:#9dccff;border-color:#31577a;background:#0d1c29}.role-chip.user{color:#b7c0cc}.online-chip{color:#5be197;border-color:#286844;background:#0e2118}.admin-user-actions form{margin:0}.admin-user-actions button{min-height:36px}.admin-user-actions button.secondary{background:#171d28;border-color:#49556a}.locked-label{color:#7f8998;font-size:.75rem}.muted-panel{padding:16px;color:#a5adba}
#mobileUsers,#closeUsers{display:none}
@media(max-width:800px){html,body{overflow:hidden}.app{padding:12px 8px 8px}.layout{grid-template-columns:1fr}.online-card{position:fixed;z-index:30;right:0;top:0;height:100dvh;width:min(340px,88vw);border-radius:0;transform:translateX(103%);transition:transform .2s ease;box-shadow:-20px 0 60px #0008}.online-card.open{transform:none}#mobileUsers,#closeUsers{display:block}.head-actions b,.role-badge{display:none!important}.topbar{margin-bottom:10px}.logo{font-size:1.9rem}footer{display:none}.header-link{padding:7px 8px}.admin-user{grid-template-columns:auto 1fr}.admin-user-actions{grid-column:1/-1}.admin-top{align-items:flex-start;gap:12px}.admin-links{flex-direction:column}.admin-shell{padding:16px}}

/* v0.9a RadioBot */
.now-playing-message{border-left:2px solid #ff7136;padding-left:10px}
.now-playing-badge{display:inline-block;margin-right:9px;padding:3px 7px;border:1px solid #ff7136;border-radius:5px;color:#ff8a55;font-size:10px;font-weight:900;letter-spacing:.08em;vertical-align:middle}
.now-playing-song{font-weight:700;vertical-align:middle}

/* v0.9b RadioBot presence */
.user-row.radio-bot-row{border-left:2px solid rgba(255,113,54,.65)}

/* v0.9d Clear Chat */
.danger-panel{border-color:#6d3038}.danger-panel .admin-panel-head{background:#241014}.admin-user-actions button.danger{background:linear-gradient(135deg,#9d2634,#d13b49);border-color:#e25260;color:#fff;padding:0 16px;font-weight:900}.admin-user-actions button.danger:hover{filter:brightness(1.08)}

/* v0.9e – compact in-chat live player */
.chat-card{grid-template-rows:auto auto minmax(0,1fr) auto auto}
.radio-player{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;min-height:66px;padding:9px 13px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#17110e,#10151d 38%,#0d1118)}
.radio-player-brand{display:flex;align-items:center;gap:9px;min-width:145px}.radio-player-brand strong,.radio-player-brand small{display:block}.radio-player-brand strong{font-size:.78rem;letter-spacing:.08em}.radio-player-brand small{margin-top:2px;color:#ff8a55;font-size:.63rem;font-weight:900;letter-spacing:.12em}
.radio-live-dot{width:10px;height:10px;border-radius:50%;background:#6f7784;box-shadow:none;transition:.2s ease}
.radio-player[data-state="playing"] .radio-live-dot{background:#ff6428;box-shadow:0 0 14px #ff642899}
.radio-player-track{min-width:0}.radio-player-track span,.radio-player-track b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radio-player-track span{color:#aeb6c2;font-size:.73rem}.radio-player-track b{margin-top:2px;font-size:.93rem;color:#f5f7fa}
.radio-player-controls{display:flex;gap:7px}.radio-player-controls button{min-height:36px;border-radius:9px;padding:0 12px;border:1px solid #3a4558;background:#171d28;color:#e9edf2;font-size:.72rem;font-weight:900;letter-spacing:.04em}.radio-player-controls .radio-play{border-color:#8d492a;background:#28150e;color:#ffad78}.radio-player[data-state="playing"] .radio-play{border-color:#df652e;color:#fff}.radio-player[data-state="loading"] .radio-play{opacity:.72}.radio-player[data-state="error"] .radio-live-dot{background:#d54f5d}.radio-player[data-state="error"] .radio-play{border-color:#8a3643;color:#ff9ca6}
@media(max-width:800px){.radio-player{grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:8px 10px}.radio-player-brand{display:none}.radio-player-controls{gap:5px}.radio-player-controls button{padding:0 9px;font-size:.68rem}.radio-player-track b{font-size:.84rem}.radio-player-track span{font-size:.68rem}}

/* v0.9e1 – SoP Live Player visual polish (CSS only) */
.radio-player{
 position:relative;isolation:isolate;overflow:hidden;
 min-height:66px;padding:8px 13px;gap:15px;
 border-bottom:1px solid #4a2b20;
 background:
  radial-gradient(circle at 8% 50%,rgba(255,100,40,.13),transparent 23%),
  linear-gradient(100deg,#19100d 0%,#111720 39%,#0c1118 100%);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.025),inset 0 -1px 0 rgba(255,100,40,.06)
}
.radio-player:before{content:"";position:absolute;z-index:-1;inset:0 auto 0 0;width:3px;background:linear-gradient(#ffad5e,#ff6428);box-shadow:0 0 16px rgba(255,100,40,.55)}
.radio-player:after{content:"";position:absolute;z-index:-1;right:155px;top:0;width:170px;height:100%;opacity:.18;background:repeating-linear-gradient(90deg,transparent 0 7px,rgba(255,124,65,.25) 7px 8px);mask-image:linear-gradient(90deg,transparent,#000,transparent);pointer-events:none}
.radio-player-brand{min-width:166px;gap:11px;padding-right:14px;border-right:1px solid rgba(255,132,75,.16)}
.radio-player-brand>div{line-height:1.05}.radio-player-brand strong{font-size:.76rem;letter-spacing:.14em;color:#fff;text-shadow:0 0 14px rgba(255,255,255,.06)}
.radio-player-brand small{margin-top:5px;font-size:.58rem;letter-spacing:.17em;color:#ff8750}
.radio-live-dot{position:relative;width:11px;height:11px;border:2px solid #555e6b;background:#222933;box-shadow:0 0 0 4px rgba(255,255,255,.025)}
.radio-player[data-state="playing"] .radio-live-dot{border-color:#ff8b55;background:#ff6428;box-shadow:0 0 0 4px rgba(255,100,40,.10),0 0 15px rgba(255,100,40,.7);animation:sopLivePulse 1.8s ease-in-out infinite}
@keyframes sopLivePulse{0%,100%{transform:scale(.9);box-shadow:0 0 0 4px rgba(255,100,40,.08),0 0 10px rgba(255,100,40,.45)}50%{transform:scale(1.05);box-shadow:0 0 0 6px rgba(255,100,40,.035),0 0 19px rgba(255,100,40,.8)}}
.radio-player-track{position:relative;padding-left:2px}.radio-player-track span{font-size:.65rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#ff9b68}.radio-player-track b{margin-top:4px;font-size:1rem;letter-spacing:.005em;color:#f7f8fa;text-shadow:0 1px 8px #000}
.radio-player-controls{align-items:center;gap:8px}.radio-player-controls button{display:grid;place-items:center;height:38px;min-height:38px;border-radius:999px;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}
.radio-player-controls button:hover{transform:translateY(-1px)}
.radio-player-controls .radio-play{min-width:76px;padding:0 15px;border-color:#a74b25;background:linear-gradient(145deg,#3a1b10,#24120d);color:#ffb07c;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 4px 16px rgba(0,0,0,.2)}
.radio-player-controls .radio-stop{min-width:68px;padding:0 13px;background:linear-gradient(145deg,#1c2430,#111721);border-color:#3b4658;color:#cdd3dc}
.radio-player[data-state="playing"] .radio-play{background:linear-gradient(145deg,#ff7538,#d94b15);border-color:#ff8a4d;color:#fff;box-shadow:0 0 18px rgba(255,100,40,.23),inset 0 1px 0 rgba(255,255,255,.17)}
.radio-player[data-state="playing"]:after{opacity:.42;animation:sopSignal 2.5s linear infinite}
@keyframes sopSignal{from{transform:translateX(0)}to{transform:translateX(16px)}}
.radio-player[data-state="loading"] .radio-live-dot{animation:sopLivePulse 1s ease-in-out infinite}.radio-player[data-state="error"]{border-bottom-color:#71343c}
@media(max-width:800px){.radio-player{min-height:60px;padding:7px 9px}.radio-player:after{display:none}.radio-player-track span{font-size:.58rem}.radio-player-track b{font-size:.84rem;margin-top:3px}.radio-player-controls button{height:35px;min-height:35px}.radio-player-controls .radio-play{min-width:58px;padding:0 9px}.radio-player-controls .radio-stop{min-width:52px;padding:0 8px}}
@media(prefers-reduced-motion:reduce){.radio-player[data-state="playing"] .radio-live-dot,.radio-player[data-state="playing"]:after{animation:none}}


/* v0.9e2 – unmistakable active PLAY/LIVE state */
.radio-player[data-state="playing"] .radio-play{
 position:relative;
 overflow:visible;
 background:linear-gradient(145deg,#ff8545,#e64f17 55%,#c73d0b);
 border-color:#ffb17d;
 color:#fff;
 text-shadow:0 1px 4px rgba(0,0,0,.38),0 0 8px rgba(255,255,255,.22);
 box-shadow:
  0 0 0 1px rgba(255,116,55,.20),
  0 0 14px rgba(255,100,40,.60),
  0 0 28px rgba(255,100,40,.28),
  inset 0 1px 0 rgba(255,255,255,.24);
 animation:sopPlayButtonLive 1.45s ease-in-out infinite;
}
.radio-player[data-state="playing"] .radio-play:after{
 content:"";
 position:absolute;
 inset:-5px;
 border:1px solid rgba(255,126,67,.55);
 border-radius:999px;
 pointer-events:none;
 animation:sopPlayRing 1.45s ease-out infinite;
}
@keyframes sopPlayButtonLive{
 0%,100%{transform:translateY(0) scale(1);box-shadow:0 0 0 1px rgba(255,116,55,.18),0 0 11px rgba(255,100,40,.48),0 0 23px rgba(255,100,40,.20),inset 0 1px 0 rgba(255,255,255,.24)}
 50%{transform:translateY(-1px) scale(1.035);box-shadow:0 0 0 2px rgba(255,116,55,.20),0 0 21px rgba(255,100,40,.88),0 0 38px rgba(255,100,40,.34),inset 0 1px 0 rgba(255,255,255,.30)}
}
@keyframes sopPlayRing{
 0%{opacity:.75;transform:scale(.92)}
 70%,100%{opacity:0;transform:scale(1.18)}
}
.radio-player[data-state="loading"] .radio-play{
 animation:sopConnectPulse .9s ease-in-out infinite;
}
@keyframes sopConnectPulse{0%,100%{opacity:.72}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){
 .radio-player[data-state="playing"] .radio-play,
 .radio-player[data-state="playing"] .radio-play:after,
 .radio-player[data-state="loading"] .radio-play{animation:none}
}


/* v0.9k1 – Sound of Prog Sendeplan broadcast card */
.schedule-broadcast-message{
  margin:7px 0;
  padding:11px 13px !important;
  border:1px solid rgba(255,122,48,.48) !important;
  border-left:3px solid #ff7a30 !important;
  border-radius:11px;
  background:
    linear-gradient(90deg,rgba(255,105,32,.13),rgba(255,105,32,.025) 52%,rgba(0,0,0,0)),
    #0e141d;
  box-shadow:0 7px 22px rgba(0,0,0,.18),inset 0 0 24px rgba(255,104,32,.025);
}
.schedule-broadcast-message .message-meta b{
  color:#ff9a5d;
  letter-spacing:.02em;
}
.schedule-broadcast-message .message-text{
  font-weight:700;
  line-height:1.5;
}
.schedule-broadcast-avatar{
  width:42px !important;
  height:42px !important;
  border-radius:50% !important;
  background:#090d13 !important;
  border:1px solid rgba(255,126,61,.58);
  box-shadow:0 0 16px rgba(255,105,32,.18);
  object-fit:cover;
}
@media(max-width:700px){
  .schedule-broadcast-message{padding:10px !important;margin:6px 0}
  .schedule-broadcast-avatar{width:38px !important;height:38px !important}
}


/* v0.9l – current show banner replaces #Lobby / 24h history */
.show-room-head{
  min-height:104px;
  padding:10px 12px !important;
  gap:12px;
  align-items:center !important;
  background:
    linear-gradient(90deg,rgba(255,104,32,.075),rgba(255,104,32,0) 42%),
    #111925;
  border-bottom:1px solid rgba(255,126,61,.28);
}
.current-show-banner{
  min-width:0;
  display:flex;
  align-items:center;
  gap:14px;
  flex:1;
}
.current-show-art-wrap{
  width:84px;
  height:84px;
  position:relative;
  flex:0 0 84px;
  border-radius:10px;
  overflow:hidden;
  background:#080d13;
  border:1px solid rgba(255,129,65,.42);
  box-shadow:0 0 22px rgba(255,103,31,.12);
}
.current-show-art{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.current-show-live{
  position:absolute;
  left:6px;
  bottom:6px;
  padding:3px 6px;
  border-radius:999px;
  background:#e6422f;
  color:#fff;
  font-size:.55rem;
  font-weight:900;
  letter-spacing:.08em;
  box-shadow:0 0 12px rgba(230,66,47,.45);
}
.current-show-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.current-show-kicker{
  color:#ff8a4b !important;
  font-size:.64rem !important;
  font-weight:900;
  letter-spacing:.12em;
}
.current-show-copy b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#fff;
  font-size:1.15rem;
  line-height:1.18;
}
.current-show-copy #currentShowHost{
  color:#d8e0ea;
  font-weight:700;
  font-size:.87rem;
}
.current-show-copy #currentShowTime{
  color:#8190a3;
  font-size:.72rem;
}
.current-show-banner.no-schedule .current-show-live{display:none}
.show-room-head #mobileUsers{flex:0 0 auto}

@media(max-width:700px){
  .show-room-head{min-height:82px;padding:8px !important}
  .current-show-banner{gap:9px}
  .current-show-art-wrap{width:62px;height:62px;flex-basis:62px;border-radius:8px}
  .current-show-live{left:4px;bottom:4px;padding:2px 4px;font-size:.45rem}
  .current-show-kicker{font-size:.52rem !important;letter-spacing:.08em}
  .current-show-copy b{font-size:.92rem}
  .current-show-copy #currentShowHost{font-size:.73rem}
  .current-show-copy #currentShowTime{font-size:.63rem}
}
@media(max-width:430px){
  .show-room-head{gap:6px}
  .current-show-art-wrap{width:54px;height:54px;flex-basis:54px}
  .current-show-copy b{font-size:.84rem;max-width:210px}
  .current-show-copy #currentShowHost{
    max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
  }
}


/* v0.9l1 – show banner and live player share one desktop row */
.show-player-row{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
  align-items:stretch;
  border-bottom:1px solid rgba(255,126,61,.22);
}
.show-player-row .show-room-head{
  min-width:0;
  margin:0;
  border-bottom:0;
  border-right:1px solid rgba(255,126,61,.20);
}
.show-player-row .radio-player{
  min-width:0;
  min-height:104px;
  margin:0;
  border:0;
  border-radius:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "brand controls"
    "track controls";
  align-content:center;
  column-gap:12px;
  row-gap:5px;
  padding:12px 14px;
}
.show-player-row .radio-player-brand{grid-area:brand;min-width:0}
.show-player-row .radio-player-track{grid-area:track;min-width:0}
.show-player-row .radio-player-controls{
  grid-area:controls;
  align-self:center;
  justify-self:end;
  display:flex;
  gap:7px;
}
.show-player-row .radio-player-track span,
.show-player-row .radio-player-track b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:block;
}
@media(max-width:980px){
  .show-player-row{display:block}
  .show-player-row .show-room-head{
    border-right:0;
    border-bottom:1px solid rgba(255,126,61,.18);
  }
  .show-player-row .radio-player{
    min-height:auto;
    border-bottom:0;
  }
}
@media(max-width:700px){
  .show-player-row .radio-player{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "brand controls"
      "track track";
    padding:10px;
    row-gap:6px;
  }
  .show-player-row .radio-player-controls{
    justify-self:end;
  }
}


/* v0.9l3 – REAL composer visibility fix
   v0.9l2 targeted a non-existent .chat-main wrapper. The actual layout container is .chat-card. */
.chat-card{
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) auto auto !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}
.chat-card > .show-player-row{
  min-height:0;
  grid-row:1;
}
.chat-card > .messages{
  grid-row:2;
  min-height:0 !important;
  height:auto !important;
  overflow-y:auto !important;
}
.chat-card > .composer{
  grid-row:3;
  min-height:58px;
  position:relative !important;
  inset:auto !important;
  flex:none !important;
  z-index:8;
}
.chat-card > .send-error{
  grid-row:4;
  margin-top:0 !important;
  min-height:21px;
  background:#0c1017;
}

/* hidden picker must never consume a grid row */
.chat-card > .media-picker[hidden]{
  display:none !important;
}

/* If picker is open it floats above the composer/messages instead of changing card height */
.chat-card > .media-picker:not([hidden]){
  position:absolute;
  left:10px;
  bottom:72px;
  z-index:25;
}

@media(max-width:980px){
  .chat-card > .composer{
    min-height:58px;
  }
}

/* ============================================================
   v0.11 – PERFORMANCE & CLEAN UI
   Static SoP sci-fi styling: no continuous FX or GPU-heavy blur.
   ============================================================ */
:root{--sop-orange:#ff7136;--sop-panel:#0d141d;--sop-line:#263445}

html,body{background:#06090e!important}
body{
 background:
  radial-gradient(ellipse at 10% 12%,rgba(118,35,18,.16),transparent 32%),
  radial-gradient(ellipse at 91% 82%,rgba(18,52,82,.14),transparent 34%),
  linear-gradient(145deg,#090b10 0%,#05080c 55%,#080b11 100%)!important;
 overflow-x:hidden
}
.chat-card,.users-card{
 position:relative;
 background:linear-gradient(180deg,rgba(16,24,35,.99),rgba(9,15,23,.995))!important;
 border:1px solid rgba(75,98,126,.42)!important;
 box-shadow:0 9px 20px rgba(0,0,0,.22)!important;
 backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important
}
.chat-card{border-top-color:rgba(255,113,54,.40)!important}
.users-card{border-top-color:rgba(72,125,169,.32)!important}
.chat-card::after,.users-card::after{
 content:"";position:absolute;inset:7px;pointer-events:none;border-radius:inherit;
 background:
  linear-gradient(var(--sop-orange),var(--sop-orange)) left top/16px 1px no-repeat,
  linear-gradient(var(--sop-orange),var(--sop-orange)) left top/1px 16px no-repeat,
  linear-gradient(rgba(76,132,177,.44),rgba(76,132,177,.44)) right bottom/16px 1px no-repeat,
  linear-gradient(rgba(76,132,177,.44),rgba(76,132,177,.44)) right bottom/1px 16px no-repeat;
 opacity:.34
}
.show-player-row{
 position:relative;overflow:hidden;
 background:linear-gradient(90deg,rgba(255,101,31,.05),transparent 38%,rgba(38,77,109,.04)),#0d141d!important;
 border-bottom:1px solid rgba(255,113,54,.28);
 box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important
}
.show-room-head,.radio-player{background:transparent!important}
.current-show-art-wrap{box-shadow:0 0 7px rgba(255,100,31,.07)!important;filter:none!important}
.current-show-live,.radio-live-dot,.online-dot{animation:none!important}
.current-show-live{box-shadow:0 0 5px rgba(230,66,47,.18)!important}
.radio-live-dot{box-shadow:0 0 4px rgba(255,113,54,.16)!important}
.radio-player-brand::after,.radio-player::after,.radio-player-track::after{content:none!important;display:none!important}

.messages{
 position:relative;
 background:linear-gradient(90deg,rgba(255,113,54,.015),transparent 8%,transparent 92%,rgba(61,125,176,.015))
}
.message,.message-avatar{animation:none!important;transition:none!important;filter:none!important}
.message::before,.message::after,.messages::before,.messages::after{animation:none!important}
.message:hover{background:rgba(255,255,255,.01)}
.message:has(.now-playing-badge){background:linear-gradient(90deg,rgba(255,104,31,.03),transparent 38%)}
.schedule-broadcast-message{
 background:linear-gradient(100deg,rgba(255,105,31,.09),rgba(16,23,33,.97) 42%,rgba(10,16,24,.99))!important;
 box-shadow:inset 2px 0 0 rgba(255,113,54,.68)!important
}
.schedule-broadcast-message::after{display:none!important}
.users-card .user-row{transition:none!important}
.users-card .user-row:hover{background:linear-gradient(90deg,rgba(255,113,54,.04),transparent);transform:none!important}
.online-dot{box-shadow:0 0 4px rgba(47,225,144,.22)!important}

.composer{
 background:linear-gradient(180deg,rgba(14,21,30,.995),rgba(8,13,19,.995))!important;
 border-top-color:rgba(255,113,54,.17)!important;
 box-shadow:0 -3px 9px rgba(0,0,0,.10)!important
}
.composer::after,#sendBtn::after{display:none!important}
.composer input{background:#0a1017!important}
.composer input:focus{box-shadow:0 0 0 1px rgba(255,113,54,.24)!important}
button,.topnav a,.message-avatar{
 animation:none!important;transform:none!important;filter:none!important;
 transition:background-color .08s ease,border-color .08s ease,color .08s ease!important
}
button:hover,.topnav a:hover{transform:none!important}

/* Entrance: cheap static rendering */
.entry-card,.entry-shell,.entry-visual,.entry-content,.entry-logo-wrap{
 filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important
}
.entry-card{box-shadow:0 12px 28px rgba(0,0,0,.28)!important}
.entry-visual{
 background:linear-gradient(135deg,rgba(255,106,26,.05),transparent 55%),#0c121a!important
}
.entry-visual::before,.entry-visual::after{opacity:.22!important}
.entry-logo-wrap{filter:none!important}
.entry-live-line i{animation:none!important;box-shadow:0 0 6px rgba(255,112,46,.28)!important}

/* Neutralise all old cinematic layer classes if any markup remains */
.sop-cinematic-bg,.sop-nebula,.sop-stars,.sop-scan,.sop-orbit,.sop-beam,.sop-pulse-core,
.sop-gridfloor,.sop-holo-ring,.sop-data-stream,.sop-lensflare{
 display:none!important;animation:none!important;filter:none!important
}

/* Browser autofill paint suppression where a browser ignores autocomplete=off */
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,
textarea:-webkit-autofill,select:-webkit-autofill{
 -webkit-text-fill-color:#eef3f8!important;
 -webkit-box-shadow:0 0 0 1000px #0a1017 inset!important
}

@media(max-width:900px){
 body{background:radial-gradient(ellipse at 8% 8%,rgba(103,31,17,.10),transparent 30%),#06090e!important}
 .chat-card,.users-card{box-shadow:none!important;background:#0c131c!important}
 .chat-card::after,.users-card::after{display:none!important}
 .show-player-row{background:#0d141d!important}
 .current-show-art-wrap{box-shadow:none!important}
 .entry-card{box-shadow:0 6px 16px rgba(0,0,0,.20)!important}
 .entry-visual::before,.entry-visual::after{display:none!important}
}
@media(max-width:520px){
 body{background:#06090e!important}
 .entry-card,.chat-card,.users-card,.composer,.show-player-row{box-shadow:none!important}
 .message:hover,.users-card .user-row:hover{background:transparent!important}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}
}


/* v0.11g – RadioBot / SoP Plus Artist Registry enrichment */
.artist-now-playing-message .message-text{
  display:block;
}
.now-playing-artist-card{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:8px;
  min-width:0;
}
.now-playing-artist-thumb{
  width:58px;
  height:58px;
  flex:0 0 58px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid rgba(255,126,61,.42);
  background:#0a1017;
}
.now-playing-artist-content{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:7px;
}
.now-playing-artist-content .now-playing-song{
  display:block;
  line-height:1.3;
}
.now-playing-artist-links{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.now-playing-artist-links a{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:3px 8px;
  border:1px solid rgba(255,126,61,.36);
  border-radius:7px;
  background:#111923;
  color:#ff9a68;
  font-size:.69rem;
  font-weight:800;
  text-decoration:none;
}
.now-playing-artist-links a:hover{
  border-color:#ff7e3d;
  color:#fff;
}
@media(max-width:520px){
  .now-playing-artist-card{align-items:flex-start}
  .now-playing-artist-thumb{width:48px;height:48px;flex-basis:48px;border-radius:8px}
  .now-playing-artist-links{gap:5px}
  .now-playing-artist-links a{font-size:.64rem;min-height:24px;padding:2px 7px}
}


/* v0.11l1 – user management visually aligned with SoP Plus */
.admin-user-table-head{
 display:grid;grid-template-columns:minmax(250px,1.35fr) 130px 120px 120px 150px;
 gap:12px;align-items:center;padding:9px 12px;
 border-bottom:1px solid #2b3544;color:#8fa1b7;
 font-size:.62rem;font-weight:900;letter-spacing:.08em
}
.admin-user-plusrow{
 display:grid!important;
 grid-template-columns:minmax(250px,1.35fr) 130px 120px 120px 150px!important;
 gap:12px!important;align-items:center!important;
 min-height:58px!important;padding:8px 12px!important
}
.admin-user-identity{display:flex;align-items:center;gap:10px;min-width:0}
.admin-user-plusrow .admin-avatar,.admin-user-plusrow .admin-avatar img{
 width:34px!important;height:34px!important;border-radius:9px!important
}
.admin-user-plusrow .admin-user-main{min-width:0}
.admin-user-plusrow .admin-user-main small{
 display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 margin-top:3px;font-size:.64rem
}
.admin-user-state{display:flex;align-items:center;gap:6px;font-size:.66rem;font-weight:800}
.online-dot,.offline-dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.online-dot{background:#48d99a;box-shadow:0 0 7px #48d99a66}
.offline-dot{background:#647184}
.online-text{color:#55dda1}.offline-text{color:#7f8b9c}
.admin-user-created{font-size:.72rem;color:#c6cfda}
.admin-user-plusrow .admin-user-actions{justify-self:end}
.admin-user-plusrow .admin-user-actions button{
 min-height:30px!important;padding:0 10px!important;font-size:.62rem!important
}
@media(max-width:900px){
 .admin-user-table-head{display:none}
 .admin-user-plusrow{
  grid-template-columns:minmax(0,1fr) auto auto!important;
 }
 .admin-user-created{display:none}
 .admin-user-plusrow .admin-user-actions{grid-column:auto}
}
@media(max-width:620px){
 .admin-user-plusrow{grid-template-columns:minmax(0,1fr) auto!important}
 .admin-user-state{grid-column:2}
 .admin-user-plusrow>div:nth-child(2){grid-column:2;grid-row:1}
 .admin-user-plusrow .admin-user-actions{grid-column:1/-1;justify-self:stretch}
 .admin-user-plusrow .admin-user-actions button{width:100%}
}


/* v0.11l2 – Plus-style user search, sorting and pagination */
.admin-user-tools{
 display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.65fr) 120px auto;
 gap:10px;align-items:end;padding:12px;margin-bottom:12px;
 border:1px solid #2a3544;border-radius:14px;background:#111923
}
.admin-user-tools label{display:flex;flex-direction:column;gap:5px;color:#9aabc0;font-size:.62rem;font-weight:900;letter-spacing:.05em}
.admin-user-tools input,.admin-user-tools select{min-height:36px;width:100%}
.admin-user-tools button{min-height:36px}
.admin-user-plusrow[hidden]{display:none!important}
.admin-user-pagination{
 display:flex;justify-content:space-between;align-items:center;gap:12px;
 padding:12px;color:#91a0b3;font-size:.7rem
}
.admin-user-page-buttons{display:flex;align-items:center;gap:8px}
.admin-user-page-buttons button{min-height:32px;padding:0 10px;font-size:.64rem}
.admin-user-page-buttons button:disabled{opacity:.35;cursor:default}
#adminUserPage{min-width:86px;text-align:center}
@media(max-width:760px){
 .admin-user-tools{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
 .admin-user-tools{grid-template-columns:1fr}
 .admin-user-pagination{align-items:flex-start;flex-direction:column}
}

/* v0.12 – SoP Quiz Engine */
.quiz-nav-button{font:inherit;cursor:pointer}.quiz-nav-button.quiz-active{border-color:#ff7a2d;color:#ff9a5f}.quiz-dock{margin:8px 12px 10px;padding:12px 14px;border:1px solid rgba(255,122,45,.35);border-radius:14px;background:rgba(14,18,25,.97);box-shadow:0 8px 24px rgba(0,0,0,.22)}.quiz-dock-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.quiz-dock-head small{color:#ff8a46;font-weight:900;letter-spacing:.12em}.quiz-dock-title{font-weight:900}.quiz-dock-question{font-size:15px;line-height:1.4;margin:7px 0 10px}.quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.quiz-option{border:1px solid rgba(255,255,255,.12);background:#171d26;color:#f3f5f8;border-radius:10px;padding:9px 11px;text-align:left;cursor:pointer}.quiz-option:hover{border-color:#ff7a2d}.quiz-option.selected{border-color:#ff7a2d;background:rgba(255,122,45,.14)}.quiz-option:disabled{cursor:default;opacity:.72}.quiz-dock-meta{display:flex;gap:12px;flex-wrap:wrap;color:#9ea8b5;font-size:12px}.quiz-join{border:0;border-radius:9px;background:#ff702e;color:#fff;padding:8px 12px;font-weight:900;cursor:pointer}.quiz-leave{background:#242b35}.quiz-chat-card{padding:10px 12px;border:1px solid rgba(255,122,45,.24);border-radius:12px;background:rgba(255,122,45,.06)}.quiz-chat-card b{display:block;margin-bottom:4px}.quiz-chat-card small{color:#aab3bf}.quiz-leaders{margin-top:6px}.quiz-leaders span{display:inline-block;margin-right:10px}.quiz-answer-good{color:#82d9a0}.quiz-message .message-text{width:100%}@media(max-width:640px){.quiz-options{grid-template-columns:1fr}.quiz-dock{margin:7px 8px}.quiz-dock-head{align-items:flex-start}}
