:root{--bg: #0d0716;--bg-2: #140a22;--panel: rgba(30, 16, 50, .72);--panel-solid: #1a0f2b;--panel-2: #24143a;--line: rgba(190, 120, 255, .18);--line-strong: rgba(255, 90, 200, .55);--accent: #ff3cac;--accent-2: #9b5cff;--accent-3: #4fd1ff;--glow: linear-gradient(120deg, #ff3cac 0%, #c04bff 55%, #7b5cff 100%);--glow-soft: linear-gradient(120deg, rgba(255, 60, 172, .22), rgba(123, 92, 255, .22));--text: #f3e9ff;--muted: #a593c2;--ok: #46e8a8;--err: #ff5a7a;--radius: 16px;--title: "Oswald", "Be Vietnam Pro", system-ui, sans-serif;--left: 360px;--right: 380px;--top: 68px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 50% -10%,rgba(155,92,255,.25),transparent 60%),radial-gradient(800px 500px at 100% 100%,rgba(255,60,172,.12),transparent 60%),var(--bg);color:var(--text);font:500 15px/1.4 Be Vietnam Pro,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}input{font:inherit;color:inherit}img{display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#be78ff4d;border-radius:8px}::-webkit-scrollbar-track{background:transparent}.grad-text{background:linear-gradient(180deg,#fff,#ffc2ec 45%,#c79bff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px rgba(255,60,172,.45))}.glass{position:relative;background:linear-gradient(165deg,#301850b3,#140a24c7);border:1px solid var(--line);border-radius:var(--radius);box-shadow:inset 0 1px #ffffff0f,inset 0 0 0 3px #0d071659,0 12px 40px #00000073;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(255,60,172,.55),transparent 35%,transparent 65%,rgba(155,92,255,.55));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:999px;background:#ffffff0a;border:1px solid var(--line);font-weight:600;white-space:nowrap;transition:background .2s,border-color .2s,transform .15s,box-shadow .2s}.btn:hover{background:#ff3cac1f;border-color:var(--line-strong)}.btn:active{transform:scale(.96)}.btn.on{background:var(--glow-soft);border-color:var(--line-strong)}.btn-primary{background:var(--glow);border:0;color:#fff;box-shadow:0 0 0 1px #ffffff26 inset,0 6px 22px #ff3cac66}.btn-primary:hover{background:var(--glow);box-shadow:0 0 0 1px #ffffff40 inset,0 8px 30px #ff3cac99}.btn-primary:disabled{opacity:.6;cursor:progress}.icon-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:#ffffff08;transition:all .2s;flex:none}.icon-btn:hover{border-color:var(--line-strong);background:#ff3cac1f}.app{height:100dvh;display:grid;grid-template-rows:var(--top) 1fr;grid-template-columns:var(--left) 1fr var(--right);grid-template-areas:"top top top" "left center right";gap:0 14px;padding:0 14px 14px;transition:grid-template-columns .35s ease}.app.no-chat{grid-template-columns:var(--left) 1fr 0}.app.no-queue{grid-template-columns:0 1fr var(--right)}.app.no-chat.no-queue{grid-template-columns:0 1fr 0}.app.no-chat .right,.app.no-queue .left{opacity:0;pointer-events:none}.topbar{grid-area:top;display:flex;align-items:center;gap:14px;min-width:0}.left{grid-area:left;display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden;transition:opacity .3s}.center{grid-area:center;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.right{grid-area:right;display:flex;min-height:0;overflow:hidden;transition:opacity .3s}.logo{display:flex;align-items:center;gap:10px;font:700 28px/1 var(--title);letter-spacing:2px;white-space:nowrap}.logo .brand-idb{padding:5px 8px 4px;border-radius:8px;font-size:20px;letter-spacing:1px;color:#fff;background:var(--glow);box-shadow:0 0 16px #ff3cac80}.logo .disc{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle,#0d0716 0 18%,transparent 19%),conic-gradient(from 0deg,#ff3cac,#9b5cff,#4fd1ff,#ff3cac);box-shadow:0 0 18px #ff3cac99;animation:spin 4s linear infinite}.logo .disc.paused{animation-play-state:paused}@keyframes spin{to{transform:rotate(360deg)}}.search{position:relative;flex:1;max-width:720px;display:flex;gap:10px;min-width:0}.search-box{flex:1;display:flex;align-items:center;gap:10px;height:46px;padding:0 16px;border-radius:14px;background:#ffffff0a;border:1px solid var(--line);transition:border-color .2s,box-shadow .2s;min-width:0}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px #ff3cac26}.search-box input{flex:1;border:0;outline:0;background:none;min-width:0}.search-box input::placeholder{color:var(--muted)}.search .btn-primary{height:46px;border-radius:14px;padding:0 22px}.top-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.results{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:50;max-height:min(70vh,560px);overflow:auto;padding:8px;background:#160c26f7;animation:drop .22s cubic-bezier(.2,.8,.2,1)}@keyframes drop{0%{opacity:0;transform:translateY(-6px) scale(.98)}}.result{display:flex;gap:12px;align-items:center;padding:8px;border-radius:12px;transition:background .15s}.result:hover{background:#ff3cac14}.result img{width:120px;aspect-ratio:16/9;object-fit:cover;border-radius:10px;flex:none}.result .meta{flex:1;min-width:0}.result .meta b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:600}.result .meta span{color:var(--muted);font-size:13px}.results .empty{padding:20px;text-align:center;color:var(--muted)}.panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel-head{display:flex;align-items:center;gap:10px;padding:14px 16px 10px}.panel-title{font:600 19px/1 var(--title);letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap}.badge{min-width:26px;height:22px;padding:0 8px;display:inline-grid;place-items:center;border-radius:999px;background:var(--glow);font-size:12px;font-weight:800;color:#fff}.panel-body{flex:1;overflow:auto;padding:4px 12px 12px;display:flex;flex-direction:column;gap:8px}.empty-note{color:var(--muted);text-align:center;padding:18px 8px;font-size:14px}.queue{flex:0 1 46%}.q-item{display:grid;grid-template-columns:22px 92px 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:14px;background:#ffffff08;border:1px solid transparent;transition:background .2s,border-color .2s,transform .3s;animation:slideIn .35s cubic-bezier(.2,.8,.2,1)}.q-item:hover{background:#ffffff0f;border-color:var(--line)}.q-item.mine{border-color:#9b5cff59}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}}.q-item .idx{font:700 18px var(--title);color:var(--accent);text-align:center}.q-item img,.h-item img{width:92px;aspect-ratio:16/9;object-fit:cover;border-radius:10px}.q-item .meta,.h-item .meta{min-width:0}.q-item .meta b,.h-item .meta b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;font-weight:600;line-height:1.3}.q-item .meta span,.h-item .meta span{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.vote{width:44px;padding:6px 0;border-radius:12px;display:grid;place-items:center;gap:0;border:1px solid var(--line);background:#ffffff08;font-weight:800;line-height:1.1;transition:all .2s}.vote small{font-size:11px;color:var(--muted)}.vote:hover{border-color:var(--line-strong)}.vote.on{background:var(--glow);border-color:transparent;box-shadow:0 4px 16px #ff3cac73}.vote.on small{color:#fff}.vote.hit{animation:hit .6s ease-out}@keyframes hit{0%{transform:scale(1.25)}to{transform:none}}.q-actions{display:flex;flex-direction:column;gap:4px;align-items:center}.x-btn{font-size:12px;color:var(--muted);padding:2px 6px;border-radius:6px}.x-btn:hover{color:var(--err);background:#ff5a7a1a}.history{flex:1 1 54%}.h-item{display:grid;grid-template-columns:92px 1fr auto;gap:12px;align-items:center;padding:8px;border-radius:14px;background:#ffffff08;border:1px solid transparent;transition:all .2s}.h-item:hover{border-color:var(--line);background:#ffffff0f}.tabs{display:flex;gap:4px;padding:3px;border-radius:999px;background:#ffffff0a;margin-left:auto}.tabs button{white-space:nowrap;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:600;color:var(--muted);transition:all .2s}.tabs button.on{background:var(--glow);color:#fff}.board li{list-style:none;display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:8px 6px;border-radius:12px}.board ol{margin:0;padding:0;display:grid;gap:4px}.board .rk{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font:700 16px var(--title);color:#2a0b30;background:radial-gradient(circle at 35% 30%,#fff,#ffb3e2 50%,#ff3cac);box-shadow:0 0 0 2px #0d0716cc,0 0 0 3px #ff8fd4,0 0 14px #ff3cac80}.board li:nth-child(2) .rk{background:radial-gradient(circle at 35% 30%,#fff,#d8c8ff 50%,#9b5cff);box-shadow:0 0 0 2px #0d0716cc,0 0 0 3px #c3a8ff}.board li:nth-child(3) .rk{background:radial-gradient(circle at 35% 30%,#fff,#bfefff 50%,#4fd1ff);box-shadow:0 0 0 2px #0d0716cc,0 0 0 3px #a9e8ff}.board li:nth-child(n+4) .rk{background:#ffffff14;color:var(--muted);box-shadow:none}.board .nm{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board .st{color:var(--muted);font-size:12px;text-align:right}.board .st b{color:var(--text)}.theater{position:relative;flex:1;min-height:0;border-radius:22px;overflow:hidden;background:#07030d;isolation:isolate}.theater canvas{display:block}.marquee{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:210;width:min(52%,560px);overflow:hidden;white-space:nowrap;padding:6px 0;border-radius:999px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(13,7,22,.75) 15%,rgba(13,7,22,.75) 85%,transparent);font:600 15px var(--title);letter-spacing:2px;color:#ffd1f0;text-shadow:0 0 8px rgba(255,60,172,.9);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.marquee span{display:inline-block;padding-left:100%;animation:marquee 18s linear infinite}@keyframes marquee{to{transform:translate(-100%)}}.screen-frame{width:1280px;height:720px;background:#000;overflow:hidden}.screen-frame iframe,.screen-frame>div{width:100%;height:100%;border:0;display:block}.idle-screen{width:1280px;height:720px;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 40%,#2a1048,#0b0514 70%);color:var(--text)}.idle-screen h2{font:700 84px/1 var(--title);letter-spacing:6px;margin:0 0 18px}.idle-screen p{font-size:30px;color:var(--muted);margin:0}.flat-screen{position:absolute;top:48px;right:24px;bottom:70px;left:24px;display:grid;place-items:center}.flat-screen>.player-host{width:100%;max-height:100%;aspect-ratio:16 / 9;border-radius:14px;overflow:hidden;box-shadow:0 0 0 2px #ff3cac66,0 0 60px #9b5cff73}.flat-screen iframe{width:100%;height:100%;border:0;display:block}.flat-idle{text-align:center}.flat-idle h2{font:700 48px/1 var(--title);letter-spacing:4px;margin:0 0 10px}.flat-idle p{color:var(--muted);margin:0}.seat-label{transform:translateY(-4px);padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:#0d0716c7;border:1px solid var(--c, var(--accent));color:#fff;box-shadow:0 0 10px color-mix(in srgb,var(--c, #ff3cac) 55%,transparent);pointer-events:none;-webkit-user-select:none;user-select:none}.seat-label.me{background:var(--glow);border-color:#fff}.float-emoji{font-size:30px;pointer-events:none;animation:floatUp 2.6s ease-out forwards;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}@keyframes floatUp{0%{transform:translateY(0) scale(.4);opacity:0}15%{transform:translateY(-20px) scale(1.2);opacity:1}to{transform:translateY(-150px) scale(1) rotate(var(--rot, 10deg));opacity:0}}.enter-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:230;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 50%,#280e4699,#07030deb);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.enter-overlay h2{font:700 40px/1.1 var(--title);letter-spacing:3px;margin:0 0 8px}.enter-overlay p{color:var(--muted);margin:0 0 22px}.enter-overlay .btn-primary{height:54px;padding:0 30px;font-size:17px}.reaction-bar{position:absolute;right:14px;bottom:14px;z-index:214;display:flex;gap:4px;padding:5px;border-radius:999px;background:#0d0716b3;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.reaction-bar button{width:36px;height:36px;border-radius:50%;font-size:19px;transition:transform .15s,background .15s}.reaction-bar .sep{width:1px;margin:6px 3px;background:var(--line)}.reaction-bar button.emote{background:#9b5cff24}.view-tools{position:absolute;left:14px;bottom:14px;z-index:214;display:flex;gap:6px}.view-mode{height:42px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap;background:#0d0716b3;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s}.view-mode:hover{border-color:var(--line-strong)}.view-mode.on{background:var(--glow);border-color:transparent;color:#fff;box-shadow:0 4px 16px #ff3cac73}.view-reset{width:42px;height:42px;border-radius:50%;font-size:18px;background:#0d0716b3;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s}.view-reset:hover{border-color:var(--line-strong);transform:scale(1.08)}.view-hint{position:absolute;left:50%;top:52px;transform:translate(-50%);z-index:217;padding:8px 16px;border-radius:999px;background:#0d0716d1;border:1px solid var(--line-strong);font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 6px 24px #ff3cac4d;animation:pop .4s}.seat-label.singer{background:linear-gradient(120deg,#ffd36b,#ff3cac);border-color:#fff;color:#2a0b30;font-size:13px}.seat-label.dj{background:var(--glow);border-color:#fff;font-size:13px}.seat-label.hover-seat{background:#fff;color:#2a0b30;border-color:#fff}.reaction-bar button:hover{transform:translateY(-3px) scale(1.15);background:#ffffff14}.venue-switch{position:absolute;top:10px;left:10px;z-index:216;display:flex;gap:2px;padding:4px;border-radius:999px;background:#0d0716b8;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.venue-switch button{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700;color:var(--muted);transition:all .2s}.venue-switch button:hover{color:var(--text);background:#ffffff0f}.venue-switch button.on{background:var(--glow);color:#fff;box-shadow:0 4px 16px #ff3cac73}@media (max-width: 1500px){.venue-switch .lbl{display:none}.venue-switch button{padding:0 10px}}.neon-sign{white-space:nowrap;font:700 110px/1 var(--title);letter-spacing:8px;color:#fff;pointer-events:none;-webkit-user-select:none;user-select:none}.neon-sign.concert{text-shadow:0 0 8px #fff,0 0 24px #ff3cac,0 0 60px #ff3cac,0 0 110px #9b5cff}.neon-sign.bar{font:italic 700 120px/1 Be Vietnam Pro,sans-serif;letter-spacing:2px;text-shadow:0 0 6px #fff,0 0 20px #ff3cac,0 0 50px #ff3cac,0 0 90px #ff3cac;animation:flicker 6s infinite}.neon-sign.open{font-size:80px;color:#e9ffff;text-shadow:0 0 6px #fff,0 0 20px #4fd1ff,0 0 50px #4fd1ff}@keyframes flicker{0%,18%,22%,25%,53%,57%,to{opacity:1}20%,24%,55%{opacity:.45}}.zone-label{font:600 11px var(--title);letter-spacing:1.5px;color:#f3e9ffbf;white-space:nowrap;text-shadow:0 1px 3px #000,0 0 8px rgba(155,92,255,.6);pointer-events:none;-webkit-user-select:none;user-select:none}.now-card{position:absolute;left:50%;bottom:72px;z-index:215;transform:translate(-50%);width:min(86%,560px);padding:14px 20px;display:flex;gap:14px;align-items:center;clip-path:inset(0 50% 0 50% round 16px);opacity:0;transition:clip-path .6s cubic-bezier(.2,.8,.2,1),opacity .3s;pointer-events:none}.now-card.show{clip-path:inset(0 0 0 0 round 16px);opacity:1}.now-card img{width:96px;aspect-ratio:16/9;object-fit:cover;border-radius:10px}.now-card small{font:600 12px var(--title);letter-spacing:3px;color:var(--accent)}.now-card b{display:block;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-card span{color:var(--muted);font-size:13px}.now-card>div{min-width:0}.playerbar{padding:14px 20px 0;flex:none}.playerbar .row{display:flex;align-items:center;gap:16px}.playerbar .info{flex:1;min-width:0}.playerbar .label{font:600 13px var(--title);letter-spacing:3px;color:var(--accent);display:flex;align-items:center;gap:8px}.eq{display:inline-flex;gap:2px;align-items:flex-end;height:12px}.eq i{width:3px;background:var(--accent);border-radius:2px;animation:eq .9s ease-in-out infinite}.eq i:nth-child(2){animation-delay:-.3s}.eq i:nth-child(3){animation-delay:-.6s}@keyframes eq{0%,to{height:3px}50%{height:12px}}.playerbar .title{font:600 22px/1.25 var(--title);letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playerbar .sub{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skip-btn.on{background:var(--glow);border-color:transparent;color:#fff}.volume{display:flex;align-items:center;gap:8px}.time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px;white-space:nowrap}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:110px;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--accent) var(--p, 50%),rgba(255,255,255,.12) var(--p, 50%));outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 0 10px var(--accent)}input[type=range]::-moz-range-thumb{width:16px;height:16px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 10px var(--accent)}.progress{height:4px;margin:12px -20px 0;background:#ffffff12;border-radius:0 0 var(--radius) var(--radius);overflow:hidden}.progress i{display:block;height:100%;background:var(--glow);box-shadow:0 0 12px var(--accent);transition:width .5s linear}.chat{flex:1}.online{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:700;margin-left:auto}.online i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.4}}.chat-list{flex:1;overflow:auto;padding:4px 14px 10px;display:flex;flex-direction:column;gap:2px}.msg-group{display:grid;grid-template-columns:36px 1fr;gap:10px;margin-top:10px;animation:msgIn .3s ease-out}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#1a0b25;flex:none;box-shadow:0 0 0 2px #0d0716cc,0 0 12px color-mix(in srgb,var(--c) 50%,transparent);background:var(--c)}.msg-head{font-size:13px;margin-bottom:4px}.msg-head b{color:var(--c);font-weight:700}.msg-head span{color:var(--muted);margin-left:6px;font-size:12px}.bubble-wrap{position:relative;display:flex;align-items:center;gap:6px;margin-bottom:4px}.bubble{max-width:100%;padding:8px 13px;border-radius:14px;background:#ffffff0f;border:1px solid var(--line);word-wrap:break-word;overflow-wrap:anywhere;white-space:pre-wrap}.mine .bubble{background:linear-gradient(135deg,#ff3cac38,#9b5cff38);border-color:#ff3cac59}.bubble .quote{font-size:12px;color:var(--muted);border-left:2px solid var(--accent);padding-left:8px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-btn{opacity:0;font-size:13px;color:var(--muted);padding:2px 6px;border-radius:6px;transition:opacity .15s;flex:none}.bubble-wrap:hover .reply-btn{opacity:1}.reply-btn:hover{color:var(--accent)}.sys-msg{text-align:center;font-size:12px;color:var(--muted);margin:10px 0 2px}.sys-msg span{display:inline-block;padding:4px 12px;border-radius:999px;background:#ff3cac14;border:1px solid rgba(255,60,172,.18)}.chat-input{padding:10px 12px 12px;border-top:1px solid var(--line);position:relative}.replying{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:0 4px 8px}.replying b{color:var(--accent)}.replying span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-input form{display:flex;gap:8px;align-items:center}.chat-input input{flex:1;height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff0a;outline:none;min-width:0;transition:border-color .2s}.chat-input input:focus{border-color:var(--accent)}.chat-input .btn-primary{height:44px;border-radius:12px}.emoji-pop{position:absolute;bottom:calc(100% + 6px);left:12px;z-index:20;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:8px;background:#160c26fa;animation:drop .2s}.emoji-pop button{width:34px;height:34px;border-radius:8px;font-size:20px}.emoji-pop button:hover{background:#ffffff14}.new-msgs{position:absolute;left:50%;transform:translate(-50%);bottom:80px;z-index:5;font-size:13px;padding:6px 14px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#05020ab3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .2s;padding:16px}@keyframes fade{0%{opacity:0}}.modal{width:min(100%,460px);padding:26px;animation:pop .3s cubic-bezier(.2,.8,.2,1.2);max-height:90dvh;overflow:auto}.modal.wide{width:min(100%,720px)}@keyframes pop{0%{opacity:0;transform:scale(.94) translateY(10px)}}.modal h2{font:700 28px/1.1 var(--title);letter-spacing:2px;margin:0 0 6px}.modal p{color:var(--muted);margin:0 0 18px}.modal input[type=text]{width:100%;height:50px;padding:0 16px;border-radius:14px;border:1px solid var(--line);background:#ffffff0d;outline:none;font-size:17px;margin-bottom:16px}.modal input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 4px #ff3cac26}.modal .actions{display:flex;gap:10px;justify-content:flex-end}.seat-screen{height:10px;margin:6px 12% 22px;border-radius:50% 50% 0 0/100% 100% 0 0;background:var(--glow);box-shadow:0 6px 30px #ff3cacb3;position:relative}.seat-screen:after{content:attr(data-label);position:absolute;top:14px;left:0;right:0;text-align:center;font:600 11px var(--title);letter-spacing:4px;color:var(--muted)}.seat-grid{display:grid;gap:7px;justify-content:center}.seat-row{display:flex;gap:7px;align-items:center}.seat-row .rl{width:18px;font:600 13px var(--title);color:var(--muted)}.seat-row .gap{width:18px}.seat{width:44px;height:38px;border-radius:10px 10px 6px 6px;font-size:11px;font-weight:700;background:#9b5cff2e;border:1px solid rgba(155,92,255,.4);transition:all .15s;display:grid;place-items:center;overflow:hidden}.seat:hover:not(:disabled){background:#ff3cac59;border-color:var(--accent);transform:translateY(-2px)}.seat.taken{background:var(--c);border-color:transparent;color:#1a0b25;cursor:not-allowed}.seat.me{background:var(--glow);border-color:#fff;color:#fff;box-shadow:0 0 14px #ff3cacb3}.legend{display:flex;gap:16px;justify-content:center;margin-top:18px;font-size:13px;color:var(--muted)}.legend i{display:inline-block;width:14px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px}.toasts{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:200;display:grid;gap:8px;justify-items:center;pointer-events:none}.toast{padding:10px 18px;border-radius:999px;font-weight:600;font-size:14px;background:#160c26f2;border:1px solid var(--line);box-shadow:0 8px 30px #00000080;animation:pop .3s}.toast.ok{border-color:#46e8a880}.toast.err{border-color:#ff5a7a99}.conn{position:fixed;bottom:16px;left:16px;z-index:200;padding:8px 14px;border-radius:999px;background:#ff5a7a26;border:1px solid rgba(255,90,122,.5);font-size:13px}.mobile-tabs{display:none}@media (max-width: 1280px){:root{--left: 310px;--right: 320px}.top-actions .btn .lbl{display:none}}@media (max-width: 900px){body{overflow:auto}:root{--top: auto}.app,.app.no-chat,.app.no-queue,.app.no-chat.no-queue{display:flex;flex-direction:column;height:100dvh;padding:0;gap:0}.topbar{flex-wrap:wrap;padding:10px 12px;gap:10px}.logo{font-size:22px}.logo .brand-idb{font-size:15px;padding:4px 6px 3px}.logo .brand-idb{padding:5px 8px 4px;border-radius:8px;font-size:20px;letter-spacing:1px;color:#fff;background:var(--glow);box-shadow:0 0 16px #ff3cac80}.logo .disc{width:26px;height:26px}.search{order:3;flex-basis:100%;max-width:none}.search-box{height:42px}.search .btn-primary{height:42px;padding:0 16px}.top-actions{gap:6px}.top-actions .btn{height:36px;padding:0 12px;font-size:13px}.hide-mobile{display:none!important}.center{flex:none;gap:0;order:1}.left{order:2}.right{order:3}.theater{flex:none;aspect-ratio:16 / 10;border-radius:0}.playerbar{border-radius:0;padding:10px 14px 0}.playerbar .row{flex-wrap:wrap;gap:10px}.playerbar .title{font-size:18px}.playerbar .info{flex-basis:100%}.volume input{width:80px}.progress{margin:10px -14px 0}.mobile-tabs{display:flex;gap:6px;padding:10px 12px 0}.mobile-tabs button{flex:1;height:38px;border-radius:12px;border:1px solid var(--line);font-weight:700;font-size:14px}.mobile-tabs button.on{background:var(--glow);border-color:transparent}.left,.right{flex:1;min-height:0;padding:10px 12px 12px;opacity:1!important;pointer-events:auto!important}.left.m-hide,.right.m-hide{display:none}.queue,.history{flex:1}.left .history.m-hide,.left .queue.m-hide{display:none}.reaction-bar{right:8px;bottom:8px;max-width:calc(100% - 64px);overflow-x:auto;scrollbar-width:none}.view-tools{left:8px;bottom:52px;gap:4px}.view-reset{width:34px;height:34px;font-size:14px}.view-mode{height:34px;padding:0 10px;font-size:12px}.view-hint{top:44px;font-size:11px;white-space:normal;width:80%;text-align:center}.reaction-bar button{width:30px;height:30px;font-size:16px}.marquee{font-size:12px;width:46%;left:auto;right:8px;transform:none}.venue-switch{top:8px;left:8px}.venue-switch button{height:28px;padding:0 8px}.now-card{display:none}.seat-label{font-size:10px;padding:2px 7px}.float-emoji{font-size:22px}.seat{width:28px;height:28px;font-size:9px;border-radius:7px 7px 4px 4px}.seat-row,.seat-grid{gap:4px}.seat-row .rl:first-child{display:none}.seat-row .gap{width:8px}.modal{padding:20px 16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
