.mj-stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(140% 90% at 50% 8%,#1b1f22,#0b0d0e 58%,#050607);perspective:var(--persp, 1500px);perspective-origin:50% 46%}.mj-plane{position:absolute;left:50%;top:50%;width:var(--plane);height:var(--plane);margin-left:calc(var(--plane) / -2);margin-top:calc(var(--plane) / -2);transform:translateY(var(--plane-y, 0px)) rotateX(var(--tilt)) scale(var(--fit, 1));transform-style:preserve-3d;border-radius:26px;background:radial-gradient(58% 48% at 50% 46%,rgba(255,255,255,.06),transparent 72%),linear-gradient(180deg,#1d7a56,#126b4a 58%,#0e5b3f);box-shadow:inset 0 0 0 10px #6b3a20,inset 0 0 0 13px #e8c88a59,0 40px 90px #000000a6}.mj-plane:before{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:18px;background:repeating-linear-gradient(118deg,rgba(255,255,255,.022) 0 2px,transparent 2px 6px),radial-gradient(64% 54% at 50% 50%,rgba(255,255,255,.08),transparent 70%);pointer-events:none}.mj-seat{position:absolute;left:50%;top:50%;width:var(--plane);height:var(--plane);margin-left:calc(var(--plane) / -2);margin-top:calc(var(--plane) / -2);transform:rotate(var(--seat-rot));transform-style:preserve-3d}.mj-tile{position:absolute;width:var(--tw);height:var(--th);margin-left:calc(var(--tw) / -2);margin-top:calc(var(--th) / -2);transform-style:preserve-3d;background-image:url(/images/tiles-grid-3103a1836576.png);background-repeat:no-repeat;background-size:calc(8 * var(--tw)) calc(6 * var(--th));background-position:calc(var(--col) * -1 * var(--tw)) calc(var(--row) * -1 * var(--th));border-radius:calc(var(--th) * .09);box-shadow:0 3px 6px #00000073;backface-visibility:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.mj-tile.standing{transform:rotate(calc(-1 * var(--seat-rot))) rotateX(calc(-1 * var(--tilt))) translateY(-50%);filter:drop-shadow(0 calc(var(--th) * .06) calc(var(--th) * .1) rgba(0,0,0,.5))}.mj-tile.flat{transform:scaleY(var(--flat-scale, 1.3));filter:drop-shadow(0 calc(var(--th) * .05) calc(var(--th) * .07) rgba(0,0,0,.35))}.mj-tile.selectable{cursor:pointer}.mj-tile.selected{box-shadow:0 0 0 3px #ffd479,0 6px 10px #00000080}.mj-tile.dragging{z-index:40;filter:drop-shadow(0 12px 18px rgba(0,0,0,.6))}.mj-tile.dim{opacity:.45}.mj-queue{position:absolute;left:50%;top:10px;transform:translate(-50%);width:min(880px,calc(100vw - 260px));display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;background:#0c1010b8;border:1px solid rgba(226,193,124,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.mj-queue-title{font-size:11px;color:#cbbf9c;white-space:nowrap}.mj-queue-list{display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;cursor:grab;flex:1;padding-bottom:2px}.mj-queue-list.dragging{cursor:grabbing}.mj-queue-list::-webkit-scrollbar{height:5px}.mj-queue-list::-webkit-scrollbar-thumb{background:#e2c17c59;border-radius:3px}.mj-queue-item{flex:0 0 auto;width:26px;height:30px;position:relative}.mj-queue-item .mj-tile{--tw: 26px;--th: 30px;width:var(--tw);height:var(--th);margin:0}.mj-card{position:absolute;min-width:118px;padding:5px 9px;border-radius:10px;background:linear-gradient(180deg,#141818f0,#0a0d0df0);border:1px solid rgba(226,193,124,.28);color:#efe7d2;font-size:12px;display:flex;align-items:center;gap:7px;pointer-events:none}.mj-card .who{display:flex;flex-direction:column;line-height:1.25}.mj-card .nm{font-weight:600}.mj-card .sc{color:#9fd6b3;font-size:11px}.mj-card .av{width:28px;height:28px;border-radius:7px;overflow:hidden;background:#22302c;display:grid;place-items:center;font-size:13px;color:#cfe6d8;flex:0 0 auto}.mj-card .av img{width:100%;height:100%;object-fit:cover;display:block}.mj-card.active{border-color:#ffd479;box-shadow:0 0 0 1px #ffd47980,0 0 22px #ffd47938}.mj-card.pos-0{left:12px;bottom:12px}.mj-card.pos-1{right:12px;bottom:12px}.mj-card.pos-2{right:12px;top:64px}.mj-card.pos-3{left:12px;top:64px}.mj-badge{position:absolute;padding:3px 8px;border-radius:8px;font-size:11px;white-space:nowrap;background:#0a0d0dd1;border:1px solid rgba(226,193,124,.22);color:#d8cdae}.mj-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;border-radius:12px;background:#081a149e;border:1px solid rgba(226,193,124,.2);color:#e7f0e4;font-size:12px;pointer-events:none}.mj-center .big{font-size:20px;font-weight:700;color:#ffe6a8}.mj-actions{position:absolute;right:14px;bottom:74px;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.mj-actions button,.mj-btn{border:1px solid rgba(226,193,124,.4);background:linear-gradient(180deg,#1d3330,#12201e);color:#f3ecd8;border-radius:10px;padding:8px 16px;font-size:13px;cursor:pointer;box-shadow:0 6px 14px #0006}.mj-actions button.primary{background:linear-gradient(180deg,#b8862f,#8a5f19);border-color:#ffd479;color:#fff8e2}.mj-actions button:disabled{opacity:.45;cursor:not-allowed}.mj-result{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:60;background:#040606b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.mj-result .panel{min-width:320px;padding:22px 26px;border-radius:16px;text-align:center;background:linear-gradient(180deg,#181e1dfa,#0c1010fa);border:1px solid rgba(226,193,124,.4);color:#f2ead6}.mj-result h2{margin:0 0 10px;font-size:22px;color:#ffe6a8}.mj-result .delta{display:flex;gap:14px;justify-content:center;margin:14px 0;font-size:13px}.mj-result .delta .plus{color:#8fe0a8}.mj-result .delta .minus{color:#ff9b8a}.mj-actions .mj-badge{position:static}.mj-hint{position:absolute;left:50%;bottom:14px;transform:translate(-50%);padding:6px 16px;border-radius:999px;font-size:12px;white-space:nowrap;background:#0a0d0dc7;border:1px solid rgba(226,193,124,.28);color:#e2d7b6}.mj-seat{pointer-events:none}.mj-tile.selectable{pointer-events:auto}.mj-quit{position:absolute;left:12px;top:14px;z-index:20;padding:6px 12px;font-size:12px;border-radius:9px;cursor:pointer;background:#0e1212db;color:#e6dcc0;border:1px solid rgba(226,193,124,.3)}@keyframes mjFallDown{0%{transform:rotate(calc(-1 * var(--seat-rot))) rotateX(calc(-1 * var(--tilt))) translateY(-50%) scale(1.04)}60%{transform:rotate(calc(-1 * var(--seat-rot))) rotateX(calc(-1 * var(--tilt))) translateY(-50%) scale(1.04)}to{transform:scaleY(var(--flat-scale, 1.3))}}.mj-tile.revealed{animation:mjFallDown .9s cubic-bezier(.34,1.3,.64,1) both;animation-delay:var(--fall-delay, 0ms);box-shadow:0 0 0 2px #ffe2968c,0 6px 12px #00000080}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#0a0d0d;color:#efe7d2;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;overflow:hidden}.app{position:relative;width:100vw;height:100vh}.boot,.rotate-hint{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:10px;text-align:center;background:radial-gradient(120% 80% at 50% 30%,#14342a,#0a1412 60%,#050808)}.boot .ph,.rotate-hint .ph{font-size:22px;font-weight:700;color:#ffe6a8}.boot .sub,.rotate-hint .sub{font-size:13px;color:#9fb3a8}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);padding:8px 18px;border-radius:10px;font-size:13px;background:#782018eb;border:1px solid rgba(255,180,140,.5);z-index:99}.page{height:100%;overflow-y:auto;padding:26px clamp(16px,4vw,56px) 60px;background:radial-gradient(120% 70% at 50% -10%,rgba(255,255,255,.06),transparent 60%),linear-gradient(180deg,#0e1514,#090d0c)}.hero h1{margin:0 0 6px;font-size:clamp(20px,2.6vw,30px);color:#f7efd6}.hero p{margin:0;color:#9fb3a8;font-size:13px}.hero.small h1{font-size:clamp(18px,2.2vw,26px)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:18px 0}.card{padding:16px 18px;border-radius:14px;background:linear-gradient(180deg,#161e1df2,#0c1211f2);border:1px solid rgba(226,193,124,.22);box-shadow:0 18px 40px #00000059}.card h2{margin:0 0 12px;font-size:15px;color:#e8d9ac;font-weight:600}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field span{font-size:12px;color:#9fb3a8}.field input{padding:9px 11px;border-radius:9px;font-size:14px;background:#0c1211;border:1px solid rgba(226,193,124,.3);color:#f1e9d5}.field input:focus{outline:none;border-color:#ffd479}.mj-btn{border:1px solid rgba(226,193,124,.4);background:linear-gradient(180deg,#1d3330,#12201e);color:#f3ecd8;border-radius:10px;padding:9px 16px;font-size:13px;cursor:pointer;box-shadow:0 6px 14px #0006}.mj-btn.primary{background:linear-gradient(180deg,#b8862f,#8a5f19);border-color:#ffd479;color:#fff8e2}.mj-btn:disabled{opacity:.45;cursor:not-allowed}.mj-btn.leave{margin-top:8px}.mini{margin-top:6px;padding:3px 9px;font-size:11px;border-radius:7px;cursor:pointer;background:#1b2a27;color:#d7cbaa;border:1px solid rgba(226,193,124,.3)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.muted{color:#8fa39a;font-size:12px;margin:10px 0 0}.rooms ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.rooms li{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:10px;background:#080e0db3;border:1px solid rgba(226,193,124,.14)}.rooms .code{font-weight:600;color:#ffe6a8;min-width:140px}.rooms .meta{flex:1;font-size:12px;color:#9fb3a8}.seat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.seat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:12px;background:#0a100fcc;border:1px solid rgba(226,193,124,.18)}.seat.me{border-color:#ffd479;box-shadow:0 0 18px #ffd47929}.seat.empty{opacity:.6}.seat-av{width:54px;height:54px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:#22302c;color:#cfe6d8;font-size:20px}.seat-av img{width:100%;height:100%;object-fit:cover}.seat-name{font-size:14px;display:flex;gap:6px;align-items:center}.seat-name em{font-style:normal;font-size:11px;color:#ffd479;border:1px solid rgba(255,212,121,.4);border-radius:6px;padding:0 4px}.seat-state{font-size:12px;color:#9fb3a8}.mj-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.muted.error{color:#ff9b8a}.login .card{max-width:420px}.userlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.userlist li{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:9px;background:#080e0db3;border:1px solid rgba(226,193,124,.14)}.userlist .code{min-width:110px;color:#ffe6a8}.userlist .meta{flex:1;font-size:12px;color:#9fb3a8}
