.room-wrap{display:flex;flex-direction:column;gap:12px;padding-bottom:24px}.room-header{display:flex;flex-direction:column;gap:4px}.room-title{margin:0;font-size:1.35rem;letter-spacing:.01em}.room-topic{margin:0;color:var(--muted);font-size:.9rem}.room-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.85rem}.conn-banner{border-radius:12px;padding:10px 12px;font-size:.9rem;display:flex;align-items:center;justify-content:space-between;gap:12px}.conn-connecting,.conn-reconnecting{background:#a855f724;border:1px solid var(--border);color:var(--text)}.conn-failed{background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:#fca5a5}.conn-banner .btn{padding:8px 12px;font-size:.85rem}.room-notice{border-radius:12px;padding:10px 12px;font-size:.9rem;background:#ffd7001a;border:1px solid rgba(255,215,0,.35);color:#fde68a}.seat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.seat{position:relative;border-radius:16px;padding:12px 8px;min-height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--card);border:1px solid var(--border);cursor:pointer;color:var(--text);transition:box-shadow .2s ease,border-color .2s ease}.seat-empty{border-style:dashed;opacity:.75;cursor:pointer}.seat-empty:hover{opacity:1;border-color:var(--accent)}.seat-empty .seat-plus{font-size:1.6rem;color:var(--muted)}.seat-locked{opacity:.55;cursor:not-allowed}.seat-speaking{border-color:#34d399;box-shadow:0 0 0 2px #34d3998c,0 0 18px #34d39959}.seat-avatar{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;color:#fff;overflow:hidden;flex-shrink:0}.seat-avatar img{width:100%;height:100%;object-fit:cover}.seat-name{font-size:.82rem;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-sub{font-size:.72rem;color:var(--muted)}.seat-host-badge{position:absolute;top:6px;left:8px;font-size:.95rem}.seat-mic{position:absolute;top:6px;right:8px;font-size:.85rem;background:#00000073;border-radius:999px;padding:2px 6px}.seat-mic.muted{color:#f87171}.seat-mic.live{color:#34d399}.audience-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;padding:12px}.audience-card h3{margin:0 0 8px;font-size:.95rem;color:var(--muted);font-weight:700}.audience-list{display:flex;flex-wrap:wrap;gap:8px}.audience-chip{display:flex;align-items:center;gap:6px;background:#a855f71a;border:1px solid var(--border);border-radius:999px;padding:4px 10px 4px 4px;font-size:.8rem;max-width:150px}.audience-chip span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audience-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden}.audience-avatar img{width:100%;height:100%;object-fit:cover}.controls-bar{position:sticky;bottom:76px;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px;background:#120a24eb;border:1px solid var(--border);border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.ctrl-btn{width:52px;height:52px;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:1.35rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.ctrl-btn:disabled{opacity:.4;cursor:not-allowed}.ctrl-btn.mic-live{background:#34d3992e;border-color:#34d39980}.ctrl-btn.mic-muted{background:#ef44442e;border-color:#ef444480}.ctrl-btn.leave{background:#ef4444e6;border-color:transparent;color:#fff}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:70;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:480px;background:var(--bg-soft);border:1px solid var(--border);border-bottom:none;border-radius:20px 20px 0 0;padding:16px 16px 28px;display:flex;flex-direction:column;gap:10px}.sheet h3{margin:0 0 4px;font-size:1.05rem}.sheet .btn{align-self:stretch;width:100%}.btn-danger{background:#ef444429;border:1px solid rgba(239,68,68,.45);color:#fca5a5}.sheet-close{color:var(--muted);background:transparent;border:1px solid var(--border)}.room-loading,.room-blocked{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.room-blocked .card{border-color:#ef444473}:root{--bg: #07020f;--bg-soft: #120a24;--card: #170d30;--text: #f2ecff;--muted: #9b8fc2;--accent: #a855f7;--accent-soft: rgba(168, 85, 247, .16);--border: rgba(168, 85, 247, .28)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#root{min-height:100dvh}.shell{min-height:100dvh;display:flex;flex-direction:column}.main{flex:1;width:100%;max-width:480px;margin:0 auto;padding:24px 16px 96px}.page{display:flex;flex-direction:column;gap:16px}.hero h1{margin:0 0 4px;font-size:2rem;letter-spacing:.02em}.muted{color:var(--muted);margin:0}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px}.card h2{margin:0;font-size:1.1rem}.field{display:flex;flex-direction:column;gap:6px;font-size:.9rem}.field input{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;padding:10px 12px}.field input:focus{outline:2px solid var(--accent);outline-offset:1px}.field select{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;padding:10px 12px}.field select:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:12px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 16px;text-decoration:none;text-align:center;align-self:flex-start}.btn-primary{background:var(--accent);color:#fff;width:100%}.btn-ghost{background:var(--accent-soft);color:var(--text)}.links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tile{background:var(--card);border:1px solid var(--border);border-radius:14px;color:var(--text);font-size:.9rem;font-weight:600;padding:18px 8px;text-align:center;text-decoration:none}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#07020feb;border-top:1px solid var(--border);padding:10px 0 calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tab{font-size:1.4rem;opacity:.55;text-decoration:none;padding:4px 12px}.tab.active{opacity:1}.error-text{color:#ff7b8a;margin:0}.success-text{color:#4ade80;margin:0}.small{font-size:.82rem}.btn-danger{background:#ef44442e;color:#ff8a8a;border:1px solid rgba(239,68,68,.5)}.copy-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.copy-row code{background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:.95rem;word-break:break-all}.big-code{font-size:1.3rem!important;letter-spacing:.06em}.addr-code{font-size:.8rem!important}.call-card{align-items:center;text-align:center}.call-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover}.call-avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--accent-soft);border:1px solid var(--border);font-size:2.4rem;font-weight:800;color:var(--accent)}.call-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.call-controls .btn{align-self:center}.incoming-call-banner{position:fixed;top:12px;left:12px;right:12px;z-index:100;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:0 8px 32px #00000080;animation:banner-drop .3s ease both}@keyframes banner-drop{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}.incoming-call-info{display:flex;align-items:center;gap:10px;min-width:0}.incoming-call-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0}.incoming-call-avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--accent-soft);font-weight:800;color:var(--accent)}.incoming-call-actions{display:flex;gap:8px}.incoming-call-actions .btn{padding:10px 14px}.chat-list{gap:4px;padding:12px}.chat-row{text-decoration:none;color:var(--text);border-radius:12px;padding:10px 12px}.chat-row:hover{background:var(--bg-soft)}.chat-row-main{display:flex;flex-direction:column;gap:4px}.chat-row-top,.chat-row-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-time{font-size:.78rem;flex-shrink:0}.chat-preview{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-unread{background:var(--accent);color:#fff;font-size:.75rem;font-weight:700;min-width:22px;height:22px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;flex-shrink:0}.chat-thread{height:calc(100dvh - 140px);min-height:420px}.chat-header{display:flex;align-items:center;gap:10px}.chat-header-info{flex:1;display:flex;flex-direction:column;min-width:0}.msg-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 2px}.msg{max-width:80%;border-radius:14px;padding:8px 12px;align-self:flex-start;background:var(--bg-soft);border:1px solid var(--border)}.msg-mine{align-self:flex-end;background:var(--accent-soft)}.msg p{margin:0;word-break:break-word}.msg-meta{font-size:.72rem;color:var(--muted);text-align:right;margin-top:2px}.msg-reaction{margin-left:4px;font-size:.9rem}.typing-indicator{font-size:.82rem;color:var(--muted);font-style:italic;padding:2px 6px}.msg-composer{display:flex;gap:8px}.msg-composer input{flex:1;background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:1rem;padding:12px;min-width:0}.msg-composer .btn{align-self:center}.wallet-balance-card{align-items:center;text-align:center}.wallet-balance{font-size:2.2rem}.wallet-balance-card .btn{align-self:center;width:100%}.tx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.tx-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--border)}.tx-row:last-child{border-bottom:none}.tx-emoji{font-size:1.4rem}.tx-desc{flex:1;font-size:.9rem}.tx-amount{font-weight:700;font-size:.9rem}.tx-positive{color:#4ade80}.tx-negative{color:#ff7b8a}.gift-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.gift-cell{background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;color:var(--text)}.gift-cell-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.gift-cell-emoji{font-size:1.8rem}.gift-cell-name{font-size:.72rem}.gift-cell-coins{font-size:.75rem;color:gold;font-weight:700}.gift-recipients{display:flex;gap:8px;flex-wrap:wrap}.gift-recipient{display:flex;align-items:center;gap:6px;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:4px 10px 4px 4px;cursor:pointer;color:var(--text);font-size:.85rem}.gift-recipient-selected{border-color:var(--accent);background:var(--accent-soft)}.gift-fly-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50}.gift-fly-emoji{position:absolute;font-size:80px;line-height:1;animation-name:gift-fly;animation-timing-function:cubic-bezier(.45,.05,.55,.95);animation-fill-mode:forwards}@keyframes gift-fly{0%{transform:translate(0) rotate(-18deg) scale(.3);opacity:1}15%{transform:translate(calc(var(--dx) * .15),calc(var(--dy) * .3)) rotate(-8deg) scale(1.3);opacity:1}55%{transform:translate(calc(var(--dx) * .55),calc(var(--dy) * 1.22)) rotate(6deg) scale(1);opacity:1}88%{transform:translate(calc(var(--dx) * .94),calc(var(--dy) * 1.02)) rotate(22deg) scale(.6);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(26deg) scale(.35);opacity:0}}.gift-fly-banner{position:absolute;top:96px;left:0;right:0;display:flex;justify-content:center;opacity:0;animation:gift-banner-show 2.6s ease forwards}@keyframes gift-banner-show{0%{opacity:0;transform:translateY(26px)}25%{opacity:1;transform:translateY(0)}70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}.gift-banner{display:flex;align-items:center;gap:6px;background:#0c0e14eb;border-radius:999px;padding:8px 14px;border:1px solid rgba(255,215,0,.45);max-width:calc(100vw - 48px)}.gift-banner-name{color:#fff;font-size:.82rem;font-weight:800;max-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gift-banner-arrow{color:gold;font-size:1rem;font-weight:800}.gift-banner-emoji{font-size:1.9rem}.gift-banner-coins{color:gold;font-size:.82rem;font-weight:800}.gift-recv-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;display:flex;justify-content:center}.gift-recv-banner{position:absolute;top:84px;display:flex;align-items:center;gap:6px;background:#0c0e14f0;border-radius:18px;padding:8px 12px;border:1px solid rgba(255,215,0,.55);box-shadow:0 4px 16px #0006;max-width:calc(100vw - 40px);animation:gift-recv-sweep .36s cubic-bezier(.2,1.2,.3,1) both}@keyframes gift-recv-sweep{0%{opacity:0;transform:translateY(-90px)}to{opacity:1;transform:translateY(0)}}.gift-recv-name{color:#fff;font-size:.82rem;font-weight:800;max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gift-recv-sent{color:#9aa3b2;font-size:.75rem;font-weight:600}.gift-recv-emoji{font-size:2.5rem;animation:gift-combo-bump .32s ease}@keyframes gift-combo-bump{0%{transform:scale(.5)}60%{transform:scale(1.45)}to{transform:scale(1)}}.gift-combo{color:gold;font-size:.95rem;font-weight:900}.tab-switch{display:flex;gap:8px;background:var(--bg-soft);border:1px solid var(--border);border-radius:14px;padding:6px}.tab-switch-btn{flex:1;background:transparent;border:none;border-radius:10px;color:var(--muted);font-size:1rem;font-weight:700;padding:10px;cursor:pointer}.tab-switch-active{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.pkg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.pkg-cell{background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:var(--text)}.pkg-cell-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.pkg-diamonds{font-size:1.15rem;font-weight:800}.pkg-price{font-size:.9rem;color:var(--muted);font-weight:600}.card h2{margin:8px 0 0}.card h2:first-child{margin-top:0}
