/* minimal */ 
.r102chat-wrap{max-width:1200px;margin:0 auto;padding:12px;}
.r102chat-card{background:#0b1220;border-radius:18px;border:1px solid rgba(255,255,255,.08);overflow:hidden;color:#fff}
.r102chat-top{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.r102chat-status{font-size:12px;opacity:.85}
.r102chat-body{display:flex;gap:12px;padding:12px}
.r102chat-main{flex:1;display:flex;flex-direction:column;min-height:var(--r102chat-h,600px)}
.r102chat-messages{flex:1;overflow:auto;padding:12px;background:rgba(0,0,0,.18);border-radius:14px}
.r102chat-msg{margin:0 0 12px}
.r102chat-sender{font-weight:700;margin-bottom:6px}
.r102chat-bubble{background:rgba(255,255,255,.06);padding:10px 12px;border-radius:14px;display:inline-block;max-width:95%}
.r102chat-img{max-width:260px;border-radius:12px;display:block}
.r102chat-composer{display:flex;gap:10px;align-items:center;margin-top:12px}
.r102chat-iconbtn{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff}
.r102chat-filebtn input{display:none}
#r102chat-text{flex:1;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.25);color:#fff;padding:0 12px}
#r102chat-send{height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#e11;color:#fff;padding:0 14px;font-weight:700}
.r102chat-side{width:320px;display:flex;flex-direction:column;gap:12px}
.r102chat-me,.r102chat-online-list{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}
.r102chat-online-head{display:flex;justify-content:space-between;align-items:center;padding:0 2px}
.r102chat-badge{background:rgba(255,255,255,.12);border-radius:999px;padding:2px 10px;font-size:12px}
.r102chat-online-list{flex:1;overflow:auto}
#r102chat-users{list-style:none;margin:0;padding:0}
#r102chat-users li{padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer}
#r102chat-users li:hover{background:rgba(255,255,255,.06)}
.r102chat-pvt{margin-left:8px;background:#ffd166;color:#000;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800}
.r102chat-start{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:99999}
.r102chat-start-card{width:min(520px,92vw);background:#0b1220;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:18px}
.r102chat-start-title{font-weight:900;font-size:20px;margin-bottom:6px}
.r102chat-start-sub{opacity:.85;margin-bottom:12px}
#r102chat-start-nick{width:100%;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.25);color:#fff;padding:0 12px;margin-bottom:12px}
.r102chat-start-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#r102chat-enter-guest{height:40px;border-radius:12px;border:0;background:#2b6cb0;color:#fff;padding:0 14px;font-weight:800}
.r102chat-link{display:inline-flex;height:40px;align-items:center;justify-content:center;border-radius:12px;border:1px solid rgba(255,255,255,.14);padding:0 14px;color:#fff;text-decoration:none}
.r102chat-emoji{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
.r102chat-emoji-item{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff}
.r102chat-dm{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:99998}
.r102chat-dm-card{width:min(720px,95vw);height:min(520px,92vh);background:#0b1220;border:1px solid rgba(255,255,255,.12);border-radius:18px;display:flex;flex-direction:column;overflow:hidden}
.r102chat-dm-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.r102chat-close{width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;font-size:20px;line-height:1}
.r102chat-dm-messages{flex:1;overflow:auto;padding:12px}
.r102chat-dm-compose{display:flex;gap:10px;padding:12px;border-top:1px solid rgba(255,255,255,.08)}
#r102chat-dm-text{flex:1;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.25);color:#fff;padding:0 12px}
#r102chat-dm-send{height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#e11;color:#fff;padding:0 14px;font-weight:800}
.r102chat-menu{position:fixed;z-index:100000;background:#0b1220;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:8px;display:none;flex-direction:column;gap:6px;min-width:140px}
.r102chat-menu button{height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;font-weight:800;text-align:left;padding:0 10px}
.r102chat-menu.mod .modonly{display:block}
.r102chat-menu .modonly{display:none}
@media (max-width: 980px){ .r102chat-body{flex-direction:column} .r102chat-side{width:100%} }

#r102chat-dm{z-index:9999;}
#r102chat-dm .r102chat-dm-card{position:relative;}
#r102chat-dm-close{position:relative; z-index:10000; pointer-events:auto;}

/* DM hard-close default */
.r102chat-dm{display:none !important;}
.r102chat-dm.r102chat-open{display:block !important;}


/* ===== FIX: scroll area pubblica (no scroll pagina) ===== */
.r102chat-card{height:var(--r102chat-h); max-height:var(--r102chat-h);}
.r102chat-body{height:calc(var(--r102chat-h) - 56px); /* top bar approx */ overflow:hidden;}
.r102chat-main{height:100%; display:flex; flex-direction:column; min-height:0;}
.r102chat-messages{flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden;}
.r102chat-side{height:100%; min-height:0; overflow:hidden;}
/* lista utenti sempre scrollabile */
.r102chat-online-list{flex:1 1 auto; min-height:0; overflow-y:auto;}
/* evita che elementi interni allarghino la pagina */
.r102chat-wrap, .r102chat-card, .r102chat-body, .r102chat-main, .r102chat-side{max-width:100%;}

#r102chat-public{overflow:auto; min-height:200px;}
.r102chat-messages{overflow:auto;}

.r102chat-online-list{max-height:320px; overflow:auto;}
.r102chat-emoji{display:flex; flex-wrap:wrap; gap:8px; padding:10px; margin-top:8px;}
.r102chat-emoji[hidden]{display:none;}

/* Single-line message layout */
.r102chat-msg{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.r102chat-msg-meta{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.r102chat-msg-time{opacity:.7;font-size:12px}
.r102chat-text{display:inline;white-space:pre-wrap}
.r102chat-img img{max-width:260px;border-radius:10px;display:block;margin-top:6px}

/* OnAir card */
.r102chat-onair{margin-bottom:14px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(0,0,0,.18)}
.r102chat-onair-title{font-weight:800;letter-spacing:.08em;font-size:12px;opacity:.9;margin-bottom:10px}
.r102chat-onair-card{display:flex;gap:12px;align-items:center}
.r102chat-onair-img{width:64px;height:64px;border-radius:14px;overflow:hidden;flex:0 0 auto;border:1px solid rgba(255,255,255,.12)}
.r102chat-onair-img img{width:100%;height:100%;object-fit:cover}
.r102chat-onair-program{font-size:18px;font-weight:800;line-height:1.1}
.r102chat-onair-dj{opacity:.85;margin-top:2px}
.r102chat-onair-btns{display:flex;gap:10px;margin-top:12px}
.r102chat-onair-btns > *{flex:1}
.r102chat-mini-btn{width:100%;padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff}
.r102chat-webtv-open{margin-top:10px;width:100%;padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.22);color:#fff;font-weight:700}

/* WebTV modal */
.r102chat-webtv-modal{position:fixed;inset:0;z-index:999999}
.r102chat-webtv-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.65)}
.r102chat-webtv-panel{position:relative;max-width:920px;width:92vw;max-height:86vh;margin:6vh auto;background:rgba(10,14,22,.98);border:1px solid rgba(255,255,255,.12);border-radius:18px;overflow:hidden}
.r102chat-webtv-close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.25);color:#fff;font-size:22px;cursor:pointer}
.r102chat-webtv-body{padding:48px 14px 14px}
.r102chat-webtv-body iframe{width:100%;height:60vh;border:0;border-radius:14px;background:#000}
.r102chat-webtv-placeholder{padding:18px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}


/* === OnAir buttons / pills === */
.r102chat-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.16);
  background:rgba(0,0,0,0.55);
  color:#fff;
  font-weight:700;
  cursor:pointer;
  user-select:none;
  text-decoration:none;
}
.r102chat-pill[disabled]{
  opacity:0.75;
  cursor:not-allowed;
}
.r102chat-pill-active{
  background:#c00;
  border-color:rgba(255,255,255,0.18);
}
.r102chat-pill-off{
  background:rgba(0,0,0,0.70);
}
.r102chat-onair-btns{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.r102chat-onair-btns .r102chat-pill{
  flex:1 1 140px;
}

/* === Modal === */
.r102chat-modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.72);
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.r102chat-modal[hidden]{ display:none; }
.r102chat-modal-inner{
  width:min(520px, 96vw);
  background:rgba(12,18,28,0.98);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:18px;
  padding:16px 16px 14px;
  box-shadow:0 18px 50px rgba(0,0,0,0.55);
  position:relative;
}
.r102chat-modal-inner-wide{
  width:min(860px, 96vw);
}
.r102chat-modal-close{
  position:absolute;
  top:10px; right:12px;
  width:36px; height:36px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.14);
  background:rgba(0,0,0,0.55);
  color:#fff;
  font-size:22px;
  cursor:pointer;
}
.r102chat-modal-title{
  font-size:18px;
  font-weight:800;
  margin:4px 0 6px;
}
.r102chat-modal-sub{
  opacity:0.85;
  margin-bottom:10px;
  font-size:13px;
}
.r102chat-field{
  display:block;
  margin:10px 0;
  font-size:13px;
  opacity:0.95;
}
.r102chat-field input,
.r102chat-field textarea{
  width:100%;
  margin-top:6px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(0,0,0,0.50);
  color:#fff;
}
.r102chat-modal-actions{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:10px;
}
.r102chat-status{
  font-size:13px;
  opacity:0.9;
}
.r102chat-muted{
  opacity:0.8;
}
