:root{--color-ink: #fff6e6;--color-ink-muted: rgba(255, 244, 220, .72);--color-ink-soft: rgba(255, 244, 220, .56);--color-gold: #f2c36b;--color-gold-bright: #ffe4a3;--color-green: #49e46a;--color-red: #c5212f;--color-black-card: #1f2532;--color-surface-strong: rgba(8, 10, 15, .94);--color-surface: rgba(11, 14, 21, .78);--color-surface-soft: rgba(255, 255, 255, .055);--color-border: rgba(255, 220, 152, .26);--shadow-panel: 0 22px 60px rgba(0, 0, 0, .42);--shadow-card: 0 9px 20px rgba(0, 0, 0, .34);--radius-panel: 24px;--radius-card: 14px;--hand-width: clamp(660px, 65vw, 980px);--hand-height: clamp(128px, 17vh, 170px);--hand-card-width: clamp(34px, 3.15vw, 54px);--hand-card-height: clamp(58px, 7.1vw, 104px);--reference-ui-width: 1672;--reference-ui-height: 941;color:var(--color-ink);background:#06080d;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;min-width:0;height:100%;margin:0;overflow:hidden}body{min-width:320px;background:radial-gradient(circle at 50% 8%,rgba(255,214,124,.12),transparent 34rem),linear-gradient(180deg,#080a0f,#05070b)}button{min-height:2.5rem;border:1px solid rgba(255,222,152,.38);border-radius:999px;padding:.55rem .9rem;color:var(--color-ink);background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 38%),linear-gradient(180deg,#2d323deb,#0e1119f2);box-shadow:inset 0 1px #ffffff24,0 10px 24px #00000042;cursor:pointer;font:inherit;font-weight:900;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,opacity .16s ease}button:hover:not(:disabled){border-color:#ffe7b1a8;transform:translateY(-1px)}button:focus-visible{outline:3px solid rgba(103,235,126,.76);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.42;transform:none}h1,h2,h3,p{margin:0}ul{margin:0;padding-left:1.15rem}.eyebrow{color:var(--color-gold);font-size:calc(.76rem * var(--page-text-scale, 1));font-weight:900;letter-spacing:.08em;text-transform:uppercase}.primary-game-button,.launch-actions .primary-game-button{border-color:#ffe7b1b8;color:#251304;background:linear-gradient(180deg,#fff9ddf5,#e8ac49f5 54%,#b45d14fa);box-shadow:inset 0 1px #ffffff8c,0 14px 34px #be5f1852;text-shadow:0 1px 0 rgba(255,244,198,.35)}.danger-button{border-color:#ff977470;background:linear-gradient(180deg,#803727eb,#341715f5)}.launch-screen{position:relative;display:block;--launch-card-scale: 1;--launch-text-scale: 1;--launch-card-width: 514.5px;--launch-card-min-height: 478px;--launch-card-left: 18px;--launch-card-max-height: calc(100dvh - max(18px, 5dvh)) ;--launch-card-top: 50%;width:100vw;height:100dvh;min-height:0;overflow:hidden;background:url(/assets/active/branding/ai-guandan-home-hero-21x9.png?v=20260622),#07090d;background-position:center,center;background-repeat:no-repeat,no-repeat;background-size:cover,auto}.launch-screen:before{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 11%),radial-gradient(ellipse at 72% 88%,rgba(184,37,31,.26),transparent 34rem);content:""}.launch-card{position:absolute;top:var(--launch-card-top);left:var(--launch-card-left);z-index:1;width:var(--launch-card-width);min-height:var(--launch-card-min-height);max-height:var(--launch-card-max-height, calc(100dvh - 36px) );margin-left:0;overflow:auto;border:1px solid rgba(255,226,169,.28);border-radius:calc(24px * var(--launch-card-scale));padding:calc(29.4px * var(--launch-card-scale)) calc(26.5px * var(--launch-card-scale));color:var(--color-ink);background:radial-gradient(circle at 0% 0%,rgba(255,216,148,.12),transparent 18rem),linear-gradient(145deg,#0a0c12eb,#26140ccc),#06080de0;box-shadow:0 calc(22px * var(--launch-card-scale)) calc(60px * var(--launch-card-scale)) #0000006b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translateY(-50%)}.launch-card h1{max-width:9ch;margin-top:calc(5.6px * var(--launch-card-scale));color:var(--color-gold-bright);font-size:calc(54px * var(--launch-text-scale));line-height:.94;letter-spacing:-.035em;text-shadow:0 8px 34px rgba(0,0,0,.72)}.tagline{margin-top:calc(12.8px * var(--launch-card-scale));color:#fff3d1;font-size:calc(19px * var(--launch-text-scale));font-weight:900;letter-spacing:.02em}.launch-copy{max-width:58ch;margin-top:calc(10.5px * var(--launch-card-scale));color:#fff4dcd6;font-size:calc(18px * var(--launch-text-scale));line-height:1.52}.launch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(12.5px * var(--launch-card-scale));margin-top:calc(12.9px * var(--launch-card-scale))}.launch-grid article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.42em .58em;align-content:start;border:1px solid rgba(255,226,169,.16);border-radius:calc(20px * var(--launch-card-scale));padding:calc(10px * var(--launch-card-scale));background:#ffffff0e}.launch-grid span{display:inline-grid;width:2.7em;height:2.7em;place-items:center;border-radius:999px;color:#23160b;background:linear-gradient(180deg,#ffe3a2,#c88a2f);font-size:calc(10px * var(--launch-text-scale));font-weight:900}.launch-grid h2{align-self:center;color:#ffe6ae;font-size:calc(17px * var(--launch-text-scale))}.launch-grid p{grid-column:1 / -1;color:#fff4dcbd;font-size:calc(15px * var(--launch-text-scale));line-height:1.45}.launch-error{margin-top:calc(10.5px * var(--launch-card-scale));border-left:3px solid #ff9b78;padding:calc(5px * var(--launch-card-scale)) calc(8px * var(--launch-card-scale));color:#ffd8c9;background:#7522164d;line-height:1.4}.launch-safety{margin-top:calc(10.5px * var(--launch-card-scale));border-left:3px solid rgba(242,195,107,.86);padding:calc(2.9px * var(--launch-card-scale)) 0 calc(2.9px * var(--launch-card-scale)) calc(12px * var(--launch-card-scale));color:#fff4dcb8;font-size:calc(14.2px * var(--launch-text-scale));line-height:1.45}.model-picker{display:grid;gap:calc(7px * var(--launch-card-scale));margin-top:calc(11px * var(--launch-card-scale))}.model-picker>label{color:#ffe6ae;font-size:calc(14px * var(--launch-text-scale));font-weight:800}.model-picker select{width:100%;min-height:calc(42px * var(--launch-card-scale));border:1px solid rgba(255,226,169,.28);border-radius:calc(10px * var(--launch-card-scale));padding:0 calc(11px * var(--launch-card-scale));color:#fff3d1;background:#07090de0;font:inherit}.launch-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(12px * var(--launch-card-scale));margin-top:calc(13.9px * var(--launch-card-scale))}.launch-actions button{min-height:calc(49.7px * var(--launch-card-scale));padding-inline:calc(11.5px * var(--launch-card-scale));font-size:calc(18.5px * var(--launch-text-scale));white-space:nowrap}.launch-card .eyebrow{font-size:calc(9.5px * var(--launch-text-scale))}.mobile-orientation-prompt-layer{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#0000009e}.mobile-orientation-prompt{display:grid;min-width:180px;justify-items:center;gap:.72rem;border:1px solid rgba(255,226,169,.42);border-radius:18px;padding:1.05rem 1.15rem;color:#fff6df;background:linear-gradient(180deg,#171b24f0,#080a0ff5),#06080df0;box-shadow:0 18px 46px #0000006b;text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-rotate-demo{display:grid;width:68px;height:52px;place-items:center}.mobile-rotate-phone{position:relative;display:block;width:28px;height:46px;border:3px solid rgba(255,230,174,.92);border-radius:9px;background:linear-gradient(180deg,#ffe7b133,#ffffff0a),#ffffff14;box-shadow:0 0 18px #f2c36b38,inset 0 0 0 1px #ffffff1f;animation:mobile-phone-rotate 1.8s ease-in-out infinite;transform-origin:50% 50%}.mobile-rotate-phone:after{position:absolute;bottom:4px;left:50%;width:5px;height:5px;border-radius:999px;background:#ffe6aed1;content:"";transform:translate(-50%)}.mobile-orientation-prompt strong{color:#ffe6ae;font-size:1.08rem;line-height:1}.mobile-orientation-prompt button{min-height:2.1rem;padding:.34rem .96rem;font-size:.9rem}.mobile-orientation-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.mobile-orientation-actions button:last-child{border-color:#ffd894d1;color:#5b2c08;background:linear-gradient(180deg,#ffe6abfa,#cf8e39fa 58%,#a15b1afa)}.mobile-orientation-actions button:disabled{cursor:progress;opacity:.72}.game-shell{--page-text-scale: 1;width:100vw;height:100dvh;overflow:hidden;background:radial-gradient(circle at 44% 16%,rgba(255,216,148,.1),transparent 30rem),linear-gradient(180deg,#06080d,#0b101a 54%,#05070b)}.game-screen{display:grid;width:100%;height:100%;min-width:0;grid-template-columns:minmax(0,80fr) minmax(280px,20fr);grid-template-rows:100%;overflow:hidden;background-color:#05070b;background-image:url(/assets/active/backgrounds/main-game-background-coach-preview.png);background-position:center;background-size:100% 100%;background-repeat:no-repeat}.game-stage-shell{position:relative;width:100%;min-width:0;height:100%;overflow:hidden;isolation:isolate;background:transparent}.game-stage-shell:before{position:absolute;inset:0;z-index:-2;pointer-events:none;background-image:none;background-position:center;background-size:cover;background-repeat:no-repeat;content:""}.game-stage-shell:after{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(4,6,10,.1),transparent 18% 82%,rgba(4,6,10,.16)),linear-gradient(180deg,rgba(0,0,0,.1),transparent 22% 74%,rgba(0,0,0,.18));content:""}.coach-dock{position:relative;z-index:20;display:grid;height:100%;min-width:0;min-height:0;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;border-left:1px solid rgba(226,170,86,.42);padding:clamp(12px,1.05vw,20px);background:radial-gradient(circle at 50% 0%,rgba(255,216,148,.08),transparent 14rem),linear-gradient(180deg,#121419e0,#080a0ff0 58%,#06070bfa);box-shadow:-14px 0 34px #00000052,inset 1px 0 #ffebbe0f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.coach-dock-header{min-width:0;border-bottom:1px solid rgba(226,170,86,.18);padding-bottom:clamp(12px,1.1vw,18px)}.coach-dock-header-row{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:.55rem}.coach-dock-header-row .eyebrow{min-width:0;margin:0}.layout-debug-toggle{flex:0 0 auto;min-height:30px;border:1px solid rgba(226,170,86,.48);border-radius:8px;padding:.28rem .5rem;color:#ffe6ad;background:#ffd27714;font-size:.875rem;line-height:1.1;white-space:nowrap}.layout-debug-toggle:hover,.layout-debug-toggle[aria-pressed=true]{border-color:#ffe191e6;background:#ffd2772e}.coach-dock-header strong{display:block;margin-top:.28rem;color:#fff1ce;font-size:calc(1.08rem * var(--page-text-scale));line-height:1.45}.control-bar{min-width:0;margin-top:clamp(12px,1.1vw,18px)}.control-actions{display:flex;min-width:0;gap:.55rem;flex-wrap:wrap}.control-actions button{min-width:0;flex:1 1 7rem;padding-inline:.7rem;font-size:calc(.98rem * var(--page-text-scale))}.coach-dock .control-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.coach-dock .control-actions button{width:100%;min-width:0;min-height:clamp(38px,4.5vh,52px);padding:.38rem .35rem;font-size:calc(.98rem * var(--page-text-scale));white-space:nowrap}.side-panel-stack{display:grid;min-width:0;min-height:0;align-content:start;gap:clamp(10px,1vw,16px);overflow:auto;padding-top:clamp(12px,1.1vw,18px);scrollbar-width:thin}.game-shell[data-coach-open=false] .coach-panel{display:none}.match-hud{position:absolute;top:2.1%;left:1.1%;z-index:8;display:grid;width:var(--hud-width, clamp(178px, 16vw, 285px));grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid rgba(224,165,72,.42);border-radius:var(--hud-radius, 18px);background:linear-gradient(90deg,#080a10ad,#21181194);box-shadow:0 18px 46px #00000061,inset 0 0 0 1px #ffffff0a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transform:scale(var(--hud-focus-scale, 1.2));transform-origin:top left}.match-hud>div{display:grid;min-width:0;justify-items:center;border-right:1px solid rgba(255,230,187,.15);padding:clamp(6px,.62vw,11px) clamp(8px,.78vw,14px);text-align:center}.match-hud>div:last-child{border-right:0}.match-hud .eyebrow{margin-bottom:.22rem;font-size:var(--hud-label-size, clamp(.54rem, .66vw, .78rem));line-height:1}.match-hud strong{display:block;color:#fff8ed;font-size:var(--hud-value-size, clamp(.9rem, 1.05vw, 1.35rem));line-height:1}.game-table{position:absolute;inset:0;z-index:2;min-height:0;overflow:hidden}.table-scene{position:absolute;inset:0}.player-panel{position:absolute;z-index:5;width:var(--player-panel-width, clamp(128px, 12vw, 210px));min-width:0;pointer-events:none;transform:scale(var(--player-panel-focus-scale, 1.3));transform-origin:top left}.player-panel[data-seat=top]{top:var(--partner-y, clamp(13%, 15vh, 18%));left:var(--partner-x, 58%)}.player-panel[data-seat=left]{top:var(--left-y, clamp(24%, 27vh, 30%));left:var(--left-x, 25%)}.player-panel[data-seat=right]{top:var(--right-y, clamp(27%, 30vh, 33%));right:auto;left:var(--right-x, 83%)}.player-identity{display:grid;min-width:0;gap:.22rem;border:1px solid rgba(226,181,103,.46);border-radius:var(--player-panel-radius, 12px);padding:var(--player-panel-pad-y, 7px) var(--player-panel-pad-x, 10px);overflow:hidden;background:linear-gradient(135deg,#06090fb8,#10121994),#06080e8f;box-shadow:0 14px 34px #00000052,inset 0 0 0 1px #ffffff09;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.player-panel.active .player-identity{border-color:#ffdb8be6;box-shadow:0 0 0 1px #ffe5aa2e inset,0 0 24px #ffbe5252,0 14px 30px #0000005c}.player-panel[data-low-hand=true] .player-identity{border-color:#ff695be0;box-shadow:0 0 0 1px #ffce922e inset,0 0 24px #ff4c3f5c,0 14px 30px #0000005c;animation:low-hand-glow 1.6s ease-in-out infinite}.player-title,.player-panel h2,.player-panel p,.player-panel strong,.player-status-badge,.finish-rank{min-width:0;max-width:100%;overflow:hidden;line-height:1.18;text-overflow:ellipsis}.player-title{color:var(--color-gold);font-size:var(--player-title-size, clamp(.58rem, .68vw, .8rem));font-weight:900;white-space:nowrap}.player-panel h2{color:#fff4df;font-size:var(--player-name-size, clamp(.72rem, .88vw, 1.08rem));font-weight:900;white-space:nowrap}.player-name-row{display:flex;min-width:0;align-items:center;gap:.42rem}.player-name-row h2{flex:1 1 auto}.player-badges{display:flex;min-width:0;flex-wrap:wrap;gap:.24rem}.player-panel strong,.player-status-badge,.finish-rank{width:fit-content;border:1px solid rgba(255,216,148,.28);border-radius:999px;padding:.06rem .34rem;color:#ffe09a;background:#04070c6b;font-size:var(--player-meta-size, clamp(.5rem, .6vw, .72rem));font-weight:900;white-space:nowrap}.player-status-badge:before{content:attr(aria-label)}.player-status-badge:empty:before{content:attr(aria-label)}.slot-label,.pass-chip{position:relative;z-index:2;color:var(--color-ink-muted);font-size:var(--action-marker-font, clamp(.56rem, .68vw, .78rem));font-weight:800}.slot-cards{position:relative;z-index:1;display:flex;max-width:100%;justify-content:center}.slot-cards .playing-card+.playing-card{margin-left:calc(-1 * var(--played-card-overlap, 1.15rem))}.slot-cards[data-card-density=dense] .playing-card+.playing-card{margin-left:calc(-1 * var(--played-card-overlap-dense, 1.45rem))}.pass-chip{color:#fff1ca}.animated-pass{display:inline-grid;min-width:3.5em;place-items:center;border-radius:999px;padding:.18rem .55rem;background:linear-gradient(180deg,#ffe8aa2e,#ffad3f1a);animation:pass-pulse .86s ease-out}.combo-name{position:relative;z-index:2;min-width:0;max-width:100%;overflow:hidden;color:#ffdc83;font-size:var(--combo-name-size, clamp(.52rem, .62vw, .74rem));font-weight:900;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.idle-slot-name{color:#ffe09ad1}.seat-action-markers{position:absolute;inset:0;z-index:4;pointer-events:none}.seat-action-marker{position:absolute;display:grid;width:var(--action-marker-max-width, clamp(154px, 15vw, 320px));min-width:var(--action-marker-min-width, clamp(92px, 7.6vw, 150px));max-width:var(--action-marker-max-width, clamp(154px, 15vw, 320px));justify-items:center;gap:var(--action-marker-gap, .16rem);border:1px solid rgba(255,230,187,.16);border-radius:var(--action-marker-radius, 14px);padding:var(--action-marker-pad-y, .3rem) var(--action-marker-pad-x, .42rem) calc(var(--action-marker-pad-y, .3rem) + 1px);background:linear-gradient(180deg,#141b279e,#05080e75),#070b1261;box-shadow:0 10px 24px #0000003d,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);overflow:hidden;transform-origin:top left}.seat-action-marker:after{position:absolute;inset:0;border-radius:inherit;pointer-events:none;content:""}.seat-action-marker[data-lead=true]{border-color:#ffda80e6;box-shadow:0 0 0 1px #ffecb338 inset,0 0 22px #ffbc416b,0 10px 24px #0000004d}.seat-action-marker[data-first-finisher=true],.seat-action-marker[data-finished-rank="2"]{width:calc(var(--action-marker-max-width, 154px) + 24px);min-width:calc(var(--action-marker-max-width, 154px) + 24px);max-width:calc(var(--action-marker-max-width, 154px) + 24px);min-height:calc(var(--action-marker-min-height, 52px) + 16px)}.seat-action-marker[data-first-finisher=true]{border-color:#ffe174f2;animation:first-finisher-ring 1.8s linear infinite}.seat-action-marker[data-first-finisher-celebration=true],.seat-action-marker[data-finished-rank="2"]{z-index:7;border-color:#ffe88ffa;background:radial-gradient(circle at 50% 0%,rgba(255,244,184,.26),transparent 4.8rem),linear-gradient(135deg,#56340dc7,#150d08ad 58%,#08080d9e),#090a0f9e;box-shadow:0 0 0 1px #fff5bd47 inset,0 0 30px #ffcd4b80,0 16px 34px #00000061;animation:first-finisher-ring 1.8s linear infinite,first-finish-lift .42s cubic-bezier(.2,.84,.26,1)}.seat-action-marker[data-first-finisher-celebration=true]:after,.seat-action-marker[data-finished-rank="2"]:after{background:linear-gradient(110deg,transparent 0 32%,rgba(255,255,219,.38) 46%,transparent 62% 100%);mix-blend-mode:screen;transform:translate(-120%);animation:first-finish-sweep 1.45s ease-out 1 both}.seat-action-marker[data-finished-rank="2"]{border-color:#dce6f5fa;background:radial-gradient(circle at 50% 0%,rgba(240,248,255,.24),transparent 4.8rem),linear-gradient(135deg,#414b5cd1,#121720b8 58%,#080a0fad),#090a0f9e;box-shadow:0 0 0 1px #f2f7ff47 inset,0 0 30px #c3d7ee75,0 16px 34px #00000061;animation:second-finisher-ring 1.8s linear infinite,first-finish-lift .42s cubic-bezier(.2,.84,.26,1)}.seat-action-marker[data-finished-rank="2"]:after{background:linear-gradient(110deg,transparent 0 32%,rgba(240,248,255,.38) 46%,transparent 62% 100%)}.first-finish-callout{position:absolute;inset:50% .4rem auto;z-index:3;display:grid;min-width:0;max-width:calc(100% - .56rem);justify-items:center;gap:.08rem;border:1px solid rgba(255,235,158,.34);border-radius:999px;padding:.22rem .46rem .24rem;background:linear-gradient(180deg,#2d1c09d1,#0e0b09c2),#0a0908c7;box-shadow:0 0 16px #ffcb4252,inset 0 1px #ffffff1f;text-align:center;transform:translateY(-50%)}.first-finish-callout strong,.first-finish-callout span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.first-finish-callout strong{color:#fff8db;font-size:var(--first-finish-title-size, clamp(.54rem, .68vw, .8rem));font-weight:1000;line-height:1.05;text-shadow:0 0 10px rgba(255,211,91,.72),0 2px 10px rgba(0,0,0,.6)}.first-finish-callout span{color:#ffe08d;font-size:var(--first-finish-subtitle-size, clamp(.42rem, .5vw, .58rem));font-weight:900;line-height:1.1}.seat-action-marker[data-finished-rank="2"] .first-finish-callout{border-color:#dce8f87a;background:linear-gradient(180deg,#505b6cdb,#171c26d1),#0a0d13d1;box-shadow:0 0 16px #bed2eb57,inset 0 1px #ffffff29}.seat-action-marker[data-finished-rank="2"] .first-finish-callout strong{color:#f3f6fb;text-shadow:0 0 10px rgba(205,220,240,.72),0 2px 10px rgba(0,0,0,.6)}.seat-action-marker[data-finished-rank="2"] .first-finish-callout span{color:#d2deec}.seat-action-marker[data-player=partner]{top:var(--partner-action-y, 51%);left:var(--partner-action-x, 52%);transform:translate(-50%,-50%) scale(var(--action-marker-focus-scale, 1.3))}.seat-action-marker[data-player=leftOpponent]{top:var(--left-action-y, 58%);left:var(--left-action-x, 36%);transform:translate(-50%,-50%) scale(var(--action-marker-focus-scale, 1.3))}.seat-action-marker[data-player=rightOpponent]{top:var(--right-action-y, 58%);left:var(--right-action-x, 69%);transform:translate(-50%,-50%) scale(var(--action-marker-focus-scale, 1.3))}.seat-action-marker[data-player=self]{top:var(--self-action-y, 72%);left:var(--self-action-x, 52%);transform:translate(-50%,-50%) scale(var(--action-marker-focus-scale, 1.3))}.game-shell[data-device=desktop] .player-panel[data-seat=top]{translate:39px -118px}.game-shell[data-device=desktop] .player-panel[data-seat=right]{translate:4px -120px}.game-shell[data-device=desktop] .player-panel[data-seat=left]{translate:95px -96px}.game-shell[data-device=desktop] .seat-action-marker[data-player=partner]{translate:32px -110px}.game-shell[data-device=desktop] .seat-action-marker[data-player=rightOpponent]{translate:1px -75px}.game-shell[data-device=desktop] .seat-action-marker[data-player=leftOpponent]{translate:79px -77px}.game-shell[data-device=desktop] .seat-action-marker[data-player=self]{translate:14px -108px}.game-shell[data-device=desktop] .card-grid{translate:0 20px}.player-hand{position:absolute;bottom:var(--hand-bottom, clamp(24px, 3.5vh, 42px));left:50%;z-index:1000;display:grid;width:min(calc(var(--hand-width) + clamp(24px,3vw,48px)),calc(100% - clamp(24px,3vw,48px)));height:var(--hand-height);min-height:0;transform:translate(-50%);pointer-events:none}.player-hand>*{pointer-events:auto}.card-grid{position:relative;display:block;width:100%;height:100%;min-width:0;overflow:visible;padding:var(--hand-top-padding, clamp(36px, 4.8vh, 52px)) clamp(4px,.5vw,10px) 0}.card-grid[data-organized=true]{display:flex;align-items:flex-end;justify-content:center;gap:var(--hand-group-gap, 1px);--hand-card-width: var(--organized-card-width, 76px);--hand-card-height: var(--organized-card-height, 112px)}.card-grid>.playing-card{position:absolute;bottom:0;left:calc(50% + var(--card-row-offset, 0%));z-index:var(--stack-index, 10);transform:translate(var(--card-row-shift, -50%))}.card-grid>.playing-card:disabled{cursor:default;opacity:1;transform:translate(var(--card-row-shift, -50%))}.organized-card-group{position:relative;bottom:auto;left:auto;flex:0 0 var(--hand-card-width);z-index:var(--hand-group-stack-index, 20);width:var(--hand-card-width);height:calc(var(--hand-card-height) + var(--hand-group-extra-height, 0px));transform:none}.organized-card-group>.playing-card{position:absolute;top:var(--hand-group-card-offset, 0px);left:0;z-index:calc(var(--stack-index, 10) + var(--hand-group-stack-index, 20));transform:none}.organized-card-group>.playing-card:hover:not(:disabled){transform:translateY(-4px)}.organized-card-group>.playing-card.selected,.organized-card-group>.playing-card.selected:hover{z-index:calc(var(--stack-index, 10) + var(--hand-group-stack-index, 20));transform:none}.organized-card-group>.playing-card:disabled{cursor:default;opacity:1;transform:none}.playing-card{position:relative;display:grid;flex:0 0 auto;width:var(--hand-card-width);min-width:var(--hand-card-width);height:var(--hand-card-height);place-items:center;border:1px solid rgba(70,55,38,.34);border-radius:var(--card-radius, clamp(6px, .52vw, 10px));padding:clamp(.12rem,.22vw,.28rem);color:var(--color-black-card);background:linear-gradient(90deg,#fffffffa,#f4efe6fa),#f8f2e8;box-shadow:var(--shadow-card),inset 0 0 0 1px #ffffff8c;font:inherit;transform-origin:50% 100%;transition:box-shadow .16s ease,transform .16s ease}.playing-card:hover:not(:disabled),.playing-card.selected{transform:translate(var(--card-row-shift, 0)) translateY(clamp(-18px,-2.6vh,-10px))}.playing-card:hover:not(:disabled),.playing-card.selected:hover{z-index:350}.playing-card.selected{z-index:var(--selected-stack-index, 260);box-shadow:0 0 0 2px #49e46ab8,0 18px 34px #0000006b,inset 0 0 0 1px #ffffffb3}.playing-card.red-suit,.joker-card[data-rank=BJ]{color:var(--color-red)}.playing-card.black-suit{color:var(--color-black-card)}.playing-card.compact{width:var(--compact-card-width, clamp(22px, 2.2vw, 36px));min-width:var(--compact-card-width, clamp(22px, 2.2vw, 36px));height:var(--compact-card-height, clamp(34px, 3.4vw, 56px));border-radius:6px}.card-corner{position:absolute;display:grid;justify-items:center;font-weight:900;line-height:1}.card-corner.top{top:7%;left:8%}.card-corner.bottom{right:8%;bottom:7%;transform:rotate(180deg)}.card-corner span:first-child{font-size:var(--card-rank-size, clamp(.72rem, 1vw, 1.25rem))}.card-corner span:last-child{font-size:var(--card-index-suit-size, clamp(.56rem, .82vw, 1rem))}.card-suit-main{font-size:var(--card-main-suit-size, clamp(1.35rem, 2.1vw, 2.8rem));line-height:1}.playing-card.compact .card-corner span:first-child,.playing-card.compact .joker-letter-stack{font-size:var(--compact-card-rank-size, clamp(.42rem, .55vw, .7rem))}.playing-card.compact .card-corner span:last-child{font-size:var(--compact-card-suit-size, clamp(.36rem, .48vw, .62rem))}.playing-card.compact .card-suit-main{font-size:var(--compact-card-main-suit-size, clamp(.82rem, 1vw, 1.35rem))}.joker-card{color:#20232b;overflow:hidden}.joker-reference-face{position:absolute;inset:0;display:block;border-radius:inherit;background-position:center;background-repeat:no-repeat;background-size:cover}.joker-reference-small{background-image:url(/assets/active/cards/joker-sj-reference.png)}.joker-reference-big{background-image:url(/assets/active/cards/joker-bj-reference.png)}.hand-control-dock{position:absolute;top:var(--hand-control-top, clamp(-34px, -3.8vh, -24px));left:var(--hand-control-left, 67%);z-index:9;display:flex;width:auto;min-width:0;align-items:center;justify-content:flex-end;gap:var(--hand-control-gap, clamp(7px, .75vw, 12px));border:0;border-radius:0;padding:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transform:scale(var(--hand-control-focus-scale, 1.5));transform-origin:top left}.player-hand[data-organized=false] .hand-control-dock{translate:var(--hand-control-offset-x, 48px) var(--hand-control-scattered-offset-y, -28px)}.player-hand[data-organized=true] .hand-control-dock{translate:var(--hand-control-offset-x, 48px) var(--hand-control-organized-offset-y, -84px)}.organize-hand-button{position:static;z-index:auto;display:inline-flex;min-width:var(--hand-control-width, clamp(62px, 5.8vw, 86px));min-height:var(--hand-control-height, clamp(30px, 3.8vh, 38px));align-items:center;justify-content:center;gap:.35rem;border-color:#ffd894d1;padding:.24rem .72rem;color:#5b2c08;background:linear-gradient(180deg,#ffe6abfa,#cf8e39fa 58%,#a15b1afa);box-shadow:inset 0 1px #ffffff73,0 8px 18px #8f4f1847;font-size:var(--hand-control-font, clamp(.78rem, .86vw, .98rem));letter-spacing:.08em}.hand-control-dock .organize-hand-button{position:static;min-width:var(--hand-control-width, clamp(62px, 5.8vw, 86px));min-height:var(--hand-control-height, clamp(30px, 3.8vh, 38px));border-radius:999px}.organize-hand-button[aria-pressed=true]{border-color:#6bef81e6;color:#ecffed;background:linear-gradient(180deg,#53c269fa,#227b39fa 58%,#114b23fa);box-shadow:inset 0 1px #ffffff52,0 8px 18px #0e502057}.hand-control-dock .control-actions{display:flex;gap:var(--hand-control-gap, clamp(7px, .75vw, 12px));flex-wrap:nowrap}.hand-control-dock .control-actions button{min-width:var(--hand-control-width, clamp(62px, 5.8vw, 86px));min-height:var(--hand-control-height, clamp(30px, 3.8vh, 38px));border-color:#7091ffc2;border-radius:999px;padding:.24rem .72rem;color:#fff8df;background:linear-gradient(180deg,#6c97fff5,#2853d5f5 58%,#14319bfa);box-shadow:inset 0 1px #fff6,0 8px 18px #0c29844d;font-size:var(--hand-control-font, clamp(.78rem, .86vw, .98rem));letter-spacing:.08em}.hand-control-dock .control-actions button:first-child{border-color:#ffd894d1;color:#5b2c08;background:linear-gradient(180deg,#ffe6abfa,#cf8e39fa 58%,#a15b1afa);box-shadow:inset 0 1px #ffffff73,0 8px 18px #8f4f1847}.self-card-count{justify-self:start;border-radius:999px;padding:.22rem .58rem;background:linear-gradient(180deg,#ffd67beb,#cb852aeb);box-shadow:0 6px 14px #00000038;color:#5b2c08;font-size:var(--hand-count-font, clamp(.68rem, .74vw, .86rem));font-weight:900;white-space:nowrap;text-shadow:0 1px 0 rgba(255,244,198,.3)}.player-hand[data-low-hand=true] .self-card-count{color:#fff4e9;background:linear-gradient(180deg,#df4840fa,#8e231ffa);box-shadow:0 0 0 1px #ffe0b933 inset,0 0 24px #ff4c3f6b,0 8px 18px #0000004d;animation:low-hand-glow 1.6s ease-in-out infinite}.coach-panel,.play-history-panel{display:grid;min-height:0;gap:clamp(12px,1.1vw,18px);overflow:visible;scrollbar-width:thin}.coach-detail h3,.play-history-panel h2{color:#ffe0a0;font-size:calc(1.12rem * var(--page-text-scale))}.coach-detail>div,.play-history-panel{border:1px solid rgba(255,230,187,.14);border-radius:8px;padding:.78rem .85rem;background:linear-gradient(180deg,#ffffff0e,#ffffff06),#080a0f85}.history-list{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.history-list li{display:grid;min-width:0;gap:.38rem;border:1px solid rgba(255,230,187,.1);border-radius:8px;padding:.48rem;background:#ffffff09}.history-list strong,.history-combo{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-list strong{color:#fff5db}.history-cards{display:flex;min-width:0;align-items:center;justify-content:center}.card-strip .playing-card,.card-strip .playing-card.black-suit{color:var(--color-black-card)}.card-strip .playing-card.red-suit,.card-strip .playing-card.joker-card[data-rank=BJ]{color:var(--color-red)}.history-cards em,.history-empty{color:#fff4dcb3;font-size:calc(.78rem * var(--page-text-scale));font-style:normal;font-weight:800}.history-list li{grid-template-columns:4.4rem minmax(0,1fr)}.history-combo{color:var(--color-gold)}.history-cards{grid-column:1 / -1;flex-wrap:wrap;gap:clamp(4px,.42vw,7px);justify-content:flex-start}.history-cards .playing-card,.history-cards .playing-card:hover{z-index:auto;margin-left:0;transform:none;transition:none;pointer-events:none}.history-cards .playing-card+.playing-card{margin-left:0}.coach-detail p,.coach-detail li{color:#fff4dcbd;font-size:calc(.82rem * var(--page-text-scale));line-height:1.58}.coach-detail{display:grid;gap:.75rem}.coach-teaching{border-color:#ffde983d;background:radial-gradient(circle at 100% 0%,rgba(255,211,131,.1),transparent 72%),#ffd89413}.coach-summary{color:#ffe0a0;font-weight:900}.coach-advice-panel{gap:.75rem}.coach-recommendation,.coach-candidates,.coach-memory,.coach-hidden,.coach-empty{border:1px solid rgba(255,230,187,.16);border-radius:10px;padding:.8rem .85rem;background:linear-gradient(180deg,#fff1,#ffffff06),#080a0fa8}.coach-recommendation{border-color:#e8b1546b;box-shadow:inset 0 1px #fff0cd0f}.coach-recommendation[data-selected=true]{border-color:#ffdc89db;background:linear-gradient(180deg,#e8b15421,#ffffff06),#080a0fb8}.coach-recommendation-heading{display:flex;align-items:start;justify-content:space-between;gap:.75rem}.coach-recommendation-heading h3,.coach-candidates h3,.coach-memory h3,.coach-hidden h3,.coach-empty h3{margin:0}.coach-recommendation-heading button{flex:0 0 auto;min-height:36px;border-color:#ffdc89a8;color:#5b2c08;background:linear-gradient(180deg,#ffe5a6,#cf913d)}.coach-kicker{margin:0 0 .18rem;color:#ffe6b1b8;letter-spacing:.08em}.coach-action-label{display:block;margin:.65rem 0 .45rem;color:#fff0c2;font-weight:900}.coach-recommendation p,.coach-empty p{margin:.4rem 0 0;line-height:1.55}.coach-risk{border-left:3px solid rgba(227,143,82,.8);padding-left:.62rem;color:#ffd6b5}.coach-risk span{margin-right:.45rem;color:#ffb978;font-weight:900}.coach-candidates ol{display:grid;gap:.45rem;margin:.62rem 0 0;padding:0;list-style:none}.coach-candidates button{display:grid;width:100%;min-width:0;grid-template-columns:auto minmax(0,1fr);gap:.18rem .55rem;border-color:#ffe6bb24;padding:.55rem .62rem;text-align:left;background:#ffffff09}.coach-candidates li[data-selected=true] button{border-color:#ffdc89b8;background:#e8b1541f}.coach-candidate-rank{grid-row:1 / span 2;align-self:center;color:#e8b154;font-weight:900}.coach-candidates strong,.coach-candidates small{min-width:0;line-height:1.35}.coach-candidates small,.coach-boundary{color:#fff4dcad}.coach-memory ul{display:grid;gap:.38rem;margin:.55rem 0 0;padding-left:1.15rem}.coach-hidden-heading,.coach-hidden-seat-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}.coach-hidden-heading>span{border:1px solid rgba(255,211,131,.3);border-radius:999px;padding:.16rem .46rem;color:#ffd995;background:#e8b15417;font-size:calc(.76rem * var(--page-text-scale));white-space:nowrap}.coach-hidden-disclaimer{margin:.42rem 0 0;color:#fff4dcad;line-height:1.45}.coach-hidden ul{display:grid;gap:.5rem;margin:.65rem 0 0;padding:0;list-style:none}.coach-hidden li{border:1px solid rgba(255,230,187,.1);border-radius:8px;padding:.55rem .6rem;background:#ffffff06}.coach-hidden-seat-heading>span,.coach-hidden li small{color:#fff4dc94;font-size:calc(.75rem * var(--page-text-scale))}.coach-hidden-bands{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.42rem}.coach-hidden-bands>span{border-radius:999px;padding:.2rem .42rem;color:#fff4dcb8;background:#ffffff0b;white-space:nowrap}.coach-hidden-bands b{margin-left:.18rem;color:#e8b154}.coach-hidden-bands b[data-band=high]{color:#ffba7a}.coach-hidden-bands b[data-band=low]{color:#d3e0c9c7}.coach-hidden li p{margin:.42rem 0 0;color:#fff4dcbd;line-height:1.45}.coach-hidden li small{display:block;margin-top:.32rem;line-height:1.42}.coach-boundary{margin:0;padding:0 .2rem;line-height:1.45}.legal-list{display:flex;gap:.38rem;flex-wrap:wrap}.legal-list span{border:1px solid rgba(255,230,187,.12);border-radius:999px;padding:.24rem .5rem;color:#fff4dcc2;background:#ffffff09;font-size:calc(.76rem * var(--page-text-scale))}.rules-drawer{position:fixed;inset:0;z-index:80;display:grid;--page-text-scale: 1;place-items:center;padding:clamp(14px,2vw,30px);background:#0000009e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.rules-panel{display:grid;width:min(980px,94vw);max-height:min(760px,90dvh);grid-template-rows:auto auto auto minmax(0,1fr);gap:1rem;overflow:hidden;border:1px solid rgba(255,226,169,.3);border-radius:28px;padding:clamp(16px,2vw,28px);color:var(--color-ink);background:radial-gradient(circle at 12% 0%,rgba(255,216,148,.12),transparent 20rem),linear-gradient(145deg,#0b0e15fa,#24160df5);box-shadow:0 calc(22px * var(--launch-card-scale)) calc(60px * var(--launch-card-scale)) #0000006b}.rules-header{display:flex;align-items:start;justify-content:space-between;gap:1rem}.rules-header button{flex:0 0 auto;min-width:5rem;min-height:2.4rem;padding:.4rem .85rem;font-size:calc(.9rem * var(--page-text-scale))}.rules-header h2{margin-top:.25rem;color:var(--color-gold-bright);font-size:calc(2rem * var(--page-text-scale))}.rules-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.15rem}.rules-tabs button{flex:0 0 auto;min-height:2.25rem;min-width:auto;padding:.38rem .72rem;font-size:calc(.86rem * var(--page-text-scale));white-space:nowrap}.rules-tabs button.active,.rules-tabs button[aria-selected=true]{border-color:#ffe7b1b8;color:#251304;background:linear-gradient(180deg,#fff2c4,#d89434)}.rules-summary{color:var(--color-ink-muted);font-size:calc(1rem * var(--page-text-scale));line-height:1.68}.rules-list{display:grid;gap:.8rem;overflow:auto;padding-right:.25rem}.rule-card{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(140px,1fr) minmax(0,1.6fr);gap:1rem;border:1px solid rgba(255,230,187,.12);border-radius:18px;padding:1rem;background:#ffffff0b}.rule-card h3{color:#fff2d1;font-size:calc(1rem * var(--page-text-scale))}.rule-card p,.rule-card dd{color:var(--color-ink-muted);font-size:calc(.92rem * var(--page-text-scale));line-height:1.5}.rule-examples{display:flex;gap:.4rem;align-items:start;flex-wrap:wrap}.rule-examples span{display:inline-grid;min-width:2.1rem;place-items:center;border-radius:8px;padding:.32rem .45rem;color:#201712;background:#fff7e8;font-weight:900}.rule-card dl{display:grid;gap:.45rem;margin:0}.rule-card dt{color:var(--color-gold);font-size:calc(.9rem * var(--page-text-scale));font-weight:900}.rule-card dd{margin:0}@keyframes combo-pop{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pass-pulse{0%{box-shadow:0 0 #ffd3696b;transform:scale(.92)}68%{box-shadow:0 0 0 12px #ffd36900;transform:scale(1.05)}to{box-shadow:0 0 #ffd36900;transform:scale(1)}}@keyframes first-finisher-ring{0%{box-shadow:0 0 0 1px #ffefa84d inset,0 0 10px #ffda5838}50%{box-shadow:0 0 0 1px #ffefa88c inset,0 0 24px #ffda587a}to{box-shadow:0 0 0 1px #ffefa84d inset,0 0 10px #ffda5838}}@keyframes second-finisher-ring{0%{box-shadow:0 0 0 1px #ebf3ff4d inset,0 0 10px #bed2eb38}50%{box-shadow:0 0 0 1px #ebf3ff8c inset,0 0 24px #bed2eb7a}to{box-shadow:0 0 0 1px #ebf3ff4d inset,0 0 10px #bed2eb38}}@keyframes first-finish-lift{0%{filter:brightness(1.35);opacity:.82}to{filter:brightness(1);opacity:1}}@keyframes first-finish-sweep{0%{opacity:0;transform:translate(-120%)}18%,62%{opacity:1}to{opacity:0;transform:translate(120%)}}@keyframes low-hand-glow{0%,to{filter:brightness(1)}50%{filter:brightness(1.16)}}@media(max-width:1180px){:root{--hand-card-width: clamp(34px, 3.65vw, 58px);--hand-card-height: clamp(56px, 7vw, 106px)}.game-screen{grid-template-columns:minmax(0,80fr) minmax(260px,20fr)}}@media(min-width:2560px)and (min-height:1080px){.game-shell,.rules-drawer{--page-text-scale: 1.3}}@media(min-width:3200px)and (min-height:1200px){.game-shell,.rules-drawer{--page-text-scale: 1.5}}@media(min-width:3800px)and (min-height:1400px){.game-shell,.rules-drawer{--page-text-scale: 1.6}}@media(max-width:900px){html,body,#root{overflow:auto}.game-screen{grid-template-columns:1fr;grid-template-rows:minmax(620px,1fr) minmax(280px,42dvh);overflow:auto}.game-stage-shell{height:100%;min-height:0}.coach-dock{height:auto;min-height:280px;border-top:1px solid rgba(226,170,86,.52);border-left:0}.match-hud{width:var(--hud-width, min(56vw, 340px))}.player-panel{width:var(--player-panel-width, clamp(118px, 22vw, 150px))}.rule-card{grid-template-columns:1fr}}@media(max-width:640px){.rules-panel{max-height:94dvh;padding:1rem}.rules-header{display:grid}.game-stage-shell{min-width:720px}}html:has(.launch-screen[data-device]),html:has(.game-shell[data-device]),body:has(.launch-screen[data-device]),body:has(.game-shell[data-device]),#root:has(.launch-screen[data-device]),#root:has(.game-shell[data-device]){overflow:hidden}.launch-screen[data-device]{position:fixed;top:50%;left:50%;box-shadow:0 0 0 1px #ffdc982e,0 18px 60px #0000006b;transform:translate(-50%,-50%) scale(var(--launch-fit-scale, 1));transform-origin:center center}.launch-screen[data-device=phone]{width:1470px;height:680px}.launch-screen[data-device=laptop]{width:1470px;height:956px}.launch-screen[data-device=desktop]{width:1672px;height:941px}.game-shell[data-device]{position:fixed;inset:0;width:100vw;height:100dvh;overflow:hidden;background:#05070b}.game-shell[data-device] .game-screen{position:fixed;top:50%;left:50%;min-width:0;grid-template-columns:minmax(0,80fr) minmax(280px,20fr);grid-template-rows:100%;overflow:hidden;box-shadow:0 0 0 1px #ffdc9824,0 18px 60px #0000006b;transform:translate(-50%,-50%) scale(var(--game-fit-scale, 1));transform-origin:center center}.game-shell[data-device=laptop] .game-screen{width:1470px;height:956px}.game-shell[data-device=phone] .game-screen{width:1470px;height:680px}.game-shell[data-device=desktop] .game-screen{width:1672px;height:941px}.game-shell[data-device] .game-stage-shell{width:auto;min-width:0;height:100%}.game-shell[data-device] .coach-dock{height:100%;min-height:0;border-top:0;border-left:1px solid rgba(226,170,86,.42)}.game-shell[data-device=phone] .match-hud{width:var(--hud-width, 285px)}.game-shell[data-device=phone] .player-panel{width:var(--player-panel-width, 195px)}@media(hover:none)and (pointer:coarse)and (max-width:1180px){html,body,#root{overflow:hidden}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms;animation-iteration-count:1;scroll-behavior:auto;transition-duration:.01ms}}@keyframes mobile-phone-rotate{0%,18%{transform:rotate(0) scale(1)}48%,68%{transform:rotate(90deg) scale(1.03)}to{transform:rotate(0) scale(1)}}html.layout-debug-active #root *:not([data-layout-debug-ui],[data-layout-debug-ui] *){cursor:move!important}html.layout-debug-active [data-layout-unit]{pointer-events:auto!important}html.layout-debug-active .game-table{z-index:auto}html.layout-debug-active .seat-action-markers{z-index:1001;pointer-events:none!important}html.layout-debug-active .seat-action-marker{pointer-events:auto!important}html.layout-debug-active [data-layout-debug-hovered=true]{outline:1px dashed rgba(98,214,255,.92)!important;outline-offset:2px}html.layout-debug-active [data-layout-debug-selected=true]{outline:2px solid #ffcf63!important;outline-offset:3px;box-shadow:0 0 0 4px #ffcf6329!important}html.layout-debug-active .card-grid[data-layout-unit=card-grid][data-layout-debug-frame][data-layout-debug-hovered],html.layout-debug-active .card-grid[data-layout-unit=card-grid][data-layout-debug-frame][data-layout-debug-selected]{outline:none!important;box-shadow:none!important}html.layout-debug-active .card-grid[data-layout-unit=card-grid][data-layout-debug-frame]:after{position:absolute;z-index:9999;content:"";pointer-events:none;left:var(--layout-debug-hand-frame-left, 0px);top:var(--layout-debug-hand-frame-top, 0px);width:var(--layout-debug-hand-frame-width, 0px);height:var(--layout-debug-hand-frame-height, 0px);border:1px dashed rgba(98,214,255,.72)}html.layout-debug-active .card-grid[data-layout-unit=card-grid][data-layout-debug-frame][data-layout-debug-hovered]:after{border:1px dashed rgba(98,214,255,.92);outline:2px solid rgba(98,214,255,.16);outline-offset:2px}html.layout-debug-active .card-grid[data-layout-unit=card-grid][data-layout-debug-frame][data-layout-debug-selected]:after{border:2px solid #ffcf63;box-shadow:0 0 0 4px #ffcf6329}.layout-debug-panel{position:fixed;top:12px;right:12px;z-index:10000;display:grid;width:min(380px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;gap:10px;border:1px solid rgba(255,217,140,.72);border-radius:12px;padding:12px;color:#fff6df;background:#090b10f5;box-shadow:0 18px 50px #00000085;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-size:13px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.layout-debug-panel header{cursor:grab;-webkit-user-select:none;user-select:none}.layout-debug-panel.panel-dragging header{cursor:grabbing}.layout-debug-panel.collapsed{width:auto}.layout-debug-panel header,.layout-debug-panel header>div{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px}.layout-debug-panel header>div{align-items:start;flex-direction:column}.layout-debug-panel header strong{color:#ffe2a3;font-size:16px}.layout-debug-panel header span,.layout-debug-panel small{color:#fff6dfa8;font-size:11px}.layout-debug-panel button{min-height:30px;border-radius:8px;padding:4px 9px;font-size:12px}.layout-debug-message{border-left:3px solid #5fd1ff;padding-left:8px;color:#fff6dfd1;line-height:1.45}.layout-debug-selected{display:grid;min-width:0;gap:4px;border:1px solid rgba(255,226,169,.18);border-radius:8px;padding:8px;background:#ffffff0a}.layout-debug-selected span{color:#f2c36b;font-size:11px}.layout-debug-selected strong,.layout-debug-selected code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-debug-selected code{color:#96deffd1;font-size:10px}.layout-debug-coordinates,.layout-debug-actions{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.layout-debug-coordinates label{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:5px;color:#f2c36b;font-weight:900}.layout-debug-coordinates input{width:100%;min-width:0;height:30px;border:1px solid rgba(255,226,169,.28);border-radius:6px;padding:0 7px;color:#fff6df;background:#ffffff12;font:inherit}.layout-debug-change-list{display:grid;min-height:0;gap:6px;border-block:1px solid rgba(255,226,169,.16);padding-block:8px}.layout-debug-change-heading,.layout-debug-change-list li{display:grid;gap:3px}.layout-debug-change-heading{grid-template-columns:1fr auto;color:#ffe2a3}.layout-debug-change-list ul{display:grid;max-height:210px;overflow:auto;gap:6px;margin:0;padding:0;list-style:none}.layout-debug-change-list li{border-radius:6px;padding:6px 7px;background:#ffffff0a}.layout-debug-change-list li span,.layout-debug-change-list p{margin:0;color:#fff6dfad}.layout-debug-change-list code{overflow-wrap:anywhere;color:#96deffdb;font-size:10px}.layout-debug-actions button:last-child{grid-column:1 / -1}.game-shell,.rules-drawer,.mobile-orientation-prompt{--game-micro-size: clamp(.875rem, .9vw, 1rem);--game-meta-size: clamp(.875rem, .95vw, 1rem);--game-body-size: 1rem;--game-control-size: clamp(.96rem, 1.06vw, 1.2rem);--game-section-size: clamp(1.08rem, 1.2vw, 1.42rem)}.game-shell .eyebrow,.game-shell .player-title,.game-shell .slot-label,.game-shell .pass-chip,.game-shell .combo-name,.game-shell .first-finish-callout span{font-size:calc(var(--game-micro-size) * var(--page-text-scale))}.game-shell .coach-dock-header strong,.game-shell .player-panel h2,.game-shell .first-finish-callout strong,.rules-drawer .rules-header button{font-size:calc(var(--game-body-size) * var(--page-text-scale))}.game-shell .control-actions button,.game-shell .coach-dock .control-actions button,.game-shell .hand-control-dock .control-actions button,.game-shell .organize-hand-button,.game-shell .hand-control-dock .organize-hand-button{font-size:calc(var(--game-control-size) * var(--page-text-scale))}.game-shell .match-hud .eyebrow{font-size:calc(var(--game-micro-size) * var(--page-text-scale))}.game-shell .match-hud strong{font-size:calc(var(--game-section-size) * var(--page-text-scale))}.game-shell .player-panel strong,.game-shell .player-status-badge,.game-shell .finish-rank,.game-shell .player-badges,.game-shell .history-cards em,.game-shell .history-empty,.game-shell .legal-list span,.game-shell .seat-action-marker,.game-shell .first-finish-callout,.game-shell .self-card-count{font-size:calc(var(--game-meta-size) * var(--page-text-scale))}.game-shell .coach-detail h3,.game-shell .play-history-panel h2{font-size:calc(var(--game-section-size) * var(--page-text-scale))}.game-shell .coach-detail p,.game-shell .coach-detail li,.game-shell .history-list span,.rules-drawer .rules-summary,.rules-drawer .rule-card p,.rules-drawer .rule-card dd,.rules-drawer .rule-card dt,.rules-drawer .rules-tabs button{font-size:calc(var(--game-body-size) * var(--page-text-scale))}.mobile-orientation-prompt strong,.mobile-orientation-prompt p,.mobile-orientation-prompt button{font-size:calc(var(--game-body-size) * var(--page-text-scale, 1))}.game-shell .coach-dock{--coach-heading-size: clamp(1.125rem, 1.2vw, 1.25rem);--coach-body-size: clamp(1rem, 1.08vw, 1.125rem);--coach-meta-size: clamp(.9375rem, 1vw, 1rem);--coach-control-size: 1.10625rem}.game-shell .coach-dock p,.game-shell .coach-dock strong,.game-shell .coach-dock span,.game-shell .coach-dock li,.game-shell .coach-dock dt,.game-shell .coach-dock dd{font-size:var(--coach-body-size)}.game-shell .coach-dock h2,.game-shell .coach-dock h3{font-size:var(--coach-heading-size)}.game-shell .coach-dock small,.game-shell .coach-dock .coach-kicker,.game-shell .coach-dock .coach-boundary,.game-shell .coach-dock .coach-hidden-disclaimer,.game-shell .coach-dock .coach-candidates small,.game-shell .coach-dock .coach-hidden-heading>span,.game-shell .coach-dock .coach-hidden-seat-heading>span,.game-shell .coach-dock .coach-hidden li small{font-size:var(--coach-meta-size)}.game-shell .coach-dock button,.game-shell .coach-dock .control-actions button{font-size:var(--coach-control-size)}.launch-screen:not([data-device=phone]) .launch-actions{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.launch-screen:not([data-device=phone]) .launch-actions button{white-space:normal;overflow-wrap:anywhere}.game-shell[data-layout=anchored]{--page-text-scale: 1}.game-shell[data-layout=anchored] .game-screen{--game-micro-size: var(--density-label);--game-meta-size: var(--density-meta);--game-body-size: var(--density-body);--game-control-size: var(--density-control);--game-section-size: var(--density-section);font-size:var(--density-body);line-height:1.4;position:absolute;inset:0;width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,20%,440px);grid-template-rows:minmax(0,1fr);transform:none;translate:none;box-shadow:none;background:#05070b}.game-shell[data-layout=anchored] .game-stage-shell{overflow:hidden;background-image:url(/assets/active/backgrounds/main-game-background-coach-preview.png);background-size:var(--scene-background-width) var(--scene-background-height);background-position:var(--scene-background-x) var(--scene-background-y);background-repeat:no-repeat}.game-shell[data-layout=anchored] .game-stage-shell:after{display:none}.game-shell[data-layout=anchored] .match-hud{top:max(12px,2.1%);left:max(12px,1.1%);width:var(--density-hud-width);border-radius:12px;transform:none}.game-shell[data-layout=anchored] .match-hud>div{padding:var(--density-padding) 10px}.game-shell[data-layout=anchored] .match-hud .eyebrow{font-size:var(--density-label)}.game-shell[data-layout=anchored] .match-hud strong{font-size:var(--density-hud-value)}.game-shell[data-layout=anchored] .player-panel{width:var(--player-panel-width);min-width:0;transform:none;translate:none}.game-shell[data-layout=anchored] .player-panel[data-seat]{translate:none}.game-shell[data-layout=anchored] .player-identity{gap:4px;border-radius:10px;padding:var(--density-padding)}.game-shell[data-layout=anchored] .player-name-row{gap:6px}.game-shell[data-layout=anchored] .player-name-row h2{flex:1 0 auto;font-size:var(--density-name)}.game-shell[data-layout=anchored] .player-panel strong{padding:1px 5px;font-size:var(--density-meta)}.game-shell[data-layout=anchored] .player-panel :is(.player-title,.player-status-badge,.finish-rank){font-size:var(--density-label)}.game-shell[data-layout=anchored] .seat-action-marker{width:var(--action-marker-width);min-width:var(--action-marker-width);max-width:var(--action-marker-width);min-height:52px;gap:4px;border-radius:12px;padding:6px 8px;translate:none;transform:translate(-50%,-50%);--compact-card-width: calc(51.18px * var(--ui-scale));--compact-card-height: calc(71.65px * var(--ui-scale));--compact-card-rank-size: calc(14.08px * var(--ui-scale));--compact-card-suit-size: calc(12.8px * var(--ui-scale));--compact-card-main-suit-size: calc(28.16px * var(--ui-scale))}.game-shell[data-layout=anchored] .seat-action-marker[data-player]{translate:none}.game-shell[data-layout=anchored] .seat-action-marker :is(.slot-label,.combo-name,.pass-chip,.first-finish-callout strong,.first-finish-callout span){font-size:var(--density-label)}.game-shell[data-layout=anchored] .slot-cards{width:100%}.game-shell[data-layout=anchored] .slot-cards .playing-card+.playing-card{margin-left:calc(-1*max(23.03px * var(--ui-scale),(var(--played-card-count) * var(--compact-card-width) - (var(--action-marker-width) - 18px)) / var(--played-card-gaps)))}.game-shell[data-layout=anchored] .seat-action-marker:is([data-first-finisher=true],[data-finished-rank="2"]){min-height:calc(100px * var(--ui-scale))}.game-shell[data-layout=anchored] .player-hand{display:flex;flex-direction:column;align-items:stretch;gap:var(--density-hand-gap);width:var(--hand-width);height:auto;bottom:var(--hand-bottom);--hand-card-width: calc(84.65px * var(--ui-scale));--hand-card-height: calc(122.05px * var(--ui-scale));--card-radius: calc(9.84px * var(--ui-scale));--card-rank-size: calc(20.67px * var(--ui-scale));--card-index-suit-size: calc(16.73px * var(--ui-scale));--card-main-suit-size: calc(45.28px * var(--ui-scale));--hand-group-gap: calc(.98px * var(--ui-scale));--organized-card-width: min(calc(76.78px * var(--ui-scale)), calc((var(--hand-width) - (var(--organized-group-count) - 1) * var(--hand-group-gap)) / var(--organized-group-count)));--organized-card-height: calc(var(--organized-card-width) * 1.487);--organized-row-height: min(var(--organized-row-cap), calc(var(--organized-card-height) + var(--organized-stack-extra) * 36px * var(--ui-scale)));--hand-group-card-step: min(calc(36px * var(--ui-scale)), calc((var(--organized-row-height) - var(--organized-card-height)) / var(--organized-stack-divisor)))}.game-shell[data-layout=anchored] .card-grid{flex:none;height:var(--hand-card-height);min-height:0;padding:0;translate:none}.game-shell[data-layout=anchored] .card-grid[data-organized=true]{height:var(--organized-row-height)}.game-shell[data-layout=anchored] .hand-control-dock{position:static;flex:none;align-self:flex-end;width:max-content;max-width:100%;min-height:var(--density-control-height);gap:var(--density-gap);transform:none;translate:none}.game-shell[data-layout=anchored] .hand-control-dock .control-actions{gap:var(--density-gap)}.game-shell[data-layout=anchored] .hand-control-dock .control-actions button{min-width:var(--density-control-width);min-height:var(--density-control-height);padding:6px 12px;font-size:var(--density-control)}.game-shell[data-layout=anchored] .self-card-count{padding:5px 10px;font-size:var(--density-count)}.game-shell[data-layout=anchored] .coach-dock{padding:var(--density-coach-padding);font-size:var(--density-body);grid-template-rows:auto auto minmax(0,1fr);--coach-heading-size: var(--density-section);--coach-body-size: var(--density-body);--coach-meta-size: var(--density-meta);--coach-control-size: var(--density-body)}.game-shell[data-layout=anchored] .coach-dock .control-actions button{min-height:var(--density-control-height)}.game-shell[data-layout=anchored] .coach-dock-header-row{flex-wrap:nowrap}.game-shell .coach-dock-header-row .eyebrow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-shell .coach-header-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:4px}.game-shell .game-window-navigation{position:absolute;z-index:25;top:12px;right:12px}.game-shell .game-icon-button,.game-shell .coach-dock .game-icon-button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border:1px solid transparent;border-radius:6px;color:#e8c58b;background:transparent;box-shadow:none;line-height:1}.game-shell .game-icon-button svg{display:block;pointer-events:none}.game-shell .game-icon-button:hover:not(:disabled),.game-shell .game-icon-button[aria-pressed=true]{border-color:#ffdc8966;background:#ffdc891a;transform:none}.game-shell .game-icon-button:focus-visible{outline:2px solid #f2c36b;outline-offset:2px}.game-shell[data-layout=anchored] .coach-dock-header{padding-bottom:var(--density-gap)}.game-shell[data-layout=anchored] .control-bar{margin-top:var(--density-gap)}.game-shell[data-layout=anchored] .coach-dock :is(.layout-debug-toggle,.coach-drawer-close){font-size:var(--density-meta)}.game-shell[data-layout=anchored] .coach-dock .side-panel-stack{gap:var(--density-gap)}.game-shell[data-layout=anchored] .coach-panel>p{margin:0}.game-shell[data-layout=anchored] .coach-advice-panel{gap:var(--density-gap)}.game-shell[data-layout=anchored] :is(.coach-recommendation,.coach-candidates,.coach-memory,.coach-hidden,.coach-empty){padding:var(--density-padding) 10px}.game-shell[data-layout=anchored] .coach-recommendation-heading{gap:8px}.game-shell[data-layout=anchored] .coach-recommendation-heading button{min-height:32px;padding:5px 9px}.game-shell[data-layout=anchored] .coach-candidates button{border-radius:8px}.game-shell[data-layout=anchored] .side-panel-stack{display:flex;flex-direction:column;overscroll-behavior:contain}.game-shell[data-layout=anchored] .side-panel-stack>*{flex:0 0 auto}.game-shell[data-layout=anchored] .legal-list button{width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:14px}.game-shell[data-layout=anchored][data-coach-mode=drawer] .game-screen{grid-template-columns:minmax(0,1fr)}.game-shell[data-layout=anchored][data-coach-mode=drawer] .coach-dock{position:absolute;z-index:31;top:12px;right:12px;width:min(390px,calc(100% - 24px));height:calc(100% - 24px);border:1px solid rgba(226,170,86,.55);border-radius:14px;grid-template-rows:auto auto auto minmax(0,1fr);background:#10131b}.game-shell[data-layout=anchored][data-coach-mode=drawer][data-coach-drawer-open=false] .coach-dock{display:none}.coach-drawer-toggle{position:static;grid-column:1 / -1;margin:4px 8px 8px;min-height:var(--density-control-height);padding:6px 12px;font-size:var(--density-control)}.coach-drawer-backdrop{position:absolute;z-index:30;inset:0;width:100%;height:100%;margin:0;border:0;border-radius:0;background:#00000073}.coach-drawer-close{justify-self:end;min-height:var(--density-control-height);margin-bottom:var(--density-gap)}@media(prefers-reduced-motion:reduce){.game-shell[data-layout=anchored] .seat-action-marker,.game-shell[data-layout=anchored] .seat-action-marker:after{animation:none}}
