:root {
  --bg: #07080a;
  --panel: #0d0f13;
  --panel-2: #12151a;
  --line: #242831;
  --gold: #d4a63c;
  --gold-2: #8a6420;
  --text: #f4f1e8;
  --muted: #8d929d;
  --green: #57c785;
  --red: #ea6767;
  --orange: #df9f42;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 75% 10%, rgba(212,166,60,.08), transparent 25%),
    linear-gradient(180deg, #0a0b0e 0%, #050607 100%);
  color: var(--text);
  font-family: Inter, system-ui, sans-serif;
}
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .42; }
.hidden { display: none !important; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 280px 1fr; }
.sidebar {
  border-right: 1px solid var(--line);
  background: rgba(8,9,12,.96);
  padding: 24px 18px;
  display: flex;
  flex-direction: column;
}
.brand { display: flex; align-items: center; gap: 13px; padding: 4px 6px 24px; border-bottom: 1px solid var(--line); }
.crest {
  width: 52px; height: 52px; display: grid; place-items: center;
  border: 1px solid rgba(212,166,60,.65); transform: rotate(45deg);
  background: linear-gradient(145deg, #1d1710, #090a0c);
  color: var(--gold); font-family: Cinzel; font-size: 26px; font-weight: 700;
  box-shadow: 0 0 24px rgba(212,166,60,.08);
}
.brand h1 { font: 700 24px/1 Cinzel; letter-spacing: 3px; margin: 0; color: var(--gold); }
.brand p { margin: 6px 0 0; color: var(--muted); font-size: 12px; }
.sidebar-section { padding-top: 24px; flex: 1; }
.section-title { color: #666d78; font-size: 11px; letter-spacing: 1.4px; font-weight: 700; padding: 0 10px 10px; }
.room {
  width: 100%; border: 0; color: #b7bbc3; background: transparent; border-radius: 10px;
  padding: 11px 10px; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; text-align: left; gap: 4px;
  margin-bottom: 4px;
}
.room:hover { background: #12151a; color: #fff; }
.room.active { background: linear-gradient(90deg, rgba(212,166,60,.16), rgba(212,166,60,.03)); color: #f6df9e; border-left: 2px solid var(--gold); }
.room small { color: #777d87; min-width: 21px; height: 21px; padding: 0 6px; border-radius: 999px; display: grid; place-items: center; font-size: 11px; }
.room small.has-users { color: #f3d27d; background: rgba(212,166,60,.12); border: 1px solid rgba(212,166,60,.2); }
.sidebar-footer { border-top: 1px solid var(--line); padding: 18px 8px 2px; display: flex; align-items: center; gap: 10px; }
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: #555; box-shadow: 0 0 0 4px rgba(255,255,255,.03); }
.status-dot.online { background: var(--green); box-shadow: 0 0 10px rgba(87,199,133,.6); }
.sidebar-footer strong, .sidebar-footer span { display: block; }
.sidebar-footer strong { font-size: 13px; }
.sidebar-footer span { color: var(--muted); font-size: 11px; margin-top: 3px; }

.main-panel { padding: 0 44px 36px; max-width: 1380px; width: 100%; margin: 0 auto; }
.topbar { height: 92px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.eyebrow { color: #6f7580; font-size: 10px; letter-spacing: 1.6px; font-weight: 700; }
.topbar h2 { margin: 5px 0 0; font-size: 20px; }
.top-actions { display: flex; align-items: center; gap: 12px; }
.secure-badge { color: #72c991; background: rgba(73,166,103,.08); border: 1px solid rgba(87,199,133,.18); padding: 8px 11px; border-radius: 999px; font-size: 11px; }
.ghost { border: 1px solid var(--line); color: #aaa; background: #0c0e12; padding: 8px 12px; border-radius: 8px; }
.ghost:not(:disabled):hover { color: #fff; border-color: #3a404a; }
.danger:not(:disabled):hover { color: #fff; border-color: #5a2525; background: #211011; }
.admin-trigger.admin-active { color: #f5d887; border-color: rgba(212,166,60,.45); background: rgba(212,166,60,.08); }

.hero { min-height: 260px; display: flex; align-items: center; justify-content: space-between; padding: 36px 28px; border-bottom: 1px solid var(--line); }
.hero-tag { font-size: 11px; color: var(--gold); letter-spacing: 2px; font-weight: 700; }
.hero h3 { font: 700 clamp(34px,4.8vw,64px)/1.02 Cinzel; letter-spacing: -1px; margin: 13px 0 16px; max-width: 780px; text-transform: uppercase; }
.hero p { color: #8e949f; max-width: 620px; margin: 0; }
.rune-orb { width: 150px; height: 150px; border-radius: 50%; display: grid; place-items: center; margin-right: 34px; position: relative; flex: 0 0 auto;
  background: radial-gradient(circle, rgba(212,166,60,.22), rgba(20,16,10,.55) 48%, #0a0b0e 72%); border: 1px solid rgba(212,166,60,.32); box-shadow: 0 0 90px rgba(212,166,60,.09); }
.rune-orb:before, .rune-orb:after { content: ""; position: absolute; inset: 13px; border: 1px solid rgba(212,166,60,.25); transform: rotate(45deg); }
.rune-orb:after { inset: 28px; transform: rotate(22.5deg); }
.rune-orb span { font: 700 54px Cinzel; color: var(--gold); z-index: 2; text-shadow: 0 0 20px rgba(212,166,60,.25); }

.voice-card { margin-top: 30px; background: linear-gradient(180deg,#101318,#0c0e12); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.voice-head { min-height: 56px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; border-bottom: 1px solid var(--line); color: #c9cdd3; font-size: 13px; }
.live-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--green); margin-right: 8px; box-shadow: 0 0 9px rgba(87,199,133,.65); }
#memberCount { color: #777d87; }
.members { min-height: 180px; padding: 16px; display: grid; grid-template-columns: repeat(auto-fill,minmax(285px,1fr)); gap: 10px; align-content: start; }
.empty-state { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.empty-state h4 { margin: 8px 0 5px; }
.empty-state p { margin: 0; color: var(--muted); font-size: 13px; }
.empty-icon { font-size: 28px; opacity: .7; }
.member {
  border: 1px solid #20242b; background: #101319; border-radius: 12px; padding: 13px;
  display: flex; align-items: center; gap: 11px; min-width: 0; position: relative;
  transition: border-color .13s, box-shadow .13s, background .13s, transform .13s;
}
.member.speaking { border-color: rgba(87,199,133,.9); background: rgba(45,102,67,.13); box-shadow: 0 0 0 2px rgba(87,199,133,.09), 0 0 22px rgba(87,199,133,.12); transform: translateY(-1px); }
.avatar-wrap { position: relative; flex: 0 0 auto; }
.avatar { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; background: #1c2027; color: #f3d27d; font-weight: 700; border: 1px solid #2c3139; transition: border-color .13s, box-shadow .13s; }
.member.speaking .avatar { border-color: var(--green); box-shadow: 0 0 0 3px rgba(87,199,133,.13); }
.speaking-dot { position: absolute; right: -2px; bottom: -2px; width: 10px; height: 10px; border-radius: 50%; background: #343942; border: 2px solid #101319; }
.member.speaking .speaking-dot { background: var(--green); box-shadow: 0 0 8px rgba(87,199,133,.8); }
.member-main { min-width: 0; flex: 1; }
.member-name-row { display: flex; align-items: center; gap: 7px; min-width: 0; }
.member strong { display: block; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.member-status { color: #6f7580; font-size: 11px; margin-top: 3px; display: block; }
.member.me { border-color: rgba(212,166,60,.35); background: rgba(212,166,60,.04); }
.role-badge { font-size: 8px; line-height: 1; padding: 4px 5px; border-radius: 5px; color: #f7dc91; background: rgba(212,166,60,.12); border: 1px solid rgba(212,166,60,.24); font-weight: 800; letter-spacing: .6px; }
.volume-control { display: grid; grid-template-columns: 27px 1fr 36px; align-items: center; gap: 7px; margin-top: 9px; }
.tiny-audio-btn { width: 27px; height: 27px; padding: 0; border-radius: 7px; border: 1px solid #292e36; background: #0b0d11; color: #cbd0d8; font-size: 12px; }
.tiny-audio-btn.active { background: #3d191c; border-color: #743038; }
.volume-slider { width: 100%; accent-color: var(--gold); cursor: pointer; }
.volume-value { font-size: 10px; color: #707681; text-align: right; }
.self-label { margin-top: 9px; color: #6f7580; font-size: 10px; }
.member-admin-btn { width: 30px; height: 30px; flex: 0 0 auto; border: 1px solid #2b3038; background: #0b0d11; color: #aaa; border-radius: 8px; }
.member-admin-btn:hover { color: #f2d584; border-color: rgba(212,166,60,.38); }

.control-bar { margin-top: 18px; display: grid; grid-template-columns: minmax(220px,1fr) auto auto 50px 50px; gap: 10px; align-items: end; }
.name-wrap label { display: block; color: #6f7580; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; margin: 0 0 7px 2px; }
.remembered { color: #6f9f7d; font-weight: 500; letter-spacing: 0; }
.name-wrap input { width: 100%; height: 50px; border-radius: 10px; border: 1px solid var(--line); background: #0b0d11; color: #fff; padding: 0 15px; outline: none; }
.name-wrap input:focus { border-color: #665022; box-shadow: 0 0 0 3px rgba(212,166,60,.06); }
.join-btn { height: 50px; border-radius: 10px; border: 1px solid #d7a93d; color: #0b0c0f; font-weight: 800; background: linear-gradient(180deg,#e0b54e,#b68124); padding: 0 20px; }
.join-btn:hover { filter: brightness(1.06); }
.join-btn:disabled { opacity: .55; cursor: not-allowed; }
.round-btn { width: 50px; height: 50px; border-radius: 10px; border: 1px solid var(--line); background: #0d1014; color: #ddd; font-size: 18px; }
.round-btn.active { color: #fff; background: #4c1c1f; border-color: #7d2c31; }
.toast { position: fixed; right: 22px; bottom: 22px; z-index: 100; background: #15181e; border: 1px solid #2a2f37; color: #fff; padding: 12px 15px; border-radius: 10px; opacity: 0; transform: translateY(10px); pointer-events: none; transition: .2s; font-size: 13px; box-shadow: 0 12px 34px rgba(0,0,0,.28); }
.toast.show { opacity: 1; transform: translateY(0); }
#audioContainer { display: none; }

.modal { display: none; position: fixed; inset: 0; z-index: 80; }
.modal.open { display: block; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(5px); }
.admin-modal { position: absolute; right: 0; top: 0; height: 100%; width: min(620px, 94vw); background: #0b0d11; border-left: 1px solid #2a2e35; box-shadow: -30px 0 80px rgba(0,0,0,.38); overflow-y: auto; }
.admin-head { min-height: 92px; border-bottom: 1px solid var(--line); padding: 20px 22px; display: flex; align-items: center; justify-content: space-between; }
.admin-head h3 { margin: 5px 0 0; font-size: 22px; }
.icon-close { width: 36px; height: 36px; border-radius: 9px; border: 1px solid #2a2f37; background: #11141a; color: #aaa; }
.admin-login { padding: 28px 22px; }
.admin-login p { color: #979da7; line-height: 1.5; margin-top: 0; }
.admin-login-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.admin-login-row input { min-width: 0; height: 50px; border-radius: 10px; border: 1px solid #2a2f37; background: #090b0e; color: #fff; padding: 0 14px; outline: none; }
.admin-login-row .join-btn { min-width: 110px; }
#adminLoginHint { color: var(--red); display: block; margin-top: 10px; }
.admin-dashboard { padding: 16px 18px 30px; }
.admin-summary { display: flex; justify-content: space-between; align-items: center; padding: 10px 4px 12px; color: #c9cdd4; }
.admin-summary span { color: #f1cf73; }
.admin-users { display: grid; gap: 10px; }
.admin-user { border: 1px solid #232832; border-radius: 13px; background: #101318; padding: 13px; }
.admin-user-top { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 11px; }
.admin-user-top strong, .admin-user-top span { display: block; }
.admin-user-top strong { font-size: 13px; }
.admin-user-top div > span { font-size: 10px; color: #747a84; margin-top: 4px; }
.admin-mic-state { font-size: 10px; color: #68bd83; padding: 5px 7px; border-radius: 6px; background: rgba(87,199,133,.08); white-space: nowrap; }
.admin-mic-state.muted { color: #ed8989; background: rgba(234,103,103,.08); }
.admin-edit-row { display: grid; grid-template-columns: 1fr 115px; gap: 8px; margin-top: 8px; }
.admin-edit-row input, .admin-edit-row select { width: 100%; min-width: 0; height: 36px; border-radius: 8px; border: 1px solid #282d35; background: #0b0d11; color: #ddd; padding: 0 10px; }
.admin-edit-row button, .admin-actions-row button, .ban-row button { min-height: 34px; border-radius: 8px; border: 1px solid #303640; background: #161a20; color: #cbd0d7; font-size: 11px; padding: 0 9px; }
.admin-edit-row button:hover, .admin-actions-row button:hover, .ban-row button:hover { color: #fff; border-color: #555d68; }
.admin-actions-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.admin-actions-row .warn { border-color: rgba(223,159,66,.3); color: #e6ba75; }
.admin-actions-row .danger-btn { border-color: rgba(234,103,103,.36); color: #ee8e8e; background: rgba(87,22,28,.18); }
.bans-title { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 18px; }
.admin-bans { display: grid; gap: 8px; }
.ban-row { border: 1px solid #322329; border-radius: 10px; background: rgba(71,22,27,.13); padding: 10px; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ban-row strong, .ban-row span { display: block; }
.ban-row strong { font-size: 12px; }
.ban-row span { color: #8d7a7e; font-size: 10px; margin-top: 4px; }
.admin-empty { color: #747b85; text-align: center; padding: 18px 8px; font-size: 12px; }

.blocked-overlay { position: fixed; z-index: 200; inset: 0; display: grid; place-items: center; padding: 20px; background: #07080a; }
.blocked-card { width: min(440px, 100%); text-align: center; border: 1px solid #2b3038; background: #0e1116; border-radius: 18px; padding: 42px 28px; }
.small-crest { margin: 0 auto 30px; width: 46px; height: 46px; font-size: 22px; }
.blocked-card h2 { margin: 0 0 10px; font-family: Cinzel; }
.blocked-card p { margin: 0; color: #8f959e; line-height: 1.55; }

@media (max-width: 860px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { border-right: 0; border-bottom: 1px solid var(--line); padding: 14px; }
  .brand { border-bottom: 0; padding-bottom: 10px; }
  .sidebar-section { display: flex; gap: 6px; overflow-x: auto; padding-top: 8px; }
  .section-title, .sidebar-footer { display: none; }
  .room { min-width: 160px; grid-template-columns: 26px 1fr auto; }
  .main-panel { padding: 0 18px 24px; }
  .topbar { height: 76px; }
  .secure-badge { display: none; }
  .hero { min-height: 220px; padding: 28px 4px; }
  .rune-orb { display: none; }
  .control-bar { grid-template-columns: 1fr 1fr 50px 50px; }
  .name-wrap { grid-column: 1 / -1; }
  .join-btn { grid-column: 1; }
  .screen-share-btn { grid-column: 2; }
  .members { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .top-actions { gap: 6px; }
  .admin-trigger { font-size: 0; width: 38px; padding: 0; }
  .admin-trigger::first-letter { font-size: 14px; }
  .hero h3 { font-size: 34px; }
  .admin-edit-row { grid-template-columns: 1fr; }
  .admin-login-row { grid-template-columns: 1fr; }
  .admin-login-row .join-btn { width: 100%; }
}

/* Ravix Voice v3 additions */
.role-badge.leader { color: #ff8b8b; background: rgba(224,65,65,.12); border-color: rgba(224,65,65,.36); }
.role-badge.admin { color: #f7dc91; }

.chat-card { margin-top: 18px; background: linear-gradient(180deg,#0f1217,#0a0c10); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.chat-head { min-height: 52px; display: flex; justify-content: space-between; align-items: center; padding: 0 18px; border-bottom: 1px solid var(--line); }
.chat-head > div { display: flex; align-items: center; gap: 8px; }
.chat-hash { color: var(--gold); font-weight: 800; font-size: 18px; }
.chat-head strong { font-size: 13px; }
.chat-head small { color: #747b86; font-size: 10px; }
.chat-messages { height: 230px; overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; scroll-behavior: smooth; }
.chat-empty { margin: auto; color: #6f7580; font-size: 12px; text-align: center; }
.chat-message { display: grid; grid-template-columns: 34px 1fr; gap: 9px; align-items: flex-start; }
.chat-avatar { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: #1a1e25; color: #f1cf73; border: 1px solid #2a3039; font-size: 12px; font-weight: 800; }
.chat-body { min-width: 0; }
.chat-meta { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.chat-meta strong { font-size: 12px; color: #e7e9ed; }
.chat-time { color: #646b75; font-size: 9px; }
.chat-text { margin-top: 3px; color: #b9bec7; font-size: 12px; line-height: 1.45; white-space: pre-wrap; word-break: break-word; }
.chat-form { border-top: 1px solid var(--line); padding: 11px; display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.chat-form input { height: 42px; border: 1px solid #282d35; background: #090b0f; border-radius: 9px; color: #fff; padding: 0 12px; outline: none; }
.chat-form input:focus { border-color: #655021; box-shadow: 0 0 0 3px rgba(212,166,60,.05); }
.chat-form input:disabled { opacity: .5; }
.chat-form button { min-width: 86px; height: 42px; border-radius: 9px; border: 1px solid rgba(212,166,60,.42); background: rgba(212,166,60,.12); color: #f0d17b; font-weight: 700; }
.chat-form button:disabled { opacity: .35; }

.mic-settings { margin-top: 12px; border: 1px solid var(--line); background: rgba(13,15,19,.78); border-radius: 13px; padding: 13px 15px; }
.mic-setting-main { display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.settings-label { display: block; color: #8b919b; font-size: 9px; font-weight: 800; letter-spacing: 1.25px; }
.settings-hint { display: block; margin-top: 4px; color: #666d78; font-size: 10px; }
.segmented { display: inline-flex; border: 1px solid #2b3038; background: #090b0e; border-radius: 9px; padding: 3px; gap: 3px; }
.segmented button { border: 0; border-radius: 6px; background: transparent; color: #777e88; padding: 7px 10px; font-size: 10px; }
.segmented button.active { background: rgba(212,166,60,.14); color: #efd17d; box-shadow: inset 0 0 0 1px rgba(212,166,60,.18); }
.ptt-options { margin-top: 12px; padding-top: 11px; border-top: 1px solid #20242b; display: flex; align-items: center; gap: 10px; color: #aab0b9; font-size: 10px; }
.ptt-options small { margin-left: auto; color: #646b75; }
.key-button { min-width: 76px; height: 34px; border-radius: 7px; border: 1px solid #3a414c; background: #11151a; color: #f3d27d; font-weight: 800; font-size: 10px; }
.key-button.capturing { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(212,166,60,.08); }

.admin-role-row { display: grid; grid-template-columns: 1fr 115px; gap: 8px; margin-top: 8px; }
.admin-role-row select { width: 100%; height: 36px; border-radius: 8px; border: 1px solid #282d35; background: #0b0d11; color: #ddd; padding: 0 10px; }
.admin-role-row button { min-height: 34px; border-radius: 8px; border: 1px solid rgba(212,166,60,.3); background: rgba(212,166,60,.08); color: #e7c66e; font-size: 11px; }
#myRoleLabel { color: #e8c66d; font-size: 10px; letter-spacing: .8px; }
.management-limited { color: #6e9b7a; font-size: 10px; }

@media (max-width: 860px) {
  .mic-setting-main { align-items: flex-start; flex-direction: column; }
  .segmented { width: 100%; }
  .segmented button { flex: 1; }
  .ptt-options { flex-wrap: wrap; }
  .ptt-options small { margin-left: 0; width: 100%; }
  .chat-messages { height: 200px; }
}

@media (max-width: 560px) {
  .chat-head { align-items: flex-start; gap: 5px; flex-direction: column; padding: 11px 14px; }
  .chat-form { grid-template-columns: 1fr; }
  .chat-form button { width: 100%; }
  .admin-role-row { grid-template-columns: 1fr; }
}


/* Ravix Voice v5 additions */
.voice-head-actions { display: flex; align-items: center; gap: 10px; }
.voice-leave-btn { min-height: 32px; border-radius: 8px; border: 1px solid rgba(234,103,103,.28); background: rgba(94,24,28,.15); color: #dc9292; padding: 0 11px; font-size: 10px; font-weight: 700; }
.voice-leave-btn:not(:disabled):hover { border-color: rgba(234,103,103,.6); color: #fff; background: rgba(94,24,28,.3); }
.screen-share-btn { min-width: 150px; height: 50px; border-radius: 10px; border: 1px solid rgba(87,199,133,.3); background: rgba(48,118,75,.1); color: #8edba9; font-size: 11px; font-weight: 800; padding: 0 14px; }
.screen-share-btn:not(:disabled):hover { border-color: rgba(87,199,133,.58); color: #d9ffe5; }
.screen-share-btn.active { color: #fff0b4; border-color: rgba(212,166,60,.48); background: rgba(212,166,60,.12); }

.screen-card { margin-top: 18px; background: linear-gradient(180deg,#0d1116,#090b0e); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.screen-head { min-height: 52px; padding: 0 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.screen-head > div { display: flex; gap: 8px; align-items: center; }
.screen-head strong { font-size: 13px; }
.screen-head small { color: #747b86; font-size: 10px; }
.screen-icon { color: #75d699; }
.screen-grid { padding: 14px; display: grid; grid-template-columns: repeat(auto-fit,minmax(320px,1fr)); gap: 12px; }
.screen-tile { background: #050607; border: 1px solid #252b33; border-radius: 12px; overflow: hidden; min-width: 0; }
.screen-tile video { width: 100%; aspect-ratio: 16 / 9; object-fit: contain; display: block; background: #030405; }
.screen-tile-head { min-height: 38px; display: flex; align-items: center; justify-content: space-between; padding: 0 11px; border-top: 1px solid #1e232a; color: #c6cad1; font-size: 11px; }
.screen-tile-head span { color: #62c984; font-size: 9px; }
.screen-empty { color: #747b86; font-size: 11px; padding: 18px; text-align: center; }
.screen-badge { margin-left: 4px; color: #70d38f; font-size: 9px; }

.chat-message { position: relative; padding-right: 76px; }
.chat-actions { position: absolute; right: 0; top: 0; display: flex; gap: 4px; opacity: 0; transition: opacity .12s; }
.chat-message:hover .chat-actions, .chat-actions:focus-within { opacity: 1; }
.chat-action-btn { width: 28px; height: 26px; border: 1px solid #2a3038; border-radius: 7px; background: #0c0f13; color: #89909a; font-size: 11px; padding: 0; }
.chat-action-btn:hover { color: #f2d584; border-color: rgba(212,166,60,.36); }
.chat-action-btn.delete:hover { color: #ef9494; border-color: rgba(234,103,103,.4); }
.chat-edited { color: #626975; font-size: 9px; font-style: italic; }
.chat-editing .chat-text { display: none; }
.chat-edit-row { display: grid; grid-template-columns: 1fr auto auto; gap: 6px; margin-top: 5px; }
.chat-edit-input { min-width: 0; height: 34px; border-radius: 7px; border: 1px solid #3a414b; background: #090b0e; color: #e7e9ed; padding: 0 9px; font-size: 11px; }
.chat-edit-row button { height: 34px; border-radius: 7px; border: 1px solid #303640; background: #15191f; color: #cbd0d7; font-size: 10px; padding: 0 9px; }
.chat-edit-row .save { border-color: rgba(212,166,60,.35); color: #e8ca79; }

@media (max-width: 860px) {
  .screen-grid { grid-template-columns: 1fr; }
  .screen-share-btn { min-width: 0; width: 100%; }
  .voice-head-actions { gap: 7px; }
}

@media (max-width: 560px) {
  .voice-head { align-items: flex-start; gap: 8px; flex-direction: column; padding: 12px 14px; }
  .voice-head-actions { width: 100%; justify-content: space-between; }
  .control-bar { grid-template-columns: 1fr 1fr; }
  .name-wrap { grid-column: 1 / -1; }
  .join-btn, .screen-share-btn { grid-column: auto; min-width: 0; padding: 0 8px; font-size: 10px; }
  .round-btn { width: 100%; }
  .chat-message { padding-right: 0; }
  .chat-actions { position: static; opacity: 1; margin-top: 6px; }
  .chat-edit-row { grid-template-columns: 1fr; }
}

/* Ravix Voice v6 additions */
.sidebar { min-height: 100vh; max-height: 100vh; overflow: hidden; }
.voice-channels-section { flex: 0 0 auto; padding-bottom: 8px; }
.room { margin-bottom: 1px; }
.room-presence-mini { padding: 0 8px 5px 38px; display: flex; flex-direction: column; gap: 2px; }
.room-presence-mini.empty { display: none; }
.room-mini-member { min-height: 28px; display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 7px; color: #808690; border-radius: 7px; padding: 2px 5px; font-size: 10px; }
.room-mini-member:hover { background: rgba(255,255,255,.025); color: #c5cad1; }
.room-mini-member.speaking { color: #d8ffe4; background: rgba(87,199,133,.07); }
.room-mini-avatar { width: 21px; height: 21px; border-radius: 50%; display: grid; place-items: center; background: #171b21; border: 1px solid #2b3139; color: #aab0ba; font-size: 9px; font-weight: 800; }
.room-mini-avatar.leader { border-color: rgba(224,65,65,.52); color: #ff8b8b; background: rgba(105,23,29,.22); }
.room-mini-avatar.admin { border-color: rgba(212,166,60,.45); color: #f0d17c; }
.room-mini-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.room-mini-speaking { color: #66d58d; font-size: 8px; letter-spacing: -1px; animation: speakingPulse .75s ease-in-out infinite alternate; }
.room-mini-muted { opacity: .55; font-size: 9px; }
@keyframes speakingPulse { from { opacity: .45; transform: scaleY(.72); } to { opacity: 1; transform: scaleY(1); } }

.guild-roster-section { flex: 1 1 auto; min-height: 0; border-top: 1px solid var(--line); padding-top: 13px; margin-top: 7px; overflow: hidden; display: flex; flex-direction: column; }
.roster-title { padding-bottom: 7px; flex: 0 0 auto; }
.guild-roster { min-height: 0; overflow-y: auto; padding: 0 3px 10px; scrollbar-width: thin; scrollbar-color: #343941 transparent; }
.roster-group { margin-bottom: 11px; }
.roster-group-title { color: #5f6670; font-size: 9px; letter-spacing: .95px; font-weight: 800; padding: 5px 7px; }
.roster-member { min-height: 36px; display: grid; grid-template-columns: 28px minmax(0,1fr) 20px; align-items: center; gap: 7px; border-radius: 8px; padding: 3px 6px; color: #a1a7b0; }
.roster-member:hover { background: #111419; }
.roster-member.offline { opacity: .43; filter: saturate(.6); }
.roster-avatar { position: relative; width: 27px; height: 27px; border-radius: 50%; display: grid; place-items: center; background: #181c22; border: 1px solid #2b3139; font-size: 10px; font-weight: 800; color: #d2d5da; }
.roster-avatar i { position: absolute; right: -1px; bottom: -1px; width: 9px; height: 9px; border-radius: 50%; background: #444a53; border: 2px solid #0a0b0e; }
.roster-member.online .roster-avatar i { background: var(--green); }
.roster-copy { min-width: 0; }
.roster-copy strong, .roster-copy small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.roster-copy strong { font-size: 10px; color: #b8bdc5; }
.roster-copy small { margin-top: 2px; font-size: 8px; color: #656c76; }
.roster-member.leader .roster-copy strong { color: #ff8787; }
.roster-member.admin .roster-copy strong { color: #e2bd60; }
.roster-role { width: 18px; height: 18px; border-radius: 5px; display: grid; place-items: center; font-size: 8px; border: 1px solid #303640; }
.roster-role.leader { color: #ff8b8b; border-color: rgba(224,65,65,.38); background: rgba(224,65,65,.10); }
.roster-role.admin { color: #ebca75; border-color: rgba(212,166,60,.32); background: rgba(212,166,60,.08); }
.roster-empty { color: #626973; font-size: 10px; padding: 10px 8px; }

.members.observing .member { min-height: 82px; }
.observer-label { margin-top: 8px; color: #656d78; font-size: 9px; }
.member.speaking .member-status { color: #8de2aa; }

.room { user-select: none; }
.room::after { content: ''; }

@media (max-width: 860px) {
  .sidebar { max-height: none; min-height: auto; overflow: visible; }
  .guild-roster-section, .room-presence-mini { display: none !important; }
  .voice-channels-section { flex: 1; }
}

/* v8: ban ve 5 dakikalık site timeoutlarını ayrı göster */
.restriction-group { margin-top: 14px; }
.restriction-group:first-child { margin-top: 0; }
.restriction-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin: 0 0 8px; color:#c9cbd1; font-size:13px; }
.restriction-title span { color:#d9aa3a; font-weight:800; }
.timeout-row { border-color: rgba(217,170,58,.22); }


/* v9 — Yönetim paneli offline üye ve Lider rol yönetimi */
.management-list-heading {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin: 8px 2px 10px; padding: 8px 2px; color: #d9dde5;
  font-size: 12px; letter-spacing: .04em; text-transform: uppercase;
}
.management-list-heading span { color: #d9a82e; font-weight: 800; }
.management-list-heading.offline-heading {
  margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line);
}
.offline-admin-user { opacity: .92; }
.admin-mic-state.offline { color: #818995; background: #15191f; border-color: #272d36; }

/* v10 - İlk giriş oyuncu adı kapısı */
.name-gate { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 22px; }
.name-gate.hidden { display: none; }
.name-gate-backdrop { position: absolute; inset: 0; background: rgba(3,4,7,.88); backdrop-filter: blur(12px); }
.name-gate-card { position: relative; width: min(480px, 100%); padding: 34px; border-radius: 18px; border: 1px solid rgba(211,164,54,.30); background: radial-gradient(circle at 50% 0%, rgba(181,132,29,.12), transparent 42%), #0b0d11; box-shadow: 0 30px 100px rgba(0,0,0,.65); text-align: center; }
.name-gate-crest { width: 66px; height: 66px; margin: 0 auto 18px; display: grid; place-items: center; transform: rotate(45deg); border: 1px solid #9f741d; color: #e6b844; font-family: 'Cinzel', serif; font-size: 30px; font-weight: 700; }
.name-gate-crest::first-letter { transform: rotate(-45deg); }
.name-gate-card h3 { margin: 8px 0 10px; font-family: 'Cinzel', serif; font-size: clamp(26px, 5vw, 36px); color: #f3f0e8; }
.name-gate-card p { margin: 0 auto 22px; max-width: 390px; color: #9ba2ad; line-height: 1.55; }
.name-gate-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.name-gate-form input { min-width: 0; height: 52px; border: 1px solid #30353d; border-radius: 10px; background: #080a0d; color: #fff; padding: 0 15px; outline: none; font-size: 15px; }
.name-gate-form input:focus { border-color: #b58a2a; box-shadow: 0 0 0 3px rgba(181,138,42,.12); }
.name-gate-form .join-btn { min-width: 132px; }
#nameGateHint { display: block; min-height: 18px; margin-top: 12px; color: #727986; }
#nameGateHint.error { color: #ef8a8a; }
@media (max-width: 560px) { .name-gate-card { padding: 28px 20px; } .name-gate-form { grid-template-columns: 1fr; } .name-gate-form .join-btn { width: 100%; } }

/* Ravix Voice v11 — gerçek ilk giriş kapısı + Discord tipi kullanıcı paneli + mobil uyum */
body.name-locked { overflow: hidden; }
body.name-locked .app-shell { visibility: hidden; pointer-events: none; }
.name-gate { z-index: 180; background: #07080a; }
.name-gate-backdrop { background: #07080a; backdrop-filter: none; }
.username-shadow { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
.user-panel { position: relative; padding: 10px 6px 4px; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.user-panel-avatar { width: 34px; height: 34px; border-radius: 50%; background: #171b21; border: 1px solid #2d333c; display: grid; place-items: center; color: #f1ca68; font-size: 12px; font-weight: 800; position: relative; }
.user-panel-avatar .status-dot { position: absolute; right: -2px; bottom: -2px; width: 10px; height: 10px; border: 2px solid #08090c; box-shadow: none; }
.user-panel-identity { min-width: 0; position: relative; border: 0; background: transparent; color: inherit; text-align: left; padding: 5px 22px 5px 3px; border-radius: 7px; }
.user-panel-identity:hover { background: #111419; }
.user-panel-identity strong, .user-panel-identity span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-panel-identity strong { font-size: 12px; color: #e4e6ea; }
.user-panel-identity span { margin-top: 2px; color: #717884; font-size: 9px; }
.edit-glyph { position: absolute; right: 6px; top: 8px; color: #6f7681; font-size: 11px; font-weight: 400; }
.user-panel-controls { display: flex; gap: 5px; }
.user-control-btn { width: 32px; height: 32px; display: grid; place-items: center; padding: 0; border-radius: 8px; border: 1px solid #282e36; background: #0d1014; color: #d7d9dd; font-size: 13px; }
.user-control-btn:hover:not(:disabled) { background: #171b21; color: #fff; }
.user-control-btn.active { color: #fff; background: #4b1d21; border-color: #763139; }
.compact-controls { grid-template-columns: minmax(220px, 1fr) minmax(180px, .55fr); align-items: stretch; }
.compact-controls .join-btn, .compact-controls .screen-share-btn { width: 100%; min-width: 0; }
.mobile-tabs { display: none; }
.mobile-sheet { position: fixed; inset: 0; z-index: 170; }
.mobile-sheet-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(5px); }
.mobile-sheet-card { position: absolute; left: 10px; right: 10px; bottom: 84px; max-height: min(70vh, 620px); display: flex; flex-direction: column; background: #0c0f13; border: 1px solid #2b3038; border-radius: 16px; overflow: hidden; box-shadow: 0 24px 70px rgba(0,0,0,.55); }
.mobile-sheet-card > header { min-height: 64px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #242831; }
.mobile-sheet-card h3 { margin: 3px 0 0; font-size: 16px; }
.mobile-guild-roster { padding: 10px 12px 18px; overflow-y: auto; }
@media (max-width: 860px) {
  body { padding-bottom: 74px; overflow-x: hidden; }
  .app-shell { display: block; min-height: auto; }
  .sidebar { min-height: 0 !important; max-height: none !important; padding: 10px 12px 6px; border-right: 0; border-bottom: 1px solid var(--line); overflow: visible !important; }
  .brand { padding: 0 2px 7px; gap: 10px; border: 0; }
  .brand .crest { width: 36px; height: 36px; font-size: 18px; }
  .brand h1 { font-size: 18px; letter-spacing: 2px; }
  .brand p { display: none; }
  .voice-channels-section { display: flex !important; flex: 0 0 auto !important; gap: 7px; overflow-x: auto; overflow-y: hidden; padding: 6px 0 8px !important; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
  .voice-channels-section > .section-title { display: none; }
  .room { flex: 0 0 auto; min-width: 145px; width: auto; margin: 0; padding: 9px 10px; scroll-snap-align: start; background: #0f1216; border: 1px solid #20252c; }
  .room.active { border: 1px solid rgba(212,166,60,.34); border-left: 2px solid var(--gold); }
  .room-presence-mini, .guild-roster-section { display: none !important; }
  .sidebar-footer.user-panel { display: grid !important; position: fixed; left: 0; right: 0; bottom: 0; z-index: 150; height: 68px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: rgba(9,11,14,.97); border-top: 1px solid #292e36; box-shadow: 0 -10px 28px rgba(0,0,0,.28); }
  .user-panel-avatar { width: 38px; height: 38px; }
  .user-panel-controls { gap: 7px; }
  .user-control-btn { width: 38px; height: 38px; }
  .main-panel { width: 100%; max-width: none; padding: 0 12px 22px; }
  .topbar { height: 60px; padding: 0 2px; }
  .topbar h2 { font-size: 16px; }
  .eyebrow { font-size: 8px; letter-spacing: 1.2px; }
  .top-actions { gap: 7px; }
  .secure-badge, .hero { display: none; }
  .mobile-tabs { position: sticky; top: 0; z-index: 80; display: flex; gap: 6px; margin: 8px -2px 0; padding: 6px 2px; overflow-x: auto; background: rgba(7,8,10,.92); backdrop-filter: blur(10px); }
  .mobile-tabs button { flex: 1 0 auto; min-width: 90px; height: 36px; border-radius: 9px; border: 1px solid #252a31; background: #0d1014; color: #858c96; font-size: 10px; font-weight: 700; }
  .mobile-tabs button.active { color: #f0d27d; border-color: rgba(212,166,60,.34); background: rgba(212,166,60,.08); }
  .voice-card { margin-top: 10px; border-radius: 13px; scroll-margin-top: 58px; }
  .voice-head { min-height: 50px; padding: 0 12px; font-size: 11px; }
  .voice-head-actions { gap: 6px; }
  .voice-leave-btn { min-height: 30px; padding: 0 9px; font-size: 9px; }
  .members { min-height: 120px; padding: 10px; grid-template-columns: 1fr; gap: 8px; }
  .member { padding: 10px; }
  .member .avatar { width: 38px; height: 38px; }
  .member strong { font-size: 12px; }
  .volume-control { grid-template-columns: 28px minmax(80px,1fr) 34px; }
  .screen-card, .chat-card, .mic-settings { border-radius: 13px; }
  .chat-card { margin-top: 10px; scroll-margin-top: 58px; }
  .chat-head { min-height: 46px; padding: 0 12px; }
  .chat-head small { max-width: 45%; text-align: right; }
  .chat-messages { height: 250px; padding: 10px; }
  .chat-form { padding: 9px; grid-template-columns: minmax(0,1fr) auto; }
  .chat-form button { min-width: 72px; }
  .compact-controls { margin-top: 10px; grid-template-columns: 1fr 1fr !important; gap: 8px; }
  .compact-controls .join-btn, .compact-controls .screen-share-btn { grid-column: auto !important; height: 46px; font-size: 10px; padding: 0 8px; }
  .mic-settings { margin-top: 9px; padding: 11px; }
  .mic-setting-main { gap: 10px; }
  .screen-grid { grid-template-columns: 1fr; padding: 9px; }
  .screen-tile video { max-height: 56vh; }
  .admin-modal { width: min(100%, 720px); height: 100dvh; max-height: 100dvh; border-radius: 0; }
  .admin-dashboard, .admin-login { padding-left: 12px; padding-right: 12px; }
  .admin-user { padding: 10px; }
  .toast { left: 12px; right: 12px; bottom: 82px; text-align: center; }
}
@media (max-width: 560px) {
  .sidebar { padding-left: 9px; padding-right: 9px; }
  .room { min-width: 132px; padding: 8px; font-size: 11px; }
  .main-panel { padding-left: 8px; padding-right: 8px; }
  .topbar { height: 54px; }
  .topbar .admin-trigger { width: 38px; height: 36px; font-size: 0; padding: 0; }
  .topbar .admin-trigger::before { content: '🛡'; font-size: 14px; }
  .mobile-tabs button { min-width: 82px; }
  .voice-head { align-items: center; flex-direction: row; }
  .voice-head-actions { width: auto; }
  #memberCount { font-size: 9px; }
  .members.observing .member { min-height: 76px; }
  .member { gap: 9px; }
  .observer-label { font-size: 8px; }
  .chat-message { grid-template-columns: 30px minmax(0,1fr); gap: 7px; }
  .chat-avatar { width: 30px; height: 30px; }
  .chat-text { font-size: 11px; overflow-wrap: anywhere; }
  .chat-actions { position: static; opacity: 1; margin-top: 5px; }
  .chat-form { grid-template-columns: 1fr; }
  .chat-form button { width: 100%; }
  .compact-controls { grid-template-columns: 1fr !important; }
  .compact-controls .join-btn, .compact-controls .screen-share-btn { width: 100%; }
  .segmented { width: 100%; }
  .segmented button { flex: 1; padding: 7px 5px; font-size: 9px; }
  .name-gate { padding: 14px; }
  .name-gate-card { padding: 26px 17px; border-radius: 15px; }
  .name-gate-card h3 { font-size: 27px; }
  .name-gate-card p { font-size: 12px; }
  .mobile-sheet-card { left: 6px; right: 6px; bottom: 74px; max-height: 72dvh; }
  .user-panel { grid-template-columns: 38px minmax(0,1fr) auto; }
  .user-panel-identity strong { font-size: 11px; }
  .user-panel-identity span { font-size: 8px; }
}


/* Ravix Voice v12 — yönetim paneli makyajı + tek-tık Admin toggle + Discord tipi disconnect */
.disconnect-control {
  color: #e7a1a1;
  border-color: rgba(234,103,103,.28);
  background: rgba(88,25,30,.16);
}
.disconnect-control:hover:not(:disabled) {
  color: #fff;
  border-color: rgba(234,103,103,.58);
  background: rgba(109,31,37,.34);
}
.hangup-icon {
  display: inline-block;
  transform: rotate(135deg);
  font-size: 17px;
  line-height: 1;
}

.admin-modal {
  background:
    radial-gradient(circle at 78% -5%, rgba(212,166,60,.10), transparent 27%),
    linear-gradient(180deg, #0c0f13 0%, #090b0e 100%);
  scrollbar-color: #343a43 transparent;
}
.admin-head {
  position: sticky;
  top: 0;
  z-index: 8;
  min-height: 92px;
  padding: 15px 18px;
  background: rgba(11,13,17,.94);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,.07);
  box-shadow: 0 10px 30px rgba(0,0,0,.16);
}
.admin-head-main { display: flex; align-items: center; gap: 13px; min-width: 0; }
.admin-head-mark {
  width: 44px; height: 44px; flex: 0 0 auto;
  display: grid; place-items: center;
  border-radius: 12px;
  border: 1px solid rgba(212,166,60,.38);
  background: linear-gradient(145deg, rgba(212,166,60,.13), rgba(212,166,60,.035));
  color: #e5ba52; font: 700 20px/1 Cinzel, serif;
  box-shadow: inset 0 0 18px rgba(212,166,60,.04);
}
.admin-head h3 { margin: 4px 0 2px; font-size: 20px; letter-spacing: -.3px; }
.admin-head small { display: block; color: #747b86; font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-close { flex: 0 0 auto; background: #12161b; border-color: #2b3139; }

.admin-dashboard { padding: 14px 14px 30px; }
.admin-overview {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding: 14px;
  border: 1px solid rgba(212,166,60,.18);
  border-radius: 14px;
  background: linear-gradient(120deg, rgba(212,166,60,.08), rgba(15,18,23,.75) 45%, rgba(15,18,23,.96));
}
.admin-overview-copy span { display:block; color:#777f8b; font-size:9px; letter-spacing:1.15px; font-weight:800; }
.admin-overview-copy strong { display:block; margin-top:5px; color:#f2cf72; font-size:17px; letter-spacing:.5px; }
.admin-stat-grid { display:flex; gap:7px; }
.admin-stat {
  min-width: 72px; padding: 8px 10px; text-align:center;
  border:1px solid #262c34; border-radius:10px; background:rgba(8,10,13,.56);
}
.admin-stat b { display:block; color:#f1d17b; font-size:16px; }
.admin-stat span { display:block; margin-top:2px; color:#777f8b; font-size:8px; text-transform:uppercase; letter-spacing:.6px; }

.management-list-heading {
  margin-top: 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 10px 3px 7px;
  border-bottom: 1px solid rgba(255,255,255,.055);
}
.management-list-heading strong { font-size: 10px; letter-spacing: .45px; text-transform: uppercase; }
.management-list-heading.offline-heading { margin-top: 15px; padding-top: 14px; }

.admin-users { gap: 9px; }
.admin-user {
  border-color: #252b33;
  border-radius: 14px;
  background: linear-gradient(180deg, #11151a 0%, #0e1115 100%);
  padding: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.admin-user-top { align-items:center; margin-bottom:10px; }
.admin-user-top strong { font-size: 12px; color:#eef0f3; }
.admin-user-top div > span { font-size:9px; }
.admin-mic-state { border:1px solid rgba(87,199,133,.12); }
.admin-edit-row { grid-template-columns: minmax(0,1fr) 108px; }
.admin-edit-row input, .admin-edit-row select { height: 38px; background:#0a0d10; border-color:#293039; }
.admin-edit-row button, .admin-actions-row button, .ban-row button { min-height:36px; }
.admin-actions-row { gap:6px; }

.admin-role-row.role-toggle-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  margin-top: 9px;
  padding: 9px 10px;
  border: 1px solid rgba(212,166,60,.13);
  border-radius: 10px;
  background: rgba(212,166,60,.035);
}
.role-toggle-copy span { display:block; color:#777f89; font-size:8px; letter-spacing:1px; font-weight:800; }
.role-toggle-copy strong { display:block; margin-top:3px; color:#cfd3d9; font-size:10px; }
.admin-role-row.role-toggle-row button {
  min-height: 34px; padding:0 11px; border-radius:8px; font-weight:700; white-space:nowrap;
}
.role-grant-btn { color:#f0ce70 !important; border-color:rgba(212,166,60,.36) !important; background:rgba(212,166,60,.08) !important; }
.role-remove-btn { color:#e7a0a0 !important; border-color:rgba(234,103,103,.30) !important; background:rgba(94,24,28,.16) !important; }

.ban-section { margin-top: 18px; padding-top: 4px; border-top:1px solid rgba(255,255,255,.07); }
.admin-section-title { display:flex; align-items:end; justify-content:space-between; padding:13px 3px 8px; }
.admin-section-title span { display:block; color:#6e7681; font-size:8px; letter-spacing:1.2px; font-weight:800; }
.admin-section-title strong { display:block; margin-top:3px; font-size:14px; color:#e3e6ea; }
.restriction-group { border-radius:12px; border:1px solid #242a32; background:#0e1115; padding:10px; }
.restriction-group + .restriction-group { margin-top:9px; }

@media (max-width: 860px) {
  .admin-head { min-height: 80px; padding: 12px; }
  .admin-head-mark { width: 38px; height:38px; border-radius:10px; font-size:17px; }
  .admin-head h3 { font-size:17px; }
  .admin-head small { max-width: 230px; }
  .admin-dashboard { padding: 10px 9px 90px; }
  .admin-overview { grid-template-columns: 1fr; padding: 11px; }
  .admin-stat-grid { width:100%; }
  .admin-stat { flex:1; }
  .admin-edit-row { grid-template-columns: 1fr; }
  .admin-role-row.role-toggle-row { grid-template-columns: 1fr; }
  .admin-role-row.role-toggle-row button { width:100%; }
}

@media (max-width: 560px) {
  .user-panel-controls { gap: 5px; }
  .user-control-btn { width: 35px; height: 35px; }
  .hangup-icon { font-size:16px; }
  .admin-head small { max-width: 185px; }
  .admin-user { border-radius:12px; }
  .admin-actions-row button { flex:1 1 calc(50% - 6px); }
}


/* Ravix Voice v13 — channel role order + drag/drop moderation */
.roster-group.leaders .roster-group-title { color: #d95151; }
.roster-group.admins .roster-group-title { color: #b99849; }
.room-mini-member { grid-template-columns: 22px minmax(0,1fr) auto auto; }
.room-mini-role { width:16px; height:16px; border-radius:4px; display:grid; place-items:center; font-size:7px; font-weight:900; border:1px solid #303640; }
.room-mini-role.leader { color:#ff8585; border-color:rgba(224,65,65,.42); background:rgba(224,65,65,.10); }
.room-mini-role.admin { color:#eac86d; border-color:rgba(212,166,60,.38); background:rgba(212,166,60,.08); }
.room-mini-member.can-drag { cursor: grab; }
.room-mini-member.can-drag:active { cursor: grabbing; }
.room-mini-member.dragging { opacity:.36; transform:scale(.985); }
.voice-drag-active .room { transition:border-color .12s ease, background .12s ease, box-shadow .12s ease; }
.voice-drag-active .room:not(.drag-target) { border-color:rgba(255,255,255,.035); }
.room.drag-target { border-color:rgba(212,166,60,.72) !important; background:rgba(212,166,60,.12) !important; box-shadow:inset 3px 0 0 #d4a63c, 0 0 0 1px rgba(212,166,60,.12); }
.room.drag-target::after { content:' BIRAK → TAŞI'; color:#efcf76; font-size:7px; font-weight:900; letter-spacing:.45px; margin-left:auto; }
.member .role-badge.leader { box-shadow:0 0 0 1px rgba(224,65,65,.06); }
@media (max-width:860px) { .room-mini-role { display:none; } }

/* Ravix Voice v15 — polished profile modal + professional live news ticker */
body.modal-open { overflow: hidden; }

/* Shared centered overlays */
.center-modal {
  position: fixed;
  inset: 0;
  z-index: 240;
  display: grid;
  place-items: center;
  padding: 24px;
  isolation: isolate;
}
.center-modal.hidden { display: none; }
.center-modal-backdrop {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(2, 4, 7, .82);
  backdrop-filter: blur(12px) saturate(.82);
  -webkit-backdrop-filter: blur(12px) saturate(.82);
}
.center-modal-card {
  position: relative;
  width: min(520px, calc(100vw - 32px));
  max-height: min(88dvh, 760px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 18px;
  background:
    radial-gradient(circle at 88% -12%, rgba(212,166,60,.14), transparent 34%),
    linear-gradient(180deg, #12161c 0%, #0a0d11 100%);
  box-shadow: 0 34px 120px rgba(0,0,0,.72), 0 0 0 1px rgba(0,0,0,.35);
  color: #eef1f5;
}
.modal-top-line {
  height: 2px;
  background: linear-gradient(90deg, transparent, #d4a63c 22%, #f0d27d 50%, #d4a63c 78%, transparent);
  box-shadow: 0 0 18px rgba(212,166,60,.38);
}
.modal-kicker {
  display: block;
  color: #d4a63c;
  font-size: 9px;
  line-height: 1;
  letter-spacing: 1.8px;
  font-weight: 900;
}
.center-modal-close {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 10px;
  background: rgba(255,255,255,.035);
  color: #929aa6;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  transition: .15s ease;
}
.center-modal-close:hover { color:#fff; border-color:rgba(255,255,255,.20); background:rgba(255,255,255,.075); }
.modal-field-label {
  display: block;
  margin: 0 0 8px;
  color: #7f8995;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1.25px;
}
.modal-primary-btn,.modal-secondary-btn {
  height: 42px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 850;
  cursor: pointer;
}
.modal-primary-btn {
  min-width: 176px;
  border: 1px solid #c89a31;
  background: linear-gradient(180deg,#d8ac49,#a8791e);
  color: #090a0c;
  box-shadow: 0 8px 25px rgba(212,166,60,.16);
}
.modal-primary-btn:hover { filter: brightness(1.08); }
.modal-secondary-btn {
  min-width: 90px;
  border: 1px solid #303740;
  background: #101419;
  color: #9ba3ad;
}
.center-modal-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:18px; }

/* Username / profile editor */
.name-edit-card { width: min(500px, calc(100vw - 32px)); padding: 0 22px 22px; }
.profile-modal-hero { display:grid; grid-template-columns:52px minmax(0,1fr) 36px; gap:14px; align-items:center; padding:22px 0 20px; }
.profile-modal-mark {
  width: 52px;
  height: 52px;
  display:grid;
  place-items:center;
  border-radius: 15px;
  border: 1px solid rgba(212,166,60,.40);
  background: linear-gradient(145deg,rgba(212,166,60,.16),rgba(212,166,60,.035));
  color: #e8c660;
  font-family: Cinzel,serif;
  font-size: 21px;
  font-weight: 800;
  box-shadow: inset 0 0 18px rgba(212,166,60,.05);
}
.profile-modal-copy h3 { margin:5px 0 3px; font-size:21px; letter-spacing:-.45px; }
.profile-modal-copy p { margin:0; color:#747e89; font-size:11px; }
.profile-input-wrap { position:relative; display:flex; align-items:center; }
.profile-input-prefix {
  position:absolute;
  left:14px;
  z-index:1;
  color:#cda33f;
  font-size:15px;
  font-weight:800;
}
.center-modal-input {
  width:100%;
  height:50px;
  box-sizing:border-box;
  padding:0 52px 0 34px;
  border:1px solid #303842;
  border-radius:11px;
  outline:none;
  background:#070a0e;
  color:#f2f4f7;
  font-size:14px;
  font-weight:600;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.02);
}
.center-modal-input:focus { border-color:#a9822d; box-shadow:0 0 0 3px rgba(212,166,60,.09); }
.profile-input-limit { position:absolute; right:13px; color:#515964; font-size:9px; }
.profile-modal-hint {
  display:flex;
  gap:7px;
  align-items:flex-start;
  margin-top:10px;
  color:#707a85;
  font-size:10px;
  line-height:1.45;
}
.profile-modal-hint span { color:#6bd89a; }

/* Live announcement ticker */
.announcement-bar {
  position: relative;
  height: 46px;
  margin: 18px 0 10px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid rgba(212,166,60,.30);
  border-radius:11px;
  background:linear-gradient(90deg,rgba(212,166,60,.10),#0d1014 24%,#090c10 100%);
  box-shadow:0 9px 30px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.025);
}
.announcement-bar.hidden { display:none; }
.announcement-bar::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,.018),transparent 18%,transparent 82%,rgba(255,255,255,.012));
}
.announcement-label {
  position:relative;
  z-index:2;
  min-width:116px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 15px;
  background:linear-gradient(180deg,#ddb44e,#a9781d);
  color:#090b0e;
  font-size:9px;
  font-weight:1000;
  letter-spacing:1.1px;
  white-space:nowrap;
  clip-path:polygon(0 0,100% 0,calc(100% - 11px) 100%,0 100%);
}
.announcement-label::before { content:'●'; margin-right:7px; font-size:8px; animation:newsDot 1.7s ease-in-out infinite; }
.announcement-viewport {
  min-width:0;
  overflow:hidden;
  display:flex;
  align-items:center;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);
}
.announcement-track { display:flex; width:max-content; min-width:max-content; align-items:center; transform:translate3d(0,0,0); will-change:transform; }
.announcement-track.ticker-running { animation:ravixTicker var(--ticker-duration,26s) linear infinite; }
.announcement-bar:hover .announcement-track.ticker-running { animation-play-state:paused; }
.ticker-run { flex:0 0 auto; display:flex; align-items:center; padding-right:42px; }
.ticker-item { flex:0 0 auto; display:inline-flex; align-items:center; gap:10px; padding:0 24px; white-space:nowrap; color:#d0d4da; font-size:11px; }
.ticker-item b { padding:3px 6px; border-radius:5px; background:rgba(212,166,60,.09); color:#dbb755; font-size:8px; line-height:1; letter-spacing:.75px; }
.ticker-message { letter-spacing:.05px; }
.ticker-separator { flex:0 0 auto; color:#58451d; font-size:6px; }
.ticker-empty-manager { height:46px; display:flex; align-items:center; gap:7px; padding:0 22px; color:#707985; font-size:10px; white-space:nowrap; }
.ticker-empty-manager b { color:#4d545e; }
.announcement-manage {
  position:relative;
  z-index:3;
  min-width:76px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 13px;
  border:0;
  border-left:1px solid rgba(255,255,255,.07);
  background:#101419;
  color:#c9a444;
  cursor:pointer;
  transition:.15s ease;
}
.announcement-manage:hover { background:#151a20; color:#f0cd70; }
.announcement-manage.hidden { display:none; }
.announcement-manage-icon { font-size:12px; }
.announcement-manage-text { font-size:9px; font-weight:850; letter-spacing:.45px; }

/* Breaking-news state */
.announcement-bar.has-breaking {
  border-color:rgba(235,65,72,.58);
  background:linear-gradient(90deg,rgba(142,24,30,.24),#130d10 25%,#0b0c10 100%);
  animation:breakingBarPulse 1.45s ease-in-out infinite;
}
.announcement-bar.has-breaking .announcement-label {
  background:linear-gradient(180deg,#e04950,#9f2028);
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
  animation:breakingLabelPulse 1.05s ease-in-out infinite;
}
.ticker-item.breaking { color:#ffe4e5; font-weight:800; }
.ticker-item.breaking b {
  background:rgba(225,55,62,.14);
  color:#ff7b80;
  box-shadow:inset 0 0 0 1px rgba(225,55,62,.20);
  animation:breakingTextPulse 1.15s ease-in-out infinite;
}
@keyframes ravixTicker { from{ transform:translate3d(0,0,0); } to{ transform:translate3d(-50%,0,0); } }
@keyframes newsDot { 0%,100%{opacity:.35} 50%{opacity:1} }
@keyframes breakingTextPulse { 0%,100%{opacity:.68} 50%{opacity:1;text-shadow:0 0 12px rgba(255,80,86,.62)} }
@keyframes breakingLabelPulse { 0%,100%{filter:brightness(.90)} 50%{filter:brightness(1.22)} }
@keyframes breakingBarPulse { 0%,100%{box-shadow:0 8px 28px rgba(0,0,0,.18),0 0 0 rgba(225,55,62,0)} 50%{box-shadow:0 8px 28px rgba(0,0,0,.20),0 0 20px rgba(225,55,62,.13)} }

/* Pinned chat message */
.pinned-message-bar { min-height:58px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 14px; border-bottom:1px solid rgba(212,166,60,.18); background:linear-gradient(90deg,rgba(212,166,60,.09),rgba(212,166,60,.025) 45%,rgba(12,15,19,.92)); }
.pinned-message-bar.hidden { display:none; }
.pinned-icon { width:30px; height:30px; display:grid; place-items:center; border-radius:8px; background:rgba(212,166,60,.11); border:1px solid rgba(212,166,60,.18); font-size:13px; }
.pinned-copy { min-width:0; display:grid; grid-template-columns:auto 1fr; column-gap:8px; align-items:baseline; }
.pinned-copy small { grid-column:1/-1; color:#b18b34; font-size:7px; letter-spacing:1.1px; font-weight:900; }
.pinned-copy strong { color:#eceff2; font-size:10px; white-space:nowrap; }
.pinned-copy span { color:#9ba2ac; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pinned-remove { width:28px; height:28px; border-radius:8px; border:1px solid #303640; background:#101419; color:#8e959f; font-size:17px; }
.pinned-remove.hidden { display:none; }
.chat-action-btn.pin.active { color:#f3ce6d; border-color:rgba(212,166,60,.52); background:rgba(212,166,60,.10); }

/* Announcement manager */
.announcement-modal-card { width:min(680px,calc(100vw - 32px)); max-height:min(88dvh,780px); display:flex; flex-direction:column; }
.announcement-modal-head { flex:0 0 auto; display:grid; grid-template-columns:48px minmax(0,1fr) 36px; gap:13px; align-items:center; padding:19px 20px 16px; border-bottom:1px solid rgba(255,255,255,.07); }
.announcement-modal-mark { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; border:1px solid rgba(212,166,60,.34); background:rgba(212,166,60,.08); color:#e1bd5b; font-family:Cinzel,serif; font-size:19px; font-weight:800; }
.announcement-modal-title-copy h3 { margin:5px 0 2px; font-size:20px; letter-spacing:-.35px; }
.announcement-modal-title-copy p { margin:0; color:#6f7883; font-size:10px; }
.announcement-modal-body { min-height:0; overflow:auto; padding:17px 20px 20px; scrollbar-width:thin; scrollbar-color:#3b4149 transparent; }
.announcement-type-tabs { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 17px; }
.announcement-type-tabs button { min-height:62px; display:flex; align-items:center; gap:10px; padding:10px 12px; text-align:left; border:1px solid #2b323b; border-radius:11px; background:#0b0f13; color:#808995; cursor:pointer; transition:.15s ease; }
.announcement-type-tabs button:hover { border-color:#3c4550; background:#0e1318; }
.announcement-type-tabs .type-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:8px; background:rgba(255,255,255,.035); font-size:14px; }
.announcement-type-tabs button span:last-child { display:grid; gap:3px; }
.announcement-type-tabs button b { color:#c7ccd3; font-size:11px; }
.announcement-type-tabs button small { color:#606a75; font-size:9px; }
.announcement-type-tabs button.active[data-announcement-type=normal] { border-color:rgba(212,166,60,.45); background:rgba(212,166,60,.085); box-shadow:inset 0 0 0 1px rgba(212,166,60,.04); }
.announcement-type-tabs button.active[data-announcement-type=normal] b { color:#efd072; }
.announcement-type-tabs button.active[data-announcement-type=breaking] { border-color:rgba(229,66,74,.55); background:rgba(147,25,31,.13); box-shadow:inset 0 0 0 1px rgba(229,66,74,.05); }
.announcement-type-tabs button.active[data-announcement-type=breaking] b { color:#ff8d92; }
.announcement-textarea-wrap { position:relative; }
.announcement-modal-card textarea { width:100%; min-height:104px; box-sizing:border-box; resize:vertical; padding:13px 13px 28px; border:1px solid #303842; border-radius:11px; outline:none; background:#070a0e; color:#eff2f5; font:inherit; font-size:12px; line-height:1.55; }
.announcement-modal-card textarea:focus { border-color:#a9822d; box-shadow:0 0 0 3px rgba(212,166,60,.08); }
.announcement-char-count { position:absolute; right:10px; bottom:8px; color:#58616c; font-size:8px; }
.announcement-compose-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:10px; }
.announcement-live-note { min-width:0; display:flex; align-items:center; gap:7px; color:#6f7883; font-size:9px; }
.live-ping { flex:0 0 auto; width:6px; height:6px; border-radius:50%; background:#d4a63c; box-shadow:0 0 8px rgba(212,166,60,.55); animation:newsDot 1.5s ease-in-out infinite; }
.announcement-publish-btn { min-width:112px; height:39px; display:flex; align-items:center; justify-content:center; gap:9px; border:1px solid #c3922d; border-radius:9px; background:linear-gradient(180deg,#d5aa46,#a6771f); color:#090b0e; font-size:10px; font-weight:900; cursor:pointer; }
.announcement-publish-btn.breaking { border-color:#cf4048; background:linear-gradient(180deg,#df4c53,#9d252c); color:#fff; }
.announcement-publish-btn:disabled { opacity:.45; cursor:wait; }
.announcement-list-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:18px; padding:14px 2px 8px; border-top:1px solid rgba(255,255,255,.07); color:#7c8590; font-size:8px; letter-spacing:1.15px; font-weight:900; }
.announcement-list-head b { min-width:22px; height:20px; display:grid; place-items:center; border-radius:6px; background:rgba(255,255,255,.045); color:#b6bdc6; font-size:9px; }
.announcement-admin-list { display:grid; gap:8px; max-height:250px; overflow:auto; padding-right:2px; }
.announcement-admin-row { display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:11px; align-items:center; padding:11px; border:1px solid #292f37; border-radius:11px; background:#0b0f13; }
.announcement-admin-row.breaking { border-color:rgba(224,65,65,.30); background:linear-gradient(90deg,rgba(133,22,28,.12),#0b0f13 38%); }
.announcement-admin-badge { display:flex; align-items:center; gap:6px; color:#cda841; }
.announcement-admin-badge span { font-size:12px; }
.announcement-admin-badge b { font-size:7px; letter-spacing:.65px; }
.announcement-admin-row.breaking .announcement-admin-badge { color:#f06c72; }
.announcement-admin-copy { min-width:0; }
.announcement-admin-copy strong { display:block; overflow:hidden; color:#dce0e5; font-size:10px; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.announcement-admin-copy small { display:block; margin-top:3px; color:#606975; font-size:8px; }
.announcement-remove-btn { height:31px; display:flex; align-items:center; gap:5px; padding:0 9px; border:1px solid rgba(224,65,65,.25); border-radius:8px; background:rgba(125,30,35,.10); color:#d98286; font-size:8px; font-weight:800; cursor:pointer; }
.announcement-remove-btn:hover { border-color:rgba(224,65,65,.48); background:rgba(150,35,41,.18); color:#ff9da0; }
.announcement-remove-btn:disabled { opacity:.35; }
.announcement-protected { color:#535b65; font-size:8px; }
.announcement-empty { min-height:96px; display:grid; place-items:center; align-content:center; gap:4px; border:1px dashed #282f37; border-radius:10px; color:#69727d; text-align:center; }
.announcement-empty span { font-size:18px; opacity:.7; }
.announcement-empty strong { color:#969ea8; font-size:10px; }
.announcement-empty small { font-size:8px; }

@media (max-width: 860px) {
  .center-modal { padding:12px; }
  .center-modal-card { width:min(100%,620px); max-height:90dvh; }
  .announcement-bar { height:42px; margin-top:10px; }
  .announcement-label { min-width:98px; padding:0 10px; font-size:8px; }
  .ticker-item { padding:0 16px; font-size:10px; }
  .announcement-manage { min-width:42px; width:42px; padding:0; }
  .announcement-manage-text { display:none; }
  .announcement-modal-card { width:min(100%,660px); }
}
@media (max-width: 560px) {
  .center-modal { padding:8px; align-items:center; }
  .name-edit-card { width:calc(100vw - 16px); padding:0 15px 16px; border-radius:15px; }
  .profile-modal-hero { grid-template-columns:44px minmax(0,1fr) 34px; padding:17px 0 16px; gap:10px; }
  .profile-modal-mark { width:44px; height:44px; border-radius:12px; font-size:18px; }
  .profile-modal-copy h3 { font-size:17px; }
  .profile-modal-copy p { font-size:9px; }
  .center-modal-actions { display:grid; grid-template-columns:1fr 1.35fr; }
  .modal-primary-btn,.modal-secondary-btn { min-width:0; width:100%; }
  .announcement-label { min-width:88px; font-size:7px; letter-spacing:.65px; }
  .announcement-label::before { margin-right:4px; }
  .announcement-modal-head { grid-template-columns:42px minmax(0,1fr) 34px; padding:15px 14px 13px; gap:9px; }
  .announcement-modal-mark { width:42px; height:42px; border-radius:11px; }
  .announcement-modal-title-copy h3 { font-size:17px; }
  .announcement-modal-title-copy p { font-size:9px; }
  .announcement-modal-body { padding:13px 14px 16px; }
  .announcement-type-tabs { grid-template-columns:1fr; }
  .announcement-type-tabs button { min-height:54px; }
  .announcement-compose-foot { align-items:stretch; flex-direction:column; }
  .announcement-publish-btn { width:100%; }
  .announcement-admin-row { grid-template-columns:1fr auto; gap:7px; }
  .announcement-admin-badge { grid-column:1/-1; }
  .announcement-admin-copy strong { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .pinned-message-bar { grid-template-columns:auto minmax(0,1fr) auto; padding:9px 10px; }
  .pinned-copy { display:block; }
  .pinned-copy strong,.pinned-copy span { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
}

@media (prefers-reduced-motion: reduce) {
  .announcement-track.ticker-running { animation-duration: 80s; }
  .announcement-bar.has-breaking,.announcement-bar.has-breaking .announcement-label,.ticker-item.breaking b,.live-ping,.announcement-label::before { animation:none; }
}


/* Ravix Voice v16 — first-party confirmation dialogs (replaces browser confirm/prompt) */
.action-confirm-modal { z-index: 250; }
.action-confirm-card {
  width:min(470px,calc(100vw - 28px));
  padding:0 20px 18px;
  overflow:hidden;
  border-color:rgba(212,166,60,.20);
  background:
    radial-gradient(circle at 8% 0%,rgba(212,166,60,.08),transparent 35%),
    linear-gradient(180deg,#0d1015 0%,#090c10 100%);
}
.action-confirm-accent { height:2px; margin:0 -20px 0; background:linear-gradient(90deg,transparent,#d4a63c 22%,#f1ce6b 50%,#d4a63c 78%,transparent); box-shadow:0 0 18px rgba(212,166,60,.28); }
.action-confirm-head { display:grid; grid-template-columns:46px minmax(0,1fr) 36px; align-items:center; gap:12px; padding:20px 0 13px; }
.action-confirm-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; border:1px solid rgba(212,166,60,.30); background:rgba(212,166,60,.08); color:#e6c15a; font-size:18px; box-shadow:inset 0 0 20px rgba(212,166,60,.035); }
.action-confirm-copy h3 { margin:5px 0 0; color:#f1f3f5; font-size:19px; letter-spacing:-.35px; }
.action-confirm-message { margin:0; padding:13px 14px; border:1px solid rgba(255,255,255,.07); border-radius:11px; background:rgba(255,255,255,.025); color:#a7afb9; font-size:11px; line-height:1.65; }
.action-confirm-input-wrap { margin-top:14px; }
.action-confirm-input-wrap textarea { box-sizing:border-box; width:100%; min-height:82px; resize:vertical; padding:11px 12px; outline:none; border:1px solid #303741; border-radius:10px; background:#070a0e; color:#eef1f4; font:inherit; font-size:11px; line-height:1.5; }
.action-confirm-input-wrap textarea:focus { border-color:#a9822d; box-shadow:0 0 0 3px rgba(212,166,60,.08); }
.action-confirm-note { display:flex; align-items:center; gap:9px; margin-top:12px; color:#68717b; font-size:9px; line-height:1.4; }
.action-confirm-note > span { flex:0 0 auto; width:20px; height:20px; display:grid; place-items:center; border:1px solid rgba(212,166,60,.22); border-radius:6px; color:#cda43f; font-family:Cinzel,serif; font-weight:800; }
.action-confirm-note p { margin:0; }
.action-confirm-actions { margin-top:16px; }
.action-confirm-accept { min-width:155px; }
.action-confirm-modal.danger .action-confirm-accent { background:linear-gradient(90deg,transparent,#8d1d29 20%,#e24655 50%,#8d1d29 80%,transparent); box-shadow:0 0 20px rgba(226,70,85,.28); }
.action-confirm-modal.danger .action-confirm-icon { color:#ff6673; border-color:rgba(226,70,85,.34); background:rgba(226,70,85,.09); box-shadow:0 0 30px rgba(226,70,85,.06) inset; }
.action-confirm-modal.danger .action-confirm-accept { border-color:#8e2631; background:linear-gradient(180deg,#c83b48,#9e2733); color:#fff; box-shadow:0 6px 24px rgba(170,37,50,.15); }
.action-confirm-modal.danger .action-confirm-accept:hover { filter:brightness(1.10); }
.action-confirm-modal.warning .action-confirm-accept { background:linear-gradient(180deg,#d7aa42,#a87b21); color:#100d06; }
.action-confirm-modal.neutral .action-confirm-icon { color:#9eb5d0; border-color:rgba(118,151,190,.30); background:rgba(92,128,170,.08); }
@media (max-width:560px) {
  .action-confirm-card { width:calc(100vw - 16px); padding:0 14px 14px; border-radius:15px; }
  .action-confirm-accent { margin-left:-14px; margin-right:-14px; }
  .action-confirm-head { grid-template-columns:42px minmax(0,1fr) 34px; gap:9px; padding:16px 0 12px; }
  .action-confirm-icon { width:42px; height:42px; border-radius:12px; }
  .action-confirm-copy h3 { font-size:17px; }
  .action-confirm-message { font-size:10px; padding:11px 12px; }
  .action-confirm-actions { grid-template-columns:1fr 1.25fr; }
  .action-confirm-accept { min-width:0; }
}


/* ================= RAVIX VOICE v17 ================= */
/* Kemik kadro: yetki değil, görünür kadro katmanı. */
.role-badge.bone {
  color:#d8e0e7;
  background:linear-gradient(180deg,rgba(146,160,174,.14),rgba(95,108,121,.08));
  border-color:rgba(176,188,199,.32);
  box-shadow:0 0 0 1px rgba(190,204,216,.035) inset;
}
.room-mini-avatar.bone { border-color:rgba(172,185,197,.44); color:#d9e2e9; background:rgba(95,106,117,.18); }
.room-mini-role.bone { color:#d8e0e7; border-color:rgba(176,188,199,.34); background:rgba(128,142,155,.09); }
.roster-member.bone .roster-copy strong { color:#d7dfe6; }
.roster-group.bones .roster-group-title { color:#aebbc6; }
.roster-role-wrap { margin-left:auto; display:flex; align-items:center; }
.roster-role-wrap .role-badge { font-size:7px; padding:3px 6px; letter-spacing:.55px; }

/* Mini kanal listesinde L/A yerine gerçek badge metni. */
.room-mini-role {
  width:auto !important;
  min-width:0 !important;
  height:18px !important;
  padding:0 5px !important;
  border-radius:5px !important;
  font-size:6.5px !important;
  letter-spacing:.45px;
  font-weight:900;
  white-space:nowrap;
}
.room-mini-member { grid-template-columns:24px minmax(0,1fr) auto auto !important; }

/* AFK görsel kimliği */
.room.afk-room { margin-top:5px; border-top:1px solid rgba(255,255,255,.035); }
.room.afk-room.active { border-color:rgba(126,137,151,.28); background:linear-gradient(90deg,rgba(91,101,115,.12),rgba(21,24,29,.45)); }

/* Duyuru düzenleme modu */
.announcement-compose-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.announcement-edit-cancel {
  height:38px; padding:0 12px; border-radius:9px; border:1px solid #303741;
  background:#0b0f13; color:#929ba6; font-size:9px; font-weight:800; letter-spacing:.35px;
}
.announcement-edit-cancel:hover { color:#e3e7eb; border-color:#46505b; }
.announcement-publish-btn.editing { border-color:rgba(93,166,216,.42); background:linear-gradient(180deg,rgba(49,116,163,.28),rgba(27,72,104,.25)); color:#c7e7fb; }
.announcement-admin-row.editing { border-color:rgba(91,164,211,.42); box-shadow:0 0 0 1px rgba(91,164,211,.08) inset; }
.announcement-admin-actions { display:flex; gap:6px; align-items:center; }
.announcement-edit-btn, .announcement-remove-btn {
  min-height:31px; border-radius:8px; padding:0 9px; display:inline-flex; align-items:center; gap:5px;
  font-size:8px; font-weight:850; white-space:nowrap;
}
.announcement-edit-btn { border:1px solid rgba(91,164,211,.26); background:rgba(48,101,136,.10); color:#9bc9e7; }
.announcement-edit-btn:hover { border-color:rgba(91,164,211,.48); color:#d4efff; }
.bone-toggle-row { display:grid; grid-template-columns:1fr 170px; gap:8px; margin-top:8px; }
.bone-toggle-row button { min-height:36px; border-radius:8px; font-size:9px; font-weight:850; }
.bone-grant-btn { border:1px solid rgba(176,188,199,.30); background:rgba(128,142,155,.08); color:#d7e0e7; }
.bone-remove-btn { border:1px solid rgba(143,155,166,.24); background:rgba(86,96,106,.06); color:#9aa5ae; }

@media (max-width: 760px) {
  .announcement-compose-actions { width:100%; flex-direction:column-reverse; align-items:stretch; }
  .announcement-edit-cancel, .announcement-publish-btn { width:100%; }
  .announcement-admin-row { grid-template-columns:1fr !important; }
  .announcement-admin-actions { width:100%; }
  .announcement-admin-actions button { flex:1; justify-content:center; }
  .bone-toggle-row { grid-template-columns:1fr; }
  .room-mini-role { font-size:6px !important; }
}

/* ================= RAVIX VOICE v18 =================
   Sidebar taşma düzeltmeleri + Discord tipi voice states + akışkan desktop responsive
   =================================================== */
html, body { max-width:100%; overflow-x:hidden; }
.app-shell { grid-template-columns:clamp(240px,20vw,280px) minmax(0,1fr); width:100%; max-width:100vw; overflow-x:hidden; }
.sidebar, .main-panel, .guild-roster-section, .guild-roster, .roster-group, .roster-member { min-width:0; }
.main-panel { min-width:0; padding-left:clamp(18px,3vw,44px); padding-right:clamp(18px,3vw,44px); }

/* Lonca üye listesi hiçbir genişlikte sağa taşmaz / yatay scrollbar üretmez. */
.guild-roster { width:100%; max-width:100%; overflow-y:auto; overflow-x:hidden !important; overscroll-behavior:contain; }
.roster-group { width:100%; max-width:100%; overflow:hidden; }
.roster-member {
  width:100%; max-width:100%;
  grid-template-columns:28px minmax(0,1fr) max-content !important;
  gap:6px; overflow:hidden;
}
.roster-copy { min-width:0; overflow:hidden; }
.roster-role-wrap { min-width:0; max-width:64px; justify-self:end; overflow:hidden; }
.roster-role-wrap .role-badge {
  display:inline-flex; align-items:center; justify-content:center;
  max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:clip;
  font-size:6.5px; padding:3px 5px; letter-spacing:.45px;
}

/* Ses kanalı mini kullanıcı satırı: isim küçülür, durum ikonları asla dışarı taşmaz. */
.room-presence-mini { min-width:0; max-width:100%; overflow:hidden; }
.room-mini-member {
  width:100%; max-width:100%; min-width:0; overflow:hidden;
  grid-template-columns:24px minmax(0,1fr) max-content max-content !important;
  gap:5px !important;
}
.room-mini-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.room-mini-role { max-width:52px; overflow:hidden; text-overflow:clip; }
.room-mini-states {
  min-width:0; justify-self:end; display:inline-flex; align-items:center; justify-content:flex-end;
  gap:2px; white-space:nowrap; color:#8e949d;
}
.room-mini-state { width:13px; height:13px; display:inline-flex; align-items:center; justify-content:center; color:#979da6; opacity:.9; }
.room-mini-state.deafened { color:#a8aeb7; }
.room-mini-state.muted { color:#949aa3; }
.room-mini-speaking { flex:0 0 auto; margin-left:1px; }

/* Emoji yerine sade Discord benzeri çizgi ikonları. */
.voice-state-svg {
  width:14px; height:14px; display:block; fill:none; stroke:currentColor; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;
}
.user-control-btn .control-svg { width:17px; height:17px; }
.user-control-btn.active .control-svg { color:#fff; }
.user-control-btn:disabled .control-svg { opacity:.72; }

/* Desktop pencere daralırken sert kırılma yerine akışkan ara kademe. */
.topbar > div:first-child { min-width:0; }
.topbar h2 { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.top-actions { flex:0 0 auto; min-width:0; }
.voice-head, .voice-head-actions { min-width:0; }
.members { grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr)); }

@media (min-width:861px) and (max-width:1180px) {
  .app-shell { grid-template-columns:240px minmax(0,1fr); }
  .sidebar { padding:18px 12px; }
  .brand { padding-bottom:18px; }
  .brand .crest { width:44px; height:44px; font-size:22px; }
  .brand h1 { font-size:20px; letter-spacing:2.2px; }
  .brand p { font-size:10px; }
  .sidebar-section { padding-top:17px; }
  .room { padding-left:7px; padding-right:7px; }
  .room-presence-mini { padding-left:28px; padding-right:3px; }
  .room-mini-member { grid-template-columns:22px minmax(0,1fr) max-content max-content !important; padding-left:3px; padding-right:3px; }
  .room-mini-role { font-size:5.8px !important; padding:0 4px !important; max-width:46px; }
  .roster-member { padding-left:3px; padding-right:3px; gap:5px; }
  .roster-role-wrap .role-badge { font-size:6px; padding:3px 4px; }
  .main-panel { padding-left:22px; padding-right:22px; }
  .hero { min-height:220px; padding:26px 18px; }
  .rune-orb { width:112px; height:112px; margin-right:10px; }
  .rune-orb span { font-size:42px; }
  .members { grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr)); }
}

@media (min-width:861px) and (max-width:1030px) {
  .secure-badge { display:none; }
  .hero { min-height:190px; }
  .rune-orb { display:none; }
  .hero h3 { font-size:clamp(30px,4.8vw,45px); }
  .topbar { height:76px; }
  .voice-card { margin-top:20px; }
}

/* Mobilde mevcut yatay kanal şeridi kalsın; sayfanın kendisi yatay kaymasın. */
@media (max-width:860px) {
  .app-shell { grid-template-columns:1fr; overflow-x:hidden; }
  .main-panel, .sidebar { max-width:100vw; overflow-x:hidden; }
  .voice-channels-section { max-width:100vw; }
  .guild-roster { overflow-x:hidden !important; }
  .user-panel-controls { flex:0 0 auto; }
  .user-panel-identity { min-width:0; }
}

@media (max-width:390px) {
  .sidebar-footer.user-panel { padding-left:8px; padding-right:8px; }
  .user-panel { grid-template-columns:34px minmax(0,1fr) auto !important; gap:5px; }
  .user-panel-avatar { width:34px; height:34px; }
  .user-panel-controls { gap:4px; }
  .user-control-btn { width:34px; height:34px; border-radius:8px; }
  .user-control-btn .control-svg { width:16px; height:16px; }
  .user-panel-identity { padding-right:17px; }
  .edit-glyph { right:3px; }
}


/* Ravix Voice v21 — kayıt kapısı, üyelik görünürlüğü ve responsive kayıt ekranı */
.membership-hidden { display: none !important; }
.registration-section-title { margin-top: 2px; color: #aeb9c9; }
.registration-room {
  border: 1px solid rgba(126, 166, 214, .24) !important;
  background: linear-gradient(135deg, rgba(26, 38, 56, .92), rgba(14, 18, 25, .9)) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.015);
}
.registration-room.active {
  border-color: rgba(112, 173, 239, .7) !important;
  box-shadow: 0 0 0 1px rgba(112,173,239,.18), 0 10px 24px rgba(0,0,0,.22) !important;
}
.registration-notice {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 16px;
  padding: 15px 17px;
  border: 1px solid rgba(102, 158, 220, .30);
  border-radius: 14px;
  background: linear-gradient(120deg, rgba(17, 28, 43, .97), rgba(10, 13, 18, .97));
  box-shadow: 0 14px 38px rgba(0,0,0,.24), inset 0 1px rgba(255,255,255,.035);
}
.registration-notice.hidden { display: none !important; }
.registration-notice-icon {
  width: 44px; height: 44px; min-width: 44px; display: grid; place-items: center;
  border-radius: 12px; font-size: 21px; background: rgba(87, 150, 220, .12); border: 1px solid rgba(104, 170, 239, .24);
}
.registration-notice > div:last-child { min-width: 0; display: grid; gap: 2px; }
.registration-notice span { color: #7bb9fb; font-size: 10px; letter-spacing: .17em; font-weight: 800; }
.registration-notice strong { color: #f4f7fb; font-size: 14px; line-height: 1.35; }
.registration-notice small { color: #8993a2; line-height: 1.45; }
.registration-pending .hero { display: none !important; }
.registration-pending .guild-roster-section { display: none !important; }
.registration-heading { border-color: rgba(94,157,226,.25) !important; }
.registration-admin-user { border-color: rgba(91, 157, 230, .26) !important; background: linear-gradient(145deg, rgba(20,31,47,.92), rgba(12,15,21,.96)) !important; }
.registration-pending-badge { padding: 5px 8px; border-radius: 999px; color: #8bc3ff; border: 1px solid rgba(96,165,240,.32); background: rgba(59,130,246,.09); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.registration-admin-copy { color: #8d98a8; font-size: 12px; line-height: 1.5; margin: 10px 0; }
.registration-actions { flex-wrap: wrap; }
.offline-remove-row { margin-top: 10px; justify-content: flex-end; }
@media (max-width: 820px) {
  .registration-notice { margin: 0 10px 12px; padding: 13px; }
  .registration-notice-icon { width: 38px; height: 38px; min-width: 38px; }
}

.registration-pending [data-member-only="true"] { display: none !important; }

/* Ravix Voice v22 — profile avatars, staff room, context moderation, expanded channel layout */
.profile-avatar-img,
.avatar-photo {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}
.avatar-fallback { display:grid; place-items:center; width:100%; height:100%; }
.user-panel-avatar,
.profile-modal-mark,
.room-mini-avatar,
.roster-avatar,
.avatar,
.chat-avatar,
.context-avatar { overflow:hidden; }
.user-panel-avatar .profile-avatar-img,
.profile-modal-mark .profile-avatar-img { position:absolute; inset:0; z-index:1; }
.user-panel-avatar .status-dot { z-index:3; }
.avatar-photo.member-photo,
.avatar-photo.chat-photo,
.avatar-photo.roster-photo,
.avatar-photo.mini-photo { border-radius:inherit; }

.profile-photo-tools {
  margin: 2px 0 17px;
  padding: 12px 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid #282e36;
  border-radius:12px;
  background:linear-gradient(135deg,rgba(255,255,255,.018),rgba(212,166,60,.025));
}
.profile-photo-tools > div:first-child { min-width:0; }
.profile-photo-tools small { display:block; margin-top:4px; color:#737b86; font-size:9px; line-height:1.4; }
.profile-photo-actions { display:flex; gap:7px; flex:0 0 auto; }
.profile-photo-actions button { min-height:34px; padding:0 11px; font-size:9px; }
.profile-photo-remove { border:1px solid rgba(224,78,78,.28); color:#d97878; background:rgba(95,25,31,.12); border-radius:8px; }

.management-room {
  color:#f1d585 !important;
  background:linear-gradient(90deg,rgba(212,166,60,.09),transparent 78%) !important;
  border:1px solid rgba(212,166,60,.12) !important;
}
.management-room.active { border-color:rgba(212,166,60,.38) !important; box-shadow:0 0 18px rgba(212,166,60,.05) inset; }
.games-title { margin-top:12px; }
.game-room > span:first-child { font-weight:900; font-size:15px; text-align:center; filter:saturate(1.08); }

/* Expanded desktop sidebar: channels scroll vertically instead of falling off-screen. */
@media (min-width: 861px) {
  .voice-channels-section {
    flex:1 1 auto !important;
    min-height:180px;
    max-height:58vh;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:4px;
    scrollbar-width:thin;
    scrollbar-color:#303640 transparent;
  }
  .guild-roster-section { flex:1 1 190px; min-height:135px; }
  .sidebar-footer.user-panel { flex:0 0 auto; }
}

/* Discord-like right-click member menu */
.member-context-menu {
  position:fixed;
  z-index:650;
  width:270px;
  padding:7px;
  border:1px solid #303640;
  border-radius:12px;
  background:#111318;
  box-shadow:0 20px 60px rgba(0,0,0,.58),0 0 0 1px rgba(255,255,255,.018) inset;
  user-select:none;
}
.member-context-header {
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:8px 9px 10px;
  margin-bottom:5px;
  border-bottom:1px solid #272c34;
}
.context-avatar { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:#1b1f26; color:#efd073; border:1px solid #333943; font-weight:800; }
.member-context-header strong { display:block; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.member-context-header span { display:block; margin-top:3px; color:#747c87; font-size:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.member-context-body { display:grid; gap:2px; }
.member-context-body button,
.member-context-submenu button {
  width:100%; min-height:35px; display:grid; grid-template-columns:23px minmax(0,1fr) auto; align-items:center; gap:7px;
  padding:0 9px; border:0; border-radius:7px; background:transparent; color:#d8dbe0; text-align:left; font-size:10px;
}
.member-context-body button:hover,
.member-context-submenu button:hover { background:#5865f2; color:white; }
.member-context-body button.danger { color:#f07979; }
.member-context-body button.danger:hover { background:#cf3e45; color:white; }
.member-context-body button > span:first-child,
.member-context-submenu button > span:first-child { width:20px; display:flex; align-items:center; justify-content:center; color:inherit; }
.member-context-body button svg { width:15px; height:15px; }
.member-context-body button b { color:#8b929d; font-size:17px; line-height:1; font-weight:400; }
.context-separator { height:1px; background:#292e36; margin:5px 4px; }
.member-context-submenu {
  position:absolute;
  left:calc(100% + 5px);
  top:48px;
  width:245px;
  max-height:min(520px,78vh);
  overflow:auto;
  padding:7px;
  border:1px solid #303640;
  border-radius:11px;
  background:#111318;
  box-shadow:0 18px 52px rgba(0,0,0,.55);
}
.context-subtitle { padding:5px 9px 7px; color:#6f7782; font-size:8px; font-weight:900; letter-spacing:1px; }
.context-disabled { padding:10px; color:#737b86; font-size:9px; }
.room-mini-member,
.roster-member,
.member { -webkit-user-select:none; user-select:none; }
.room-mini-member:hover,
.roster-member:hover { cursor:default; }

.subtle-danger { background:rgba(103,29,35,.10) !important; }

/* More stable narrow-window layout */
@media (min-width: 861px) and (max-width: 1120px) {
  .app-shell { grid-template-columns:minmax(218px,25vw) minmax(0,1fr) !important; }
  .main-panel { padding-left:22px !important; padding-right:22px !important; }
  .members { grid-template-columns:repeat(auto-fit,minmax(230px,1fr)) !important; }
  .hero { padding-left:18px; padding-right:18px; }
  .hero h3 { font-size:clamp(29px,4.4vw,48px); }
  .rune-orb { width:105px; height:105px; margin-right:8px; }
}

@media (max-width: 860px) {
  .voice-channels-section { max-height:none !important; overflow-x:auto !important; overflow-y:hidden !important; }
  .manager-only-channel.membership-hidden { display:none !important; }
  .member-context-menu { width:min(300px,calc(100vw - 20px)); }
  .member-context-submenu {
    position:fixed;
    left:10px !important;
    right:10px;
    bottom:10px;
    top:auto !important;
    width:auto;
    max-height:44vh;
  }
}

@media (max-width: 560px) {
  .profile-photo-tools { align-items:flex-start; flex-direction:column; }
  .profile-photo-actions { width:100%; }
  .profile-photo-actions button { flex:1; }
}
@media (min-width:861px) {
  .member-context-menu.submenu-left .member-context-submenu { left:auto; right:calc(100% + 5px); }
}
.noise-isolation-badge { display:inline-flex; align-items:center; gap:5px; margin-top:5px; color:#72c991; font-size:8px; font-weight:700; letter-spacing:.25px; opacity:.85; }


/* ================= RAVIX VOICE v23 ================= */
/* Kullanıcının Ravix Sohbet görseli artık dekoratif büyük R işaretlerinin yerini alıyor. */
.ravix-brand-crest,
.ravix-art-orb,
.ravix-gate-logo,
.ravix-modal-logo,
.ravix-blocked-logo,
.ravix-note-logo {
  overflow: hidden;
  padding: 0 !important;
  transform: none !important;
  background: #050507 !important;
  border: 1px solid rgba(215, 165, 62, .42) !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.025) inset, 0 10px 34px rgba(0,0,0,.35);
}
.ravix-brand-crest img,
.ravix-art-orb img,
.ravix-gate-logo img,
.ravix-modal-logo img,
.ravix-blocked-logo img,
.ravix-note-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
.ravix-brand-crest { width: 56px; height: 56px; border-radius: 50% !important; flex: 0 0 auto; }
.ravix-art-orb { width: 178px; height: 178px; border-radius: 50% !important; margin-right: 18px; box-shadow: 0 0 0 8px rgba(212,166,60,.025), 0 0 48px rgba(212,166,60,.12); }
.ravix-art-orb::before, .ravix-art-orb::after { display:none !important; }
.ravix-gate-logo { width: 92px; height: 92px; border-radius: 50% !important; margin: 0 auto 18px; }
.ravix-modal-logo { border-radius: 50% !important; }
.ravix-note-logo { width: 23px !important; height: 23px !important; border-radius: 50% !important; display:block !important; }
.ravix-blocked-logo { width: 72px; height: 72px; margin: 0 auto 16px; border-radius: 50% !important; }

/* Lider rolü yönetimi: kırmızı / altın hiyerarşiyi bozmayacak ayrı butonlar. */
.leader-toggle-row { border-color: rgba(216, 67, 67, .23) !important; background: linear-gradient(90deg, rgba(175,35,35,.08), rgba(0,0,0,0)); }
.leader-grant-btn { border-color: rgba(220,70,70,.42) !important; color: #ff8383 !important; background: rgba(158,32,32,.10) !important; }
.leader-grant-btn:hover { background: rgba(190,38,38,.18) !important; }
.leader-remove-btn { border-color: rgba(222,120,79,.34) !important; color: #e7a27f !important; background: rgba(164,72,34,.08) !important; }
.member-context-submenu button small { margin-left:auto; color:#6d7580; font-size:9px; font-weight:600; }

@media (max-width: 1050px) {
  .ravix-art-orb { width: 132px; height: 132px; margin-right: 4px; }
  .ravix-brand-crest { width: 48px; height: 48px; }
}
@media (max-width: 860px) {
  .ravix-brand-crest { width: 38px !important; height: 38px !important; }
  .ravix-art-orb { display:none; }
  .ravix-gate-logo { width:76px; height:76px; }
}


/* ================= RAVIX VOICE v24 ================= */
/* Üst durum rozeti: teknik P2P metni yerine sade çevrimiçi durumu. */
.server-status {
  display:inline-flex !important; align-items:center; gap:7px; min-width:74px; justify-content:center;
  color:#9ca3ad; background:rgba(255,255,255,.025); border-color:rgba(255,255,255,.08);
  font-weight:800; letter-spacing:.35px; text-transform:uppercase; transition:.18s ease;
}
.server-status-dot { width:7px; height:7px; border-radius:50%; background:#68707b; box-shadow:0 0 0 3px rgba(104,112,123,.08); }
.server-status.online { color:#82d99d; border-color:rgba(87,199,133,.24); background:rgba(65,151,93,.08); }
.server-status.online .server-status-dot { background:#57c785; box-shadow:0 0 10px rgba(87,199,133,.72),0 0 0 3px rgba(87,199,133,.08); }
.server-status.offline { color:#c68484; border-color:rgba(190,80,80,.18); background:rgba(139,49,49,.06); }
.server-status.offline .server-status-dot { background:#b65454; }

/* Hero artık slogan değil, Ravix duyuru merkezi gibi davranıyor. */
.hero {
  min-height:220px; position:relative; overflow:hidden;
  background:
    radial-gradient(circle at 84% 50%, rgba(212,166,60,.075), transparent 29%),
    linear-gradient(105deg, rgba(212,166,60,.018), transparent 44%);
}
.hero::before { content:''; position:absolute; left:28px; top:50%; width:2px; height:76px; transform:translateY(-50%); background:linear-gradient(transparent,var(--gold),transparent); opacity:.55; }
.hero-copy { position:relative; z-index:2; padding-left:18px; }
.hero-tag { display:flex; align-items:center; gap:8px; color:#8d929b; letter-spacing:2.25px; }
.hero-tag i { width:18px; height:1px; background:var(--gold); box-shadow:0 0 10px rgba(212,166,60,.28); }
.hero h3 {
  display:flex; align-items:baseline; flex-wrap:wrap; gap:10px;
  font-size:clamp(30px,3.75vw,50px) !important; line-height:1 !important; letter-spacing:.15px;
  margin:12px 0 11px; text-transform:none; max-width:760px;
}
.hero-title-brand { color:#f2f3f5; letter-spacing:1.2px; text-transform:uppercase; }
.hero-title-accent { color:var(--gold); font-size:.78em; letter-spacing:2.4px; text-transform:uppercase; text-shadow:0 0 24px rgba(212,166,60,.13); }
.hero p { color:#848b96; font-size:13px; line-height:1.65; max-width:560px; }

/* Kayıt odasında sağ tık > Roller > Üye, panel açmadan hızlı onay. */
.context-register-member { color:#8fe0a9 !important; background:rgba(65,151,93,.07) !important; }
.context-register-member:hover { background:rgba(65,151,93,.14) !important; }
.context-register-member > span { color:#62cf87; font-weight:900; }
.context-register-member strong { font:inherit; font-weight:800; color:inherit; }
.context-register-member small { margin-left:auto; color:#667d6f !important; font-size:8px !important; letter-spacing:.25px; text-transform:uppercase; }

@media (max-width:1030px) {
  .server-status { display:inline-flex !important; }
  .hero::before { left:18px; }
  .hero-copy { padding-left:14px; }
}
@media (max-width:560px) {
  .server-status { min-width:0; padding:7px 8px; }
  .server-status-text { display:none; }
}

/* Ravix Voice v25 — general chat, room chat, stable speaking + screen-share indicators */
.text-channel {
  width:100%; min-height:38px; display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center;
  gap:5px; padding:8px 10px; margin:0 0 8px; border:1px solid transparent; border-radius:9px;
  background:transparent; color:#aeb4be; text-align:left;
}
.text-channel:hover { background:#12151a; color:#fff; }
.text-channel.chat-active { color:#f4d982; border-color:rgba(212,166,60,.20); background:linear-gradient(90deg,rgba(212,166,60,.12),rgba(212,166,60,.025)); }
.text-channel-hash { display:grid; place-items:center; color:#d4a63c; font-weight:900; font-size:16px; }
.chat-unread-badge {
  min-width:18px; height:18px; padding:0 5px; display:grid; place-items:center; border-radius:999px;
  background:#d4a63c; color:#08090b; font-size:8px; font-weight:900; font-style:normal; line-height:1;
  box-shadow:0 0 0 2px #090b0e,0 0 12px rgba(212,166,60,.24);
}
.text-channel.has-unread:not(.chat-active) { color:#eef1f5; }
.text-channel.has-unread:not(.chat-active) > span:nth-child(2) { font-weight:800; }

.room { grid-template-columns:28px minmax(0,1fr) 25px auto !important; }
.room-chat-trigger {
  position:relative; width:25px; height:25px; display:grid; place-items:center; border-radius:7px;
  color:#68717d; opacity:.58; transition:background .14s,color .14s,opacity .14s,transform .14s;
}
.room:hover .room-chat-trigger,.room-chat-trigger:hover,.room-chat-trigger.chat-active,.room-chat-trigger.has-unread { opacity:1; color:#cbd1d9; }
.room-chat-trigger:hover,.room-chat-trigger.chat-active { background:rgba(255,255,255,.055); color:#f1d47b; }
.room-chat-trigger .voice-state-svg { width:14px; height:14px; }
.room-chat-unread {
  position:absolute; right:-3px; top:-4px; min-width:13px; width:auto; height:13px; padding:0 3px;
  font-size:6px; box-shadow:0 0 0 2px #0b0d11,0 0 9px rgba(212,166,60,.25);
}
.room-chat-trigger.chat-active::after {
  content:""; position:absolute; left:2px; right:2px; bottom:1px; height:1px; border-radius:2px; background:#d4a63c;
}

.room-mini-screen {
  height:17px; display:inline-flex; align-items:center; padding:0 5px; border-radius:5px;
  border:1px solid rgba(91,164,211,.30); background:rgba(57,111,148,.12); color:#9dd4f5;
  font-size:6px; font-weight:900; letter-spacing:.45px; white-space:nowrap;
}
.screen-head small { color:#8eacbe; }

/* Speaking no longer pulses/flickers. State changes are smoothed in JS; UI stays solid while speaking. */
.room-mini-speaking { animation:none !important; opacity:1 !important; transform:none !important; }
.room-mini-member.speaking { box-shadow:inset 2px 0 0 rgba(87,199,133,.60); transition:background .18s,color .18s,box-shadow .18s; }
.member.speaking { transition:border-color .18s,box-shadow .18s,background .18s,transform .18s; }

.ticker-empty-member {
  min-height:100%; display:flex; align-items:center; gap:8px; padding:0 18px; color:#747d88; font-size:9px; white-space:nowrap;
}
.ticker-empty-member span { color:#c9a13d; }

@media (max-width:860px) {
  .text-channel { flex:0 0 auto; width:auto; min-width:150px; margin:0 6px 6px 0; }
  .room { grid-template-columns:24px minmax(95px,1fr) 25px auto !important; }
  .room-chat-trigger { opacity:.82; }
}


/* Ravix Voice v26 — focused screen viewer + visible general-chat unread counter */
.general-chat-unread {
  justify-self:end;
  margin-left:6px;
  min-width:19px;
  height:19px;
  padding:0 6px;
  font-size:8px;
  border:1px solid rgba(255,226,132,.32);
  box-shadow:0 0 0 2px #090b0e,0 0 14px rgba(212,166,60,.34);
}
.text-channel.has-unread:not(.chat-active) .general-chat-unread { animation:ravixUnreadPop .22s ease-out; }
@keyframes ravixUnreadPop { from { transform:scale(.72); opacity:.2; } to { transform:scale(1); opacity:1; } }

.screen-tile { position:relative; transition:border-color .18s,box-shadow .18s,transform .18s; }
.screen-tile video { cursor:zoom-in; }
.screen-tile:hover { border-color:#39424d; }
.screen-tile-actions { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.screen-tile-actions > span { color:#62c984; font-size:9px; white-space:nowrap; }
.screen-focus-btn {
  height:24px; padding:0 9px; border-radius:7px; border:1px solid #303844; background:#11161c;
  color:#c9d0d8; font-size:8px; font-weight:800; cursor:pointer; transition:.15s;
}
.screen-focus-btn:hover { border-color:rgba(212,166,60,.55); background:rgba(212,166,60,.10); color:#f3d77d; }

.screen-grid.focused-layout {
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  align-items:start;
  gap:10px;
}
.screen-grid.focused-layout .screen-tile.screen-focused {
  grid-column:1 / -1;
  order:-2;
  border-color:rgba(212,166,60,.42);
  box-shadow:0 0 0 1px rgba(212,166,60,.08),0 12px 34px rgba(0,0,0,.28);
}
.screen-grid.focused-layout .screen-tile.screen-focused video {
  width:100%;
  aspect-ratio:16 / 9;
  max-height:min(72vh,820px);
  object-fit:contain;
  cursor:zoom-out;
  background:#020304;
}
.screen-grid.focused-layout .screen-tile.screen-thumbnail {
  min-width:0;
  opacity:.92;
}
.screen-grid.focused-layout .screen-tile.screen-thumbnail video {
  aspect-ratio:16 / 9;
  max-height:170px;
  object-fit:cover;
}
.screen-grid.focused-layout .screen-tile.screen-thumbnail .screen-tile-head { min-height:34px; }
.screen-grid.focused-layout .screen-tile.screen-thumbnail .screen-focus-btn { color:#9ba5b0; }

@media (max-width:860px) {
  .screen-grid.focused-layout { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .screen-grid.focused-layout .screen-tile.screen-focused { grid-column:1 / -1; }
  .screen-grid.focused-layout .screen-tile.screen-focused video { max-height:58vh; }
  .screen-grid.focused-layout .screen-tile.screen-thumbnail video { max-height:110px; }
  .screen-focus-btn { padding:0 7px; font-size:7px; }
}
@media (max-width:520px) {
  .screen-grid.focused-layout { grid-template-columns:1fr; }
  .screen-grid.focused-layout .screen-tile.screen-thumbnail video { max-height:135px; }
}


/* Ravix Voice v27 — ekran paylaşımı ses kontrolü */
.screen-audio-control {
  min-height:34px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:5px 10px;
  border-top:1px solid #1b2027;
  background:linear-gradient(90deg,rgba(11,14,18,.98),rgba(15,19,24,.96));
  color:#9ba5b1;
}
.screen-audio-toggle {
  width:26px; height:26px; flex:0 0 26px; display:grid; place-items:center;
  border:1px solid #2a313a; border-radius:7px; background:#101419; color:#cfd6df; cursor:pointer;
  transition:border-color .15s,background .15s,color .15s;
}
.screen-audio-toggle:hover:not(:disabled) { border-color:rgba(212,166,60,.5); color:#f1d47c; background:rgba(212,166,60,.08); }
.screen-audio-toggle.active { color:#e87979; border-color:rgba(222,88,88,.34); background:rgba(116,30,35,.12); }
.screen-audio-toggle:disabled { opacity:.38; cursor:default; }
.screen-audio-svg { width:15px; height:15px; }
.screen-audio-label { flex:0 0 auto; font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#7f8995; }
.screen-audio-slider { flex:1 1 120px; min-width:60px; max-width:180px; accent-color:#d4a63c; cursor:pointer; }
.screen-audio-slider:disabled { opacity:.35; cursor:default; }
.screen-audio-value { min-width:56px; text-align:right; color:#aeb7c1; font-size:8px; white-space:nowrap; }
.screen-audio-control.no-audio .screen-audio-label { color:#59616b; }
.screen-audio-control.person-muted { border-top-color:rgba(214,79,79,.18); }
.screen-audio-control.person-muted .screen-audio-value { color:#d77878; }
.screen-audio-control.share-muted .screen-audio-value { color:#d77878; }
.screen-grid.focused-layout .screen-tile.screen-thumbnail .screen-audio-control { padding:4px 7px; gap:5px; min-height:30px; }
.screen-grid.focused-layout .screen-tile.screen-thumbnail .screen-audio-label { display:none; }
.screen-grid.focused-layout .screen-tile.screen-thumbnail .screen-audio-slider { max-width:none; min-width:35px; }
.screen-grid.focused-layout .screen-tile.screen-thumbnail .screen-audio-value { min-width:38px; font-size:7px; }
@media (max-width:640px) {
  .screen-audio-control { gap:6px; padding:5px 7px; }
  .screen-audio-label { display:none; }
  .screen-audio-slider { min-width:40px; max-width:none; }
  .screen-audio-value { min-width:42px; font-size:7px; }
}


/* Ravix Voice v28 — Discord tipi isteğe bağlı ekran izleme */
.screen-card:not(.screen-watching) .screen-grid {
  grid-template-columns: 1fr;
  gap: 7px;
  padding: 10px 12px;
}
.screen-tile {
  display: flex;
  flex-direction: column;
}
.screen-tile .screen-tile-head {
  order: 1;
  border-top: 0;
  border-bottom: 1px solid #1e232a;
}
.screen-tile video { order: 2; }
.screen-tile .screen-audio-control { order: 3; }

/* Yayınlar kendiliğinden ekranı kaplamaz. Kullanıcı İzle dediğinde görüntü açılır. */
.screen-tile.screen-collapsed {
  min-height: 0;
  background: linear-gradient(90deg,#090c10,#0c1015);
  border-color: #202630;
}
.screen-tile.screen-collapsed video {
  display: none;
}
.screen-tile.screen-collapsed .screen-tile-head {
  min-height: 42px;
  padding: 0 12px;
  border-bottom: 0;
}
.screen-tile.screen-collapsed .screen-tile-head strong::after {
  content: "  •  ekran paylaşıyor";
  color: #69737f;
  font-size: 8px;
  font-weight: 600;
}
.screen-tile.screen-collapsed .screen-audio-control {
  border-top: 1px solid #191f26;
  min-height: 31px;
  padding-top: 3px;
  padding-bottom: 3px;
}
.screen-focus-btn {
  min-width: 66px;
}
.screen-focus-btn.watching {
  border-color: rgba(223,93,93,.38);
  background: rgba(124,35,40,.13);
  color: #ef9b9b;
}
.screen-focus-btn.watching:hover {
  border-color: rgba(223,93,93,.62);
  background: rgba(124,35,40,.22);
  color: #ffd0d0;
}

/* Bir yayın izlenirken sadece seçilen görüntü büyük; diğer yayınlar kompakt satır olarak kalır. */
.screen-grid.focused-layout {
  grid-template-columns: 1fr;
  align-items: start;
}
.screen-grid.focused-layout .screen-tile.screen-focused {
  grid-column: 1;
  order: -2;
}
.screen-grid.focused-layout .screen-tile.screen-focused video {
  display: block;
}
.screen-grid.focused-layout .screen-tile.screen-thumbnail {
  opacity: 1;
}
.screen-grid.focused-layout .screen-tile.screen-thumbnail video {
  display: none;
}
.screen-grid.focused-layout .screen-tile.screen-thumbnail .screen-tile-head {
  min-height: 40px;
}
.screen-grid.focused-layout .screen-tile.screen-thumbnail .screen-audio-control {
  min-height: 30px;
}

@media (max-width: 860px) {
  .screen-card:not(.screen-watching) .screen-grid,
  .screen-grid.focused-layout { grid-template-columns: 1fr; }
  .screen-tile.screen-collapsed .screen-tile-head strong::after { display: none; }
  .screen-focus-btn { min-width: 58px; }
}

/* ===== v29: Metin kanalları, çok satırlı chat, fotoğraf kanalı ve Ravix Music ===== */
.chat-text {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.55;
}
.chat-card { overflow: hidden; }
.chat-form {
  align-items: end;
  grid-template-columns: minmax(0,1fr) auto;
}
.chat-compose-main { min-width: 0; display:flex; flex-direction:column; gap:5px; }
.chat-form textarea {
  width:100%; min-height:44px; max-height:180px; resize:none;
  border:1px solid #282d35; background:#090b0f; border-radius:9px; color:#fff;
  padding:11px 12px; outline:none; line-height:1.45; font:inherit; overflow-y:auto;
}
.chat-form textarea:focus { border-color:#655021; box-shadow:0 0 0 3px rgba(212,166,60,.05); }
.chat-form textarea:disabled { opacity:.5; }
.chat-input-hint { color:#666f7d; font-size:10px; padding-left:2px; }
.chat-composer-notice {
  margin:10px 12px 0; padding:10px 12px; border:1px solid rgba(212,166,60,.18);
  border-radius:9px; background:rgba(212,166,60,.055); color:#b8a46f; font-size:11px;
}
.chat-form.photo-mode { grid-template-columns:minmax(0,1fr) auto; }
.photo-composer {
  min-height:54px; display:flex; align-items:center; gap:10px; padding:8px 10px;
  border:1px dashed rgba(212,166,60,.32); border-radius:10px; background:rgba(212,166,60,.04);
}
.photo-choose-btn {
  border:1px solid rgba(212,166,60,.36)!important; background:rgba(212,166,60,.10)!important;
  color:#efd278!important; padding:0 12px; white-space:nowrap;
}
.photo-composer span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7f8997; font-size:11px; }
.chat-photo-open { display:block; max-width:min(620px,100%); padding:0; border:0; background:none; cursor:zoom-in; }
.chat-photo-message {
  display:block; width:auto; max-width:100%; max-height:430px; object-fit:contain; border-radius:12px;
  border:1px solid #282e38; background:#07090c; box-shadow:0 10px 26px rgba(0,0,0,.22);
}
.chat-message.image-message .chat-body { min-width:0; }
.chat-message.system-message { opacity:.92; }
.chat-message.system-message .chat-body { padding:7px 10px; border-radius:9px; background:rgba(95,208,145,.045); border:1px solid rgba(95,208,145,.12); }
.bot-message-expiry { margin-top:5px; color:#728178; font-size:9px; letter-spacing:.02em; }
.music-bot-avatar { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:rgba(95,208,145,.12); color:#70dfa6; border:1px solid rgba(95,208,145,.24); font-weight:900; }
.role-badge.bot { color:#71dfa6; border-color:rgba(95,208,145,.30); background:rgba(95,208,145,.09); }
.chat-edit-row { align-items:flex-end; }
.chat-edit-input {
  min-height:88px; max-height:240px; resize:vertical; line-height:1.45; white-space:pre-wrap;
}
.chat-photo-viewer {
  position:fixed; inset:0; z-index:9999; display:grid; place-items:center; padding:46px;
  background:rgba(3,5,8,.90); backdrop-filter:blur(12px);
}
.chat-photo-viewer.hidden { display:none; }
.chat-photo-viewer img { max-width:min(94vw,1500px); max-height:90vh; object-fit:contain; border-radius:14px; box-shadow:0 25px 80px rgba(0,0,0,.65); }
.chat-photo-viewer-close {
  position:absolute; top:18px; right:22px; width:42px; height:42px; border-radius:50%; border:1px solid #343943;
  background:#11151b; color:#fff; font-size:28px; line-height:1; cursor:pointer;
}

.music-bot-card {
  margin-top:14px; border:1px solid rgba(95,208,145,.20); border-radius:13px; overflow:hidden;
  background:linear-gradient(135deg,rgba(16,25,22,.96),rgba(10,12,16,.98) 55%);
  box-shadow:0 12px 32px rgba(0,0,0,.18);
}
.music-bot-card.hidden { display:none; }
.music-bot-head { min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 14px; border-bottom:1px solid rgba(95,208,145,.12); }
.music-bot-brand { display:flex; align-items:center; gap:10px; min-width:0; }
.music-bot-icon { width:34px; height:34px; border-radius:9px; display:grid; place-items:center; color:#6ee0a6; background:rgba(95,208,145,.11); border:1px solid rgba(95,208,145,.24); font-size:19px; }
.music-bot-brand div { display:grid; min-width:0; }
.music-bot-brand small { color:#5ed094; letter-spacing:.13em; font-size:9px; font-weight:800; }
.music-bot-brand strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#edf5f1; font-size:13px; }
.music-bot-requester { color:#7d8d85; font-size:10px; white-space:nowrap; }
.music-youtube-wrap { width:100%; max-height:190px; overflow:hidden; background:#050706; }
.music-youtube-wrap.hidden { display:none; }
.music-youtube-wrap iframe { width:100%; height:190px; display:block; border:0; }
.music-bot-controls { display:grid; grid-template-columns:auto minmax(100px,220px) 42px 1fr; align-items:center; gap:10px; padding:10px 12px; }
.music-control-btn { height:34px; border:1px solid rgba(95,208,145,.22); background:rgba(95,208,145,.07); color:#bde8d1; border-radius:8px; padding:0 10px; font-weight:700; }
.music-control-btn.active { color:#ff9a9a; border-color:rgba(232,94,94,.35); background:rgba(232,94,94,.08); }
.music-bot-controls input[type="range"] { width:100%; accent-color:#63d99c; }
.music-bot-controls > span { color:#95a89e; font-size:10px; text-align:right; }
.music-command-help { justify-self:end; color:#647269; font-size:10px; }
.music-command-help code { color:#a8cdb9; background:#0b100d; border:1px solid #1c2d24; border-radius:5px; padding:2px 5px; }

.text-channel { min-height:36px; }
.text-channel > span:nth-child(2) { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.text-channel .chat-unread-badge { margin-left:auto; flex:0 0 auto; }

@media (max-width: 760px) {
  .chat-form, .chat-form.photo-mode { grid-template-columns:1fr; }
  .photo-composer { flex-wrap:wrap; }
  .music-bot-controls { grid-template-columns:auto minmax(0,1fr) 38px; }
  .music-command-help { grid-column:1/-1; justify-self:start; line-height:1.8; }
  .music-youtube-wrap iframe { height:170px; }
  .chat-photo-viewer { padding:54px 12px 20px; }
}
.chat-link { color:#4ea1ff; text-decoration:none; word-break:break-all; }
.chat-link:hover { text-decoration:underline; }


/* Ravix Voice v31 — ekran izleme ve tam ekran kontrolleri birbirinden bağımsız */
.screen-fullscreen-btn {
  min-width: 86px;
  border: 1px solid rgba(96,205,164,.24);
  background: rgba(36,112,86,.10);
  color: #9fe5c8;
  border-radius: 7px;
  padding: 6px 9px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .02em;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.screen-fullscreen-btn:hover {
  background: rgba(42,139,104,.18);
  border-color: rgba(111,230,184,.46);
  color: #d3ffed;
  transform: translateY(-1px);
}
.screen-fullscreen-btn.hidden { display: none !important; }
.screen-fullscreen-btn:disabled { pointer-events: none; opacity: .45; }
.screen-tile.screen-focused video { cursor: zoom-in; }
.screen-tile-actions { flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 640px) {
  .screen-fullscreen-btn { min-width: 0; padding: 6px 8px; font-size: 0; }
  .screen-fullscreen-btn::before { content: '⛶'; font-size: 13px; line-height: 1; }
}

/* ===== v32 private messaging + durable chat vault + music polish ===== */
.private-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}
.private-new-btn{width:24px;height:24px;border:1px solid rgba(212,166,60,.22);border-radius:8px;background:#0f1217;color:#dcb951;font-weight:900;cursor:pointer;line-height:1}
.private-new-btn:hover{background:#19150b;border-color:#d4a63c;color:#ffe49a}
.private-conversation-list{display:grid;gap:4px;margin:2px 0 8px}
.private-empty{padding:7px 10px;color:#66707e;font-size:11px}
.private-channel{width:100%;min-width:0;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;border:1px solid transparent;border-radius:9px;background:transparent;color:#a7b0bd;text-align:left;cursor:pointer}
.private-channel:hover{background:#12151a;color:#fff}
.private-channel.chat-active{background:linear-gradient(90deg,rgba(212,166,60,.12),rgba(212,166,60,.025));border-color:rgba(212,166,60,.18);color:#f4d982}
.private-channel.has-unread:not(.chat-active) .private-channel-copy strong{color:#fff;font-weight:800}
.private-channel-avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#151922;border:1px solid #28303b;font-size:14px}
.private-channel-avatar img,.private-photo{width:100%;height:100%;object-fit:cover;display:block}
.private-group-avatar{font-size:14px}
.private-channel-copy{min-width:0;display:flex;flex-direction:column;gap:1px}
.private-channel-copy strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.private-channel-copy small{font-size:9px;color:#687382;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.private-unread{position:static!important;transform:none!important;margin:0!important}
.chat-head-tools{display:flex;align-items:center;gap:10px;min-width:0}
.private-add-member-btn{border:1px solid rgba(212,166,60,.25);background:#12100a;color:#e5c466;border-radius:8px;padding:6px 9px;font-weight:800;font-size:10px;cursor:pointer;white-space:nowrap}
.private-add-member-btn:hover{background:#1c170c;color:#ffe8a4}
.private-chat-modal-card{width:min(620px,calc(100vw - 28px));max-height:min(760px,88vh);overflow:hidden;display:flex;flex-direction:column}
.private-modal-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#20180a,#0d1117);border:1px solid rgba(212,166,60,.3);color:#f3cc61;font-size:22px;box-shadow:0 10px 28px rgba(0,0,0,.3)}
.private-chat-title-input{width:100%;height:44px;border-radius:10px;border:1px solid #29303a;background:#0b0e12;color:#eef2f7;padding:0 12px;outline:none;margin:6px 0 12px}
.private-chat-title-input:focus{border-color:#9a7424;box-shadow:0 0 0 3px rgba(212,166,60,.08)}
.private-member-toolbar{display:flex;justify-content:space-between;align-items:center;margin:4px 0 8px;color:#8d98a7;font-size:10px;letter-spacing:.08em}
.private-member-picker{display:grid;gap:5px;overflow:auto;min-height:150px;max-height:360px;padding-right:3px}
.private-picker-row{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) 26px;align-items:center;gap:9px;padding:8px;border:1px solid #222933;border-radius:10px;background:#0d1015;color:#c6ccd5;text-align:left;cursor:pointer}
.private-picker-row:hover{background:#12161d;border-color:#343d49}
.private-picker-row.selected{border-color:rgba(212,166,60,.55);background:linear-gradient(90deg,rgba(212,166,60,.12),rgba(212,166,60,.025))}
.private-picker-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#151922}
.private-picker-row>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:2px}
.private-picker-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.private-picker-row small{color:#6e7886;font-size:9px}
.private-picker-row i{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#151a22;color:#9da6b4;font-style:normal;font-weight:900}
.private-picker-row.selected i{background:#c99b33;color:#0d0c08}
.private-picker-empty{padding:30px 15px;text-align:center;color:#687382;border:1px dashed #28303a;border-radius:10px}

.music-youtube-wrap .music-youtube-player,.music-youtube-wrap .music-youtube-player iframe{width:100%;height:190px;display:block;border:0}

@media(max-width:780px){
  .private-conversation-list{display:flex;gap:6px;overflow-x:auto;max-width:100%;padding-bottom:4px}
  .private-channel{flex:0 0 170px;grid-template-columns:28px minmax(0,1fr) auto}
  .private-channel-avatar{width:28px;height:28px}
  .private-chat-modal-card{max-height:90vh}
  .private-member-picker{max-height:44vh}
  .chat-head-tools{gap:6px}
  .private-add-member-btn{padding:5px 7px}
  .music-youtube-wrap .music-youtube-player,.music-youtube-wrap .music-youtube-player iframe{height:170px}
}

/* ===== v33 • Facebook-style floating private chats ===== */
.private-chat-dock{
  position:fixed;
  right:18px;
  bottom:14px;
  z-index:1800;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:10px;
  pointer-events:none;
  max-width:calc(100vw - 28px);
}
.private-popout{
  width:326px;
  height:432px;
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #2a313b;
  border-radius:14px 14px 8px 8px;
  background:linear-gradient(180deg,#11151b 0%,#0b0e12 100%);
  box-shadow:0 24px 70px rgba(0,0,0,.56),0 0 0 1px rgba(212,166,60,.035) inset;
  pointer-events:auto;
  transform-origin:bottom right;
  animation:privatePopIn .16s ease-out;
}
@keyframes privatePopIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.private-popout.minimized{height:52px;width:286px}
.private-pop-head{
  min-height:52px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto auto;
  align-items:center;
  gap:8px;
  padding:8px 8px 8px 10px;
  border-bottom:1px solid #252b34;
  background:linear-gradient(180deg,#171c23,#11151b);
  cursor:default;
  user-select:none;
}
.private-popout.minimized .private-pop-head{border-bottom:0}
.private-pop-head-avatar{
  width:34px;height:34px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  background:#171b22;border:1px solid #323a46;color:#e9ca73;font-weight:900
}
.private-pop-head-avatar img,.private-pop-head-avatar .private-photo{width:100%;height:100%;object-fit:cover}
.private-pop-head-copy{min-width:0;display:flex;flex-direction:column;gap:1px}
.private-pop-head-copy strong{font-size:12px;color:#f1f4f8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.private-pop-head-copy small{font-size:9px;color:#748091;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.private-pop-unread{
  min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:grid;place-items:center;
  background:#d6a532;color:#100d06;font-size:9px;font-weight:950;box-shadow:0 0 14px rgba(214,165,50,.28)
}
.private-pop-head-actions{display:flex;align-items:center;gap:3px}
.private-pop-head-actions button{
  width:27px;height:27px;border:0;border-radius:7px;background:transparent;color:#8e99a8;
  font:700 16px/1 Arial;display:grid;place-items:center;cursor:pointer
}
.private-pop-head-actions button:hover{background:#242a33;color:#fff}
.private-pop-head-actions button:first-child:hover{background:#211b0d;color:#f2ce69}
.private-pop-body{min-height:0;flex:1;display:flex;flex-direction:column}
.private-popout.minimized .private-pop-body{display:none}
.private-pop-messages{
  flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 10px 8px;
  scrollbar-width:thin;scrollbar-color:#303846 transparent
}
.private-pop-empty{padding:34px 12px;text-align:center;color:#616d7b;font-size:11px;line-height:1.5}
.private-pop-message{display:flex;margin:4px 0 8px;max-width:100%}
.private-pop-message.own{justify-content:flex-end;padding-left:34px}
.private-pop-message.other{justify-content:flex-start;padding-right:34px}
.private-pop-bubble{
  position:relative;min-width:54px;max-width:100%;padding:8px 10px 16px;border-radius:12px;
  background:#171c23;border:1px solid #272f39;color:#dce2ea;font-size:12px;line-height:1.42;
  overflow-wrap:anywhere;word-break:break-word
}
.private-pop-message.own .private-pop-bubble{
  background:linear-gradient(135deg,rgba(212,166,60,.19),rgba(151,105,23,.13));
  border-color:rgba(212,166,60,.28);color:#fff7df;border-bottom-right-radius:4px
}
.private-pop-message.other .private-pop-bubble{border-bottom-left-radius:4px}
.private-pop-author{display:block;margin-bottom:3px;color:#e1bd5f;font-size:10px}
.private-pop-text{white-space:normal}
.private-pop-text a{color:#75aef8;text-decoration:none}
.private-pop-text a:hover{text-decoration:underline}
.private-pop-time{position:absolute;right:8px;bottom:4px;color:#66717e;font-size:8px}
.private-pop-delete{
  position:absolute;top:-7px;right:-7px;width:24px;height:24px;border-radius:8px;border:1px solid #3a2830;
  background:#171015;color:#bf7b8a;font-size:11px;display:grid;place-items:center;cursor:pointer;
  opacity:0;transform:scale(.88);transition:opacity .12s ease,transform .12s ease,background .12s ease
}
.private-pop-bubble:hover .private-pop-delete,.private-pop-delete:focus{opacity:1;transform:scale(1)}
.private-pop-delete:hover{background:#35131d;color:#ff9bac;border-color:#653042}
.private-pop-form{
  display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:end;gap:7px;padding:8px;
  border-top:1px solid #242a33;background:#0d1116
}
.private-pop-form textarea{
  width:100%;height:38px;max-height:100px;resize:none;overflow-y:auto;border:1px solid #29313b;border-radius:11px;
  background:#080b0f;color:#edf1f6;padding:10px 11px;font:12px/1.35 inherit;outline:none
}
.private-pop-form textarea:focus{border-color:#73571f;box-shadow:0 0 0 3px rgba(212,166,60,.06)}
.private-pop-form button{
  width:38px;height:38px;border-radius:10px;border:1px solid #73571f;background:linear-gradient(180deg,#28200e,#181309);
  color:#f3d16f;font-size:15px;cursor:pointer
}
.private-pop-form button:hover{background:#33280e;color:#fff0ae}

@media (max-width:1120px){
  .private-popout{width:310px}
}
@media (max-width:720px){
  .private-chat-dock{right:7px;left:7px;bottom:8px;max-width:none;justify-content:flex-end}
  .private-popout,.private-popout.minimized{width:min(360px,calc(100vw - 14px))}
  .private-popout{height:min(470px,72vh)}
  .private-popout.minimized{height:52px}
}
@media (hover:none),(max-width:720px){
  .private-pop-delete{opacity:.82;transform:scale(1)}
}

/* ===== v35 • polished removable private-chat sidebar entries ===== */
.private-channel-wrap{
  position:relative;
  min-width:0;
  border-radius:10px;
  overflow:visible;
}
.private-channel-wrap .private-channel{
  width:100%;
  padding-right:36px;
}
.private-channel-remove{
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%) scale(.92);
  width:24px;
  height:24px;
  padding:0;
  margin:0;
  border:1px solid transparent;
  border-radius:8px;
  background:#11151b;
  color:#748091;
  display:grid;
  place-items:center;
  font:700 17px/1 Arial,sans-serif;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
  transition:opacity .14s ease,transform .14s ease,color .14s ease,border-color .14s ease,background .14s ease;
  z-index:3;
}
.private-channel-wrap:hover .private-channel-remove,
.private-channel-wrap:focus-within .private-channel-remove{
  opacity:1;
  pointer-events:auto;
  transform:translateY(-50%) scale(1);
}
.private-channel-remove:hover,
.private-channel-remove:focus-visible{
  color:#ff8a96;
  border-color:rgba(226,70,85,.38);
  background:#241319;
  outline:none;
}
.private-channel-wrap.has-unread .private-channel-remove{right:34px}
.private-channel-wrap.has-unread .private-channel{padding-right:62px}
.private-channel-wrap.chat-active .private-channel-remove{background:#18150d}
.private-channel-wrap.chat-active .private-channel-remove:hover{background:#2b161a}
@media (hover:none),(max-width:780px){
  .private-channel-remove{
    opacity:.82;
    pointer-events:auto;
    transform:translateY(-50%) scale(1);
  }
}
@media(max-width:780px){
  .private-channel-wrap{flex:0 0 170px}
  .private-channel-wrap .private-channel{width:100%;flex:none}
}

/* ===== v36 • Discord-like three-column desktop layout ===== */
.app-shell{
  grid-template-columns:clamp(292px,17vw,326px) minmax(0,1fr) clamp(268px,16vw,312px) !important;
  width:100%;
  max-width:100vw;
  overflow:hidden;
}
.sidebar{
  min-width:0;
  width:100%;
  padding:22px 16px 14px;
}
.sidebar .voice-channels-section{
  max-height:none !important;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:5px;
}
.main-panel{
  min-width:0;
  max-width:1440px;
  padding-left:clamp(22px,2.2vw,42px);
  padding-right:clamp(22px,2.2vw,42px);
}
.members-sidebar{
  min-width:0;
  height:100vh;
  position:sticky;
  top:0;
  align-self:start;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-left:1px solid var(--line);
  background:
    linear-gradient(180deg,rgba(14,16,20,.98),rgba(8,10,13,.98)),
    radial-gradient(circle at 50% 0%,rgba(212,166,60,.055),transparent 34%);
  box-shadow:-16px 0 36px rgba(0,0,0,.08);
}
.members-sidebar-head{
  min-height:76px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:16px 16px 14px;
  border-bottom:1px solid var(--line);
}
.members-sidebar-head > div{min-width:0}
.members-sidebar-eyebrow{
  display:block;
  margin-bottom:4px;
  color:#666e79;
  font-size:8px;
  font-weight:800;
  letter-spacing:1.45px;
}
.members-sidebar-head strong{
  display:block;
  color:#e8ebef;
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.members-sidebar-live{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px 7px;
  border:1px solid rgba(87,199,133,.18);
  border-radius:999px;
  color:#76cd96;
  background:rgba(87,199,133,.055);
  font-size:7px;
  font-weight:850;
  letter-spacing:.6px;
}
.members-sidebar-live i{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 9px rgba(87,199,133,.7);
}
.members-sidebar .guild-roster-section{
  flex:1 1 auto;
  min-height:0;
  margin:0;
  padding:8px 8px 16px;
  border:0;
  overflow:hidden;
}
.members-sidebar .guild-roster{
  height:100%;
  padding:2px 3px 16px;
  overflow-y:auto;
  overflow-x:hidden !important;
}
.members-sidebar .roster-group{margin-bottom:14px}
.members-sidebar .roster-group-title{
  position:sticky;
  top:0;
  z-index:2;
  margin:0 3px 3px;
  padding:7px 7px 5px;
  background:linear-gradient(180deg,#0d1014 72%,rgba(13,16,20,0));
  font-size:8px;
  letter-spacing:1.05px;
}
.members-sidebar .roster-member{
  min-height:43px;
  grid-template-columns:32px minmax(0,1fr) max-content;
  gap:8px;
  padding:5px 6px;
  border-radius:9px;
}
.members-sidebar .roster-member:hover{background:#13171d}
.members-sidebar .roster-avatar{width:31px;height:31px}
.members-sidebar .roster-copy strong{font-size:10px}
.members-sidebar .roster-copy small{font-size:8px}
.members-sidebar .roster-role-wrap{max-width:78px !important;overflow:visible}
.members-sidebar .roster-role-wrap .role-badge{font-size:6.5px;padding:3px 5px}
.roster-drawer-btn{display:none}

/* Medium desktop: keep the roomy left rail, collapse members to the existing sheet. */
@media (min-width:861px) and (max-width:1249px){
  .app-shell{
    grid-template-columns:clamp(258px,24vw,292px) minmax(0,1fr) !important;
  }
  .members-sidebar{display:none !important}
  .roster-drawer-btn{display:inline-flex;align-items:center;justify-content:center}
  .mobile-sheet-card{
    left:auto;
    right:18px;
    bottom:18px;
    width:min(360px,calc(100vw - 36px));
    max-height:min(76vh,720px);
  }
  .main-panel{padding-left:24px;padding-right:24px}
}

/* Wide desktop: keep the full three-column Discord silhouette. */
@media (min-width:1600px){
  .app-shell{grid-template-columns:326px minmax(0,1fr) 318px !important}
  .sidebar{padding-left:18px;padding-right:18px}
  .members-sidebar-head{padding-left:18px;padding-right:18px}
}

@media (max-width:860px){
  .app-shell{display:block !important;overflow-x:hidden}
  .members-sidebar{display:none !important}
  .roster-drawer-btn{display:none !important}
  .sidebar .voice-channels-section{max-height:none !important}
}


/* ===== v37 • profile avatar stability + room-return screen share fixes ===== */
.profile-modal-mark {
  position: relative;
  flex: 0 0 52px;
  isolation: isolate;
  overflow: hidden;
}
.profile-modal-mark .profile-avatar-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  z-index: 1;
}
.profile-modal-mark #profileModalInitial { position: relative; z-index: 0; }
.name-edit-card { overflow: hidden; }
@media (max-width: 560px) {
  .profile-modal-mark { flex-basis: 44px; }
}


/* v38 — ekran paylaşımı oda değişimi sırasında güvenilir yeniden bağlanma */
.screen-tile { position: relative; }
.screen-pending-note {
  display: none;
  min-height: 170px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--muted, #8f98a8);
  background: linear-gradient(145deg, rgba(16,20,27,.96), rgba(7,10,14,.98));
  font-size: 13px;
}
.screen-tile.screen-pending .screen-pending-note { display: flex; }
.screen-tile.screen-pending video { display: none; }
.screen-pending-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(211,166,55,.22);
  border-top-color: #d3a637;
  border-radius: 50%;
  animation: ravixScreenSpin .8s linear infinite;
}
@keyframes ravixScreenSpin { to { transform: rotate(360deg); } }


/* ===== v39 • Ravix Çekiliş Odası / Giveaway Bot ===== */
.giveaway-channel-button .text-channel-hash{filter:saturate(1.15)}
.giveaway-create-head-btn{
  border:1px solid rgba(232,183,53,.32);background:linear-gradient(180deg,rgba(232,183,53,.14),rgba(232,183,53,.06));
  color:#f0c24e;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap
}
.giveaway-create-head-btn:hover{border-color:rgba(245,199,74,.62);background:rgba(232,183,53,.17)}
.giveaway-modal-card{width:min(590px,calc(100vw - 28px));padding:0 20px 20px;overflow:hidden}
.giveaway-modal-head{display:flex;align-items:center;gap:14px;padding:22px 0 18px}
.giveaway-modal-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#e3aa27,#7f5708);box-shadow:0 10px 32px rgba(211,154,26,.18);font-size:24px}
.giveaway-modal-copy{min-width:0;flex:1}.giveaway-modal-copy h3{margin:3px 0 4px;font-size:22px}.giveaway-modal-copy p{margin:0;color:#8d96a5;font-size:12px}
.giveaway-form-grid{display:grid;grid-template-columns:1fr 180px;gap:12px}
.giveaway-field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.giveaway-field>span{font-size:10px;font-weight:800;letter-spacing:.9px;color:#9aa3b3}.giveaway-field b{color:#e7b637}.giveaway-field small{font-weight:500;color:#707a89;letter-spacing:0}
.giveaway-field input,.giveaway-field textarea{width:100%;box-sizing:border-box;border:1px solid #292f39;background:#0a0d11;color:#f5f6f7;border-radius:10px;padding:12px 13px;outline:none;font:inherit;resize:vertical}
.giveaway-field input:focus,.giveaway-field textarea:focus{border-color:rgba(232,183,53,.72);box-shadow:0 0 0 3px rgba(232,183,53,.08)}
.giveaway-modal-note{display:flex;gap:10px;align-items:flex-start;border:1px solid rgba(232,183,53,.18);background:rgba(232,183,53,.055);border-radius:10px;padding:10px 12px;margin:0 0 16px;color:#aab1bd;font-size:11px;line-height:1.5}.giveaway-modal-note>span{color:#f2bf43;font-size:19px}.giveaway-modal-note p{margin:0}
.giveaway-submit-btn{min-width:178px}

.giveaway-card{border:1px solid #2b313b;border-radius:14px;background:linear-gradient(145deg,#10141a,#0a0d11 70%);overflow:hidden;margin:10px 2px;box-shadow:0 14px 36px rgba(0,0,0,.16)}
.giveaway-card.status-active{border-color:rgba(224,173,43,.36);box-shadow:inset 3px 0 #e1ad2b,0 14px 36px rgba(0,0,0,.16)}
.giveaway-card.status-ended{border-color:rgba(74,196,121,.32);box-shadow:inset 3px 0 #4bc47a,0 14px 36px rgba(0,0,0,.16)}
.giveaway-card.status-cancelled{opacity:.76}
.giveaway-card-top{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px 16px 12px;border-bottom:1px solid #20252d;background:linear-gradient(90deg,rgba(224,173,43,.08),transparent 48%)}
.giveaway-bot-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#e8b538,#6f4d08);font-size:21px}
.giveaway-card-top small{display:block;font-size:8px;font-weight:900;letter-spacing:1.4px;color:#d6a92d;margin-bottom:4px}.giveaway-card-top strong{display:block;font-size:18px;color:#f7f7f7;line-height:1.25}
.giveaway-status{font-size:8px;font-weight:900;letter-spacing:.9px;border:1px solid rgba(224,173,43,.34);color:#e7b638;background:rgba(224,173,43,.07);padding:5px 7px;border-radius:999px}.status-ended .giveaway-status{border-color:rgba(74,196,121,.36);color:#5bd58b;background:rgba(74,196,121,.08)}.status-cancelled .giveaway-status{border-color:rgba(207,77,77,.34);color:#e56b6b;background:rgba(207,77,77,.08)}
.giveaway-description{padding:12px 16px 3px;color:#cbd0d8;font-size:12px;line-height:1.62;white-space:normal;overflow-wrap:anywhere}
.giveaway-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 16px}.giveaway-info-grid>div{min-width:0;border:1px solid #222832;background:#0b0f14;border-radius:10px;padding:10px;display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center}.giveaway-info-grid>div>span{grid-row:1/3;font-size:18px}.giveaway-info-grid b{font-size:12px;color:#f3f4f5;overflow:hidden;text-overflow:ellipsis}.giveaway-info-grid small{font-size:8px;color:#747e8e;text-transform:uppercase;letter-spacing:.55px}.giveaway-info-grid .giveaway-countdown{font-size:11px;white-space:nowrap}
.giveaway-winners{margin:0 16px 12px;padding:11px 12px;border:1px solid rgba(74,196,121,.23);background:rgba(74,196,121,.055);border-radius:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.giveaway-winners>span{font-size:8px;font-weight:900;letter-spacing:1px;color:#64d991}.giveaway-winners strong{font-size:11px;border:1px solid rgba(74,196,121,.22);background:#0c1511;border-radius:999px;padding:5px 8px}
.giveaway-card-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px 15px;border-top:1px solid #1f242c}.giveaway-owner{min-width:0;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.giveaway-owner span,.giveaway-owner small{font-size:9px;color:#747d8a}.giveaway-owner strong{font-size:10px;color:#cbd0d8}.giveaway-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}.giveaway-join-btn,.giveaway-manager-actions button{border:1px solid #363d48;background:#151a21;color:#d7dbe1;border-radius:8px;padding:8px 11px;font-size:9px;font-weight:900;cursor:pointer}.giveaway-join-btn{border-color:#d5a62b;background:linear-gradient(180deg,#d6a82d,#9a7010);color:#090b0e;min-width:88px}.giveaway-join-btn.joined{border-color:rgba(74,196,121,.42);background:rgba(74,196,121,.12);color:#62d78e}.giveaway-join-btn:disabled{cursor:default}.giveaway-join-btn.ended{border-color:#303640;background:#14181e;color:#737d8b}.giveaway-manager-actions{display:flex;gap:6px}.giveaway-manager-actions button:hover{border-color:#d5a62b;color:#e7bc4a}.giveaway-manager-actions button.danger:hover{border-color:#a84646;color:#ec7777}
@media(max-width:700px){.giveaway-form-grid{grid-template-columns:1fr}.giveaway-card-top{grid-template-columns:40px minmax(0,1fr)}.giveaway-status{grid-column:2;justify-self:start}.giveaway-info-grid{grid-template-columns:1fr}.giveaway-card-foot{align-items:stretch;flex-direction:column}.giveaway-actions{justify-content:flex-end;flex-wrap:wrap}.giveaway-manager-actions{flex:1}.giveaway-manager-actions button{flex:1}.giveaway-join-btn{flex:1}.giveaway-create-head-btn{padding:6px 8px;font-size:0}.giveaway-create-head-btn::after{content:'🎁';font-size:14px}}

/* Ravix Voice v41 — hero haber merkezi + daha okunur sesli sohbet isimleri */
.hero-announcement-stage {
  min-height: 232px;
  gap: 28px;
  padding: 30px 28px;
  overflow: hidden;
}
.hero-announcement-copy {
  width: min(100%, 860px);
  flex: 1 1 auto;
  min-width: 0;
}
.hero-announcement-title {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 12px 0 14px;
  min-width: 0;
}
.hero-announcement-title strong {
  color: #f4f1e8;
  font-family: Cinzel, serif;
  font-size: clamp(24px, 2.3vw, 34px);
  line-height: 1.05;
  letter-spacing: .3px;
  white-space: nowrap;
}
.hero-announcement-title small {
  color: #7f8792;
  font-size: 11px;
  line-height: 1.4;
}
.hero-announcement-bar {
  width: 100%;
  height: 60px;
  margin: 0;
  border-radius: 13px;
  box-shadow: 0 14px 34px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.03);
}
.hero-announcement-bar .announcement-label {
  min-width: 138px;
  padding: 0 18px;
  font-size: 10px;
  letter-spacing: 1.15px;
}
.hero-announcement-bar .ticker-item {
  gap: 11px;
  padding: 0 28px;
  font-size: 12px;
  font-weight: 650;
}
.hero-announcement-bar .ticker-item b {
  font-size: 8.5px;
  padding: 4px 7px;
}
.hero-announcement-bar .ticker-empty-manager {
  height: 60px;
  font-size: 11px;
}
.hero-announcement-bar .announcement-manage {
  min-width: 88px;
}
.hero-announcement-bar .announcement-manage-text {
  font-size: 9.5px;
}

/* Ana ses kartında isimleri ve durum bilgisini daha rahat okunur yap. */
#members .member {
  padding: 14px 15px;
  gap: 12px;
}
#members .member .avatar {
  width: 46px;
  height: 46px;
  border-radius: 12px;
}
#members .member strong {
  font-size: 16px;
  line-height: 1.18;
  font-weight: 850;
  letter-spacing: -.1px;
}
#members .member-status {
  font-size: 11.5px;
  line-height: 1.25;
  margin-top: 4px;
}
#members .role-badge {
  font-size: 8.5px;
  padding: 4px 6px;
}
#members .self-label {
  font-size: 10.5px;
}

@media (max-width: 1030px) {
  .hero-announcement-stage { min-height: 190px; padding: 24px 20px; }
  .hero-announcement-title { margin-top: 10px; }
  .hero-announcement-title small { display: none; }
  .hero-announcement-bar { height: 54px; }
  .hero-announcement-bar .ticker-empty-manager { height: 54px; }
  .hero-announcement-bar .announcement-label { min-width: 118px; font-size: 9px; }
}

@media (max-width: 860px) {
  .hero-announcement-stage { min-height: 0; padding: 18px 12px 16px; }
  .hero-announcement-copy { padding-left: 10px; width: 100%; }
  .hero-announcement-title strong { font-size: 22px; }
  .hero-announcement-bar { height: 48px; border-radius: 11px; }
  .hero-announcement-bar .announcement-label { min-width: 96px; padding: 0 9px; font-size: 7.5px; }
  .hero-announcement-bar .ticker-item { padding: 0 18px; font-size: 10.5px; }
  .hero-announcement-bar .ticker-empty-manager { height: 48px; font-size: 9.5px; padding: 0 14px; }
  .hero-announcement-bar .announcement-manage { min-width: 44px; width: 44px; padding: 0; }
  .hero-announcement-bar .announcement-manage-text { display: none; }
  #members .member strong { font-size: 15px; }
}


/* Ravix Voice v42 — ses kanalı mini kullanıcı isimlerini büyüt */
.room-presence-mini {
  padding-left: 32px;
}
.room-mini-member {
  min-height: 34px;
  grid-template-columns: 26px minmax(0,1fr) max-content max-content !important;
  gap: 6px !important;
  padding: 4px 5px;
  font-size: 12.5px;
}
.room-mini-avatar {
  width: 25px;
  height: 25px;
  font-size: 10px;
}
.room-mini-name {
  font-size: 12.5px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .05px;
}

@media (max-width: 860px) {
  .room-presence-mini { padding-left: 30px; }
  .room-mini-member {
    min-height: 33px;
    grid-template-columns: 25px minmax(0,1fr) max-content max-content !important;
    font-size: 12px;
  }
  .room-mini-avatar { width: 24px; height: 24px; }
  .room-mini-name { font-size: 12px; }
}


/* ===== Ravix Voice v43 • Discord tipi sürüklenebilir panel genişlikleri =====
   Sol kanal paneli ve sağ lonca üye paneli masaüstünde kenarlarından tutulup
   yatay olarak yeniden boyutlandırılabilir. Tercihler tarayıcıda saklanır. */
:root {
  --ravix-sidebar-width: clamp(292px,17vw,326px);
  --ravix-members-width: clamp(268px,16vw,312px);
}

.layout-resizer {
  position: fixed;
  top: 0;
  bottom: 0;
  z-index: 70;
  width: 10px;
  border: 0;
  outline: 0;
  background: transparent;
  cursor: col-resize;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}
.layout-resizer::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  transform: translateX(-50%) scaleX(.5);
  transform-origin: center;
  background: rgba(212,166,60,.72);
  box-shadow: 0 0 12px rgba(212,166,60,.22);
  opacity: 0;
  transition: opacity .13s ease, transform .13s ease, background .13s ease;
  pointer-events: none;
}
.layout-resizer:hover::after,
.layout-resizer:focus-visible::after,
.layout-resizer.dragging::after {
  opacity: 1;
  transform: translateX(-50%) scaleX(1);
  background: rgba(229,185,78,.92);
}
.layout-resizer-left { left: calc(var(--ravix-sidebar-width) - 5px); }
.layout-resizer-right { right: calc(var(--ravix-members-width) - 5px); }

body.layout-resizing,
body.layout-resizing * {
  cursor: col-resize !important;
  -webkit-user-select: none !important;
  user-select: none !important;
}
body.layout-resizing .app-shell { pointer-events: none; }
body.layout-resizing .layout-resizer { pointer-events: auto; }

@media (min-width: 1250px) {
  .app-shell {
    grid-template-columns: var(--ravix-sidebar-width) minmax(0,1fr) var(--ravix-members-width) !important;
  }
  body.registration-pending .app-shell {
    grid-template-columns: var(--ravix-sidebar-width) minmax(0,1fr) !important;
  }
  body.registration-pending .layout-resizer-right { display: none !important; }
}

@media (min-width: 861px) and (max-width: 1249px) {
  .app-shell {
    grid-template-columns: var(--ravix-sidebar-width) minmax(0,1fr) !important;
  }
  .layout-resizer-right { display: none !important; }
}

@media (max-width: 860px) {
  .layout-resizer { display: none !important; }
}


/* ===== Ravix Voice v44 • VIP rolü + özel mesaj Rahatsız Etme ===== */
.role-badge.vip {
  color: #d9b8ff;
  border-color: rgba(173, 111, 255, .42);
  background: linear-gradient(135deg, rgba(117, 63, 192, .18), rgba(62, 36, 103, .12));
  box-shadow: 0 0 0 1px rgba(173,111,255,.05), 0 0 12px rgba(133,76,211,.08);
}
.room-mini-avatar.vip {
  border-color: rgba(173,111,255,.50);
  color: #e4ccff;
  background: rgba(91,48,145,.20);
}
.room-mini-role.vip {
  color: #d9b8ff;
  border-color: rgba(173,111,255,.38);
  background: rgba(117,63,192,.10);
}
.roster-member.vip .roster-copy strong { color: #d9b8ff; }
.roster-group.vips .roster-group-title { color: #b98be9; }

.vip-toggle-row {
  border-color: rgba(173,111,255,.22) !important;
  background: linear-gradient(90deg, rgba(107,57,168,.08), rgba(0,0,0,0));
}
.vip-grant-btn {
  border: 1px solid rgba(173,111,255,.38) !important;
  background: rgba(117,63,192,.10) !important;
  color: #d9b8ff !important;
}
.vip-remove-btn {
  border: 1px solid rgba(137,95,184,.26) !important;
  background: rgba(78,49,107,.07) !important;
  color: #aa8bc6 !important;
}

.notify-control.dnd-active {
  color: #f0b35a !important;
  border-color: rgba(240,179,90,.30) !important;
  background: rgba(240,179,90,.08) !important;
}
.notify-control .voice-state-svg { width: 16px; height: 16px; }

/* 4 alt kullanıcı kontrolü v44'te de sidebar içinde taşmadan kalsın. */
.user-panel-controls { gap: 5px; }
.user-panel-controls .user-control-btn { flex: 0 0 31px; width: 31px; }
@media (max-width: 390px) {
  .user-panel-controls .user-control-btn { flex-basis: 29px; width: 29px; }
}


/* ===== Ravix Voice v45 • Admin/VIP renk değişimi =====
   Admin = mor premium, VIP = Ravix altın. Sadece rol görselleri etkilenir. */
.role-badge.admin {
  color: #d9b8ff !important;
  border-color: rgba(173,111,255,.42) !important;
  background: linear-gradient(135deg, rgba(117,63,192,.18), rgba(62,36,103,.12)) !important;
  box-shadow: 0 0 0 1px rgba(173,111,255,.05), 0 0 12px rgba(133,76,211,.08);
}
.room-mini-avatar.admin {
  border-color: rgba(173,111,255,.50) !important;
  color: #e4ccff !important;
  background: rgba(91,48,145,.20) !important;
}
.room-mini-role.admin,
.roster-role.admin {
  color: #d9b8ff !important;
  border-color: rgba(173,111,255,.38) !important;
  background: rgba(117,63,192,.10) !important;
}
.roster-member.admin .roster-copy strong { color: #d9b8ff !important; }
.roster-group.admins .roster-group-title { color: #b98be9 !important; }

.role-badge.vip {
  color: #f7dc91 !important;
  border-color: rgba(212,166,60,.32) !important;
  background: rgba(212,166,60,.10) !important;
  box-shadow: 0 0 0 1px rgba(212,166,60,.04), 0 0 12px rgba(212,166,60,.06);
}
.room-mini-avatar.vip {
  border-color: rgba(212,166,60,.45) !important;
  color: #f0d17c !important;
  background: rgba(212,166,60,.08) !important;
}
.room-mini-role.vip,
.roster-role.vip {
  color: #eac86d !important;
  border-color: rgba(212,166,60,.38) !important;
  background: rgba(212,166,60,.08) !important;
}
.roster-member.vip .roster-copy strong { color: #e2bd60 !important; }
.roster-group.vips .roster-group-title { color: #b99849 !important; }

/* Yönetim panelindeki VIP aksiyonu da yeni altın VIP rengiyle aynı olsun. */
.vip-toggle-row {
  border-color: rgba(212,166,60,.22) !important;
  background: linear-gradient(90deg, rgba(212,166,60,.07), rgba(0,0,0,0)) !important;
}
.vip-grant-btn {
  border-color: rgba(212,166,60,.38) !important;
  background: rgba(212,166,60,.10) !important;
  color: #f7dc91 !important;
}
.vip-remove-btn {
  border-color: rgba(184,145,52,.26) !important;
  background: rgba(111,82,26,.08) !important;
  color: #c9a955 !important;
}

/* Admin verme aksiyonu artık mor rol rengiyle tutarlı. */
.admin-role-row.role-toggle-row {
  border-color: rgba(173,111,255,.20) !important;
  background: linear-gradient(90deg, rgba(117,63,192,.07), rgba(0,0,0,0)) !important;
}
.admin-role-row.role-toggle-row .role-grant-btn {
  color: #d9b8ff !important;
  border-color: rgba(173,111,255,.38) !important;
  background: rgba(117,63,192,.10) !important;
}


/* ===== Ravix Voice v46 • temiz hesap / yeni kullanıcı ===== */
.profile-reset-identity {
  width: 100%;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(239, 68, 68, .28);
  border-radius: 10px;
  background: rgba(127, 29, 29, .10);
  color: #fca5a5;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
.profile-reset-identity:hover {
  background: rgba(127, 29, 29, .18);
  border-color: rgba(248, 113, 113, .48);
  transform: translateY(-1px);
}

/* v47 • LiveKit SFU test room */
.sfu-room {
  position: relative;
}

.sfu-room:not(.membership-hidden) {
  border-color: rgba(88, 196, 255, 0.22);
  background: linear-gradient(90deg, rgba(38, 118, 168, 0.10), rgba(17, 20, 27, 0.32));
}

.sfu-room-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 5px;
  padding: 2px 5px;
  border: 1px solid rgba(88, 196, 255, 0.38);
  border-radius: 999px;
  font-size: 8px;
  line-height: 1.2;
  letter-spacing: .08em;
  color: #aee6ff;
  background: rgba(30, 126, 184, 0.14);
}
