*{box-sizing:border-box} :root{--bg:#0f172a;--card:#0b1220;--muted:#94a3b8;--text:#e2e8f0;--brand:#60a5fa;--accent:#a78bfa}
body{margin:0;background:linear-gradient(135deg,#1e293b,#0f172a);font-family:Inter,system-ui,Segoe UI,Roboto,Arial;color:var(--text)}
.app{max-width:1100px;margin:24px auto;background:#0b1220cc;border:1px solid #1f2937;border-radius:18px;backdrop-filter:blur(6px);overflow:hidden}
.app-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(90deg,#1f2937,#0f172a)}
.brand{font-weight:700;font-size:18px}
.presence{display:flex;gap:10px;align-items:center;color:var(--muted)}
.sep{opacity:.6}
.ghost{background:transparent;border:1px solid #334155;color:#cbd5e1;padding:6px 10px;border-radius:10px;cursor:pointer}
.ghost:hover{border-color:#64748b}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.dot.online{background:#22c55e;box-shadow:0 0 0 3px #22c55e22}
.dot.offline{background:#ef4444;box-shadow:0 0 0 3px #ef444422}
.layout{display:grid;grid-template-columns:260px 1fr;min-height:72vh}
.sidebar{background:#0b1220;border-right:1px solid #1f2937;padding:14px}
.panel-title{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#93a3b5;margin:6px 0 8px}
.room-btn{width:100%;text-align:left;background:#0e1628;border:1px solid #1f2937;color:#dbeafe;padding:10px 12px;border-radius:12px;margin-bottom:8px;cursor:pointer}
.room-btn.active{border-color:#60a5fa;background:#0b223d}
.line{height:1px;background:#1f2937;margin:12px 0}
.join-box{display:flex;gap:8px}
.join-box input{flex:1;padding:10px;border-radius:10px;border:1px solid #334155;background:#0e1628;color:#e2e8f0}
.join-box button{background:linear-gradient(135deg,#60a5fa,#a78bfa);border:0;color:white;padding:10px 14px;border-radius:10px;cursor:pointer}
.hint{display:block;color:#93a3b5;margin-top:6px}
.msg{color:#fecaca;margin-top:6px;min-height:1em}
.chat{display:flex;flex-direction:column;min-height:72vh}
.messages{flex:1;overflow-y:auto;padding:16px;background:#0b1220}
.bubble{max-width:72%;margin:8px 0;padding:12px 14px;border-radius:14px;background:#111827;border:1px solid #1f2937}
.bubble.me{margin-left:auto;background:linear-gradient(135deg,#60a5fa33,#a78bfa33);border-color:#334155}
.meta{font-size:11px;color:#93a3b5;margin-bottom:6px}
.text{white-space:pre-wrap;word-break:break-word}
.media{margin-top:8px;border-radius:10px;overflow:hidden;border:1px solid #374151}
.media img,.media video{max-width:100%;display:block}
.typing{display:none;color:#cbd5e1;font-style:italic;padding:8px 16px;border-top:1px dashed #334155}
.composer{display:flex;gap:8px;padding:12px;border-top:1px solid #1f2937;background:#0e1628}
.composer input{flex:1;border:1px solid #334155;background:#0b1220;color:#e2e8f0;border-radius:12px;padding:10px}
.composer button{border:0;background:#1f2937;color:#e2e8f0;border-radius:12px;padding:10px 14px;cursor:pointer}
.composer #sendBtn{background:linear-gradient(135deg,#60a5fa,#a78bfa)}
.actions{margin-top:6px;display:flex;gap:6px}
.actions button{border:0;background:#1e293b;color:#e2e8f0;border-radius:6px;cursor:pointer;font-size:14px;padding:2px 6px}
.actions button:hover{background:#334155}
.reactions{margin-top:6px;font-size:14px;color:#facc15;display:flex;gap:10px}
@media (max-width:840px){.layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #1f2937}}


/* People panel */
.people-header{display:flex;gap:6px;align-items:center;color:#93a3b5;margin:4px 0 6px}
.people-list{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto}
.user-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid #1f2937;background:#0e1628;border-radius:10px;margin-bottom:6px}
.user-row .dot{width:8px;height:8px}
.user-row .name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e2e8f0}
.user-row .state{font-size:12px;color:#93a3b5}
.user-row.offline{opacity:.7}
