/*
  Pulsar Skin
  - Pure CSS overrides (keeps existing HTML/JS behavior)
  - Goal: stable layout + fully refreshed controls + consistent iconography
*/

:root{
  --pulsar-radius-xl: 22px;
  --pulsar-radius-lg: 18px;
  --pulsar-radius-md: 14px;
  --pulsar-radius-sm: 12px;
  --pulsar-chip-bg: rgba(0,0,0,0.22);
  --pulsar-chip-br: rgba(255,255,255,0.10);
  --pulsar-btn-bg: rgba(255,255,255,0.06);
  --pulsar-btn-bg2: rgba(255,255,255,0.10);
  --pulsar-ring: 0 0 0 2px rgba(122,243,255,0.18), 0 0 0 6px rgba(255,124,251,0.10);
}

/* Global icon sizing */
.i{ width:18px; height:18px; display:inline-block; }
button .i{ pointer-events:none; }

/* Make all small icon buttons feel consistent */
.icon-btn{
  min-width:34px;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 12px;
  border-radius:var(--pulsar-radius-md);
  background:linear-gradient(180deg, var(--pulsar-btn-bg), rgba(0,0,0,0.18));
  border:1px solid rgba(255,255,255,0.08);
  color:rgba(249,251,255,0.78);
}
.icon-btn:hover{ background:linear-gradient(180deg, var(--pulsar-btn-bg2), rgba(0,0,0,0.18)); }
.icon-btn:active{ transform:translateY(1px); }

/* Compose bar: rounder + more readable */
.chat-input{ padding-top:10px; }
.composer{
  gap:10px;
  padding:10px;
  border-radius:var(--pulsar-radius-lg);
  background:rgba(0,0,0,0.18);
  border:1px solid rgba(255,255,255,0.07);
}

.composer .icon-btn{
  width:42px;
  min-width:42px;
  height:42px;
  min-height:42px;
  padding:0;
  border-radius:var(--pulsar-radius-md);
}

#message-input{
  border-radius:999px;
  padding:10px 14px;
  background:rgba(0,0,0,0.22);
  border:1px solid rgba(255,255,255,0.07);
}

#message-input:focus{ outline:none; box-shadow:var(--pulsar-ring); border-color:rgba(122,243,255,0.25); }

.btn-primary.btn-send{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
}

/* Quick reactions, emoji rows: round and compact */
.emoji-quick, .emoji-pick{
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(0,0,0,0.22);
}

/* Header call actions: slightly larger and clearer */
.chat-header-actions .icon-btn{
  width:38px;
  min-width:38px;
  height:38px;
  min-height:38px;
  padding:0;
  border-radius:14px;
  background:rgba(0,0,0,0.22);
}

.chat-header-actions .icon-btn:hover{
  background:rgba(255,255,255,0.08);
}

/* Call controls */
.call-control{
  width:44px;
  height:44px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,0.10);
  background:rgba(0,0,0,0.20);
}

.call-control:hover{ background:rgba(255,255,255,0.08); }
.call-control.danger{ background:linear-gradient(135deg, rgba(255,107,129,0.16), rgba(255,124,251,0.10)); }
.call-control.danger:hover{ background:linear-gradient(135deg, rgba(255,107,129,0.22), rgba(255,124,251,0.14)); }

.call-cta{
  border-radius:18px;
  border:1px solid rgba(255,255,255,0.10);
  background:rgba(0,0,0,0.22);
}

.call-cta.accept{ background:linear-gradient(135deg, rgba(122,243,255,0.16), rgba(255,124,251,0.12)); }
.call-cta.reject{ background:linear-gradient(135deg, rgba(255,107,129,0.16), rgba(0,0,0,0.20)); }

/* Mini-profile header: gradient INSIDE the card, no half-out pills */
.user-mini-card{
  padding:12px;
  border-radius:var(--pulsar-radius-xl);
}

.user-mini-banner{ display:none; }

.user-mini-head{
  margin:-12px -12px 12px;
  padding:12px 12px 10px;
  border-radius:var(--pulsar-radius-xl);
  background:
    radial-gradient(circle at 12% 15%, rgba(255,124,251,0.30) 0, transparent 55%),
    radial-gradient(circle at 85% 65%, rgba(122,243,255,0.24) 0, transparent 60%),
    linear-gradient(135deg, rgba(255,255,255,0.07), rgba(255,255,255,0.02));
  border:1px solid rgba(255,255,255,0.08);
}

.user-mini-head .user-mini-header{ margin:0; font-weight:700; letter-spacing:.2px; }

.user-mini-chip{
  background:var(--pulsar-chip-bg);
  border:1px solid var(--pulsar-chip-br);
  padding:5px 10px;
  border-radius:999px;
  backdrop-filter: blur(12px);
  color:rgba(249,251,255,0.90);
}

/* Remove duplicate status pill under username; status is now in the header chip */
.user-mini-card.is-filled .user-mini-sub-pill{ display:none; }

.user-mini-body{
  border-radius:var(--pulsar-radius-lg);
  background:rgba(0,0,0,0.20);
}

.user-mini-actions{ gap:8px; }
.btn-with-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:8px 12px;
  min-height:40px;
}

.btn-xs.btn-with-icon .i{ width:18px; height:18px; }

/* Right panel "My profile" header matches */
.profile-head{
  border-radius:var(--pulsar-radius-xl);
}

/* Small polish: reduce accidental text selection on controls */
button, .icon-btn, .btn, .btn-primary, .btn-xs{ user-select:none; }


/* ===== Discord-like voice panel (compact, bottom-left) ===== */
.voice-mini{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:8px 8px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);margin:0;}
.voice-mini-conn{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.voice-mini-conn-left{min-width:0;display:flex;flex-direction:column;gap:4px;}
.voice-mini-conn-top{display:flex;align-items:center;gap:8px;}
.voice-mini-conn-ico{width:10px;height:10px;border-radius:50%;background: rgba(63, 205, 130, .95);box-shadow:0 0 0 3px rgba(63,205,130,.18);}
.voice-mini-conn-text{font-size:12px;font-weight:800;letter-spacing:.01em;opacity:.95;}
.voice-mini-conn-sub{font-size:11px;opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px;}
.voice-mini-conn-right{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-top:2px;}
.voice-mini-controls{display:flex;align-items:center;gap:8px;justify-content:flex-start;}
.voice-mini-controls .icon-btn.sm{width:34px;height:34px;border-radius:10px;padding:0;display:inline-flex;align-items:center;justify-content:center;}
.voice-mini-controls .icon-btn.sm .i{width:18px;height:18px;}
.voice-mini-controls .icon-btn.sm:hover{transform:translateY(-1px);}
.voice-mini-signal{display:flex;align-items:flex-end;gap:2px;opacity:.75;}
.voice-mini-signal span{display:block;width:3px;border-radius:2px;background:rgba(255,255,255,.65);}
.voice-mini-signal span:nth-child(1){height:6px;opacity:.55;}
.voice-mini-signal span:nth-child(2){height:9px;opacity:.65;}
.voice-mini-signal span:nth-child(3){height:12px;opacity:.8;}
.voice-mini-signal span:nth-child(4){height:15px;opacity:1;}

/* ===== User mini popout positioning ===== */
#modal-user-mini.active{display:block;}
#modal-user-mini{align-items:flex-start;justify-content:flex-start;}
.user-mini-popout{width:360px;max-width:calc(100vw - 24px);margin:12px;transform:none;}
.user-mini-modal-banner{height:96px;border-radius:14px 14px 10px 10px;opacity:.95;}
.user-mini-modal{overflow:hidden;}
.user-mini-modal .modal-header{padding:10px 12px;background:transparent;border:0;}
.user-mini-modal .modal-header h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.7;}
.user-mini-modal .modal-body{padding:12px;}
.user-mini-modal-hero{margin-top:-40px;}
.user-mini-modal-hero .avatar-circle.xl{width:84px;height:84px;border:4px solid rgba(18,18,22,.95);box-shadow:0 12px 30px rgba(0,0,0,.35);}
.user-mini-modal-username{font-size:16px;font-weight:900;margin-top:6px;}
.user-mini-modal-actions .btn{border-radius:12px;}



.user-mini-extra{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);}
.user-mini-extra-row{display:flex;flex-direction:column;gap:6px;}
.user-mini-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.7;}
.user-mini-role-pill{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.05);font-size:12px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.user-mini-role-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--role-color, rgba(255,255,255,.35));}
.user-mini-note{height:34px;border-radius:12px;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.18);color:rgba(255,255,255,.92);padding:0 10px;outline:none;}
.user-mini-note:focus{border-color:rgba(155,220,255,.35);box-shadow:0 0 0 3px rgba(155,220,255,.12);}

/* ===============================
   v14.19 Premium Spotlight Layout
   =============================== */

.voice-participants-luxe{display:flex;flex-direction:column;gap:12px;margin-top:6px;}
.voice-participants-luxe.is-hidden{display:none;}

.voice-spotlight{position:relative;min-height:320px;border-radius:20px;overflow:hidden;
  background: radial-gradient(120% 120% at 50% 0%, rgba(255,255,255,0.10), rgba(255,255,255,0.02) 55%, rgba(0,0,0,0.12) 100%),
              linear-gradient(180deg, rgba(255,255,255,0.06), rgba(0,0,0,0.10));
  box-shadow: 0 34px 120px rgba(0,0,0,0.62);
  border: 1px solid rgba(255,255,255,0.08);
}

.voice-spotlight::before{content:"";position:absolute;inset:-2px;pointer-events:none;
  background: radial-gradient(60% 55% at 50% 35%, rgba(203,166,255,0.22), rgba(203,166,255,0.06) 55%, rgba(0,0,0,0) 100%);
  filter: blur(18px);
  opacity: .9;
}

.voice-strip{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 6px 2px;
  scrollbar-width: thin;scrollbar-color: rgba(255,255,255,0.18) rgba(0,0,0,0);
}
.voice-strip.is-hidden{display:none;}
.voice-strip::-webkit-scrollbar{height:8px;}
.voice-strip::-webkit-scrollbar-track{background: transparent;}
.voice-strip::-webkit-scrollbar-thumb{background: rgba(255,255,255,0.18);border-radius: 999px;}

.voice-participant{--lvl:0;}


/* v72: Voice stage tile badge (bottom-left) with mute/deafen icons (Discord-like) */
.voice-participant{overflow:hidden;}
.voice-participant .vp-tag{
  position:absolute;
  left:12px;
  bottom:12px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius: 10px;
  background: rgba(0,0,0,0.42);
  border: 1px solid rgba(255,255,255,0.10);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 26px rgba(0,0,0,0.35);
  max-width: calc(100% - 24px);
}
.voice-participant .vp-name{
  font-size:12px;
  font-weight:700;
  letter-spacing:.1px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  opacity:.96;
}
.voice-participant .vp-icons{display:inline-flex;align-items:center;gap:6px;}
.voice-participant .vp-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;opacity:.95}
.voice-participant .vp-icon svg{width:14px;height:14px;display:block}
.voice-participant[data-muted="0"] .vp-icon.mic{display:none;}
.voice-participant[data-deafened="0"] .vp-icon.headphones{display:none;}


.voice-participant .vb{display:flex;gap:3px;justify-content:center;align-items:flex-end;height:10px;margin-top:6px;opacity:.0;transform: translateY(2px);
  transition: opacity .18s ease, transform .18s ease;
}
.voice-participant .vb span{display:block;width:4px;border-radius:99px;background: rgba(255,255,255,0.6);height:4px;opacity:.85;}
.voice-participant[data-speaking="1"] .vb{opacity:.85;transform: translateY(0);} 
.voice-participant[data-speaking="1"] .vb span:nth-child(1){height:6px;}
.voice-participant[data-speaking="1"] .vb span:nth-child(2){height:10px;}
.voice-participant[data-speaking="1"] .vb span:nth-child(3){height:8px;}

.voice-spotlight .voice-participant{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  border-radius:20px; padding:22px;
  background: radial-gradient(80% 80% at 50% 30%, rgba(255,255,255,0.08), rgba(255,255,255,0.03) 55%, rgba(0,0,0,0.10) 100%);
}
.voice-spotlight .voice-participant::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:20px;
  box-shadow: 0 0 calc(46px * var(--lvl)) rgba(203,166,255,0.55);
  opacity: calc(0.25 + (var(--lvl) * 0.75));
}
.voice-spotlight .voice-participant .va{width:104px;height:104px;font-size:44px;border-radius: 28px;
  box-shadow: 0 24px 90px rgba(0,0,0,0.60);
}
.voice-spotlight .voice-participant .vn{font-size:18px;font-weight:700;letter-spacing:0.2px;opacity:.98;}

.voice-strip .voice-participant{min-width:152px;max-width: 180px;flex:0 0 auto;align-items:center;justify-content:center;padding:14px 12px;
  border-radius:16px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 14px 48px rgba(0,0,0,0.42);
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.voice-strip .voice-participant:hover{transform: translateY(-2px);border-color: rgba(255,255,255,0.16);background: rgba(255,255,255,0.08);} 
.voice-strip .voice-participant::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:16px;
  box-shadow: 0 0 calc(32px * var(--lvl)) rgba(203,166,255,0.50);
  opacity: calc(0.15 + (var(--lvl) * 0.85));
}
.voice-strip .voice-participant .va{width:54px;height:54px;font-size:22px;border-radius: 16px;}
.voice-strip .voice-participant .vn{font-size:13px;font-weight:700;opacity:.92;margin-top:8px;}

