/* Chat, voice and Piss Station UI — bright cartoon theme matching style.css */
.social-bar,.chat-log,.chat-form,.chat-wheel,.players-panel,.station-panel{font-family:var(--body,"Fredoka",system-ui,sans-serif);color:var(--ink,#2a1840)}
.social-bar button,.chat-form button,.chat-wheel button,.players-panel button,.station-panel button{
  font-family:var(--fun,"Lilita One",system-ui,sans-serif);font-weight:400;font-size:.85rem;color:var(--ink,#2a1840);background:#fff;
  border:3px solid var(--ink,#2a1840);border-radius:999px;box-shadow:2px 3px 0 var(--ink,#2a1840);padding:.25rem .7rem;cursor:pointer}
.social-bar button:hover,.chat-wheel button:hover,.players-panel button:hover,.station-panel button:hover{background:#fff1b8}
.social-bar button:active,.station-panel button:active{transform:translate(1px,2px);box-shadow:1px 1px 0 var(--ink,#2a1840)}
.social-bar{position:fixed;left:.7rem;bottom:.7rem;z-index:12;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;max-width:min(34rem,94vw)}
.social-bar .voice-toggle[aria-pressed=true]{background:var(--lime,#7ddc3a)}
.social-bar .voice-toggle.speaking{animation:micPulse .5s ease-in-out infinite alternate}
.social-bar .ptt-button{background:var(--sun,#ffd23f);user-select:none;touch-action:none;padding:.5rem 1rem}
.social-bar .ptt-button.live{background:var(--pink,#ff6fa8);color:#fff}
.open-mic{background:#fff;border:3px solid var(--ink,#2a1840);border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600}
.voice-status{background:#fff6dccc;border:2px solid var(--ink,#2a1840);border-radius:.7rem;padding:.15rem .55rem;font-size:.72rem;font-weight:600;max-width:20rem}
body[data-controls=touch] .social-bar{bottom:auto;top:5.4rem;left:.5rem;max-width:60vw}
body[data-controls=touch] .social-bar .voice-status{display:none}
@keyframes micPulse{from{transform:scale(1)}to{transform:scale(1.1) rotate(-2deg)}}
.chat-log{position:fixed;left:.7rem;bottom:3.4rem;z-index:11;width:min(26rem,86vw);max-height:11rem;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem;pointer-events:none;scrollbar-width:none}
.chat-log.open{pointer-events:auto;max-height:15rem}
body[data-controls=touch] .chat-log{bottom:auto;top:9rem;max-height:7rem;width:min(20rem,60vw)}
.chat-line{background:#fff6dce6;border:2px solid var(--ink,#2a1840);border-radius:.8rem;padding:.2rem .55rem;font-size:.82rem;font-weight:600;line-height:1.25;word-break:break-word;transition:opacity .6s}
.chat-line b{color:#d6336c;font-family:var(--fun,"Lilita One",sans-serif);font-weight:400}
.chat-line.sys{background:#e6ffcf;font-style:italic}
.chat-line.old{opacity:0;height:0;padding:0;margin:0;border-width:0;overflow:hidden;position:absolute;pointer-events:none}
.chat-log.open .chat-line.old{opacity:1;height:auto;padding:.2rem .55rem;border-width:2px;position:static}
.chat-form{position:fixed;left:.7rem;bottom:3.4rem;z-index:14;display:flex;align-items:center;gap:.4rem;width:min(30rem,92vw);background:var(--cream,#fff6dc);border:4px solid var(--ink,#2a1840);border-radius:999px;padding:.3rem .5rem;box-shadow:4px 4px 0 var(--ink,#2a1840)}
.chat-log.open{bottom:6.4rem}
.chat-form[hidden],.chat-wheel[hidden],.players-panel[hidden],.station-panel[hidden]{display:none}
.chat-form input{flex:1;min-width:0;border:none;background:transparent;font:inherit;font-weight:600;color:var(--ink,#2a1840);outline:none}
.chat-count{font-size:.7rem;color:#8a7a9c}
.chat-wheel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:14;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:.8rem;background:var(--cream,#fff6dc);border:5px solid var(--ink,#2a1840);border-radius:1.4rem;box-shadow:8px 8px 0 var(--ink,#2a1840);width:min(26rem,92vw)}
.chat-wheel button{padding:.65rem .5rem;font-size:.95rem;border-radius:1rem}
.cat-bubble{position:absolute;transform:translate(-50%,calc(-100% - 2.1rem));max-width:13rem;background:#fff;border:3px solid var(--ink,#2a1840);border-radius:1rem;padding:.2rem .55rem;font-size:.78rem;font-weight:600;line-height:1.2;color:var(--ink,#2a1840);text-align:center;box-shadow:2px 2px 0 var(--ink,#2a1840);word-break:break-word;pointer-events:none}
.cat-bubble::after{content:"";position:absolute;left:50%;bottom:-.55rem;width:.7rem;height:.7rem;background:#fff;border:3px solid var(--ink,#2a1840);border-top:none;border-left:none;transform:translateX(-50%) rotate(45deg)}
.cat-nameplate.speaking{background:var(--lime,#7ddc3a)!important;animation:micPulse .5s ease-in-out infinite alternate}
.cat-nameplate.speaking::before{content:"🎙 "}
.players-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:14;width:min(24rem,92vw);max-height:80dvh;overflow:auto;background:var(--cream,#fff6dc);border:5px solid var(--ink,#2a1840);border-radius:1.4rem;box-shadow:8px 8px 0 var(--ink,#2a1840);padding:1rem}
.players-panel h3{margin:0 0 .6rem;font-family:var(--fun,"Lilita One",sans-serif);font-weight:400;font-size:1.3rem;color:var(--orange,#ff8a2a);-webkit-text-stroke:1px var(--ink,#2a1840);paint-order:stroke fill}
.player-row{display:flex;align-items:center;gap:.4rem;margin:.3rem 0}
.player-name{flex:1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.players-panel button.on{background:var(--pink,#ff6fa8);color:#fff}
.players-note{font-size:.72rem;color:#5a4670;margin:.6rem 0}

/* Piss stations */
.station-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:15;width:min(28rem,94vw);max-height:86dvh;display:flex;flex-direction:column;gap:.5rem;background:var(--cream,#fff6dc);border:5px solid var(--ink,#2a1840);border-radius:1.5rem;box-shadow:10px 10px 0 var(--ink,#2a1840);padding:1rem}
.station-panel header{display:flex;align-items:center;gap:.5rem}
.station-panel h2{flex:1;margin:0;font-family:var(--fun,"Lilita One",sans-serif);font-weight:400;font-size:1.35rem;color:var(--orange,#ff8a2a);-webkit-text-stroke:2px var(--ink,#2a1840);paint-order:stroke fill;text-shadow:2px 2px 0 var(--ink,#2a1840)}
.st-icon{font-size:1.6rem}
.st-blurb{margin:0;font-size:.82rem;font-weight:600;color:#5a4670}
.st-posts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;overflow-y:auto;max-height:40dvh}
.st-posts li{background:#fff;border:3px solid var(--ink,#2a1840);border-radius:.9rem;padding:.4rem .6rem;box-shadow:2px 2px 0 var(--ink,#2a1840)}
.st-posts .st-empty{font-weight:600;color:#5a4670;box-shadow:none;border-style:dashed}
.st-head{display:flex;justify-content:space-between;gap:.5rem;font-size:.78rem}
.st-head b{color:#d6336c;font-family:var(--fun,"Lilita One",sans-serif);font-weight:400}
.st-head time{color:#8a7a9c}
.st-posts p{margin:.15rem 0 .3rem;font-weight:600;word-break:break-word}
.st-actions{display:flex;gap:.4rem}
.st-actions button{padding:.1rem .55rem;font-size:.78rem}
.st-like.on{background:var(--sun,#ffd23f)!important}
.st-compose{display:flex;flex-direction:column;gap:.4rem}
.st-moods{display:flex;flex-wrap:wrap;gap:.25rem}
.st-moods button{padding:.05rem .4rem;font-size:1rem}
.st-moods [aria-pressed=true]{background:var(--sun,#ffd23f)}
.st-compose textarea{font:inherit;font-weight:600;resize:none;border:3px solid var(--ink,#2a1840);border-radius:.8rem;padding:.4rem .6rem;color:var(--ink,#2a1840);background:#fff}
.st-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600}
.st-status{flex:1;color:#d6336c}
.station-panel .st-post{background:var(--lime,#7ddc3a);font-size:1rem}
.station-panel[hidden]{display:none}
