.player-chat { --pc-bg:#fff; --pc-ink:#17253b; --pc-muted:#56657b; --pc-line:#dbe3ec; --pc-accent:#285bc4; color:var(--pc-ink);background:var(--pc-bg);border:1px solid var(--pc-line);border-radius:14px;box-shadow:0 8px 30px #17253b18;font:14px/1.45 system-ui,sans-serif;text-align:left;overflow:hidden; }
.player-chat *, .player-chat *::before, .player-chat *::after {box-sizing:border-box;}
.player-chat[hidden], .player-chat [hidden] {display:none!important;}
.player-chat button, .player-chat input {font:inherit;letter-spacing:normal;text-transform:none;}
.player-chat button {cursor:pointer;color:var(--pc-accent);background:transparent;border:1px solid var(--pc-line);border-radius:8px;padding:7px 10px;min-height:36px;}
.player-chat button:disabled {opacity:.55;cursor:default;}
.player-chat :focus-visible {outline:3px solid #79a6ff;outline-offset:2px;}
.pc-header {display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-bottom:1px solid var(--pc-line);}
.player-chat .pc-toggle {font-weight:750;border:0;padding:2px;}
.pc-unread {display:inline-block;background:var(--pc-accent);color:#fff;border-radius:20px;padding:1px 7px;font-size:12px;}
.pc-scope,.pc-help,.pc-players small {color:var(--pc-muted);font-size:12px;}
.pc-body {padding:10px;}
.pc-players {border-bottom:1px solid var(--pc-line);padding:0 2px 8px;}
.pc-players summary {cursor:pointer;font-weight:600;}
.pc-roster>div {display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;}
.pc-roster span {overflow-wrap:anywhere;}
.player-chat .pc-roster button {font-size:12px;flex-shrink:0;}
.pc-log {height:clamp(140px,32vh,340px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:5px 3px;}
.pc-message {padding:8px 0;overflow-wrap:anywhere;}
.pc-message strong {font-size:12px;}
.pc-message time {font-size:11px;color:var(--pc-muted);margin-left:8px;}
.pc-message p {margin:3px 0 0;white-space:pre-wrap;}
.pc-system {font-size:12px;color:var(--pc-muted);text-align:center;margin:8px 0;}
.pc-form {display:flex;gap:8px;margin:8px 0 0;}
.player-chat .pc-input {flex:1;min-width:0;width:0;border:1px solid var(--pc-line);border-radius:8px;padding:10px;background:var(--pc-bg);color:var(--pc-ink);font-size:16px;}
.player-chat .pc-send {background:var(--pc-accent);border-color:var(--pc-accent);color:white;}
.pc-status {font-size:12px;color:var(--pc-muted);margin:6px 0;}
.pc-status:empty {display:none;}
.player-chat.chatBox, .player-chat.pc-floating, .player-chat[data-presentation="overlay"], .player-chat[data-collapsed="true"] {position:fixed!important;right:max(12px,env(safe-area-inset-right))!important;bottom:max(12px,env(safe-area-inset-bottom))!important;width:min(350px,calc(100vw - 24px));padding:0;z-index:1050;max-height:calc(100dvh - 24px);overflow-y:auto;}
.player-chat[data-presentation="overlay"] {--pc-bg:#111c2b;--pc-ink:#edf4ff;--pc-muted:#b1c2d8;--pc-line:#34465d;--pc-accent:#619aff;box-shadow:0 8px 30px #0005;}
.pc-preview:empty {display:none;}
.pc-preview {padding:0 12px;pointer-events:none;max-height:210px;overflow:hidden;}
.player-chat[data-collapsed="false"] .pc-preview {display:none;}

@media (max-width:767.98px) { .pc-log {height:24dvh;} .pc-scope {font-size:11px;} }

.pc-log:empty::before {content:"Say hello to the room.";display:block;color:var(--pc-muted);font-size:13px;padding:12px 0;}

#waitingRoomModal .player-chat.chatBox {position:static!important;right:auto!important;bottom:auto!important;width:auto;margin:0 16px 16px;max-height:none;box-shadow:none;}
#waitingRoomModal .pc-log {height:160px;}
/* Voice is a small channel: membership above, persistent call controls below. */
.player-chat {--pc-voice-accent:#6553c7;--pc-voice-tint:#f5f3ff;--pc-voice-green:#137548;--pc-voice-green-bg:#e9f6ee;--pc-voice-danger:#b52b40;}
.pc-voice {border-bottom:1px solid var(--pc-line);background:var(--pc-voice-tint);padding:12px;}
.player-chat[data-presentation="overlay"] {--pc-voice-accent:#bcafff;--pc-voice-tint:#192335;--pc-voice-green:#86e6b2;--pc-voice-green-bg:#1e3a35;--pc-voice-danger:#ff9aab;}
.pc-voice-icon {width:18px;height:18px;flex:0 0 18px;vertical-align:middle;}
.pc-voice summary {list-style:none;cursor:pointer;}
.pc-voice summary::-webkit-details-marker {display:none;}
.pc-voice-summary {display:flex;align-items:center;gap:10px;min-height:44px;}
.pc-voice-channel-icon {display:grid;place-items:center;flex:0 0 38px;height:38px;border:1px solid var(--pc-line);border-radius:12px;background:var(--pc-bg);color:var(--pc-voice-accent);}
.pc-voice-heading {display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.pc-voice-heading strong {font-size:14px;font-weight:750;}
.pc-voice-connection {font-size:11px;color:var(--pc-muted);overflow-wrap:anywhere;}
.pc-voice-count {display:flex;align-items:center;gap:4px;font-size:10px;color:var(--pc-muted);white-space:nowrap;}
.pc-voice-count .pc-voice-icon {width:13px;height:13px;flex-basis:13px;}
.pc-voice-summary>.pc-voice-icon {width:14px;height:14px;flex-basis:14px;color:var(--pc-muted);}
.pc-voice-toggle[aria-expanded="true"]>.pc-voice-icon,.pc-voice-safety[open]>summary>.pc-voice-icon:last-child {transform:rotate(90deg);}
.pc-voice[data-state="joined"] .pc-voice-channel-icon {color:var(--pc-voice-green);background:var(--pc-voice-green-bg);border-color:var(--pc-voice-green);}
.pc-voice[data-state="joined"] .pc-voice-connection {color:var(--pc-voice-green);}
.pc-voice-content {padding:12px 0 0;}
.pc-voice-welcome {padding:3px 0 2px;}
.pc-voice-welcome strong {font-size:14px;}
.pc-voice-welcome p,.pc-voice-audience {color:var(--pc-muted);font-size:12px;margin:4px 0 0;}
.pc-voice-audience {margin:0 0 8px;overflow-wrap:anywhere;}
.pc-voice-actions {display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;container-type:inline-size;}
.player-chat .pc-voice-actions button {display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:44px;padding:8px;flex:1;font-size:12px;font-weight:650;color:var(--pc-ink);background:var(--pc-bg);}
.player-chat .pc-voice-actions .pc-voice-primary {background:var(--pc-voice-accent);border-color:var(--pc-voice-accent);color:var(--pc-bg);}
.player-chat[data-presentation="overlay"] .pc-voice-actions .pc-voice-primary {color:#192335;}
.player-chat .pc-voice-actions .pc-voice-leave {flex:0 1 auto;color:var(--pc-voice-danger);border-color:var(--pc-voice-danger);}
.player-chat .pc-voice-actions .is-on {color:var(--pc-voice-green);background:var(--pc-voice-green-bg);border-color:var(--pc-voice-green);}
.player-chat .pc-voice-actions [data-voice="deaf"][aria-pressed="true"] {color:var(--pc-voice-danger);border-color:var(--pc-voice-danger);}
.pc-voice-hint {font-size:11px;line-height:1.5;color:var(--pc-muted);margin:8px 0 0;}
.pc-voice-notice {background:var(--pc-bg);border-left:3px solid var(--pc-voice-accent);border-radius:4px;padding:9px 10px;font-size:12px;color:var(--pc-ink);margin:10px 0 0;overflow-wrap:anywhere;}
.pc-voice-notice:empty,.pc-voice-now:empty,.pc-voice-list:empty {display:none;}
.player-chat .pc-voice-play {display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:10px;min-height:44px;background:var(--pc-bg);font-size:12px;}
.pc-voice-now {font-size:11px;color:var(--pc-muted);overflow-wrap:anywhere;margin:0 0 8px;}
.pc-voice-now.is-speaking {color:var(--pc-voice-green);}
.pc-voice-list {max-height:220px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:var(--pc-bg);border:1px solid var(--pc-line);border-radius:10px;}
.pc-voice-person {display:grid;grid-template-columns:32px minmax(0,1fr) 18px 32px;align-items:center;gap:8px;padding:9px;}
.pc-voice-person+.pc-voice-person {border-top:1px solid var(--pc-line);}
.pc-voice-avatar {display:grid;place-items:center;width:30px;height:30px;border:2px solid transparent;border-radius:50%;font-size:12px;font-weight:700;background:hsl(var(--pc-avatar-hue) 45% 91%);color:hsl(var(--pc-avatar-hue) 45% 28%);}
.pc-voice-identity {min-width:0;display:flex;flex-direction:column;gap:1px;}
.pc-voice-name {overflow-wrap:anywhere;font-size:12px;font-weight:650;}
.pc-voice-person-state {font-size:10px;color:var(--pc-muted);}
.pc-voice-person-icon {color:var(--pc-muted);}
.pc-voice-person.is-speaking .pc-voice-avatar {border-color:var(--pc-voice-green);box-shadow:0 0 0 2px var(--pc-voice-green-bg);}
.pc-voice-person.is-speaking .pc-voice-person-state,.pc-voice-person.is-speaking .pc-voice-person-icon {color:var(--pc-voice-green);}
.pc-voice-person.is-blocked .pc-voice-name {color:var(--pc-muted);}
.pc-voice-options {display:contents;}
.pc-voice-options>summary {grid-column:4;display:grid;place-items:center;width:32px;min-height:44px;border:1px solid transparent;border-radius:7px;color:var(--pc-muted);}
.pc-voice-options[open]>summary {background:var(--pc-voice-tint);border-color:var(--pc-line);color:var(--pc-voice-accent);}
.pc-voice-person-controls {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;border-radius:8px;background:var(--pc-voice-tint);}
.pc-voice-options:not([open])>.pc-voice-person-controls {display:none;}
.player-chat .pc-voice-person-controls button {background:var(--pc-bg);font-size:11px;min-height:40px;}
.player-chat .pc-voice-block {color:var(--pc-voice-danger);}
.pc-voice-person-controls label {grid-column:1/-1;grid-row:2;font-size:11px;color:var(--pc-muted);}
.pc-voice-person-controls output {float:right;}
.player-chat .pc-voice-volume {display:block;width:100%;min-height:32px;margin:0;accent-color:var(--pc-voice-accent);}
.pc-voice-safety {font-size:12px;margin-top:10px;padding-top:8px;border-top:1px solid var(--pc-line);}
.pc-voice-safety>summary {display:flex;align-items:center;gap:6px;min-height:32px;color:var(--pc-muted);font-size:11px;}
.pc-voice-safety>summary span {flex:1;}
.pc-voice-safety>summary .pc-voice-icon {width:14px;height:14px;flex-basis:14px;}
.pc-voice-safety label {display:block;margin-top:8px;}
.pc-voice-safety select {display:block;width:100%;min-height:44px;padding:8px;margin:4px 0;background:var(--pc-bg);color:var(--pc-ink);border:1px solid var(--pc-line);border-radius:6px;font:inherit;}
.pc-voice-safety p {color:var(--pc-muted);margin:8px 0;}
.pc-voice-safety a {display:inline-block;padding:6px 0;color:var(--pc-voice-accent);}
.pc-voice-blocks {margin-top:12px;}
.pc-voice-blocks>div {display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 0;}
.pc-voice-blocks span {overflow-wrap:anywhere;min-width:0;}
.player-chat .pc-voice-blocks button {font-size:11px;}
.pc-voice-setup {padding:12px;background:var(--pc-bg);border:1px solid var(--pc-voice-accent);border-radius:10px;margin-top:12px;font-size:12px;}
.pc-voice-setup p {margin:6px 0 10px;color:var(--pc-muted);}
.pc-voice-setup>div {display:flex;flex-wrap:wrap;gap:6px;}
.player-chat .pc-voice-setup button {font-size:12px;min-height:44px;}
.player-chat .pc-voice-setup [data-voice="allow"] {color:var(--pc-bg);background:var(--pc-voice-accent);border-color:var(--pc-voice-accent);}
.player-chat[data-presentation="overlay"] .pc-voice-setup [data-voice="allow"] {color:#192335;}
@container (max-width:280px) {
  .pc-voice[data-state="joined"] .pc-voice-actions button,.pc-voice[data-state="joining"] .pc-voice-actions button {flex-direction:column;gap:4px;}
}
@media (hover:hover) {
  .pc-voice-summary:hover .pc-voice-heading strong,.pc-voice-safety>summary:hover {color:var(--pc-voice-accent);}
  .player-chat .pc-voice button:enabled:hover,.pc-voice-options>summary:hover {filter:brightness(.94);}
}

/* The dock keeps voice and chat independent, with recent messages above it. */
.player-chat {display:flex;flex-direction:column;}
.pc-header {order:2;}
.pc-voice-container {order:1;}
.pc-preview {order:0;}
.pc-body {order:3;}
.player-chat .pc-minimize {margin-left:auto;font-size:20px;line-height:1;min-width:36px;}
.player-chat[data-collapsed="true"] .pc-scope {display:none;}
.player-chat[data-collapsed="true"]:not([data-voice-expanded="true"]) .pc-minimize {display:none;}
.player-chat[data-collapsed="true"] .pc-header {border-bottom:0;}
.player-chat .pc-voice-toggle {display:flex;width:100%;border:0;border-radius:8px;padding:0;text-align:left;color:var(--pc-ink);background:transparent;}
.pc-voice-toggle.is-speaking .pc-voice-channel-icon {border-color:var(--pc-voice-green);box-shadow:0 0 0 3px var(--pc-voice-green-bg);color:var(--pc-voice-green);}
.pc-voice-speakers {display:flex;flex-wrap:wrap;gap:6px;max-height:130px;overflow-y:auto;padding:10px 2px 2px;}
.pc-voice-speaker {display:flex;align-items:center;gap:7px;min-width:0;max-width:100%;padding:5px 8px 5px 5px;border:1px solid var(--pc-voice-green);border-radius:24px;background:var(--pc-voice-green-bg);color:var(--pc-voice-green);font-size:12px;}
.pc-voice-speaker .pc-voice-avatar {flex:0 0 26px;width:26px;height:26px;border-color:var(--pc-voice-green);}
.pc-voice-speaker-name {overflow-wrap:anywhere;min-width:0;}
.pc-voice-speaking-mark {flex-shrink:0;letter-spacing:1px;}
.pc-sr-only {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.pc-preview .pc-message {opacity:1;transition:opacity 1.5s ease;}
.pc-preview .pc-message p {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pc-preview .pc-message.is-fading {opacity:0;}
@media (prefers-reduced-motion:reduce) {.pc-preview .pc-message {transition:none;}}
/* Keep both expanded surfaces usable without crowding the composer off screen. */
.pc-voice-toggle[aria-expanded="true"] ~ .pc-voice-speakers {display:none;}
.player-chat[data-collapsed="false"][data-voice-expanded="true"] .pc-log {height:clamp(90px,14dvh,150px);}

.pc-chat-icon {width:20px;height:20px;flex:0 0 20px;vertical-align:middle;}
.player-chat .pc-toggle {display:inline-flex;align-items:center;gap:7px;}
.pc-activity {order:0;}
.pc-speaking:empty,.pc-speaking:has(.pc-voice-speakers[hidden]),.player-chat[data-voice-expanded="true"] .pc-speaking {display:none;}
.pc-voice-quick {display:flex;gap:6px;margin-top:8px;}
.pc-voice-toggle[aria-expanded="true"] ~ .pc-voice-quick {display:none;}
.player-chat .pc-voice-quick button {display:grid;place-items:center;width:44px;height:44px;padding:0;background:var(--pc-bg);color:var(--pc-voice-green);}
.pc-voice-quick button span {display:none;}
.player-chat .pc-voice-quick .is-muted {color:var(--pc-voice-danger);}
/* Only the icon buttons capture clicks; ambient activity passes through to play. */
.player-chat.pc-compact {flex-direction:row;align-items:center;gap:6px;width:max-content!important;max-width:calc(100vw - 24px);max-height:none;overflow:visible;padding:0;background:transparent;border:0;box-shadow:none;filter:none;pointer-events:none;}
.player-chat.pc-compact .pc-header {padding:0;border:0;}
.player-chat.pc-compact .pc-toggle,.player-chat.pc-compact .pc-voice-toggle,.player-chat.pc-compact .pc-voice-quick button {width:44px;height:44px;min-height:44px;flex:0 0 44px;display:grid;place-items:center;padding:0;border:1px solid var(--pc-line);border-radius:12px;background:var(--pc-bg);box-shadow:0 2px 8px #0002;pointer-events:auto;}
.pc-compact .pc-toggle {position:relative;}
.pc-compact .pc-toggle-label {display:none;}
.pc-compact .pc-unread {position:absolute;right:-4px;top:-5px;font-size:10px;line-height:18px;min-width:18px;padding:0 4px;}
.pc-compact .pc-voice {display:flex;align-items:center;gap:6px;position:static;padding:0;border:0;background:transparent;}
.pc-compact .pc-voice-heading,.pc-compact .pc-voice-count,.pc-compact .pc-voice-summary > .pc-voice-icon {display:none;}
.pc-compact .pc-voice-channel-icon {width:24px;height:24px;border:0;background:transparent;}
.pc-compact .pc-voice-quick {margin:0;}
.pc-compact .pc-activity {position:absolute;right:0;bottom:calc(100% + 8px);display:flex;flex-direction:column;align-items:flex-end;gap:6px;width:min(300px,calc(100vw - 24px));pointer-events:none;}
.pc-compact .pc-activity * {pointer-events:none;}
.pc-compact .pc-preview {width:100%;padding:6px 12px;border:1px solid var(--pc-line);border-radius:12px;background:var(--pc-bg);box-shadow:0 2px 8px #0002;}
.pc-compact .pc-voice-speakers {justify-content:flex-end;padding:0;max-height:80px;overflow:hidden;}
.pc-compact .pc-voice-speaker {padding:3px 7px 3px 3px;font-size:11px;}
.pc-compact .pc-voice-speaker .pc-voice-avatar {width:22px;height:22px;flex-basis:22px;}

.pc-voice-container:empty {display:none;}
