:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#0f172a;background-color:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit}*{box-sizing:border-box;text-decoration:inherit}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.app-header{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0f172a14}.app-header__inner{display:flex;align-items:center;padding:0 1.5rem;gap:1.5rem}.app-header__brand{display:flex;align-items:center;text-decoration:none;color:inherit;flex-shrink:0;margin:10px}.app-header__logo{width:8rem;height:auto;object-fit:contain}.app-header__divider{flex:1;height:2px;background:#0f172a;border-radius:1px}.app-header__nav{display:flex;align-items:center;flex-shrink:0}.app-header__auth{display:flex;align-items:center;gap:.6rem;margin-left:.8rem}.app-header__auth-email{font-size:.76rem;color:#475569;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header__auth-button{border:1px solid #cbd5e1;border-radius:999px;padding:.36rem .7rem;font-size:.94rem;font-weight:600;color:#0f172a;background:#fff;cursor:pointer}.app-header__auth-button:hover{background:#f8fafc}.app-header__auth-button--enrollment{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.4rem;font-size:1.05rem;font-weight:500;border:1px solid #dadce0;border-radius:6px;box-shadow:0 1px 3px #00000014;transition:background .2s,box-shadow .2s}.app-header__auth-button--enrollment:hover{background:#f7f8f8;box-shadow:0 1px 3px #00000029}.app-header__nav-item{display:inline-flex;align-items:center}.app-header__nav-separator{color:#cbd5e1;font-size:.75rem;margin:0 .5rem;-webkit-user-select:none;user-select:none}.app-header__nav-link{padding:.35rem .5rem;font-size:.78rem;font-weight:500;color:#64748b;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;transition:color .14s ease}.app-header__nav-link:hover{color:#0f172a;text-decoration:underline}.app-header__nav-link--active{color:#0f172a;font-weight:600}#root{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:2.5rem 1.5rem;background:radial-gradient(circle at top,#f8fafc,#e2e8f0 60%,#cbd5f5)}.App{width:min(100%,1400px);display:grid;gap:1rem}.app-footer{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0f172a14;padding:.9rem 1.5rem}.app-footer__text{margin:0;color:#64748b;font-size:.9rem;text-align:center}.chess-game{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 20px 45px #0f172a1f;display:grid;gap:1.5rem}.chess-game--create{min-height:28rem;align-items:center}.chess-game__title{margin:0;color:#0f172a;font-size:1.45rem;font-weight:700;line-height:1.2;text-align:center}.chess-game__title-row{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap}.chess-game__title-result{display:inline-flex;align-items:baseline;gap:.6rem;max-width:100%;color:#0f172a}.chess-game__title-result--above{flex-basis:100%;justify-content:center}.chess-game__title-result-game{font-size:.96rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.chess-game__title-result-score{display:inline-flex;align-items:baseline;gap:.4rem;font-size:1.28rem;font-weight:600;line-height:1.2;color:#0f172a;white-space:nowrap}.chess-game__title-result-divider{font-weight:500;color:#94a3b8}.chess-game__title-actions{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;flex-basis:100%}.chess-game__title-action{display:inline-flex;align-items:center;justify-content:center;gap:.38rem;border:1px solid #cbd5e1;border-radius:8px;padding:.5rem .82rem;font-size:.82rem;font-weight:800;line-height:1;color:#334155;background:#fff;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease}.chess-game__title-action:hover:not(:disabled){transform:translateY(-1px)}.chess-game__title-action:disabled{opacity:.55;cursor:not-allowed}@media(max-width:720px){.chess-game__title-result{justify-content:center;width:100%}.chess-game__title-result-score{font-size:1.12rem}}.chess-game__setup{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap}.chess-game__setup-field{display:grid;gap:.35rem;min-width:16rem}.chess-game__setup-field span{font-size:.82rem;font-weight:600;color:#334155}.chess-game__setup-field select{border:1px solid #cbd5e1;border-radius:10px;padding:.55rem .75rem;font-size:.88rem;letter-spacing:.01em;color:#0f172a;background:#fff}.chess-game__setup-button{border:none;border-radius:10px;padding:.58rem 1rem;font-size:.92rem;font-weight:700;color:#fff;background:#2563eb;cursor:pointer}.chess-game__setup-button:disabled{background:#94a3b8;cursor:not-allowed}.chess-game__header{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;width:100%;border-radius:16px;padding:.35rem 1.25rem .5rem}.chess-game__competitors{display:flex;align-items:center;justify-content:center;gap:1.25rem}.chess-game__tournament-link{font-size:.85rem;font-weight:700;color:#1d4ed8;text-decoration:underline;text-underline-offset:2px}.chess-game__tournament-link:hover{color:#1e40af}.chess-game__competitor{--chess-competitor-thinking-slot: 5.8rem;display:flex;align-items:center;gap:.9rem;min-width:0;border-radius:999px;padding:.35rem calc(.7rem + var(--chess-competitor-thinking-slot)) .35rem .7rem;position:relative;transition:box-shadow .16s ease,background .16s ease}.chess-game__competitor--left{justify-content:flex-end}.chess-game__competitor--right{justify-content:flex-start}.chess-game__competitor--thinking{background:#3b82f617;box-shadow:0 0 0 2px #3b82f642;animation:chess-competitor-thinking-pulse 1.1s ease-in-out infinite}.chess-game__competitor-thinking{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);width:var(--chess-competitor-thinking-slot);text-align:left;font-size:.78rem;font-weight:700;color:#1d4ed8;letter-spacing:.02em;white-space:nowrap}@keyframes chess-competitor-thinking-pulse{0%{box-shadow:0 0 0 2px #3b82f63d}50%{box-shadow:0 0 0 3px #3b82f670}to{box-shadow:0 0 0 2px #3b82f63d}}.chess-game__competitor-logo{width:3.4rem;height:3.4rem;border-radius:999px;object-fit:cover;background:#fff}.chess-game__competitor-copy{display:grid;gap:.1rem;min-width:0}.chess-game__competitor-provider{margin:0;color:#64748b;font-size:.85rem;font-weight:600;line-height:1.2}.chess-game__competitor-name{margin:0;color:#1e293b;font-size:clamp(1.45rem,2.2vw,2.2rem);font-weight:600;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chess-game__competitor-loading{margin:0;color:#475569;font-size:1rem;font-weight:500}.chess-game__human-competitor{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .8rem;border-radius:999px;background:#e2e8f0;color:#0f172a;font-weight:700}.chess-game__vs{width:5rem;height:5rem;margin-inline:.45rem;display:inline-flex;align-items:center;justify-content:center}.chess-game__vs-image{width:100%;height:100%;display:block;object-fit:contain}.chess-game__move-counter{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.88rem;font-weight:600;color:#64748b;margin-bottom:.5rem;letter-spacing:.03em}.chess-game__move-counter-sep{color:#cbd5e1}.chess-game__series-score{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;width:min(100%,820px);margin:-.4rem auto .2rem;padding:.8rem 1rem;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}.chess-game__series-player{display:grid;gap:.18rem;min-width:0}.chess-game__series-player--white{text-align:right}.chess-game__series-player--black{text-align:left}.chess-game__series-name{color:#0f172a;font-size:.95rem;font-weight:800;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chess-game__series-side,.chess-game__series-label,.chess-game__series-state{color:#64748b;font-size:.72rem;font-weight:800;letter-spacing:.06em;line-height:1.2;text-transform:uppercase}.chess-game__series-center{display:grid;justify-items:center;gap:.14rem;min-width:8.5rem}.chess-game__series-label,.chess-game__series-state{margin:0;text-align:center}.chess-game__series-scoreline{display:flex;align-items:baseline;justify-content:center;gap:.45rem;margin:0;color:#0f172a;font-size:2rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.chess-game__series-scoreline span{color:#94a3b8;font-size:1.35rem}.chess-game__series-games{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;min-width:0}.chess-game__series-game{display:grid;justify-items:center;gap:.25rem;min-width:0;padding:.35rem .55rem;border:1px solid #dbe3ee;border-radius:8px;background:#fff;color:#334155;font-size:.78rem;font-weight:800;line-height:1;text-decoration:none;font-variant-numeric:tabular-nums}.chess-game__series-game-points{display:inline-flex;align-items:center;gap:.3rem;color:#0f172a}.chess-game__series-game-penalty{max-width:13rem;color:#b91c1c;font-size:.7rem;font-weight:800;line-height:1.15;text-align:center;overflow-wrap:anywhere}.chess-game__series-game--current{border-color:#94a3b8;background:#e2e8f0}.score-bar{position:relative;width:100%;margin-bottom:1.35rem}.score-bar__track{position:absolute;left:0;right:0;top:1.2rem;transform:translateY(-50%);height:.45rem;border-radius:999px;background:#dbb63b;overflow:hidden;z-index:0}.score-bar__fill{height:100%;background:#f0d86c;transition:width .4s ease}.score-bar__content{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;min-height:2.4rem}.score-indicator{position:relative;display:flex;align-items:center}.score-indicator--left{padding-left:.75rem}.score-indicator--right{padding-right:.75rem}.score-indicator__circle{width:2.4rem;height:2.4rem;border-radius:50%;flex-shrink:0}.score-indicator__circle--white{background:#fff;border:3px solid #c5c5c5;margin-left:6rem;box-shadow:0 2px 8px #0000001a}.score-indicator__circle--black{background:#1e293b;border:3px solid #1e293b;margin-right:6rem;box-shadow:0 2px 8px #00000026}.score-indicator__text{position:absolute;top:calc(100% + .15rem);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;width:max-content}.score-indicator--left .score-indicator__text{padding-top:1rem;padding-left:7rem}.score-indicator--right .score-indicator__text{padding-top:1rem;padding-right:7rem}.score-indicator__name{font-size:.95rem;font-weight:800;color:#1e293b;line-height:1.3;letter-spacing:.01em}.chess-game__board-shell{display:grid;grid-template-columns:minmax(130px,1fr) auto minmax(130px,1fr);align-items:stretch;gap:1rem;margin-bottom:1.25rem}.chess-game__side-slot{display:flex;min-height:100%}.chess-game__side-slot--left{justify-content:flex-start}.chess-game__side-slot--right{justify-content:flex-end}.chess-game__side-slot--above{align-items:flex-start}.chess-game__side-slot--below{align-items:flex-end}.chess-game__board{display:flex;justify-content:center;width:100%;margin:0 auto;margin-top:3rem}.chess-game__board-area{display:flex;flex-direction:column;align-items:center;gap:.45rem;width:608px;max-width:100%;margin:0 auto}.chess-game__captured-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.15rem;min-height:32px;width:100%}.chess-game__captured-piece{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}.chess-game__points-badge{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .55rem;font-size:.82rem;font-weight:700;letter-spacing:.03em;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:8px;line-height:1.4;box-shadow:0 1px 4px #6366f159;white-space:nowrap;margin-right:.25rem}.chess-game__training-panel{display:grid;gap:1rem;padding:1rem 1.1rem;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc;text-align:left}.chess-game__training-panel-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.chess-game__training-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.chess-game__training-kicker{margin:0 0 .18rem;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.chess-game__training-title{margin:0;color:#0f172a;font-size:1rem;line-height:1.2}.chess-game__training-prompt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.chess-game__training-prompt{display:grid;gap:.75rem;min-width:0;padding:.85rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.chess-game__training-prompt-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.chess-game__training-prompt-controls{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}.chess-game__training-prompt-side{margin:0 0 .14rem;color:#64748b;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.chess-game__training-prompt-name{margin:0;color:#1e293b;font-size:.95rem;line-height:1.2;overflow-wrap:anywhere}.chess-game__training-prompt-model{margin:.2rem 0 0;color:#64748b;font-size:.74rem;line-height:1.3;overflow-wrap:anywhere}.chess-game__training-lock{flex-shrink:0;border-radius:999px;padding:.22rem .55rem;background:#f1f5f9;color:#64748b;font-size:.68rem;font-weight:700}.chess-game__training-prompt-copy{min-height:5.5rem;max-height:10rem;overflow:auto;margin:0;padding:.65rem .7rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#334155;font-size:.85rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.chess-game__training-prompt-copy--plain{min-height:0;max-height:none;overflow:visible;padding:0;border:0;border-radius:0;background:transparent}.chess-game__training-textarea{width:100%;min-height:9rem;resize:vertical;border:1.5px solid #cbd5e1;border-radius:8px;padding:.7rem .75rem;background:#fff;color:#0f172a;font:inherit;line-height:1.45;outline:none}.chess-game__training-textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.chess-game__training-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.chess-game__training-actions--compact{margin-top:-.15rem}.chess-game__training-primary,.chess-game__training-secondary{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:.54rem .82rem;font-size:.82rem;font-weight:800;line-height:1;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease}.chess-game__training-primary{border:1px solid #0f172a;background:#0f172a;color:#fff}.chess-game__training-secondary{border:1px solid #cbd5e1;background:#fff;color:#334155}.chess-game__training-primary:hover:not(:disabled),.chess-game__training-secondary:hover:not(:disabled){transform:translateY(-1px)}.chess-game__training-primary:disabled,.chess-game__training-secondary:disabled{opacity:.55;cursor:not-allowed}.chess-game__training-message{margin:0;font-size:.78rem;font-weight:700}.chess-game__training-message--success{color:#15803d}.chess-game__training-message--error{color:#b91c1c}.chess-player{display:flex;align-items:stretch;gap:.75rem;width:22rem;padding:0;border-radius:2.6rem;background:transparent;border:none;position:relative;transition:box-shadow .15s ease}.chess-player:hover{box-shadow:none}.chess-player--thinking{border-color:#3b82f6;animation:chess-player-border-glow 1.15s ease-in-out infinite}.chess-player--thinking:after{content:"";position:absolute;inset:-2px;border-radius:inherit;border:4px solid rgba(59,130,246,.45);pointer-events:none;animation:chess-player-border-radiate 1.15s ease-out infinite}@keyframes chess-player-border-glow{0%{box-shadow:0 0 0 1px #3b82f642}50%{box-shadow:0 0 0 2px #3b82f675}to{box-shadow:0 0 0 1px #3b82f642}}@keyframes chess-player-border-radiate{0%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(1.09)}}.chess-player--white{flex-direction:row}.chess-player--black{flex-direction:row;text-align:right}.chess-player-stack{display:grid;gap:.5rem}.chess-player-stack--black{text-align:right}.chess-player__avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#e2e8f0;flex-shrink:0}.chess-player__identity{display:inline-flex;align-items:center;gap:.7rem;align-self:flex-start;max-width:100%;border-bottom:2px solid #94a3b8;padding-bottom:.5rem;margin-bottom:.9375rem}.chess-player__info{display:flex;flex-direction:column;gap:.48rem;min-width:0;width:min(40rem,100%);padding:2rem 2.35rem 1.8rem;border-radius:2.9rem;border:1px solid #e2e8f0;background:#fff;box-shadow:0 12px 30px #0f172a12}.chess-player__llm{display:inline-flex;align-items:center;justify-content:flex-start;gap:.6rem;align-self:flex-start;max-width:100%;margin-bottom:.45rem;padding:0;border:none;background:transparent;box-shadow:none;color:#1e293b;text-align:left;font-size:.82rem;font-weight:600;line-height:1}.chess-player__llm-logo{display:inline-flex;align-items:center;justify-content:center;width:2.7rem;height:2.7rem;border-radius:.5rem;background:transparent;overflow:hidden;flex-shrink:0}.chess-player__llm-logo img,.chess-player__llm-logo svg{width:100%;height:100%;display:block;object-fit:contain}.chess-player__llm-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:.12rem}.chess-player__llm-company,.chess-player__llm-model-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chess-player__llm-company{display:inline-flex;align-items:center;gap:.55rem;font-size:1.7rem;line-height:1.1;font-weight:800;letter-spacing:.01em}.chess-player__side-sphere{display:inline-block;width:2.6rem;height:2.6rem;border-radius:9999px;flex-shrink:0}.chess-player__side-sphere--w{background:#fff;border:1px solid #94a3b8}.chess-player__side-sphere--b{background:#111827;border:1px solid #0f172a}.chess-player__llm-model-name{font-size:.82rem;line-height:1.05;font-weight:700;letter-spacing:.01em;opacity:.92}.chess-player__llm-divider{opacity:.65}.chess-player__llm--openai{color:#14532d}.chess-player__llm--anthropic{color:#7c2d12}.chess-player__llm--gemini{color:#3730a3}.chess-player__llm--grok{color:#1e3a8a}.chess-player__side-row{display:inline-flex;align-items:center;justify-content:flex-start;gap:.35rem;align-self:flex-start;margin-bottom:.35rem;text-align:left}.chess-player__piece{display:inline-flex;align-items:center;justify-content:center;width:2.7rem;height:2.7rem;flex-shrink:0}.chess-player__piece-image{width:100%;height:100%;display:block;object-fit:contain}.chess-player__side-badge{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;height:1.45rem;border-radius:.35rem;border:1px solid #111827;padding:0 .4rem;font-size:.64rem;line-height:1;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.chess-player__side-badge--black{background:#111827;color:#fff}.chess-player__side-badge--white{background:#fff;color:#111827}.chess-player__nickname{font-size:1.2rem;font-weight:700;color:#1b1e24;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;line-height:1.13}.chess-player__model{font-size:.97rem;color:#7a879c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;align-self:flex-start;margin-top:.2rem}.chess-player__thinking{font-size:.82rem;font-weight:600;color:#64748b;text-align:left;align-self:flex-start;margin-top:.22rem}.chess-player__thinking--active{color:#1d4ed8}.chess-player--black .chess-player__info{align-items:flex-end}.chess-player--black .chess-player__side-row{align-self:flex-start}.chess-player--black .chess-player__llm,.chess-player--black .chess-player__thinking{align-self:flex-start;text-align:left}.chess-player__think-toggle{margin-top:.2rem;border:1px solid #cbd5e1;background:#fff;color:#0f172a;border-radius:999px;font-size:.72rem;font-weight:600;padding:.24rem .6rem;cursor:pointer;align-self:flex-start;transition:background .12s ease,border-color .12s ease}.chess-player__think-toggle:hover{border-color:#94a3b8;background:#f8fafc}.chess-player__side{font-size:.75rem;font-weight:600;color:#475569}.chess-player__side--white{color:#475569}.chess-player__side--black{color:#1e293b}.chess-player-reasoning{position:relative;text-align:left;min-width:240px;width:100%;margin-top:2.5rem;display:flex;flex-direction:column;gap:.5rem}.chess-player-reasoning__title{margin:0;display:flex;align-items:center;gap:.5rem;min-height:1.6rem;font-size:.7rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.chess-player-reasoning--black .chess-player-reasoning__title{flex-direction:row-reverse}.chess-player-reasoning__title--thinking{color:#1d4ed8}.chess-player-reasoning__thinking-pill{display:inline-flex;align-items:center;border:1px solid #bfdbfe;border-radius:999px;padding:.15rem .6rem;background:linear-gradient(90deg,#eff6ff,#dbeafe,#eff6ff);background-size:200% 100%;color:#1d4ed8;font-size:.68rem;font-weight:700;letter-spacing:0;text-transform:none;animation:chess-player-reasoning-pill-shimmer 1.6s ease-in-out infinite}.chess-player-reasoning__countdown{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;padding:.15rem .55rem;font-size:.68rem;font-weight:700;font-variant-numeric:tabular-nums;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:999px;letter-spacing:0;text-transform:none;white-space:nowrap}.chess-player-reasoning__move-count{display:inline-flex;align-items:center;margin-left:auto;padding:.15rem .55rem;font-size:.65rem;font-weight:700;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:999px;letter-spacing:.02em;text-transform:none;white-space:nowrap;box-shadow:0 1px 2px #0f172a0a}.chess-player-reasoning--black .chess-player-reasoning__move-count{margin-left:0;margin-right:auto}.chess-player-reasoning__stack{display:flex;flex-direction:column;gap:.35rem;max-height:420px;overflow-y:auto;padding:0;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.chess-player-reasoning__stack::-webkit-scrollbar{width:4px}.chess-player-reasoning__stack::-webkit-scrollbar-track{background:transparent}.chess-player-reasoning__stack::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.chess-player-reasoning__finished{margin:0;padding:.75rem .95rem;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#1e293b;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}.chess-player-reasoning__card{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease}.chess-player-reasoning--black .chess-player-reasoning__card{flex-direction:row-reverse}.chess-player-reasoning__card--latest{padding:.85rem 1rem;border:1px solid #e2e8f0;border-radius:12px;background:linear-gradient(135deg,#fff,#f8fafc);box-shadow:0 1px 2px #0f172a0a,0 8px 24px -12px #0f172a1f}.chess-player-reasoning--thinking .chess-player-reasoning__card--latest{border-color:#bfdbfe;background:linear-gradient(135deg,#fff,#eff6ff);animation:chess-player-reasoning-thinking-pulse 2s ease-in-out infinite}.chess-player-reasoning__card-text{flex:1;font-size:.78rem;line-height:1.5;color:#475569;overflow-wrap:break-word;word-break:break-word;min-width:0}.chess-player-reasoning__card--latest .chess-player-reasoning__card-text{font-size:.95rem;line-height:1.5;color:#0f172a;font-weight:500}.chess-player-reasoning__card-number{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .35rem;font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;color:#64748b;background:#f1f5f9;border-radius:999px;line-height:1}.chess-player-reasoning__card--latest .chess-player-reasoning__card-number{color:#1e293b;background:#e2e8f0}.chess-player-reasoning--thinking .chess-player-reasoning__card--latest .chess-player-reasoning__card-number{color:#1d4ed8;background:#dbeafe}.chess-player-reasoning__pending{margin:0;padding:.85rem 1rem;font-size:.8rem;font-style:italic;color:#64748b;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc}.chess-player-reasoning--thinking .chess-player-reasoning__pending{color:#1d4ed8;border-color:#bfdbfe;background:linear-gradient(135deg,#fff,#eff6ff);animation:chess-player-reasoning-thinking-pulse 2s ease-in-out infinite}@keyframes chess-player-reasoning-thinking-pulse{0%,to{box-shadow:0 1px 2px #0f172a0a,0 8px 24px -12px #0f172a1f,0 0 0 1px #3b82f626,0 0 12px #3b82f61f}50%{box-shadow:0 1px 2px #0f172a0a,0 8px 24px -12px #0f172a1f,0 0 0 1px #3b82f666,0 0 24px #3b82f640}}@keyframes chess-player-reasoning-pill-shimmer{0%{background-position:100% 0}50%{background-position:0% 0}to{background-position:100% 0}}.chess-game__metrics{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.25rem;text-align:left}.chess-game__metrics h2{margin:0 0 .5rem;font-size:1rem;color:#0f172a}.chess-game__metrics p{margin:0 0 .75rem;color:#334155;font-size:.9rem}.chess-game__metrics ul{margin:0;padding-left:1.2rem;color:#334155;font-size:.9rem;line-height:1.4}.chess-game__debug{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.25rem;text-align:left}.chess-game__debug h2{margin:0 0 .75rem;font-size:1rem;color:#0f172a}.chess-game__debug ul{margin:0;padding-left:1.2rem;color:#334155;font-size:.9rem;line-height:1.4}.chess-game__toast-stack{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:60;pointer-events:none}.chess-game__toast{min-width:480px;max-width:min(94vw,720px);padding:1.44rem 1.9rem;border-radius:20px;border:1px solid #fca5a5;background:#fef2f2;color:#991b1b;box-shadow:0 12px 28px #7f1d1d2e;font-size:1.8rem;font-weight:700;line-height:1.3}.chess-game__toast--warning{border-color:#fca5a5;background:#fef2f2;color:#991b1b}.chess-game__winner-modal-backdrop{position:fixed;inset:0;z-index:40;background:#0f172aad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:1rem}.chess-game__winner-modal{position:relative;overflow:hidden;width:min(100%,420px);border-radius:22px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e2e8f0;box-shadow:0 28px 80px #0f172a57;padding:1.75rem 1.5rem 1.5rem;text-align:center;animation:winner-pop .36s cubic-bezier(.18,.84,.32,1.2)}.chess-game__winner-burst{position:absolute;inset:-32px;pointer-events:none}.chess-game__winner-spark{position:absolute;width:8px;height:8px;border-radius:999px;background:#334155;opacity:0;animation:winner-spark-hero .75s cubic-bezier(.22,.9,.3,1) infinite;filter:drop-shadow(0 0 6px rgba(51,65,85,.45))}.chess-game__winner-spark--1{top:18%;left:16%}.chess-game__winner-spark--2{top:22%;right:14%;animation-delay:.18s}.chess-game__winner-spark--3{top:42%;left:8%;animation-delay:.31s}.chess-game__winner-spark--4{top:44%;right:8%;animation-delay:.46s}.chess-game__winner-spark--5{bottom:22%;left:20%;animation-delay:.61s}.chess-game__winner-spark--6{bottom:20%;right:20%;animation-delay:.76s}.chess-game__winner-emoji{margin:0;font-size:2.2rem;line-height:1;animation:winner-bounce 1s ease-in-out infinite}.chess-game__winner-kicker{margin:.45rem 0 .4rem;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:#64748b;font-weight:700}.chess-game__winner-title{margin:0 0 .15rem;font-size:1.92rem;line-height:1.1;color:#0f172a}.chess-game__winner-details{margin:.45rem 0 0;color:#334155;font-size:.95rem}.chess-game__winner-close{margin-top:1.2rem;border:none;background:linear-gradient(90deg,#0f172a,#334155);color:#fff;padding:.66rem 1.35rem;border-radius:999px;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.chess-game__winner-close:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 12px 24px #0f172a47}.chess-game__forfeit-modal-backdrop{position:fixed;inset:0;z-index:45;background:#0f172ab3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:1rem}.chess-game__forfeit-modal{width:min(100%,420px);border-radius:20px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 28px 80px #0f172a57;padding:1.6rem 1.4rem 1.4rem;text-align:center;animation:winner-pop .32s cubic-bezier(.18,.84,.32,1.2)}.chess-game__forfeit-emoji{margin:0;font-size:2rem;line-height:1}.chess-game__forfeit-kicker{margin:.55rem 0 .35rem;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:#64748b;font-weight:700}.chess-game__forfeit-title{margin:0;font-size:1.65rem;line-height:1.15;color:#0f172a}.chess-game__forfeit-details{margin:.5rem 0 0;color:#334155;font-size:.95rem}.chess-game__forfeit-close{margin-top:1.1rem;border:none;background:linear-gradient(90deg,#0f172a,#334155);color:#fff;padding:.66rem 1.35rem;border-radius:999px;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.chess-game__forfeit-close:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 12px 24px #0f172a47}.game-history-modal{position:fixed;inset:0;z-index:85;display:flex;align-items:center;justify-content:center;padding:1.2rem;background:#0f172a94;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-history-modal__panel{position:relative;width:min(100%,760px);max-height:min(86vh,720px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid rgba(226,232,240,.92);border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 26px 80px #0f172a57;animation:winner-pop .28s cubic-bezier(.18,.84,.32,1.2)}.game-history-modal__close{position:absolute;top:1rem;right:1rem;width:2.25rem;height:2.25rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#475569;cursor:pointer}.game-history-modal__close:hover{color:#0f172a;border-color:#cbd5e1;background:#f8fafc}.game-history-modal__header{display:flex;gap:.9rem;align-items:flex-start;padding:1.25rem 3.8rem 1rem 1.25rem;border-bottom:1px solid #e2e8f0}.game-history-modal__icon{width:2.75rem;height:2.75rem;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;color:#1e293b;background:#f1f5f9;border:1px solid #e2e8f0}.game-history-modal__kicker{margin:0 0 .24rem;color:#64748b;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.game-history-modal__title{margin:0;color:#0f172a;font-size:1.35rem;line-height:1.15}.game-history-modal__subtitle{margin:.35rem 0 0;color:#475569;font-size:.92rem;line-height:1.45}.game-history-modal__content{min-height:12rem;overflow:auto;padding:.85rem}.game-history-modal__state{margin:1.4rem 0;color:#475569;font-size:.95rem;text-align:center}.game-history-modal__state--error{color:#991b1b}.game-history-modal__list{display:grid;gap:.65rem}.game-history-modal__match{display:flex;align-items:center;justify-content:space-between;gap:.9rem;padding:.82rem;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.game-history-modal__match-main{min-width:0;display:grid;gap:.35rem}.game-history-modal__players{display:flex;align-items:center;gap:.45rem;color:#0f172a;font-size:.95rem;font-weight:800;line-height:1.3;overflow-wrap:anywhere}.game-history-modal__versus{flex:0 0 auto;color:#64748b;font-size:.72rem;font-weight:800;text-transform:uppercase}.game-history-modal__meta{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;color:#64748b;font-size:.78rem;font-weight:700}.game-history-modal__meta span{border-radius:999px;padding:.18rem .48rem;background:#f1f5f9}.game-history-modal__replay-link{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.42rem;border:1px solid #0f172a;border-radius:8px;padding:.54rem .72rem;background:#0f172a;color:#fff;font-size:.82rem;font-weight:800;line-height:1;text-decoration:none;transition:transform .14s ease,box-shadow .14s ease}.game-history-modal__replay-link:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0f172a38}.history-page{display:grid;gap:1rem;padding:1.25rem;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 20px 45px #0f172a1a}.history-page__header{padding:.25rem .15rem .35rem}.history-page__kicker{margin:0 0 .25rem;color:#64748b;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.history-page__title{margin:0;color:#0f172a;font-size:1.8rem;line-height:1.1}.history-page__sections{display:grid;gap:1rem}.history-page__section{display:grid;gap:.85rem;padding:1rem;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.history-page__section-header{display:flex;gap:.9rem;align-items:flex-start}.history-page__section-title{margin:0;color:#0f172a;font-size:1.2rem;line-height:1.2}.winner-modal{position:fixed;inset:0;z-index:70;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.5rem}.winner-modal__panel{position:relative;width:min(100%,600px);border-radius:20px;border:1px solid rgba(226,232,240,.9);background:radial-gradient(circle at 20% 0%,#ffffffeb,#f8fafcfa 42%,#f1f5f9),linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 26px 80px #0f172a57;padding:1.15rem 1.2rem}.winner-modal__close{position:absolute;right:1rem;top:1rem;width:2.25rem;height:2.25rem;border:0;border-radius:999px;background:transparent;color:#6b7280;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;z-index:1}.winner-modal__close:hover{background:#94a3b829;color:#374151}.winner-modal__header{text-align:center;padding-top:.12rem}.winner-modal__hero{position:relative;display:flex;justify-content:center;align-items:center;margin:0 auto .25rem;min-height:96px}.winner-modal__confetti{position:absolute;width:6px;height:10px;background:#e4bc57;border-radius:2px;opacity:.9}.winner-modal__confetti--1{top:8px;left:calc(50% - 94px);transform:rotate(22deg)}.winner-modal__confetti--2{top:22px;left:calc(50% - 72px);transform:rotate(-16deg)}.winner-modal__confetti--3{top:2px;left:calc(50% - 52px);transform:rotate(34deg)}.winner-modal__confetti--4{top:6px;left:calc(50% + 88px);transform:rotate(-24deg)}.winner-modal__confetti--5{top:20px;left:calc(50% + 64px);transform:rotate(14deg)}.winner-modal__confetti--6{top:0;left:calc(50% + 44px);transform:rotate(-34deg)}.winner-modal__hero-icon{color:#d2a224;filter:drop-shadow(0 8px 16px rgba(180,134,28,.25))}.winner-modal__title{margin:0;font-size:clamp(2rem,3.4vw,3.1rem);line-height:1.02;color:#283349;font-weight:800}.winner-modal__reason{margin:.25rem 0 0;color:#4b5563;font-size:1rem}.winner-modal__winner-badge{margin-top:.85rem;border:1px solid #e5e7eb;background:#f8f7f4;border-radius:12px;padding:.74rem .9rem;display:flex;align-items:center;justify-content:space-between}.winner-modal__winner-name{display:flex;align-items:center;gap:.5rem;font-size:1.2rem;color:#27344b;font-weight:700}.winner-modal__winner-crown{color:#d4a52c}.winner-modal__side{display:inline-flex;align-items:center;justify-content:center;min-width:3.2rem;border-radius:9px;font-size:.82rem;font-weight:700;text-transform:capitalize;padding:.28rem .58rem;border:1px solid transparent}.winner-modal__side--white{color:#0f172a;background:#f8fafc;border-color:#cbd5e1}.winner-modal__side--black{color:#f8fafc;background:#475569;border-color:#334155}.winner-modal__stats-grid{margin-top:.75rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem}.winner-modal__stat-card{border-radius:12px;border:1px solid #e5e7eb;background:#f8f7f4;padding:.6rem .78rem}.winner-modal__stat-label{margin:0;font-size:.86rem;color:#4b5563;font-weight:600}.winner-modal__stat-value{margin:.26rem 0 0;font-size:2.2rem;line-height:1.1;color:#27344b;font-weight:700}.winner-modal__result-block{margin-top:.72rem}.winner-modal__result-title{margin:0 0 .42rem;color:#374151;font-size:1.06rem;font-weight:700}.winner-modal__result-list{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.winner-modal__result-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.62rem .78rem;background:#fff}.winner-modal__result-row+.winner-modal__result-row{border-top:1px solid #e5e7eb}.winner-modal__result-row--winner{background:#fffdf6}.winner-modal__result-name{display:flex;align-items:center;gap:.42rem;color:#27344b;font-size:.96rem;font-weight:700}.winner-modal__marker{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:999px}.winner-modal__marker--winner{width:.92rem;height:.92rem;background:#31476d}.winner-modal__marker--loser{background:#49586f;color:#f8fafc;font-size:.62rem;line-height:1}.winner-modal__result-right{display:inline-flex;align-items:center;gap:.65rem}.winner-modal__score{color:#27344b;font-size:.92rem;font-weight:700}.winner-modal__actions{display:flex;align-items:center;gap:.7rem;margin-top:.85rem}.winner-modal__action{flex:1;border-radius:10px;border:1px solid transparent;padding:.63rem .88rem;display:inline-flex;justify-content:center;align-items:center;gap:.5rem;font-weight:700;font-size:1.1rem;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease}.winner-modal__action:hover{transform:translateY(-1px)}.winner-modal__action--primary{color:#f8fafc;border-color:#406a98;background:linear-gradient(180deg,#6d96c3,#4c78ab)}.winner-modal__action--primary:hover{box-shadow:0 10px 20px #3b608952}.winner-modal__action--secondary{color:#27344b;border-color:#d1d5db;background:linear-gradient(180deg,#fff,#f8fafc)}.winner-modal__action--secondary:hover{background:#f8fafc}@media(max-width:720px){.winner-modal{padding:.9rem}.winner-modal__panel{width:min(100%,560px);border-radius:16px;padding:1rem 1rem 1.05rem}.winner-modal__stats-grid{grid-template-columns:1fr}.winner-modal__actions{flex-direction:column}.winner-modal__action{width:100%}}.chess-game__forfeit-confirm-backdrop{position:fixed;inset:0;z-index:50;background:#0f172ab3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:1rem}.chess-game__forfeit-confirm-modal{width:min(100%,440px);border-radius:18px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 24px 60px #0f172a4d;padding:1.3rem 1.25rem 1.2rem}.chess-game__forfeit-confirm-title{margin:0;color:#0f172a;font-size:1.25rem}.chess-game__forfeit-confirm-text{margin:.55rem 0 0;color:#334155;font-size:.94rem;line-height:1.45}.chess-game__forfeit-confirm-actions{margin-top:1rem;display:flex;justify-content:flex-end;gap:.55rem}.chess-game__forfeit-confirm-cancel,.chess-game__forfeit-confirm-submit{border-radius:10px;font-weight:700;cursor:pointer;padding:.56rem .85rem;border:1px solid transparent}.chess-game__forfeit-confirm-cancel{background:#fff;border-color:#cbd5e1;color:#334155}.chess-game__forfeit-confirm-submit{background:#dc2626;color:#fff}.chess-game__forfeit-confirm-submit:hover{background:#b91c1c}@keyframes winner-pop{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes winner-spark{0%{opacity:0;transform:scale(.2) translateY(0)}15%{opacity:.7}60%{opacity:.35;transform:scale(1.05) translateY(-10px)}to{opacity:0;transform:scale(.65) translateY(-16px)}}@keyframes winner-spark-hero{0%{opacity:0;transform:scale(.25) translateZ(0) rotate(0)}18%{opacity:1}55%{opacity:.5;transform:scale(1.25) translate3d(5px,-16px,0) rotate(18deg)}to{opacity:0;transform:scale(.6) translate3d(10px,-26px,0) rotate(34deg)}}@keyframes winner-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media(max-width:720px){.chess-game{padding:1.5rem}.chess-game__header{padding:.2rem .9rem}.chess-game__competitors{grid-template-columns:1fr;justify-items:center;gap:.8rem}.chess-game__competitor,.chess-game__competitor--left,.chess-game__competitor--right{justify-content:center;text-align:center}.chess-game__competitor-name{white-space:normal;font-size:1.6rem}.chess-game__vs{width:4.4rem;height:4.4rem;font-size:1.95rem}.chess-game__board-shell{grid-template-columns:1fr;gap:.6rem}.chess-game__training-panel-header,.chess-game__training-prompt-header{align-items:stretch;flex-direction:column}.chess-game__training-header-actions{justify-content:stretch}.chess-game__training-prompt-grid{grid-template-columns:1fr}.chess-game__training-primary,.chess-game__training-secondary{width:100%}.game-history-modal{padding:.8rem}.game-history-modal__header{padding:1rem 3.5rem .9rem 1rem}.game-history-modal__match{align-items:stretch;flex-direction:column}.game-history-modal__players{align-items:flex-start;flex-direction:column;gap:.25rem}.game-history-modal__replay-link{width:100%}.chess-game__side-slot{min-height:0;justify-content:flex-start}.chess-game__side-slot--above,.chess-game__side-slot--below{align-items:stretch}.chess-game__player--black{text-align:left}.chess-game__winner-modal{padding:1.3rem 1.1rem 1.2rem}.chess-game__winner-title{font-size:1.55rem}.chess-game__winner-emoji{font-size:1.9rem}.chess-game__forfeit-modal{padding:1.2rem 1.05rem 1.15rem}.chess-game__forfeit-title{font-size:1.4rem}.chess-game__forfeit-confirm-modal{padding:1.1rem 1rem}.chess-game__toast-stack{top:.75rem;left:50%}.chess-game__toast{max-width:100%;min-width:0}}.create-player{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0f172a14;padding:2rem 2.5rem;width:100%;margin:0 auto}.create-player__header{margin-bottom:1.75rem}.create-player__title{font-size:1.4rem;font-weight:700;color:#0f172a;margin:0 0 .25rem}.create-player__subtitle{font-size:.82rem;color:#64748b;margin:0}.create-player__form{display:flex;flex-direction:column;gap:1.25rem}.create-player__field{display:flex;flex-direction:column;gap:.35rem}.create-player__label{font-size:.78rem;font-weight:600;color:#334155;text-transform:uppercase;letter-spacing:.06em}.create-player__required{color:#ef4444}.create-player__optional{color:#94a3b8;font-weight:400;text-transform:none;letter-spacing:normal}.create-player__select,.create-player__input{padding:.55rem .75rem;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.88rem;color:#0f172a;background:#f8fafc;outline:none;transition:border-color .14s ease,box-shadow .14s ease}.create-player__select:focus,.create-player__input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.create-player__field--tournament .create-player__label,.create-player__field--tournament .create-player__optional{font-size:1.56rem}.create-player__field--tournament .create-player__select,.create-player__field--tournament .create-player__select option{font-size:1.76rem}.train-section{position:relative;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;padding:1.25rem 1.25rem 1rem;display:flex;flex-direction:column;gap:1rem}.train-section--you{border-left:4px solid #6366f1;background:linear-gradient(180deg,#eef2ff,#f8fafc)}.train-section--opponent{border-left:4px solid #f97316;background:linear-gradient(180deg,#fff7ed,#f8fafc)}.train-section__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0}.train-section__title{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0f172a;margin:0}.train-section__badge{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;color:#fff}.train-section--you .train-section__badge{background:#fff;color:#0f172a;border:1px solid #cbd5e1}.train-section--opponent .train-section__badge{background:#0f172a;color:#fff;border:1px solid #0f172a}.train-section .create-player__select,.train-section .create-player__input{background:#fff}.train-vs{display:flex;align-items:center;justify-content:center;margin:.25rem 0;font-size:.78rem;font-weight:700;letter-spacing:.12em;color:#94a3b8}.train-vs:before,.train-vs:after{content:"";flex:1;height:1px;background:#e2e8f0;margin:0 .75rem}.create-player__select optgroup{font-weight:600;color:#334155}.create-player__model-preview{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-radius:10px;background:#f1f5f9;border:1.5px solid #e2e8f0}.create-player__model-preview--openai{background:#f0fdf4;border-color:#bbf7d0}.create-player__model-preview--anthropic{background:#fefce8;border-color:#fde68a}.create-player__model-preview--gemini{background:#eff6ff;border-color:#bfdbfe}.create-player__model-preview--grok{background:#f5f3ff;border-color:#ddd6fe}.create-player__model-logo{width:28px;height:28px;object-fit:contain;border-radius:4px;flex-shrink:0}.create-player__model-info{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}.create-player__model-company{font-size:.72rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.create-player__model-name{font-size:.88rem;font-weight:500;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.create-player__model-reasoning{font-size:.68rem;color:#94a3b8;font-weight:400;line-height:1.2}.tournament-games__title{display:block;font-size:1.3rem;line-height:1.25}.tournament-games__matchweek{border-bottom:2px solid rgba(15,23,42,.22);color:#0f172a;display:inline-block;font-size:1rem;font-weight:750;justify-self:start;letter-spacing:.01em;line-height:1.3;padding-bottom:.1rem;padding-top:.3rem;width:max-content}.tournament-game-row{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr) 18rem}.tournament-game-row>div:first-child{min-width:0}.tournament-game-matchup{display:inline-grid;align-items:flex-start;grid-template-columns:minmax(0,1fr) 2rem minmax(0,1fr);column-gap:.7rem;max-width:100%;width:100%}.tournament-game-matchup__vs{color:#475569;font-size:1rem;font-weight:800;padding-top:.3rem}.tournament-game-player{display:inline-flex;align-items:flex-start;width:100%;min-width:0;gap:.45rem}.tournament-game-player__logo{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:.4rem;background:#f8fafc;color:#475569;flex-shrink:0;font-size:.68rem;font-weight:700;line-height:1;overflow:hidden}.tournament-game-player__logo img{display:block;width:100%;height:100%;object-fit:contain}.tournament-game-player__details{display:inline-flex;flex-direction:column;min-width:0;gap:.12rem}.tournament-game-player__name{line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-game-player__email{color:#64748b;font-size:.82rem;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-game-schedule{display:block;margin-top:.24rem;margin-left:2.2rem}.tournament-game-action{align-items:center;display:grid;gap:.5rem;grid-template-columns:minmax(0,12.25rem) 5.25rem;justify-self:end;width:18rem}.tournament-game-action .create-player__submit{box-sizing:border-box;display:grid;min-height:2.6rem;padding:0;place-items:center;text-align:center;width:5.25rem}.tournament-game-result{overflow-wrap:anywhere;text-align:right;white-space:normal}@media(max-width:780px){.tournament-game-row{grid-template-columns:minmax(0,1fr)}.tournament-game-matchup{grid-template-columns:minmax(0,1fr);row-gap:.35rem;width:100%}.tournament-game-matchup__vs{padding-top:0}.tournament-game-schedule{margin-left:0}.tournament-game-action{grid-template-columns:minmax(0,1fr) 5.25rem;justify-self:stretch;width:100%}.tournament-game-result{text-align:left}}.create-player__model-badge{font-size:.68rem;font-weight:600;padding:.2rem .5rem;border-radius:999px;background:#6366f1;color:#fff;white-space:nowrap;flex-shrink:0}.create-player__reasoning-options{display:flex;gap:.5rem}.create-player__reasoning-btn{flex:1;padding:.45rem .6rem;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-size:.82rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .14s ease}.create-player__reasoning-btn:hover{border-color:#6366f1;color:#6366f1}.create-player__reasoning-btn--active{background:#6366f1;border-color:#6366f1;color:#fff}.create-player__player-list{display:grid;gap:.55rem;margin-top:.5rem}.create-player__player-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1.5px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:.65rem .75rem}.create-player__player-card--selected{border-color:#6366f1;background:#eef2ff;box-shadow:0 0 0 3px #6366f11f}.create-player__player-card-main{min-width:0}.create-player__player-card-name{font-size:.9rem;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.create-player__player-card-meta{margin-top:.1rem;font-size:.75rem;color:#64748b}.create-player__player-select-btn{border:1.5px solid #cbd5e1;background:#fff;color:#334155;border-radius:8px;padding:.38rem .65rem;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .14s ease;white-space:nowrap}.create-player__player-select-btn:hover{border-color:#6366f1;color:#6366f1}.create-player__player-select-btn--selected{background:#6366f1;border-color:#6366f1;color:#fff}.create-player__secondary-action{align-self:flex-start;margin-top:.3rem;font-size:.8rem;color:#64748b;text-decoration:underline;text-underline-offset:2px;transition:color .14s ease}.create-player__secondary-action:hover{color:#334155}.create-player__reasoning-btn--active:hover{background:#4f46e5;border-color:#4f46e5;color:#fff}.create-player__message{padding:.6rem .85rem;border-radius:8px;font-size:.82rem;font-weight:500}.create-player__message--success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.create-player__message--error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.create-player__submit{padding:.65rem 1.5rem;border:none;border-radius:10px;background:#0f172a;color:#fff;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .14s ease,opacity .14s ease}.create-player__submit:hover:not(:disabled){background:#1e293b}.create-player__submit:disabled{opacity:.5;cursor:not-allowed}.create-player__submit--secondary{background:#e2e8f0;color:#334155}.create-player__submit--secondary:hover:not(:disabled){background:#cbd5e1}.create-player__nickname-modal-backdrop{position:fixed;inset:0;z-index:55;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.create-player__nickname-modal{width:min(100%,36rem);border-radius:14px;border:1px solid #e2e8f0;background:#fff;box-shadow:0 24px 60px #0f172a47;padding:1.25rem;display:grid;gap:.9rem}.create-player__nickname-modal-title{margin:0;color:#0f172a;font-size:1.25rem;line-height:1.2}.create-player__nickname-modal-copy{margin:0;color:#475569;font-size:.9rem;line-height:1.45}.create-player__nickname-suggestions{display:flex;flex-wrap:wrap;gap:.45rem}.create-player__nickname-suggestion{border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#334155;padding:.28rem .7rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:border-color .14s ease,background .14s ease}.create-player__nickname-suggestion:hover:not(:disabled){border-color:#6366f1;background:#eef2ff}.create-player__nickname-suggestion--active{background:#e0e7ff;border-color:#6366f1;color:#3730a3}.create-player__nickname-actions-row{display:flex;justify-content:flex-start}.create-player__nickname-link-btn{border:none;background:none;color:#334155;font-size:.82rem;font-weight:600;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.create-player__nickname-link-btn:disabled{opacity:.45;cursor:not-allowed}.create-player__nickname-modal-actions{display:flex;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}@media(max-width:600px){.create-player{padding:1.25rem 1rem}.create-player__reasoning-options{flex-wrap:wrap}.create-player__reasoning-btn{flex:none;min-width:calc(50% - .25rem)}.create-player__nickname-modal{padding:1rem}.create-player__nickname-modal-actions,.create-player__nickname-modal-actions .create-player__submit{width:100%}}.tournaments{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0f172a14;padding:2rem 2.5rem;max-width:960px;margin:0 auto}.tournaments__header{margin-bottom:1.75rem}.tournaments__title{font-size:1.6rem;font-weight:700;color:#0f172a;margin:0 0 .35rem}.tournaments__subtitle{font-size:.95rem;color:#64748b;margin:0}.tournaments__loading{text-align:center;color:#64748b;padding:2rem 0}.tournaments__message--error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:8px;padding:.75rem 1rem;font-size:.9rem}.tournaments__empty{text-align:center;color:#64748b;padding:3rem 1rem;line-height:1.6}.tournaments__empty a{color:#2563eb;font-weight:600;text-decoration:none}.tournaments__empty a:hover{text-decoration:underline}.tournaments__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.tournaments__card{border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.6rem;transition:box-shadow .15s ease,border-color .15s ease}.tournaments__card:hover{border-color:#cbd5e1;box-shadow:0 4px 16px #0f172a12}.tournaments__card-top{display:flex;justify-content:space-between;align-items:center}.tournaments__status{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .6rem;border-radius:999px;background:#f1f5f9;color:#64748b}.tournaments__status--open{background:#dcfce7;color:#16a34a}.tournaments__status--scheduled{background:#dbeafe;color:#2563eb}.tournaments__status--in-progress{background:#fef9c3;color:#ca8a04}.tournaments__status--completed{background:#f1f5f9;color:#64748b}.tournaments__format{font-size:.95rem;color:#334155;font-weight:700;letter-spacing:.01em}.tournaments__card-title{font-size:1.1rem;font-weight:700;color:#0f172a;margin:0;line-height:1.3}.tournaments__card-org{font-size:.85rem;color:#64748b;margin:0}.tournaments__card-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem 1rem;padding-top:.5rem;border-top:1px solid #f1f5f9;margin-top:.25rem}@media(max-width:900px){.tournaments__card-details{grid-template-columns:repeat(2,minmax(0,1fr))}}.tournaments__detail{display:flex;flex-direction:column;gap:.1rem}.tournaments__detail-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-weight:600}.tournaments__detail-value{font-size:.85rem;color:#334155;font-weight:500}.tournaments__detail--featured .tournaments__detail-label,.create-player__header.tournaments__card .tournaments__detail-label{font-size:.8rem;color:#64748b;letter-spacing:.045em;font-weight:700}.tournaments__detail--featured .tournaments__detail-value,.create-player__header.tournaments__card .tournaments__detail-value{font-size:1.05rem;color:#0f172a;font-weight:700;line-height:1.25}.tournaments__card-actions{margin-top:auto;padding-top:.75rem;display:flex;gap:.6rem;flex-wrap:wrap}.tournaments__btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;text-decoration:none;font-size:.85rem;font-weight:600;padding:.5rem 1.25rem;border-radius:8px;text-align:center;transition:background .15s ease;cursor:pointer;border:0;line-height:1.2}.tournaments__btn:disabled{opacity:.65;cursor:not-allowed}.tournaments__btn--primary{background:#0f172a;color:#fff}.tournaments__btn--primary:hover{background:#1e293b}.tournaments__btn--secondary{background:#f1f5f9;color:#334155}.tournaments__btn--secondary:hover{background:#e2e8f0}.tournaments__btn--danger{background:#fff1f2;color:#be123c}.tournaments__btn--danger:hover:not(:disabled){background:#ffe4e6}.tournaments__btn--danger-solid{background:#be123c;color:#fff}.tournaments__btn--danger-solid:hover:not(:disabled){background:#9f1239}.tournaments__delete-modal-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a6b}.tournaments__delete-modal{width:min(100%,28rem);background:#fff;border-radius:12px;box-shadow:0 22px 60px #0f172a3d;padding:1.5rem;display:grid;gap:1rem}.tournaments__delete-title{margin:0;color:#0f172a;font-size:1.25rem;line-height:1.25}.tournaments__delete-copy{margin:0;color:#475569;font-size:.95rem;line-height:1.5}.tournaments__delete-actions{display:flex;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}@media(max-width:600px){.tournaments{padding:1.25rem 1rem}.tournaments__card-details,.tournaments__grid{grid-template-columns:1fr}.tournaments__delete-actions,.tournaments__delete-actions .tournaments__btn{width:100%}}.tournaments--participants{max-width:1100px}.tournament-participants__actions{margin-bottom:1rem}.tournament-participants__table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:12px}.tournament-participants__table{width:100%;border-collapse:collapse;background:#fff}.tournament-participants__table thead{background:#f8fafc}.tournament-participants__table th,.tournament-participants__table td{padding:.8rem .9rem;text-align:left;font-size:.88rem;color:#0f172a;border-bottom:1px solid #e2e8f0;white-space:nowrap}.tournament-participants__table th{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.tournament-participants__table tbody tr:hover{background:#f8fafc}.tournament-participants__table tbody tr:last-child td{border-bottom:0}
