*{box-sizing:border-box}body{margin:0;background:#090d17;color:#eef3ff;font-family:Inter,Segoe UI,Arial,sans-serif}button,input{font:inherit}button{border:0;border-radius:14px;background:#1b2537;color:#eef3ff;padding:10px 14px;cursor:pointer}button:hover{filter:brightness(1.2)}.hidden{display:none!important}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#3a126e,#090d17 45%)}.auth-card{width:360px;background:#111827dd;border:1px solid #263247;border-radius:26px;padding:28px;box-shadow:0 20px 80px #0008}.auth-card b,.brand b{color:#9d4dff}.auth input{width:100%;margin:8px 0;padding:14px;border-radius:14px;border:1px solid #334155;background:#0b1220;color:#fff}.auth button{width:100%;margin-top:10px;background:linear-gradient(135deg,#7028e4,#9d4dff)}.ghost{background:#1b2537!important}.app{height:100vh;display:grid;grid-template-columns:250px minmax(500px,1fr)300px;grid-template-rows:1fr 58px;gap:10px;padding:10px;overflow:hidden}.left,.main,.right,.dock,.admin aside,.admin main{background:#111827cc;border:1px solid #263247;border-radius:18px;box-shadow:0 8px 30px #0005}.left,.right{padding:14px;overflow:auto}.brand{font-size:20px;font-weight:800;margin:4px 0 20px}.create{width:100%;background:linear-gradient(135deg,#7c2cff,#ae5bff);font-weight:700}.search{width:100%;margin:12px 0;padding:12px;border-radius:14px;border:1px solid #263247;background:#0b1220;color:white}.room-item,.user,.msg,.gift-card{display:flex;gap:10px;align-items:center;background:#182234;border:1px solid #263247;border-radius:14px;padding:10px;margin:8px 0}.room-item span:first-child,.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#27344d}.badge{font-size:12px;color:#36e28a}.gold{margin-top:25px;background:linear-gradient(135deg,#32164f,#151c2b);border-radius:18px;padding:15px}.gold span{display:block;color:#ffbd4a;font-size:28px;margin:12px 0}.main{padding:0;overflow:hidden;display:flex;flex-direction:column}.top{height:58px;display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid #263247}.top nav{display:flex;gap:8px}.top nav button{padding:9px 12px}.main section{padding:14px;overflow:auto;height:calc(100vh - 90px)}.room-head{display:flex;justify-content:space-between;align-items:center;background:#121a2a;border:1px solid #263247;border-radius:18px;padding:14px}.room-head h2{margin:0}.room-head p{margin:4px 0 0;color:#94a3b8}.stage{margin-top:12px;background:#0d1422;border:1px solid #263247;border-radius:18px;padding:14px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.speaker{background:linear-gradient(180deg,#141e31,#0f1727);border:1px solid #7c2cff;border-radius:18px;padding:12px;text-align:center;min-height:150px}.speaker img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid #7c2cff}.speaker .controls{display:flex;justify-content:center;gap:8px;margin-top:10px}video{max-width:220px;border-radius:16px;margin-top:12px;background:#000}.chat{margin-top:12px;display:flex;flex-direction:column;height:320px;background:#0d1422;border:1px solid #263247;border-radius:18px;overflow:hidden}.chat #messages{flex:1;overflow:auto;padding:12px}.msg{align-items:flex-start}.msg b{color:#c084fc}.send{display:flex;gap:8px;padding:10px;border-top:1px solid #263247}.send input{flex:1;border:1px solid #263247;background:#111827;border-radius:18px;color:#fff;padding:12px}.right .tabs{display:flex;gap:5px}.right .tabs button{font-size:12px;padding:8px}.dock{grid-column:1/4;display:flex;justify-content:center;gap:16px;align-items:center}.dock button{font-size:20px;border-radius:18px}.danger{background:#e11d48!important}.module{background:#0d1422;border-radius:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid2>div{background:#141e31;border:1px solid #263247;border-radius:18px;padding:16px}.admin{height:100vh;display:grid;grid-template-columns:250px 1fr;gap:12px;padding:12px}.admin aside{padding:16px}.admin aside button,.admin aside a{display:block;width:100%;margin:8px 0;text-align:left;text-decoration:none}.admin main{padding:18px;overflow:auto}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid #263247;padding:10px;text-align:left}.pill{padding:4px 8px;border-radius:999px;background:#25324a}@media(max-width:950px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.left{display:none}.right{display:none}.dock{grid-column:1}.top{overflow:auto}.main section{height:calc(100vh - 140px)}.cards{display:flex;overflow:auto}.speaker{min-width:160px}.chat{height:360px}.admin{grid-template-columns:1fr}.admin aside{display:flex;overflow:auto;gap:8px}.admin aside button,.admin aside a{min-width:130px}}

#localVideo{display:none;width:160px;border-radius:14px;border:1px solid #6d28d9;margin-top:10px}
#localVideo.active-video{display:block}
.remote-media{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;padding:10px;border:1px solid rgba(139,92,246,.25);border-radius:14px;background:rgba(12,18,32,.55)}
.remote-media audio{width:220px;height:38px;filter:invert(1) hue-rotate(180deg)}
button.active{background:linear-gradient(135deg,#16a34a,#22c55e)!important;color:#fff;box-shadow:0 0 18px rgba(34,197,94,.35)}
.remote-media{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.remote-card{background:#101827;border:1px solid #334155;border-radius:14px;padding:10px;min-width:180px}
.remote-title{display:flex;align-items:center;justify-content:space-between;font-weight:700;margin-bottom:8px;color:#d8b4fe}.mini{padding:5px 8px;border-radius:10px;font-size:14px}
.remote-audio{width:100%;height:34px;filter:invert(1) hue-rotate(180deg)}
.remote-video{display:none;width:100%;max-width:100%;border-radius:12px;background:#000;border:1px solid #6d28d9;margin-top:8px}
.remote-video.active-video{display:block}
#localVideo{display:none;width:180px;max-width:100%;border-radius:14px;border:1px solid #6d28d9;margin-top:10px;background:#000}
#localVideo.active-video{display:block}

.empty{padding:18px;border:1px dashed rgba(255,255,255,.18);border-radius:16px;color:#9aa3b2;background:rgba(255,255,255,.04)}
button.active{box-shadow:0 0 0 2px rgba(79,209,197,.35),0 0 18px rgba(79,209,197,.25)!important;background:linear-gradient(135deg,#19c37d,#4fd1c5)!important;color:#061014!important}
.speaker.speaking{animation:pulseMic 1.4s infinite}
@keyframes pulseMic{0%{box-shadow:0 0 0 0 rgba(79,209,197,.35)}70%{box-shadow:0 0 0 12px rgba(79,209,197,0)}100%{box-shadow:0 0 0 0 rgba(79,209,197,0)}}
