.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-size:100% 100%;background-position:center center;background-repeat:no-repeat;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))}@keyframes mjDropIn{0%{transform:scaleY(calc(var(--flat-scale, 1.3) * 1.22)) scale(1.05);opacity:.35}to{transform:scaleY(var(--flat-scale, 1.3));opacity:1}}.mj-tile.dropped{animation:mjDropIn .18s cubic-bezier(.22,1,.36,1)}.mj-tile.selectable{cursor:pointer}.mj-tile.selected{box-shadow:0 0 0 3px #ffd479,0 6px 10px #00000080}.mj-tile.dragging{z-index:60;transform:rotate(calc(-1 * var(--seat-rot))) rotateX(calc(-1 * var(--tilt))) translateY(-58%) scale(1.12);filter:drop-shadow(0 16px 22px rgba(0,0,0,.65)) brightness(1.06);transition:none}.mj-tile.shiftable{transition:left .15s cubic-bezier(.22,1,.36,1)}.mj-drop{position:absolute;width:4px;height:calc(var(--th) * 1.05);margin-left:-2px;margin-top:calc(var(--th) * -.52);border-radius:3px;background:linear-gradient(180deg,#ffe6a8,#d9a53c);box-shadow:0 0 10px #ffd682bf;pointer-events:none}.mj-tile.dim{opacity:.45}.mj-hand{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;outline:none;transform-style:preserve-3d}.mj-hand:after{content:"";position:absolute;left:50%;top:calc(50% + var(--hand-y, 395px));width:var(--hand-w, 520px);height:calc(var(--th) * 1.28);margin-left:calc(var(--hand-w, 520px) / -2);margin-top:calc(var(--th) * -.64);border:2px solid transparent;border-radius:12px;pointer-events:none}.mj-hand:focus-visible:after{border-color:#ffd479;box-shadow:0 0 0 1px #ffd47959,0 0 18px #ffd47959}.mj-tile[data-tile]{pointer-events:auto}.mj-tip{position:absolute;z-index:70;padding:3px 9px;border-radius:8px;font-size:12px;line-height:1.4;white-space:nowrap;color:#fff6dd;background:#080c0cf0;border:1px solid rgba(255,212,121,.45);box-shadow:0 6px 16px #0000008c;pointer-events:none}.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 .mj-tag{position:absolute;right:-6px;top:-9px;padding:1px 7px;border-radius:8px;font-size:10px;line-height:1.5;color:#cfc6ae;background:#080b0bf0;border:1px solid rgba(150,160,155,.4);box-shadow:0 3px 8px #00000080}.mj-card.pos-0{right:12px;top:14px}.mj-card.pos-2{left:50%;top:var(--pos2-top, 102px);transform:translate(-50%)}.mj-card.pos-1{right:var(--pos1-right, 10px);top:50%;transform:translateY(-50%)}.mj-card.pos-3{left:var(--pos3-left, 10px);top:50%;transform:translateY(-50%)}.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-actions button{position:relative}.mj-actions button .key{position:absolute;right:-6px;top:-6px;width:16px;height:16px;line-height:15px;text-align:center;font-size:10px;font-weight:700;border-radius:50%;background:#080b0bf2;color:#ffe6a8;border:1px solid rgba(255,212,121,.55);box-shadow:0 2px 6px #00000080}.mj-choices{display:flex;flex-direction:column;gap:6px;align-items:flex-end;padding:8px 10px;border-radius:12px;background:linear-gradient(180deg,#101615f7,#090d0cf7);border:1px solid rgba(226,193,124,.3);box-shadow:0 14px 32px #00000080}.mj-choices .lbl{font-size:11px;color:#cbbf9c}.mj-choices .list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.mj-choices .opt{display:flex;gap:2px;padding:3px;cursor:pointer;border-radius:8px;background:#0c1111e6;border:1px solid rgba(226,193,124,.28)}.mj-choices .opt:hover{border-color:#ffd479}.mj-choices .opt .mj-tile{position:static;margin:0;box-shadow:none;--tw: 26px;--th: 30px;width:var(--tw);height:var(--th)}.mj-stage.result-open .mj-plane{pointer-events:none}.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);pointer-events:auto}.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 .yaku{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.mj-result .yaku .item{display:inline-flex;align-items:baseline;gap:5px;padding:3px 10px;border-radius:8px;background:#ffd4791a;border:1px solid rgba(255,212,121,.35)}.mj-result .yaku .item b{color:#ffe6a8;font-weight:600}.mj-result .yaku .item em{font-style:normal;font-size:11px;color:#cdbf9b}.mj-result .delta{display:flex;gap:14px;justify-content:center;margin:14px 0;font-size:13px}.mj-result .delta span{display:inline-flex;flex-direction:column;gap:2px;min-width:74px}.mj-result .delta i{font-style:normal;font-size:11px;color:#b9ae91}.mj-result .delta b{font-weight:600}.mj-result .delta .plus b{color:#8fe0a8}.mj-result .delta .minus b{color:#ff9b8a}.mj-result .delta .zero b{color:#9fb3a8}.mj-result .delta .win i,.mj-result .delta .win b{color:#8fe0a8}.mj-result .delta .me,.mj-result .delta .me b{font-weight:800}.mj-result .ops{display:flex;justify-content:center;gap:10px}.mj-result .mj-btn.primary{background:linear-gradient(180deg,#b8862f,#8a5f19);border-color:#ffd479;color:#fff8e2}.mj-result .mj-btn:disabled{opacity:.5;cursor:not-allowed}.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}.mj-tools{position:absolute;right:12px;top:62px;z-index:30;display:flex;gap:8px}.mj-btn.small{padding:5px 11px;font-size:12px;border-radius:9px}.mj-btn.active{border-color:#ffd479;box-shadow:0 0 14px #ffd47940}.mj-stats,.mj-log,.mj-rules{position:absolute;right:10px;top:100px;z-index:40;width:min(380px,calc(100vw - 20px));padding:10px 12px 12px;border-radius:14px;background:linear-gradient(180deg,#101615f7,#090d0cf7);border:1px solid rgba(226,193,124,.3);box-shadow:0 18px 40px #0000008c}.mj-stats .head,.mj-log .head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;color:#e8d9ac}.mj-stats .head button,.mj-log .head button,.mj-rules .head button{padding:3px 10px;font-size:11px;border-radius:7px;cursor:pointer;background:#1b2a27;color:#d7cbaa;border:1px solid rgba(226,193,124,.3)}.mj-log .head .ops{display:flex;gap:6px}.mj-log .list{display:flex;flex-direction:column;gap:3px;max-height:min(360px,calc(100vh - 170px));overflow-y:auto;padding-right:4px;scrollbar-width:thin}.mj-log .list::-webkit-scrollbar{width:6px}.mj-log .list::-webkit-scrollbar-thumb{background:#e2c17c4d;border-radius:3px}.mj-log .list p{margin:0;font-size:12px;line-height:1.5;color:#d9ceb0}.mj-log .list .empty{color:#8e9b93}.mj-stats .row{display:flex;align-items:center;gap:3px;margin-bottom:4px}.mj-stats .lbl{width:18px;font-size:11px;color:#9fb3a8}.mj-stats .cell{position:relative;width:26px;height:30px}.mj-stats .cell .mj-tile{--tw: 26px;--th: 30px;width:26px;height:30px;margin:0;box-shadow:none}.mj-stats .cell b{position:absolute;right:-2px;bottom:-3px;min-width:13px;height:13px;line-height:13px;text-align:center;font-size:9px;font-weight:700;border-radius:7px;background:#0a0e0eeb;color:#ffe6a8;border:1px solid rgba(226,193,124,.35)}.mj-stats .cell.full{opacity:.35}.mj-rules{right:140px;top:100px;width:min(380px,calc(50vw - 220px))}.mj-rules .body{max-height:min(420px,calc(100vh - 260px));overflow-y:auto;padding-right:4px;scrollbar-width:thin}.mj-rules .body::-webkit-scrollbar{width:6px}.mj-rules .body::-webkit-scrollbar-thumb{background:#e2c17c4d;border-radius:3px}.mj-rules .grp+.grp{margin-top:10px}.mj-rules .grp h3{margin:0 0 6px;padding-bottom:4px;font-size:12px;font-weight:600;color:#ffe6a8;border-bottom:1px solid rgba(226,193,124,.22)}.mj-rules .item{display:flex;flex-direction:column;gap:2px;margin-bottom:7px}.mj-rules .item b{font-size:12px;font-weight:600;color:#e8d9ac}.mj-rules .item span{font-size:11px;line-height:1.45;color:#cfc5a8}.mj-claimwait{align-self:center;padding:6px 12px;font-size:12px;border-radius:9px;background:#202a22f2;color:#ffe6a8;border:1px solid rgba(255,212,121,.45);animation:mjClaimPulse 1.2s ease-in-out infinite}@keyframes mjClaimPulse{0%,to{opacity:.7}50%{opacity:1}}.mj-auto{position:absolute;left:12px;bottom:14px;z-index:30;display:flex;flex-direction:column;gap:6px;width:132px}.mj-auto .item{padding:6px 9px;font-size:11px;text-align:left;border-radius:9px;cursor:pointer;background:#0c1111e6;color:#9fb3a8;border:1px solid rgba(226,193,124,.22)}.mj-auto .item.on{color:#ffe6a8;border-color:#ffd47980;background:#202a22f2}.mj-auto .item:disabled{opacity:.75;cursor:default}.mj-tile.slab{width:calc(var(--tw) * .62);margin-left:calc(var(--tw) * -.31);border-radius:3px;box-shadow:inset 0 0 0 1px #ffffff59,inset calc(var(--tw) * -.06) 0 calc(var(--tw) * .09) #5c462a57,inset 0 calc(var(--th) * .04) 0 #ffffff80,inset 0 calc(var(--th) * -.09) calc(var(--th) * .1) #543f224d,0 3px 7px #00000080}.mj-tile.slab:not([data-tile]).standing{background-image:linear-gradient(90deg,#fffc,#fff0 20%,#0000 74%,#5842264d),linear-gradient(180deg,#fffdf4,#f7efdd 56%,#e4d7b8)!important;background-size:100% 100%!important;background-position:center center!important;background-repeat:no-repeat!important;background-color:#f1e9d6}.mj-tile.slab.standing{height:calc(var(--tw) * 1.334);margin-top:calc(var(--tw) * -.667);filter:drop-shadow(0 calc(var(--th) * .05) calc(var(--th) * .08) rgba(0,0,0,.5))}.mj-tile.slab.placeholder{filter:drop-shadow(0 calc(var(--th) * .06) calc(var(--th) * .09) rgba(0,0,0,.55))}@media (max-height: 520px){.mj-auto{left:8px;bottom:8px;width:104px;gap:4px}.mj-auto .item{padding:3px 7px;font-size:10px;border-radius:7px}.mj-card{min-width:92px;padding:3px 7px;font-size:11px;gap:5px}.mj-card .av{width:22px;height:22px;font-size:11px;border-radius:6px}.mj-card .sc{font-size:10px}.mj-card.pos-0{right:8px;top:8px}.mj-card.pos-2{min-width:84px;padding:1px 7px;gap:4px}.mj-card.pos-2 .av{width:20px;height:20px;font-size:10px;border-radius:6px}.mj-card.pos-2 .nm{font-size:10px}.mj-card.pos-2 .sc{font-size:9px}.mj-stage{--mj-drawer-w: min(360px, 92vw)}.mj-tools{right:8px;top:44px;transition:transform .18s cubic-bezier(.22,1,.36,1)}.mj-stage.rules-open .mj-tools{transform:translate(calc(-1 * var(--mj-drawer-w)))}.mj-btn.small{padding:3px 9px;font-size:11px}.mj-stats,.mj-log{right:6px;top:74px;width:min(320px,calc(100vw - 12px));padding:7px 9px 9px}.mj-log .list{max-height:min(230px,calc(100vh - 110px));gap:2px}.mj-log .list p{font-size:11px;line-height:1.4}.mj-choices{padding:5px 7px;gap:4px}.mj-choices{position:absolute;right:calc(100% + 8px);bottom:0;width:max-content}.mj-choices .lbl{font-size:10px}.mj-choices .opt{padding:2px}.mj-choices .opt .mj-tile{--tw: 20px;--th: 23px;width:20px;height:23px}.mj-tip{padding:2px 7px;font-size:11px}.mj-result .panel{padding:14px 18px}.mj-result h2{font-size:18px;margin-bottom:8px}.mj-result .delta{gap:10px;margin:10px 0}.mj-result .delta span{min-width:62px}.mj-stats .cell{width:20px;height:23px}.mj-stats .cell .mj-tile{--tw: 20px;--th: 23px;width:20px;height:23px}.mj-stats .cell b{min-width:11px;height:11px;line-height:11px;font-size:8px}.mj-stats .row{margin-bottom:2px;gap:2px}.mj-rules{--mj-drawer-top: 44px;right:0;left:auto;bottom:auto;top:var(--mj-drawer-top);width:var(--mj-drawer-w);height:calc(100% - var(--mj-drawer-top));padding:0;border-radius:14px 0 0 14px;display:flex;flex-direction:column;animation:mjRulesIn .18s cubic-bezier(.22,1,.36,1)}.mj-rules .head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:8px 10px;font-size:12px;color:#e8d9ac;background:#0a0e0dfa;border-bottom:1px solid rgba(226,193,124,.25)}.mj-rules .head button{padding:6px 14px;font-size:12px;font-weight:600;border-radius:8px;cursor:pointer;background:linear-gradient(180deg,#b8862f,#8a5f19);color:#fff8e2;border:1px solid #ffd479}.mj-rules .body{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;padding:8px 10px 12px}.mj-rules .grp+.grp{margin-top:7px}.mj-rules .grp h3{font-size:11px;margin-bottom:5px}.mj-rules .item{margin-bottom:5px}.mj-rules .item b{font-size:11px}.mj-rules .item span{font-size:10px;line-height:1.35}.mj-stage.rules-open .mj-card.pos-1{right:calc(var(--mj-drawer-w) + 10px)}@keyframes mjRulesIn{0%{transform:translate(100%);opacity:.4}to{transform:translate(0);opacity:1}}.mj-queue{width:min(560px,calc(100vw - 170px));padding:2px 5px;top:4px}.mj-queue-item{width:18px;height:21px}.mj-queue-item .mj-tile{--tw: 18px;--th: 21px;width:18px;height:21px}.mj-hint{bottom:6px;font-size:11px;padding:4px 12px}.mj-quit{left:8px;top:8px;padding:4px 9px;font-size:11px}}.mj-tile.tenpai-hint{outline:2px solid rgba(255,212,121,.6);outline-offset:-2px}*{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}:where(button,input,select,textarea,a[href],summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid #ffd479;outline-offset:2px}.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:24px;transform:translate(-50%);max-width:min(92vw,520px);padding:8px 18px;border-radius:10px;font-size:13px;background:#782018eb;border:1px solid rgba(255,180,140,.5);z-index:99;pointer-events:none}.page{height:100%;overflow-y:auto;padding:24px clamp(14px,4vw,56px) 56px;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)}.hero .room-code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;color:#ffe6a8;letter-spacing:1px}.room-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.head-actions{gap:8px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px;margin:18px 0}.card{min-width:0;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;min-width:0}.field span{font-size:12px;color:#9fb3a8}.field input{width:100%;min-width:0;padding:9px 11px;border-radius:10px;font-size:14px;font-family:inherit;background:#0c1211;border:1px solid rgba(226,193,124,.3);color:#f1e9d5;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.field input:hover:not(:disabled){border-color:#ffd47980}.field input:focus{outline:none;border-color:#ffd479;background:#101917;box-shadow:0 0 0 3px #ffd47929}.field input:focus-visible{outline:2px solid #ffd479;outline-offset:2px}.field input:disabled{opacity:.5;cursor:not-allowed}.field input[readonly]{color:#cfdcd3}.field-note{font-size:11px;color:#8fa39a}.field-note.error{color:#ff9b8a}.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;font-family:inherit;cursor:pointer;white-space:nowrap;box-shadow:0 6px 14px #0006;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease,color .12s ease}.mj-btn:hover:not(:disabled){border-color:#ffd479bf;box-shadow:0 6px 18px #ffd4792e}.mj-btn:active:not(:disabled){box-shadow:inset 0 2px 6px #00000080}.mj-btn.primary{background:linear-gradient(180deg,#b8862f,#8a5f19);border-color:#ffd479;color:#fff8e2}.mj-btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#c9963b,#96691d)}.mj-btn.gold{border-color:#ffd479;color:#ffe6a8;background:linear-gradient(180deg,#24352f,#16211d)}.mj-btn.danger{border-color:#ff9a8a8c;color:#ffd7cf;background:linear-gradient(180deg,#3a2422,#241413)}.mj-btn.danger:hover:not(:disabled){border-color:#ff9a8ae6;box-shadow:0 6px 18px #ff9a8a2e}.mj-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.mj-btn.leave{margin-top:8px}.mini{margin-top:0;padding:4px 10px;font-size:11px;border-radius:8px;cursor:pointer;font-family:inherit;white-space:nowrap;background:#1b2a27;color:#d7cbaa;border:1px solid rgba(226,193,124,.3);transition:border-color .12s ease,background .12s ease,color .12s ease}.mini:hover:not(:disabled){border-color:#ffd479bf;color:#ffe6a8;background:#223734}.mini:disabled{opacity:.45;cursor:not-allowed}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.muted{color:#8fa39a;font-size:12px;margin:10px 0 0}.muted.error,.error{color:#ff9b8a}.muted.warn{color:#ffc9a3}.muted.ok{color:#9fd6b3}.hint{font-size:12px;color:#9fd6b3}.auth-error{font-size:12px;color:#ff9b8a;overflow-wrap:anywhere}.account{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:12px;padding:10px 12px;border-radius:10px;background:#080e0db3;border:1px solid rgba(226,193,124,.18)}.account-name{font-size:15px;color:#f7efd6;overflow-wrap:anywhere}.account-balance{font-size:13px;color:#ffd479;font-variant-numeric:tabular-nums}.rooms ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.rooms .room-card{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 12px;border-radius:12px;background:#080e0db3;border:1px solid rgba(226,193,124,.14);transition:border-color .12s ease,background .12s ease}.rooms .room-card:hover,.rooms .room-card:focus-within{border-color:#ffd4798c;background:#111b19d9}.room-open{flex:1 1 auto;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 6px;border:none;border-radius:9px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.room-code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:20px;font-weight:700;letter-spacing:1px;color:#ffe6a8}.room-facts{flex:1 1 auto;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.room-players{font-size:13px;color:#d8e5dc;font-variant-numeric:tabular-nums}.room-phase{font-size:11px;padding:1px 8px;border-radius:999px;border:1px solid rgba(226,193,124,.3);color:#cfdcd3}.room-phase.waiting{color:#9fd6b3;border-color:#9fd6b366}.room-phase.playing{color:#ffd479;border-color:#ffd47973}.room-phase.finished{color:#b6a8a0;border-color:#b6a8a059}.room-host{font-size:12px;color:#9fb3a8;overflow-wrap:anywhere}.room-enter{margin-left:auto;font-size:13px;color:#ffd479}.room-copy{flex:0 0 auto}.empty{padding:6px 2px 2px}.empty-title{margin:0;font-size:14px;color:#e8d9ac}.seat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:12px}.seat{min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:12px;text-align:center;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:14px;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{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;font-size:14px;min-width:0}.seat-nick{max-width:100%;overflow-wrap:anywhere}.tag{font-style:normal;font-size:11px;line-height:1.6;padding:0 5px;border-radius:6px;color:#ffd479;border:1px solid rgba(255,212,121,.4)}.tag-me{color:#9fd6b3;border-color:#9fd6b373}.tag-ai{color:#cbd6ff;border-color:#a0b2ff66}.tag-away{color:#ffb3a3;border-color:#ff9a8a8c;background:#46181480}.seat-state{font-size:12px;color:#9fb3a8}.seat .mini{margin-top:4px}.host-box{margin-top:14px;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,212,121,.45);background:linear-gradient(180deg,#ffd47917,#ffd47905)}.host-box h3{margin:0 0 10px;font-size:13px;font-weight:600;color:#ffd479;letter-spacing:.5px}.rules{margin:0;padding-left:18px;display:grid;gap:6px;font-size:13px;color:#cfdcd3}.mj-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.login .card{max-width:460px}.userlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.userlist li{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:9px 12px;border-radius:10px;background:#080e0db3;border:1px solid rgba(226,193,124,.14)}.userlist .code{min-width:110px;color:#ffe6a8;overflow-wrap:anywhere;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.userlist .meta{flex:1 1 120px;min-width:0;font-size:12px;color:#9fb3a8;overflow-wrap:anywhere}.userlist .tag{flex:0 0 auto;align-self:center}.userlist .balance{font-size:13px;color:#ffd479;font-variant-numeric:tabular-nums}.quick{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.mj-actions button:focus-visible,.mj-quit:focus-visible{outline:2px solid #ffd479;outline-offset:2px}@media (max-width: 700px){.page{padding:16px 14px 36px}.grid{gap:12px;margin:14px 0}.card{padding:14px}.room-enter{margin-left:auto}.userlist li{align-items:flex-start}.userlist .code{min-width:0}.quick{margin-left:0}}@media (max-height: 460px){.page{padding-top:12px;padding-bottom:24px}.grid{margin:12px 0}}.card.history ul{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:8px}.card.history li{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:9px;background:#080e0db3;border:1px solid rgba(226,193,124,.14)}.card.history .meta{flex:1;font-size:12px;color:#9fb3a8}.card.history .score{font-size:13px;font-weight:700}.card.history .score.plus{color:#8fe0a8}.card.history .score.minus{color:#ff9b8a}.mj-btn.danger{border-color:#ff96828c;color:#ffd9d2;background:linear-gradient(180deg,#3a1f1c,#26100e)}.userlist button.mini.danger{border-color:#ff968280;color:#ffd9d2}
