@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{color:#23332d;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f7f4ed;--paper-strong:#fffdf8;--paper-muted:#ece8df;--ink:#23332d;--ink-soft:#6d7b74;--felt:#356c5a;--felt-deep:#244f42;--felt-light:#4b826f;--wood:#74503a;--gold:#b38a4e;--gold-light:#ddc596;--cinnabar:#a84b3f;--line:#ded8cb;--line-dark:#f4e7c338;--panel:#fffdf8f0;--shadow-sm:0 6px 22px #30373014;--shadow-lg:0 24px 70px #27312b29;background:#f2efe7;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:var(--paper);min-width:320px}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #b38a4e59}button:disabled{cursor:not-allowed;opacity:.42;filter:saturate(.55)}.primary-btn,.danger-btn,.ghost-btn,.mini-action,.deal-buttons button{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-weight:700;transition:background .18s,border-color .18s,color .18s,box-shadow .18s;display:inline-flex}.primary-btn{color:#fffdf7;background:#315f50;border-color:#315f50;box-shadow:0 7px 18px #2a56472e}.primary-btn:hover:not(:disabled){background:#274f42;box-shadow:0 9px 22px #2a56473d}.danger-btn{color:#fffaf5;background:var(--cinnabar);border-color:var(--cinnabar)}.danger-btn:hover:not(:disabled){background:#8f3e34}.ghost-btn{color:#4f625a;background:0 0;border-color:#d4cec2}.ghost-btn:hover:not(:disabled){color:#274f42;background:#f4f7f4;border-color:#8ba597}.icon-btn{color:#52645c;cursor:pointer;background:#fffdf8;border:1px solid #d7d1c5;border-radius:11px;place-items:center;width:42px;height:42px;padding:0;display:inline-grid}.icon-btn:hover{background:#f2f5f2;border-color:#a6b6ad}.panel-kicker{color:#d9c28f;letter-spacing:.18em;font-size:12px;font-weight:700}.small-seal{color:#fff5df;background:var(--cinnabar);border:1px solid #c87365;border-radius:6px;place-items:center;width:38px;height:38px;font-family:Noto Serif SC,serif;font-size:18px;display:grid;box-shadow:inset 0 0 0 3px #681f1638}.seal{color:#fff5df;background:var(--cinnabar);border:1px solid #c87365;border-radius:8px;place-items:center;width:58px;height:58px;font-family:Noto Serif SC,serif;font-size:28px;display:grid;box-shadow:inset 0 0 0 3px #681f1638}.auth-grain{pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");position:absolute;inset:0}.form-error{color:#8d3e33;background:#faebe7;border:1px solid #eac8c0;border-radius:10px;padding:11px 13px;font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{z-index:90;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#1d2a238f;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-close{color:#68756e;cursor:pointer;background:#f7f4ed;border:1px solid #dfdad0;border-radius:50%;place-items:center;width:38px;height:38px;display:grid;position:absolute;top:12px;right:12px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.toast{z-index:120;min-width:220px;max-width:min(90vw,480px);box-shadow:var(--shadow-lg);color:#395348;text-align:center;background:#fffdf8fa;border:1px solid #cfc6b3;border-radius:11px;padding:12px 18px;font-size:13px;animation:.25s ease-out toast-in;position:fixed;top:86px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}}.loading-screen{color:#65736c;background:radial-gradient(circle,#fffdf8,#eee9df 68%);place-content:center;justify-items:center;gap:14px;min-height:100vh;display:grid}.loading-screen .seal{width:54px;height:54px;font-size:25px;animation:1.8s ease-in-out infinite float}.loading-screen p{letter-spacing:.12em;font:500 14px Noto Serif SC,serif}@keyframes float{50%{transform:translateY(-5px)}}.wordmark{align-items:center;gap:11px;display:flex}.wordmark b{letter-spacing:.08em;color:#23463a;font:700 20px/1.1 Noto Serif SC,serif;display:block}.wordmark small{color:#87928c;font-size:10px}.deal-buttons{gap:5px;display:flex}.deal-buttons button{color:#426052;background:#edf2ee;border-color:#ccd9d1;min-height:40px;padding:0 10px;font-size:10px}.deal-buttons button:hover:not(:disabled){background:#dfeae3}:root{--bg-app:#0b100e;--bg-panel:#131a17;--bg-elevated:#1b2420;--bg-inset:#080c0a;--felt-center:#1e5b43;--felt-mid:#174833;--felt-edge:#0e2f24;--wood-outer:#2c1b10;--wood-mid:#4a2e1a;--wood-inner:#6b4423;--accent:#c9a24b;--accent-bright:#e4c97e;--accent-hover:#d9b45f;--accent-active:#a8843a;--accent-deep:#7a6234;--accent-on:#201808;--accent-soft:#c9a24b24;--text-1:#ede7d9;--text-2:#b3ac9c;--text-3:#8f897b;--border:#27312c;--border-strong:#39443e;--border-gold:#c9a24b59;--win:#ec675c;--lose:#4fc98b;--danger:#c23b33;--danger-hover:#d34a41;--danger-active:#a02b25;--warn:#e0a93e;--success:var(--lose);--status-ok:#4fc98b;--status-warn:#e0a93e;--status-bad:#ec675c;--card-face:#f6f1e3;--card-ink:#20211c;--card-suit-red:#be3a31;--cardback-bg:#7e241d;--cardback-pattern:#c9a24b47;--cardback-border:var(--accent-deep);--seat-bg:#101915;--seat-border:#2c3a32;--seat-active-border:var(--accent);--seat-active-glow:0 0 0 1px var(--accent), 0 0 20px #c9a24b38;--focus-ring:0 0 0 2px var(--bg-app), 0 0 0 4px var(--accent);--overlay:#040706b8;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000073;--shadow-lg:0 12px 32px #0000008c;--shadow-modal:0 0 0 1px var(--border-gold), 0 16px 48px #0009;--shadow-card-select:0 0 0 2px var(--accent), 0 6px 16px #00000080;--z-dock:10;--z-drawer:100;--z-modal:200;--z-toast:300;--z-loading:400;--font-display:"Noto Serif SC", serif;--font-body:"Noto Sans SC", sans-serif;--text-xs2:11px;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:28px;--text-3xl:40px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--space-10:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--radius-card:6px;--radius-table:16px;--dur-instant:80ms;--dur-fast:.15s;--dur-base:.2s;--dur-slow:.3s;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--danger-on:#fff6f2}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.97)}}@keyframes toast-rise{0%{opacity:0;transform:translateY(12px)}}@keyframes stamp-in{0%{opacity:0;transform:scale(1.35)rotate(-8deg)}}@keyframes dot-pulse{50%{opacity:.3}}@keyframes countdown-urgent{50%{opacity:.55}}@keyframes deal-in{0%{opacity:0;transform:translateY(-12px)rotate(-6deg)}}.player-ui{min-height:100vh;color:var(--text-1);background:var(--bg-app);font-family:var(--font-body);font-size:var(--text-md);letter-spacing:0;line-height:1.6}.player-ui button:focus-visible,.player-ui input:focus-visible{box-shadow:var(--focus-ring);outline:none}.player-ui button:disabled{opacity:.45;filter:none}.player-ui .positive{color:var(--win)}.player-ui .negative{color:var(--lose)}.player-ui .primary-btn,.player-ui .danger-btn,.player-ui .ghost-btn,.player-ui .mini-action,.player-ui .deal-buttons button{border-radius:var(--radius-md);min-height:40px;padding:var(--space-2) var(--space-4);font-size:var(--text-md);gap:var(--space-2);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-instant) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:1px solid #0000;font-weight:500;line-height:1.4}.player-ui .primary-btn{min-height:48px;padding:var(--space-3) var(--space-5);font-size:var(--text-lg);color:var(--accent-on);background:var(--accent);border-color:var(--accent);box-shadow:none}.player-ui .primary-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:none}.player-ui .primary-btn:active:not(:disabled){background:var(--accent-active);transform:scale(.96)}.player-ui .danger-btn{color:var(--danger-on);background:var(--danger);border-color:var(--danger);font-size:var(--text-lg);min-height:48px}.player-ui .danger-btn:hover:not(:disabled){background:var(--danger-hover)}.player-ui .danger-btn:active:not(:disabled){background:var(--danger-active);transform:scale(.96)}.player-ui .ghost-btn{color:var(--text-1);border-color:var(--border-strong);background:0 0}.player-ui .ghost-btn:hover:not(:disabled){color:var(--text-1);border-color:var(--accent-deep);background:#ede7d90f}.player-ui .ghost-btn:active:not(:disabled){background:#ede7d91a}.player-ui .ghost-btn.danger-text{color:var(--win)}.player-ui .ghost-btn.danger-text:hover:not(:disabled){color:var(--win);border-color:var(--danger);background:#c23b331f}.player-ui .icon-btn{border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-2);background:0 0;border:0}.player-ui .icon-btn:hover{color:var(--accent-bright);background:#ede7d914;border-color:#0000}.player-ui .icon-btn:active{background:#ede7d91f}.player-ui .mini-action{min-height:44px;padding:0 var(--space-3);font-size:var(--text-xs);color:var(--accent-on);background:var(--accent);border-color:var(--accent)}.player-ui .mini-action:hover:not(:disabled){background:var(--accent-hover)}.player-ui .deal-buttons button{min-height:44px;padding:0 var(--space-3);font-size:var(--text-sm);color:var(--text-1);background:var(--bg-elevated);border-color:var(--border-strong)}.player-ui .deal-buttons button:hover:not(:disabled){border-color:var(--accent-deep);color:var(--accent-bright);background:var(--bg-elevated)}.player-ui .loading-screen{gap:var(--space-4);background:var(--bg-app);min-height:100vh;color:var(--text-2)}.player-ui .loading-screen .seal{width:64px;height:64px;font-size:var(--text-2xl);border-radius:var(--radius-md);color:var(--accent-bright);border:2px solid var(--accent);box-shadow:none;animation:dot-pulse 1.2s var(--ease-in-out) infinite;background:0 0}.player-ui .loading-screen p{font:500 var(--text-sm) var(--font-display);letter-spacing:.06em;color:var(--text-2)}.player-ui .toast{z-index:var(--z-toast);top:auto;bottom:calc(72px + env(safe-area-inset-bottom));right:max(var(--space-4), env(safe-area-inset-right));min-width:220px;max-width:min(90vw,420px);padding:var(--space-3) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:var(--shadow-lg);color:var(--text-1);font-size:var(--text-md);text-align:left;animation:toast-rise var(--dur-base) var(--ease-out);left:auto;transform:none}.player-ui .modal-backdrop{z-index:var(--z-modal);padding:var(--space-4);background:var(--overlay);-webkit-backdrop-filter:none;backdrop-filter:none;animation:toast-rise var(--dur-fast) var(--ease-out)}.player-ui .modal-close{right:var(--space-3);top:var(--space-3);border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-2);background:0 0;border:0}.player-ui .modal-close:hover{color:var(--accent-bright);background:#ede7d914}.player-ui .modal-actions{gap:var(--space-2);margin-top:var(--space-5)}.player-ui .arrange-modal{border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(560px,100%);max-height:calc(100dvh - 32px);padding:var(--space-5);background:var(--bg-elevated);box-shadow:var(--shadow-modal);animation:modal-in var(--dur-base) var(--ease-out);position:relative;overflow-y:auto}.player-ui .arrange-modal h2{margin:var(--space-2) 0;font:700 var(--text-xl)/1.2 var(--font-display);letter-spacing:.02em;color:var(--accent-bright)}.player-ui .arrange-modal>p{color:var(--text-2);font-size:var(--text-xs);margin:0;line-height:1.6}.player-ui .panel-kicker{color:var(--accent);letter-spacing:.06em;font-size:var(--text-xs2);font-weight:500}.player-ui .manual-card-picker{justify-content:center;gap:var(--space-4);padding:var(--space-5) var(--space-3) var(--space-3);display:flex}.player-ui .manual-card-picker .playing-card{width:clamp(60px,15vw,84px)}.player-ui .selection-status{margin-top:var(--space-4);color:var(--text-1);font-size:var(--text-sm);justify-content:space-between;align-items:center;font-weight:500;display:flex}.player-ui .selection-status button{color:var(--accent-bright);cursor:pointer;font-size:var(--text-xs);padding:var(--space-2);background:0 0;border:0;text-decoration:underline}.player-ui .selection-help{margin:var(--space-2) 0 0;color:var(--text-3);font-size:var(--text-xs);line-height:1.6}.player-ui .auth-screen{background:radial-gradient(70% 46% at 50% 28%,#192f29 0%,#0d1815 58%,#070c0a 100%);grid-template-rows:minmax(180px,1fr) auto;height:100dvh;min-height:100dvh;display:grid;position:relative;overflow:hidden}.player-ui .auth-screen:before{content:"";pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.player-ui .auth-grain{display:none}.player-ui .brand-panel{min-height:0;padding:max(28px, env(safe-area-inset-top)) 28px 12px;z-index:1;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-rows:auto minmax(0,1fr);place-items:center;margin:0;display:grid;position:relative;overflow:hidden}.player-ui .cover-copy{place-self:start}.player-ui .brand-panel h1{font:700 36px/1.1 var(--font-display);letter-spacing:.04em;background:linear-gradient(#f2d086,#d49d42);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0}.player-ui .brand-copy{color:#ede7d99e;font:400 13px/1.5 var(--font-body);margin:8px 0 0}.player-ui .cover-fan{justify-content:center;align-items:flex-end;height:148px;display:flex}.player-ui .cover-card{aspect-ratio:5/7;color:#20211c;width:78px;animation:deal-in var(--dur-slow) var(--ease-out) both;background:#faf8f5;border:1px solid #20211c1f;border-radius:7px;margin-left:-10px;position:relative;box-shadow:0 1px 1px #0000008c,0 12px 18px #04120c47}.player-ui .cover-card:first-child{margin-left:0;transform:rotate(-2deg)}.player-ui .cover-card:nth-child(2){z-index:1;animation-delay:60ms;transform:rotate(0)}.player-ui .cover-card:nth-child(3){z-index:2;animation-delay:.12s;transform:rotate(1.5deg)}.player-ui .cover-card:nth-child(4){z-index:3;animation-delay:.18s;transform:rotate(3deg)translateY(-2px)}.player-ui .cover-card b{font:700 18px/1 var(--font-display);position:absolute;top:7px;left:8px}.player-ui .cover-card i{place-items:center;font-size:28px;font-style:normal;display:grid;position:absolute;inset:0}.player-ui .cover-card.red{color:#9e2b24}.player-ui .cover-card.back{color:#0000;background:#8a151b;border:1px solid #c9a24b}.player-ui .seal,.player-ui .small-seal{font-family:var(--font-display);color:var(--accent-bright);border:2px solid var(--accent);box-shadow:none;background:0 0;place-items:center;font-weight:700;display:grid}.player-ui .seal{width:58px;height:58px;font-size:var(--text-2xl);border-radius:var(--radius-md)}.player-ui .small-seal{width:40px;height:40px;font-size:var(--text-lg);border-radius:var(--radius-sm)}.player-ui .auth-panel-wrap{z-index:2;min-height:0;padding:0;display:block;position:relative}.player-ui .global-music-toggle:has(+.auth-screen){top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));bottom:auto;left:auto}.player-ui .auth-panel{width:100%;max-height:min(62dvh,560px);color:var(--text-1);padding:22px 22px max(18px, env(safe-area-inset-bottom));background:#0e1216e6;border-radius:28px 28px 0 0;position:relative;overflow-y:auto;box-shadow:0 -16px 32px #00000047}.player-ui .auth-panel:before{content:"";background:linear-gradient(90deg,#0000,#f2d086,#0000);height:1px;position:absolute;top:0;left:18%;right:18%}.player-ui .auth-panel header h2{font:700 22px/1.2 var(--font-display);letter-spacing:.02em;color:var(--text-1);margin:4px 0}.player-ui .auth-panel header p{color:var(--text-3);margin:0 0 16px;font-size:13px}.player-ui .auth-tabs{background:#00000059;border:0;border-radius:8px;gap:4px;margin-bottom:16px;padding:4px;display:flex}.player-ui .auth-tabs button{min-height:40px;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.player-ui .auth-tabs button.active{color:var(--accent-bright);box-shadow:none;background:#ede7d914;font-weight:500}.player-ui .auth-panel form{gap:12px;display:grid}.player-ui .auth-panel label{color:var(--text-3);gap:6px;font-size:12px;font-weight:500;display:grid}.player-ui .auth-panel input{width:100%;height:48px;color:var(--text-1);background:#00000059;border:1px solid #0000;border-radius:8px;padding:0 12px;font-size:16px;box-shadow:inset 0 1px 2px #00000073}.player-ui .auth-panel input::placeholder{color:#ede7d961}.player-ui .auth-panel input:focus{border-color:#d49d42;outline:0}.player-ui .input-icon{position:relative}.player-ui .input-icon svg{color:var(--text-3);position:absolute;top:15px;left:12px}.player-ui .input-icon input{padding-left:40px}.player-ui .name-hint{color:var(--text-3);align-items:flex-start;gap:8px;margin:0;font-size:12px;line-height:1.5;display:flex}.player-ui .name-hint svg{flex:none;margin-top:2px}.player-ui .form-error{border:1px solid var(--danger);color:var(--win);background:#c23b331f;border-radius:8px;padding:10px 12px;font-size:13px}.player-ui .auth-submit{color:#3a2a12;background:linear-gradient(135deg,#f2d086,#d49d42);border:0;width:100%;margin-top:4px;box-shadow:inset 0 1px #ffffff59}.player-ui .auth-submit:hover:not(:disabled){background:linear-gradient(135deg,#f6d89a,#c9923a)}.player-ui .auth-submit:active:not(:disabled){transform:scale(.97)}.player-ui .auth-panel footer{color:var(--text-3);text-align:center;margin:14px 0 0;font-size:12px}.player-ui .admin-entry-link{color:var(--text-2);text-decoration:underline}.player-ui .admin-entry-link:hover{color:var(--accent-bright)}.player-ui .game-shell{background:var(--bg-app);min-height:100vh;color:var(--text-1);padding-bottom:env(safe-area-inset-bottom)}.player-ui .topbar{min-height:72px;padding:var(--space-3) clamp(var(--space-4), 2.3vw, 38px);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:30;background:#0b100ee6;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky;top:0}.player-ui .wordmark{align-items:center;gap:var(--space-3);min-width:0;display:flex}.player-ui .wordmark b{font:700 var(--text-xl)/1.2 var(--font-display);letter-spacing:.02em;color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.player-ui .wordmark small{color:var(--text-3);font-size:var(--text-xs)}.player-ui .round-phase{align-items:center;gap:var(--space-3);color:var(--text-2);font-size:var(--text-sm);display:flex}.player-ui .round-phase i{background:var(--border-strong);width:1px;height:15px}.player-ui .round-phase strong{font:700 var(--text-lg)/1.2 var(--font-display);color:var(--accent-bright)}.player-ui .round-phase span:last-child{align-items:center;gap:var(--space-1);font-variant-numeric:tabular-nums;min-width:56px;display:flex}.player-ui .round-phase .urgent{color:var(--win);animation:countdown-urgent 1s var(--ease-in-out) infinite alternate}.player-ui .top-actions{justify-self:end;align-items:center;gap:var(--space-3);display:flex}.player-ui .beans{column-gap:var(--space-2);color:var(--accent-bright);font-weight:500;font-size:var(--text-lg);font-variant-numeric:tabular-nums;grid-template-columns:auto auto;align-items:center;display:grid}.player-ui .beans svg{color:var(--accent);grid-row:1/3}.player-ui .beans small{color:var(--text-3);font-weight:400;font-size:var(--text-xs2)}.player-ui .connection-pill{align-items:center;gap:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--text-1);background:var(--bg-elevated);font-weight:500;display:inline-flex}.player-ui .connection-pill i{background:var(--status-ok);border-radius:50%;width:8px;height:8px}.player-ui .connection-pill.offline{border-color:var(--danger)}.player-ui .connection-pill.offline i{background:var(--status-bad)}.player-ui .room-role-pill{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--accent-deep);color:var(--accent-bright);background:var(--accent-soft);font-size:var(--text-xs);font-weight:500;display:inline-flex}.player-ui .room-role-pill.spectator{color:var(--text-2);background:var(--bg-elevated);border-color:var(--border-strong)}.player-ui .pause-banner{min-height:48px;padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--warn);justify-content:center;align-items:center;gap:var(--space-2);color:var(--warn);font-size:var(--text-sm);background:#e0a93e1a;display:flex}.player-ui .pause-banner span{color:var(--text-2)}.player-ui .content-grid{gap:var(--space-4);padding:var(--space-5);grid-template-columns:240px minmax(0,1fr) 280px;align-items:start;max-width:1280px;margin:0 auto;display:grid}.player-ui .sidebar{min-width:0}.player-ui .side-block,.player-ui .capacity-card,.player-ui .my-bets{border:1px solid var(--border);background:var(--bg-panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.player-ui .side-block>header,.player-ui .my-bets>header{border-bottom:1px solid var(--border);min-height:48px;padding:0 var(--space-4);font-size:var(--text-sm);color:var(--text-2);justify-content:space-between;align-items:center;font-weight:500;display:flex}.player-ui .side-block>header span{align-items:center;gap:var(--space-2);display:flex}.player-ui .side-block>header em{font-size:var(--text-xs);color:var(--accent-bright);font-variant-numeric:tabular-nums;font-style:normal}.player-ui .player-list{max-height:min(62vh,720px);padding:var(--space-2) var(--space-3) var(--space-3);overscroll-behavior:contain;scrollbar-width:thin;overflow-y:auto}.player-ui .player-row{align-items:center;gap:var(--space-2);min-height:56px;padding:var(--space-1) var(--space-1);grid-template-columns:36px 1fr 8px;display:grid}.player-ui .avatar{border:1px solid var(--accent-deep);background:var(--bg-inset);width:36px;height:36px;color:var(--accent-bright);font-family:var(--font-display);font-weight:700;font-size:var(--text-md);border-radius:50%;place-items:center;display:grid}.player-ui .avatar.offline{filter:grayscale();opacity:.55}.player-ui .player-row b{font-size:var(--text-sm);color:var(--text-1);font-weight:500;display:block}.player-ui .player-row small{color:var(--text-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.player-ui .player-row>i{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.player-ui .player-row>i.online{background:var(--status-ok)}.player-ui .reconnect-block{margin-top:var(--space-3);gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--warn);color:var(--warn);background:#e0a93e14;display:flex}.player-ui .reconnect-block svg{flex:none}.player-ui .reconnect-block b{font-size:var(--text-sm);display:block}.player-ui .reconnect-block span{font-size:var(--text-xs);color:var(--text-2);margin-top:var(--space-1);line-height:1.6;display:block}.player-ui .compact-log{margin-top:var(--space-3);padding-bottom:var(--space-2)}.player-ui .compact-log p{margin:var(--space-2) var(--space-4);color:var(--text-2);font-size:var(--text-xs);padding-left:var(--space-3);border-left:2px solid var(--accent-deep);line-height:1.6}.player-ui .table-column{min-width:0}.player-ui .stepper{max-width:720px;height:44px;margin:0 auto var(--space-3);justify-content:center;align-items:center;display:flex}.player-ui .stepper>div{align-items:center;gap:var(--space-2);color:var(--text-3);font-size:var(--text-xs);flex:1;display:flex;position:relative}.player-ui .stepper>div:not(:last-child):after{content:"";background:var(--border-strong);height:2px;margin-right:var(--space-1);flex:1}.player-ui .stepper i{border:1px solid var(--border-strong);width:24px;height:24px;font-style:normal;font-size:var(--text-xs2);background:var(--bg-panel);border-radius:50%;flex:none;place-items:center;display:grid}.player-ui .stepper .done{color:var(--accent-bright)}.player-ui .stepper .done i{background:var(--accent);color:var(--accent-on);border-color:var(--accent);font-weight:700}.player-ui .stepper .done:not(:last-child):after{background:var(--accent-deep)}.player-ui .stepper .current{color:var(--accent-bright);font-weight:500}.player-ui .stepper .current i{color:var(--accent-bright);background:var(--bg-panel);border-color:var(--accent);box-shadow:var(--seat-active-glow);animation:dot-pulse 1.2s var(--ease-in-out) infinite}.player-ui .table-frame{border-radius:var(--radius-lg);box-shadow:none;background:0 0;padding:0;position:relative}.player-ui .table-frame:before{content:none}.player-ui .felt{aspect-ratio:1.48;border-radius:var(--radius-lg);background:radial-gradient(ellipse at center, var(--felt-center) 0%, var(--felt-mid) 62%, var(--felt-edge) 100%);border:1px solid var(--border);min-height:520px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #c9a24b2e}.player-ui .felt:before{content:none}.player-ui .corner{display:none}.player-ui .corner:before,.player-ui .corner:after{content:"";background:var(--accent);position:absolute}.player-ui .corner:before{width:18px;height:1px;top:10px;left:7px}.player-ui .corner:after{width:1px;height:18px;top:7px;left:10px}.player-ui .corner-tl{top:8px;left:8px}.player-ui .corner-tr{top:8px;right:8px;transform:rotate(90deg)}.player-ui .corner-br{bottom:8px;right:8px;transform:rotate(180deg)}.player-ui .corner-bl{bottom:8px;left:8px;transform:rotate(270deg)}.player-ui .seat{width:clamp(220px,30%,300px);min-height:132px;padding:var(--space-3);border:1px solid var(--seat-border);border-radius:var(--radius-lg);background:var(--seat-bg);box-shadow:var(--shadow-md);position:absolute}.player-ui .seat-heaven{top:3.5%;left:50%;transform:translate(-50%)}.player-ui .seat-exit{top:50%;left:2%;transform:translateY(-50%)}.player-ui .seat-end{top:50%;right:2%;transform:translateY(-50%)}.player-ui .seat-banker{border-color:var(--accent-deep);bottom:3.5%;left:50%;transform:translate(-50%)}.player-ui .seat.result-win{border-color:var(--win);box-shadow:0 0 0 1px var(--win), var(--shadow-md)}.player-ui .seat.result-lose{border-color:var(--lose)}.player-ui .seat.result-draw{border-color:var(--warn);box-shadow:0 0 0 1px var(--warn), var(--shadow-md)}.player-ui .seat-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);min-height:28px;display:flex}.player-ui .seat-header>div{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.player-ui .seat-header b{font:700 var(--text-lg)/1.2 var(--font-display);color:var(--accent-bright);letter-spacing:.02em}.player-ui .seat-header span{color:var(--text-2);font-size:var(--text-xs);white-space:nowrap;font-variant-numeric:tabular-nums}.player-ui .result-stamp{background:var(--bg-app);min-width:36px;min-height:36px;font:700 var(--text-md) var(--font-display);animation:stamp-in var(--dur-base) var(--ease-out);border:2px solid;border-radius:50%;place-items:center;padding:0;display:grid;transform:rotate(-8deg)}.player-ui .seat.result-win .result-stamp{color:var(--win)}.player-ui .seat.result-lose .result-stamp{color:var(--lose)}.player-ui .seat.result-draw .result-stamp{color:var(--warn)}.player-ui .cards-row{justify-content:center;align-items:center;gap:var(--space-1);min-height:72px;display:flex}.player-ui .seat-meta{justify-content:space-between;align-items:center;gap:var(--space-1);min-height:20px;color:var(--text-2);font-size:var(--text-xs);display:flex}.player-ui .deal-dots{align-items:center;gap:var(--space-1);display:flex}.player-ui .deal-dots i{background:var(--border-strong);border-radius:50%;width:6px;height:6px}.player-ui .deal-dots i.filled{background:var(--accent)}.player-ui .locked{align-items:center;gap:var(--space-1);color:var(--accent-bright);display:inline-flex}.player-ui .pair-summary{gap:var(--space-1);margin-top:var(--space-1);display:flex}.player-ui .pair-summary>span{align-items:center;gap:2px var(--space-1);border-radius:var(--radius-sm);min-width:0;padding:var(--space-1);background:var(--accent-soft);color:var(--accent-bright);font-size:var(--text-xs);text-align:left;flex:1;grid-template-columns:auto 1fr;display:grid}.player-ui .pair-summary b{color:var(--accent-bright);font-family:var(--font-display);grid-row:1/3}.player-ui .pair-summary small{color:var(--text-2);font-size:var(--text-xs2)}.player-ui .pair-cards{grid-column:2;gap:2px;display:flex}.player-ui .pair-cards .playing-card.compact{width:24px}.player-ui .seat-disconnected{left:var(--space-2);font-size:var(--text-xs2);align-items:center;gap:var(--space-1);color:var(--warn);display:flex;position:absolute;bottom:-22px}.player-ui .playing-card,.player-ui .card-slot{aspect-ratio:5/7;border-radius:var(--radius-card);width:clamp(40px,4.6vw,56px)}.player-ui .playing-card{background:var(--card-face);color:var(--card-ink);box-shadow:var(--shadow-sm);padding:var(--space-1);-webkit-user-select:none;user-select:none;animation:deal-in var(--dur-slow) var(--ease-out) both;flex:none;position:relative}.player-ui .cards-row .playing-card:nth-child(2){animation-delay:60ms}.player-ui .cards-row .playing-card:nth-child(3){animation-delay:.12s}.player-ui .cards-row .playing-card:nth-child(4){animation-delay:.18s}.player-ui .selectable-card{cursor:pointer;text-align:left;transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:0}.player-ui .selectable-card:hover{transform:translateY(-4px)}.player-ui .selectable-card.selected{box-shadow:var(--shadow-card-select);transform:translateY(-8%)}.player-ui .selection-order{width:20px;height:20px;color:var(--accent-on);background:var(--accent);font-size:var(--text-xs2);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;bottom:3px;right:3px}.player-ui .playing-card.red{color:var(--card-suit-red)}.player-ui .card-rank{font:700 clamp(14px, 1.2vw, 18px)/1 var(--font-display);display:block}.player-ui .card-suit{padding-top:var(--space-2);place-items:center;font-size:clamp(18px,2.1vw,26px);display:grid;position:absolute;inset:0}.player-ui .card-back{color:#0000;border:1px solid var(--accent-deep);background:var(--cardback-bg);box-shadow:var(--shadow-sm);place-items:center;display:grid}.player-ui .card-back span{aspect-ratio:auto;border:1px solid var(--accent);border-radius:50%;width:14px;height:14px;font-size:0;display:block;transform:none}.player-ui .card-slot{border:1px dashed var(--border-gold);background:#0000002e}.player-ui .playing-card.compact{width:36px}.player-ui .table-center{align-items:center;gap:var(--space-4);color:var(--accent-bright);display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.player-ui .center-mark{border:1px solid var(--border-gold);background:var(--accent-soft);width:84px;height:84px;font:700 var(--text-md) var(--font-display);letter-spacing:.02em;border-radius:50%;place-items:center;display:grid;position:relative}.player-ui .center-mark:before{content:"";border:1px solid var(--border-gold);border-radius:50%;position:absolute;inset:8px}.player-ui .center-mark i{background:var(--border-gold);width:1px;height:48px;position:absolute;transform:rotate(45deg)}.player-ui .deal-info{align-items:baseline;gap:2px var(--space-2);grid-template-columns:auto auto;min-width:84px;display:grid}.player-ui .deal-info small{color:var(--text-2);font-size:var(--text-xs2)}.player-ui .deal-info b,.player-ui .deal-info strong{font:700 var(--text-xl)/1.2 var(--font-display);color:var(--accent-bright);font-variant-numeric:tabular-nums}.player-ui .deal-info strong{font-size:var(--text-md)}.player-ui .action-dock{margin-top:var(--space-3);border:1px solid var(--border);border-top:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);justify-content:space-between;align-items:center;gap:var(--space-4);min-height:84px;padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-sm);display:flex}.player-ui .dock-context{min-width:168px;max-width:260px}.player-ui .dock-context small{color:var(--text-3);font-size:var(--text-xs2);letter-spacing:.06em;display:block}.player-ui .dock-context b{color:var(--text-1);font:500 var(--text-md)/1.4 var(--font-body);margin-top:var(--space-1);display:block}.player-ui .dock-controls{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.player-ui .spectator-notice{align-items:center;gap:var(--space-2);min-height:44px;color:var(--text-2);font-size:var(--text-sm);padding:0 var(--space-3);border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border);display:flex}.player-ui .gate-switch{background:var(--bg-inset);padding:var(--space-1);border-radius:var(--radius-md);border:1px solid var(--border);display:flex}.player-ui .gate-switch button{min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;font-size:var(--text-sm);background:0 0;border:0}.player-ui .gate-switch button.active{background:var(--accent);color:var(--accent-on);font-weight:500}.player-ui .inline-input{border:1px solid var(--border-strong);border-radius:var(--radius-md);height:44px;padding:0 var(--space-3);color:var(--text-2);align-items:center;gap:var(--space-2);font-size:var(--text-xs);background:var(--bg-inset);display:flex}.player-ui .inline-input input{width:108px;color:var(--text-1);text-align:right;font-weight:500;font-size:var(--text-md);font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0}.player-ui .inline-input.amount input{text-align:left;width:84px}.player-ui .deal-buttons{gap:var(--space-1);display:flex}.player-ui .pulse{box-shadow:var(--seat-active-glow)}.player-ui .cut-control{align-items:center;gap:var(--space-2);display:flex}.player-ui .cut-control label{color:var(--text-2);font-size:var(--text-xs);gap:2px;display:grid}.player-ui .cut-control input[type=range]{width:140px;accent-color:var(--accent)}.player-ui .refill-callout{align-items:center;gap:var(--space-3);min-width:min(100%,390px);padding:var(--space-2) var(--space-3);border:1px solid var(--accent-deep);border-radius:var(--radius-lg);background:var(--accent-soft);flex:420px;display:flex}.player-ui .refill-callout>span{flex:1;min-width:0}.player-ui .refill-callout b,.player-ui .refill-callout small{display:block}.player-ui .refill-callout b{color:var(--accent-bright);font:700 var(--text-sm) var(--font-display)}.player-ui .refill-callout small{color:var(--text-2);font-size:var(--text-xs2);margin-top:2px;line-height:1.4}.player-ui .refill-btn{flex:none}.player-ui .right-sidebar{gap:var(--space-3);flex-direction:column;display:flex}.player-ui .capacity-card{padding:var(--space-4)}.player-ui .capacity-card header,.player-ui .capacity-card footer{color:var(--text-3);font-size:var(--text-xs);justify-content:space-between;display:flex}.player-ui .capacity-card header em{color:var(--accent-bright);font-variant-numeric:tabular-nums;font-style:normal}.player-ui .capacity-main{margin:var(--space-3) 0 var(--space-2);align-items:baseline;gap:var(--space-1);display:flex}.player-ui .capacity-main b{font:700 var(--text-2xl)/1.2 var(--font-display);color:var(--text-1);font-variant-numeric:tabular-nums}.player-ui .capacity-main span{font-size:var(--text-xs);color:var(--text-3)}.player-ui .progress{border-radius:var(--radius-full);background:var(--bg-inset);height:6px;margin-bottom:var(--space-2);overflow:hidden}.player-ui .progress i{background:var(--accent);border-radius:inherit;height:100%;display:block}.player-ui .banker-net{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border);color:var(--text-2);font-size:var(--text-xs);display:flex}.player-ui .banker-net b{font-size:var(--text-lg);font-variant-numeric:tabular-nums;color:var(--text-1);white-space:nowrap}.player-ui .banker-net.positive b,.player-ui .player-row small.positive{color:var(--win)}.player-ui .banker-net.negative b,.player-ui .player-row small.negative{color:var(--lose)}.player-ui .my-bets{padding-bottom:var(--space-2)}.player-ui .my-bets>div{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-2);justify-content:space-between;display:flex}.player-ui .my-bets b{color:var(--text-1);font-variant-numeric:tabular-nums;font-weight:500}.player-ui .refill-stat{border-top:1px solid var(--border)}.player-ui .logout-link{color:var(--text-3);align-self:center;align-items:center;gap:var(--space-1);font-size:var(--text-xs);cursor:pointer;padding:var(--space-2);background:0 0;border:0;display:flex}.player-ui .logout-link:hover{color:var(--win)}.player-ui .close-sidebar,.player-ui .mobile-only{display:none}@media (width>=1024px){.player-ui .auth-screen{grid-template-rows:none;grid-template-columns:55% 45%;align-items:center;max-width:1080px;margin:0 auto}.player-ui .brand-panel{flex-direction:column;justify-content:center;align-items:center;gap:36px;height:100%;padding:64px;display:flex}.player-ui .cover-copy{text-align:center}.player-ui .cover-fan{height:auto}.player-ui .cover-card{width:108px;margin-left:-24px}.player-ui .auth-panel-wrap{place-items:center;padding:40px;display:grid}.player-ui .auth-panel{border-radius:24px;width:min(380px,100%);max-height:calc(100dvh - 80px);padding:28px}}@media (width<=1023px){.player-ui .topbar{row-gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mark actions""phase phase";align-items:center;min-height:0;display:grid}.player-ui .wordmark{grid-area:mark}.player-ui .top-actions{flex-wrap:wrap;grid-area:actions;justify-content:flex-end;justify-self:end}.player-ui .round-phase{background:0 0;border:0;grid-area:phase;justify-content:flex-start;width:auto;height:auto;position:static}.player-ui .connection-pill{position:static}.player-ui .mobile-only{display:inline-grid}.player-ui .content-grid{padding:var(--space-3) var(--space-3) max(var(--space-6), env(safe-area-inset-bottom));gap:var(--space-3);grid-template-columns:minmax(0,1fr)}.player-ui .top-actions .mobile-only{order:8}.player-ui .left-sidebar{z-index:var(--z-drawer);background:var(--bg-app);width:min(330px,88vw);padding:72px var(--space-4) var(--space-5);transition:transform var(--dur-slow) var(--ease-out);box-shadow:var(--shadow-lg);border-right:1px solid var(--border);position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-105%)}.player-ui .left-sidebar.open{transform:translate(0)}.player-ui .close-sidebar{right:var(--space-3);top:var(--space-3);display:grid;position:absolute}.player-ui .right-sidebar{gap:var(--space-3);grid-template-columns:1.1fr 1fr;display:grid}.player-ui .logout-link{display:none}.player-ui .felt{aspect-ratio:auto;gap:var(--space-2);min-height:0;padding:var(--space-3);grid-template-columns:1fr 1fr;grid-template-areas:"heaven heaven""exit end""center center""banker banker";display:grid;overflow:visible}.player-ui .seat,.player-ui .seat-heaven,.player-ui .seat-exit,.player-ui .seat-end,.player-ui .seat-banker{width:auto;min-height:0;position:static;inset:auto;transform:none}.player-ui .seat-heaven{grid-area:heaven}.player-ui .seat-exit{grid-area:exit}.player-ui .seat-end{grid-area:end}.player-ui .seat-banker{grid-area:banker}.player-ui .seat-header>div{display:block}.player-ui .seat-header span{margin-top:2px;display:block}.player-ui .table-center{justify-content:space-between;gap:var(--space-3);flex-direction:row;grid-area:center;width:100%;position:static;transform:none}.player-ui .center-mark{display:none}.player-ui .action-dock{z-index:auto;margin-top:var(--space-3);padding:var(--space-3);display:block;position:static}.player-ui .dock-context{max-width:none;margin:0 var(--space-1) var(--space-2)}.player-ui .dock-controls{justify-content:stretch}.player-ui .dock-controls>.primary-btn,.player-ui .dock-controls>.danger-btn,.player-ui .dock-controls>.ghost-btn{flex:1;min-width:132px}.player-ui .gate-switch{width:100%}.player-ui .gate-switch button,.player-ui .inline-input{flex:1}.player-ui .inline-input input,.player-ui .deal-buttons{width:100%}.player-ui .deal-buttons button{flex:1}}@media (width<=639px){.player-ui .wordmark small{display:none}.player-ui .wordmark b{font-size:var(--text-md);max-width:42vw}.player-ui .beans small{display:none}.player-ui .beans{font-size:var(--text-sm);display:flex}.player-ui .room-role-pill,.player-ui .connection-pill{gap:0;padding:6px 8px;font-size:0}.player-ui .connection-pill svg{display:none}.player-ui .connection-pill i,.player-ui .room-role-pill svg{width:14px;height:14px}.player-ui .top-actions{gap:var(--space-1)}.player-ui .pause-banner{padding:var(--space-2) var(--space-3);flex-wrap:wrap;justify-content:flex-start}.player-ui .stepper{height:36px}.player-ui .stepper>div span,.player-ui .stepper .current span{display:none}.player-ui .seat{padding:var(--space-2)}.player-ui .playing-card,.player-ui .card-slot{width:clamp(28px,7.2vw,40px)}.player-ui .seat-heaven .playing-card,.player-ui .seat-heaven .card-slot,.player-ui .seat-banker .playing-card,.player-ui .seat-banker .card-slot{width:clamp(40px,16vw,56px)}.player-ui .deal-info{text-align:left;grid-template-columns:auto auto}.player-ui .right-sidebar{grid-template-columns:1fr}.player-ui .banker-net span,.player-ui .my-bets span{white-space:nowrap}.player-ui .modal-actions{grid-template-columns:1fr;display:grid}.player-ui .modal-actions button{min-height:48px}.player-ui .cut-control{width:100%}.player-ui .cut-control label{flex:1}.player-ui .cut-control input[type=range]{width:100%}.player-ui .dock-controls{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.player-ui .dock-controls>.primary-btn,.player-ui .dock-controls>.danger-btn,.player-ui .dock-controls>.ghost-btn{width:100%;min-width:0}.player-ui .dock-controls>.start-game-btn,.player-ui .gate-switch,.player-ui .cut-control,.player-ui .deal-buttons,.player-ui .refill-callout{grid-column:1/-1}.player-ui .icon-btn{width:44px;height:44px}}@media (orientation:landscape) and (height<=500px) and (width<=1023px){.player-ui .auth-screen{grid-template-rows:none;grid-template-columns:42% 58%;height:auto;min-height:100dvh}.player-ui .cover-fan{height:120px}.player-ui .cover-card{width:64px}.player-ui .auth-panel{border-radius:0;max-height:none}.player-ui .topbar{position:sticky}.player-ui .content-grid{padding:var(--space-2) var(--space-3) 72px}.player-ui .felt{aspect-ratio:auto;min-width:0;min-height:0}.player-ui .table-frame{overflow:visible}.player-ui .action-dock{position:static}.player-ui .right-sidebar{display:grid}}@media (width<=1023px){.player-ui .global-music-toggle.inline{border-radius:var(--radius-md);z-index:auto;width:40px;height:40px;box-shadow:none;order:7;position:static}}@media (prefers-reduced-motion:reduce){.player-ui *,.player-ui :before,.player-ui :after{transition-duration:.1s!important;animation-duration:.1s!important;animation-iteration-count:1!important}.player-ui .playing-card,.player-ui .result-stamp,.player-ui .stepper .current i{animation:none!important}}.player-ui .lobby-screen{min-height:100vh;color:var(--text-1);background:radial-gradient(ellipse 80% 40% at 80% -10%, #c9a24b14, transparent 55%), var(--bg-app)}.player-ui .lobby-topbar{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:72px;padding:var(--space-3) clamp(var(--space-4), 5vw, 72px);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:30;background:#0b100ee6;display:flex;position:sticky;top:0}.player-ui .lobby-user{align-items:center;gap:var(--space-3);font-size:var(--text-sm);min-width:0;display:flex}.player-ui .lobby-user>span{align-items:center;gap:var(--space-2);color:var(--accent-bright);font-variant-numeric:tabular-nums;font-weight:500;display:inline-flex}.player-ui .lobby-user>span svg{color:var(--accent)}.player-ui .lobby-user>b{color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-weight:500;overflow:hidden}.player-ui .lobby-user button,.player-ui .refresh-btn{color:var(--text-2);align-items:center;gap:var(--space-2);cursor:pointer;min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);background:0 0;border:1px solid #0000;display:inline-flex}.player-ui .lobby-user button:hover,.player-ui .refresh-btn:hover:not(:disabled){color:var(--accent-bright);border-color:var(--border);background:#ede7d90f}.player-ui .lobby-hero{justify-content:space-between;align-items:center;gap:var(--space-8);min-height:280px;padding:var(--space-8) clamp(var(--space-5), 7vw, 110px);background:radial-gradient(ellipse at 78% 30%, #c9a24b1f, transparent 28%), linear-gradient(135deg, var(--felt-edge), var(--bg-inset) 70%);border-bottom:1px solid var(--border);display:flex;position:relative;overflow:hidden}.player-ui .lobby-hero h1{font:700 clamp(32px, 4.2vw, 48px)/1.25 var(--font-display);letter-spacing:.02em;margin:var(--space-2) 0 var(--space-4);color:var(--text-1)}.player-ui .lobby-hero p{max-width:480px;color:var(--text-2);line-height:1.7;font-size:var(--text-md);margin:0}.player-ui .hero-fan{height:148px;margin-right:var(--space-4);pointer-events:none;align-items:flex-end;display:flex}.player-ui .hero-fan span{aspect-ratio:5/7;border-radius:var(--radius-card);border:1px solid var(--accent-deep);background:var(--cardback-bg);width:72px;box-shadow:var(--shadow-md);place-items:center;margin-left:-28px;display:grid}.player-ui .hero-fan span:first-child{margin-left:0;transform:rotate(-12deg)}.player-ui .hero-fan span:nth-child(2){z-index:1;transform:translateY(-10px)}.player-ui .hero-fan span:nth-child(3){transform:rotate(12deg)}.player-ui .hero-fan i{border:1px solid var(--accent);border-radius:50%;width:14px;height:14px;font-size:0}.player-ui .create-room-btn{border:1px solid var(--border-gold);border-radius:var(--radius-lg);width:min(280px,100%);min-height:88px;color:var(--text-1);align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);text-align:left;cursor:pointer;box-shadow:var(--shadow-md);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-instant) var(--ease-out);background:#c9a24b14;flex:none;display:flex}.player-ui .create-room-btn:hover{border-color:var(--accent);background:#c9a24b29}.player-ui .create-room-btn:active{transform:scale(.98)}.player-ui .create-room-btn>svg{width:32px;height:32px;color:var(--accent-bright);flex:none}.player-ui .create-room-btn b,.player-ui .create-room-btn small{display:block}.player-ui .create-room-btn b{font:600 var(--text-lg) var(--font-display);color:var(--accent-bright)}.player-ui .create-room-btn small{margin-top:var(--space-1);color:var(--text-2);font-size:var(--text-xs)}.player-ui .lobby-content{width:min(1200px,100% - 48px);padding:var(--space-8) 0 var(--space-10);margin:0 auto}.player-ui .section-heading,.player-ui .finished-section>header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.player-ui .section-heading span,.player-ui .finished-section header span{color:var(--accent);font-size:var(--text-xs2);letter-spacing:.06em;font-weight:500}.player-ui .section-heading h2,.player-ui .finished-section h2{margin:var(--space-1) 0 0;color:var(--text-1);font:700 var(--text-xl) var(--font-display)}.player-ui .refresh-btn{border-color:var(--border-strong);background:var(--bg-panel)}.player-ui .refresh-btn svg{width:16px}.player-ui .room-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.player-ui .room-card{border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;padding:var(--space-5);background:var(--bg-panel);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.player-ui .room-card:hover{border-color:var(--accent-deep);transform:translateY(-2px)}.player-ui .room-card>header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.player-ui .room-card>header small{color:var(--text-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.player-ui .room-status{padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);color:var(--lose);font-size:var(--text-xs2);background:#4fc98b1f;border:1px solid #4fc98b59;font-weight:500}.player-ui .room-status.playing{color:var(--accent-bright);background:var(--accent-soft);border-color:var(--accent-deep)}.player-ui .room-card h3{margin:var(--space-4) 0 var(--space-3);color:var(--text-1);font:700 var(--text-lg) var(--font-display);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.player-ui .host-line{align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--border);display:flex}.player-ui .host-line>span{width:40px;height:40px;color:var(--accent-bright);background:var(--bg-inset);border:1px solid var(--accent-deep);font:700 var(--text-md) var(--font-display);border-radius:50%;flex:none;place-items:center;display:grid}.player-ui .host-line small,.player-ui .host-line b{display:block}.player-ui .host-line small{color:var(--text-3);font-size:var(--text-xs2)}.player-ui .host-line b{color:var(--text-1);font-size:var(--text-sm);margin-top:2px;font-weight:500}.player-ui .host-line b svg{vertical-align:-2px;color:var(--accent);margin-right:var(--space-1)}.player-ui .room-counts{gap:var(--space-4);padding:var(--space-4) 0;color:var(--text-2);font-size:var(--text-xs);display:flex}.player-ui .room-counts span{align-items:center;gap:var(--space-1);display:inline-flex}.player-ui .room-counts svg{width:15px;color:var(--text-3)}.player-ui .room-card footer{gap:var(--space-2);grid-template-columns:1.3fr 1fr;display:grid}.player-ui .room-card footer button{width:100%;min-width:0;padding:0 var(--space-3)}.player-ui .lobby-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);place-content:center;justify-items:center;gap:var(--space-2);min-height:240px;color:var(--text-2);background:var(--bg-panel);text-align:center;padding:var(--space-5);display:grid}.player-ui .lobby-empty svg{color:var(--accent)}.player-ui .lobby-empty b{color:var(--text-1);font:600 var(--text-lg) var(--font-display)}.player-ui .lobby-empty span{font-size:var(--text-sm);color:var(--text-2)}.player-ui .lobby-empty .primary-btn{margin-top:var(--space-3)}.player-ui .finished-section{margin-top:var(--space-8)}.player-ui .finished-section header>small{color:var(--text-3);font-size:var(--text-xs)}.player-ui .finished-list{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);overflow:hidden}.player-ui .finished-list button{border:0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:var(--space-3) var(--space-4);text-align:left;cursor:default;color:var(--text-1);background:0 0;display:flex}.player-ui .finished-list button:last-child{border-bottom:0}.player-ui .finished-list b,.player-ui .finished-list small{display:block}.player-ui .finished-list b{color:var(--text-1);font-weight:500}.player-ui .finished-list small{color:var(--text-3);font-size:var(--text-xs);margin-top:2px}.player-ui .finished-list em{color:var(--text-3);font-size:var(--text-xs);font-style:normal}.player-ui .create-room-modal,.player-ui .result-modal{border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(480px,100%);max-height:calc(100dvh - 32px);padding:clamp(var(--space-5), 4vw, var(--space-8));background:var(--bg-elevated);box-shadow:var(--shadow-modal);animation:modal-in var(--dur-base) var(--ease-out);color:var(--text-1);position:relative;overflow-y:auto}.player-ui .create-room-modal h2,.player-ui .result-modal h2{margin:var(--space-2) 0;color:var(--accent-bright);font:700 var(--text-xl) var(--font-display)}.player-ui .create-room-modal>p,.player-ui .result-heading p{color:var(--text-2);font-size:var(--text-sm);margin:0;line-height:1.7}.player-ui .create-room-modal label{gap:var(--space-2);margin-top:var(--space-5);color:var(--text-2);font-weight:500;font-size:var(--text-sm);display:grid}.player-ui .create-room-modal input{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-inset);width:100%;height:48px;color:var(--text-1);padding:0 var(--space-3);font-size:var(--text-md)}.player-ui .create-room-modal input:focus{border-color:var(--accent);outline:0}.player-ui .room-rule{margin-top:var(--space-3);align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--bg-inset);border:1px solid var(--border);color:var(--text-2);display:flex}.player-ui .room-rule svg{color:var(--accent);flex:none}.player-ui .room-rule b,.player-ui .room-rule small{display:block}.player-ui .room-rule b{font-size:var(--text-sm);color:var(--text-1)}.player-ui .room-rule small{font-size:var(--text-xs);color:var(--text-3);margin-top:2px}.player-ui .result-modal{flex-direction:column;width:min(720px,100%);display:flex;overflow:hidden}.player-ui .result-heading,.player-ui .result-actions{flex:none}.player-ui .result-heading{padding-right:40px}.player-ui .result-table{min-height:0;margin-top:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-inset);flex-direction:column;flex:auto;display:flex;overflow:hidden}.player-ui .result-table>header,.player-ui .result-row{align-items:center;gap:var(--space-2);min-height:48px;padding:var(--space-2) var(--space-3);text-align:right;font-size:var(--text-xs);grid-template-columns:minmax(140px,1.5fr) .9fr .9fr .55fr .9fr;display:grid}.player-ui .result-table>header{min-height:40px;color:var(--text-3);background:var(--bg-panel);font-size:var(--text-xs2);border-bottom:1px solid var(--border)}.player-ui .result-table>header span:first-child,.player-ui .result-player{text-align:left}.player-ui .result-table-body{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:min(390px,44dvh);overflow-y:auto}.player-ui .result-row{border-top:1px solid var(--border)}.player-ui .result-row:first-child{border-top:0}.player-ui .result-player{align-items:center;gap:var(--space-2);grid-template-columns:24px minmax(0,1fr);min-width:0;display:grid}.player-ui .result-player i{color:var(--accent);font-variant-numeric:tabular-nums;font-style:normal}.player-ui .result-player-copy{min-width:0}.player-ui .result-player b,.player-ui .result-player small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.player-ui .result-player b{color:var(--text-1);font-weight:500}.player-ui .result-table small{color:var(--text-3)}.player-ui .result-net strong{color:var(--text-1);font-size:var(--text-md);white-space:nowrap;font-variant-numeric:tabular-nums}.player-ui .result-net strong small{color:inherit;font-size:.72em;font-weight:500}.player-ui .result-table .positive{color:var(--win)}.player-ui .result-table .negative{color:var(--lose)}.player-ui .result-mobile-details{display:none}.player-ui .result-actions>footer{margin-top:var(--space-3);padding:0 var(--space-1);color:var(--text-2);font-size:var(--text-xs);justify-content:space-between;display:flex}.player-ui .result-actions>footer b{color:var(--text-1);font-variant-numeric:tabular-nums}.player-ui .close-result{width:100%;margin-top:var(--space-4)}.player-ui .global-music-toggle{z-index:75;right:max(var(--space-4), env(safe-area-inset-right));bottom:max(var(--space-4), env(safe-area-inset-bottom));border:1px solid var(--border-strong);width:48px;height:48px;color:var(--text-2);background:var(--bg-elevated);box-shadow:var(--shadow-md);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:fixed}.player-ui .global-music-toggle:hover{color:var(--accent-bright);border-color:var(--accent-deep)}.player-ui .global-music-toggle.playing{color:var(--accent-on);background:var(--accent);border-color:var(--accent)}.player-ui .global-music-toggle svg{width:20px}@media (width<=1023px){.player-ui .room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.player-ui .lobby-hero{min-height:240px;padding:var(--space-6) var(--space-5)}.player-ui .hero-fan{display:none}}@media (width<=639px){.player-ui .lobby-topbar{min-height:60px;padding:var(--space-2) var(--space-3)}.player-ui .lobby-user{gap:var(--space-1)}.player-ui .lobby-user>span{display:none}.player-ui .lobby-user button{padding:0 var(--space-2);gap:0;font-size:0}.player-ui .lobby-user button svg{width:18px}.player-ui .lobby-hero{min-height:0;padding:var(--space-6) var(--space-4);gap:var(--space-5);display:grid}.player-ui .lobby-hero h1{font-size:32px}.player-ui .create-room-btn{width:100%;min-height:76px}.player-ui .lobby-content{width:calc(100% - 32px);padding-top:var(--space-6)}.player-ui .room-grid{grid-template-columns:1fr}.player-ui .result-backdrop{padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))}.player-ui .result-modal{width:100%;max-height:calc(100dvh - 16px);padding:var(--space-5) var(--space-4) var(--space-4)}.player-ui .result-heading h2{font-size:var(--text-xl);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.player-ui .result-table{margin-top:var(--space-3)}.player-ui .result-table>header,.player-ui .result-row{gap:var(--space-2);grid-template-columns:minmax(0,1fr) minmax(118px,auto)}.player-ui .result-desktop-column{display:none}.player-ui .result-table-body{flex:auto;min-height:0;max-height:none}.player-ui .result-net strong{font-size:var(--text-lg);font-weight:700;display:block}.player-ui .result-mobile-details{color:var(--text-3);font-size:var(--text-xs2);white-space:nowrap;margin-top:2px;font-weight:400;display:block}.player-ui .close-result{min-height:44px;margin-top:var(--space-3)}}@media (orientation:landscape) and (height<=500px) and (width<=1023px){.player-ui .lobby-topbar{min-height:52px;padding:var(--space-1) var(--space-4)}.player-ui .lobby-hero{min-height:0;padding:var(--space-4) var(--space-5)}.player-ui .lobby-hero h1{margin:var(--space-1) 0;font-size:28px}.player-ui .create-room-btn{min-height:64px}.player-ui .lobby-content{padding-top:var(--space-4)}.player-ui .room-grid{padding-bottom:var(--space-2);grid-template-columns:repeat(3,minmax(240px,1fr));overflow-x:auto}.player-ui .global-music-toggle{width:40px;height:40px;bottom:max(8px, env(safe-area-inset-bottom));right:max(8px, env(safe-area-inset-right))}}.admin-entry-link{color:inherit;text-underline-offset:3px;text-decoration-color:#c9c1b2;transition:color .18s}.admin-entry-link:hover{color:#315f50}.admin-auth-screen{background:radial-gradient(circle at 18% 12%,#5579671f,#0000 25%),radial-gradient(circle at 83% 88%,#b38a4e24,#0000 30%),#f3f0e8;place-items:center;min-height:100vh;padding:72px 24px 36px;display:grid;position:relative;overflow:hidden}.admin-auth-screen:before,.admin-auth-screen:after{content:"";pointer-events:none;border:1px solid #6d5d3a1a;border-radius:50%;position:absolute}.admin-auth-screen:before{width:420px;height:420px;bottom:-230px;left:-230px;box-shadow:0 0 0 55px #6d5d3a06,0 0 0 110px #6d5d3a05}.admin-auth-screen:after{width:300px;height:300px;top:-170px;right:-170px;box-shadow:0 0 0 42px #315f5006}.admin-back-link{z-index:2;color:#6f7b75;align-items:center;gap:7px;font-size:13px;text-decoration:none;display:inline-flex;position:absolute;top:28px;left:clamp(18px,4vw,54px)}.admin-back-link:hover{color:#285345}.admin-login-card{z-index:1;background:#fffdf8f5;border:1px solid #d9d2c5;border-radius:22px;width:min(100%,450px);padding:clamp(28px,5vw,44px);position:relative;box-shadow:0 24px 72px #2d373024}.admin-seal{color:#fff8e9;background:#315f50;border-radius:10px;place-items:center;width:54px;height:54px;margin-bottom:24px;display:grid;box-shadow:inset 0 0 0 3px #efddb424,0 8px 20px #315f502e}.admin-login-card .panel-kicker{color:#9a7642}.admin-login-card h1{color:#244c40;margin:8px 0 9px;font:700 36px/1.3 Noto Serif SC,serif}.admin-intro{color:#758079;margin:0 0 28px;font-size:13px;line-height:1.75}.admin-login-card form{gap:17px;display:grid}.admin-login-card label{color:#405048;gap:8px;font-size:14px;font-weight:650;display:grid}.admin-login-card input{color:#203e34;background:#fffdf8;border:1px solid #d5cfc3;border-radius:11px;width:100%;height:50px;padding:0 14px;transition:border-color .18s,box-shadow .18s}.admin-login-card input:focus{border-color:#6f9584;outline:0;box-shadow:0 0 0 4px #4a776317}.admin-login-submit{width:100%;height:50px;margin-top:3px}.admin-login-card footer{color:#96978f;text-align:center;margin-top:25px;font-size:12px}.admin-screen{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 50% 0,#fffdf8 0,#f3f0e8 45%,#ece8df 100%)}.admin-topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#faf8f2eb;border-bottom:1px solid #c9c3b7c7;grid-template-columns:1fr auto 1fr;align-items:center;min-height:78px;padding:10px clamp(18px,4vw,58px);display:grid}.admin-wordmark{color:inherit;justify-self:start;align-items:center;gap:11px;text-decoration:none;display:flex}.admin-wordmark b{color:#23463a;letter-spacing:.08em;font:700 20px/1.1 Noto Serif SC,serif;display:block}.admin-wordmark small{color:#87928c;letter-spacing:.12em;margin-top:3px;font-size:9px;display:block}.admin-heading{text-align:center}.admin-heading p{color:#8c7249;letter-spacing:.18em;margin:0 0 2px;font-size:10px;font-weight:700}.admin-heading h1{color:#315447;letter-spacing:.08em;margin:0;font:700 20px Noto Serif SC,serif}.admin-logout{justify-self:end;min-height:40px}.admin-content{width:min(1120px,100% - 36px);margin:0 auto;padding:clamp(34px,6vw,68px) 0 70px}.admin-nav{background:#fffdf8e0;border:1px solid #d9d3c8;border-radius:12px;gap:4px;width:fit-content;margin:18px auto 0;padding:4px;display:flex}.admin-nav button{color:#708078;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;min-height:38px;padding:0 15px;font-weight:650;display:inline-flex}.admin-nav button.active{color:#fffdf7;background:#315f50;box-shadow:0 4px 13px #315f5033}.admin-summary{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:25px;display:flex}.admin-summary>div:first-child>span{color:#9b7540;letter-spacing:.16em;font-size:10px;font-weight:700}.admin-summary h2{color:#2c5144;margin:6px 0;font:700 clamp(27px,4vw,38px) Noto Serif SC,serif}.admin-summary p{color:#7a857f;max-width:630px;margin:0;font-size:13px;line-height:1.7}.admin-summary-actions{flex:none;align-items:center;gap:14px;display:flex}.admin-count{border-right:1px solid #d7d1c6;justify-content:center;align-items:baseline;gap:6px;min-width:88px;padding-right:16px;display:flex}.admin-count b{color:#365c4e;font:700 29px Noto Serif SC,serif}.admin-count small{color:#8b938e;font-size:10px}.admin-error{color:#8d3e33;background:#faebe7;border:1px solid #e4c1b8;border-radius:11px;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px;padding:12px 15px;font-size:13px;display:flex}.admin-error button{color:#834137;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;flex:none;padding:4px;text-decoration:underline}.admin-user-table-wrap{min-height:260px;box-shadow:var(--shadow-sm);background:#fffdf8f5;border:1px solid #dcd6cb;border-radius:18px;overflow:hidden}.admin-user-table{border-collapse:collapse;table-layout:fixed;width:100%}.admin-user-table th{color:#718078;text-align:left;letter-spacing:.08em;background:#f1eee6;border-bottom:1px solid #ded8cd;height:51px;padding:0 22px;font-size:11px;font-weight:650}.admin-user-table th:first-child{width:32%}.admin-user-table th:nth-child(2){width:31%}.admin-user-table td{color:#526159;border-bottom:1px solid #ebe6dc;height:65px;padding:10px 22px;font-size:13px}.admin-user-table tbody tr:last-child td{border-bottom:0}.admin-user-table tbody tr:hover{background:#faf8f2}.admin-user-table code{overflow-wrap:anywhere;color:#6d725f;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.admin-user-name{color:#2f5145;overflow-wrap:anywhere;align-items:center;gap:10px;font-weight:650;display:inline-flex}.admin-user-name i{color:#426052;background:#edf2ee;border:1px solid #ccd9d1;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.admin-user-table time{font-variant-numeric:tabular-nums;white-space:nowrap}.admin-empty{color:#91a098;text-align:center;place-content:center;justify-items:center;gap:8px;min-height:250px;display:grid}.admin-empty b{color:#51665d;font:600 16px Noto Serif SC,serif}.admin-empty span{font-size:12px}.spinning{animation:.8s linear infinite admin-spin}@keyframes admin-spin{to{transform:rotate(360deg)}}.admin-room-list{box-shadow:var(--shadow-sm);background:#fffdf8f5;border:1px solid #dcd6cb;border-radius:18px;overflow:hidden}.admin-room-item{color:#405149;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ebe6dc;grid-template-columns:130px minmax(190px,1fr) repeat(3,minmax(78px,auto)) 24px;align-items:center;gap:18px;width:100%;min-height:82px;padding:15px 21px;display:grid}.admin-room-item:last-child{border-bottom:0}.admin-room-item:hover{background:#f8f6ef}.admin-room-status{color:#6f7e76;align-items:center;gap:7px;font-size:12px;font-weight:650;display:inline-flex}.admin-room-status i{background:#b3b8b4;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #828c861a}.admin-room-status.playing i{background:#4b856c;box-shadow:0 0 0 4px #4b856c21}.admin-room-status.settled i{background:#b88949}.admin-room-status.dissolved i{background:#9a9c99}.admin-room-main{gap:5px;min-width:0;display:grid}.admin-room-main b{color:#2b5043;text-overflow:ellipsis;white-space:nowrap;font:650 15px Noto Serif SC,serif;overflow:hidden}.admin-room-main code{color:#8d958f;font-size:11px}.admin-room-facts{gap:3px;display:grid}.admin-room-facts small{color:#919891;font-size:10px}.admin-room-facts b{color:#40564c;font-size:13px}.admin-sync-footnote{color:#969e98;text-align:right;margin:12px 4px 0;font-size:11px}.admin-debug-layout{width:min(1220px,100% - 36px);margin:0 auto;padding:27px 0 70px}.admin-debug-toolbar{justify-content:space-between;align-items:center;gap:16px;min-height:44px;margin-bottom:18px;display:flex}.admin-live-indicator{color:#4f7768;align-items:center;gap:7px;font-size:12px;display:inline-flex}.admin-live-indicator svg{color:#4b8b70}.admin-room-hero{box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#fffdf8,#f4f0e6);border:1px solid #d8d1c5;border-radius:18px;justify-content:space-between;align-items:center;gap:25px;padding:25px 27px;display:flex}.admin-room-hero>div:first-child>span{color:#9b7540;letter-spacing:.15em;font-size:10px;font-weight:700}.admin-room-hero h2{color:#274f42;margin:5px 0 4px;font:700 clamp(24px,4vw,34px) Noto Serif SC,serif}.admin-room-hero p{color:#7c8881;margin:0;font-size:12px}.admin-room-hero code{color:#62726a}.admin-debug-metrics{align-items:stretch;gap:8px;display:flex}.admin-debug-metrics>span{border-left:1px solid #d9d2c6;gap:3px;min-width:82px;padding:10px 13px;display:grid}.admin-debug-metrics small{color:#929991;font-size:10px}.admin-debug-metrics b{color:#36594d;font-size:15px}.admin-debug-note{color:#557167;background:#edf3ef;border:1px solid #d6ded8;border-radius:11px;align-items:flex-start;gap:9px;margin:14px 0 20px;padding:11px 14px;font-size:12px;line-height:1.6;display:flex}.admin-debug-note svg{flex:none;margin-top:1px}.admin-debug-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.admin-debug-card{box-shadow:var(--shadow-sm);background:#fffdf8fa;border:1px solid #dcd6cb;border-radius:16px;overflow:hidden}.admin-debug-card-wide{grid-column:1/-1}.admin-debug-card>header{color:#557166;background:#f3f0e8;border-bottom:1px solid #e3ddd2;justify-content:space-between;align-items:center;gap:15px;min-height:62px;padding:13px 18px;display:flex}.admin-debug-card header span{color:#9d7a47;letter-spacing:.13em;font-size:9px;font-weight:700}.admin-debug-card h3{color:#345649;margin:3px 0 0;font:650 16px Noto Serif SC,serif}.admin-card-count{background:#e3ebe6;border-radius:50%;place-items:center;min-width:31px;height:31px;display:grid;color:#315f50!important;font-size:12px!important}.admin-hand-grid{grid-template-columns:repeat(4,1fr);gap:13px;padding:18px;display:grid}.admin-hand{background:#faf8f2;border:1px solid #e3ddd2;border-radius:13px;min-width:0;padding:14px}.admin-hand-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:11px;display:flex}.admin-hand-title b{color:#345449;font-size:13px}.admin-hand-title span{color:#9a9f9b;font-size:10px}.admin-hand-title span.is-locked{color:#9a6f31;font-weight:700}.admin-card-row{align-items:center;gap:6px;min-height:58px;display:flex}.admin-card-row em{color:#a0a49f;font-size:11px;font-style:normal}.admin-playing-card{color:#263b34;background:#fff;border:1px solid #d4d0c8;border-radius:7px;align-content:space-between;width:40px;height:56px;padding:4px 5px;display:grid;box-shadow:0 3px 7px #363a3517}.admin-playing-card.red{color:#b2483d}.admin-playing-card b{font:700 15px/1 ui-monospace,monospace}.admin-playing-card small{text-align:right;font-size:15px;line-height:1}.admin-combination{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.admin-combination span{color:#6f674f;background:#eee8dc;border-radius:6px;padding:4px 7px;font-size:10px}.admin-player-list,.admin-bet-list{padding:5px 18px 10px}.admin-player-row,.admin-bet-row{border-bottom:1px solid #ebe6dd;align-items:center;gap:11px;min-height:55px;display:flex}.admin-player-row:last-child,.admin-bet-row:last-child{border-bottom:0}.admin-player-row>i{background:#bbbdb9;border-radius:50%;flex:none;width:8px;height:8px}.admin-player-row>i.online{background:#4a876d;box-shadow:0 0 0 4px #4a876d1c}.admin-player-row>span,.admin-bet-row>span{flex:1;gap:2px;min-width:0;display:grid}.admin-player-row b,.admin-bet-row b{color:#3c564c;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.admin-player-row small,.admin-bet-row small{color:#949a95;font-size:10px}.admin-player-row strong,.admin-bet-row strong{color:#8b6940;font-size:13px}.admin-inline-empty{color:#9aa19c;place-items:center;min-height:120px;font-size:12px;display:grid}@media (width<=900px){.admin-room-item{grid-template-columns:110px 1fr repeat(2,72px) 22px;gap:12px}.admin-room-item .admin-room-facts:nth-of-type(4){display:none}.admin-hand-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.admin-auth-screen{align-items:start;padding:70px 16px 30px}.admin-back-link{top:22px;left:18px}.admin-login-card{border-radius:18px;margin-top:22px;padding:27px 22px}.admin-login-card h1{font-size:31px}.admin-topbar{grid-template-columns:1fr auto;min-height:67px;padding:9px 14px}.admin-wordmark small{display:none}.admin-wordmark b{font-size:17px}.admin-heading{display:none}.admin-logout{min-height:38px;padding:0 12px}.admin-content{width:min(100% - 24px,1120px);padding:32px 0 45px}.admin-nav{margin-top:12px}.admin-nav button{padding:0 12px;font-size:12px}.admin-summary{display:block}.admin-summary p{font-size:12px}.admin-summary-actions{justify-content:space-between;margin-top:20px}.admin-count{justify-content:flex-start}.admin-user-table-wrap{box-shadow:none;background:0 0;border:0;overflow:visible}.admin-user-table,.admin-user-table tbody,.admin-user-table tr,.admin-user-table td{width:100%;display:block}.admin-user-table thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.admin-user-table tr{background:#fffdf8f7;border:1px solid #ddd7cc;border-radius:14px;margin-bottom:11px;padding:15px 16px;box-shadow:0 5px 18px #3037300e}.admin-user-table td{text-align:right;overflow-wrap:anywhere;border:0;height:auto;min-height:35px;padding:7px 0 7px 92px;position:relative}.admin-user-table td:before{content:attr(data-label);color:#90968f;font-size:11px;position:absolute;top:9px;left:0}.admin-user-name{justify-content:flex-end}.admin-user-table time{white-space:normal}.admin-empty{background:#fffdf8;border:1px solid #ddd7cc;border-radius:14px}.admin-room-list{box-shadow:none;background:0 0;border:0;overflow:visible}.admin-room-item{background:#fffdf8;border-radius:14px;grid-template-columns:1fr 1fr 20px;gap:11px;min-height:0;margin-bottom:11px;padding:15px;border:1px solid #ddd7cc!important}.admin-room-status,.admin-room-main{grid-column:1/-1}.admin-room-facts{border-top:1px solid #eee9df;padding-top:8px}.admin-room-item .admin-room-facts:nth-of-type(4){display:grid}.admin-room-item>svg{grid-area:3/3;align-self:center}.admin-debug-layout{width:min(100% - 24px,1220px);padding-top:18px}.admin-debug-toolbar{flex-wrap:wrap}.admin-live-indicator{order:3;justify-content:center;width:100%}.admin-room-hero{padding:20px;display:block}.admin-debug-metrics{margin-top:18px}.admin-debug-metrics>span{flex:1;min-width:0;padding:8px}.admin-debug-grid{grid-template-columns:1fr}.admin-debug-card-wide{grid-column:auto}.admin-hand-grid{grid-template-columns:1fr;padding:12px}}@media (prefers-reduced-motion:reduce){.spinning{animation-duration:1.8s}}
