.adv-stats{flex-direction:column;gap:1.5rem;width:100%;display:flex}.adv-stats-loading,.adv-stats-empty{text-align:center;color:var(--text-secondary);padding:1.25rem;font-style:italic}.adv-stats-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.adv-stat-card{background:var(--bg-secondary);text-align:center;border:1px solid #ffffff0f;border-radius:8px;padding:1rem}.adv-stat-value{font-size:1.85rem;font-weight:700;line-height:1.1}.adv-stat-accent{color:var(--accent)}.adv-stat-label{color:var(--text-primary);margin-top:.25rem;font-size:.9rem;font-weight:600}.adv-stat-sub{color:var(--text-secondary);margin-top:.4rem;font-size:.78rem}.adv-section{background:var(--bg-secondary);border:1px solid #ffffff0f;border-radius:8px;padding:1rem 1.25rem}.adv-section-title{color:var(--text-primary);letter-spacing:.02em;margin:0 0 .85rem;font-size:1rem;font-weight:600}.adv-bar-row{grid-template-columns:110px 1fr 110px;align-items:center;gap:.75rem;padding:.35rem 0;display:grid}.adv-bar-label{color:var(--text-primary);font-size:.85rem}.adv-bar-track{background:#ffffff0f;border-radius:6px;height:10px;overflow:hidden}.adv-bar-fill{background:var(--success);border-radius:6px;height:100%;transition:width .3s}.adv-bar-value{text-align:right;color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:.85rem}.adv-bar-meta{color:var(--text-secondary);margin-left:.25rem;font-size:.75rem}.adv-rating-header{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.adv-rating-current{color:var(--accent);font-size:1.5rem;font-weight:700}.adv-rating-diff-up{color:var(--success);font-size:.85rem}.adv-rating-diff-down{color:var(--danger);font-size:.85rem}.adv-rating-svg{width:100%;height:180px;display:block}.adv-rating-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.adv-rating-baseline{stroke:#ffffff1a;stroke-width:1px;stroke-dasharray:4 4}.adv-rating-dot{fill:var(--accent)}.adv-rating-empty{text-align:center;color:var(--text-secondary);padding:1rem;font-style:italic}.adv-cube-chips{flex-wrap:wrap;gap:.5rem;display:flex}.adv-cube-chip{background:var(--bg-secondary);color:var(--text-primary);border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.85rem;display:inline-flex}.adv-cube-chip-label{color:var(--text-secondary)}.adv-cube-chip-value{color:var(--text-primary);font-weight:700}.adv-cube-chip--best{border-color:var(--success);color:var(--success)}.adv-cube-chip--best .adv-cube-chip-value{color:var(--success)}.adv-cube-chip--borderline{border-color:var(--accent);color:var(--accent)}.adv-cube-chip--borderline .adv-cube-chip-value{color:var(--accent)}.adv-cube-chip--mistake{color:#e67e22;border-color:#e67e22}.adv-cube-chip--mistake .adv-cube-chip-value{color:#e67e22}.adv-cube-chip--blunder{border-color:var(--danger);color:var(--danger)}.adv-cube-chip--blunder .adv-cube-chip-value{color:var(--danger)}@media (width<=600px){.adv-stat-value{font-size:1.5rem}.adv-bar-row{grid-template-columns:90px 1fr 90px;gap:.5rem}.adv-bar-label,.adv-bar-value{font-size:.78rem}}.season-history{border-top:1px solid #ffffff14;margin-top:1.5rem;padding-top:1rem}.season-history-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.season-history-title{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:600}.season-history-peak{letter-spacing:.02em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:.2rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.season-history-empty{text-align:center;color:var(--text-secondary);padding:1rem;font-style:italic}.season-history-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;display:grid}.season-card{background:var(--bg-secondary);border:1px solid #ffffff14;border-radius:8px;padding:.85rem 1rem;transition:border-color .15s,background .15s}.season-card--active{border-color:var(--accent);background:linear-gradient(180deg, #d4a84312, var(--bg-secondary))}.season-card-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.season-card-name{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:600}.season-card-tier{letter-spacing:.02em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:.1rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.season-card-dates{color:var(--text-secondary);margin-bottom:.4rem;font-size:.8rem}.season-card-active-label{letter-spacing:.02em;color:var(--accent);text-transform:uppercase;margin-bottom:.4rem;font-size:.7rem;font-weight:600;display:inline-block}.season-card-stats{grid-template-columns:1fr 1fr;gap:.4rem 1rem;margin:0;display:grid}.season-card-stat{flex-direction:column;display:flex}.season-card-stat dt{letter-spacing:.02em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.1rem;font-size:.7rem}.season-card-stat dd{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:600}.season-card-meta{color:var(--text-secondary);margin-left:.25rem;font-size:.8rem;font-weight:400}@media (width<=600px){.season-history-grid{grid-template-columns:1fr}}.dashboard{width:100%}.dashboard-overview{flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:1.5rem;display:flex}.dashboard-rating{color:#ffc107}.dashboard-wins{color:#4caf50}.dashboard-losses{color:var(--danger)}.dashboard-abandoned{color:#ff9800}.dashboard-tabs{border-bottom:1px solid #ffffff14;gap:.25rem;margin-bottom:1rem;display:flex}.dashboard-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1rem;font-size:.9rem;font-weight:600;transition:color .15s,border-color .15s}.dashboard-tab:hover:not(:disabled){color:var(--text-primary)}.dashboard-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.dashboard-table th,.dashboard-table td{text-align:center}.dashboard-table th:first-child,.dashboard-table td:first-child,.dashboard-table th:nth-child(2),.dashboard-table td:nth-child(2){text-align:left}.color-indicator{vertical-align:middle;border-radius:50%;width:16px;height:16px;display:inline-block}.color-white{background:#f0f0f0;border:1px solid #ffffff4d}.color-black{background:#333;border:1px solid #ffffff26}.result-badge{border-radius:12px;padding:.2rem .6rem;font-size:.8rem;font-weight:600;line-height:1.2;display:inline-block}.result-win{color:#4caf50;background:#4caf5026}.result-loss{color:var(--danger);background:#f4433626}.result-abandoned{color:#ff9800;background:#ff980026}.result-resume{color:#2196f3;cursor:pointer;background:#2196f326}.resumable-row{cursor:pointer;border-left:3px solid #2196f3}.resumable-row:hover,.resumable-row:active{background:#2196f314}.replay-link-btn{color:#aaa;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #fff3;border-radius:6px;padding:.2rem .55rem;font-size:.78rem;transition:background .15s,color .15s}.replay-link-btn:hover{color:#fff;background:#ffffff1a}.export-btn{border:1px solid var(--text-secondary,#888);color:var(--text-secondary,#888);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .5rem;font-size:.85rem;line-height:1}.export-btn:hover{border-color:var(--text-primary,#333);color:var(--text-primary,#333);background:#00000012}.dashboard-loading,.dashboard-empty{text-align:center;color:var(--text-secondary);padding:1rem;font-style:italic}@media (width<=900px){.dashboard-overview{gap:.75rem}.dashboard-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}@media (width<=600px){.dashboard-overview{gap:.5rem}.dashboard-table th,.dashboard-table td{padding:.4rem .5rem;font-size:.8rem}.result-badge{padding:.15rem .45rem;font-size:.7rem}.color-indicator{width:12px;height:12px}}.dashboard-season-banner{background:var(--bg-secondary);border:1px solid var(--accent);border-radius:6px;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.6rem 1rem;display:flex}.dashboard-season-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.75rem}.dashboard-season-name{color:var(--accent);font-size:1rem;font-weight:600}.dashboard-tier-badge{letter-spacing:.02em;text-transform:uppercase;vertical-align:middle;border:1px solid;border-radius:999px;margin-left:.4rem;padding:.05rem .4rem;font-size:.65rem;font-weight:600;display:inline-block}.lobby{flex-direction:column;flex:1;align-items:center;gap:1.5rem;width:100%;max-width:500px;margin:0 auto;padding:2rem;display:flex}.lobby-header{align-items:center;gap:1rem;width:100%;display:flex}.lobby-header h2{text-align:center;color:var(--accent);flex:1;margin:0}.lobby-back-btn{background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border:none;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;transition:all .15s}.lobby-back-btn:hover{color:var(--text-primary);background:var(--bg-tertiary,var(--bg-secondary))}.lobby-header-spacer{width:52px}.lobby-actions{gap:.75rem;width:100%;display:flex}.lobby-quick-match-btn,.lobby-create-btn{cursor:pointer;border:none;border-radius:8px;flex:1;padding:.75rem 1rem;font-size:.95rem;font-weight:600;transition:all .15s}.lobby-quick-match-btn{background:var(--accent);color:var(--bg-primary)}.lobby-quick-match-btn:hover:not(:disabled){opacity:.9}.lobby-create-btn{background:var(--bg-secondary);color:var(--text-primary)}.lobby-create-btn:hover:not(:disabled){background:var(--bg-tertiary,var(--bg-secondary))}.lobby-quick-match-btn:disabled,.lobby-create-btn:disabled{opacity:.6;cursor:not-allowed}.lobby-error{color:var(--danger);text-align:center;font-size:.9rem}.lobby-table-list{width:100%}.lobby-table-list h3{color:var(--text-secondary);margin-bottom:.75rem;font-size:.95rem}.lobby-loading,.lobby-empty{color:var(--text-secondary);text-align:center;padding:1.5rem 0;font-size:.9rem;font-style:italic}.lobby-table-item{background:var(--bg-secondary);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.85rem 1rem;transition:background .15s;display:flex}.lobby-table-item:hover{background:var(--bg-tertiary,var(--bg-secondary))}.lobby-table-info{flex-direction:column;gap:.2rem;display:flex}.lobby-table-creator{color:var(--text-primary);font-size:.95rem;font-weight:600}.lobby-table-details{color:var(--text-secondary);font-size:.8rem}.lobby-table-time{color:var(--text-secondary);opacity:.7;font-size:.75rem}.lobby-join-btn{background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;border-radius:6px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:all .15s}.lobby-join-btn:hover:not(:disabled){opacity:.9}.lobby-join-btn:disabled{opacity:.6;cursor:not-allowed}.lobby-watch-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:all .15s}.lobby-watch-btn:hover:not(:disabled){background:var(--accent);color:var(--bg-primary)}.lobby-watch-btn:disabled{opacity:.6;cursor:not-allowed}.lobby-active-games{margin-top:.5rem}.lobby-spectator-count{color:var(--accent);font-size:.75rem}.lobby-casual-badge{letter-spacing:.02em;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--text-secondary);text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.lobby--embedded{align-items:stretch;max-width:none;padding:0}.lobby--embedded .lobby-table-item{background:var(--bg-primary,#1a1a2e)}.leaderboard{flex-direction:column;flex:1;align-items:center;gap:1.5rem;width:100%;max-width:700px;margin:0 auto;padding:2rem;display:flex}.leaderboard-header{align-items:center;gap:1rem;width:100%;display:flex}.leaderboard-header h2{text-align:center;color:var(--accent);flex:1;margin:0}.leaderboard-back-btn{background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border:none;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;transition:all .15s}.leaderboard-back-btn:hover{color:var(--text-primary);background:var(--bg-tertiary,var(--bg-secondary))}.leaderboard-header-spacer{width:52px}.leaderboard-tabs{background:var(--bg-secondary);border-radius:8px;gap:.5rem;width:100%;padding:.25rem;display:flex}.leaderboard-tab{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.875rem;font-weight:500;transition:all .15s}.leaderboard-tab:hover{color:var(--text-primary)}.leaderboard-tab.active{background:var(--accent);color:var(--bg-primary);font-weight:600}.leaderboard-period-tabs{flex-wrap:wrap;justify-content:center;gap:.4rem;width:100%;display:flex}.leaderboard-period-tab{border:1px solid var(--bg-secondary);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .9rem;font-size:.8rem;font-weight:500;transition:all .15s}.leaderboard-period-tab:hover:not(:disabled){color:var(--text-primary);border-color:var(--accent)}.leaderboard-period-tab.active{background:var(--accent);color:var(--bg-primary);border-color:var(--accent);font-weight:600}.leaderboard-self-footer{background:color-mix(in srgb, var(--accent) 14%, var(--bg-secondary));border:1px solid var(--accent);color:var(--text-primary);border-radius:8px;align-self:stretch;align-items:center;gap:.6rem;margin-top:.5rem;padding:.6rem .9rem;font-size:.85rem;display:flex;position:sticky;bottom:0;box-shadow:0 -2px 6px #00000040}.leaderboard-self-footer-label{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.leaderboard-self-footer-rank{font-size:1rem;font-weight:700}.leaderboard-self-footer-meta{color:var(--text-secondary);font-size:.8rem}.leaderboard-loading,.leaderboard-empty{color:var(--text-secondary);text-align:center;padding:2rem 0;font-size:.9rem;font-style:italic}.leaderboard-error{color:var(--danger);text-align:center;font-size:.9rem}.leaderboard-table-wrapper{width:100%;overflow-x:auto}.leaderboard-table{border-collapse:collapse;width:100%;font-size:.9rem}.leaderboard-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--bg-secondary);white-space:nowrap;padding:.6rem .75rem;font-size:.8rem;font-weight:600}.leaderboard-table td{border-bottom:1px solid var(--bg-secondary);color:var(--text-primary);padding:.65rem .75rem}.leaderboard-table tbody tr:last-child td{border-bottom:none}.leaderboard-table tbody tr:hover{background:var(--bg-secondary)}.leaderboard-row-self{background:color-mix(in srgb, var(--accent) 12%, transparent)!important}.leaderboard-row-self td{font-weight:600}.leaderboard-rank{color:var(--text-secondary);min-width:2rem;font-weight:700}.leaderboard-rank-1{color:#f5c518}.leaderboard-rank-2{color:silver}.leaderboard-rank-3{color:#cd7f32}.leaderboard-nickname{font-weight:500}.leaderboard-you-badge{background:var(--accent);color:var(--bg-primary);vertical-align:middle;border-radius:4px;margin-left:.4rem;padding:.1rem .4rem;font-size:.7rem;font-weight:700;display:inline-block}.leaderboard-load-more{background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border:none;border-radius:8px;margin-top:.5rem;padding:.65rem 2rem;font-size:.9rem;transition:all .15s}.leaderboard-load-more:hover:not(:disabled){background:var(--bg-tertiary,var(--bg-secondary))}.leaderboard-load-more:disabled{opacity:.6;cursor:not-allowed}.leaderboard-count{color:var(--text-secondary);text-align:center;font-size:.8rem}.leaderboard--embedded{align-items:stretch;max-width:none;padding:0}.leaderboard-tier-badge{letter-spacing:.02em;text-transform:uppercase;vertical-align:middle;border:1px solid;border-radius:999px;margin-left:.5rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.tournament-list-page,.tournament-detail-page{width:100%;max-width:900px;margin:0 auto;padding:2rem 1rem}.tournament-loading,.tournament-empty{text-align:center;color:var(--text-secondary);padding:3rem 0}.tournament-error{color:#e74c3c;background:#e74c3c1a;border:1px solid #e74c3c4d;border-radius:8px;margin:1rem 0;padding:.75rem 1rem}.tournament-list-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.tournament-list-header h2{margin:0}.tournament-create-form{background:var(--bg-secondary);border-radius:10px;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.5rem;display:flex}.tournament-create-form h3{margin:0}.form-row{align-items:center;gap:1rem;display:flex}.form-row label{min-width:100px;color:var(--text-secondary);font-size:.9rem}.form-row input,.form-row select{background:var(--bg-primary,#1a1a2e);color:var(--text-primary);border:1px solid #ffffff26;border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.95rem}.tournament-items{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.tournament-item{background:var(--bg-secondary);cursor:pointer;border-radius:10px;flex-direction:column;gap:.4rem;padding:1rem 1.25rem;transition:background .15s;display:flex}.tournament-item:hover{background:var(--bg-hover,#ffffff12)}.tournament-item-name{color:var(--text-primary);font-size:1.05rem;font-weight:600}.tournament-item-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.tournament-item-winner{color:#f1c40f;font-size:.9rem}.tournament-status{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.2rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.tournament-status.registering{color:#3498db;background:#3498db33}.tournament-status.in-progress{color:#f39c12;background:#f39c1233}.tournament-status.completed{color:#2ecc71;background:#2ecc7133}.btn-back{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:.3rem;margin-bottom:1.5rem;padding:0;font-size:.9rem;display:inline-flex}.btn-back:hover{color:var(--text-primary)}.tournament-detail-header{margin-bottom:1.25rem}.tournament-detail-header h2{margin:0 0 .5rem}.tournament-detail-meta{color:var(--text-secondary);flex-wrap:wrap;gap:1rem;font-size:.9rem;display:flex}.tournament-winner-banner{color:#f1c40f;background:linear-gradient(90deg,#f1c40f26,#f1c40f0d);border:1px solid #f1c40f4d;border-radius:8px;margin-bottom:1.25rem;padding:.75rem 1.25rem;font-size:1rem}.tournament-actions{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.tournament-match-ready-banner{color:var(--text-primary);background:linear-gradient(90deg,#2ecc712e,#2ecc710d);border:1px solid #2ecc7166;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.85rem 1.25rem;animation:2s ease-in-out infinite match-ready-pulse;display:flex}.tournament-match-ready-banner strong{color:var(--success)}@keyframes match-ready-pulse{0%,to{box-shadow:0 0 #2ecc7159}50%{box-shadow:0 0 0 6px #2ecc7100}}.registered-badge{color:#2ecc71;font-size:.9rem;font-weight:600}.tournament-entrants{background:var(--bg-secondary);border-radius:10px;margin-bottom:1.5rem;padding:1rem 1.25rem}.tournament-entrants h3{margin:0 0 .75rem;font-size:1rem}.tournament-entrants ul{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.tournament-entrants li{color:var(--text-secondary);padding:.2rem 0;font-size:.9rem}.tournament-entrants li.self{color:var(--text-primary);font-weight:600}.self-tag{opacity:.7;font-weight:400}.bracket-container{overflow-x:auto}.bracket-container h3{margin:0 0 1rem}.bracket{gap:1rem;min-width:400px;display:grid}.bracket-round{flex-direction:column;gap:1rem;display:flex}.bracket-round-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);text-align:center;border-bottom:1px solid #ffffff14;margin-bottom:.25rem;padding-bottom:.5rem;font-size:.8rem;font-weight:600}.bracket-match{background:var(--bg-secondary);border:1px solid #ffffff0f;border-radius:8px;flex-direction:column;gap:.3rem;padding:.75rem 1rem;transition:border-color .15s;display:flex}.bracket-match.my-match{background:#3498db0d;border-color:#3498db66}.bracket-match.completed{opacity:.75}.bracket-match.bye{opacity:.5}.bracket-player{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.bracket-player.winner{color:#f1c40f;font-weight:700}.bracket-vs{color:var(--text-secondary);opacity:.5;text-align:center;font-size:.75rem}.tbd{opacity:.4;font-style:italic}.btn-play-match{background:var(--accent,#3498db);color:#fff;cursor:pointer;border:none;border-radius:6px;align-self:flex-start;margin-top:.4rem;padding:.3rem .75rem;font-size:.85rem;transition:opacity .15s}.btn-play-match:hover{opacity:.85}.btn-play-match:disabled{opacity:.5;cursor:not-allowed}.btn-play-match.watching{background:var(--bg-hover,#ffffff1f);color:var(--text-secondary)}.btn-primary{background:var(--accent,#3498db);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.95rem;font-weight:600;transition:opacity .15s}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.tournament-list-page--embedded{max-width:none;padding:0}.tournament-list-header--embedded{margin-bottom:1rem}.cosmetics{flex-direction:column;gap:1rem;padding:.5rem 0;display:flex}.cosmetics-heading{color:var(--text-primary);letter-spacing:.02em;margin:.5rem 0 .25rem;font-size:.95rem;font-weight:600}.cosmetics-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.cosmetics-option{background:var(--bg-secondary);cursor:pointer;color:var(--text-primary);border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;transition:border-color .15s,transform .15s;display:flex}.cosmetics-option:hover:not(:disabled){border-color:#d4a84366;transform:translateY(-1px)}.cosmetics-option:disabled{opacity:.6;cursor:wait}.cosmetics-option.selected{border-color:var(--accent)}.cosmetics-swatch{border-radius:6px;justify-content:center;align-items:center;gap:.5rem;width:100%;height:60px;display:flex;position:relative;overflow:hidden}.cosmetics-swatch-board{border:1px solid #00000040}.cosmetics-swatch-dot{clip-path:polygon(50% 100%,0 0,100% 0);width:22px;height:32px;display:inline-block}.cosmetics-swatch-checkers{background:linear-gradient(135deg,#2a2a3a 0%,#14141e 100%)}.cosmetics-swatch-disc{border-radius:50%;width:32px;height:32px;display:inline-block;box-shadow:0 1px 2px #0006}.cosmetics-option-name{font-size:.85rem;font-weight:500}.cosmetics-error{color:var(--danger);font-size:.85rem}.cosmetics-saved{color:var(--success);font-size:.85rem}.cosmetics-guest-notice{color:var(--text-secondary);font-size:.85rem;font-style:italic}.challenges-root{color:var(--text-primary);flex-direction:column;gap:1.5rem;padding:1.25rem 1.5rem 2rem;display:flex}.challenges-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.challenges-title{margin:0 0 .25rem;font-size:1.35rem}.challenges-subtitle{color:var(--text-secondary);margin:0;font-size:.9rem}.challenges-points{background:var(--bg-secondary);border:1px solid #d4a84366;border-radius:10px;align-items:baseline;gap:.3rem;padding:.5rem .9rem;display:flex}.challenges-points-value{color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.challenges-points-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem}.challenges-section{flex-direction:column;gap:.75rem;display:flex}.challenges-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin:0;font-size:1rem}.challenges-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.challenges-empty{color:var(--text-secondary);margin:0;font-style:italic}.challenge-card{background:var(--bg-secondary);border:1px solid #ffffff0f;border-radius:10px;flex-direction:column;gap:.5rem;padding:.85rem 1rem .9rem;transition:border-color .15s,transform .15s;display:flex}.challenge-card--complete{border-color:var(--success);animation:1.6s ease-in-out challenge-pulse}@keyframes challenge-pulse{0%{transform:scale(1);box-shadow:0 0 #2ecc7173}50%{transform:scale(1.015);box-shadow:0 0 0 10px #2ecc7100}to{transform:scale(1);box-shadow:0 0 #2ecc7100}}.challenge-card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.challenge-card-name{font-size:1rem;font-weight:600}.challenge-card-check{background:var(--success);color:#0b2a14;border-radius:50%;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.9rem;font-weight:700;display:inline-flex}.challenge-card-desc{color:var(--text-secondary);margin:0;font-size:.85rem;line-height:1.35}.challenge-progress{background:#ffffff0f;border-radius:999px;height:6px;overflow:hidden}.challenge-progress-bar{background:var(--accent);height:100%;transition:width .3s}.challenge-card--complete .challenge-progress-bar{background:var(--success)}.challenge-card-foot{justify-content:space-between;font-size:.85rem;display:flex}.challenge-card-progress-text{color:var(--text-secondary);font-variant-numeric:tabular-nums}.challenge-card-reward{color:var(--accent);font-weight:600}.challenges-guest,.challenges-loading,.challenges-error{text-align:center;color:var(--text-secondary);padding:2rem 1.5rem}.challenges-guest h3{color:var(--text-primary);margin:0 0 .5rem}.challenges-error{color:var(--danger)}@media (width<=480px){.challenges-root{padding:1rem}.challenges-list{grid-template-columns:1fr}}.analysis{background:var(--bg-primary);height:100vh;color:var(--text-primary);flex-direction:column;display:flex}.analysis__header{background:var(--bg-secondary);border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.analysis__header-left{align-items:center;gap:12px;display:flex}.analysis__title{color:var(--accent);font-size:1.1rem;font-weight:600}.analysis__session-id{color:var(--text-secondary);font-family:monospace;font-size:.8rem}.analysis__header-actions{gap:8px;display:flex}.analysis__content{flex:1;grid-template-columns:1fr 400px;display:grid;overflow:hidden}.analysis__board-area{flex-direction:column;justify-content:center;align-items:center;min-height:0;padding:16px;display:flex}.analysis__board-wrapper{width:100%;max-width:800px}.analysis__game-controls{flex-wrap:wrap;justify-content:center;gap:8px;padding:12px 0;display:flex}.analysis__panel-area{background:var(--bg-secondary);border-left:1px solid #ffffff0f;flex-direction:column;display:flex;overflow:hidden}.analysis__btn{background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border:1px solid #ffffff1f;border-radius:6px;padding:8px 16px;font-size:.85rem;transition:all .15s}.analysis__btn:hover:not(:disabled){border-color:var(--accent);background:#ffffff14}.analysis__btn:disabled{opacity:.4;cursor:not-allowed}.analysis__btn--primary{background:var(--accent);color:#1a1a2e;border-color:var(--accent);font-weight:600}.analysis__btn--primary:hover:not(:disabled){background:#e0b850}.analysis__btn--danger{border-color:var(--danger);color:var(--danger)}.analysis__btn--danger:hover:not(:disabled){background:#e74c3c26}.analysis__loading{height:100vh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:1.1rem;display:flex}.analysis__error{border:1px solid var(--danger);color:var(--danger);background:#e74c3c26;border-radius:6px;margin:8px 0;padding:12px 16px;font-size:.85rem}.analysis__back-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:.9rem}.analysis__back-btn:hover{color:var(--text-primary);background:#ffffff0f}@media (width<=960px){.analysis__content{grid-template-rows:auto 1fr;grid-template-columns:1fr}.analysis__panel-area{border-top:1px solid #ffffff0f;border-left:none;max-height:40vh}}@media (width<=768px){.analysis__header{padding:8px 12px}.analysis__board-area{padding:8px}.analysis__game-controls{gap:4px}}.home{flex-direction:column;flex:1;align-items:center;gap:0;padding:24px;display:flex}.home-welcome-bar{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin-bottom:24px;padding:16px 0;display:flex}.home-welcome-bar .app-title{color:var(--accent);letter-spacing:.02em;font-size:1.35rem;font-weight:700}.home-welcome-bar .welcome-text{color:var(--text-secondary);font-size:.95rem}.home-welcome-bar .welcome-text strong{color:var(--text-primary)}.guest-badge{color:var(--text-secondary);font-style:italic}.home-main{grid-template-columns:380px 1fr;align-items:start;gap:24px;width:100%;max-width:1200px;display:grid}.play-panel{background:var(--bg-secondary);border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:20px;padding:24px;display:flex;position:sticky;top:24px;box-shadow:0 2px 12px #0000004d}.play-panel-title{color:var(--text-primary);border-bottom:1px solid #ffffff14;padding-bottom:12px;font-size:1.15rem;font-weight:600}.config-section{flex-direction:column;gap:14px;display:flex}.config-row{flex-direction:column;gap:6px;display:flex}.config-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:500}.config-pill-bar{background:var(--bg-primary);border-radius:8px;gap:0;width:100%;padding:3px;display:flex}.config-pill-option{color:var(--text-secondary);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:4px;padding:6px 0;font-size:.82rem;font-weight:400;transition:all .15s;display:inline-flex}.config-pill-option:hover:not(.selected){color:var(--text-primary)}.config-pill-option.selected{background:var(--accent);color:var(--bg-primary);font-weight:600}.config-pill-option--gnu:not(.selected){letter-spacing:.04em;font-weight:600}.color-dot{border:1px solid #ffffff4d;border-radius:50%;width:10px;height:10px;display:inline-block}.color-dot.white{background:#e8e0d4}.color-dot.black{background:#2c2c2c}.play-actions{flex-direction:column;gap:10px;display:flex}.play-action-primary{background:var(--accent);width:100%;color:var(--bg-primary);letter-spacing:.02em;cursor:pointer;border:none;border-radius:8px;padding:12px 0;font-size:1rem;font-weight:700;transition:opacity .15s,transform .1s}.play-action-primary:hover:not(:disabled){opacity:.9;transform:scale(1.01)}.play-action-primary:active:not(:disabled){transform:scale(.99)}.play-action-primary:disabled{opacity:.5;cursor:not-allowed}.play-action-secondary{width:100%;color:var(--accent);border:1.5px solid var(--accent);letter-spacing:.02em;cursor:pointer;background:0 0;border-radius:8px;padding:12px 0;font-size:.95rem;font-weight:600;transition:background .15s}.play-action-secondary:hover:not(:disabled){background:#d4a8431a}.play-action-secondary:disabled{opacity:.5;cursor:not-allowed}.panel-error{color:var(--danger);background:#e74c3c1a;border:1px solid #e74c3c4d;border-radius:6px;padding:8px 12px;font-size:.85rem}.play-divider{background:#ffffff14;height:1px}.play-join-form{align-items:center;gap:8px;display:flex}.play-join-form input{background:var(--bg-primary);color:var(--text-primary);text-transform:uppercase;border:1px solid #ffffff14;border-radius:6px;outline:none;flex:1;min-width:0;padding:8px 12px;font-size:.9rem;transition:border-color .15s}.play-join-form input::placeholder{text-transform:none}.play-join-form input:focus{border-color:var(--accent)}.play-join-btn{color:var(--text-primary);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff14;border-radius:6px;padding:8px 20px;font-size:.9rem;font-weight:600;transition:border-color .15s,color .15s}.play-join-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.play-join-btn:disabled{opacity:.5;cursor:not-allowed}.content-panel{background:var(--bg-secondary);border:1px solid #ffffff14;border-radius:12px;flex-direction:column;min-height:500px;max-height:calc(100vh - 140px);display:flex;overflow:hidden;box-shadow:0 2px 12px #0000004d}.content-tabs{background:#ffffff08;border-bottom:1px solid #ffffff14;flex-shrink:0;display:flex;overflow-x:auto}.content-tab{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:14px 16px;font-size:.9rem;font-weight:500;transition:color .15s,border-color .15s}.content-tab:hover:not(.active){color:var(--text-primary)}.content-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.content-tab-body{flex:1;padding:20px 24px;overflow-y:auto}.guest-prompt{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:60px 20px;display:flex}.guest-prompt h3{font-size:1.1rem;font-weight:600}.guest-prompt p{color:var(--text-secondary);max-width:320px;font-size:.9rem}.sign-out-btn{width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #ffffff14;border-radius:6px;padding:8px 0;font-size:.85rem;font-weight:500;transition:color .15s,border-color .15s}.sign-out-btn:hover:not(:disabled){color:var(--text-primary);border-color:#fff3}.sign-out-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sign-out-dialog{background:var(--bg-secondary);border:1px solid #ffffff1f;border-radius:12px;width:90%;max-width:380px;padding:28px 32px;box-shadow:0 8px 32px #00000080}.sign-out-dialog h3{color:var(--text-primary);margin:0 0 12px;font-size:1.05rem;font-weight:600}.sign-out-dialog p{color:var(--text-secondary);margin:0 0 24px;font-size:.9rem;line-height:1.5}.sign-out-dialog-actions{justify-content:flex-end;gap:10px;display:flex}.sign-out-dialog-cancel{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #ffffff1f;border-radius:6px;padding:8px 20px;font-size:.9rem;font-weight:500;transition:color .15s,border-color .15s}.sign-out-dialog-cancel:hover{color:var(--text-primary);border-color:#ffffff40}.sign-out-dialog-confirm{color:var(--danger);cursor:pointer;background:0 0;border:1px solid #e74c3c66;border-radius:6px;padding:8px 20px;font-size:.9rem;font-weight:500;transition:background .15s,border-color .15s}.sign-out-dialog-confirm:hover{border-color:var(--danger);background:#e74c3c1a}@media (width<=960px){.home{padding:20px}.home-main{grid-template-columns:320px 1fr;gap:20px}.play-panel{padding:20px}}@media (width<=768px){.home{padding:16px}.home-main{grid-template-columns:1fr;gap:16px}.play-panel{gap:14px;padding:16px;position:static}.content-panel{min-height:auto;max-height:none}.content-tab-body{padding:16px}.home-welcome-bar{flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:16px;padding:12px 0}.home-welcome-bar .app-title{font-size:1.1rem}.home-welcome-bar .welcome-text{font-size:.85rem}.content-tab{padding:10px 12px;font-size:.82rem}}@media (width<=480px){.config-pill-option{padding:5px 0;font-size:.75rem}}.board-container{--board-bg:#3e6b35;--board-bar:#2d1810;--board-bearoff:#2d1810;--point-dark:#5c3d2e;--point-light:#c69c6d;--checker-white-0:#fff;--checker-white-1:#f0e6d3;--checker-white-2:#d4c4a8;--checker-white-3:#b8a88a;--checker-black-0:#888;--checker-black-1:#4a4a4a;--checker-black-2:#2b2b2b;--checker-black-3:#1a1a1a;flex-direction:column;align-items:center;width:100%;display:flex}.board-container[data-theme=classic]{--board-bg:#3e6b35;--board-bar:#2d1810;--board-bearoff:#2d1810;--point-dark:#5c3d2e;--point-light:#c69c6d}.board-container[data-theme=dark-marble]{--board-bg:#1f2430;--board-bar:#11141c;--board-bearoff:#11141c;--point-dark:#2d3547;--point-light:#6b7a99}.board-container[data-theme=green-felt]{--board-bg:#0f5132;--board-bar:#1a0f0f;--board-bearoff:#1a0f0f;--point-dark:#7a1f1f;--point-light:#e6cfa0}.board-svg .board-bg{fill:var(--board-bg)!important}.board-svg .board-bar{fill:var(--board-bar)!important}.board-svg .board-bearoff{fill:var(--board-bearoff)!important}.board-svg .point-tri-dark{fill:var(--point-dark)!important}.board-svg .point-tri-light{fill:var(--point-light)!important}.board-container[data-checker=classic]{--checker-white-0:#fff;--checker-white-1:#f0e6d3;--checker-white-2:#d4c4a8;--checker-white-3:#b8a88a;--checker-black-0:#888;--checker-black-1:#4a4a4a;--checker-black-2:#2b2b2b;--checker-black-3:#1a1a1a}.board-container[data-checker=marble]{--checker-white-0:#fff;--checker-white-1:#fdfaf2;--checker-white-2:#e6dfd0;--checker-white-3:#b8b0a0;--checker-black-0:#9a8ea6;--checker-black-1:#5c4e6c;--checker-black-2:#3a3042;--checker-black-3:#1e1824}.board-container[data-checker=metal]{--checker-white-0:#fff;--checker-white-1:#e6eaf0;--checker-white-2:#bac1ce;--checker-white-3:#8a94a8;--checker-black-0:#9aa3b2;--checker-black-1:#626c7c;--checker-black-2:#4a5260;--checker-black-3:#272c36}.board-svg .checker-white-stop-0{stop-color:var(--checker-white-0)!important}.board-svg .checker-white-stop-1{stop-color:var(--checker-white-1)!important}.board-svg .checker-white-stop-2{stop-color:var(--checker-white-2)!important}.board-svg .checker-white-stop-3{stop-color:var(--checker-white-3)!important}.board-svg .checker-black-stop-0{stop-color:var(--checker-black-0)!important}.board-svg .checker-black-stop-1{stop-color:var(--checker-black-1)!important}.board-svg .checker-black-stop-2{stop-color:var(--checker-black-2)!important}.board-svg .checker-black-stop-3{stop-color:var(--checker-black-3)!important}.board-svg{filter:drop-shadow(0 4px 20px #0006);border-radius:8px;width:100%;max-width:1000px;height:auto}.board-svg .checker{transition:transform .2s}.board-svg .checker-animating{pointer-events:none;will-change:transform}.board-svg .ghost-checker{opacity:.35;pointer-events:none}.board-svg .hint-highlight{animation:1.2s ease-in-out infinite hint-pulse}@keyframes hint-pulse{0%,to{opacity:.35}50%{opacity:.7}}.board-svg .point-area{cursor:pointer}.board-svg .point-area:hover{opacity:.9}.board-svg .bar-area,.board-svg .bearoff-area{cursor:pointer}@media (width<=600px){.board-svg{filter:drop-shadow(0 2px 10px #0000004d);border-radius:4px}}.dice-container{justify-content:center;align-items:center;gap:1rem;padding:.5rem;display:flex}.die{border-radius:8px;justify-content:center;align-items:center;width:52px;height:52px;transition:opacity .3s,transform .3s;display:flex;position:relative}@keyframes dice-tumble{0%{opacity:0;transform:scale(.3)rotateX(0)rotateY(0)}10%{opacity:1}25%{transform:scale(1.15)rotateX(180deg)rotateY(90deg)}50%{transform:scale(.95)rotateX(360deg)rotateY(180deg)}75%{transform:scale(1.08)rotateX(540deg)rotateY(270deg)}to{transform:scale(1)rotateX(720deg)rotateY(360deg)}}.die.rolling{animation:.5s cubic-bezier(.25,.46,.45,.94) dice-tumble}.die-white{background:#f5f0e1;box-shadow:0 2px 6px #0000004d}.die-black{background:#1a1a1a;box-shadow:0 2px 6px #00000080}.die.used{opacity:.3;transform:scale(.9)}.die-dots{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:2px;width:36px;height:36px;padding:2px;display:grid}.die-dot{background:0 0;border-radius:50%;place-self:center;width:8px;height:8px}.die-white .die-dot.filled{background:#2c1810}.die-black .die-dot.filled{background:#f0ebe0}.dice-separator{color:var(--text-secondary);font-size:.9rem}.dice-container.dice-swappable{cursor:pointer;border-radius:8px;transition:background .15s}.dice-container.dice-swappable:hover{background:#d4a8431f}.dice-container.dice-swappable:hover .die:not(.used){box-shadow:0 0 0 2px var(--accent)}.board-overlay .dice-container{gap:.5rem;padding:.15rem}.board-overlay .die{border-radius:6px;width:40px;height:40px}.board-overlay .die-dots{width:28px;height:28px}.board-overlay .die-dot{width:6px;height:6px}@media (width<=900px){.die{width:46px;height:46px}.die-dots{width:32px;height:32px}.die-dot{width:7px;height:7px}}@media (width<=600px){.dice-container{gap:.6rem;padding:.35rem}.die{border-radius:6px;width:38px;height:38px}.die-dots{width:26px;height:26px}.die-dot{width:6px;height:6px}.board-overlay .die{border-radius:5px;width:32px;height:32px}.board-overlay .die-dots{width:22px;height:22px}.board-overlay .die-dot{width:5px;height:5px}}.game-controls{flex-direction:column;align-items:center;gap:.5rem;padding:.5rem;display:flex}.controls-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.controls-row:empty{display:none}.controls-row .roll-btn{padding:.5rem 1.5rem;font-size:.95rem;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #d4a84366}50%{box-shadow:0 0 0 8px #d4a84300}}.controls-row .end-turn-btn{background:var(--text-secondary);padding:.5rem 1.5rem;font-size:.95rem}.controls-row .confirm-turn-btn{background:var(--success);padding:.5rem 1.5rem;font-size:.95rem}.controls-row .undo-btn{background:var(--text-secondary);padding:.4rem 1.2rem;font-size:.9rem}.controls-row .double-btn{background:var(--accent);padding:.5rem 1.5rem;font-size:1rem}.controls-row .accept-double-btn{background:var(--success);padding:.5rem 1.2rem;font-size:.95rem}.controls-row .decline-double-btn{background:var(--danger,#e74c3c);padding:.5rem 1.2rem;font-size:.95rem}.controls-row .hint-btn{background:#3498db;padding:.4rem 1.2rem;font-size:.9rem}.controls-row .hint-btn:disabled{cursor:not-allowed;opacity:.6;background:#7f8c8d}.controls-row .resign-btn{color:var(--text-secondary);border:1px solid var(--text-secondary);opacity:.7;background:0 0;padding:.25rem .9rem;font-size:.8rem}.controls-row .resign-btn:hover:not(:disabled){background:var(--danger);color:var(--text-primary);border-color:var(--danger);opacity:1}.resign-type-menu{flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;display:flex}.resign-type-label{color:var(--text-secondary);font-size:.8rem}.controls-row .resign-type-btn{background:var(--danger);padding:.25rem .7rem;font-size:.8rem}.controls-row .resign-type-btn.resign-type-gammon{background:#c0392b}.controls-row .resign-type-btn.resign-type-backgammon{background:#922b21}.controls-row .resign-cancel-btn{background:var(--text-secondary);padding:.25rem .7rem;font-size:.8rem}.resign-offer-text{color:var(--text-primary);font-size:.85rem}.controls-row .accept-resign-btn{background:var(--success);padding:.4rem 1rem;font-size:.9rem}.controls-row .reject-resign-btn{background:var(--danger);padding:.4rem 1rem;font-size:.9rem}.resign-waiting-text{color:var(--text-secondary);font-size:.85rem;font-style:italic}.board-overlay .game-controls{gap:.25rem;padding:.15rem}.board-overlay .controls-row{gap:.4rem}.board-overlay .controls-row .roll-btn,.board-overlay .controls-row .double-btn,.board-overlay .controls-row .undo-btn,.board-overlay .controls-row .confirm-turn-btn,.board-overlay .controls-row .end-turn-btn,.board-overlay .controls-row .accept-double-btn,.board-overlay .controls-row .decline-double-btn,.board-overlay .controls-row .hint-btn{padding:.3rem .8rem;font-size:.8rem}.board-overlay .controls-row .resign-btn,.board-overlay .controls-row .resign-type-btn,.board-overlay .controls-row .resign-cancel-btn,.board-overlay .controls-row .accept-resign-btn,.board-overlay .controls-row .reject-resign-btn{padding:.2rem .6rem;font-size:.75rem}@media (width<=900px){.controls-row{gap:.5rem}.controls-row .roll-btn,.controls-row .end-turn-btn,.controls-row .confirm-turn-btn,.controls-row .double-btn{padding:.45rem 1.2rem;font-size:.9rem}.controls-row .undo-btn,.controls-row .accept-double-btn,.controls-row .decline-double-btn,.controls-row .hint-btn{padding:.4rem 1rem;font-size:.85rem}}@media (width<=600px){.game-controls{gap:.35rem;padding:.35rem}.controls-row{gap:.35rem}.controls-row .roll-btn,.controls-row .end-turn-btn,.controls-row .confirm-turn-btn,.controls-row .double-btn{padding:.35rem .9rem;font-size:.8rem}.controls-row .undo-btn,.controls-row .accept-double-btn,.controls-row .decline-double-btn,.controls-row .hint-btn{padding:.3rem .7rem;font-size:.75rem}.board-overlay .controls-row .roll-btn,.board-overlay .controls-row .double-btn,.board-overlay .controls-row .undo-btn,.board-overlay .controls-row .confirm-turn-btn,.board-overlay .controls-row .end-turn-btn,.board-overlay .controls-row .accept-double-btn,.board-overlay .controls-row .decline-double-btn,.board-overlay .controls-row .hint-btn{padding:.25rem .6rem;font-size:.7rem}}.move-history-drawer{width:100%;max-width:500px}.drawer-toggle{background:var(--bg-secondary);width:100%;color:var(--text-secondary);cursor:pointer;border:1px solid #ffffff1a;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;transition:all .15s;display:flex}.drawer-toggle:hover{border-color:var(--accent);color:var(--accent)}.drawer-toggle.open{border-radius:6px 6px 0 0}.drawer-arrow{font-size:.7rem}.move-count{opacity:.7;margin-left:auto;font-size:.75rem}.move-history{background:var(--bg-secondary);border:1px solid #ffffff1a;border-top:none;border-radius:0 0 6px 6px;flex-direction:column;gap:.25rem;max-height:200px;padding:.5rem;display:flex;overflow-y:auto}.move-history-entry{color:var(--text-secondary);border-radius:3px;padding:.2rem .4rem;font-size:.8rem}.move-history-entry:nth-child(odd){background:#ffffff08}.bot-strategy-tag{color:var(--text-secondary);opacity:.5;margin-left:.4rem;font-size:.65rem;font-style:italic}.move-history-event{color:var(--accent);opacity:.9;padding-left:.75rem;font-style:italic}.move-history-result{color:var(--success);text-align:center;border-top:1px solid #ffffff14;margin-top:.15rem;padding:.3rem .4rem;font-weight:600}.move-history-empty{color:var(--text-secondary);text-align:center;padding:.5rem;font-size:.85rem;font-style:italic}.load-more-btn{color:var(--text-secondary);cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:4px;align-self:center;margin-top:.25rem;padding:.35rem .75rem;font-size:.8rem;transition:all .15s}.load-more-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#ffffff24}.load-more-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=900px){.move-history-drawer{max-width:100%}}@media (width<=600px){.move-history-drawer{max-width:100%}.drawer-toggle{padding:.4rem .6rem;font-size:.8rem}.move-history{max-height:150px}.move-history-entry{font-size:.75rem}}.chat-panel{z-index:900;flex-direction:column;align-items:flex-end;display:flex;position:fixed;bottom:1rem;right:1rem}.chat-toggle-btn{background:var(--bg-secondary);cursor:pointer;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;transition:border-color .15s,background .15s;display:flex;position:relative;box-shadow:0 2px 8px #0000004d}.chat-toggle-btn:hover{border-color:var(--accent)}.chat-icon{font-size:1.3rem;line-height:1}.chat-badge{background:var(--danger,#e74c3c);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:1.2rem;height:1.2rem;padding:0 .3rem;font-size:.7rem;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-4px}.chat-body{background:var(--bg-secondary);border:1px solid #ffffff26;border-radius:10px;flex-direction:column;width:300px;max-height:400px;margin-bottom:.5rem;display:flex;overflow:hidden;box-shadow:0 4px 16px #0006}.chat-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.chat-title{color:var(--accent);font-size:.9rem;font-weight:600}.chat-mute-label{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.3rem;font-size:.75rem;display:flex}.chat-mute-checkbox{cursor:pointer;width:14px;height:14px}.chat-messages{flex-direction:column;flex:1;gap:.35rem;min-height:120px;max-height:220px;padding:.5rem .75rem;display:flex;overflow-y:auto}.chat-empty{color:var(--text-secondary);text-align:center;padding:2rem 0;font-size:.8rem}.chat-message{word-break:break-word;flex-direction:column;gap:.1rem;max-width:85%;display:flex}.chat-message-mine{align-self:flex-end}.chat-message-theirs{align-self:flex-start}.chat-sender{color:var(--text-secondary);font-size:.65rem;font-weight:600}.chat-message-mine .chat-sender{text-align:right}.chat-text{color:var(--text-primary);background:var(--bg-primary);border-radius:8px;padding:.3rem .6rem;font-size:.85rem;line-height:1.35}.chat-message-mine .chat-text{background:#e6b94726;border:1px solid #e6b9474d}.chat-message-theirs .chat-text{background:var(--bg-primary);border:1px solid #ffffff1a}.chat-quick-messages{border-top:1px solid #ffffff0f;flex-wrap:wrap;gap:.3rem;padding:.4rem .75rem;display:flex}.chat-quick-btn{background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border:1px solid #ffffff26;border-radius:12px;padding:.2rem .5rem;font-size:.7rem;transition:color .15s,border-color .15s}.chat-quick-btn:hover{color:var(--accent);border-color:var(--accent)}.chat-input-row{border-top:1px solid #ffffff1a;gap:.4rem;padding:.5rem .75rem;display:flex}.chat-input{background:var(--bg-primary);color:var(--text-primary);border:1px solid #ffffff26;border-radius:6px;outline:none;flex:1;padding:.35rem .6rem;font-size:.85rem;transition:border-color .15s}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--text-secondary);opacity:.6}.chat-send-btn{background:var(--accent);color:var(--bg-primary);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:.35rem .75rem;font-size:.85rem;font-weight:600;transition:opacity .15s}.chat-send-btn:hover{opacity:.85}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}@media (width<=600px){.chat-panel{bottom:.5rem;right:.5rem}.chat-body{width:calc(100vw - 2rem);max-width:320px;max-height:350px}.chat-toggle-btn{width:2.5rem;height:2.5rem}.chat-icon{font-size:1.1rem}}.game-page{flex-direction:column;min-height:100vh;padding:1rem;display:flex}.game-header{align-items:center;gap:1rem;margin-bottom:.5rem;padding:.5rem 1rem;display:flex}.game-header-left{flex-shrink:0;align-items:baseline;gap:.5rem;display:flex}.game-header h2{color:var(--accent);white-space:nowrap;font-size:1.25rem}.header-table-id{color:var(--text-secondary);font-size:.75rem;font-weight:400}.header-copy-btn{width:22px;height:22px;color:var(--text-secondary);border:1px solid var(--text-secondary);cursor:pointer;vertical-align:-4px;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s;display:inline-flex}.header-copy-btn:hover{border-color:var(--accent);color:var(--accent)}.game-status-msg{color:var(--text-secondary);text-align:center;flex:1;min-width:0;font-size:.85rem}.header-controls{background:#ffffff05;border:1px solid #2c2c48;border-radius:9px;flex-shrink:0;align-items:stretch;display:inline-flex}.hc-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-right:1px solid #2c2c48;justify-content:center;align-items:center;width:42px;height:36px;padding:0;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.hc-btn:last-child{border-right:none;border-radius:0 8px 8px 0}.header-controls>:first-child>.hc-btn{border-radius:8px 0 0 8px}.hc-btn:hover{color:var(--accent);background:#d4a8431a}.hc-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hc-btn--home{color:var(--accent)}.hc-btn--home:hover{background:#d4a84329}.header-controls .settings-wrapper{display:inline-flex;position:relative}.game-layout{flex:1;justify-content:center;align-items:flex-start;display:flex}.game-center{flex-direction:column;align-items:center;gap:.75rem;width:100%;max-width:1000px;display:flex}.board-area{width:100%;position:relative}.board-overlay{z-index:10;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.board-overlay>*{pointer-events:auto}.perspective-white .board-overlay{width:39%;left:2.5%}.perspective-black .board-overlay{width:39%;left:7.5%}.board-overlay-right{z-index:10;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.board-overlay-right>*{pointer-events:auto}.perspective-white .board-overlay-right{width:39%;left:46.5%}.perspective-black .board-overlay-right{width:39%;left:51.5%}.win-banner{border:2px solid var(--accent);color:var(--accent);text-align:center;white-space:nowrap;background:#000c;border-radius:10px;padding:.75rem 1.5rem;font-size:1.4rem;font-weight:700;animation:.4s bannerFadeIn}@keyframes bannerFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.player-info-row{justify-content:center;align-items:center;gap:.75rem;width:100%;display:flex}.pip-count{color:var(--text-secondary);font-size:.8rem}.match-pts{color:var(--accent);font-size:.8rem;font-weight:600}.game-loading{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;display:flex}.game-loading .spinner{border:3px solid var(--bg-secondary);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.game-error-banner{border:1px solid var(--danger);color:var(--danger);text-align:center;background:#e74c3c26;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;animation:.3s fadeIn}.connection-banner{border:1px solid var(--danger);color:var(--danger);text-align:center;background:#e74c3c26;border-radius:6px;padding:.4rem 1rem;font-size:.85rem}.connection-banner.reconnected{border-color:var(--success);color:var(--success);background:#2ecc7126}.spectator-count-banner{background:var(--bg-secondary);color:var(--text-secondary);text-align:center;border-radius:6px;padding:.3rem 1rem;font-size:.8rem}.waiting-table-id{color:var(--text-primary);align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.table-id-code{background:var(--bg-secondary);border:1px solid var(--accent);color:var(--accent);letter-spacing:.15em;border-radius:4px;padding:.4rem .8rem;font-size:1.25rem;font-weight:700}.copy-id-btn{background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;border-radius:4px;padding:.4rem .8rem;font-size:.85rem;font-weight:600}.copy-id-btn:hover{opacity:.85}.waiting-or{color:var(--text-secondary);margin:.25rem 0;font-size:.85rem}.invite-bot-btn{background:var(--bg-secondary);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:.5rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .15s}.invite-bot-btn:hover{background:var(--accent);color:var(--bg-primary)}.invite-bot-btn:disabled{opacity:.5;cursor:not-allowed}.player-pill{background:var(--bg-secondary);color:var(--text-primary);border:1px solid #ffffff1a;border-radius:20px;align-items:center;gap:.4rem;padding:.3rem .9rem;font-size:.85rem;display:inline-flex}.player-pill.disconnected{border-color:var(--danger);opacity:.8}.connection-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.connection-dot.connected{background:var(--success);box-shadow:0 0 4px var(--success)}.connection-dot.disconnected{background:var(--danger);box-shadow:0 0 4px var(--danger)}.bot-avatar{flex-shrink:0;width:24px;height:24px}.pill-name{font-weight:500}.game-over-banner,.match-over-banner{flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.5rem;display:flex}.game-over-result,.match-over-title{font-size:1.2rem;font-weight:700}.match-over-title{color:var(--accent);font-size:1.4rem}.game-over-score{color:var(--text-secondary);font-size:.9rem}.match-over-result{color:var(--accent);font-size:1rem;font-weight:600}.next-game-btn{background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;border-radius:6px;margin-top:.25rem;padding:.5rem 1.5rem;font-size:.95rem;font-weight:600;transition:opacity .15s}.next-game-btn:hover{opacity:.85}.analyze-game-btn{color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:0 0;border-radius:6px;margin-top:.25rem;padding:.5rem 1.5rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-block}.analyze-game-btn:hover{background:var(--accent);color:var(--bg-primary)}.bot-difficulty-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.15rem .45rem;font-size:.7rem;font-weight:600}.bot-difficulty-badge.difficulty-easy{color:#81c784;background:#4caf5033}.bot-difficulty-badge.difficulty-medium{color:#ffd54f;background:#ffc10733}.bot-difficulty-badge.difficulty-hard{color:#e57373;background:#f4433633}.bot-difficulty-badge.difficulty-expert{color:#ce93d8;background:#9c27b033}.bot-difficulty-badge.difficulty-gnu{color:var(--accent,#d4a843);background:#d4a84333;border:1px solid #d4a84380}.crawford-badge{text-transform:uppercase;letter-spacing:.05em;color:#ffb74d;background:#ff980033;border:1px solid #ff980066;border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.player-rating{color:#ffc107;letter-spacing:.05em;background:#ffc10726;border-radius:4px;padding:.15rem .45rem;font-size:.7rem;font-weight:600}.chess-clock{background:var(--bg-secondary);color:var(--text-primary);text-align:center;border:1px solid #ffffff1a;border-radius:6px;min-width:3.5rem;padding:.25rem .6rem;font-family:Courier New,Courier,monospace;font-size:1rem;font-weight:700;transition:color .3s,border-color .3s,background .3s}.chess-clock.clock-active{border-color:var(--accent);background:#e6b9471a}.chess-clock.clock-warning{color:#ffd54f;background:#ffd54f1f;border-color:#ffd54f}.chess-clock.clock-critical{color:#e57373;background:#e573731f;border-color:#e57373;animation:1s ease-in-out infinite clockPulse}@keyframes clockPulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.settings-menu{background:var(--bg-secondary);z-index:100;border:1px solid #ffffff26;border-radius:8px;min-width:180px;padding:.75rem 1rem;animation:.15s fadeIn;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0006}.menu-divider{background:#ffffff14;height:1px;margin:.4rem 0}.settings-toggle{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.settings-toggle input[type=checkbox]{display:none}.toggle-slider{background:#ffffff26;border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.toggle-slider:after{content:"";background:var(--text-secondary);border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.settings-toggle input:checked+.toggle-slider{background:var(--accent)}.settings-toggle input:checked+.toggle-slider:after{background:var(--bg-primary);transform:translate(16px)}.settings-hint{color:var(--text-secondary);margin:.35rem 0 0;font-size:.72rem;line-height:1.3}.shortcut-help-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.shortcut-help-modal{background:var(--bg-secondary);border:1px solid #ffffff26;border-radius:10px;flex-direction:column;gap:1rem;width:90%;min-width:280px;max-width:420px;padding:1.5rem 2rem;display:flex;box-shadow:0 8px 32px #00000080}.shortcut-help-modal h3{color:var(--accent);text-align:center;margin:0;font-size:1.1rem;font-weight:700}.shortcut-table{border-collapse:collapse;width:100%;font-size:.9rem}.shortcut-table td{color:var(--text-primary);padding:.35rem .5rem}.shortcut-table td:first-child{white-space:nowrap;width:40%}.shortcut-table tr:not(:last-child) td{border-bottom:1px solid #ffffff0f}kbd{background:var(--bg-primary);color:var(--accent);border:1px solid #ffffff40;border-radius:4px;padding:.1rem .4rem;font-family:Courier New,Courier,monospace;font-size:.8rem;font-weight:600;line-height:1.4;display:inline-block}.shortcut-help-close{background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;border:1px solid #fff3;border-radius:6px;align-self:center;padding:.4rem 1.5rem;font-size:.9rem;transition:color .15s,border-color .15s}.shortcut-help-close:hover{color:var(--accent);border-color:var(--accent)}@media (width<=900px){.game-page{padding:.75rem}.game-header{flex-wrap:wrap;gap:.5rem;padding:.5rem}.game-status-msg{text-align:center;flex-basis:100%;order:3}.player-info-row{flex-wrap:wrap;gap:.5rem}.win-banner{padding:.6rem 1rem;font-size:1.2rem}}@media (width<=600px){.game-page{padding:.5rem}.game-header{flex-flow:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem;padding:.4rem .5rem}.game-header-left{flex:auto;justify-content:flex-start;min-width:0}.game-header h2{font-size:1.1rem}.game-status-msg{text-align:center;flex-basis:100%;order:3;font-size:.8rem}.header-controls{flex-shrink:0;order:2}.game-center{gap:.5rem}.player-info-row{flex-flow:wrap;justify-content:center;gap:.4rem}.player-pill{padding:.25rem .65rem;font-size:.75rem}.pip-count,.match-pts{font-size:.7rem}.game-error-banner,.connection-banner{padding:.4rem .75rem;font-size:.8rem}.win-banner{white-space:normal;text-align:center;padding:.5rem .75rem;font-size:1rem}.waiting-table-id{flex-direction:column;align-items:center;gap:.5rem}.table-id-code{font-size:1.1rem}.game-over-banner,.match-over-banner{padding:.75rem 1rem}.game-over-result{font-size:1rem}.match-over-title{font-size:1.2rem}}.resign-section{justify-content:center;padding:.25rem 0;display:flex}.reanalyze-overlay{-webkit-backdrop-filter:blur(6px);z-index:1000;background:#0a0b1cb8;place-items:center;display:grid;position:fixed;inset:0}.reanalyze-modal{background:linear-gradient(180deg, #ffffff05, #fff0), var(--bg-secondary,#22223a);border:1px solid #ffffff1a;border-radius:12px;width:min(560px,92%);overflow:hidden;box-shadow:0 24px 48px #00000080,0 0 0 1px #ffffff0a}.reanalyze-head{justify-content:space-between;align-items:flex-start;padding:22px 24px 8px;display:flex}.reanalyze-title{letter-spacing:-.01em;color:var(--text-primary,#e8e8e8);margin:0 0 4px;font-size:1.35rem;font-weight:600;line-height:1.15}.reanalyze-subtitle{color:var(--text-secondary,#9a9ab0);max-width:44ch;margin:0;font-size:.85rem}.reanalyze-close{color:var(--text-secondary,#9a9ab0);cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.reanalyze-close:hover{color:var(--text-primary,#e8e8e8);background:#ffffff0d}.reanalyze-body{flex-direction:column;gap:18px;padding:16px 24px 4px;display:flex}.reanalyze-row{grid-template-columns:140px 1fr;align-items:center;gap:16px;display:grid}.reanalyze-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary,#9a9ab0);font-size:.72rem;font-weight:600}.reanalyze-sublabel{letter-spacing:0;text-transform:none;color:var(--text-secondary,#9a9ab0);margin-top:4px;font-size:.62rem;font-weight:400;display:block}.reanalyze-toggle-group{background:#ffffff08;border:1px solid #ffffff0d;border-radius:8px;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:4px;display:grid}.reanalyze-tgl{color:var(--text-secondary,#9a9ab0);cursor:pointer;text-align:center;background:0 0;border:0;border-radius:6px;padding:8px 6px;font-size:.85rem;font-weight:500;line-height:1.25;transition:background .15s,color .15s}.reanalyze-tgl-sub{color:var(--text-secondary,#9a9ab0);margin-top:2px;font-size:.62rem;font-weight:400;display:block}.reanalyze-tgl--active{background:var(--accent,#d4a843);color:var(--bg-primary,#1a1a2e);font-weight:600}.reanalyze-tgl--active .reanalyze-tgl-sub{color:#14152ab3}.reanalyze-tgl:hover:not(.reanalyze-tgl--active){color:var(--text-primary,#e8e8e8)}.reanalyze-pill-bar{background:#ffffff08;border:1px solid #ffffff0d;border-radius:8px;gap:2px;padding:3px;display:flex}.reanalyze-pill{text-align:center;color:var(--text-secondary,#9a9ab0);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;padding:7px 12px;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.reanalyze-pill:hover{color:var(--text-primary,#e8e8e8)}.reanalyze-pill--active{background:var(--accent,#d4a843);color:var(--bg-primary,#1a1a2e);font-weight:600}.reanalyze-diff{background:#ffffff08;border:1px solid #ffffff0f;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:.85rem;display:flex}.reanalyze-diff-from{color:var(--text-secondary,#9a9ab0);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-decoration:line-through}.reanalyze-diff-arrow{color:var(--text-secondary,#9a9ab0)}.reanalyze-diff-to{color:var(--accent,#d4a843);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.reanalyze-foot{background:#0000002e;border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;margin-top:8px;padding:16px 24px 22px;display:flex}.reanalyze-est{color:var(--text-secondary,#9a9ab0);align-items:center;gap:8px;font-size:.75rem;display:flex}.reanalyze-est strong{color:var(--text-primary,#e8e8e8);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.reanalyze-actions{gap:8px;display:flex}.reanalyze-btn-cancel{color:var(--text-secondary,#9a9ab0);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 14px;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.reanalyze-btn-cancel:hover{color:var(--text-primary,#e8e8e8);background:#ffffff0a}.reanalyze-btn-confirm{background:linear-gradient(180deg, var(--accent,#d4a843), #c09535);color:var(--bg-primary,#1a1a2e);cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:filter .15s,transform .1s;box-shadow:inset 0 1px #ffffff40,0 4px 12px #d4a8432e}.reanalyze-btn-confirm:hover{filter:brightness(1.1)}.reanalyze-btn-confirm:active{transform:translateY(1px)}@media (width<=600px){.reanalyze-row{grid-template-columns:1fr;gap:8px}.reanalyze-foot{flex-direction:column;align-items:stretch;gap:12px}.reanalyze-actions{justify-content:flex-end}}.ddp{background:var(--bg-secondary,#22223a);color:var(--text-primary,#e8e8e8);border:1px solid #d4a84338;border-radius:12px;width:100%;max-width:860px;overflow:hidden;box-shadow:0 8px 24px #00000040,0 0 0 1px #d4a8430f}.ddp-head{background:linear-gradient(#d4a84314,#0000 70%);border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:flex-start;padding:16px 18px 12px;display:flex}.ddp-head-left{flex-direction:column;gap:4px;display:flex}.ddp-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--accent,#d4a843);font-size:.72rem;font-weight:600}.ddp-title{letter-spacing:-.01em;margin:0;font-size:1.2rem;font-weight:600;line-height:1.15}.ddp-head-right{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.ddp-badge-gold{letter-spacing:.04em;text-transform:uppercase;color:var(--accent,#d4a843);background:#d4a8432e;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.65rem;font-weight:600;display:inline-flex}.ddp-close{color:var(--text-secondary,#9a9ab0);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:28px;height:28px;display:grid}.ddp-close:hover{color:var(--text-primary,#e8e8e8);background:#ffffff0d}.ddp-body{flex-direction:column;gap:16px;padding:16px 18px;display:flex}.ddp-section-header{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.ddp-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary,#9a9ab0);font-size:.68rem;font-weight:600}.ddp-section-meta{color:var(--text-secondary,#9a9ab0);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}.ddp-winbar{flex-direction:column;gap:6px;display:flex}.ddp-winbar-track{border-radius:4px;height:24px;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #0006}.ddp-winbar-seg{place-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;font-weight:600;display:grid}.ddp-seg-w{color:#1a120a;background:linear-gradient(#f3eddb,#d8caa3)}.ddp-seg-wg{color:#1a120a;background:linear-gradient(#ecd089,#c69b3a)}.ddp-seg-wbg{color:#f3eddb;background:linear-gradient(#b88a2c,#8e6b1d)}.ddp-seg-lbg{color:#c9aaa6;background:linear-gradient(#2a1413,#190707)}.ddp-seg-lg{color:#e9c9c5;background:linear-gradient(#4a201d,#2c0d0c)}.ddp-seg-l{color:var(--text-secondary,#9a9ab0);background:linear-gradient(#1a1c33,#14152a)}.ddp-winbar-legend{color:var(--text-secondary,#9a9ab0);flex-wrap:wrap;gap:6px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;display:flex}.ddp-sw{vertical-align:1px;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.ddp-equity-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.ddp-equity-cell{background:#ffffff08;border:1px solid #ffffff0f;border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.ddp-equity-k{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary,#9a9ab0);font-size:.62rem;font-weight:600}.ddp-equity-v{font-feature-settings:"tnum";color:var(--text-primary,#e8e8e8);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.15rem;font-weight:500}.ddp-equity-cell--accent .ddp-equity-v{color:var(--accent,#d4a843)}.ddp-equity-sub{color:var(--text-secondary,#9a9ab0);font-size:.68rem}.ddp-candidates{border-collapse:collapse;width:100%;font-size:.85rem}.ddp-candidates thead th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary,#9a9ab0);border-bottom:1px solid #ffffff0f;padding:8px 10px;font-size:.62rem;font-weight:600}.ddp-candidates thead th.ddp-num{text-align:right}.ddp-candidates tbody td{border-bottom:1px solid #ffffff0a;padding:9px 10px}.ddp-row-played{background:linear-gradient(90deg,#d4a8431a,#0000 60%)}.ddp-row-best td:first-child{border-left:2px solid var(--accent,#d4a843)}.ddp-rank{width:22px;color:var(--text-secondary,#9a9ab0);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}.ddp-rank-1{color:var(--accent,#d4a843);font-weight:700}.ddp-move-notation{color:var(--text-primary,#e8e8e8);font-feature-settings:"tnum";font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ddp-num{font-feature-settings:"tnum";text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ddp-delta{color:var(--text-secondary,#9a9ab0)}.ddp-delta--warn{color:#e6a23c}.ddp-delta--bad{color:var(--danger,#e74c3c)}.ddp-played-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--accent,#d4a843);background:#d4a84329;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:.56rem;font-weight:700;display:inline-block}.ddp-cube-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ddp-cube-cell{background:#ffffff08;border:1px solid #ffffff0f;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.ddp-cube-cell--recommend{background:linear-gradient(#d4a8431a,#0000 80%),#ffffff08;border-color:#d4a84359}.ddp-cube-label{flex-direction:column;gap:2px;display:flex}.ddp-cube-k{color:var(--text-secondary,#9a9ab0);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:600}.ddp-cube-v{color:var(--text-primary,#e8e8e8);font-size:.9rem;font-weight:600}.ddp-cube-eq{color:var(--text-secondary,#9a9ab0);font-feature-settings:"tnum";font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.ddp-cube-cell--recommend .ddp-cube-eq{color:var(--accent,#d4a843)}.ddp-foot{background:#0000002e;border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.ddp-foot-meta{color:var(--text-secondary,#9a9ab0);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}@media (width<=600px){.ddp-equity-grid,.ddp-cube-grid{grid-template-columns:1fr}.ddp-candidates thead th:nth-child(5),.ddp-candidates tbody td:nth-child(5){display:none}}.replay-page{background:var(--bg,#1a1a2e);color:#eee;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:1.5rem 1rem;display:flex}.replay-header{align-items:center;gap:1rem;width:100%;max-width:860px;display:flex}.replay-back-btn{color:#ccc;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:6px;padding:.4rem .85rem;font-size:.9rem;transition:background .15s,color .15s}.replay-back-btn:hover{color:#fff;background:#ffffff1a}.replay-title{color:#f5e6c8;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:1.25rem;font-weight:600;overflow:hidden}.replay-share-btn{background:var(--accent,#d4a843);border:1px solid var(--accent,#d4a843);color:var(--bg-primary,#1a1a2e);cursor:pointer;white-space:nowrap;border-radius:6px;padding:.45rem .9rem;font-size:.9rem;font-weight:600;transition:background .15s,color .15s,transform .1s}.replay-share-btn:hover:not(:disabled){filter:brightness(1.1)}.replay-share-btn:active:not(:disabled){transform:scale(.97)}.replay-share-btn--copied{background:var(--success,#2ecc71);border-color:var(--success,#2ecc71);color:var(--bg-primary,#1a1a2e)}.replay-page--embed{min-height:auto;padding:.5rem}.replay-page--embed .replay-counter{font-size:.85rem}@media (width<=768px){.replay-header{flex-wrap:wrap}.replay-share-btn{padding:.4rem .7rem;font-size:.85rem}}.replay-counter{color:#aaa;font-size:1rem}.replay-counter strong{color:#f5e6c8}.replay-board-wrapper{pointer-events:none;width:100%;max-width:860px;position:relative}.replay-dice-overlay{pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:25%;transform:translate(-50%,-50%)}.replay-board-analysis{text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;z-index:2;background:#0000008c;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;align-items:center;gap:.15rem;padding:.4rem .75rem;font-weight:700;line-height:1.1;display:flex;position:absolute;top:50%;left:75%;transform:translate(-50%,-50%)}.replay-board-analysis-quality{letter-spacing:.02em;font-size:.95rem}.replay-board-analysis-prob{color:var(--text-secondary,#9a9ab0);font-size:.8rem;font-weight:600}.replay-board-analysis--best{color:#2ecc71;border-color:#2ecc7180}.replay-board-analysis--good{color:#78c8ff;border-color:#78c8ff80}.replay-board-analysis--inaccuracy{color:#f1c40f;border-color:#f1c40f80}.replay-board-analysis--mistake{color:#e67e22;border-color:#e67e2280}.replay-board-analysis--blunder{color:#e74c3c;border-color:#e74c3c8c}@media (width<=768px){.replay-board-analysis{padding:.3rem .55rem}.replay-board-analysis-quality{font-size:.8rem}.replay-board-analysis-prob{font-size:.7rem}}.replay-move-info{align-items:center;gap:.75rem;min-height:2rem;font-size:.95rem;display:flex}.replay-player-badge{border-radius:12px;padding:.2rem .6rem;font-size:.85rem;font-weight:600;display:inline-block}.replay-player-white{color:#2a1a0e;background:#f0e6d3}.replay-player-black{color:#eee;background:#2b2b2b;border:1px solid #555}.replay-notation{color:#ccc;font-family:monospace}.replay-notation-best{color:#e74c3c;font-family:monospace;font-weight:600}.replay-notation-empty{color:#888;font-style:italic}.replay-controls{align-items:center;gap:.5rem;display:flex}.replay-btn{color:#eee;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;width:2.8rem;height:2.8rem;font-size:1.1rem;transition:background .15s,transform .1s;display:flex}.replay-btn:hover:not(:disabled){background:#ffffff2e}.replay-btn:active:not(:disabled){transform:scale(.94)}.replay-btn:disabled{opacity:.35;cursor:not-allowed}.replay-btn-play{background:#4caf5033;border-color:#4caf5080;width:3.2rem;height:3.2rem;font-size:1.3rem}.replay-btn-play:hover:not(:disabled){background:#4caf5059}.replay-speed{color:#aaa;align-items:center;gap:.6rem;font-size:.85rem;display:flex}.replay-speed-label{color:#888}.replay-speed-slider{accent-color:#4caf50;width:120px}.replay-speed-hint{color:#aaa;min-width:3.5rem}.replay-loading,.replay-error{color:#aaa;text-align:center;margin-top:4rem;font-size:1.1rem}.replay-error{color:var(--danger,#e74c3c)}.replay-analysis-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.replay-analysis-toggle{color:var(--text-primary,#e8e8e8);cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:background .15s,border-color .15s}.replay-analysis-toggle:hover{background:#ffffff14;border-color:#ffffff59}.replay-analysis-toggle--open{border-color:var(--accent,#d4a843);color:var(--accent,#d4a843)}.replay-ply-selector{align-items:center;gap:.35rem;display:flex}.replay-ply-label{color:var(--text-secondary,#9a9ab0);margin-right:.2rem;font-size:.82rem}.replay-ply-btn{color:var(--text-secondary,#9a9ab0);cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:4px;padding:.3rem .6rem;font-size:.8rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.replay-ply-btn:hover:not(:disabled){color:var(--text-primary,#e8e8e8);background:#ffffff0f;border-color:#ffffff4d}.replay-ply-btn--active{border-color:var(--accent,#d4a843);color:var(--accent,#d4a843);background:#d4a84326}.replay-ply-btn:disabled{opacity:.5;cursor:not-allowed}.replay-analysis{background:var(--bg-secondary,#22223a);border:1px solid #ffffff14;border-radius:10px;flex-direction:column;gap:1.25rem;width:100%;max-width:860px;padding:1rem 1.25rem;display:flex}.replay-analysis-status{text-align:center;color:var(--text-secondary,#9a9ab0);padding:1rem;font-size:.95rem}.replay-analysis-status--error{color:var(--danger,#e74c3c)}.replay-analysis-progress-bar{background:#ffffff1a;border-radius:3px;width:100%;height:6px;margin:.5rem 0;overflow:hidden}.replay-analysis-progress-fill{background:var(--accent,#d4a843);border-radius:3px;height:100%;transition:width .5s}.replay-analysis-progress-detail{color:var(--text-secondary,#9a9ab0);font-size:.82rem}.replay-analysis-retry-btn{border:1px solid var(--danger,#e74c3c);color:var(--danger,#e74c3c);cursor:pointer;background:0 0;border-radius:4px;margin-left:.5rem;padding:.25rem .75rem;font-size:.85rem;transition:background .15s}.replay-analysis-retry-btn:hover{background:#e74c3c26}.replay-analysis-banner{color:var(--accent,#d4a843);background:#d4a8431a;border:1px solid #d4a8434d;border-radius:6px;padding:.5rem .75rem;font-size:.85rem}.replay-analysis-banner--source{color:var(--success,#2ecc71);background:#2ecc7114;border-color:#2ecc7140;font-weight:500}.replay-summary-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.replay-summary-player{background:#ffffff0a;border-radius:8px;flex-direction:column;gap:.4rem;padding:.6rem .75rem;display:flex}.replay-summary-stat{justify-content:space-between;font-size:.85rem;display:flex}.replay-summary-label{color:var(--text-secondary,#9a9ab0)}.replay-summary-value{color:var(--text-primary,#e8e8e8);font-family:monospace;font-weight:600}.replay-summary-qualities{flex-wrap:wrap;gap:.3rem .5rem;margin-top:.15rem;display:flex}.replay-summary-quality{font-size:.8rem;font-weight:600}@media (width<=480px){.replay-summary-grid{grid-template-columns:1fr}}.replay-analysis-section{flex-direction:column;gap:.5rem;display:flex}.replay-analysis-heading{color:var(--text-primary,#e8e8e8);letter-spacing:.02em;margin:0;font-size:.95rem;font-weight:600}.replay-quality{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:.15rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.replay-quality--best{color:#2ecc71;background:#2ecc712e}.replay-quality--good{color:#78c8ff;background:#78c8ff26}.replay-quality--inaccuracy{color:#f1c40f;background:#f1c40f2e}.replay-quality--mistake{color:#e67e22;background:#e67e222e}.replay-quality--blunder{color:#e74c3c;background:#e74c3c33}.replay-key-moments{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.replay-key-moment{width:100%;color:inherit;cursor:pointer;text-align:left;background:#ffffff08;border:1px solid #ffffff14;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.5rem .75rem;font-size:.9rem;transition:background .15s;display:grid}.replay-key-moment:hover:not(:disabled){background:#ffffff14}.replay-key-moment-move{color:var(--text-secondary,#9a9ab0)}.replay-key-moment-loss{color:var(--danger,#e74c3c);font-variant-numeric:tabular-nums;font-weight:600}.replay-move-list{flex-direction:column;gap:.2rem;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.replay-move-item{border-radius:6px}.replay-move-item--active{background:#d4a8431f;outline:1px solid #d4a84359}.replay-move-item-btn{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;grid-template-columns:2rem auto auto 1fr auto;align-items:center;gap:.6rem;padding:.35rem .5rem;font-size:.85rem;display:grid}.replay-move-item-btn:hover:not(:disabled){background:#ffffff0d;border-radius:6px}.replay-move-item-num{color:var(--text-secondary,#9a9ab0);font-variant-numeric:tabular-nums;text-align:right}.replay-move-item-player{color:var(--text-secondary,#9a9ab0);font-variant-numeric:tabular-nums}.replay-move-item-notation{color:var(--text-primary,#e8e8e8);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.replay-move-item-best{color:var(--text-secondary,#9a9ab0);font-size:.78rem;font-style:italic}@media (width<=768px){.replay-move-item-btn{grid-template-columns:1.8rem auto 1fr;row-gap:.15rem}.replay-move-item-player,.replay-move-item-best{grid-column:1/-1}}.replay-analysis-attribution{color:var(--text-secondary,#9a9ab0);cursor:help;margin:-.25rem 0 .25rem;font-size:.78rem}.replay-move-probs{color:var(--text-secondary,#9a9ab0);flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.25rem .5rem .4rem 2.6rem;font-size:.78rem;display:flex}.replay-move-probs-row{align-items:center;gap:.4rem;display:inline-flex}.replay-move-probs-label{color:var(--text-primary,#e8e8e8);text-transform:uppercase;letter-spacing:.03em;background:#ffffff14;border-radius:4px;padding:.08rem .4rem;font-size:.7rem;font-weight:600}.replay-move-probs-label--best{color:var(--accent,#d4a843);background:#d4a8432e}.replay-move-probs-notation{color:var(--text-primary,#e8e8e8);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.replay-move-probs-pct{font-variant-numeric:tabular-nums;font-weight:600}.replay-move-probs-pct--chosen{color:var(--text-primary,#e8e8e8)}.replay-move-probs-pct--best{color:var(--accent,#d4a843)}.replay-move-probs-delta{color:var(--danger,#e74c3c);font-variant-numeric:tabular-nums;font-weight:600}.replay-move-probs-toggle{color:var(--text-secondary,#9a9ab0);cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:4px;margin-left:auto;padding:.15rem .5rem;font-size:.72rem;line-height:1;transition:background .15s,border-color .15s,color .15s}.replay-move-probs-toggle:hover:not(:disabled){color:var(--text-primary,#e8e8e8);background:#ffffff14;border-color:#ffffff59}.replay-move-probs-toggle--open{border-color:var(--accent,#d4a843);color:var(--accent,#d4a843)}.replay-move-probs-breakdown{background:#ffffff08;border:1px solid #ffffff14;border-radius:6px;grid-template-columns:1fr auto auto;gap:.2rem 1rem;margin:.25rem .5rem .5rem 2.6rem;padding:.5rem .75rem;font-size:.78rem;display:grid}.replay-move-probs-breakdown-header,.replay-move-probs-breakdown-row{display:contents}.replay-move-probs-breakdown-header>span{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary,#9a9ab0);text-align:right;font-size:.7rem;font-weight:600}.replay-move-probs-breakdown-header>span:first-child{text-align:left}.replay-move-probs-breakdown-label{color:var(--text-secondary,#9a9ab0)}.replay-move-probs-breakdown-value{color:var(--text-primary,#e8e8e8);font-variant-numeric:tabular-nums;text-align:right}@media (width<=768px){.replay-move-probs{padding-left:.5rem}.replay-move-probs-toggle{margin-left:0}.replay-move-probs-breakdown{margin-left:.5rem}}.replay-top-moves{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;width:100%;max-width:600px;overflow:hidden}.replay-top-moves-header{color:var(--text-secondary,#9a9ab0);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #ffffff14;padding:.5rem .75rem;font-size:.8rem;font-weight:600}.replay-top-moves-table{border-collapse:collapse;width:100%;font-size:.85rem}.replay-top-moves-th{text-align:left;color:var(--text-secondary,#9a9ab0);border-bottom:1px solid #ffffff0f;padding:.4rem .75rem;font-size:.75rem;font-weight:500}.replay-top-moves-th--rank{text-align:center;width:2rem}.replay-top-moves-th--equity,.replay-top-moves-th--delta{text-align:right;width:5.5rem}.replay-top-moves-row{transition:background .12s}.replay-top-moves-row:hover{background:#ffffff0f}.replay-top-moves-row--selected{background:#d4a84326}.replay-top-moves-row--selected:hover{background:#d4a84333}.replay-top-moves-row--best .replay-top-moves-td--rank{color:var(--success,#2ecc71);font-weight:700}.replay-top-moves-row--chosen{border-left:3px solid var(--accent,#d4a843)}.replay-top-moves-td{color:var(--text-primary,#e8e8e8);border-bottom:1px solid #ffffff0a;padding:.45rem .75rem}.replay-top-moves-td--rank{text-align:center;color:var(--text-secondary,#9a9ab0);font-weight:600}.replay-top-moves-td--notation{font-family:SF Mono,Fira Code,Consolas,monospace}.replay-top-moves-td--equity,.replay-top-moves-td--delta{text-align:right;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.8rem}.replay-top-moves-td--warn{color:#e6a23c}.replay-top-moves-td--bad{color:var(--danger,#e74c3c)}.replay-top-moves-played{color:var(--accent,#d4a843);margin-left:.5rem;font-family:inherit;font-size:.7rem;font-weight:600;display:inline-block}@media (width<=768px){.replay-top-moves{max-width:100%}.replay-top-moves-th--equity,.replay-top-moves-td--equity{display:none}}.replay-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.replay-reanalyze-btn{color:var(--accent,#d4a843);letter-spacing:.02em;cursor:pointer;white-space:nowrap;background:#d4a8430f;border:1px solid #d4a84359;border-radius:6px;align-items:center;gap:8px;padding:7px 12px;font-size:.78rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.replay-reanalyze-btn:hover:not(:disabled){border-color:var(--accent,#d4a843);background:#d4a84324}.replay-reanalyze-btn--running{opacity:.85;cursor:default}.replay-reanalyze-spin{border:1.5px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.9s linear infinite replay-spin;display:inline-block}@keyframes replay-spin{to{transform:rotate(360deg)}}.replay-freshness{color:var(--text-secondary,#9a9ab0);background:linear-gradient(90deg,#d4a84314,#0000 80%);border:1px solid #d4a84340;border-radius:6px;align-items:center;gap:10px;width:100%;max-width:860px;padding:8px 12px;font-size:.78rem;display:flex}.replay-freshness strong{color:var(--accent,#d4a843)}.replay-progress-card{background:var(--bg-secondary,#22223a);border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:860px;padding:22px;display:flex}.replay-progress-head{justify-content:space-between;align-items:flex-start;display:flex}.replay-progress-title{color:var(--text-primary,#e8e8e8);margin:0;font-size:1.15rem;font-weight:600}.replay-progress-caption{color:var(--text-secondary,#9a9ab0);font-size:.78rem}.replay-progress-pct{color:var(--accent,#d4a843);font-feature-settings:"tnum";font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.6rem}.replay-progress-track{background:#ffffff0f;border-radius:3px;height:6px;overflow:hidden}.replay-progress-fill{background:linear-gradient(90deg, var(--accent,#d4a843), #f0d078);border-radius:3px;height:100%;transition:width .5s;box-shadow:0 0 10px #d4a84373}.replay-progress-meta{color:var(--text-secondary,#9a9ab0);font-feature-settings:"tnum";justify-content:space-between;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;display:flex}.replay-progress-note{color:var(--text-secondary,#9a9ab0);background:linear-gradient(90deg,#d4a84314,#0000 80%);border:1px solid #d4a84340;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:.75rem;display:flex}.replay-progress-note strong{color:var(--accent,#d4a843)}.replay-deepdive-trigger{justify-content:center;display:flex}.replay-deepdive-btn{color:var(--text-secondary,#9a9ab0);letter-spacing:.02em;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.75rem;font-weight:600;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.replay-deepdive-btn:hover:not(:disabled){color:var(--accent,#d4a843);border-color:var(--accent,#d4a843);background:#d4a8430f}.replay-deepdive-btn--active{color:var(--accent,#d4a843);background:#d4a8431a;border-color:#d4a84359}.replay-deepdive-btn:disabled{opacity:.6;cursor:not-allowed}.spectator-badge{background:var(--bg-secondary);color:var(--text-secondary);border-radius:20px;align-self:center;align-items:center;gap:.4rem;margin:.25rem auto .5rem;padding:.35rem .85rem;font-size:.82rem;font-weight:500;display:inline-flex}.spectator-status-msg{color:var(--text-secondary);text-align:center;flex:1;font-size:.9rem}.auth-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{background:var(--bg-secondary);border:1px solid var(--accent);text-align:center;border-radius:12px;width:90%;max-width:420px;padding:2.5rem}.auth-logo{width:120px;height:auto;margin:0 auto 1rem;display:block}.auth-modal h2{color:var(--accent);margin-bottom:1.5rem}.auth-tabs{border-bottom:2px solid var(--bg-primary,#1a1a2e);gap:0;margin-bottom:1.5rem;display:flex}.auth-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;padding:.6rem 1rem;font-size:.95rem;transition:color .2s,border-color .2s}.auth-tab:hover{color:var(--text-primary)}.auth-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.auth-form{flex-direction:column;gap:.75rem;display:flex}.auth-form input{text-align:left;width:100%;padding:.7rem .9rem;font-size:1rem}.auth-btn{cursor:pointer;border:none;border-radius:6px;padding:.75rem;font-size:1rem;transition:opacity .2s}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn.primary{background:var(--accent);color:#fff}.auth-btn.primary:hover:not(:disabled){opacity:.9}.auth-btn.secondary{background:var(--bg-primary,#1a1a2e);color:var(--text-primary);border:1px solid var(--accent)}.auth-btn.secondary:hover:not(:disabled){background:var(--accent);color:#fff}.auth-btn.google{color:#fff;background:#4285f4;justify-content:center;align-items:center;gap:.5rem;display:flex}.auth-btn.google:hover:not(:disabled){background:#3367d6}.google-signin-btn{justify-content:center;margin:.75rem 0;display:flex}.auth-error{color:var(--danger);margin-top:.5rem;font-size:.9rem}.auth-divider{align-items:center;margin:1.5rem 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--text-secondary);opacity:.3;flex:1;height:1px}.auth-divider span{color:var(--text-secondary);text-transform:uppercase;padding:0 1rem;font-size:.85rem}.guest-text{color:var(--text-secondary);margin-bottom:.25rem;font-size:.85rem}.guest-form input{text-align:center}@media (width<=600px){.auth-modal{width:95%;padding:1.5rem}.auth-modal h2{margin-bottom:1rem;font-size:1.2rem}.auth-tabs{margin-bottom:1rem}.auth-tab{padding:.5rem .75rem;font-size:.85rem}.auth-form input{padding:.6rem .75rem;font-size:.9rem}.auth-btn{padding:.65rem;font-size:.9rem}.auth-divider{margin:1rem 0}}:root{--bg-primary:#1a1a2e;--bg-secondary:#22223a;--text-primary:#e8e8e8;--text-secondary:#9a9ab0;--accent:#d4a843;--board-dark:#5c3d2e;--board-light:#c69c6d;--white-checker:#f0e6d3;--black-checker:#2b2b2b;--bar-color:#3e2a1c;--danger:#e74c3c;--success:#2ecc71}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Arial,sans-serif;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{flex-direction:column;min-height:100vh;display:flex}.landing{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}button{cursor:pointer;background-color:var(--accent);color:var(--bg-primary);border:none;border-radius:6px;padding:.5rem 1.25rem;font-family:inherit;font-size:1rem;font-weight:600;transition:opacity .15s}button:hover{opacity:.85}button:disabled{opacity:.5;cursor:not-allowed}input,select{border:1px solid var(--text-secondary);background-color:var(--bg-secondary);color:var(--text-primary);border-radius:6px;outline:none;padding:.5rem .75rem;font-family:inherit;font-size:1rem;transition:border-color .15s}input:focus,select:focus{border-color:var(--accent)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--text-secondary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@media (width<=900px){html{font-size:15px}.landing{padding:1.5rem}button{padding:.5rem 1rem}}@media (width<=600px){html{font-size:14px}.landing{gap:.75rem;padding:1rem}h1{font-size:1.6rem}h2{font-size:1.3rem}h3{font-size:1.1rem}button{padding:.45rem .9rem;font-size:.9rem}input,select{padding:.45rem .65rem;font-size:.9rem}}
