.adv-stats{width:100%;display:flex;flex-direction:column;gap:1.5rem}.adv-stats-loading,.adv-stats-empty{text-align:center;color:var(--text-secondary);padding:1.25rem;font-style:italic}.adv-stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.adv-stat-card{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:1rem;text-align:center}.adv-stat-value{font-size:1.85rem;font-weight:700;line-height:1.1}.adv-stat-accent{color:var(--accent)}.adv-stat-label{margin-top:.25rem;color:var(--text-primary);font-size:.9rem;font-weight:600}.adv-stat-sub{margin-top:.4rem;color:var(--text-secondary);font-size:.78rem}.adv-section{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:1rem 1.25rem}.adv-section-title{margin:0 0 .85rem;color:var(--text-primary);font-size:1rem;font-weight:600;letter-spacing:.02em}.adv-bar-row{display:grid;grid-template-columns:110px 1fr 110px;align-items:center;gap:.75rem;padding:.35rem 0}.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{height:100%;background:var(--success);border-radius:6px;transition:width .3s ease}.adv-bar-value{text-align:right;color:var(--text-primary);font-size:.85rem;font-variant-numeric:tabular-nums}.adv-bar-meta{color:var(--text-secondary);font-size:.75rem;margin-left:.25rem}.adv-rating-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.adv-rating-current{font-size:1.5rem;font-weight:700;color:var(--accent)}.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:2;stroke-linejoin:round;stroke-linecap:round}.adv-rating-baseline{stroke:#ffffff1a;stroke-width:1;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}@media(max-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}}.dashboard{width:100%}.dashboard-overview{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem;flex-wrap:wrap}.dashboard-rating{color:#ffc107}.dashboard-wins{color:#4caf50}.dashboard-losses{color:var(--danger)}.dashboard-abandoned{color:#ff9800}.dashboard-tabs{display:flex;gap:.25rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:1rem}.dashboard-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);cursor:pointer;font-size:.9rem;font-weight:600;padding:.6rem 1rem;transition:color .15s ease,border-color .15s ease}.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:nth-child(1),.dashboard-table td:nth-child(1),.dashboard-table th:nth-child(2),.dashboard-table td:nth-child(2){text-align:left}.color-indicator{display:inline-block;width:16px;height:16px;border-radius:50%;vertical-align:middle}.color-white{background:#f0f0f0;border:1px solid rgba(255,255,255,.3)}.color-black{background:#333;border:1px solid rgba(255,255,255,.15)}.result-badge{display:inline-block;padding:.2rem .6rem;border-radius:12px;font-size:.8rem;font-weight:600;line-height:1.2}.result-win{background:#4caf5026;color:#4caf50}.result-loss{background:#f4433626;color:var(--danger)}.result-abandoned{background:#ff980026;color:#ff9800}.result-resume{background:#2196f326;color:#2196f3;cursor:pointer}.resumable-row{cursor:pointer;border-left:3px solid #2196f3}.resumable-row:hover,.resumable-row:active{background:#2196f314}.replay-link-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#aaa;padding:.2rem .55rem;border-radius:6px;font-size:.78rem;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.replay-link-btn:hover{background:#ffffff1a;color:#fff}.export-btn{background:none;border:1px solid var(--text-secondary, #888);border-radius:4px;color:var(--text-secondary, #888);cursor:pointer;font-size:.85rem;line-height:1;padding:.2rem .5rem}.export-btn:hover{background:#00000012;border-color:var(--text-primary, #333);color:var(--text-primary, #333)}.dashboard-loading,.dashboard-empty{text-align:center;color:var(--text-secondary);padding:1rem;font-style:italic}@media(max-width:900px){.dashboard-overview{gap:.75rem}.dashboard-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:600px){.dashboard-overview{gap:.5rem}.dashboard-table th,.dashboard-table td{font-size:.8rem;padding:.4rem .5rem}.result-badge{font-size:.7rem;padding:.15rem .45rem}.color-indicator{width:12px;height:12px}}.dashboard-season-banner{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:6px;margin-bottom:1rem}.dashboard-season-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.dashboard-season-name{font-size:1rem;font-weight:600;color:var(--accent)}.dashboard-tier-badge{display:inline-block;margin-left:.4rem;padding:.05rem .4rem;font-size:.65rem;font-weight:600;letter-spacing:.02em;border:1px solid currentColor;border-radius:999px;text-transform:uppercase;vertical-align:middle}.lobby{display:flex;flex-direction:column;align-items:center;flex:1;padding:2rem;gap:1.5rem;width:100%;max-width:500px;margin:0 auto}.lobby-header{display:flex;align-items:center;width:100%;gap:1rem}.lobby-header h2{flex:1;text-align:center;color:var(--accent);margin:0}.lobby-back-btn{padding:.4rem .8rem;font-size:.85rem;background:var(--bg-secondary);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;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{display:flex;gap:.75rem;width:100%}.lobby-quick-match-btn,.lobby-create-btn{flex:1;padding:.75rem 1rem;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;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);font-size:.9rem;text-align:center}.lobby-table-list{width:100%}.lobby-table-list h3{color:var(--text-secondary);font-size:.95rem;margin-bottom:.75rem}.lobby-loading,.lobby-empty{color:var(--text-secondary);font-size:.9rem;font-style:italic;text-align:center;padding:1.5rem 0}.lobby-table-item{display:flex;align-items:center;justify-content:space-between;background:var(--bg-secondary);border-radius:8px;padding:.85rem 1rem;margin-bottom:.5rem;transition:background .15s}.lobby-table-item:hover{background:var(--bg-tertiary, var(--bg-secondary))}.lobby-table-info{display:flex;flex-direction:column;gap:.2rem}.lobby-table-creator{color:var(--text-primary);font-weight:600;font-size:.95rem}.lobby-table-details{color:var(--text-secondary);font-size:.8rem}.lobby-table-time{color:var(--text-secondary);font-size:.75rem;opacity:.7}.lobby-join-btn{padding:.45rem 1rem;border:none;border-radius:6px;background:var(--accent);color:var(--bg-primary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.lobby-join-btn:hover:not(:disabled){opacity:.9}.lobby-join-btn:disabled{opacity:.6;cursor:not-allowed}.lobby-watch-btn{padding:.45rem 1rem;border:1px solid var(--accent);border-radius:6px;background:transparent;color:var(--accent);font-size:.85rem;font-weight:600;cursor:pointer;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{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;letter-spacing:.02em;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--text-secondary);border-radius:999px;text-transform:uppercase;vertical-align:middle}.lobby--embedded{padding:0;max-width:none;align-items:stretch}.lobby--embedded .lobby-table-item{background:var(--bg-primary, #1a1a2e)}.leaderboard{display:flex;flex-direction:column;align-items:center;flex:1;padding:2rem;gap:1.5rem;width:100%;max-width:700px;margin:0 auto}.leaderboard-header{display:flex;align-items:center;width:100%;gap:1rem}.leaderboard-header h2{flex:1;text-align:center;color:var(--accent);margin:0}.leaderboard-back-btn{padding:.4rem .8rem;font-size:.85rem;background:var(--bg-secondary);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;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{display:flex;gap:.5rem;width:100%;background:var(--bg-secondary);border-radius:8px;padding:.25rem}.leaderboard-tab{flex:1;padding:.5rem .75rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;background:transparent;color:var(--text-secondary);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{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;width:100%}.leaderboard-period-tab{padding:.35rem .9rem;border:1px solid var(--bg-secondary);border-radius:999px;background:transparent;color:var(--text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.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{position:sticky;bottom:0;align-self:stretch;display:flex;align-items:center;gap:.6rem;padding:.6rem .9rem;margin-top:.5rem;background:color-mix(in srgb,var(--accent) 14%,var(--bg-secondary));border:1px solid var(--accent);border-radius:8px;color:var(--text-primary);font-size:.85rem;box-shadow:0 -2px 6px #00000040}.leaderboard-self-footer-label{font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.leaderboard-self-footer-rank{font-weight:700;font-size:1rem}.leaderboard-self-footer-meta{color:var(--text-secondary);font-size:.8rem}.leaderboard-loading,.leaderboard-empty{color:var(--text-secondary);font-size:.9rem;font-style:italic;text-align:center;padding:2rem 0}.leaderboard-error{color:var(--danger);font-size:.9rem;text-align:center}.leaderboard-table-wrapper{width:100%;overflow-x:auto}.leaderboard-table{width:100%;border-collapse:collapse;font-size:.9rem}.leaderboard-table th{text-align:left;padding:.6rem .75rem;color:var(--text-secondary);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--bg-secondary);white-space:nowrap}.leaderboard-table td{padding:.65rem .75rem;border-bottom:1px solid var(--bg-secondary);color:var(--text-primary)}.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);font-weight:700;min-width:2rem}.leaderboard-rank-1{color:#f5c518}.leaderboard-rank-2{color:silver}.leaderboard-rank-3{color:#cd7f32}.leaderboard-nickname{font-weight:500}.leaderboard-you-badge{display:inline-block;margin-left:.4rem;padding:.1rem .4rem;background:var(--accent);color:var(--bg-primary);border-radius:4px;font-size:.7rem;font-weight:700;vertical-align:middle}.leaderboard-load-more{padding:.65rem 2rem;border:none;border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:all .15s;margin-top:.5rem}.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);font-size:.8rem;text-align:center}.leaderboard--embedded{padding:0;max-width:none;align-items:stretch}.leaderboard-tier-badge{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;letter-spacing:.02em;border:1px solid currentColor;border-radius:999px;text-transform:uppercase;vertical-align:middle}.tournament-list-page,.tournament-detail-page{max-width:900px;margin:0 auto;padding:2rem 1rem;width:100%}.tournament-loading,.tournament-empty{text-align:center;color:var(--text-secondary);padding:3rem 0}.tournament-error{color:#e74c3c;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:8px;padding:.75rem 1rem;margin:1rem 0}.tournament-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.tournament-list-header h2{margin:0}.tournament-create-form{background:var(--bg-secondary);border-radius:10px;padding:1.5rem;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:1rem}.tournament-create-form h3{margin:0}.form-row{display:flex;align-items:center;gap:1rem}.form-row label{min-width:100px;color:var(--text-secondary);font-size:.9rem}.form-row input,.form-row select{flex:1;background:var(--bg-primary, #1a1a2e);border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--text-primary);padding:.5rem .75rem;font-size:.95rem}.tournament-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.tournament-item{background:var(--bg-secondary);border-radius:10px;padding:1rem 1.25rem;cursor:pointer;transition:background .15s;display:flex;flex-direction:column;gap:.4rem}.tournament-item:hover{background:var(--bg-hover, rgba(255, 255, 255, .07))}.tournament-item-name{font-weight:600;font-size:1.05rem;color:var(--text-primary)}.tournament-item-meta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;font-size:.85rem;color:var(--text-secondary)}.tournament-item-winner{font-size:.9rem;color:#f1c40f}.tournament-status{display:inline-block;border-radius:4px;padding:.2rem .5rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.tournament-status.registering{background:#3498db33;color:#3498db}.tournament-status.in-progress{background:#f39c1233;color:#f39c12}.tournament-status.completed{background:#2ecc7133;color:#2ecc71}.btn-back{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.9rem;padding:0;margin-bottom:1.5rem;display:inline-flex;align-items:center;gap:.3rem}.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{display:flex;flex-wrap:wrap;gap:1rem;color:var(--text-secondary);font-size:.9rem}.tournament-winner-banner{background:linear-gradient(90deg,#f1c40f26,#f1c40f0d);border:1px solid rgba(241,196,15,.3);border-radius:8px;padding:.75rem 1.25rem;color:#f1c40f;font-size:1rem;margin-bottom:1.25rem}.tournament-actions{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.tournament-match-ready-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:linear-gradient(90deg,#2ecc712e,#2ecc710d);border:1px solid rgba(46,204,113,.4);border-radius:8px;padding:.85rem 1.25rem;margin-bottom:1.25rem;color:var(--text-primary);animation:match-ready-pulse 2s ease-in-out infinite}.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;padding:1rem 1.25rem;margin-bottom:1.5rem}.tournament-entrants h3{margin:0 0 .75rem;font-size:1rem}.tournament-entrants ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.4rem}.tournament-entrants li{color:var(--text-secondary);font-size:.9rem;padding:.2rem 0}.tournament-entrants li.self{color:var(--text-primary);font-weight:600}.self-tag{font-weight:400;opacity:.7}.bracket-container{overflow-x:auto}.bracket-container h3{margin:0 0 1rem}.bracket{display:grid;gap:1rem;min-width:400px}.bracket-round{display:flex;flex-direction:column;gap:1rem}.bracket-round-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);text-align:center;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:.25rem}.bracket-match{background:var(--bg-secondary);border-radius:8px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.3rem;border:1px solid rgba(255,255,255,.06);transition:border-color .15s}.bracket-match.my-match{border-color:#3498db66;background:#3498db0d}.bracket-match.completed{opacity:.75}.bracket-match.bye{opacity:.5}.bracket-player{font-size:.9rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bracket-player.winner{color:#f1c40f;font-weight:700}.bracket-vs{font-size:.75rem;color:var(--text-secondary);opacity:.5;text-align:center}.tbd{opacity:.4;font-style:italic}.btn-play-match{margin-top:.4rem;background:var(--accent, #3498db);color:#fff;border:none;border-radius:6px;padding:.3rem .75rem;font-size:.85rem;cursor:pointer;align-self:flex-start;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, rgba(255, 255, 255, .12));color:var(--text-secondary)}.btn-primary{background:var(--accent, #3498db);color:#fff;border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.tournament-list-page--embedded{padding:0;max-width:none}.tournament-list-header--embedded{margin-bottom:1rem}.cosmetics{display:flex;flex-direction:column;gap:1rem;padding:.5rem 0}.cosmetics-heading{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:.5rem 0 .25rem;letter-spacing:.02em}.cosmetics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.cosmetics-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;background:var(--bg-secondary);border:2px solid transparent;border-radius:8px;cursor:pointer;color:var(--text-primary);transition:border-color .15s ease,transform .15s ease}.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{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;height:60px;border-radius:6px;overflow:hidden}.cosmetics-swatch-board{border:1px solid rgba(0,0,0,.25)}.cosmetics-swatch-dot{display:inline-block;width:22px;height:32px;clip-path:polygon(50% 100%,0 0,100% 0)}.cosmetics-swatch-checkers{background:linear-gradient(135deg,#2a2a3a,#14141e)}.cosmetics-swatch-disc{display:inline-block;width:32px;height:32px;border-radius:50%;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{padding:1.25rem 1.5rem 2rem;color:var(--text-primary);display:flex;flex-direction:column;gap:1.5rem}.challenges-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.challenges-title{margin:0 0 .25rem;font-size:1.35rem}.challenges-subtitle{margin:0;color:var(--text-secondary);font-size:.9rem}.challenges-points{background:var(--bg-secondary);border:1px solid rgba(212,168,67,.4);border-radius:10px;padding:.5rem .9rem;display:flex;align-items:baseline;gap:.3rem}.challenges-points-value{font-size:1.5rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.challenges-points-label{color:var(--text-secondary);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.challenges-section{display:flex;flex-direction:column;gap:.75rem}.challenges-section-title{margin:0;font-size:1rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.challenges-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.challenges-empty{color:var(--text-secondary);font-style:italic;margin:0}.challenge-card{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:.85rem 1rem .9rem;display:flex;flex-direction:column;gap:.5rem;transition:border-color .15s ease,transform .15s ease}.challenge-card--complete{border-color:var(--success);animation:challenge-pulse 1.6s ease-in-out}@keyframes challenge-pulse{0%{box-shadow:0 0 #2ecc7173;transform:scale(1)}50%{box-shadow:0 0 0 10px #2ecc7100;transform:scale(1.015)}to{box-shadow:0 0 #2ecc7100;transform:scale(1)}}.challenge-card-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.challenge-card-name{font-weight:600;font-size:1rem}.challenge-card-check{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--success);color:#0b2a14;font-weight:700;font-size:.9rem}.challenge-card-desc{margin:0;color:var(--text-secondary);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 ease}.challenge-card--complete .challenge-progress-bar{background:var(--success)}.challenge-card-foot{display:flex;justify-content:space-between;font-size:.85rem}.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{padding:2rem 1.5rem;text-align:center;color:var(--text-secondary)}.challenges-guest h3{color:var(--text-primary);margin:0 0 .5rem}.challenges-error{color:var(--danger)}@media(max-width:480px){.challenges-root{padding:1rem}.challenges-list{grid-template-columns:1fr}}.home{display:flex;flex-direction:column;align-items:center;flex:1;padding:24px;gap:0}.home-welcome-bar{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1200px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:24px}.home-welcome-bar .app-title{color:var(--accent);font-size:1.35rem;font-weight:700;letter-spacing:.02em}.home-welcome-bar .welcome-text{color:var(--text-secondary);font-size:.95rem}.home-welcome-bar .welcome-text strong{color:var(--text-primary)}.guest-badge{font-style:italic;color:var(--text-secondary)}.home-main{display:grid;grid-template-columns:380px 1fr;gap:24px;width:100%;max-width:1200px;align-items:start}.play-panel{background:var(--bg-secondary);border-radius:12px;border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 12px #0000004d;padding:24px;display:flex;flex-direction:column;gap:20px;position:sticky;top:24px}.play-panel-title{color:var(--text-primary);font-size:1.15rem;font-weight:600;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.config-section{display:flex;flex-direction:column;gap:14px}.config-row{display:flex;flex-direction:column;gap:6px}.config-label{font-size:.8rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.config-pill-bar{display:flex;gap:0;background:var(--bg-primary);border-radius:8px;padding:3px;width:100%}.config-pill-option{flex:1;padding:6px 0;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:.82rem;font-weight:400;cursor:pointer;transition:all .15s ease;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:4px}.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){color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);font-weight:600;letter-spacing:.04em}.color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.3)}.color-dot.white{background:#e8e0d4}.color-dot.black{background:#2c2c2c}.play-actions{display:flex;flex-direction:column;gap:10px}.play-action-primary{width:100%;padding:12px 0;background:var(--accent);color:var(--bg-primary);font-size:1rem;font-weight:700;border-radius:8px;border:none;letter-spacing:.02em;cursor:pointer;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%;padding:12px 0;background:transparent;color:var(--accent);font-size:.95rem;font-weight:600;border-radius:8px;border:1.5px solid var(--accent);letter-spacing:.02em;cursor:pointer;transition:background .15s}.play-action-secondary:hover:not(:disabled){background:#d4a8431a}.play-action-secondary:disabled{opacity:.5;cursor:not-allowed}.panel-error{background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:6px;padding:8px 12px;color:var(--danger);font-size:.85rem}.play-divider{height:1px;background:#ffffff14}.play-join-form{display:flex;gap:8px;align-items:center}.play-join-form input{flex:1;padding:8px 12px;background:var(--bg-primary);border:1px solid rgba(255,255,255,.08);border-radius:6px;color:var(--text-primary);font-size:.9rem;text-transform:uppercase;outline:none;transition:border-color .15s;min-width:0}.play-join-form input::placeholder{text-transform:none}.play-join-form input:focus{border-color:var(--accent)}.play-join-btn{padding:8px 20px;background:#ffffff0d;color:var(--text-primary);border:1px solid rgba(255,255,255,.08);border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;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-radius:12px;border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 12px #0000004d;display:flex;flex-direction:column;min-height:500px;max-height:calc(100vh - 140px);overflow:hidden}.content-tabs{display:flex;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;overflow-x:auto}.content-tab{flex:1;padding:14px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s;border-bottom:2px solid transparent;white-space:nowrap}.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{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;gap:8px}.guest-prompt h3{font-size:1.1rem;font-weight:600}.guest-prompt p{font-size:.9rem;color:var(--text-secondary);max-width:320px}@media(max-width:960px){.home{padding:20px}.home-main{grid-template-columns:320px 1fr;gap:20px}.play-panel{padding:20px}}@media(max-width:768px){.home{padding:16px}.home-main{grid-template-columns:1fr;gap:16px}.play-panel{position:static;padding:16px;gap:14px}.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;padding:12px 0;margin-bottom:16px}.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(max-width:480px){.config-pill-option{font-size:.75rem;padding:5px 0}}.board-container{display:flex;flex-direction:column;align-items:center;width:100%;--board-bg: #3e6b35;--board-bar: #2d1810;--board-bearoff: #2d1810;--point-dark: #5c3d2e;--point-light: #c69c6d;--checker-white-0: #ffffff;--checker-white-1: #f0e6d3;--checker-white-2: #d4c4a8;--checker-white-3: #b8a88a;--checker-black-0: #888888;--checker-black-1: #4a4a4a;--checker-black-2: #2b2b2b;--checker-black-3: #1a1a1a}.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: #ffffff;--checker-white-1: #f0e6d3;--checker-white-2: #d4c4a8;--checker-white-3: #b8a88a;--checker-black-0: #888888;--checker-black-1: #4a4a4a;--checker-black-2: #2b2b2b;--checker-black-3: #1a1a1a}.board-container[data-checker=marble]{--checker-white-0: #ffffff;--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: #ffffff;--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{width:100%;max-width:1000px;height:auto;filter:drop-shadow(0 4px 20px rgba(0,0,0,.4));border-radius:8px}.board-svg .checker{transition:transform .2s ease}.board-svg .checker-animating{pointer-events:none;will-change:transform}.board-svg .ghost-checker{opacity:.35;pointer-events:none}.board-svg .hint-highlight{animation:hint-pulse 1.2s ease-in-out infinite}@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(max-width:600px){.board-svg{filter:drop-shadow(0 2px 10px rgba(0,0,0,.3));border-radius:4px}}.dice-container{display:flex;gap:1rem;align-items:center;justify-content:center;padding:.5rem}.die{width:52px;height:52px;border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative;transition:opacity .3s ease,transform .3s ease}@keyframes dice-tumble{0%{transform:scale(.3) rotateX(0) rotateY(0);opacity: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:dice-tumble .5s cubic-bezier(.25,.46,.45,.94)}.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{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;width:36px;height:36px;padding:2px}.die-dot{width:8px;height:8px;border-radius:50%;background:transparent;align-self:center;justify-self:center}.die-white .die-dot.filled{background:#2c1810}.die-black .die-dot.filled{background:#f0ebe0}.dice-separator{color:var(--text-secondary);font-size:.9rem}.board-overlay .dice-container{padding:.15rem;gap:.5rem}.board-overlay .die{width:40px;height:40px;border-radius:6px}.board-overlay .die-dots{width:28px;height:28px}.board-overlay .die-dot{width:6px;height:6px}@media(max-width:900px){.die{width:46px;height:46px}.die-dots{width:32px;height:32px}.die-dot{width:7px;height:7px}}@media(max-width:600px){.dice-container{gap:.6rem;padding:.35rem}.die{width:38px;height:38px;border-radius:6px}.die-dots{width:26px;height:26px}.die-dot{width:6px;height:6px}.board-overlay .die{width:32px;height:32px;border-radius:5px}.board-overlay .die-dots{width:22px;height:22px}.board-overlay .die-dot{width:5px;height:5px}}.game-controls{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem}.controls-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:center}.controls-row:empty{display:none}.controls-row .roll-btn{padding:.5rem 1.5rem;font-size:.95rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #d4a84366}50%{box-shadow:0 0 0 8px #d4a84300}}.controls-row .end-turn-btn{padding:.5rem 1.5rem;font-size:.95rem;background:var(--text-secondary)}.controls-row .confirm-turn-btn{padding:.5rem 1.5rem;font-size:.95rem;background:var(--success)}.controls-row .undo-btn{padding:.4rem 1.2rem;font-size:.9rem;background:var(--text-secondary)}.controls-row .double-btn{padding:.5rem 1.5rem;font-size:1rem;background:var(--accent)}.controls-row .accept-double-btn{padding:.5rem 1.2rem;font-size:.95rem;background:var(--success)}.controls-row .decline-double-btn{padding:.5rem 1.2rem;font-size:.95rem;background:var(--danger, #e74c3c)}.controls-row .hint-btn{padding:.4rem 1.2rem;font-size:.9rem;background:#3498db}.controls-row .hint-btn:disabled{background:#7f8c8d;cursor:not-allowed;opacity:.6}.board-overlay .game-controls{padding:.15rem;gap:.25rem}.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}@media(max-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(max-width:600px){.game-controls{padding:.35rem;gap:.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{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .15s}.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{margin-left:auto;font-size:.75rem;opacity:.7}.move-history{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem;padding:.5rem;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);border-top:none;border-radius:0 0 6px 6px}.move-history-entry{font-size:.8rem;color:var(--text-secondary);padding:.2rem .4rem;border-radius:3px}.move-history-entry:nth-child(odd){background:#ffffff08}.move-history-empty{color:var(--text-secondary);font-size:.85rem;font-style:italic;text-align:center;padding:.5rem}.load-more-btn{margin-top:.25rem;padding:.35rem .75rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:var(--text-secondary);font-size:.8rem;cursor:pointer;transition:all .15s;align-self:center}.load-more-btn:hover:not(:disabled){background:#ffffff24;border-color:var(--accent);color:var(--accent)}.load-more-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){.move-history-drawer{max-width:100%}}@media(max-width:600px){.move-history-drawer{max-width:100%}.drawer-toggle{font-size:.8rem;padding:.4rem .6rem}.move-history{max-height:150px}.move-history-entry{font-size:.75rem}}.chat-panel{position:fixed;bottom:1rem;right:1rem;z-index:900;display:flex;flex-direction:column;align-items:flex-end}.chat-toggle-btn{position:relative;width:3rem;height:3rem;border-radius:50%;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.15);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s;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{position:absolute;top:-4px;right:-4px;min-width:1.2rem;height:1.2rem;padding:0 .3rem;border-radius:10px;background:var(--danger, #e74c3c);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.chat-body{width:300px;max-height:400px;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.15);border-radius:10px;margin-bottom:.5rem;display:flex;flex-direction:column;box-shadow:0 4px 16px #0006;overflow:hidden}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.1)}.chat-title{font-weight:600;font-size:.9rem;color:var(--accent)}.chat-mute-label{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.chat-mute-checkbox{width:14px;height:14px;cursor:pointer}.chat-messages{flex:1;overflow-y:auto;padding:.5rem .75rem;display:flex;flex-direction:column;gap:.35rem;min-height:120px;max-height:220px}.chat-empty{color:var(--text-secondary);font-size:.8rem;text-align:center;padding:2rem 0}.chat-message{display:flex;flex-direction:column;gap:.1rem;max-width:85%;word-break:break-word}.chat-message-mine{align-self:flex-end}.chat-message-theirs{align-self:flex-start}.chat-sender{font-size:.65rem;color:var(--text-secondary);font-weight:600}.chat-message-mine .chat-sender{text-align:right}.chat-text{font-size:.85rem;color:var(--text-primary);background:var(--bg-primary);padding:.3rem .6rem;border-radius:8px;line-height:1.35}.chat-message-mine .chat-text{background:#e6b94726;border:1px solid rgba(230,185,71,.3)}.chat-message-theirs .chat-text{background:var(--bg-primary);border:1px solid rgba(255,255,255,.1)}.chat-quick-messages{display:flex;gap:.3rem;padding:.4rem .75rem;border-top:1px solid rgba(255,255,255,.06);flex-wrap:wrap}.chat-quick-btn{padding:.2rem .5rem;font-size:.7rem;background:var(--bg-primary);color:var(--text-secondary);border:1px solid rgba(255,255,255,.15);border-radius:12px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.chat-quick-btn:hover{color:var(--accent);border-color:var(--accent)}.chat-input-row{display:flex;gap:.4rem;padding:.5rem .75rem;border-top:1px solid rgba(255,255,255,.1)}.chat-input{flex:1;padding:.35rem .6rem;font-size:.85rem;background:var(--bg-primary);color:var(--text-primary);border:1px solid rgba(255,255,255,.15);border-radius:6px;outline:none;transition:border-color .15s}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--text-secondary);opacity:.6}.chat-send-btn{padding:.35rem .75rem;font-size:.85rem;font-weight:600;background:var(--accent);color:var(--bg-primary);border:none;border-radius:6px;cursor:pointer;transition:opacity .15s;white-space:nowrap}.chat-send-btn:hover{opacity:.85}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}@media(max-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{display:flex;flex-direction:column;min-height:100vh;padding:1rem}.game-header{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;margin-bottom:.5rem}.game-header-left{display:flex;align-items:baseline;gap:.5rem;flex-shrink:0}.game-header h2{color:var(--accent);font-size:1.25rem;white-space:nowrap}.header-table-id{font-size:.75rem;color:var(--text-secondary);font-weight:400}.header-copy-btn{padding:.1rem .4rem;font-size:.7rem;background:transparent;color:var(--text-secondary);border:1px solid var(--text-secondary);border-radius:3px;cursor:pointer;transition:all .15s}.header-copy-btn:hover{border-color:var(--accent);color:var(--accent)}.game-status-msg{color:var(--text-secondary);font-size:.85rem;text-align:center;flex:1;min-width:0}.game-header .back-link{color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:color .15s;flex-shrink:0}.game-header .back-link:hover{color:var(--accent)}.game-layout{display:flex;flex:1;justify-content:center;align-items:flex-start}.game-center{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;max-width:1000px}.board-area{position:relative;width:100%}.board-overlay{position:absolute;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;z-index:10;pointer-events:none}.board-overlay>*{pointer-events:auto}.perspective-white .board-overlay{left:2.5%;width:39%}.perspective-black .board-overlay{left:7.5%;width:39%}.board-overlay-right{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;z-index:10;pointer-events:none}.board-overlay-right>*{pointer-events:auto}.perspective-white .board-overlay-right{left:46.5%;width:39%}.perspective-black .board-overlay-right{left:51.5%;width:39%}.win-banner{background:#000c;border:2px solid var(--accent);color:var(--accent);font-size:1.4rem;font-weight:700;padding:.75rem 1.5rem;border-radius:10px;text-align:center;white-space:nowrap;animation:bannerFadeIn .4s ease}@keyframes bannerFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.player-info-row{display:flex;align-items:center;gap:.75rem;width:100%;justify-content:center}.pip-count{font-size:.8rem;color:var(--text-secondary)}.match-pts{font-size:.8rem;color:var(--accent);font-weight:600}.game-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;color:var(--text-secondary)}.game-loading .spinner{width:40px;height:40px;border:3px solid var(--bg-secondary);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.game-error-banner{background:#e74c3c26;border:1px solid var(--danger);color:var(--danger);padding:.5rem 1rem;border-radius:6px;text-align:center;font-size:.9rem;animation:fadeIn .3s ease}.connection-banner{background:#e74c3c26;border:1px solid var(--danger);color:var(--danger);padding:.4rem 1rem;border-radius:6px;text-align:center;font-size:.85rem}.connection-banner.reconnected{background:#2ecc7126;border-color:var(--success);color:var(--success)}.spectator-count-banner{background:var(--bg-secondary);color:var(--text-secondary);padding:.3rem 1rem;border-radius:6px;text-align:center;font-size:.8rem}.waiting-table-id{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;color:var(--text-primary)}.table-id-code{background:var(--bg-secondary);border:1px solid var(--accent);color:var(--accent);padding:.4rem .8rem;border-radius:4px;font-size:1.25rem;letter-spacing:.15em;font-weight:700}.copy-id-btn{background:var(--accent);color:var(--bg-primary);border:none;padding:.4rem .8rem;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600}.copy-id-btn:hover{opacity:.85}.waiting-or{color:var(--text-secondary);font-size:.85rem;margin:.25rem 0}.invite-bot-btn{background:var(--bg-secondary);color:var(--accent);border:1px solid var(--accent);padding:.5rem 1.2rem;border-radius:6px;cursor:pointer;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{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .9rem;border-radius:20px;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);font-size:.85rem;color:var(--text-primary)}.player-pill.disconnected{border-color:var(--danger);opacity:.8}.connection-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.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{width:24px;height:24px;border-radius:50%;object-fit:cover}.pill-name{font-weight:500}.game-over-banner,.match-over-banner{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.5rem}.game-over-result,.match-over-title{font-size:1.2rem;font-weight:700}.match-over-title{font-size:1.4rem;color:var(--accent)}.game-over-score{font-size:.9rem;color:var(--text-secondary)}.match-over-result{font-size:1rem;font-weight:600;color:var(--accent)}.next-game-btn{margin-top:.25rem;padding:.5rem 1.5rem;background:var(--accent);color:var(--bg-primary);border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s}.next-game-btn:hover{opacity:.85}.bot-difficulty-badge{font-size:.7rem;padding:.15rem .45rem;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.bot-difficulty-badge.difficulty-easy{background:#4caf5033;color:#81c784}.bot-difficulty-badge.difficulty-medium{background:#ffc10733;color:#ffd54f}.bot-difficulty-badge.difficulty-hard{background:#f4433633;color:#e57373}.bot-difficulty-badge.difficulty-expert{background:#9c27b033;color:#ce93d8}.bot-difficulty-badge.difficulty-gnu{background:#d4a84333;color:var(--accent, #d4a843);border:1px solid rgba(212,168,67,.5)}.crawford-badge{font-size:.7rem;padding:.15rem .5rem;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:#ff980033;color:#ffb74d;border:1px solid rgba(255,152,0,.4)}.player-rating{font-size:.7rem;padding:.15rem .45rem;border-radius:4px;background:#ffc10726;color:#ffc107;font-weight:600;letter-spacing:.05em}.chess-clock{font-family:Courier New,Courier,monospace;font-size:1rem;font-weight:700;padding:.25rem .6rem;border-radius:6px;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);color:var(--text-primary);min-width:3.5rem;text-align:center;transition:color .3s,border-color .3s,background .3s}.chess-clock.clock-active{border-color:var(--accent);background:#e6b9471a}.chess-clock.clock-warning{color:#ffd54f;border-color:#ffd54f;background:#ffd54f1f}.chess-clock.clock-critical{color:#e57373;border-color:#e57373;background:#e573731f;animation:clockPulse 1s ease-in-out infinite}@keyframes clockPulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.shortcut-help-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--text-secondary);border-radius:50%;width:1.5rem;height:1.5rem;font-size:.85rem;font-weight:700;line-height:1;cursor:pointer;flex-shrink:0;transition:color .15s,border-color .15s;padding:0}.shortcut-help-btn:hover{color:var(--accent);border-color:var(--accent)}.shortcut-help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.shortcut-help-modal{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:1.5rem 2rem;min-width:280px;max-width:420px;width:90%;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;gap:1rem}.shortcut-help-modal h3{color:var(--accent);font-size:1.1rem;font-weight:700;margin:0;text-align:center}.shortcut-table{width:100%;border-collapse:collapse;font-size:.9rem}.shortcut-table td{padding:.35rem .5rem;color:var(--text-primary)}.shortcut-table td:first-child{white-space:nowrap;width:40%}.shortcut-table tr:not(:last-child) td{border-bottom:1px solid rgba(255,255,255,.06)}kbd{display:inline-block;padding:.1rem .4rem;background:var(--bg-primary);border:1px solid rgba(255,255,255,.25);border-radius:4px;font-family:Courier New,Courier,monospace;font-size:.8rem;font-weight:600;color:var(--accent);line-height:1.4}.shortcut-help-close{align-self:center;padding:.4rem 1.5rem;background:var(--bg-primary);color:var(--text-secondary);border:1px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;font-size:.9rem;transition:color .15s,border-color .15s}.shortcut-help-close:hover{color:var(--accent);border-color:var(--accent)}@media(max-width:900px){.game-page{padding:.75rem}.game-header{flex-wrap:wrap;gap:.5rem;padding:.5rem}.game-status-msg{order:3;flex-basis:100%;text-align:center}.player-info-row{gap:.5rem;flex-wrap:wrap}.win-banner{font-size:1.2rem;padding:.6rem 1rem}}@media(max-width:600px){.game-page{padding:.5rem}.game-header{flex-direction:column;align-items:stretch;gap:.4rem;padding:.4rem;margin-bottom:.25rem}.game-header-left{justify-content:center}.game-header h2{font-size:1.1rem}.game-status-msg{order:0;font-size:.8rem}.game-header .back-link{text-align:center;font-size:.85rem}.game-center{gap:.5rem}.player-info-row{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.4rem}.player-pill{font-size:.75rem;padding:.25rem .65rem}.pip-count,.match-pts{font-size:.7rem}.game-error-banner,.connection-banner{font-size:.8rem;padding:.4rem .75rem}.win-banner{font-size:1rem;padding:.5rem .75rem;white-space:normal;text-align:center}.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}}.replay-page{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem 1rem;min-height:100vh;background:var(--bg, #1a1a2e);color:#eee}.replay-header{display:flex;align-items:center;gap:1rem;width:100%;max-width:860px}.replay-back-btn{background:transparent;border:1px solid rgba(255,255,255,.25);color:#ccc;padding:.4rem .85rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .15s,color .15s}.replay-back-btn:hover{background:#ffffff1a;color:#fff}.replay-title{margin:0;font-size:1.25rem;font-weight:600;color:#f5e6c8;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-share-btn{background:var(--accent, #d4a843);border:1px solid var(--accent, #d4a843);color:var(--bg-primary, #1a1a2e);padding:.45rem .9rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;transition:background .15s ease,color .15s ease,transform .1s ease;white-space:nowrap}.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{padding:.5rem;min-height:auto}.replay-page--embed .replay-counter{font-size:.85rem}@media(max-width:768px){.replay-header{flex-wrap:wrap}.replay-share-btn{font-size:.85rem;padding:.4rem .7rem}}.replay-counter{font-size:1rem;color:#aaa}.replay-counter strong{color:#f5e6c8}.replay-board-wrapper{position:relative;width:100%;max-width:860px;pointer-events:none}.replay-dice-overlay{position:absolute;top:50%;left:25%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}.replay-board-analysis{position:absolute;top:50%;left:75%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.4rem .75rem;border-radius:10px;font-weight:700;line-height:1.1;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border:1px solid rgba(255,255,255,.08);pointer-events:none;z-index:2}.replay-board-analysis-quality{font-size:.95rem;letter-spacing:.02em}.replay-board-analysis-prob{font-size:.8rem;font-weight:600;color:var(--text-secondary, #9a9ab0)}.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(max-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{display:flex;align-items:center;gap:.75rem;font-size:.95rem;min-height:2rem}.replay-player-badge{display:inline-block;padding:.2rem .6rem;border-radius:12px;font-weight:600;font-size:.85rem}.replay-player-white{background:#f0e6d3;color:#2a1a0e}.replay-player-black{background:#2b2b2b;color:#eee;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{display:flex;align-items:center;gap:.5rem}.replay-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#eee;width:2.8rem;height:2.8rem;border-radius:8px;font-size:1.1rem;cursor:pointer;transition:background .15s,transform .1s;display:flex;align-items:center;justify-content:center}.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{width:3.2rem;height:3.2rem;font-size:1.3rem;background:#4caf5033;border-color:#4caf5080}.replay-btn-play:hover:not(:disabled){background:#4caf5059}.replay-speed{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:#aaa}.replay-speed-label{color:#888}.replay-speed-slider{width:120px;accent-color:#4caf50}.replay-speed-hint{min-width:3.5rem;color:#aaa}.replay-loading,.replay-error{margin-top:4rem;font-size:1.1rem;color:#aaa;text-align:center}.replay-error{color:var(--danger, #e74c3c)}.replay-analysis-toggle{background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--text-primary, #e8e8e8);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .15s ease,border-color .15s ease}.replay-analysis-toggle:hover{background:#ffffff14;border-color:#ffffff59}.replay-analysis-toggle--open{border-color:var(--accent, #d4a843);color:var(--accent, #d4a843)}.replay-analysis{width:100%;max-width:860px;background:var(--bg-secondary, #22223a);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1.25rem}.replay-analysis-status{text-align:center;padding:1rem;color:var(--text-secondary, #9a9ab0);font-size:.95rem}.replay-analysis-status--error{color:var(--danger, #e74c3c)}.replay-analysis-banner{background:#d4a8431a;border:1px solid rgba(212,168,67,.3);color:var(--accent, #d4a843);padding:.5rem .75rem;border-radius:6px;font-size:.85rem}.replay-analysis-section{display:flex;flex-direction:column;gap:.5rem}.replay-analysis-heading{font-size:.95rem;font-weight:600;margin:0;color:var(--text-primary, #e8e8e8);letter-spacing:.02em}.replay-quality{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;flex-shrink:0}.replay-quality--best{background:#2ecc712e;color:#2ecc71}.replay-quality--good{background:#78c8ff26;color:#78c8ff}.replay-quality--inaccuracy{background:#f1c40f2e;color:#f1c40f}.replay-quality--mistake{background:#e67e222e;color:#e67e22}.replay-quality--blunder{background:#e74c3c33;color:#e74c3c}.replay-key-moments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.replay-key-moment{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;width:100%;background:#ffffff08;border:1px solid rgba(255,255,255,.08);color:inherit;padding:.5rem .75rem;border-radius:6px;cursor:pointer;text-align:left;font-size:.9rem;transition:background .15s ease}.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{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem;max-height:420px;overflow-y:auto}.replay-move-item{border-radius:6px}.replay-move-item--active{background:#d4a8431f;outline:1px solid rgba(212,168,67,.35)}.replay-move-item-btn{display:grid;grid-template-columns:2rem auto auto 1fr auto;align-items:center;gap:.6rem;width:100%;background:transparent;border:none;color:inherit;padding:.35rem .5rem;cursor:pointer;text-align:left;font-size:.85rem}.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{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-primary, #e8e8e8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-move-item-best{color:var(--text-secondary, #9a9ab0);font-size:.78rem;font-style:italic}@media(max-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{margin:-.25rem 0 .25rem;font-size:.78rem;color:var(--text-secondary, #9a9ab0);cursor:help}.replay-move-probs{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.25rem .5rem .4rem 2.6rem;font-size:.78rem;color:var(--text-secondary, #9a9ab0)}.replay-move-probs-row{display:inline-flex;align-items:center;gap:.4rem}.replay-move-probs-label{background:#ffffff14;color:var(--text-primary, #e8e8e8);padding:.08rem .4rem;border-radius:4px;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;font-weight:600}.replay-move-probs-label--best{background:#d4a8432e;color:var(--accent, #d4a843)}.replay-move-probs-notation{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-primary, #e8e8e8)}.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{margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--text-secondary, #9a9ab0);padding:.15rem .5rem;border-radius:4px;cursor:pointer;font-size:.72rem;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.replay-move-probs-toggle:hover:not(:disabled){background:#ffffff14;color:var(--text-primary, #e8e8e8);border-color:#ffffff59}.replay-move-probs-toggle--open{border-color:var(--accent, #d4a843);color:var(--accent, #d4a843)}.replay-move-probs-breakdown{display:grid;grid-template-columns:1fr auto auto;gap:.2rem 1rem;margin:.25rem .5rem .5rem 2.6rem;padding:.5rem .75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:6px;font-size:.78rem}.replay-move-probs-breakdown-header,.replay-move-probs-breakdown-row{display:contents}.replay-move-probs-breakdown-header>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #9a9ab0);font-weight:600;text-align:right}.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(max-width:768px){.replay-move-probs{padding-left:.5rem}.replay-move-probs-toggle{margin-left:0}.replay-move-probs-breakdown{margin-left:.5rem}}.spectator-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--bg-secondary);color:var(--text-secondary);border-radius:20px;padding:.35rem .85rem;font-size:.82rem;font-weight:500;margin:.25rem auto .5rem;align-self:center}.spectator-status-msg{color:var(--text-secondary);font-size:.9rem;text-align:center;flex:1}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.auth-modal{background:var(--bg-secondary);border:1px solid var(--accent);border-radius:12px;padding:2.5rem;max-width:420px;width:90%;text-align:center}.auth-logo{display:block;margin:0 auto 1rem;max-width:120px;border-radius:16px}.auth-modal h2{margin-bottom:1.5rem;color:var(--accent)}.auth-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:2px solid var(--bg-primary, #1a1a2e)}.auth-tab{flex:1;padding:.6rem 1rem;background:none;border:none;color:var(--text-secondary);font-size:.95rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;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{display:flex;flex-direction:column;gap:.75rem}.auth-form input{width:100%;font-size:1rem;padding:.7rem .9rem;text-align:left}.auth-btn{padding:.75rem;font-size:1rem;border-radius:6px;border:none;cursor:pointer;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{background:#4285f4;color:#fff;display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-btn.google:hover:not(:disabled){background:#3367d6}.google-signin-btn{display:flex;justify-content:center;margin:.75rem 0}.auth-error{color:var(--danger);font-size:.9rem;margin-top:.5rem}.auth-divider{display:flex;align-items:center;margin:1.5rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--text-secondary);opacity:.3}.auth-divider span{padding:0 1rem;color:var(--text-secondary);font-size:.85rem;text-transform:uppercase}.guest-text{color:var(--text-secondary);font-size:.85rem;margin-bottom:.25rem}.guest-form input{text-align:center}@media(max-width:600px){.auth-modal{padding:1.5rem;width:95%}.auth-modal h2{font-size:1.2rem;margin-bottom:1rem}.auth-tabs{margin-bottom:1rem}.auth-tab{font-size:.85rem;padding:.5rem .75rem}.auth-form input{font-size:.9rem;padding:.6rem .75rem}.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{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:600}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{display:flex;flex-direction:column;min-height:100vh}.landing{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;text-align:center;padding:2rem}button{cursor:pointer;font-family:inherit;font-size:1rem;padding:.5rem 1.25rem;border:none;border-radius:6px;background-color:var(--accent);color:var(--bg-primary);font-weight:600;transition:opacity .15s ease}button:hover{opacity:.85}button:disabled{opacity:.5;cursor:not-allowed}input,select{font-family:inherit;font-size:1rem;padding:.5rem .75rem;border:1px solid var(--text-secondary);border-radius:6px;background-color:var(--bg-secondary);color:var(--text-primary);outline:none;transition:border-color .15s ease}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(max-width:900px){html{font-size:15px}.landing{padding:1.5rem}button{padding:.5rem 1rem}}@media(max-width:600px){html{font-size:14px}.landing{padding:1rem;gap:.75rem}h1{font-size:1.6rem}h2{font-size:1.3rem}h3{font-size:1.1rem}button{padding:.45rem .9rem;font-size:.9rem}input,select{font-size:.9rem;padding:.45rem .65rem}}
