:root{--felt-1: #0d5036;--felt-2: #073522;--felt-edge: #052a1b;--rail: #5a3a1a;--rail-hi: #7a5226;--gold: #d8b257;--gold-deep: #a47e2a;--gold-soft: rgba(216, 178, 87, .16);--cream: #f6efe0;--cream-2: #fbf6ea;--ink: #221b10;--ink-soft: #6a5d49;--line: #e2d6b8;--line-soft: #ece2c8;--win: #1d6b3a;--win-soft: #c8e6cf;--pos: #a23a2a;--pos-soft: #f6dad4;--danger: #a23a2a;--shadow-1: 0 1px 0 rgba(0,0,0,.04), 0 12px 30px rgba(0,0,0,.22);--shadow-2: 0 1px 0 rgba(0,0,0,.05), 0 4px 14px rgba(0,0,0,.18);--radius: 14px;--radius-sm: 10px;--radius-pill: 999px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;color:var(--cream);background:radial-gradient(140% 90% at 50% -10%,rgba(255,255,255,.06) 0%,transparent 55%),radial-gradient(120% 80% at 50% 110%,rgba(0,0,0,.55) 0%,transparent 60%),radial-gradient(1200px 700px at 50% 40%,var(--felt-1) 0%,var(--felt-2) 65%,var(--felt-edge) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"ss01" 1}button{font:inherit;cursor:pointer;border:1px solid transparent;background:transparent;color:inherit;border-radius:var(--radius-sm);padding:9px 14px;transition:background .12s ease,transform 60ms ease,border-color .12s ease,box-shadow .12s ease;font-weight:500}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:linear-gradient(180deg,#e6c168 0%,var(--gold) 60%,var(--gold-deep) 100%);color:#2a1c00;font-weight:700;border:1px solid #8e6a1e;box-shadow:inset 0 1px #ffffff8c,0 1px #0003,0 6px 16px #0000004d;letter-spacing:.01em}button.primary:hover:not(:disabled){filter:brightness(1.05)}button.primary.big{padding:16px 22px;font-size:16px;width:100%;border-radius:var(--radius)}button.ghost{background:#ffffff0f;color:var(--cream);border:1px solid rgba(255,255,255,.14)}button.ghost:hover{background:#ffffff1a}button.ghost.danger{color:#f3b9b1;background:#a23a2a2e;border-color:#a23a2a59}button.ghost.danger:hover{background:#a23a2a52}button.ghost.tiny{padding:2px 7px;font-size:11px;border-radius:var(--radius-pill)}.panel button.ghost{background:#0000000a;color:var(--ink);border:1px solid rgba(0,0,0,.1)}.panel button.ghost:hover{background:#00000012}.panel button.ghost.danger{background:#a23a2a14;color:var(--danger);border-color:#a23a2a4d}.panel button.ghost.danger:hover{background:#a23a2a29}input[type=text],input[type=password],input[type=tel],input[type=number],select{font:inherit;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);width:100%;font-feature-settings:"tnum" 1}input[type=text]:focus,input[type=password]:focus,input[type=tel]:focus,input[type=number]:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.app{min-height:100%;display:flex;flex-direction:column}.app-header{padding:8px 22px;display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:970;background:linear-gradient(180deg,#0000002e,#0000),#07352299;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--gold-deep);box-shadow:0 1px #ffffff0a,0 6px 16px #00000040}.title-btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:18px;line-height:1;letter-spacing:.01em;color:var(--cream);padding:6px 10px 6px 6px;border-radius:var(--radius-pill)}.title-btn:hover{background:#ffffff0d}.logo{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:50%;background:var(--gold);color:var(--green-deep);font-size:20px;line-height:1;text-shadow:none;flex-shrink:0}.title-word{color:var(--gold);line-height:1}.switcher-chev{color:#f6efe08c;font-family:Space Grotesk,sans-serif;font-size:11px;line-height:1;transition:transform .12s ease,color .12s ease}.switcher-chev.open{transform:rotate(180deg);color:var(--gold)}.title-btn:hover .switcher-chev{color:var(--cream)}.game-switcher{position:relative}.game-switcher .switcher-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:240px;padding:6px;display:flex;flex-direction:column;gap:2px;z-index:20;animation:switcher-pop .14s cubic-bezier(.2,.9,.3,1.2)}@keyframes switcher-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.switcher-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);font-family:Space Grotesk,sans-serif;font-weight:700;color:var(--ink);background:transparent;border:0;text-align:left;font-size:14px;text-transform:none;letter-spacing:normal}.switcher-item:hover{background:#0000000d}.switcher-item.on{background:var(--gold-soft);color:var(--gold-deep)}.switcher-symbol{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:50%;background:var(--gold-soft);color:var(--gold-deep);font-size:15px;line-height:1;flex-shrink:0}.switcher-item.on .switcher-symbol{background:var(--gold);color:var(--green-deep)}.switcher-label{flex:1}.switcher-here{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-deep);background:#d8b2572e;padding:2px 6px;border-radius:var(--radius-pill);font-weight:800}.top-nav{margin-left:auto;display:flex;align-items:center;gap:4px}.nav-link{background:transparent;color:#f6efe0c7;padding:8px 14px;border-radius:var(--radius-pill);font-family:Space Grotesk,sans-serif;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;border:1px solid transparent}.nav-link:hover{background:#ffffff0f;color:var(--cream)}.nav-link.on{background:var(--gold-soft);color:var(--gold);border-color:#d8b25759}.user-pill{display:inline-flex;align-items:center;gap:8px;margin-left:4px;padding:5px 12px 5px 5px;border-radius:var(--radius-pill);background:#ffffff0a;border:1px solid rgba(255,255,255,.14);color:var(--cream);font-family:Space Grotesk,sans-serif;font-weight:700;font-size:12px;letter-spacing:.02em;text-transform:uppercase}.user-pill:hover{background:#ffffff14}.user-pill.on{background:var(--gold-soft);border-color:#d8b25773;color:var(--gold)}.user-pill.on:hover{background:#d8b25738}.user-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(180deg,#e6c168 0%,var(--gold) 70%,var(--gold-deep) 100%);color:#2a1c00;font-weight:700;font-size:13px;text-transform:uppercase}.user-pill-label{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-pill{position:fixed;left:16px;bottom:16px;z-index:90;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);background:#073522b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);font-family:Space Grotesk,sans-serif;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#f6efe0c7;-webkit-user-select:none;user-select:none;box-shadow:0 6px 16px #00000040;transition:opacity .2s ease}.live-pill.live-connected{opacity:.85}.live-pill.live-connected:hover{opacity:1}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#f6efe066;box-shadow:0 0 0 0 currentColor}.live-connected{color:#9bd25b;border-color:#9bd25b73;background:#9bd25b1a}.live-connected .live-dot{background:#9bd25b;animation:live-pulse 1.8s ease-in-out infinite}.live-connecting{color:#d8b257;border-color:#d8b25766}.live-connecting .live-dot{background:#d8b257;animation:live-blink 1s linear infinite}.live-disconnected{color:#f5b070;border-color:#f5b07066}.live-disconnected .live-dot{background:#f5b070}@keyframes live-pulse{0%,to{box-shadow:0 0 #9bd25b8c}50%{box-shadow:0 0 0 6px #9bd25b00}}@keyframes live-blink{0%,to{opacity:1}50%{opacity:.35}}main{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:8px 22px 24px}main.wide{max-width:1460px}.panel{background:linear-gradient(180deg,var(--cream-2),var(--cream));color:var(--ink);border-radius:var(--radius);border:1px solid var(--gold-deep);box-shadow:var(--shadow-1);position:relative}.panel:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:calc(var(--radius) - 3px);border:1px solid rgba(216,178,87,.45);pointer-events:none}.empty{text-align:center;padding:36px 24px;color:var(--ink-soft);display:flex;flex-direction:column;gap:8px;align-items:center}.empty-title{color:var(--ink);font-weight:700;font-size:18px;margin:0}.muted{color:var(--ink-soft)}.muted.small{font-size:13px}.error{color:var(--danger);font-size:13px;margin:0}h1{font-size:26px;margin:0 0 10px;font-weight:800;letter-spacing:-.01em}h2{margin:0 0 10px;font-size:18px}h3{margin:0 0 8px;font-size:15px}main>*>h1{color:var(--cream)}.panel h1,.panel h2,.panel h3{color:var(--ink)}.list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:12px}.list-head h1{margin:0}.head-actions{display:flex;gap:10px}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#f6efe099;margin:18px 0 10px}.cards{list-style:none;padding:0;margin:0;display:grid;gap:12px}.match-card{display:flex;align-items:stretch;background:linear-gradient(180deg,var(--cream-2),var(--cream));border:1px solid var(--gold-deep);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-2);position:relative}.match-card:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:calc(var(--radius) - 3px);border:1px solid rgba(216,178,87,.45);pointer-events:none}.match-card-body{flex:1;text-align:left;padding:16px 18px 14px;display:flex;flex-direction:column;gap:8px;background:transparent;color:var(--ink);border-radius:0}.match-card-body:hover{background:#00000008}.match-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-right:32px}.match-card-title{font-weight:700;font-size:17px;letter-spacing:-.01em}.match-card-meta{color:var(--ink-soft);font-size:13px}.status-pill{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding:3px 9px;border-radius:var(--radius-pill);border:1px solid transparent}.status-pill.active{background:#1d6b3a1f;color:var(--win);border-color:#1d6b3a66}.status-pill.ended{background:#6a5d491f;color:var(--ink-soft);border-color:#6a5d4959}.standings{list-style:none;padding:8px 0 0;margin:4px 0 0;display:grid;gap:4px;border-top:1px dashed var(--line)}.standings li{display:grid;grid-template-columns:22px 1fr auto auto;align-items:baseline;gap:8px;padding:4px 8px;border-radius:var(--radius-sm);font-size:14px;background:transparent;transition:background .12s ease}.standings li.lead{background:var(--gold-soft);font-weight:600}.standings li.lead .pos{color:var(--gold-deep)}.standings .pos{color:var(--ink-soft);font-weight:700;font-size:12px;font-feature-settings:"tnum" 1}.standings .player{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.standings .wins{font-size:11px;color:var(--win);font-weight:700;letter-spacing:.04em;min-width:24px;text-align:right}.standings .score{font-weight:800;font-feature-settings:"tnum" 1;font-size:15px;min-width:36px;text-align:right}.match-card-stats{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink-soft);padding-top:6px;border-top:1px dashed var(--line)}.match-card-stats strong{color:var(--ink);font-weight:700;font-feature-settings:"tnum" 1}.match-card-roster{font-size:13px;color:var(--ink);padding-top:4px;border-top:1px dashed var(--line)}.card-del{border:0;border-left:1px solid rgba(216,178,87,.45);border-radius:0;padding:0 18px;background:transparent;color:var(--danger);display:flex;align-items:center;justify-content:center;min-width:52px}.card-del:hover{background:#a23a2a1a;color:var(--danger)}.del-icon{display:block}.new-match{padding:26px;display:flex;flex-direction:column;gap:18px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700}.recall{display:flex;flex-direction:column;gap:8px}.recall-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700}.recall-chips{display:flex;flex-wrap:wrap;gap:8px}.recall-chip{background:#fff;border:1px solid var(--line);color:var(--ink);padding:8px 12px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.recall-chip:hover:not(:disabled){background:var(--gold-soft);border-color:var(--gold)}.recall-chip.used{background:#1d6b3a1a;border-color:#1d6b3a59;color:var(--win)}.chip-meta{font-size:11px;color:var(--ink-soft);font-weight:500}.search-input{margin-top:4px}.search-results{margin-top:10px}.search-empty{padding:6px 4px}.recall-chip-new{border-style:dashed;border-color:var(--gold);color:var(--gold-deep);background:var(--gold-soft);font-weight:700}.recall-chip-new:hover{background:#d8b25747}.bot-tag{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--line-soft);background:var(--cream-2);color:var(--ink-soft);margin-left:8px}.player-row-bot input{color:var(--ink)}.player-add-row{display:flex;gap:8px;flex-wrap:wrap}.lobby-seat-bot{opacity:.9}.players-field{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.players-field legend{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700;padding:0;margin-bottom:4px}.player-rows{list-style:none;padding:0;margin:0;display:grid;gap:8px}.player-rows li{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.match-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.match-head h1{margin:0;color:var(--cream)}.match-sub{color:#f6efe0b8;margin:4px 0 0;font-size:14px}.match-actions{display:flex;gap:8px;flex-wrap:wrap}.scoreboard{padding:14px;overflow-x:auto}.scoreboard.panel:before{display:none}.sb-grid{display:grid;grid-template-columns:80px repeat(var(--cols),minmax(120px,1fr));gap:8px;align-items:stretch;min-width:100%}.sb-player-head{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:8px 6px 10px;border-bottom:1px solid var(--line-soft)}.sb-player-head.leader{color:var(--win)}.sb-player-name{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.sb-empty{grid-column:1 / -1;text-align:center;color:var(--ink-soft);padding:28px 12px}.sb-empty p{margin:0}.sb-empty p+p{margin-top:4px}.sb-round-label{font-weight:700;display:flex;align-items:center;justify-content:space-between;padding:0 6px;color:var(--ink);background:#00000008;border-radius:var(--radius-sm)}.sb-round-label span{letter-spacing:.04em}.sb-cell{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:4px;padding:6px;align-items:stretch;transition:border-color .12s ease,background .12s ease}.sb-cell.is-winner{background:var(--win-soft);border-color:var(--win)}.sb-cell.is-pos{background:var(--pos-soft);border-color:var(--pos)}.sb-input{width:100%;text-align:center;font-size:22px;font-weight:800;border:0;background:transparent;color:var(--ink);padding:4px 0 0;outline:none;font-feature-settings:"tnum" 1}.sb-input:disabled{color:var(--ink)}.sb-cell.is-winner .sb-input{color:var(--win)}.sb-cell.is-pos .sb-input{color:var(--pos)}.sb-cell-actions{display:flex;gap:4px;justify-content:center}.sb-mini{flex:1;font-size:11px;font-weight:700;padding:4px 0;border-radius:var(--radius-pill);border:1px solid;background:#fff}.sb-mini.win{color:var(--win);border-color:#1d6b3a80}.sb-mini.win:hover{background:var(--win-soft)}.sb-mini.pen{color:var(--pos);border-color:#a23a2a80}.sb-mini.pen:hover{background:var(--pos-soft)}.sb-total-label{font-weight:800;color:var(--ink);padding:10px 6px 0;text-transform:uppercase;font-size:12px;letter-spacing:.08em;border-top:1px solid var(--gold-deep);margin-top:4px}.sb-total-cell{border-top:1px solid var(--gold-deep);margin-top:4px;padding-top:10px;text-align:center;font-weight:800;font-size:22px;color:var(--ink);font-feature-settings:"tnum" 1}.sb-total-cell.leader{color:var(--win)}:root{--team-a: #3d8ee0;--team-a-soft: rgba(61, 142, 224, .18);--team-a-strong: rgba(61, 142, 224, .55);--team-b: #d64545;--team-b-soft: rgba(214, 69, 69, .18);--team-b-strong: rgba(214, 69, 69, .55)}.team-chip{display:inline-flex;align-items:center;justify-content:center;height:22px;min-width:60px;padding:0 10px;margin:0;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1;border-radius:var(--radius-pill);border:1px dashed var(--line);background:transparent;color:var(--ink-soft);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.team-chip:hover:not(:disabled){background:var(--gold-soft);border-color:var(--gold);color:var(--gold-deep);border-style:solid}.team-chip.team-A{background:var(--team-a-soft);border-color:var(--team-a);border-style:solid;color:var(--team-a)}.team-chip.team-B{background:var(--team-b-soft);border-color:var(--team-b);border-style:solid;color:var(--team-b)}.team-chip:disabled{cursor:default;opacity:.6}.sb-player-head.team-A{box-shadow:inset 0 -2px 0 0 var(--team-a)}.sb-player-head.team-B{box-shadow:inset 0 -2px 0 0 var(--team-b)}.sb-team-label{font-weight:800;color:var(--ink);padding:8px 6px 0;text-transform:uppercase;font-size:11px;letter-spacing:.08em}.sb-team-cell{padding:6px 0 0;text-align:center;font-weight:800;font-size:16px;color:var(--ink-soft);font-feature-settings:"tnum" 1}.sb-team-cell.team-A{color:var(--team-a)}.sb-team-cell.team-B{color:var(--team-b)}.team-summary{margin:16px 0 14px;padding:14px 16px;display:grid;gap:10px}.team-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--cream-2);border:1px solid var(--line-soft);color:var(--ink)}.team-tag{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:var(--radius-pill);border:1px solid;min-width:68px;text-align:center}.team-tag.team-A{color:var(--team-a);background:var(--team-a-soft);border-color:var(--team-a)}.team-tag.team-B{color:var(--team-b);background:var(--team-b-soft);border-color:var(--team-b)}.team-roster{font-weight:700;color:var(--ink);font-size:14px}.team-total{font-weight:800;font-size:24px;font-feature-settings:"tnum" 1;color:var(--ink);min-width:44px;text-align:right}.add-round-row{margin-top:18px}.analytics .list-head h1{color:var(--cream)}.sort-field{display:flex;align-items:center;gap:8px}.sort-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#f6efe0b3}.sort-field select{width:auto;min-width:200px;padding:8px 10px}.stat-cards{list-style:none;padding:0;margin:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.stat-card{padding:18px 18px 16px}.stat-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.stat-card h2{margin:0;font-size:20px;color:var(--ink)}.stat-card-headline{text-align:right;line-height:1}.big-number{display:block;font-size:30px;font-weight:800;color:var(--win);font-feature-settings:"tnum" 1}.big-label{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:0}.stat{display:flex;justify-content:space-between;align-items:baseline;gap:6px;border-top:1px dashed var(--line);padding-top:6px}.stat dt{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.stat dd{margin:0;font-weight:700;font-feature-settings:"tnum" 1;white-space:nowrap;flex:0 0 auto}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#2a1c00;color:var(--cream);border:1px solid var(--gold);padding:12px 18px;border-radius:var(--radius-pill);display:flex;align-items:center;gap:12px;box-shadow:0 10px 30px #0006;z-index:100;font-size:14px;max-width:90vw}.toast-close{background:transparent;border:0;color:var(--gold);font-size:20px;line-height:1;padding:0 4px;cursor:pointer}@media (max-width: 640px){main{padding:18px 14px 90px}.app-header{padding:10px 14px;gap:8px}.title-btn{font-size:16px;padding:4px 8px 4px 4px;gap:8px}.logo{width:32px;height:32px;font-size:18px}.nav-link{padding:6px 10px;font-size:11px}.user-pill{padding:3px;gap:0}.user-pill-label{display:none}.switcher-menu{min-width:220px}.match-head{flex-direction:column}.match-actions{width:100%}.list-head{flex-direction:column;align-items:stretch}.head-actions{justify-content:flex-end}.sb-grid{grid-template-columns:56px repeat(var(--cols),minmax(96px,1fr));gap:6px}.sb-input,.sb-total-cell{font-size:18px}.sb-player-head{font-size:11px}.live-pill .live-label{display:none}.live-pill{padding:6px}}.route-view{animation:route-enter .24s cubic-bezier(.22,1,.36,1);will-change:transform,opacity,filter}@keyframes route-enter{0%{opacity:0;transform:translateY(8px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media (prefers-reduced-motion: reduce){.route-view{animation:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:16px;z-index:1000;animation:modal-fade .14s ease-out}.modal{max-width:420px;width:100%;padding:22px 22px 18px;animation:modal-pop .16s cubic-bezier(.2,.9,.3,1.3)}.modal-title{margin:0 0 8px;color:var(--ink);font-size:18px}.modal-body{margin:0 0 18px;color:var(--ink-soft);font-size:14px;line-height:1.45}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-actions .primary.danger{background:linear-gradient(180deg,#c95643 0%,var(--danger) 60%,#7a2a1e 100%);border-color:#6b2519;color:var(--cream-2)}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.pin-field{margin-top:10px}.pin-input{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:24px;letter-spacing:.6em;text-align:center;padding-right:calc(12px - .6em);font-weight:700;color:var(--ink);background:#fff;font-feature-settings:"tnum" 1}.pin-input::-webkit-credentials-auto-fill-button,.pin-input::-webkit-strong-password-auto-fill-button{display:none!important;visibility:hidden;pointer-events:none;width:0;height:0;margin:0}.pin-manage{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:8px}.pin-manage-label{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.pin-status{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700;padding:3px 8px;border-radius:var(--radius-pill);border:1px solid var(--line);background:transparent}.pin-status-on{color:var(--win);border-color:#1d6b3a66;background:#1d6b3a14}.pin-manage-actions{display:flex;gap:6px;flex-wrap:wrap}.pin-error{margin:10px 0 0;padding:8px 10px;border-radius:var(--radius-sm);background:#a23a2a1a;border:1px solid rgba(162,58,42,.35);color:#7a2a1e;font-size:13px;font-weight:600}.chart-panel{background:linear-gradient(180deg,#ffffff0a,#0000002e),var(--felt-2);border:1px solid rgba(216,178,87,.25);border-radius:var(--radius);padding:16px 14px 12px;margin-top:16px;box-shadow:var(--shadow-2)}.chart-head{margin-bottom:8px}.chart-title{margin:0;font-size:14px;color:var(--gold);letter-spacing:.04em;text-transform:uppercase}.chart-sub{margin:4px 0 0;color:#f6efe08c}.chart-svg-wrap{width:100%;overflow:hidden}.chart-svg{width:100%;height:auto;display:block}.chart-grid{stroke:#ffffff14;stroke-width:1}.chart-zero{stroke:#d8b2578c;stroke-width:1;stroke-dasharray:3 3}.chart-axis{fill:#f6efe099;font-size:11px}.chart-legend{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.chart-legend-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-size:12px;border-radius:var(--radius-pill);background:#ffffff0a;border:1px solid rgba(255,255,255,.12);color:var(--cream)}.chart-legend-btn:hover{background:#ffffff14}.chart-legend-btn.off{opacity:.45}.chart-swatch{width:12px;height:12px;border-radius:3px;border:1px solid}.stat-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0 14px;padding:0}.filter-sep{width:1px;height:18px;background:#ffffff2e;margin:0 2px}.filter-spacer{flex:1 1 auto}.chips{display:inline-flex;gap:4px;flex-wrap:wrap}.stat-chip{background:#ffffff0a;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;color:var(--cream);cursor:pointer;font-weight:500;line-height:1.4}.stat-chip:hover{background:#ffffff17}.stat-chip.on{background:var(--gold-soft);border-color:var(--gold-deep);color:var(--gold);font-weight:700}.layout-toggle .stat-chip{min-width:54px;text-align:center}.min-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#f6efe0bf;cursor:pointer;padding:4px 8px;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.14);background:#ffffff0a}.min-toggle:hover{background:#ffffff17}.min-toggle input{accent-color:var(--gold);margin:0}.highlight-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}.highlight-tile{padding:14px;display:flex;flex-direction:column;gap:4px;min-height:108px;min-width:0}.hl-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700}.hl-value{font-size:30px;font-weight:800;color:var(--win);font-feature-settings:"tnum" 1;line-height:1;margin:2px 0}.hl-sub{font-size:13px;color:var(--ink);font-weight:600;line-height:1.3;overflow-wrap:anywhere}@media (max-width: 900px){.highlight-tiles{grid-template-columns:repeat(3,1fr)}}@media (max-width: 560px){.highlight-tiles{grid-template-columns:repeat(2,1fr)}}.stat-card{position:relative}.stat-card-open{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;border:0;cursor:pointer;z-index:1;border-radius:var(--radius)}.stat-card-open:hover{background:#00000008}.stat-card>*:not(.stat-card-open){position:relative;z-index:2;pointer-events:none}.spark-block{margin:8px 0 14px}.spark-body{display:flex;align-items:stretch;gap:6px}.spark-yaxis{display:flex;flex-direction:column;justify-content:space-between;padding:2px 0;font-size:10px;font-weight:700;color:var(--ink-soft);font-feature-settings:"tnum" 1;text-align:right;min-width:22px}.spark-yaxis-tick{line-height:1}.spark-body .sparkline{flex:1}.spark-scale{display:flex;justify-content:space-between;align-items:center;margin-top:6px;gap:12px;padding-left:28px}.spark-scale-end{display:flex;flex-direction:column;gap:1px}.spark-scale-right{text-align:right;align-items:flex-end}.spark-scale-tag{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700}.spark-scale-num{font-size:15px;font-weight:800;color:var(--ink);font-feature-settings:"tnum" 1;line-height:1}.trend-legend{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:var(--radius-pill);border:1px solid;white-space:nowrap}.trend-legend-swatch{width:8px;height:8px;border-radius:50%}.trend-legend-improving{color:var(--win);background:#1d6b3a1a;border-color:#1d6b3a59}.trend-legend-improving .trend-legend-swatch{background:var(--win)}.trend-legend-worsening{color:#a23a2a;background:#a23a2a1a;border-color:#a23a2a59}.trend-legend-worsening .trend-legend-swatch{background:#a23a2a}.trend-legend-flat{color:var(--ink-soft);background:transparent;border-color:var(--line)}.trend-legend-flat .trend-legend-swatch{background:var(--ink-soft)}.trend-chart{width:100%;height:auto;display:block;max-height:320px}.trend-empty{padding:40px 0;text-align:center}.trend-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 4}.trend-ytick,.trend-xtick{fill:var(--ink-soft);font-size:11px;font-weight:600;font-feature-settings:"tnum" 1}.trend-xtick{text-transform:uppercase;letter-spacing:.08em;font-size:10px}.trend-line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.trend-area{opacity:.14}.trend-chart.improving .trend-line{stroke:var(--win)}.trend-chart.improving .trend-area,.trend-chart.improving .trend-dot{fill:var(--win)}.trend-chart.worsening .trend-line{stroke:#a23a2a}.trend-chart.worsening .trend-area,.trend-chart.worsening .trend-dot{fill:#a23a2a}.trend-dot{transition:r .1s ease-out}.trend-dot.hover{stroke:var(--cream);stroke-width:2;vector-effect:non-scaling-stroke}.trend-hit{cursor:pointer}.trend-wrap{position:relative}.trend-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 10px));background:var(--ink);color:var(--cream);padding:6px 10px;border-radius:8px;font-size:12px;white-space:nowrap;pointer-events:none;z-index:5;box-shadow:0 6px 14px #00000047;display:flex;flex-direction:column;align-items:center;gap:2px}.trend-tooltip:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--ink)}.trend-tooltip-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.75}.trend-tooltip-value{font-size:20px;font-weight:800;font-feature-settings:"tnum" 1;line-height:1}.sparkline{width:100%;height:44px;display:block}.sparkline-empty{background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 10px);opacity:.4;border-radius:4px}.spark-line{fill:none;stroke-width:1.6;vector-effect:non-scaling-stroke}.spark-area{opacity:.18}.sparkline.improving .spark-line{stroke:var(--win)}.sparkline.improving .spark-area,.sparkline.improving .spark-dot,.sparkline.improving .spark-dot-past{fill:var(--win)}.sparkline.improving .spark-dot-hover{fill:var(--win);stroke:var(--cream)}.sparkline.worsening .spark-line{stroke:#a23a2a}.sparkline.worsening .spark-area,.sparkline.worsening .spark-dot,.sparkline.worsening .spark-dot-past{fill:#a23a2a}.sparkline.worsening .spark-dot-hover{fill:#a23a2a;stroke:var(--cream)}.spark-dot-past{opacity:.55}.spark-dot-hover{stroke-width:1.5;vector-effect:non-scaling-stroke}.spark-hit{cursor:pointer}.sparkline-wrap{position:relative;flex:1;min-width:0}.sparkline-wrap .sparkline{display:block;width:100%;height:44px}.spark-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 6px));background:var(--ink);color:var(--cream);padding:4px 8px;border-radius:6px;font-size:11px;line-height:1.2;white-space:nowrap;pointer-events:none;z-index:5;box-shadow:0 4px 10px #00000040;display:flex;flex-direction:column;align-items:center;gap:1px}.spark-tooltip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid var(--ink)}.spark-tooltip-value{font-weight:800;font-size:13px;font-feature-settings:"tnum" 1}.spark-tooltip-idx{font-size:9px;text-transform:uppercase;letter-spacing:.06em;opacity:.75}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}.badge{font-size:11px;padding:3px 8px;border-radius:var(--radius-pill);background:var(--gold-soft);border:1px solid var(--gold-deep);color:var(--ink);font-weight:600;letter-spacing:.02em}.badges-lg .badge{font-size:13px;padding:5px 12px}.stat-note{margin:6px 0 0;font-size:12px}.leaderboard{padding:0;overflow:hidden}.leaderboard-table{width:100%;border-collapse:collapse;font-size:14px;color:var(--ink)}.leaderboard-table thead th{background:var(--cream-2);padding:10px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);border-bottom:1px solid var(--line)}.leaderboard-table th.num,.leaderboard-table td.num{text-align:right;font-feature-settings:"tnum" 1}.leaderboard-table tbody tr{cursor:pointer;border-bottom:1px solid var(--line-soft)}.leaderboard-table tbody tr:hover{background:#00000008}.leaderboard-table tbody tr:last-child{border-bottom:0}.leaderboard-table td{padding:10px 12px}.leaderboard-table td.rank{color:var(--ink-soft);font-weight:700;width:40px}.leaderboard-table td.name{font-weight:700}.leaderboard-table td.streak.pos{color:var(--win);font-weight:700}.leaderboard-table td.streak.neg{color:#a23a2a;font-weight:700}.player-detail .back-link{align-self:flex-start;margin-bottom:8px;background:transparent;color:var(--cream);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-pill);padding:6px 14px;font-size:13px;cursor:pointer}.player-detail .back-link:hover{background:#ffffff0f}.detail-section{padding:16px 18px;margin-bottom:12px}.hero-card{padding:20px 22px;margin-bottom:14px;display:flex;flex-direction:column;gap:18px}.hero-top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px}.hero-avatar{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:linear-gradient(180deg,#e6c168 0%,var(--gold) 65%,var(--gold-deep) 100%);color:#2a1c00;font-weight:800;font-size:28px;text-transform:uppercase;box-shadow:0 4px 10px #00000026}.hero-name h1{margin:0;color:var(--ink);font-size:26px;line-height:1.1}.hero-meta{margin-top:4px;display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--ink-soft);align-items:center}.hero-rank{color:var(--gold-deep);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:11px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--gold-soft);border:1px solid rgba(216,178,87,.4)}.hero-record{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hero-record-value{display:inline-flex;align-items:baseline;gap:4px;font-size:38px;font-weight:800;line-height:1;font-feature-settings:"tnum" 1}.hero-record-w{color:var(--win)}.hero-record-l{color:#a23a2a}.hero-record-sep{color:var(--ink-soft);font-weight:700;padding:0 2px}.hero-record-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:700}.hero-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.kpi{padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--cream-2);display:flex;flex-direction:column;gap:3px;min-width:0}.kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700}.kpi-value{font-size:24px;font-weight:800;color:var(--ink);font-feature-settings:"tnum" 1;line-height:1.05}.kpi-value.kpi-pos{color:var(--win)}.kpi-value.kpi-neg{color:#a23a2a}.kpi-rank{font-size:10px;color:var(--ink-soft);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.hero-secondary{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding-top:12px;border-top:1px dashed var(--line)}.mini-stat{display:flex;flex-direction:column;gap:1px;min-width:0}.mini-stat-label{font-size:10px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-stat-value{font-size:15px;font-weight:700;color:var(--ink);font-feature-settings:"tnum" 1}.rival-strip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--gold-deep);background:var(--gold-soft);color:var(--ink);cursor:pointer;text-align:left;font-weight:700}.rival-strip:hover{background:#d8b25747}.rival-tag{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--gold-deep);font-weight:800}.rival-name{font-size:15px}.rival-record{font-size:20px;font-weight:800;font-feature-settings:"tnum" 1;letter-spacing:.02em}.rival-sep{color:var(--ink-soft);padding:0 3px;font-weight:700}.h2h-record{display:inline-flex;align-items:baseline;gap:2px;font-weight:800;font-feature-settings:"tnum" 1;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid transparent}.h2h-record-sep{color:var(--ink-soft);font-weight:700;padding:0 2px}.h2h-record.ahead{color:var(--win);background:#1d6b3a1a;border-color:#1d6b3a59}.h2h-record.behind{color:#a23a2a;background:#a23a2a1a;border-color:#a23a2a59}.h2h-record.even{color:var(--ink-soft);background:transparent;border-color:var(--line)}@media (max-width: 700px){.hero-top{grid-template-columns:auto 1fr}.hero-record{grid-column:1 / -1;align-items:flex-start;text-align:left}.hero-kpis{grid-template-columns:repeat(2,1fr)}.hero-secondary{grid-template-columns:repeat(3,1fr)}.hero-avatar{width:48px;height:48px;font-size:22px}.hero-name h1{font-size:22px}.hero-record-value{font-size:32px}}.detail-section h2{margin:0 0 12px;color:var(--ink);font-size:16px}.stat dd.pos{color:var(--win)}.stat dd.neg{color:#a23a2a}.dist-bars{display:flex;flex-direction:column;gap:6px}.dist-row{display:grid;grid-template-columns:72px 1fr 40px;align-items:center;gap:10px;font-size:13px}.dist-label{color:var(--ink-soft);font-weight:700;font-feature-settings:"tnum" 1;white-space:nowrap}.dist-bar-track{height:12px;border-radius:var(--radius-pill);background:var(--line-soft);overflow:hidden}.dist-bar-fill{height:100%;background:linear-gradient(90deg,var(--gold) 0%,var(--gold-deep) 100%);border-radius:var(--radius-pill);transition:width .2s ease-out}.dist-count{text-align:right;font-feature-settings:"tnum" 1;font-weight:700;color:var(--ink)}.h2h-table{width:100%;border-collapse:collapse;font-size:14px}.h2h-table th{text-align:left;padding:8px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:1px solid var(--line)}.h2h-table th.num,.h2h-table td.num{text-align:right;font-feature-settings:"tnum" 1}.h2h-table td.pos{color:var(--win);font-weight:700}.h2h-table td.neg{color:#a23a2a;font-weight:700}.h2h-table tbody tr{cursor:pointer;border-bottom:1px solid var(--line-soft)}.h2h-table tbody tr:hover{background:#00000008}.h2h-table tbody tr:last-child{border-bottom:0}.h2h-table td{padding:9px 10px}.h2h-table td.name{font-weight:700}.detail-recent{margin-top:4px}.detail-recent .section-label{color:var(--cream)}.badge-more{background:transparent;border-color:#d8b25780;color:var(--ink-soft);font-weight:600}@media (max-width: 640px){.stat-filters{gap:4px}.filter-sep{display:none}.filter-spacer{flex-basis:100%;height:0}.highlight-tile{min-height:0;padding:12px 14px}.hl-value{font-size:26px}.leaderboard-table{font-size:13px}.leaderboard-table td,.leaderboard-table thead th{padding:8px}.leaderboard-table th:nth-child(7),.leaderboard-table td:nth-child(7),.leaderboard-table th:nth-child(8),.leaderboard-table td:nth-child(8){display:none}.dist-row{grid-template-columns:76px 1fr 32px;font-size:12px}}.mode-field{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:12px 14px 14px;margin:4px 0 12px;background:var(--cream-2);color:var(--ink)}.mode-field legend{padding:0 6px;color:var(--ink-soft);font-weight:600;font-size:14px}.mode-choice{display:flex;align-items:flex-start;gap:10px;padding:8px 6px;cursor:pointer;border-radius:var(--radius-sm)}.mode-choice:hover{background:#0000000a}.mode-choice input{margin-top:4px;accent-color:var(--gold-deep)}.mode-choice strong{color:var(--ink)}.mode-choice .muted{color:var(--ink-soft)}.virtual-lobby h1{margin:8px 0 12px;color:var(--ink)}.share-links{list-style:none;padding:0;margin:12px 0;display:flex;flex-direction:column;gap:10px}.share-links li{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:10px 12px;background:var(--cream)}.share-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.share-name{flex:1;font-weight:600;color:var(--ink)}.share-url{width:100%;margin-top:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:6px 8px;border:1px solid var(--line-soft);border-radius:6px;background:#fff;color:var(--ink)}.virtual-match{display:flex;flex-direction:column;gap:16px}.virtual-header{display:flex;align-items:center;gap:12px}.virtual-header h1{flex:1;margin:0;color:var(--cream);font-size:22px;font-weight:700}.phase-pill{padding:4px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;letter-spacing:.08em;background:#00000059;color:var(--gold);border:1px solid rgba(216,178,87,.35)}.phase-pill.phase-draw{background:#d8b25729;color:var(--gold)}.phase-pill.phase-play{background:#1d6b3a59;color:#b6e6c5;border-color:#b6e6c566}.phase-pill.phase-ended{background:#a23a2a40;color:#f6c3ba;border-color:#f6c3ba66}.error.inline{background:#a23a2a2e;border:1px solid rgba(246,195,186,.5);color:#ffdad3;padding:10px 12px;border-radius:var(--radius-sm)}.table{background:linear-gradient(180deg,#00000026,#0000000d);border:1px solid rgba(0,0,0,.28);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:18px;box-shadow:inset 0 0 0 4px #d8b2570f}.seats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.seat{background:#00000047;border:1px solid rgba(216,178,87,.25);border-radius:var(--radius-sm);padding:10px 12px;color:var(--cream);display:flex;flex-direction:column;gap:4px;position:relative;transition:transform .12s ease,border-color .12s ease,background .12s ease}.seat.seat-turn{border-color:var(--gold);background:#d8b25724;box-shadow:0 0 0 2px #d8b25740}.seat.seat-me{outline:2px solid rgba(255,255,255,.15)}.seat-header{display:flex;align-items:center;gap:6px}.seat-name{font-weight:700;flex:1}.seat-tag{font-size:10px;font-weight:700;letter-spacing:.08em;padding:2px 6px;border-radius:var(--radius-pill);background:var(--gold-soft);color:var(--gold);border:1px solid rgba(216,178,87,.4)}.seat-meta{display:flex;gap:8px;align-items:center;font-size:13px;opacity:.9;flex-wrap:wrap}.seat-num{font-size:11px;opacity:.55;letter-spacing:.08em;text-transform:uppercase}.badge-down,.badge-joker{font-size:10px;font-weight:700;letter-spacing:.08em;padding:2px 6px;border-radius:var(--radius-pill)}.badge-down{background:#1d6b3a66;color:#b6e6c5;border:1px solid rgba(182,230,197,.4)}.badge-joker{background:#d8b25747;color:var(--gold);border:1px solid rgba(216,178,87,.5)}.table-center{display:flex;align-items:flex-start;gap:24px;justify-content:center;flex-wrap:wrap}.stock{display:flex;flex-direction:column;align-items:center;gap:6px}.stock-card{width:64px;height:92px;border-radius:10px;background:repeating-linear-gradient(45deg,#d8b2574d 0,#d8b2574d 6px,#d8b2571f 6px,#d8b2571f 12px),linear-gradient(180deg,#124a34,#0a3323);border:2px solid rgba(216,178,87,.5);color:transparent;box-shadow:var(--shadow-2)}.stock-count{font-size:12px;color:var(--gold);font-weight:700}.discard{display:flex;flex-direction:column;align-items:center;gap:6px}.discard-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);opacity:.8}.empty-discard{width:64px;height:92px;border:2px dashed rgba(255,255,255,.2);border-radius:10px;display:grid;place-items:center;color:#fff6;font-size:12px}.melds-area h3{margin:0 0 8px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);opacity:.9}.melds-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.melds-list li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;background:#00000038;border-radius:var(--radius-sm);border:1px solid rgba(216,178,87,.18)}.meld-owner{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);opacity:.85}.meld-kind{font-size:10px;padding:2px 6px;border-radius:var(--radius-pill);background:#0000004d;color:var(--cream);letter-spacing:.05em}.meld-row{display:inline-flex;gap:4px;flex-wrap:wrap}.meld-slot{display:inline-grid;place-items:center;min-width:28px;height:36px;padding:0 6px;background:var(--cream);color:var(--ink);border-radius:6px;font-weight:700;border:1px solid var(--line-soft);font-size:14px}.play-panel{display:flex;flex-direction:column;gap:14px}.my-hand h3{margin:0 0 8px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:8px}.cards-row{display:flex;flex-wrap:wrap;gap:8px;padding:10px;background:#00000040;border-radius:var(--radius-sm);border:1px solid rgba(216,178,87,.15);min-height:80px}.card-chip{width:52px;height:78px;border-radius:8px;background:#fefdf7;color:var(--ink);border:1px solid rgba(0,0,0,.15);box-shadow:0 2px 5px #00000040,inset 0 -2px #0000000d;display:grid;place-items:center;font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:700;padding:0;cursor:pointer;position:relative;transition:transform .1s ease,box-shadow .1s ease,border-color .1s ease}.card-chip:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 6px 12px #00000059}.card-chip:disabled{cursor:default;opacity:.85}.card-chip.selected{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold),0 8px 14px #0006;transform:translateY(-6px)}.card-chip.suit-red{color:#b23033}.card-chip.suit-black{color:#111}.card-chip.suit-joker{color:#6a3ca0;background:linear-gradient(135deg,#fff,#f0e4ff)}.actions-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.actions-row label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}.actions-row select,.actions-row input[type=number]{padding:6px 8px;border:1px solid var(--line-soft);border-radius:6px;background:#fff;color:var(--ink);font:inherit}.come-down-builder,.lay-off{padding:12px;background:#0003;border-radius:var(--radius-sm);border:1px solid rgba(216,178,87,.15);display:flex;flex-direction:column;gap:10px}.come-down-builder h4,.lay-off h4{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.drafts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.drafts li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;background:#ffffff0f;border-radius:6px}.joker-subs{display:flex;flex-direction:column;gap:6px;padding:10px;background:#d8b2571a;border:1px solid rgba(216,178,87,.28);border-radius:var(--radius-sm)}.joker-sub-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.joker-sub-row select{padding:4px 6px;border-radius:6px;border:1px solid var(--line-soft);background:#fff;color:var(--ink);font:inherit}.ended-panel{display:flex;flex-direction:column;gap:12px}.scores-table{width:100%;border-collapse:collapse}.scores-table th,.scores-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line-soft)}.scores-table th{color:var(--ink-soft);font-size:12px;letter-spacing:.08em;text-transform:uppercase}@keyframes card-in{0%{opacity:0;transform:translateY(-14px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.card-chip{animation:card-in .22s ease-out}@keyframes slot-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.meld-slot{animation:slot-in .24s ease-out}.hand-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.hand-header h3{margin:0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:8px;flex:1}.hand-sort{display:flex;align-items:center;gap:4px}button.small{padding:4px 8px;font-size:12px;border-radius:6px}.panel button.ghost.small.on{background:var(--gold-soft);border-color:#d8b25799;color:var(--gold-deep)}.staging{background:#d8b2571a;border:1px dashed rgba(216,178,87,.5);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:10px}.staging-header{display:flex;align-items:center;justify-content:space-between;color:var(--gold);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.staging-points{padding:2px 10px;border-radius:var(--radius-pill);background:#00000059;font-weight:700;font-size:13px;letter-spacing:0;text-transform:none}.staging-points.ok{background:#1d6b3a80;color:#d8f5e2}.staged-melds{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.staged-melds li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;background:#00000040;border-radius:var(--radius-sm);border:1px solid rgba(216,178,87,.25)}.selection-note{margin-right:4px}button.primary.big{padding:12px 20px;font-size:15px;font-weight:700}.build-error{padding:8px 12px;background:#a23a2a33;border:1px solid rgba(246,195,186,.5);color:#ffdad3;border-radius:var(--radius-sm);font-size:13px}.vm-stage{display:grid;grid-template-columns:300px minmax(0,1fr) 300px;grid-template-rows:auto auto auto;grid-template-areas:"hud    hud    hud" "felt   felt   felt" "dockL  hand   dockR";gap:10px 18px;max-width:1440px;margin:0 auto;color:var(--cream)}.vm-stage>.vm-hud{grid-area:hud}.vm-stage>.vm-felt-wrap{grid-area:felt}.vm-stage>.vm-dock-left{grid-area:dockL;align-self:end}.vm-stage>.vm-below-table{grid-area:hand;align-self:end}.vm-stage>.turn-popup-slot{grid-area:hud;justify-self:center;align-self:center;z-index:6;pointer-events:none}.vm-below-table{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}.vm-notices{position:absolute;bottom:100%;left:0;right:0;margin-bottom:8px;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;z-index:12}.vm-notices>*{pointer-events:auto;max-width:min(560px,100%)}.vm-hud{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 4px}.vm-round{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#f6efe08c;font-weight:600}.vm-round b{font-size:16px;color:var(--cream);margin:0 2px}.vm-round-of{color:#f6efe059}.vm-hud-right{display:flex;align-items:center;gap:10px}.vm-hud-btn{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--cream);border:1px solid rgba(216,178,87,.28);border-radius:var(--radius-pill);background:#00000052}.vm-hud-btn:hover:not(:disabled){border-color:var(--gold);background:#d8b25729}.turn-popup-slot>*{pointer-events:auto}.vm-turn-indicator{color:var(--gold);font-weight:600;margin-left:8px;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.vm-felt-wrap{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:72px 268px 12px}.vm-seat{display:flex;align-items:center;gap:10px;padding:8px 12px;width:258px;height:60px;border-radius:var(--radius-sm);background:#00000052;border:1px solid rgba(216,178,87,.22);box-shadow:0 6px 16px #0000004d;transition:border-color .15s,background .15s,box-shadow .15s}.vm-felt-wrap>.vm-seat{position:absolute;z-index:4}.seat-top{top:0;left:50%;transform:translate(-50%)}.seat-top-left{top:0;left:0}.seat-top-right{top:0;right:0}.seat-left{left:0;top:calc(50% + 30px);transform:translateY(-50%)}.seat-right{right:0;top:calc(50% + 30px);transform:translateY(-50%)}.vm-seat.is-turn{border-color:var(--gold);background:#d8b2572e;box-shadow:0 6px 14px #0000004d}.vm-seat.seat-team-A{border-left:3px solid rgba(94,160,255,.6)}.vm-seat.seat-team-B{border-left:3px solid rgba(255,150,110,.6)}.seat-avatar{position:relative;flex:0 0 auto;width:38px;height:38px;border-radius:50%;border:2px solid rgba(255,255,255,.14);background:linear-gradient(180deg,#2b3a35,#16211d);display:flex;align-items:center;justify-content:center}.seat-initials{font-size:12px;font-weight:800;letter-spacing:.04em;color:#f6efe0d9}.seat-avatar.self{border-color:#d8b25780}.seat-avatar.self .seat-initials{color:var(--gold);font-size:11px}.seat-main{min-width:0;flex:1 1 auto}.seat-name-row{display:flex;align-items:center;gap:5px;min-width:0}.seat-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-chip{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;border-radius:4px;white-space:nowrap;flex:0 0 auto}.seat-chip.down{background:#5dd6c42e;color:#7fe4d2}.seat-chip.bot{background:#ffffff1a;color:#f6efe0a6}.seat-chip.joker{background:#d8b25733;color:var(--gold)}.seat-chip.team-A{background:#5ea0ff2e;color:#9ac4ff}.seat-chip.team-B{background:#ff966e2e;color:#ffb495}.seat-hand-row{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;margin-top:2px;min-width:0}.seat-count{font-size:11px;color:#f6efe080;white-space:nowrap}.seat-score{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.seat-total{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.seat-rank{font-size:10px;color:#f6efe073;white-space:nowrap}.seat-rank .good{color:#7fe4d2}.seat-rank .bad{color:#ff9d86}.vm-bubble{position:absolute;z-index:6;max-width:210px;padding:8px 12px;border-radius:14px;background:var(--cream);color:var(--ink);font-size:13px;line-height:1.35;box-shadow:0 10px 26px #00000073;pointer-events:none}.vm-bubble.bubble-top{bottom:calc(100% - 4px);left:50%;transform:translate(-50%)}.vm-bubble.bubble-top-left{bottom:calc(100% - 4px);left:0}.vm-bubble.bubble-top-right{bottom:calc(100% - 4px);right:0}.vm-bubble.bubble-left{top:calc(50% - 44px);left:0}.vm-bubble.bubble-right{top:calc(50% - 44px);right:0}.vm-bubble.bubble-self{bottom:-4px;left:50%;transform:translate(-50%)}.vm-dock-left{display:flex;flex-direction:column;gap:8px;width:258px;padding-bottom:14px;position:relative}.vm-self-seat{width:100%;position:relative}.vm-bubble-self-dock{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:8;max-width:220px;padding:8px 12px;border-radius:14px;background:var(--cream);color:var(--ink);font-size:13px;line-height:1.35;box-shadow:0 10px 26px #00000073;pointer-events:none}.vm-table-talk{position:fixed;right:20px;bottom:20px;z-index:40}.table-talk-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;background:linear-gradient(180deg,#1e2a26fa,#0e1412fa);border:1px solid rgba(216,178,87,.4);color:var(--cream);box-shadow:0 8px 22px #00000080;cursor:pointer;transition:border-color .12s,background .12s,transform 60ms}.table-talk-btn:hover{border-color:var(--gold);background:linear-gradient(180deg,#28342efa,#141a16fa)}.talk-dot{width:8px;height:8px;border-radius:50%;background:#ffffff3d;flex:0 0 auto}.talk-dot.on{background:var(--gold);box-shadow:0 0 10px #d8b257e6}.talk-unread{margin-left:4px;padding:1px 8px;border-radius:999px;background:var(--gold);color:var(--ink);font-size:10px;font-weight:800;letter-spacing:.04em}.table-talk-panel{position:absolute;bottom:calc(100% + 10px);right:0;width:300px;max-width:calc(100vw - 40px);max-height:min(70vh,480px);display:flex;flex-direction:column;border-radius:14px;background:linear-gradient(180deg,#141c19fa,#0a100efa);border:1px solid rgba(216,178,87,.28);box-shadow:0 20px 46px #0000008c;overflow:hidden}.table-talk-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#f6efe099;border-bottom:1px solid rgba(255,255,255,.07)}.table-talk-head .ghost{color:var(--cream);border-color:#ffffff26}.scores-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:980;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:flex-end}.scores-drawer{width:min(460px,92vw);height:100%;overflow-y:auto;padding:18px;background:linear-gradient(180deg,#00190ff7,#000e09fa);border-left:1px solid rgba(216,178,87,.3);box-shadow:-20px 0 60px #0000008c;font-size:12px;display:flex;flex-direction:column;gap:10px}.scores-drawer-head{display:flex;align-items:baseline;gap:10px;padding-bottom:10px;border-bottom:1px solid rgba(216,178,87,.2)}.scores-drawer-title{font-size:15px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.scores-drawer-round{font-size:12px;color:#f6efe073}.scores-drawer-close{margin-left:auto;color:var(--cream);border-color:#d8b25747;background:#0000004d}.scores-drawer-close:hover:not(:disabled){border-color:var(--gold);background:#d8b25729}.draft-pill{display:flex;align-items:baseline;gap:6px;padding:7px 12px;border-radius:var(--radius-pill);background:#0000004d;border:1px solid rgba(255,255,255,.08);align-self:flex-end}.draft-pill-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#f6efe073}.draft-pill-value{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}.draft-pill-target{font-size:11px;color:#f6efe066}.draft-pill.ok{border-color:#7fe4d273}.draft-pill.ok .draft-pill-value{color:#7fe4d2}.draft-pill.short .draft-pill-value{color:#f6efe0cc}.vm-opponents{display:flex;gap:20px;flex-wrap:nowrap;justify-content:space-around;padding:4px 24px;width:100%}.vm-opponents .opp{flex:0 1 220px;min-width:160px;width:220px}.opp{min-width:0;padding:6px 10px;background:#00000052;border:1px solid rgba(216,178,87,.22);border-radius:var(--radius-sm);display:flex;flex-direction:row;align-items:center;gap:10px;transition:border-color .15s,background .15s,box-shadow .15s}.opp.opp-turn{border-color:var(--gold);background:#d8b2572e;transform:scale(1.04);z-index:1;box-shadow:0 6px 14px #0000004d}.turn-fuse{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible;z-index:2}.turn-fuse-svg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;display:block}.turn-fuse-stroke{fill:none;stroke:var(--gold);stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(216,178,87,.55));stroke-dasharray:1000;stroke-dashoffset:0;animation-name:turn-fuse-burn;animation-timing-function:linear;animation-fill-mode:forwards;animation-iteration-count:1}@keyframes turn-fuse-burn{0%{stroke-dashoffset:0}to{stroke-dashoffset:-1000}}@keyframes turn-fuse-pulse{0%,to{opacity:.78}50%{opacity:1}}.opp.opp-turn:after{z-index:3;content:"PLAYING";position:absolute;top:-8px;right:8px;background:linear-gradient(180deg,#f7d78a,var(--gold));color:var(--ink);font-size:9px;font-weight:800;letter-spacing:.14em;padding:2px 8px;border-radius:999px;box-shadow:0 3px 8px #00000059}.opp{position:relative}.opp-fan{display:flex;align-items:center;min-height:30px;flex-shrink:0;position:relative}.opp-card.back-mini.opp-flying{position:absolute;left:50%;top:0;margin-left:-9px;z-index:5;box-shadow:0 6px 16px #0000008c;will-change:transform,opacity}.opp-flight-card{position:fixed;top:0;left:0;width:48px;height:68px;border-radius:6px;background:repeating-linear-gradient(45deg,#d8b2576b 0,#d8b2576b 5px,#d8b25724 5px,#d8b25724 10px),linear-gradient(180deg,#124a34,#0a3323);border:1.5px solid rgba(216,178,87,.55);z-index:290;pointer-events:none;box-shadow:0 10px 18px #0000008c;will-change:transform,opacity}.opp-card.back-mini{width:18px;height:26px;border-radius:3px;background:repeating-linear-gradient(45deg,#d8b2576b 0,#d8b2576b 3px,#d8b25724 3px,#d8b25724 6px),linear-gradient(180deg,#124a34,#0a3323);border:1px solid rgba(216,178,87,.35);box-shadow:0 1px 2px #00000059}.opp-more{font-size:10px;color:var(--gold);margin-left:4px}.opp-name-row{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.opp-name{font-weight:700;color:var(--cream);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opp-badge{font-size:9px;letter-spacing:.06em;padding:1px 5px;border-radius:var(--radius-pill);background:var(--gold-soft);color:var(--gold);border:1px solid rgba(216,178,87,.4)}.opp-badge.down{background:#1d6b3a66;color:#b6e6c5;border-color:#b6e6c566}.opp-badge.joker{background:#d8b25747;border-color:#d8b2578c}.opp-count{font-size:11px;color:#ffffffa6;font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0}.vm-table{position:relative;width:min(880px,100%);height:440px;border-radius:140px;border:14px solid #58351f;background:radial-gradient(120% 90% at 50% -5%,rgba(255,255,255,.07) 0%,transparent 55%),radial-gradient(900px 460px at 50% 45%,#17694b,#0e5036 55%,#093b28);box-shadow:inset 0 0 0 2px #ffffff0d,inset 0 16px 46px #00000057,0 26px 64px #00000080;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px 34px}.vm-melds{display:flex;flex-wrap:wrap;gap:8px 10px;align-content:center;justify-content:center;min-width:0;overflow:visible}.vm-table .table-meld{padding:5px 4px}.vm-melds-hint{color:#ffffff59;font-style:italic;font-size:13px;align-self:center;margin:0 auto}.table-meld{padding:4px;border-radius:var(--radius-sm);transition:box-shadow .15s}.table-meld.drop-over{background:#d8b2572e;box-shadow:0 0 0 2px var(--gold),0 0 20px #d8b25799}.table-meld.drop-blocked,.meld-slot-wrap.drop-blocked{box-shadow:0 0 0 2px #ffffff47;border-radius:var(--radius-sm)}.table-meld-cards{display:flex;align-items:center}.joker-sub-badge{position:absolute;top:2px;left:2px;right:2px;font-size:10px;background:linear-gradient(180deg,#f7d78a,var(--gold));color:var(--ink);border-radius:4px;padding:1px 4px;font-weight:800;text-align:center;letter-spacing:.02em;box-shadow:0 1px 3px #00000059;line-height:1.2;pointer-events:none}.vm-center-row{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;flex:0 0 auto;width:92px}.vm-center-row .pile-label{max-width:92px;text-align:center;margin-top:4px}.vm-center-row .discard-pile{min-width:0}.stock-pile{background:transparent;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.hand-flight-card{position:absolute;width:74px;height:108px;border-radius:10px;background:repeating-linear-gradient(45deg,#d8b25766 0,#d8b25766 8px,#d8b2571f 8px,#d8b2571f 16px),linear-gradient(180deg,#124a34,#0a3323);border:2px solid rgba(216,178,87,.55);box-shadow:0 14px 32px #0000008c;z-index:30;pointer-events:none;backface-visibility:hidden}.hand-flight-card.from-discard{width:68px;height:100px;background:none;border:none;border-radius:0;filter:drop-shadow(0 14px 20px rgba(0,0,0,.55));box-shadow:none;backface-visibility:visible}.vm-hand{position:relative}.discard-flight-card{position:fixed;top:0;left:0;width:68px;height:100px;z-index:300;pointer-events:none;filter:drop-shadow(0 14px 20px rgba(0,0,0,.55))}.stock-pile:disabled{cursor:default;opacity:.6}.stock-back{width:74px;height:108px;border-radius:10px;background:repeating-linear-gradient(45deg,#d8b25766 0,#d8b25766 8px,#d8b2571f 8px,#d8b2571f 16px),linear-gradient(180deg,#124a34,#0a3323);border:2px solid rgba(216,178,87,.55);box-shadow:0 3px #00000059,0 6px 0 -1px #00000040,0 10px 20px #00000073;display:grid;place-items:center;color:var(--gold);font-weight:800;font-size:14px;transition:transform .15s}.stock-pile:not(:disabled):hover .stock-back{transform:translateY(-3px)}.stock-count{background:#0000008c;border-radius:6px;padding:2px 6px}.pile-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#ffffff8c;margin-top:10px}.discard-pile{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:90px;padding:4px;border-radius:12px;transition:background .15s,box-shadow .15s}.discard-pile.drop-over{background:#d8b2572e;box-shadow:0 0 0 3px #d8b25780}.discard-actions{min-height:26px}.empty-slot{width:74px;height:108px;border:2px dashed rgba(255,255,255,.2);border-radius:10px;display:grid;place-items:center;color:#fff6;font-size:12px;letter-spacing:.1em;text-transform:uppercase}.playing-card{--card-w: 74px;--card-h: 108px;--card-face: #fbf8ee;width:var(--card-w);height:var(--card-h);border-radius:8px;background:var(--card-face);border:1px solid rgba(0,0,0,.15);box-shadow:0 1px #ffffffb3 inset,0 4px 10px #00000059;position:relative;color:#111;font-family:Georgia,Times New Roman,serif;-webkit-user-select:none;user-select:none;overflow:hidden}.playing-card.size-md{--card-w: 68px;--card-h: 100px}.playing-card.size-sm{--card-w: 46px;--card-h: 68px}.playing-card.size-sm .corner-rank,.playing-card.size-sm .corner-suit{font-size:12px}.playing-card.size-sm .center-suit{font-size:20px}.playing-card.red{color:#b23033}.playing-card.black{color:#101010}.playing-card .corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:800}.playing-card .corner-rank{font-size:16px;letter-spacing:-.02em}.playing-card .corner-suit{font-size:14px}.playing-card .corner.tl{top:5px;left:6px}.playing-card .corner.br{bottom:5px;right:6px;transform:rotate(180deg)}.playing-card .center-suit{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:34px;opacity:.9}.playing-card.back{background:repeating-linear-gradient(45deg,#d8b25766 0,#d8b25766 8px,#d8b2571f 8px,#d8b2571f 16px),linear-gradient(180deg,#124a34,#0a3323);border:2px solid rgba(216,178,87,.55)}.playing-card.joker{background:linear-gradient(180deg,#fff8e6,#f2e2b3);color:#6a3ca0;border-color:#6a3ca059;display:grid;place-items:center}.playing-card.joker .joker-mark{font-size:11px;letter-spacing:.14em;font-weight:800;position:absolute;top:8px;left:0;right:0;text-align:center}.playing-card.joker .joker-icon{font-size:42px}.playing-card.size-md.joker .joker-mark{font-size:9px;top:5px;letter-spacing:.1em}.playing-card.size-md.joker .joker-icon{font-size:30px}.playing-card.size-sm.joker .joker-mark{font-size:7px;top:4px;letter-spacing:.06em}.playing-card.size-sm.joker .joker-icon{font-size:20px}.playing-card.ghost{transform:rotate(-4deg);box-shadow:0 12px 30px #0000008c}.vm-play-area{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:#00140c80;border:none;border-radius:14px;box-shadow:0 12px 32px #0000004d;min-width:0;width:100%;overflow-x:clip;overflow-y:visible}.vm-play-header{display:flex;align-items:center;gap:12px;padding:0 2px 2px;color:#ffffffbf;font-size:13px}.vm-play-meta{display:flex;align-items:center;gap:10px}.hand-title{font-weight:700;color:var(--gold);display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.1em;text-transform:uppercase}.hand-count{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#ffffff8c}.vm-play-actions{display:flex;align-items:center;gap:4px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.side-btn.compact{width:auto;white-space:nowrap;padding:6px 10px;font-size:12px;min-height:30px;border-radius:6px}.side-btn.primary.compact{padding:6px 12px;font-size:12px;font-weight:700}.side-btn.compact:disabled{opacity:.32}.sort-toggle{display:inline-flex;align-items:center;background:#00000052;border:1px solid rgba(216,178,87,.18);border-radius:999px;padding:2px;gap:2px}.sort-toggle-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#fff9;padding:3px 10px;border-radius:999px;font:inherit;font-size:11px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .12s,color .12s}.sort-toggle-btn:hover{color:var(--cream)}.sort-toggle-btn.on{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:var(--ink);font-weight:800;box-shadow:0 2px 4px #0000004d}.vm-hand{display:flex;--hand-tail: 64px;justify-content:center;padding:12px 2px 6px;min-height:110px;overflow:visible;background:transparent;border:none;min-width:0;width:100%}.hand-card{position:relative;--lift: 0px;--slide: 0px;transition:transform .12s ease;cursor:grab}.hand-card:hover{--lift: -8px;z-index:5}.hand-card.selected{--lift: -16px;z-index:6}.hand-card.selected .playing-card{box-shadow:0 0 0 2px var(--gold),0 10px 20px #00000073,0 1px #ffffffb3 inset}.hand-card-inner:active{cursor:grabbing}.hand-card-drop{position:relative}.hand-card.reorderable{transition:margin-left .22s cubic-bezier(.22,1,.36,1),transform .16s ease}.hand-card-drop-half{position:absolute;top:0;bottom:0;width:50%;pointer-events:none}.hand-card-drop-half.half-before{left:0}.hand-card-drop-half.half-after{right:0}.hand-card:has(~.hand-card.reorder-target-before){--slide: -22px}.hand-card.reorder-target-before,.hand-card.reorder-target-before~.hand-card{--slide: 22px}.hand-card.reorder-target-before .hand-card-drop:before{content:"";position:absolute;top:0;bottom:0;left:-46px;width:42px;border:2px dashed rgba(216,178,87,.85);border-radius:8px;background:linear-gradient(180deg,#d8b2571f,#d8b2570a);box-shadow:0 0 14px #d8b25773;pointer-events:none}.hand-card.reorder-target-after,.hand-card:has(~.hand-card.reorder-target-after){--slide: -22px}.hand-card.reorder-target-after~.hand-card{--slide: 22px}.hand-card.reorder-target-after .hand-card-drop:after{content:"";position:absolute;top:0;bottom:0;right:-46px;width:42px;border:2px dashed rgba(216,178,87,.85);border-radius:8px;background:linear-gradient(180deg,#d8b2571f,#d8b2570a);box-shadow:0 0 14px #d8b25773;pointer-events:none}.staging-points{padding:2px 10px;border-radius:var(--radius-pill);background:#00000059;font-weight:800;font-size:12px;text-transform:none;letter-spacing:0}.staging-points.idle{background:#0000004d;color:#ffffff8c}.staging-points.ok{background:#1d6b3a8c;color:#d8f5e2}.staging-points.short{background:#a23a2a66;color:#ffdad3}.vm-play-footer{display:flex;align-items:center;gap:8px;padding-top:6px;border-top:1px solid rgba(216,178,87,.12)}.vm-play-footer-spacer{flex:1}.meld-band{position:absolute;left:1px;right:1px;top:1px;height:4px;background:var(--meld-accent, var(--gold));border-radius:6px 6px 0 0;box-shadow:inset 0 -1px 1px #00000040;pointer-events:none;z-index:3}.in-card-joker-picker{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%);z-index:40;min-width:240px;padding:8px 10px 10px;border-radius:12px;background:#00140cf5;border:1px solid rgba(216,178,87,.55);box-shadow:0 12px 32px #0000008c;color:var(--cream);cursor:default;animation:icjp-in .14s ease-out}.in-card-joker-picker:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#d8b2578c}@keyframes icjp-in{0%{opacity:0;transform:translate(-50%,6px) scale(.95)}to{opacity:1;transform:translate(-50%) scale(1)}}.icjp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.icjp-preview{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px}.icjp-target{display:inline-flex;align-items:baseline;background:#fbf8ee;padding:2px 8px;border-radius:6px;font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:800;color:#111;min-width:34px;justify-content:center}.icjp-target.red{color:#b23033}.icjp-target.placeholder{background:#ffffff14;color:#fff6;border:1px dashed rgba(255,255,255,.25)}.icjp-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:#00000059;color:var(--cream);width:22px;height:22px;border-radius:50%;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icjp-close:hover{background:#d8b25766}.icjp-pills{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.icjp-pills.suits{grid-template-columns:repeat(4,1fr);margin-bottom:8px}.icjp-pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.14);background:#00000052;color:var(--cream);border-radius:5px;font-weight:800;font-size:12px;padding:5px 4px;cursor:pointer;transition:background .1s,border-color .1s}.icjp-pill:hover{background:#ffffff1a}.icjp-pill.on{background:linear-gradient(180deg,#f7d78a,var(--gold));border-color:var(--gold);color:var(--ink)}.icjp-pills.suits .icjp-pill{font-size:16px;padding:4px}.icjp-pill.suit-red{color:#ff8080}.icjp-pill.suit-red.on{color:#b23033}.icjp-peek{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:5px 8px;border-radius:6px;border:1px solid rgba(216,178,87,.4);background:#00000052;color:var(--cream);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.icjp-peek:hover:not(:disabled){background:#d8b25733}.icjp-peek:disabled{opacity:.5;cursor:not-allowed}.vm-root .ghost{color:var(--cream);border-color:#ffffff26;background:#00000040}.vm-root .ghost:hover:not(:disabled){background:#ffffff1a}.vm-root .ghost.small.on{background:#d8b2573d;border-color:#d8b25780;color:var(--gold)}.vm-root .primary{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:var(--ink);border:none;font-weight:800;box-shadow:0 4px 10px #00000059,0 1px #ffffff59 inset}.vm-root .primary:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.vm-root .primary:disabled{opacity:.55;box-shadow:none}.vm-root .error.inline{background:#a23a2a47;border:1px solid rgba(246,195,186,.5);color:#ffdad3}.vm-root .build-error{padding:8px 12px;border-radius:var(--radius-sm);background:#a23a2a40;border:1px solid rgba(246,195,186,.5);color:#ffdad3;font-size:13px}.vm-root .joker-subs{background:#d8b2571f;border:1px solid rgba(216,178,87,.35);border-radius:var(--radius-sm);padding:8px 12px;display:flex;flex-direction:column;gap:6px}.vm-root .joker-sub-row{display:flex;align-items:center;gap:8px;color:var(--cream);font-size:13px}.vm-root .joker-sub-row select{padding:4px 6px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#00000059;color:var(--cream);font:inherit}.vm-root .phase-pill.phase-play{background:#1d6b3a80;color:#d8f5e2;border-color:#b6e6c566}.vm-root .phase-pill.phase-draw{background:#d8b25747;color:var(--gold);border-color:#d8b25780}.vm-root .phase-pill.phase-ended{background:#a23a2a59;color:#f6c3ba;border-color:#f6c3ba80}.meld-slot-wrap{position:relative;border-radius:8px;padding:2px;transition:box-shadow .15s ease}.meld-slot-wrap.stealable{cursor:pointer;box-shadow:0 0 0 2px #d8b25759,0 0 12px #d8b25759;animation:steal-pulse 2s ease-in-out infinite}@keyframes steal-pulse{0%,to{box-shadow:0 0 0 2px #d8b25759,0 0 8px #d8b2574d}50%{box-shadow:0 0 0 2px #d8b2578c,0 0 18px #d8b2578c}}.meld-slot-wrap.steal-over{box-shadow:0 0 0 3px var(--gold),0 0 22px #d8b257d9;transform:translateY(-4px) scale(1.05);animation:none}.vm-hand{--fan-offset: 32px;align-items:flex-end;padding-top:30px}.hand-card{margin-left:calc(-1 * var(--fan-offset));transform:translate(var(--slide),var(--lift));transition:margin-left .26s cubic-bezier(.22,1,.36,1),transform .16s ease}.hand-card.first{margin-left:0}.hand-card{position:relative}.hand-card:hover .playing-card{box-shadow:0 1px #ffffffb3 inset,0 0 0 2px #d8b257bf,0 0 22px #d8b2578c,0 4px 10px #00000059;filter:brightness(1.04)}.hand-card.selected{transform:translateY(-24px)}.turn-popup{padding:6px 20px;margin:4px 0 0;min-width:170px;max-width:320px;background:linear-gradient(180deg,#f7d78a,var(--gold));color:var(--ink);border-radius:999px;border:1px solid rgba(255,255,255,.5);box-shadow:0 6px 18px #0000004d,inset 0 1px #ffffff80;display:inline-flex;align-items:center;gap:10px;text-align:center;cursor:pointer;font:inherit}.turn-popup-title{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.turn-popup-hint{font-size:11px;color:#1e140abf;letter-spacing:.04em;padding-left:8px;border-left:1px solid rgba(30,20,10,.25)}.turn-popup-dismiss{display:none}.discard-stack{position:relative;width:68px;height:100px}.discard-stack-card{position:absolute;top:0;left:0}.discard-stack-card.top .playing-card{box-shadow:0 1px #ffffffb3 inset,0 6px 14px #00000073}@keyframes just-drawn-glow{0%{box-shadow:0 0 0 6px #d8b257d9,0 0 40px #d8b257e6}50%{box-shadow:0 0 0 4px #d8b2578c,0 0 24px #d8b2578c}to{box-shadow:0 0 0 3px #d8b25759,0 0 12px #d8b2574d}}.hand-card.just-drawn .playing-card{animation:just-drawn-glow 2.4s ease-out}.round-end-anchor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:grid;place-items:center;padding:20px;pointer-events:none}.round-end-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .22s ease-out;pointer-events:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.round-end-modal{position:relative;z-index:1;pointer-events:auto;width:min(440px,90vw);background:linear-gradient(180deg,#124a34,#0a3323);border:1px solid rgba(216,178,87,.5);border-radius:20px;box-shadow:0 25px 60px #000000a6,inset 0 1px #d8b25766;padding:22px 24px 24px;color:var(--cream);display:flex;flex-direction:column;gap:16px}.round-end-header{text-align:center;padding:8px 0 12px;border-bottom:1px solid rgba(216,178,87,.2);display:flex;flex-direction:column;align-items:center;gap:4px}.round-end-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}.round-end-trophy{font-size:44px;line-height:1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.4))}.round-end-winner-name{font-size:26px;font-weight:800;color:var(--cream);margin-top:4px}.round-end-winner-score{font-size:20px;font-weight:800;color:#86efac;letter-spacing:.02em}.round-end-sub{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c;margin-top:2px}.round-end-scores{display:flex;flex-direction:column;gap:6px}.round-end-scores .score-row{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:10px 14px;background:#00000040;border:1px solid rgba(255,255,255,.06);border-radius:10px;font-size:15px}.round-end-scores .score-row.is-winner{background:#d8b25729;border-color:#d8b25780;box-shadow:0 0 0 1px #d8b25759 inset}.round-end-scores .score-rank{font-size:12px;font-weight:800;color:#ffffff80;letter-spacing:.06em}.round-end-scores .score-name{font-weight:700;color:var(--cream)}.round-end-scores .score-value{font-weight:800;font-size:17px;color:var(--cream);min-width:44px;text-align:right}.round-end-scores .score-value.good{color:#86efac}.round-end-scores .score-value.bad{color:#fca5a5}.round-end-cta{align-self:stretch;padding:14px 22px;font-size:15px}.round-end-actions{display:flex;flex-direction:column;gap:8px;align-self:stretch}.round-end-end-early{align-self:stretch;padding:10px 22px;font-size:13px}.virtual-badge{display:inline-block;margin-left:8px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#d8b25740;color:var(--gold-deep);border:1px solid rgba(216,178,87,.55);vertical-align:middle}.vm-standings{min-width:0;padding:8px 10px;background:#00140cd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(216,178,87,.3);border-radius:12px;box-shadow:0 12px 32px #00000059;color:var(--cream);font-size:12px;display:flex;flex-direction:column;gap:8px;overflow:hidden;height:380px}.rail-tabs{display:flex;gap:4px;padding-bottom:6px;border-bottom:1px solid rgba(216,178,87,.22)}.rail-tab{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:#00000047;color:#fff9;padding:6px 8px;border-radius:8px;font:inherit;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .12s,color .12s,border-color .12s}.rail-tab:hover{color:var(--cream)}.rail-tab.on{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:var(--ink);border-color:var(--gold);box-shadow:0 2px 6px #00000059}.rail-tab-round{font-size:10px;padding:1px 6px;border-radius:999px;background:#00000059;color:var(--gold);letter-spacing:.04em}.rail-tab.on .rail-tab-round{background:#00000059;color:var(--gold)}.rail-tab-badge{min-width:16px;height:16px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:900;line-height:16px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000073}.rail-chat{display:flex;flex-direction:column;gap:6px;min-height:0;flex:1;padding:8px 12px 10px}.rail-chat-list{flex:1;min-height:0;overflow-y:auto;padding:2px 0;display:flex;flex-direction:column;gap:8px}.rail-chat-input{display:flex;gap:6px;align-items:stretch;padding-top:6px;border-top:1px solid rgba(216,178,87,.14)}.rail-chat-input textarea{flex:1;resize:none;border:1px solid rgba(216,178,87,.3);border-radius:6px;background:#00000059;color:var(--cream);padding:4px 6px;font:inherit;font-size:12px;min-height:42px}.rail-chat-input textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #d8b2574d}.rail-chat-input-actions{display:flex;align-items:center;gap:4px;align-self:flex-end}.chat-emoji-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:30px;padding:0;border:1px solid rgba(216,178,87,.3);border-radius:6px;background:#00000059;color:#ffffffb3;cursor:pointer;transition:color .12s,background .12s,border-color .12s}.chat-emoji-btn:hover,.chat-emoji-btn[aria-expanded=true]{color:var(--gold);border-color:var(--gold);background:#d8b25724}.chat-send-btn{min-width:60px}.chat-emoji-picker{position:fixed;z-index:200;width:260px;max-height:240px;padding:8px;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;background:#00140cfa;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(216,178,87,.4);border-radius:10px;box-shadow:0 12px 32px #0000008c;overflow-y:auto}.chat-emoji-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:inherit;padding:4px 0;font-size:18px;line-height:1;cursor:pointer;border-radius:4px;transition:background .1s ease}.chat-emoji-cell:hover,.chat-emoji-cell:focus{background:#d8b25733;outline:none}.standings-title{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);padding-bottom:6px;border-bottom:1px solid rgba(216,178,87,.2)}.standings-round{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:var(--ink);border-radius:6px;padding:2px 10px;font-weight:800;font-size:13px;letter-spacing:.06em;box-shadow:0 2px 6px #00000059}.standings-grid{display:grid;grid-template-columns:34px repeat(var(--cols, 4),minmax(0,1fr));gap:2px;font-variant-numeric:tabular-nums;overflow-y:auto;min-height:0;padding-right:2px}.sg-corner{background:transparent}.sg-player-head{padding:4px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#ffffffb8;text-align:center;border-bottom:1px solid rgba(216,178,87,.2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}.sg-player-head.is-me{color:var(--gold)}.sg-player-head.is-leader{color:#86efac}.sg-total-label,.sg-round-label{display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.06em;color:#ffffff8c;padding:4px 2px}.sg-total-label{background:#d8b25726;color:var(--gold);border-radius:4px;font-weight:800;text-transform:uppercase}.sg-cell,.sg-total-cell{padding:4px;text-align:center;font-weight:700;border-radius:4px;background:#00000047;color:var(--cream)}.sg-cell.blank{color:#ffffff4d}.sg-cell.good{color:#86efac;background:#1d6b3a47}.sg-cell.bad{color:#fca5a5;background:#a23a2a47}.sg-total-cell{background:#d8b25724;font-size:14px;font-weight:800}.sg-total-cell.good{color:#86efac}.sg-total-cell.bad{color:#fca5a5}.sg-total-cell.is-leader{box-shadow:inset 0 0 0 1px #86efac80}.vm-hand.drop-over{background:#d8b25729;box-shadow:inset 0 0 0 2px #d8b25780}.discard-stack.clickable{cursor:pointer;transition:transform .12s ease,filter .12s ease}.discard-stack.clickable:hover{transform:translateY(-3px);filter:brightness(1.08)}.discard-stack.staged{transform:translateY(-8px);filter:brightness(1.12)}.discard-stack.staged .discard-stack-card.top .playing-card{box-shadow:0 0 0 2px #d8b257e6,0 10px 22px #00000080}.discard-stack-card.cashed .playing-card{filter:brightness(.85) saturate(.9)}.bot-debug-toggle{position:fixed;top:62px;right:12px;z-index:210;padding:3px 8px;border-radius:999px;border:1px solid #22c55e;background:#000000d9;color:#b6ffb0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;font-weight:700;letter-spacing:.06em;cursor:pointer;box-shadow:0 4px 12px #0006}.bot-debug-toggle:hover{background:#22c55e33}.bot-debug-toggle.on{background:#22c55e;color:#041008}.bot-debug-panel{position:fixed;top:92px;right:12px;z-index:205;width:340px;max-height:70vh;overflow-y:auto;padding:8px 10px;background:#000000eb;color:#b6ffb0;border:1px solid #22c55e;border-radius:10px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;line-height:1.4;box-shadow:0 8px 24px #0000008c}.bot-debug-title{font-weight:800;letter-spacing:.12em;color:#22c55e;margin-bottom:4px}.bot-debug-line{white-space:pre-wrap;word-break:break-word}.bot-debug-line.muted{color:#fff6}.hand-tail-slot{flex:0 0 var(--hand-tail);align-self:stretch;position:relative}.hand-lead-spacer{flex:0 0 var(--hand-tail);align-self:stretch;pointer-events:none}.hand-tail-slot.over:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:48px;border:2px dashed rgba(216,178,87,.85);border-radius:8px;background:linear-gradient(180deg,#d8b2571f,#d8b2570a);box-shadow:0 0 14px #d8b25773;pointer-events:none}.vm-side-actions{min-width:0;color:var(--cream);display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:8px;padding-bottom:14px}.vm-side-actions .draft-pill{order:-2}.vm-side-actions .side-primary{order:2}.vm-side-actions .side-group{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding-top:0;border-top:none}.vm-side-actions .side-btn{white-space:nowrap;padding:9px 14px;font-size:13px}.vm-side-actions .primary.side-btn{padding:11px 18px;font-weight:700;font-size:14px}.vm-side-actions .side-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#f6efe080}.vm-side-actions .side-hint{font-size:11px;text-align:right;max-width:230px}.vm-side-actions .side-hint.danger{color:#ff9d86}.side-actions-title{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding-bottom:6px;border-bottom:1px solid rgba(216,178,87,.22)}.side-group{display:flex;flex-direction:column;gap:6px}.side-group+.side-group{padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.side-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c;padding:0 2px}.side-hint{font-size:11px;line-height:1.3;color:#ffffffb3;padding:2px 4px}.side-hint.danger{color:#f6b0b0;background:#b33c3c2e;border:1px solid rgba(255,130,130,.35);border-radius:6px;padding:4px 8px}.side-btn-row{display:flex;gap:6px;flex-wrap:nowrap}.side-btn{width:100%;justify-content:center;padding:10px 12px;font-weight:700;font-size:13px}.side-btn-row .side-btn{width:auto;flex:1 1 0;min-width:0;padding:10px 6px;font-size:12px}.side-btn.primary{padding:10px 12px;font-size:14px}.sg-round-label.is-current{color:var(--gold);font-weight:800}.sg-cell.is-current{box-shadow:inset 0 0 0 1px #d8b25759}.vm-root .joker-subs{background:#00000059;border:1px solid rgba(216,178,87,.35);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:12px}.joker-picker{display:flex;flex-direction:column;gap:10px}.joker-picker-head{display:flex;align-items:center;gap:12px}.joker-picker-preview{display:flex;align-items:center;gap:12px;color:var(--cream);font-weight:700}.joker-picker-arrow{font-size:22px;color:var(--gold);font-weight:800;line-height:1}.joker-picker-target{min-width:60px;height:52px;padding:4px 14px;border-radius:8px;background:#fbf8ee;border:1px solid rgba(0,0,0,.15);box-shadow:0 4px 10px #00000059;display:inline-flex;align-items:center;justify-content:center;gap:2px;font-family:Georgia,Times New Roman,serif;font-size:24px;font-weight:800;letter-spacing:-.01em}.joker-picker-target.red{color:#b23033}.joker-picker-target.black{color:#111}.joker-picker-target.placeholder{background:#ffffff0f;color:#ffffff59;border:1px dashed rgba(255,255,255,.25);box-shadow:none}.joker-picker-target-suit{font-size:24px}.joker-picker-section{display:flex;align-items:center;gap:12px}.joker-picker-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);min-width:40px;font-weight:800}.joker-picker-pills{display:flex;gap:5px;flex-wrap:wrap;flex:1}.joker-picker-pill{min-width:30px;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:#00000052;color:var(--cream);font-weight:800;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .12s,border-color .12s,transform 80ms}.joker-picker-pill:hover{background:#ffffff1a;border-color:#d8b25766}.joker-picker-pill:active{transform:translateY(1px)}.joker-picker-pill.on{background:linear-gradient(180deg,#f7d78a,var(--gold));border-color:var(--gold);color:var(--ink);box-shadow:0 2px 6px #d8b25780,inset 0 1px #ffffff80}.joker-picker-pill.suit-red{color:#ff8080}.joker-picker-pill.suit-black{color:var(--cream)}.joker-picker-pill.suit-red.on{color:#b23033}.joker-picker-pill.suit-black.on{color:#111}.joker-picker-pills.suits .joker-picker-pill{min-width:44px;font-size:20px;padding:4px 8px}.joker-picker.compact{gap:6px}.joker-picker.compact .joker-picker-head{gap:8px;justify-content:space-between}.joker-picker.compact .joker-picker-preview{gap:8px}.joker-picker.compact .joker-picker-token{font-size:22px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));line-height:1}.joker-picker.compact .joker-picker-arrow{font-size:16px}.joker-picker.compact .joker-picker-target{min-width:46px;height:36px;padding:2px 8px;font-size:18px;border-radius:6px}.joker-picker.compact .joker-picker-target-suit{font-size:18px}.joker-picker.compact .joker-picker-count{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff80;font-weight:700}.joker-picker.compact .joker-picker-section{gap:0}.joker-picker.compact .joker-picker-pills{gap:3px}.joker-picker.compact .joker-picker-pill{min-width:24px;padding:4px 6px;font-size:12px;border-radius:5px}.joker-picker.compact .joker-picker-pills.suits .joker-picker-pill{min-width:36px;font-size:16px;padding:3px 6px}.vm-root .joker-subs{padding:8px 10px}.mode-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 12px}.mode-row-label{font-weight:700;color:var(--ink);font-size:14px}.mode-toggle{display:inline-flex;border:1px solid var(--line-soft);border-radius:999px;padding:3px;background:var(--cream-2)}.mode-toggle-btn{padding:6px 14px;border-radius:999px;border:none;background:transparent;color:var(--ink-soft);font-weight:700;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.mode-toggle-btn:hover:not(.on){color:var(--ink)}.mode-toggle-btn.on{background:linear-gradient(180deg,#f7d78a,var(--gold));color:var(--ink);box-shadow:0 2px 4px #00000026}.mode-row-hint{font-size:12px;color:var(--ink-soft);font-style:italic}.recall-chip-self{background:var(--gold-soft)!important;border-color:#d8b25780!important;color:var(--gold-deep)!important;font-weight:800}.recall-chip-self .chip-meta{color:var(--gold-deep);opacity:.75}.opp.opp-team-A{border-left:3px solid var(--team-a);background:linear-gradient(90deg,var(--team-a-soft) 0%,rgba(0,0,0,.32) 30%)}.opp.opp-team-B{border-left:3px solid var(--team-b);background:linear-gradient(90deg,var(--team-b-soft) 0%,rgba(0,0,0,.32) 30%)}.opp-badge.team-A{background:var(--team-a-soft);color:#cbe4f7;border-color:var(--team-a-strong)}.opp-badge.team-B{background:var(--team-b-soft);color:#ffd0d0;border-color:var(--team-b-strong)}.standings-teams{display:flex;flex-direction:column;gap:6px;padding:8px 8px 10px;border-bottom:1px solid rgba(216,178,87,.22);margin-bottom:6px}.standings-team-line{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:8px;background:#00000052;border:1px solid transparent}.standings-team-line.team-A{border-color:var(--team-a-strong);background:var(--team-a-soft)}.standings-team-line.team-B{border-color:var(--team-b-strong);background:var(--team-b-soft)}.standings-team-tag{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--cream);font-weight:800}.standings-team-total{font-size:16px;font-weight:800;color:var(--cream);font-variant-numeric:tabular-nums}.standings-team-total.good{color:#86efac}.standings-team-total.bad{color:#fca5a5}.standings-team-total.blank{color:#fff6}.lobby-page{max-width:640px;margin:0 auto;padding:20px 16px 40px;color:var(--cream);display:flex;flex-direction:column;gap:18px}.lobby-back{align-self:flex-start}.lobby-header{text-align:center;padding:12px 0;display:flex;flex-direction:column;align-items:center;gap:4px}.lobby-eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:800}.lobby-header h1{margin:4px 0 0;font-size:28px;color:var(--cream);letter-spacing:-.01em}.lobby-sub{color:#ffffffb3;font-size:14px;line-height:1.5;max-width:460px;margin:4px 0 0}.lobby-sub strong{color:var(--gold)}.lobby-msg{color:#ffffffb3;text-align:center}.lobby-msg.panel{color:var(--ink);padding:16px}.lobby-seat-names{list-style:none;padding:8px 0 0;margin:12px 0 0;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:4px;color:var(--ink);text-align:center;font-size:14px}.lobby-seats{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.lobby-seat{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"num name actions" "url url url";align-items:center;gap:6px 14px;padding:14px 16px;background:linear-gradient(180deg,#00140ce6,#000a07e6);border:1px solid rgba(216,178,87,.35);border-radius:14px;box-shadow:0 10px 24px #00000059,inset 0 1px #d8b25740}.lobby-seat.team-A{border-left:4px solid var(--team-a)}.lobby-seat.team-B{border-left:4px solid var(--team-b)}.lobby-seat-num{grid-area:num;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:800;padding:4px 10px;background:#d8b25726;border:1px solid rgba(216,178,87,.35);border-radius:999px}.lobby-seat-name{grid-area:name;font-size:18px;font-weight:800;color:var(--cream);display:flex;align-items:center;gap:10px;min-width:0}.lobby-seat-name .team-tag{font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid;background:#00000059}.lobby-seat-name .team-tag.team-A{color:#cbe4f7;border-color:var(--team-a-strong);background:var(--team-a-soft)}.lobby-seat-name .team-tag.team-B{color:#ffd0d0;border-color:var(--team-b-strong);background:var(--team-b-soft)}.lobby-seat-actions{grid-area:actions;display:flex;gap:6px;flex-wrap:wrap}.lobby-seat-actions .primary.lobby-sit{padding:8px 16px;font-size:13px;font-weight:800}.lobby-seat-actions .ghost{padding:8px 12px;font-size:12px;border-color:#d8b25759;color:var(--cream);background:#0000004d}.lobby-seat-actions .ghost:hover{background:#ffffff14}.lobby-seat-url{grid-area:url;margin-top:4px;font-size:12px;color:#ffffff8c}.lobby-seat-url summary{cursor:pointer;padding:4px 0;color:#ffffff8c;font-size:11px;letter-spacing:.06em;outline:none}.lobby-seat-url[open] summary{color:var(--gold)}.lobby-seat-url input{width:100%;margin-top:4px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:#00000073;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:var(--cream)}.lobby-footer{display:flex;justify-content:center;padding-top:4px}.lobby-footer .ghost{color:#fff9}.joker-picker-head-right{display:inline-flex;align-items:center;gap:8px}.joker-peek-btn{padding:4px 10px;border-radius:999px;border:1px solid rgba(216,178,87,.5);background:#d8b25726;color:var(--gold);font-weight:800;font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.joker-peek-btn:hover:not(:disabled){background:#d8b2574d}.joker-peek-btn:disabled{opacity:.55;cursor:default}.peek-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:950;background:#0009;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:24px}.peek-modal{width:min(560px,92vw);max-height:min(80vh,640px);overflow:hidden;background:linear-gradient(180deg,#124a34,#0a3323);border:1px solid rgba(216,178,87,.5);border-radius:18px;box-shadow:0 24px 60px #0009;color:var(--cream);display:flex;flex-direction:column}.peek-modal-head{padding:18px 20px 12px;text-align:center;border-bottom:1px solid rgba(216,178,87,.2)}.peek-modal-eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:800}.peek-modal-head h2{margin:4px 0 6px;font-size:20px;color:var(--cream)}.peek-modal-sub{margin:0;font-size:12px;color:#fff9;font-style:italic}.peek-modal-cards{padding:16px 20px;display:flex;flex-wrap:wrap;gap:8px;overflow-y:auto;justify-content:center;background:#0003}.peek-modal-foot{padding:12px 20px;display:flex;justify-content:flex-end;border-top:1px solid rgba(216,178,87,.2)}.peek-modal-foot .primary{padding:8px 18px;font-size:13px}.cut-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:960;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px}.cut-modal{width:min(520px,92vw);background:linear-gradient(180deg,#124a34,#0a3323);border:1px solid rgba(216,178,87,.5);border-radius:18px;box-shadow:0 24px 60px #0009;color:var(--cream);display:flex;flex-direction:column;overflow:hidden}.cut-modal-head{padding:18px 20px 12px;text-align:center}.cut-modal-eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:800}.cut-modal-head h2{margin:4px 0 6px;font-size:22px;color:var(--cream)}.cut-modal-sub{margin:6px 0 0;font-size:12px;color:#ffffffa6;font-style:italic;padding:0 20px 12px;text-align:center}.cut-deck-picker{padding:14px 24px 6px;display:flex;flex-direction:column;align-items:center;gap:10px}.cut-deck-track{position:relative;width:180px;display:flex;flex-direction:column;touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize;outline:none}.cut-deck-track:focus-visible{filter:drop-shadow(0 0 0 2px var(--gold))}.cut-deck-top,.cut-deck-bottom{position:relative;width:100%;border-radius:4px;background:repeating-linear-gradient(to bottom,#f4e3b8 0,#f4e3b8 2px,#b89a5c 2px,#b89a5c 3px);border:1px solid #2b1d0a;box-shadow:inset 0 0 0 1px #ffffff59,inset 6px 0 8px -6px #0000008c,inset -6px 0 8px -6px #0000008c,0 10px 20px #0000008c;min-height:24px;overflow:hidden}.cut-deck-top{box-shadow:inset 0 0 0 1px #fff6,inset 6px 0 8px -6px #0000008c,inset -6px 0 8px -6px #0000008c,0 14px 26px #000000b3}.cut-deck-gap{position:relative;display:grid;place-items:center}.cut-deck-gap-line{width:108%;height:2px;border-top:2px dashed rgba(216,178,87,.85)}.cut-deck-hint{margin:4px 0 0;font-style:italic;font-size:11px;color:#ffffff8c;text-align:center}.cut-modal-foot{padding:12px 20px 18px;display:flex;justify-content:center}.cut-modal-foot .primary{padding:10px 26px;font-size:14px}.cut-modal-reveal{padding:20px;display:grid;place-items:center;background:#00000040;perspective:900px}.cut-modal-noreveal{color:#ffffff80;font-size:12px;padding:40px 0}.cut-modal-back-card{width:74px;height:108px;border-radius:8px;background:repeating-linear-gradient(45deg,#d8b2576b 0,#d8b2576b 6px,#d8b25724 6px,#d8b25724 12px),linear-gradient(180deg,#124a34,#0a3323);border:1.5px solid rgba(216,178,87,.55);box-shadow:0 10px 20px #0000008c}.cut-modal-deck-wait{padding:30px 0 20px;display:grid;place-items:center}.cut-modal-deck-back{width:74px;height:108px;border-radius:8px;background:repeating-linear-gradient(45deg,#d8b2576b 0,#d8b2576b 6px,#d8b25724 6px,#d8b25724 12px),linear-gradient(180deg,#124a34,#0a3323);border:1.5px solid rgba(216,178,87,.55);box-shadow:0 8px 16px #00000080;animation:cut-modal-deck-pulse 1.6s ease-in-out infinite}@keyframes cut-modal-deck-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.standings-teams{display:flex;flex-direction:column;gap:8px;padding:4px 4px 12px;border-bottom:1px solid rgba(216,178,87,.22);margin-bottom:8px}.standings-team-card{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-radius:10px;background:#00000052;border:1px solid transparent}.standings-team-card.team-A{border-color:var(--team-a-strong);background:linear-gradient(180deg,var(--team-a-soft),rgba(0,0,0,.32))}.standings-team-card.team-B{border-color:var(--team-b-strong);background:linear-gradient(180deg,var(--team-b-soft),rgba(0,0,0,.32))}.standings-team-card.is-me{box-shadow:0 0 0 1px #d8b2578c}.standings-team-header{display:flex;align-items:center;justify-content:space-between}.standings-team-players{display:flex;flex-wrap:wrap;gap:4px 6px}.standings-team-player{font-size:11px;color:var(--cream);font-weight:700;padding:2px 8px;background:#00000059;border:1px solid rgba(255,255,255,.08);border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.standings-team-player.is-me{background:#d8b25733;color:var(--gold);border-color:#d8b2578c}.vm-root.is-my-turn .vm-play-area{border-color:#d8b2578c;overflow-x:visible;overflow-y:visible}.vm-play-area{position:relative}.chat-bubble-closed{position:fixed;right:20px;bottom:20px;width:52px;height:52px;border-radius:50%;border:2px solid rgba(216,178,87,.6);background:linear-gradient(180deg,#124a34,#0a3323);color:var(--gold);font-size:22px;cursor:pointer;z-index:100;box-shadow:0 6px 18px #00000080;display:grid;place-items:center;transition:transform .12s ease,filter .12s ease}.chat-bubble-closed:hover{transform:translateY(-2px);filter:brightness(1.1)}.chat-bubble-icon{line-height:1}.chat-bubble-badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#c33;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;box-shadow:0 2px 6px #0006}.chat-panel{position:fixed;right:20px;bottom:20px;width:320px;max-width:calc(100vw - 40px);height:420px;max-height:calc(100vh - 40px);background:linear-gradient(180deg,#144a34,#0a2f21);border:1px solid rgba(216,178,87,.4);border-radius:12px;box-shadow:0 12px 32px #0000008c;z-index:100;display:grid;grid-template-rows:auto 1fr auto auto;overflow:hidden;color:#ffffffe6}.chat-panel-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid rgba(216,178,87,.25);background:#00000040}.chat-panel-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.chat-panel-close{padding:2px 8px}.chat-panel-list{overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.chat-empty{text-align:center;margin:auto}.chat-msg{max-width:82%;padding:6px 10px 7px;border-radius:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.06);align-self:flex-start;line-height:1.35}.chat-msg-mine{align-self:flex-end;background:linear-gradient(180deg,#d8b25738,#d8b25724);border-color:#d8b2574d}.chat-msg-head{display:flex;gap:8px;align-items:baseline;margin-bottom:1px}.chat-msg-name{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}.chat-msg-mine .chat-msg-name{color:#f6efe0d9}.chat-msg-time{font-size:10px;color:#ffffff59}.chat-msg-body{font-size:13px;line-height:1.35;word-wrap:break-word;white-space:pre-wrap}.chat-msg-reaction{background:transparent!important;border-color:transparent!important;padding:2px 6px 4px!important}.chat-msg-reaction .chat-msg-body{display:flex;padding:2px 0}.rail-chat-reactions{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:6px 0;border-top:1px solid rgba(216,178,87,.12)}.reaction-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1 1 0;min-width:0;padding:2px 0;border:1px solid rgba(216,178,87,.18);border-radius:8px;background:#00000047;color:inherit;cursor:pointer;transition:background .1s,border-color .1s,transform 60ms;display:flex;align-items:center;justify-content:center}.reaction-btn:hover:not(:disabled){background:#d8b2572e;border-color:#d8b25780}.reaction-btn:active:not(:disabled){transform:scale(.92)}.reaction-btn:disabled{opacity:.4;cursor:not-allowed}.reaction-btn-img{width:28px;height:28px;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.rx-sprite{--rx-size: 96px;--rx-frames: 24;--rx-duration: 1.6s;width:var(--rx-size);height:var(--rx-size);background-repeat:no-repeat;background-size:calc(var(--rx-size) * var(--rx-frames)) var(--rx-size);background-position:0 0;image-rendering:auto;transform:translateZ(0);will-change:background-position;animation:rx-play var(--rx-duration) steps(var(--rx-frames)) infinite;display:inline-block;vertical-align:middle}.rx-sprite-once{animation-iteration-count:1}@keyframes rx-play{0%{background-position:0 0}to{background-position:calc(-1 * var(--rx-size) * var(--rx-frames)) 0}}.vm-bubble-reaction{background:transparent!important;color:inherit!important;padding:0!important;border-radius:0!important;box-shadow:none!important;line-height:1;max-width:none!important}.chat-panel-error{padding:6px 12px;background:#c83c3c26;color:#f7c1c1;font-size:12px}.chat-panel-input{display:grid;grid-template-columns:1fr auto;gap:6px;padding:8px;border-top:1px solid rgba(216,178,87,.25);background:#00000040}.chat-panel-input textarea{resize:none;padding:6px 8px;border-radius:6px;border:1px solid rgba(216,178,87,.35);background:#00000059;color:#fff;font-family:inherit;font-size:13px}.chat-panel-input textarea:focus{outline:none;border-color:var(--gold)}
