.game-analysis-replay{color:var(--color-text,#f4ead7);background:#1414148c;border:1px solid #ffffff14;border-radius:1rem;flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex}.game-analysis-replay-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.game-analysis-replay-kicker{text-transform:uppercase;letter-spacing:.12em;color:#f4ead78c;margin:0 0 .25rem;font-size:.75rem}.game-analysis-replay-head h3{margin:0;font-size:1.4rem}.game-analysis-replay-sub{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 0;display:flex}.bucket-chip{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:999px;padding:.15rem .55rem;font-size:.78rem}.bucket-chip-best{color:#82d49b;border-color:#82d49b59}.bucket-chip-inaccuracy{color:#e8c46a;border-color:#e8c46a59}.bucket-chip-mistake{color:#e08383;border-color:#e0838359}.game-analysis-replay-filter{background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;gap:.15rem;padding:.25rem;display:inline-flex}.game-analysis-replay-filter button{color:#f4ead7b3;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.35rem .85rem;font-size:.85rem}.game-analysis-replay-filter button.is-active{color:#1a1a1a;background:#f4ead7eb}.game-analysis-replay-body{grid-template-columns:minmax(220px,1fr) minmax(280px,2fr) minmax(220px,1fr);align-items:stretch;gap:1rem;display:grid}.game-analysis-replay-list{flex-direction:column;gap:.35rem;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.game-analysis-replay-list-item{width:100%;color:inherit;text-align:left;cursor:pointer;background:#ffffff08;border:1px solid #ffffff0f;border-radius:.6rem;grid-template-columns:1.5rem 1fr auto;align-items:center;gap:.6rem;padding:.55rem .75rem;transition:background .12s,border-color .12s;display:grid}.game-analysis-replay-list-item:hover{background:#ffffff0f}.game-analysis-replay-list-item.is-active{background:#f4ead70f;border-color:#f4ead766}.game-analysis-replay-list-content{flex-direction:column;gap:.1rem;min-width:0;display:flex}.game-analysis-replay-list-headline{font-size:.85rem;font-weight:600}.game-analysis-replay-list-body{color:#f4ead7a6;white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.game-analysis-replay-list-meta{color:#f4ead78c;font-variant-numeric:tabular-nums;font-size:.78rem}.bucket-glyph{border-radius:999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.78rem;font-weight:700;display:inline-flex}.bucket-glyph-best{color:#82d49b;background:#82d49b2e}.bucket-glyph-inaccuracy{color:#e8c46a;background:#e8c46a2e}.bucket-glyph-mistake{color:#e08383;background:#e083832e}.game-analysis-replay-board{background:#0000004d;border:1px solid #ffffff0f;border-radius:.85rem;min-height:320px;padding:.9rem}.game-analysis-replay-board-inner{flex-direction:column;gap:.85rem;height:100%;display:flex}.game-analysis-replay-banner{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.game-analysis-replay-banner>div{background:#ffffff0a;border-radius:.5rem;padding:.4rem .55rem}.game-analysis-replay-banner-kicker{letter-spacing:.1em;text-transform:uppercase;color:#f4ead780;margin-bottom:.15rem;font-size:.66rem;display:block}.game-analysis-replay-banner strong{font-size:.95rem}.game-analysis-replay-trick-kicker{letter-spacing:.1em;text-transform:uppercase;color:#f4ead780;margin-bottom:.4rem;font-size:.7rem;display:block}.game-analysis-replay-hand-cards{flex-wrap:wrap;gap:.4rem;display:flex}.game-analysis-replay-hand-cards .card-face{width:56px}.trick-cross{aspect-ratio:1.05;background:#ffffff05;border:1px dashed #ffffff14;border-radius:.7rem;grid-template-rows:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;gap:.35rem;width:100%;max-width:280px;margin:0 auto;padding:.5rem;display:grid;position:relative}.trick-cross-slot{flex-direction:column;justify-content:center;align-items:center;gap:.2rem;display:flex;position:relative}.trick-cross-slot-top{grid-area:1/2}.trick-cross-slot-right{grid-area:2/3}.trick-cross-slot-bottom{grid-area:3/2}.trick-cross-slot-left{grid-area:2/1}.trick-cross-slot .card-face{width:50px}.trick-cross-order{color:#1a1a1a;background:#f4ead7eb;border-radius:999px;justify-content:center;align-items:center;width:1.1rem;height:1.1rem;font-size:.68rem;font-weight:700;display:inline-flex;position:absolute;top:-4px;right:8px;box-shadow:0 1px 4px #0006}.trick-cross-seat{letter-spacing:.08em;text-transform:uppercase;color:#f4ead78c;font-size:.62rem}.trick-cross-empty{color:#f4ead72e;font-size:1.2rem}.game-analysis-replay-trick-empty{color:#f4ead799;margin:0;font-size:.85rem;font-style:italic}.game-analysis-replay-detail{background:#00000040;border:1px solid #ffffff0f;border-radius:.85rem;padding:.9rem}.game-analysis-replay-detail-inner{flex-direction:column;gap:.85rem;display:flex}.game-analysis-replay-detail header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.bucket-pill{border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:600}.bucket-pill-best{color:#82d49b;background:#82d49b2e}.bucket-pill-inaccuracy{color:#e8c46a;background:#e8c46a2e}.bucket-pill-mistake{color:#e08383;background:#e083832e}.game-analysis-replay-delta{font-variant-numeric:tabular-nums;color:#f4ead7b3;font-size:.85rem}.game-analysis-replay-decision{grid-template-columns:1fr 1fr;gap:.5rem;margin:0;display:grid}.game-analysis-replay-decision dt{letter-spacing:.1em;text-transform:uppercase;color:#f4ead780;font-size:.7rem}.game-analysis-replay-decision dd{margin:.15rem 0 0;font-size:.95rem;font-weight:600}.game-analysis-replay-alts{flex-direction:column;gap:.5rem;display:flex}.game-analysis-replay-alts-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.game-analysis-replay-alts-help{color:#f4ead780;cursor:help;font-size:.7rem}.alt-row{background:#ffffff05;border:1px solid #0000;border-radius:.45rem;grid-template-columns:minmax(0,1fr) 80px auto;align-items:center;gap:.5rem;padding:.4rem .55rem;font-size:.85rem;display:grid}.alt-row.is-recommended{background:#82d49b14;border-color:#82d49b8c}.alt-row.is-actual:not(.is-recommended){background:#e8c46a0f;border-color:#e8c46a73}.alt-label{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.45rem;font-weight:600;display:inline-flex;overflow:hidden}.alt-tag{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.1rem .4rem;font-size:.65rem;font-weight:700}.alt-tag-best{color:#82d49b;background:#82d49b38}.alt-tag-played{color:#e8c46a;background:#e8c46a38}.alt-bar{background:#ffffff14;border-radius:999px;height:6px;display:inline-block;overflow:hidden}.alt-bar-fill{border-radius:inherit;background:linear-gradient(90deg,#82d49b73,#82d49bd9);height:100%;display:block}.alt-row.is-actual:not(.is-recommended) .alt-bar-fill{background:linear-gradient(90deg,#e8c46a73,#e8c46ad9)}.alt-score{font-variant-numeric:tabular-nums;color:#f4ead7b3;font-size:.82rem}.game-analysis-empty{color:#f4ead7a6;margin:0;font-size:.9rem}@media (max-width:900px){.game-analysis-replay-body{grid-template-columns:1fr}.game-analysis-replay-list{max-height:220px}.game-analysis-replay-banner{grid-template-columns:repeat(2,1fr)}}
