.auth-container{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100%;min-width:0;box-sizing:border-box;min-height:calc(100vh - var(--header-height) - 48px);min-height:calc(100svh - var(--header-height) - 48px);min-height:calc(100dvh - var(--header-height) - 48px);padding:var(--space-4) var(--gap-page);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));overflow-x:clip}.auth-box{background:linear-gradient(180deg,rgb(var(--accent-rgb) / .06),rgb(var(--accent-rgb) / .02));padding:36px 32px;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);border:1px solid var(--line);width:100%;max-width:420px;min-width:0;box-sizing:border-box;position:relative;overflow:hidden}.auth-box:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px 200px at 50% -20%,rgb(var(--accent-rgb) / .12),transparent 60%)}.auth-box>*{position:relative;z-index:1}.auth-box h1{text-align:center;color:var(--text);margin-bottom:28px;font-size:clamp(1.5rem,4vw,1.85rem);font-family:var(--font-display);font-weight:800;letter-spacing:-.03em}.auth-box .form-group label{display:block;margin-bottom:8px;color:var(--muted);font-weight:600;font-size:.8125rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.auth-box .form-group input,.auth-box .form-input{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;height:44px;padding:0 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);font-family:var(--font-body);font-size:1rem;transition:border-color var(--trans-fast),box-shadow var(--trans-fast),background-color var(--trans-fast)}.auth-box .form-group{min-width:0}.auth-box form{width:100%;min-width:0}.auth-box .form-input:hover{border-color:var(--accent-ink)}.auth-box .form-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring-tight);background:var(--surface)}.auth-box .form-input::placeholder{color:var(--muted-2)}.auth-box .form-input:-webkit-autofill,.auth-box .form-input:-webkit-autofill:hover,.auth-box .form-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 1000px var(--surface) inset;transition:background-color 9999s ease-out 0s}.auth-box button[type=submit]{margin-top:var(--space-2)}.auth-link{text-align:center;margin-top:22px;color:var(--muted);font-size:.875rem;overflow-wrap:anywhere}.auth-link a{color:var(--accent-ink);text-decoration:none;font-weight:700}.auth-link a:hover{text-decoration:underline;text-underline-offset:3px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;max-width:min(900px,100%);width:100%;min-width:0;box-sizing:border-box}.auth-pitch h2{font-family:var(--font-display);font-size:2rem;margin-bottom:12px}.auth-pitch p{color:var(--muted);margin-bottom:20px;line-height:1.6}@media (max-width: 768px){.auth-container{justify-content:flex-start;padding-top:var(--space-3);min-height:auto}.auth-layout{grid-template-columns:1fr;gap:0}.auth-pitch{display:none}.auth-box{max-width:100%;padding:var(--space-5) var(--space-4);border-radius:var(--r-lg)}}@media (max-width: 480px){.auth-container{padding-left:var(--space-3);padding-right:var(--space-3)}.auth-box{padding:var(--space-4) var(--space-3)}.auth-box h1{margin-bottom:var(--space-4);font-size:1.35rem}}.daily-puzzle-widget{display:flex;flex-direction:column;gap:var(--space-3)}.puzzle-header-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0;font-size:.9375rem;font-weight:700}.puzzle-rating{display:inline-flex;align-items:center;gap:4px;background:var(--surface-3);color:var(--text);padding:2px var(--space-2);border-radius:var(--r-sm);font-size:.75rem;font-weight:700}.puzzle-board{margin:0 auto;width:100%;max-width:280px;box-sizing:border-box;position:relative;align-self:center}.puzzle-board>div{margin-left:auto;margin-right:auto}.puzzle-solved-overlay{position:absolute;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);z-index:10}.puzzle-solved-text{text-align:center;color:#fff;font-size:.9375rem;font-weight:600}.puzzle-message{text-align:center;padding:var(--space-2);border-radius:var(--r-sm);font-size:.8125rem;font-weight:600}.puzzle-info{margin:0}.puzzle-themes{display:flex;flex-wrap:wrap;gap:var(--space-1)}.puzzle-theme-tag{background:var(--surface-3);color:var(--muted);padding:2px var(--space-2);border-radius:var(--r-sm);font-size:.6875rem}.puzzle-actions{display:flex;gap:var(--space-2)}.puzzle-actions .btn{align-self:flex-start}.daily-puzzle-loading,.daily-puzzle-error{text-align:center;padding:var(--space-6);color:var(--muted);font-size:.875rem}.dashboard-hero .page-title{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:0}.dashboard-hero__name{min-width:0}.dashboard-hero__flag{flex-shrink:0}.dashboard-grid{display:contents}.dashboard-grid>*{min-width:0}.games-group-title{font-size:.72rem;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-ink);padding:var(--space-3) 0 var(--space-2);margin-top:var(--space-3);border-top:1px solid var(--line-soft)}.games-group-title:first-child{border-top:none;margin-top:0;padding-top:0}.game-card__label{font-weight:600;color:var(--muted);text-transform:uppercase;font-size:.68rem;letter-spacing:.06em}.game-card__result{font-weight:800;font-size:.875rem;color:var(--text);flex-shrink:0}.game-card__opponent{font-weight:600;color:var(--text);min-width:0}.game-card__date{color:var(--muted-2);font-size:inherit;white-space:nowrap}.rating-delta{font-weight:700;font-size:.72rem;padding:1px 6px;border-radius:var(--r-sm);flex-shrink:0;line-height:1.4}.rating-delta.positive{color:var(--success-text);background:var(--success-bg)}.rating-delta.negative{color:var(--danger-text);background:var(--danger-bg)}.show-more-btn{width:auto;margin-top:var(--space-2);align-self:flex-start}.education-widget{position:relative}.education-widget:before{display:none}.matchmaking-section{display:flex;flex-direction:column;gap:var(--space-4)}.matchmaking-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);max-width:var(--content-col)}.preset-label{font-size:.6875rem}.preset-time{font-size:.8125rem;font-weight:700}.preset-mode{font-size:.5625rem;text-transform:uppercase;letter-spacing:.05em;opacity:.8}.color-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-inline)}.custom-controls .form-input,.custom-controls input[type=number]{width:100%;max-width:100%}.custom-inputs{display:grid;gap:var(--space-3)}.custom-inputs label{display:flex;flex-direction:column;gap:var(--space-2);font-size:.8125rem;font-weight:600;color:var(--muted)}.queue-status{display:flex;flex-direction:column;gap:var(--space-3)}@media (max-width: 480px){.matchmaking-presets{grid-template-columns:repeat(3,minmax(0,1fr))}}.custom-controls{padding:var(--space-4) 0;border:none;border-top:var(--rule) solid var(--line-faint);border-radius:0;display:flex;flex-direction:column;gap:var(--space-4);background:transparent}.control-group{display:flex;flex-direction:column;gap:var(--space-2)}.control-group label{font-size:.8125rem;font-weight:600;color:var(--muted)}.control-group input[type=range]{width:100%;accent-color:var(--accent)}.checkbox-group{padding:var(--space-3) 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.checkbox-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:.875rem}.matchmaking-message{padding:var(--space-3);background:var(--info-bg);border:1px solid var(--info-border);border-radius:var(--r-md);font-size:.8125rem}.lobby-game-card{border:none;border-bottom:var(--rule) solid var(--line-faint);border-radius:0;padding:var(--space-3) 0;display:flex;flex-direction:column;gap:var(--space-2);background:transparent;transition:background-color var(--trans-fast);cursor:pointer}.lobby-game-card:last-child{border-bottom:none}.lobby-game-card:not(.own-game):hover{background:rgb(var(--accent-rgb) / .03);box-shadow:none}.lobby-game-card.own-game{cursor:default}.lobby-card-top{display:flex;align-items:center;gap:var(--space-3);font-size:.875rem}.creator-name{font-weight:700;color:var(--text)}.creator-rating{padding:2px var(--space-2);border-radius:var(--r-sm);font-size:.75rem;color:var(--muted);background:rgb(var(--accent-rgb) / .08);font-family:var(--font-mono)}.game-type-label{margin-left:auto;font-size:.8125rem;color:var(--muted)}.lobby-card-divider{height:1px;background:var(--line-soft)}.lobby-card-bottom{display:flex;align-items:center;gap:var(--space-3);font-size:.8125rem;color:var(--text)}.lobby-card-bottom .info-label{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.no-games{text-align:center;padding:var(--space-10) var(--space-4);color:var(--muted);font-size:.875rem}.games-grid{display:flex;flex-direction:column;gap:0}.bot-game-modal-content{display:flex;flex-direction:column;gap:24px;padding:24px 0}.bot-game-form-group{display:flex;flex-direction:column;gap:12px}.bot-game-form-group label{font-weight:600;font-size:.95rem;color:var(--text);text-transform:uppercase;letter-spacing:.5px;font-size:.85rem;opacity:.9}.difficulty-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.difficulty-button{padding:16px 14px;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--accent);cursor:pointer;transition:all .2s ease;font-size:.9rem;font-weight:500;text-align:left;position:relative;overflow:hidden}.difficulty-button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,transparent 0%,rgba(var(--accent-rgb, 59, 130, 246),.05) 100%);opacity:0;transition:opacity .3s ease}.difficulty-button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.difficulty-button:hover:not(:disabled):before{opacity:1}.difficulty-button.active{border-color:var(--accent);background:var(--accent);color:var(--surface);box-shadow:0 4px 16px rgba(var(--accent-rgb, 59, 130, 246),.3)}.difficulty-button.active .difficulty-name,.difficulty-button.active .difficulty-depth{color:var(--surface);opacity:1}.difficulty-button:disabled{opacity:.5;cursor:not-allowed}.difficulty-name{font-weight:600;margin-bottom:6px;font-size:1rem;position:relative}.difficulty-depth{font-size:.8rem;opacity:.7;position:relative}.color-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.color-button{padding:16px 12px;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--accent);cursor:pointer;transition:all .2s ease;font-weight:600;font-size:.95rem;position:relative;display:flex;align-items:center;justify-content:center}.color-button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,transparent 0%,rgba(var(--accent-rgb, 59, 130, 246),.05) 100%);opacity:0;transition:opacity .3s ease}.color-button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.color-button:hover:not(:disabled):before{opacity:1}.color-button.active{border-color:var(--accent);background:var(--accent);color:var(--surface);box-shadow:0 4px 16px rgba(var(--accent-rgb, 59, 130, 246),.3)}.color-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.bot-game-select{padding:12px 16px;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--accent);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.bot-game-select:hover:not(:disabled){border-color:var(--accent);box-shadow:0 2px 8px #0000000d}.bot-game-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb, 59, 130, 246),.15)}.bot-game-select:disabled{opacity:.5;cursor:not-allowed}.bot-game-error{padding:14px 16px;background:var(--surface);color:var(--accent);border:2px solid var(--accent);border-radius:8px;font-size:.9rem;font-weight:500}.bot-game-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border)}.bot-game-actions .btn{min-width:120px;padding:12px 24px;font-weight:600;border-radius:8px;transition:all .2s ease}.bot-game-actions .btn-secondary{background:var(--surface);color:var(--accent);border:2px solid var(--border)}.bot-game-actions .btn-secondary:hover:not(:disabled){background:var(--hover-bg);border-color:var(--accent);transform:translateY(-1px)}.bot-game-actions .btn-primary{background:var(--accent);color:var(--surface);border:2px solid var(--accent);box-shadow:0 2px 8px rgba(var(--accent-rgb, 59, 130, 246),.3)}.bot-game-actions .btn-primary:hover:not(:disabled){background:var(--accent-hover, var(--accent));transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--accent-rgb, 59, 130, 246),.4)}.bot-game-actions .btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (max-width: 600px){.bot-game-modal-content{gap:20px;padding:20px 0}.bot-game-form-group label{font-size:.8rem}.difficulty-grid{grid-template-columns:1fr;gap:10px}.difficulty-button{padding:14px 16px;text-align:center}.difficulty-name{font-size:.95rem}.difficulty-depth{font-size:.75rem}.color-buttons{grid-template-columns:1fr;gap:10px}.color-button{padding:14px 12px;font-size:.9rem}.bot-game-select{padding:12px 14px;font-size:.9rem}.bot-game-actions{flex-direction:column;gap:10px}.bot-game-actions .btn{width:100%;min-width:unset}}.modal-content{background:var(--surface);border-radius:12px;padding:24px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 10px 40px #00000080;width:100%}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;color:var(--text);font-size:20px}.modal-close-btn{width:32px;height:32px;border-radius:4px;border:none;background:transparent;color:var(--accent);font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;line-height:1}.modal-close-btn:hover{background:#ffffff1a}.invite-modal{max-width:500px;width:95%}.modal-description{font-size:13px;color:var(--muted);margin-bottom:16px;text-align:center}.invite-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;max-height:400px;overflow-y:auto}.invite-preset-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:12px 8px;min-height:60px;background:var(--surface);border:2px solid var(--border);color:var(--accent);border-radius:4px;font-weight:500;cursor:pointer;transition:all .15s ease}.invite-preset-btn .preset-time{font-size:14px;font-weight:600;line-height:1.2}.invite-preset-btn .preset-mode{font-size:10px;text-transform:uppercase;letter-spacing:.5px;opacity:.8;line-height:1.1}.invite-preset-btn .preset-label{font-size:13px;font-weight:600}.invite-preset-btn.custom-preset{grid-column:1 / -1;background:linear-gradient(135deg,var(--surface-2),var(--surface))}.custom-controls{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:16px}.color-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.color-btn{padding:12px 10px;min-height:48px;border:1px solid var(--border-2);background:var(--surface);border-radius:4px;cursor:pointer;font-weight:500;font-size:14px;color:var(--accent);text-align:center;transition:all .2s;display:flex;align-items:center;justify-content:center}.color-btn:hover{border-color:var(--accent)}.color-btn.active{background:var(--accent);color:var(--surface);border-color:var(--accent)}.checkbox-group{display:flex;align-items:center;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--text);font-weight:500;flex:1}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}.control-group{display:flex;flex-direction:column;gap:8px}.control-group label{font-size:13px;font-weight:500;color:var(--text)}.control-group input[type=range]{width:100%;height:4px;background:var(--border);border-radius:2px;outline:none;-webkit-appearance:none;appearance:none}.control-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--accent);cursor:pointer;border-radius:50%;border:none;margin-top:-6px}.control-group input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;background:var(--border);border-radius:2px;border:none}.control-group input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--accent);cursor:pointer;border-radius:50%;border:none}.control-group input[type=range]::-moz-range-track{background:var(--border);border-radius:2px;border:none;height:4px}.invite-preset-btn:hover:not(:disabled){border-color:var(--surface-2);background:var(--accent);color:var(--surface)}.invite-preset-btn.active{background:var(--accent);color:var(--surface);border-color:var(--accent)}.invite-preset-btn:disabled{opacity:.5;cursor:not-allowed}.generate-link-btn{width:100%;padding:10px;background:var(--accent);color:var(--surface);border:none;border-radius:4px;font-weight:500;cursor:pointer;transition:all .2s;font-size:14px}.generate-link-btn:hover:not(:disabled){background:var(--muted)}.generate-link-btn:disabled{opacity:.6;cursor:not-allowed}.invite-link-display{text-align:center}.invite-success{color:var(--success);font-weight:500;margin-bottom:12px;font-size:14px}.link-section{display:flex;gap:8px;margin-bottom:16px;align-items:center}.invite-link-input{flex:1 1 auto;min-width:0;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:12px;font-family:monospace;overflow:hidden;text-overflow:ellipsis}.copy-link-btn{flex:0 0 auto;width:auto;min-width:140px;padding:10px 16px;background:var(--accent);color:var(--surface);border:none;border-radius:4px;cursor:pointer;font-weight:500;white-space:nowrap;transition:all .2s}.copy-link-btn:hover{background:var(--muted)}.qr-section{margin:16px 0;display:flex;justify-content:center}.qr-code{width:180px;height:180px;border:2px solid var(--border);border-radius:4px;padding:8px}.new-preset-btn{width:100%;padding:10px;background:var(--surface);border:2px solid var(--border);color:var(--accent);border-radius:4px;cursor:pointer;font-weight:500;transition:all .2s;margin-top:12px}.new-preset-btn:hover{border-color:var(--accent);background:var(--surface-2)}@media (max-width: 768px){.invite-modal{max-width:100%;width:100%}.modal-content{padding:20px;border-radius:16px}.invite-presets{grid-template-columns:repeat(2,1fr);gap:10px;max-height:350px}.invite-preset-btn{padding:14px 10px;min-height:70px}.invite-preset-btn .preset-time{font-size:15px}.invite-preset-btn .preset-mode{font-size:11px}.custom-controls{padding:14px;gap:14px}.color-buttons{gap:10px}.color-btn{padding:14px 12px;font-size:15px}.qr-code{width:150px;height:150px}}@media (max-width: 480px){.modal-content{padding:16px;border-radius:12px}.modal-header{padding:14px 16px;margin-bottom:16px}.modal-header h2{font-size:18px}.modal-description{font-size:12px;margin-bottom:14px}.invite-presets{grid-template-columns:repeat(2,1fr);gap:8px;max-height:300px}.invite-preset-btn{padding:12px;min-height:60px}.invite-preset-btn .preset-time{font-size:14px}.invite-preset-btn .preset-mode{font-size:10px}.invite-preset-btn .preset-label{font-size:12px}.custom-controls{padding:12px;gap:12px}.color-buttons{grid-template-columns:1fr;gap:8px}.color-btn{padding:12px;font-size:14px;min-height:44px}.control-group label{font-size:12px}.checkbox-label{font-size:13px}.generate-link-btn,.copy-link-btn,.new-preset-btn{padding:12px;font-size:14px}.qr-code{width:130px;height:130px}.link-section{flex-direction:column;gap:10px;align-items:stretch}.invite-link-input{width:100%}.copy-link-btn{width:100%;min-width:0}}.create-lobby-form{display:flex;flex-direction:column;gap:14px}.create-lobby-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.create-lobby-form .color-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.play-hub{max-width:var(--container-wide)}.play-hub .play-hub__intro{margin-bottom:var(--space-4)}.play-hub .cta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-6)}.play-hub .cta-card{flex-direction:column;align-items:flex-start;gap:var(--space-1);padding:var(--space-3);border:var(--rule) solid var(--line-soft);border-radius:var(--r-md);background:var(--surface);min-height:0}.play-hub .cta-card:hover{border-color:var(--line);background:var(--surface-2)}.play-hub .cta-card--primary{border-color:rgb(var(--accent-rgb) / .22);background:rgb(var(--accent-rgb) / .06)}.play-hub .cta-card__title{font-size:.8125rem;white-space:normal}.play-hub .cta-card__desc{display:block;font-size:.6875rem;color:var(--muted-2);line-height:1.35}.play-hub-aside{position:sticky;top:calc(var(--header-height) + var(--space-4))}.play-hub .matchmaking-section .section-title{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--t-sm);font-weight:700;color:var(--text)}.play-hub-aside .cc-card>h2{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--t-sm);font-weight:700;color:var(--text)}@media (max-width: 900px){.play-hub-aside{position:static}.play-hub .cta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 480px){.play-hub .cta-grid{grid-template-columns:1fr}}.game-over-modal{display:flex;flex-direction:column;gap:12px;text-align:center}.game-over-result{font-family:var(--font-display);font-size:1.5rem;font-weight:800;margin:0;color:var(--accent-ink)}.game-over-reason,.game-over-opponent{margin:0;color:var(--muted);font-size:.9rem}.game-over-msg{margin:0;color:var(--success-text);font-size:.85rem}.game-over-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.game-over-actions .btn-primary,.game-over-actions .resign-btn,.game-over-actions .offer-draw-btn{grid-column:span 2}@media (max-width: 860px){.game-over-result{font-size:1.25rem}.game-over-actions{grid-template-columns:1fr}.game-over-actions .btn-primary,.game-over-actions .resign-btn,.game-over-actions .offer-draw-btn{grid-column:span 1}}.game-container{width:100%;max-width:none;margin:0;padding:16px}.game-toast{position:fixed;top:20px;right:20px;z-index:1000;background:var(--text);color:var(--accent-contrast);padding:12px 16px;border-radius:6px;box-shadow:0 6px 18px #0003;font-size:14px;max-width:320px}.game-toast.info{background:var(--text)}.game-toast.error{background:var(--danger-text)}@media (max-width: 600px){.game-toast{top:12px;right:12px;left:12px;max-width:unset}}@media (max-width: 820px){.game-container{padding:0}}.game-header{background:var(--surface);color:var(--text);padding:10px 16px;margin-bottom:8px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;max-width:1208px;margin-left:auto;margin-right:auto}.game-header h1{margin:0;font-size:24px;font-weight:600}@media (max-width: 1400px){.game-header{max-width:1158px}}@media (max-width: 1200px){.game-header{max-width:800px}}@media (max-width: 768px){.game-header{max-width:none}}@media (max-width: 600px){.game-header{padding:10px 16px;margin-bottom:12px}.game-header h1{font-size:20px}}.game-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status-badge,.result-badge,.ws-badge{padding:6px 12px;border-radius:4px;font-size:12px;font-weight:500;border:1px solid var(--border);background:var(--surface-2);color:var(--muted)}.status-badge.active{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.status-badge.finished{background:var(--neutral-bg);color:var(--neutral-text);border-color:var(--neutral-border)}@media (max-width: 600px){.status-badge,.result-badge,.ws-badge{padding:4px 8px;font-size:11px}}.result-badge,.ws-badge{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.share-link-btn{width:32px;min-width:32px;padding:0}.draw-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.draw-actions .btn{flex:1 1 calc(50% - var(--space-1));min-width:0}.offer-draw-btn{margin-bottom:var(--space-2)}.game-content{display:grid;grid-template-columns:max-content 400px;gap:8px;justify-content:center}@media (max-width: 1400px){.game-content{grid-template-columns:max-content 350px;gap:8px}}@media (max-width: 1200px){.game-content{grid-template-columns:1fr;max-width:800px;margin:0 auto}}.board-section{display:flex;flex-direction:column;gap:0;align-items:center;max-width:800px}.layout-2col-board{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);width:100%;max-width:min(100vw - 340px,800px)}@media (max-width: 860px){.layout-2col-board{max-width:100%}}.player-info{background:var(--surface);padding:10px 12px;font-weight:500;color:var(--text);display:flex;justify-content:space-between;align-items:center;width:100%;max-width:800px;font-size:14px}@media (max-width: 600px){.player-info{padding:8px 12px;font-size:12px;max-width:none}.turn-indicator{max-width:none}}.player-name{display:flex;align-items:center;gap:8px}.you-badge{background:var(--success-bg);color:var(--success-text);padding:2px 8px;border-radius:3px;font-size:12px;font-weight:500}.player-time{font-size:16px;font-weight:600;color:var(--text);font-family:Courier New,monospace;min-width:50px;text-align:right}@media (max-width: 600px){.player-time{font-size:14px;min-width:45px}}.chess-board-wrapper{position:relative;width:100%;max-width:800px;margin:0 auto;display:flex;justify-content:center;align-items:center;touch-action:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.chess-board-wrapper>*{margin-left:auto;margin-right:auto}@media (max-width: 768px){.chess-board-wrapper{max-width:100%;margin:0}}.game-over-overlay{position:absolute;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;border-radius:4px;z-index:10}.game-over-content{background:var(--surface);padding:20px;border-radius:4px;text-align:center;max-width:300px}.game-over-content h2{margin:0 0 12px;font-size:20px;font-weight:600;color:var(--text)}.game-over-content p{margin:8px 0;color:var(--muted);font-size:14px}.turn-indicator{text-align:center;padding:12px;border-radius:4px;border:1px solid var(--border);font-weight:500;background:var(--surface);max-width:800px;width:100%;box-sizing:border-box;font-size:15px}.your-turn{color:var(--success-text)}.opponent-turn{color:var(--muted)}@media (max-width: 600px){.info-section{gap:10px}}.game-info{background:var(--surface);padding:12px;display:flex;flex-direction:column}.game-info h3{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:6px}.game-info p{margin:6px 0;font-size:12px;color:var(--muted)}.game-info p strong{color:var(--text);font-weight:600}@media (max-width: 600px){.game-info{padding:12px}.game-info h3{font-size:13px;margin-bottom:8px}.game-info p{font-size:12px}}.game-info strong{color:var(--text);font-weight:600}.draw-offer{background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:4px;padding:12px;margin-bottom:8px}.draw-offer p{margin:0 0 10px;font-weight:600;color:var(--warning-text);font-size:14px}.draw-offer-sent{background:var(--info-bg);border:1px solid var(--info-border);border-radius:4px;padding:12px;text-align:center;margin-bottom:8px}.draw-offer-sent p{margin:0;color:var(--info-text);font-weight:500;font-size:13px}.move-history{background:var(--surface);padding:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--r-md)}.move-history h3{margin:0 0 var(--space-3);font-size:.8125rem;font-weight:700;color:var(--text);border-bottom:1px solid var(--line-faint);padding-bottom:var(--space-2)}.history-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-1);margin-bottom:var(--space-3)}.history-controls button{padding:var(--space-2);background:var(--surface-2);color:var(--text);border:1px solid var(--line-soft);border-radius:var(--r-sm);cursor:pointer;font-size:.875rem;min-height:32px;display:flex;align-items:center;justify-content:center}.history-controls button:hover:not(:disabled){background:var(--surface-4);border-color:var(--muted-2)}.history-controls button:disabled{color:var(--muted-2);border-color:var(--border);cursor:not-allowed}.moves-list{border-top:1px solid var(--line-faint);padding-top:var(--space-2);max-height:220px;overflow-y:auto}.move-row{display:grid;grid-template-columns:1.75rem 1fr 1fr;gap:2px;align-items:stretch}.move-number{display:flex;align-items:center;justify-content:flex-end;padding-right:var(--space-1);font-size:.6875rem;color:var(--muted-2);font-weight:600}.move-button{padding:var(--space-1) var(--space-2);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);cursor:pointer;text-align:center;color:var(--text);font-weight:600;font-size:.75rem;min-height:28px}.move-button.current{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.game-info{background:var(--surface);padding:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--r-md)}.layout-2col-sidebar .panel{border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.layout-2col-sidebar .game-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.layout-2col-sidebar .game-actions .btn{width:100%;max-width:none}.layout-2col-sidebar .game-actions .resign-btn,.layout-2col-sidebar .game-actions .offer-draw-btn,.layout-2col-sidebar .game-actions .draw-offer,.layout-2col-sidebar .game-actions .draw-offer-sent{grid-column:span 2}.error{color:var(--danger-text);padding:12px;background-color:var(--danger-bg);border-radius:4px;border:1px solid var(--danger-border);font-size:14px}.no-moves{text-align:center;color:var(--muted-2);font-size:.8125rem;margin:0;padding:var(--space-3) 0}.move-button:hover{background:var(--surface-3);border-color:var(--line)}.history-controls button:hover:not(:disabled){background:var(--surface-3);border-color:var(--line)}.history-controls button:disabled{color:var(--muted-2);border-color:var(--line-faint);cursor:not-allowed;opacity:.5}.promotion-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.promotion-dialog{background:var(--surface);border:2px solid var(--border);border-radius:8px;padding:24px;text-align:center;box-shadow:0 10px 40px #0000004d}.promotion-dialog h3{color:var(--text);margin-bottom:20px;font-size:18px}.promotion-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.promotion-btn{padding:20px;background:var(--surface-2);border:2px solid var(--border-2);border-radius:8px;cursor:pointer;transition:all .2s;color:var(--text);display:flex;align-items:center;justify-content:center;font-size:48px;min-width:80px;min-height:80px}.promotion-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);transform:scale(1.05)}.promotion-btn:active{transform:scale(.95)}@media (max-width: 768px){.game-content{grid-template-columns:1fr}.history-controls{grid-template-columns:repeat(4,36px);justify-content:center;width:fit-content;margin-inline:auto}.promotion-dialog{padding:20px;width:90vw;max-width:300px}.promotion-options{grid-template-columns:repeat(2,1fr);gap:10px}.promotion-btn{padding:16px;font-size:36px;min-width:70px;min-height:70px}}@media (max-width: 860px){.game-page .oc-head,.game-page .page-header{font-size:.95rem}.game-page .oc-head__title,.game-page .page-header h1{font-size:.95rem;line-height:1.3}.game-page .oc-layout-board__main,.game-page .layout-2col-board{gap:var(--space-1)}.game-page .chess-board-wrapper{width:100%;max-width:100%;margin-inline:0}.game-page .game-over-overlay{display:none}.game-page .player-info{font-size:.8125rem;max-width:100%;box-sizing:border-box}.game-page .player-time{font-size:.9375rem;font-variant-numeric:tabular-nums}.game-page .turn-indicator{padding:8px 10px;font-size:.8125rem;border-radius:var(--r-md);margin-top:0}.game-page .oc-layout-board__side,.game-page .layout-2col-sidebar{gap:var(--space-2)}.game-page .oc-layout-board__side .panel,.game-page .layout-2col-sidebar .panel{padding:var(--oc-block-pad, var(--space-3))}.game-page .move-history h3,.game-page .game-info h3{margin-bottom:var(--space-2);padding-bottom:var(--space-1);font-size:.75rem}.game-page .history-controls button{min-height:28px;padding:var(--space-1);font-size:.75rem}.game-page .moves-list{max-height:108px;padding-top:var(--space-1)}.game-page .move-number{font-size:.65rem;padding-right:2px;color:var(--muted-2)}.game-page .move-button{min-height:24px;min-width:2.25rem;width:auto;padding:2px 6px;font-size:.6875rem}.game-page .oc-layout-board__side .game-info,.game-page .layout-2col-sidebar .game-info{display:none}.game-page .oc-layout-board__side .game-actions,.game-page .layout-2col-sidebar .game-actions{grid-template-columns:1fr 1fr;gap:var(--space-1)}.game-page .oc-layout-board__side .game-actions .btn,.game-page .layout-2col-sidebar .game-actions .btn{font-size:.8125rem;padding:8px 10px}}.game-analysis-container{max-width:1200px;margin:0 auto;padding:20px;min-height:100vh;background:var(--bg)}.game-analysis-header{background:var(--surface);padding:20px;border-bottom:1px solid var(--border);margin-bottom:24px;border-radius:4px}.game-analysis-header h1{margin:0 0 12px;font-size:28px;font-weight:600;color:var(--text)}.game-info{display:flex;color:var(--muted);font-size:14px}.error-message{background:var(--danger-bg);color:var(--danger-text);padding:12px 16px;border-radius:4px;border:1px solid var(--danger-border);margin-bottom:20px}.analysis-start{background:var(--surface);padding:40px 20px;text-align:center;border-radius:4px;border:1px solid var(--border)}.analysis-start p{color:var(--muted);font-size:16px;margin-bottom:20px}.analyze-btn{padding:12px 32px;background:var(--accent);color:var(--accent-contrast);border:none;border-radius:4px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s;min-height:48px;min-width:200px}.analyze-btn:hover:not(:disabled){opacity:.9;transform:translateY(-2px)}.analyze-btn:disabled{opacity:.6;cursor:not-allowed}.analysis-in-progress{background:var(--surface);padding:32px 20px;border-radius:4px;border:1px solid var(--border);text-align:center;display:flex;flex-direction:column;align-items:center}.analysis-in-progress h3{margin:0 0 24px;font-size:20px;font-weight:600;color:var(--text)}.analysis-board{position:relative;display:flex;justify-content:center;align-items:center;width:100%;max-width:800px;margin:0 auto 24px;touch-action:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.analysis-progress-info{max-width:500px;margin:0 auto}.current-move{font-size:18px;font-weight:600;color:var(--accent);margin-bottom:16px;font-family:Courier New,monospace}.progress-bar{width:100%;height:24px;background:var(--bg);border-radius:12px;overflow:hidden;margin-bottom:12px;border:1px solid var(--border)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));transition:width .3s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:8px}.progress-text{font-size:14px;color:var(--muted);font-weight:500}.analysis-results{display:flex;flex-direction:column}.analysis-board-section{background:var(--surface);padding:24px;border-radius:4px;border:1px solid var(--border);overflow:hidden}.analysis-result-board{position:relative;width:100%;max-width:800px;margin:0 auto 16px;touch-action:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.analysis-board-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}.analysis-nav-btn{padding:8px 12px;background:var(--surface-2);color:var(--text);border:1px solid var(--border-2);border-radius:4px;cursor:pointer;font-size:18px;font-weight:500;transition:all .2s;display:flex;align-items:center;justify-content:center;min-height:40px}.analysis-nav-btn:hover:not(:disabled){background:var(--surface-4);border-color:var(--muted-2)}.analysis-nav-btn:disabled{color:var(--muted-2);border-color:var(--border);cursor:not-allowed}.accuracy-summary{background:var(--surface);padding:20px;border-radius:4px;border:1px solid var(--border);max-width:1200px}.accuracy-summary h3{margin:0 0 16px;font-size:18px;font-weight:600;color:var(--text)}.accuracy-cards{display:grid;grid-template-columns:1fr 1fr}.accuracy-card{display:flex;flex-direction:column;padding:12px;background:var(--surface-2);border-radius:4px}.accuracy-player-header{display:flex;align-items:center;font-size:14px;color:var(--muted)}.accuracy-player-name{font-size:16px;font-weight:600;color:var(--text)}.accuracy-percent{font-size:24px;font-weight:600;color:var(--text)}.accuracy-details{display:flex;font-size:12px;color:var(--muted)}.moves-analysis{background:var(--surface);padding:20px;border-radius:4px;border:1px solid var(--border)}.eval-chart{padding:16px;--chart-line: var(--accent);--chart-baseline: var(--muted-2);--chart-guide: var(--border);--chart-phase: var(--muted);--chart-label: var(--muted);--chart-pos-area: var(--surface-2);--chart-neg-area: var(--surface-4);--chart-cursor: var(--accent);--chart-tooltip-bg: var(--surface-2);--chart-tooltip-border: var(--border)}.eval-chart-header{display:flex;gap:8px;align-items:baseline;margin-bottom:10px;font-size:14px;font-weight:600;color:var(--text)}.eval-chart-subtitle{font-size:12px;color:var(--muted);font-weight:500}.eval-chart-container{position:relative;width:100%;height:160px;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.04),transparent 55%),linear-gradient(180deg,#ffffff0a,#0000);border-radius:6px;overflow:hidden;border:0}.eval-chart-svg{width:100%;height:100%;display:block;cursor:pointer}.eval-chart-baseline{stroke:var(--chart-baseline);stroke-width:1;stroke-dasharray:4 4}.eval-chart-guide{stroke:var(--chart-guide);stroke-width:1}.eval-chart-phase-line{stroke:var(--chart-phase);stroke-width:1}.eval-chart-area{stroke:none;opacity:.9}.eval-chart-area-pos{fill:var(--chart-pos-area)}.eval-chart-area-neg{fill:var(--chart-neg-area)}.eval-chart-line{fill:none;stroke:var(--chart-line);stroke-width:1;stroke-linejoin:round;stroke-linecap:round;opacity:.7;filter:drop-shadow(0 1px 2px var(--chart-line))}.eval-chart-cursor{stroke:var(--chart-cursor);stroke-width:1;opacity:.6}.eval-chart-tick{fill:var(--muted);font-size:10px;font-weight:600}.eval-chart-tooltip{position:absolute;top:8px;transform:translate(-50%);background:var(--chart-tooltip-bg);border:1px solid var(--chart-tooltip-border);border-radius:4px;padding:6px 8px;font-size:11px;color:var(--text);white-space:nowrap;pointer-events:none;box-shadow:0 4px 10px #00000026}.eval-chart-phase-label{position:absolute;top:8px;transform:translate(8px);transform-origin:left center;writing-mode:vertical-rl;text-orientation:mixed;font-size:9px;font-weight:600;color:var(--chart-label);text-transform:uppercase;letter-spacing:.04em;pointer-events:none}.eval-chart-phase-opening{left:0;transform:translate(8px)}.eval-chart-desktop{width:100%;max-width:800px}.eval-chart-mobile{display:none}zz .moves-analysis h3{margin:0 0 16px;font-size:18px;font-weight:600;color:var(--text)}.moves-table{border:1px solid var(--border);border-radius:4px;overflow-y:auto;overflow-x:hidden;width:100%;max-height:460px;scroll-behavior:smooth;box-sizing:border-box}.table-header{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:0;background:var(--surface-2);padding:6px 4px;font-weight:600;color:var(--text);font-size:11px;border-bottom:2px solid var(--border);position:sticky;top:0;z-index:10;box-sizing:border-box;width:100%}.table-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:0;padding:6px 4px;border-bottom:1px solid var(--border);color:var(--text);font-size:11px;cursor:pointer;transition:all .15s;align-items:center;box-sizing:border-box;width:100%}.table-row:hover{background:var(--surface-3)}.table-row.selected{background:var(--accent-bg);border-left:3px solid var(--accent);padding-left:5px}.table-row.blunder{background:#ef44441a}.table-row.blunder:hover{background:#ef444426}.table-row.mistake{background:#f973161a}.table-row.mistake:hover{background:#f9731626}.table-row.inaccuracy{background:#eab30814}.table-row.inaccuracy:hover{background:#eab3081f}.col-move{font-weight:600;color:var(--text);text-align:left;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.col-eval{text-align:right;font-weight:600;color:var(--text);font-size:11px;padding:0 4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit}.col-type{text-align:center;font-weight:600;color:var(--text);font-size:12px}.col-best{text-align:right;font-weight:600;color:var(--text);font-size:11px;padding:0 4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.game-analysis-container{padding:0}.game-analysis-header{margin:0 12px 24px;padding:16px 12px}.analysis-start,.analysis-in-progress{margin:0 12px}.moves-analysis{padding:var(--oc-block-pad) 0}.moves-analysis h3{padding:0 var(--oc-block-pad)}.accuracy-summary{margin-top:var(--space-6);padding:var(--oc-block-pad) 0}.accuracy-summary h3{padding:0 var(--oc-block-pad)}.accuracy-cards{grid-template-columns:1fr;padding:0 var(--oc-block-pad)}.accuracy-card{padding:12px}.accuracy-player-name{font-size:14px}.accuracy-percent{font-size:20px}.analysis-board{max-width:100%}.analysis-in-progress h3{font-size:18px}.current-move{font-size:16px}.analysis-result-board{width:100vw;max-width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-bottom:12px;margin-top:0}.analysis-board-section{padding:0;border:none;border-radius:0;background:transparent;margin:0}.accuracy-nav-btn{flex:1 1 0;min-width:0;padding:6px 4px;font-size:12px;overflow:hidden}.moves-table{overflow-y:auto;overflow-x:auto;max-height:400px}.table-header,.table-row{grid-template-columns:1fr 1fr 1fr 1fr;padding:6px 4px}.col-move{word-break:break-word}.eval-chart-mobile{display:block;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);border-radius:0;border-left:none;border-right:none}}@media (max-width: 1200px){.eval-chart-desktop{display:none}.eval-chart-mobile{display:block}}.invite-container{max-width:600px;margin:0 auto;padding:20px}.invite-card{background:var(--surface);border:1px solid var(--border);padding:20px;border-radius:4px}.invite-card h2{margin:0 0 12px;font-size:20px}.invite-card p{margin:6px 0;color:var(--text)}.invite-actions{margin-top:16px}.invite-actions button{padding:12px 16px;background:var(--accent);color:var(--accent-contrast);border:none;border-radius:4px;cursor:pointer;font-weight:500}.login-link{color:var(--text);text-decoration:none;font-weight:500}.login-link:hover{text-decoration:underline}@media (max-width: 600px){.invite-container{padding:12px}.invite-card{padding:16px}}.profile-content>.page-section{padding-top:var(--gap-section);border-top:var(--rule) solid var(--line-faint);margin-top:var(--gap-section)}.profile-content>.page-section:first-of-type{margin-top:var(--gap-section)}.bio-section{padding:0;border-radius:0;border:none;background:transparent}.edit-section{display:flex;flex-direction:column;gap:var(--space-3)}.profile-preferences{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) 0 0;border:none;border-top:var(--rule) solid var(--line-faint);border-radius:0;background:transparent}.pref-row{display:flex;align-items:center;gap:var(--space-3);font-size:.875rem;cursor:pointer}.piece-set-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:.875rem}.piece-set-row span{margin-right:var(--space-2);color:var(--muted)}.avatar-selector{display:flex;flex-direction:column;gap:var(--space-2)}.avatar-selector-label,.section-label{font-size:.8125rem;font-weight:700;color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:var(--space-2)}.avatar-option{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--trans-fast);border:2px solid transparent}.avatar-option:hover{transform:scale(1.08);border-color:rgb(var(--accent-rgb) / .4)}.avatar-option.selected{border-color:var(--accent);box-shadow:var(--focus-ring)}.avatar-option .avatar-icon{font-size:1.75rem;color:#fff;text-shadow:0 2px 4px rgb(0 0 0 / .2)}.board-theme-section{display:flex;flex-direction:column;gap:var(--space-2)}.board-theme-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--space-2)}.theme-option{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--r-md);border:2px solid var(--line-soft);background:var(--surface-2);cursor:pointer;transition:all var(--trans-fast)}.theme-option:hover{border-color:rgb(var(--accent-rgb) / .35);transform:translateY(-1px)}.theme-option.selected{border-color:var(--accent);background:rgb(var(--accent-rgb) / .06)}.theme-preview{display:grid;grid-template-columns:1fr 1fr;width:52px;height:52px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line-soft)}.theme-option span{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:capitalize}.edit-actions{display:flex;gap:var(--space-2)}.edit-actions .btn{flex:1}.rating-chart-container{margin-bottom:var(--gap-section)}.rating-chart-container h3{margin:0 0 var(--space-4);font-size:.72rem;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-ink)}.rating-chart-loading,.rating-chart-error,.rating-chart-empty{text-align:center;color:var(--muted);padding:var(--space-6)}.rating-chart-error{color:var(--danger-text)}.bio-section{padding:var(--space-4);border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--surface-2)}.bio-section p{margin:0;line-height:1.6;color:var(--muted);font-size:.875rem}.games-section-header{margin-bottom:var(--space-4)}.games-list{display:flex;flex-direction:column;gap:var(--gap-card)}.game-players{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem}.player{font-weight:600;color:var(--text)}.vs{font-weight:700;color:var(--muted-2);text-transform:uppercase;font-size:.68rem;letter-spacing:.06em;font-family:var(--font-mono)}.game-details{display:flex;align-items:center;gap:var(--space-2);font-size:.8125rem;flex-wrap:wrap}.time-control,.status{color:var(--muted)}.status{text-transform:uppercase;font-size:.68rem;font-weight:700;font-family:var(--font-mono);letter-spacing:.04em}.result{font-weight:800;color:var(--text)}.date{color:var(--muted-2);font-size:.75rem;margin-left:auto}.profile-back{margin-top:var(--gap-section)}.friends-page .tabs{margin-bottom:var(--space-5)}.friends-content{min-height:120px}.puzzle-page-head__meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}.puzzle-streak-badge{background:var(--accent);color:var(--accent-contrast);padding:.25rem .75rem;border-radius:var(--r-pill);font-size:.8125rem;font-weight:700;white-space:nowrap;flex-shrink:0}.puzzle-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.puzzle-share-btn{width:32px;height:32px;border-radius:4px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all .2s ease}.puzzle-share-btn:hover{background:var(--surface-3)}.share-copied-label{font-size:12px;color:var(--success-text);background:var(--success-bg);border:1px solid var(--success-border);border-radius:4px;padding:2px 8px;white-space:nowrap}.lesson-progress-indicator{display:flex;flex-direction:column;gap:4px;min-width:88px;max-width:120px}.progress-text{font-size:12px;font-weight:600;color:var(--accent);text-align:center}.progress-bar{width:100%;height:6px;background:var(--surface-elevated);border-radius:3px;overflow:hidden;border:1px solid var(--border)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent) 0%,#8b5cf6 100%);border-radius:3px;transition:width .5s cubic-bezier(.34,1.56,.64,1)}.puzzle-board-meta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-2)}.puzzle-board-meta__item{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--r-pill);border:1px solid var(--line-soft);background:var(--surface-2);font-size:.8125rem;font-weight:700;color:var(--text)}.puzzle-board-meta__user{font-family:var(--font-mono)}.puzzle-board-meta__user .puzzle-elo-change{font-size:.75rem;margin-left:2px}.puzzle-panel__label{margin:0 0 var(--space-2);font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.puzzle-tags,.puzzle-elo-history-panel{display:flex;flex-direction:column;gap:var(--space-2)}.puzzle-elo-history-label{font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.puzzle-rating-filter .filter-group{display:flex;flex-direction:column;gap:var(--space-2)}.puzzle-rating-filter label{font-size:.8125rem;color:var(--muted)}.puzzle-message{padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);text-align:center;font-weight:600;font-size:.875rem;width:100%;box-sizing:border-box;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes kingMatePulse{0%{box-shadow:0 0 #e74c3c80;transform:scale(1)}50%{box-shadow:0 0 0 10px #e74c3c00;transform:scale(1.03)}to{box-shadow:0 0 #e74c3c00;transform:scale(1)}}.puzzle-message.correct{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.puzzle-message.wrong{background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border)}.puzzle-message.complete{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border)}.puzzle-themes{display:flex;flex-wrap:wrap;gap:var(--space-2)}.puzzle-theme-tag{background:var(--surface-2);color:var(--muted);padding:.25rem .625rem;border-radius:var(--r-pill);font-size:.75rem;font-weight:600;border:1px solid var(--line-faint)}.puzzle-solved-badge{padding:var(--space-2);background:var(--success-bg);color:var(--success-text);border-radius:var(--r-sm);text-align:center;font-weight:600;font-size:.8125rem;border:1px solid var(--success-border)}.puzzle-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:0}.puzzle-next-btn{grid-column:1 / -1;min-height:40px;font-weight:700}.puzzle-actions .btn-sm{min-width:0;min-height:36px;padding-left:var(--space-2);padding-right:var(--space-2);font-size:.8125rem}.puzzle-stats{display:flex;flex-direction:column;gap:12px}.stats-row{display:grid;grid-template-columns:1fr;gap:12px;text-align:center}.stat{display:flex;flex-direction:column;gap:4px;padding:8px;background:var(--hover-bg);border-radius:4px}.stat-value{font-size:1.5rem;font-weight:700;color:var(--accent)}.stat-label{font-size:.75rem;color:var(--text-secondary);font-weight:500}.puzzle-elo-change{font-size:.8rem;font-weight:600}.puzzle-elo-change.positive{color:var(--success)}.puzzle-elo-change.negative{color:var(--error-text)}.puzzle-elo-history{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.puzzle-elo-pill{padding:.25rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid transparent;min-width:44px;text-align:center}.puzzle-elo-pill.positive{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.puzzle-elo-pill.neutral{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.puzzle-elo-pill.negative{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.puzzle-difficulty,.filter-group{display:flex;flex-direction:column;gap:12px}.filter-group label{color:var(--text);font-size:.85rem;font-weight:500}.filter-group input[type=range]{width:100%;height:4px;background:var(--border);border-radius:2px;outline:none;-webkit-appearance:none;appearance:none}.filter-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--accent);cursor:pointer;border-radius:50%;border:none;margin-top:-6px}.filter-group input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--accent);cursor:pointer;border-radius:50%;border:none}.puzzle-loading,.puzzle-error{text-align:center;padding:2rem;color:var(--text-secondary);font-size:1rem}.puzzle-moves-history{display:flex;flex-direction:column;gap:var(--space-2)}.moves-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.moves-controls button{background:var(--surface-2);color:var(--text);border:1px solid var(--line-soft);border-radius:var(--r-sm);cursor:pointer;font-size:1rem;font-weight:500;transition:background-color var(--trans-fast),border-color var(--trans-fast);display:flex;align-items:center;justify-content:center;min-height:36px;padding:var(--space-2)}.moves-controls button:hover:not(:disabled){background:var(--surface-4);border-color:var(--muted-2)}.moves-controls button:disabled{color:var(--muted-2);border-color:var(--border);cursor:not-allowed;opacity:.5}.moves-list{border-top:1px solid var(--line-faint);padding-top:var(--space-2);max-height:160px;overflow-y:auto}.puzzle-moves-history .moves-grid{display:flex;flex-direction:column;gap:2px}.puzzle-moves-history .move-row{display:grid;grid-template-columns:1.75rem 1fr 1fr;gap:4px;align-items:stretch}.puzzle-moves-history .move-number{display:flex;align-items:center;justify-content:flex-end;padding-right:4px;color:var(--muted-2);font-size:.75rem;font-weight:600}.puzzle-moves-history .move-empty{display:flex;align-items:center;justify-content:center;min-height:28px;color:var(--muted-2);font-size:.75rem}.puzzle-moves-history .move-button{padding:6px 8px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);cursor:pointer;text-align:center;transition:all .2s;color:var(--text);font-weight:600;font-size:.75rem;min-height:28px}.puzzle-moves-history .move-button:hover{background:var(--surface-4);border-color:var(--muted-2)}.puzzle-moves-history .move-button.current{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);font-weight:700}.moves-grid{display:flex;flex-direction:column;gap:2px}.move-row{display:grid;grid-template-columns:1.75rem 1fr 1fr;gap:4px;align-items:stretch}.move-number{color:var(--text-secondary);font-size:13px;font-weight:600;text-align:right;padding-right:4px}.move-button{padding:8px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:3px;cursor:pointer;text-align:center;transition:all .2s;color:var(--text);font-weight:500;font-size:13px}.move-button:hover{background:var(--surface-4);border-color:var(--muted-2)}.move-button.current{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);font-weight:600}@media (max-width: 768px){.puzzle-page-head{margin-bottom:var(--space-3)}.puzzle-page-head__meta{width:100%;justify-content:space-between}.puzzle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.puzzle-actions .btn-sm:last-of-type{grid-column:1 / -1}}@media (max-width: 600px){.puzzle-header h3{font-size:1rem}.puzzle-streak-badge{padding:.2rem .6rem;font-size:.85rem}}.lesson-completion-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#3b82f61a,#8b5cf61a);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lesson-completion-card{background:var(--surface);border-radius:20px;padding:48px 40px;max-width:500px;width:90%;box-shadow:0 20px 60px #0000004d;position:relative;overflow:hidden;border:2px solid var(--accent);animation:slideUp .5s cubic-bezier(.34,1.56,.64,1)}.completion-confetti{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.confetti-piece{position:absolute;display:block;width:10px;height:10px;background:var(--accent);opacity:.7;border-radius:50%;animation:confettiFall 3s ease-in forwards}.confetti-piece:nth-child(1){left:10%;animation-delay:0s;animation-duration:2.5s;background:#3b82f6}.confetti-piece:nth-child(2){left:20%;animation-delay:.1s;animation-duration:2.7s;background:#8b5cf6}.confetti-piece:nth-child(3){left:30%;animation-delay:.2s;animation-duration:2.4s;background:#ec4899}.confetti-piece:nth-child(4){left:40%;animation-delay:.3s;animation-duration:2.6s;background:#f59e0b}.confetti-piece:nth-child(5){left:50%;animation-delay:.4s;animation-duration:2.5s;background:#10b981}.confetti-piece:nth-child(6){left:60%;animation-delay:.5s;animation-duration:2.7s;background:#06b6d4}.confetti-piece:nth-child(7){left:70%;animation-delay:.6s;animation-duration:2.4s;background:#3b82f6}.confetti-piece:nth-child(8){left:80%;animation-delay:.7s;animation-duration:2.6s;background:#8b5cf6}.confetti-piece:nth-child(9){left:90%;animation-delay:.8s;animation-duration:2.5s;background:#ec4899}.confetti-piece:nth-child(10){left:15%;animation-delay:.9s;animation-duration:2.7s;background:#f59e0b}.confetti-piece:nth-child(11){left:25%;animation-delay:1s;animation-duration:2.4s;background:#10b981}.confetti-piece:nth-child(12){left:35%;animation-delay:1.1s;animation-duration:2.6s;background:#06b6d4}.confetti-piece:nth-child(13){left:45%;animation-delay:1.2s;animation-duration:2.5s;background:#3b82f6}.confetti-piece:nth-child(14){left:55%;animation-delay:1.3s;animation-duration:2.7s;background:#8b5cf6}.confetti-piece:nth-child(15){left:65%;animation-delay:1.4s;animation-duration:2.4s;background:#ec4899}.confetti-piece:nth-child(16){left:75%;animation-delay:1.5s;animation-duration:2.6s;background:#f59e0b}.confetti-piece:nth-child(17){left:85%;animation-delay:1.6s;animation-duration:2.5s;background:#10b981}.confetti-piece:nth-child(18){left:5%;animation-delay:1.7s;animation-duration:2.7s;background:#06b6d4}.confetti-piece:nth-child(19){left:22%;animation-delay:1.8s;animation-duration:2.4s;background:#3b82f6}.confetti-piece:nth-child(20){left:38%;animation-delay:1.9s;animation-duration:2.6s;background:#8b5cf6}.confetti-piece:nth-child(21){left:52%;animation-delay:2s;animation-duration:2.5s;background:#ec4899}.confetti-piece:nth-child(22){left:68%;animation-delay:2.1s;animation-duration:2.7s;background:#f59e0b}.confetti-piece:nth-child(23){left:82%;animation-delay:2.2s;animation-duration:2.4s;background:#10b981}.confetti-piece:nth-child(24){left:12%;animation-delay:2.3s;animation-duration:2.6s;background:#06b6d4}.confetti-piece:nth-child(25){left:32%;animation-delay:2.4s;animation-duration:2.5s;background:#3b82f6}.confetti-piece:nth-child(26){left:48%;animation-delay:2.5s;animation-duration:2.7s;background:#8b5cf6}.confetti-piece:nth-child(27){left:62%;animation-delay:2.6s;animation-duration:2.4s;background:#ec4899}.confetti-piece:nth-child(28){left:78%;animation-delay:2.7s;animation-duration:2.6s;background:#f59e0b}.confetti-piece:nth-child(29){left:88%;animation-delay:2.8s;animation-duration:2.5s;background:#10b981}.confetti-piece:nth-child(30){left:18%;animation-delay:2.9s;animation-duration:2.7s;background:#06b6d4}@keyframes confettiFall{to{transform:translateY(100vh) rotate(720deg);opacity:0}}.completion-content{position:relative;z-index:2;text-align:center}.completion-title{font-size:42px;font-weight:700;margin:0 0 8px;color:var(--text);animation:bounce .6s cubic-bezier(.34,1.56,.64,1)}@keyframes bounce{0%{transform:scale(.8) translateY(-20px);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1) translateY(0);opacity:1}}.completion-subtitle{font-size:16px;color:var(--text-secondary);margin:0 0 32px}.completion-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px}.stat-box{background:var(--surface-elevated);border-radius:12px;padding:16px;border:1px solid var(--border)}.stat-value{font-size:28px;font-weight:700;color:var(--accent);margin-bottom:4px}.stat-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.completion-actions{display:flex;flex-direction:column;gap:12px}.completion-actions .btn{width:100%}@media (max-width: 600px){.lesson-completion-card{padding:32px 24px;margin:16px}.completion-title{font-size:32px}.completion-subtitle{font-size:14px;margin-bottom:24px}.completion-stats{gap:12px;margin-bottom:24px}.stat-box{padding:12px}.stat-value{font-size:22px}.stat-label{font-size:11px}}.puzzle-hub .page-title{margin-bottom:var(--space-2)}.puzzle-hub-guest-note{margin-top:var(--space-4);color:var(--muted);font-size:.875rem}.cc-card--puzzle .puzzle-header-title,.cc-card--featured .puzzle-header-title{font-size:.9375rem}.cc-card--puzzle .daily-puzzle-widget,.cc-card--featured .daily-puzzle-widget{gap:var(--space-3)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:8px;max-width:700px;max-height:80vh;width:100%;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:24px;font-weight:600;color:var(--text)}.modal-close{flex-shrink:0;background:none;border:none;color:var(--muted);font-size:24px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:var(--surface-2);color:var(--text)}.modal-body{flex:1;overflow-y:auto;padding:24px;color:var(--text);line-height:1.6}.modal-body p{margin:0 0 16px;font-size:15px}.modal-body p:last-child{margin-bottom:0}.modal-body strong{color:var(--text);font-weight:600}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border)}.modal-btn-close{padding:10px 20px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s}.modal-btn-close:hover{background:var(--surface-3);border-color:var(--muted-2)}@media (max-width: 768px){.modal-overlay{padding:16px}.modal-content{max-height:90vh}.modal-header{padding:16px}.modal-header h2{font-size:20px}.modal-body{padding:16px}.modal-footer{padding:12px 16px}}.modal-list-item{margin:8px 0 8px 20px;font-size:14px;line-height:1.6;color:var(--text);list-style-type:disc}.modal-section-title{margin:16px 0 8px;font-weight:600;font-size:14px;color:var(--accent)}.modal-body strong{font-weight:600;color:var(--accent)}.modal-body em{font-style:italic;color:var(--muted)}.education-page{max-width:var(--container)}.education-header{margin-bottom:var(--gap-section)}.education-header .page-subtitle{margin-bottom:0}.header-stats{display:flex;gap:var(--space-3);flex-shrink:0;flex-wrap:wrap}.stat-badge{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-md);text-align:center;min-width:72px}.badge-value{font-size:1.25rem;font-weight:800;font-family:var(--font-display);color:var(--accent-ink)}.badge-label{font-size:.68rem;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-family:var(--font-mono)}.categories-grid{margin-bottom:var(--space-8)}.category-card{background:transparent;border:none;border-bottom:var(--rule) solid var(--line-faint);border-radius:0;padding:var(--space-4) 0;cursor:pointer;transition:background-color var(--trans-fast);display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:var(--space-2) var(--space-4);text-align:left;box-shadow:none;min-width:0;max-width:100%;box-sizing:border-box;align-items:center}.category-card:last-child{border-bottom:none}.category-card:hover{border-color:var(--line-faint);box-shadow:none;transform:none;background:rgb(var(--accent-rgb) / .03)}.category-icon{font-size:2rem;line-height:1;grid-row:1 / span 2}.category-card h3{margin:0;font-size:1rem;font-weight:700;color:var(--text);grid-column:2}.category-card p{margin:0;color:var(--muted);font-size:.875rem;line-height:1.5;grid-column:2;grid-row:2}.category-meta{display:none}.category-btn,.card-btn{grid-column:3;grid-row:1 / span 2;margin-top:0;width:auto;flex-shrink:0}.category-header{padding:0;margin-bottom:var(--gap-section);background:transparent;border:none;border-radius:0;box-shadow:none;min-width:0;max-width:100%;overflow:visible;box-sizing:border-box}.category-header h1{margin:0 0 var(--space-2);font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:700;font-family:var(--font-display);color:var(--text);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.category-header .icon{font-size:1.5rem;line-height:1}.category-header p{margin:0;color:var(--muted);font-size:.8125rem;line-height:1.45;max-width:52ch}.openings-panel.cc-card{padding:var(--space-2) var(--space-3)}.openings-grid{display:flex;flex-direction:column;gap:0;margin-bottom:0}.subtopic-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);cursor:pointer;transition:background-color var(--trans-fast);border-bottom:var(--rule) solid var(--line-faint);min-width:0;box-sizing:border-box}.subtopic-card:last-child{border-bottom:none}.subtopic-card:hover,.subtopic-card:focus-visible{background:rgb(var(--accent-rgb) / .04);outline:none}.subtopic-card__icon{flex-shrink:0;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;line-height:1;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-md)}.subtopic-card__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.subtopic-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-width:0}.subtopic-card__title{margin:0;font-size:.9375rem;font-weight:700;font-family:var(--font-display);color:var(--text);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subtopic-card__chips{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.subtopic-card__chip{padding:1px 6px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line-faint);font-size:.625rem;font-weight:600;color:var(--muted);white-space:nowrap}.subtopic-card__desc{margin:0;font-size:.75rem;color:var(--muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.subtopic-card__progress{display:flex;align-items:center;gap:var(--space-2);margin-top:2px}.subtopic-card__progress .progress-bar{flex:1;height:3px;background:var(--surface-3);border-radius:var(--r-pill);overflow:hidden;min-width:48px}.subtopic-card__progress .progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),rgb(var(--counter-rgb)));transition:width .3s ease;border-radius:var(--r-pill)}.subtopic-card__pct{flex-shrink:0;font-size:.625rem;font-weight:700;font-family:var(--font-mono);color:var(--muted-2);min-width:2rem;text-align:right}.subtopic-card__go{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1;color:var(--muted-2);border-radius:50%;transition:color var(--trans-fast),background-color var(--trans-fast)}.subtopic-card:hover .subtopic-card__go,.subtopic-card:focus-visible .subtopic-card__go{color:var(--accent-ink);background:rgb(var(--accent-rgb) / .08)}.card-header{display:flex;align-items:center;gap:12px}.card-header .icon{font-size:32px;line-height:1}.card-header h3{margin:0;font-size:1rem;font-weight:700;font-family:var(--font-display);color:var(--text);flex:1}.card-opening{margin:0;color:var(--muted-2);font-size:12px;font-weight:500;letter-spacing:0px}.card-description{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.card-stats{display:flex;gap:12px;font-size:13px;color:var(--muted)}.stat{display:flex;align-items:center;gap:4px}.progress-wrapper{display:flex;flex-direction:column;gap:4px;margin:8px 0}.progress-bar{height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),rgb(var(--counter-rgb)));transition:width .3s ease}.progress-text{font-size:12px;color:var(--muted-2);text-align:right}.card-btn{margin-top:auto;width:100%}.back-btn{margin-bottom:var(--space-4)}.lesson-header{padding:0;margin-bottom:var(--gap-section);background:transparent;border:none;border-radius:0;box-shadow:none;min-width:0;max-width:100%;overflow:visible;box-sizing:border-box}.lesson-header h1{margin:0 0 var(--space-3);font-size:clamp(1.125rem,3vw,1.75rem);font-weight:700;font-family:var(--font-display);color:var(--text);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.lesson-header .icon{font-size:36px}.lesson-header p{margin:0;color:var(--muted);font-size:16px}.lessons-sidebar.cc-card,.lessons-main.cc-card{min-width:0}.lessons-sidebar{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.sidebar-info{background:transparent;padding:0;border-bottom:var(--rule) solid var(--line-faint);padding-bottom:var(--space-4);margin-bottom:var(--space-1)}.sidebar-info h3{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text)}.sidebar-info p{margin:6px 0;font-size:13px;color:var(--muted)}.lessons-list{background:transparent;border:none;border-radius:0;overflow:visible;min-width:0}.lessons-list h3{margin:0 0 var(--space-3);padding:0;font-size:var(--t-sm);font-weight:700;color:var(--text);background:transparent;border-bottom:none}.lesson-item{display:flex;gap:var(--space-3);padding:var(--space-3);margin:0 calc(-1 * var(--space-1));border-bottom:var(--rule) solid var(--line-faint);border-radius:var(--r-sm);cursor:pointer;transition:background-color var(--trans-fast);border-left:3px solid transparent;align-items:flex-start;min-width:0}.lesson-item:last-child{border-bottom:none}.lesson-item:hover{background:rgb(var(--accent-rgb) / .03);border-left-color:var(--accent)}.lesson-item.active{background:rgb(var(--accent-rgb) / .05);border-left-color:var(--accent);font-weight:500}.lesson-order{flex:0 0 32px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-contrast);border-radius:50%;font-weight:600;font-size:14px;flex-shrink:0}.lesson-content h4{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--text)}.lesson-content{min-width:0}.lesson-content p{margin:0 0 8px;font-size:12px;color:var(--muted);line-height:1.4}.lesson-progress{font-size:12px;color:var(--muted-2);margin:0 0 8px}.lesson-themes{display:flex;flex-wrap:wrap;gap:4px}.theme-tag{display:inline-block;padding:2px 6px;background:var(--surface-3);color:var(--muted);font-size:11px;border-radius:3px;white-space:nowrap}.lessons-main{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.lesson-content-text{padding-top:var(--space-2);border-top:var(--rule) solid var(--line-faint)}.lesson-content-text h2{margin:0 0 var(--space-3);font-size:1.125rem;font-family:var(--font-display);font-weight:700}.lesson-action{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.mini-board-placeholder{background:var(--surface);border:2px dashed var(--border);border-radius:4px;padding:60px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:320px}.placeholder-text{font-size:48px;line-height:1;letter-spacing:8px;color:var(--muted-2)}.mini-board-card{background:transparent;padding:0;border-radius:0;border:none;display:flex;flex-direction:column;gap:var(--space-4);box-shadow:none;min-width:0;width:100%;box-sizing:border-box}.mini-board-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.mini-board-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.mini-board-subtitle{margin:4px 0 0;color:var(--muted);font-size:12px}.mini-board-board{margin:0 auto;width:fit-content;max-width:100%;position:relative}.mini-board-controls{display:flex;align-items:center;justify-content:center;gap:6px}.mini-board-btn{padding:0;width:40px;height:40px;background:var(--surface-2);color:var(--text);border:1px solid var(--border-2);border-radius:4px;cursor:pointer;font-size:18px;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.mini-board-text-btn{font-size:12px;font-weight:600;white-space:nowrap;padding:0 8px;width:auto;min-width:40px}.mini-board-btn:disabled{color:var(--muted-2);border-color:var(--border);cursor:not-allowed;opacity:.5}.mini-board-btn:hover:not(:disabled){background:var(--surface-4);border-color:var(--muted-2)}.mini-board-icon{width:16px;height:16px;fill:currentColor;display:block}.lesson-content-text{background:transparent;padding:var(--space-5) 0 0;border-radius:0;border:none;border-top:var(--rule) solid var(--line-faint);min-width:0;box-sizing:border-box}.lesson-content-text h2{margin:0 0 16px;font-size:20px;font-weight:600;color:var(--text)}.lesson-content-text p{margin:0 0 20px;color:var(--muted);font-size:15px;line-height:1.6}.lesson-action{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}@media (max-width: 768px){.education-page{padding-bottom:calc(var(--bottom-nav-height) + var(--space-4))}.education-header{gap:var(--space-4)}.header-stats{width:100%}.openings-panel.cc-card{padding:var(--space-1) var(--space-2)}.subtopic-card{gap:var(--space-2);padding:var(--space-2) var(--space-1)}.subtopic-card__head{flex-direction:column;align-items:flex-start;gap:var(--space-1)}.subtopic-card__chips{width:100%}.subtopic-card__go{width:1.5rem;height:1.5rem;font-size:1.125rem}.oc-layout-aside--lesson,.lessons-wrapper{grid-template-columns:1fr}}@media (max-width: 480px){.category-card{grid-template-columns:auto 1fr}.category-btn{grid-column:1 / -1;grid-row:auto;width:100%;margin-top:var(--space-2)}.subtopic-card__title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stat-badge{flex:1 1 calc(33% - var(--space-2));min-width:0}.mini-board-controls{flex-wrap:wrap}}.user-search .search-form{display:flex;gap:var(--gap-inline);margin-bottom:var(--space-5)}.user-search .search-form .form-input{flex:1}.search-results{list-style:none;padding:0;margin:0}.search-result-item button{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--surface-2);cursor:pointer;text-align:left;transition:all var(--trans-fast);color:inherit;font:inherit}.search-result-item button:hover{border-color:var(--line);box-shadow:var(--shadow-sm)}.search-result-item+.search-result-item{margin-top:var(--gap-inline)}.search-name{font-weight:700;flex:1}.search-rating{color:var(--muted);font-family:var(--font-mono);font-size:.8125rem}.challenge-inbox{display:flex;flex-direction:column;gap:var(--gap-card);min-width:min(320px,100%)}.challenge-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--surface-2);flex-wrap:wrap}.challenge-meta{display:block;font-size:.8125rem;color:var(--muted);margin-top:var(--space-1)}.challenge-actions{display:flex;gap:var(--gap-inline);flex-shrink:0}.header{position:sticky;top:0;z-index:200;background:color-mix(in oklab,var(--ground-2) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--text);padding:0;border-bottom:1px solid var(--line-soft);box-shadow:var(--shadow-sm)}.header-content{max-width:var(--container);margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;gap:12px;width:100%;min-width:0;min-height:var(--header-height);box-sizing:border-box}.logo{display:flex;align-items:center;gap:12px;margin:0;cursor:pointer;user-select:none;min-width:0;flex:0 1 auto;text-decoration:none;color:inherit}.brand-logo{width:40px;height:40px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgb(var(--accent-rgb) / .14),rgb(var(--accent-rgb) / .05));border:1px solid rgb(var(--accent-rgb) / .22);flex-shrink:0}.logo-icon{width:28px;height:28px;display:block}.brand-info{display:flex;flex-direction:column;gap:2px;line-height:1}.brand-title{font-family:var(--font-mono);font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.24em;color:var(--muted-2)}.logo-text,.brand-subtitle{font-family:var(--font-display);font-weight:800;font-size:1.05rem;letter-spacing:-.01em;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.language-switcher{display:flex;gap:4px;border:1px solid var(--line-soft);border-radius:var(--r-pill);overflow:hidden;background:var(--surface-2);padding:3px}.lang-toggle{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--muted);border:1px solid var(--line-soft);width:36px;height:36px;border-radius:var(--r-md);cursor:pointer;transition:all var(--trans-fast);font-size:.68rem;font-weight:800;font-family:var(--font-mono);letter-spacing:.04em}.lang-toggle:hover{background:rgb(var(--accent-rgb) / .08);color:var(--accent-ink);border-color:rgb(var(--accent-rgb) / .22)}.lang-btn{padding:6px 12px;background:transparent;color:var(--muted);border:none;border-radius:var(--r-pill);cursor:pointer;font-size:.75rem;font-weight:700;transition:all var(--trans-fast)}.lang-btn:hover{background:rgb(var(--accent-rgb) / .06);color:var(--text)}.lang-btn.active{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--shadow-sm)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--muted);border:1px solid var(--line-soft);width:36px;height:36px;border-radius:var(--r-md);cursor:pointer;transition:all var(--trans-fast)}.theme-toggle:hover{background:rgb(var(--accent-rgb) / .08);color:var(--accent-ink);border-color:rgb(var(--accent-rgb) / .22)}.theme-icon{font-size:15px;line-height:1}.logout-btn,.profile-btn{height:36px;padding:0 var(--space-3);border-radius:var(--r-sm);font-size:var(--t-xs)}.logout-btn{display:inline-flex;align-items:center;gap:4px;background:var(--surface);color:var(--muted);border:var(--rule) solid var(--line-soft);cursor:pointer;font-weight:700;transition:all var(--trans-fast)}.logout-btn:hover{background:var(--surface-hover);border-color:var(--line);color:var(--text)}.logout-btn svg{width:14px;height:14px}.profile-btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:var(--on-accent);border:var(--rule) solid var(--accent);cursor:pointer;font-weight:700;transition:all var(--trans-fast);box-shadow:var(--shadow-glow)}.profile-btn:hover{background:var(--accent-lift);border-color:var(--accent-lift)}.profile-menu-container{position:relative}.profile-avatar-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line-soft);cursor:pointer;padding:0;border-radius:50%;transition:all var(--trans-fast);flex-shrink:0;width:36px;height:36px}.profile-avatar-btn:hover{background:rgb(var(--accent-rgb) / .08);border-color:rgb(var(--accent-rgb) / .22)}.profile-avatar-btn .avatar-circle{width:30px;height:30px;font-size:10px;border:none}.profile-avatar-btn .avatar-circle .avatar-icon{font-size:14px}.profile-badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;display:flex;align-items:center;justify-content:center;line-height:1}.avatar-circle{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,rgb(var(--accent-rgb)),rgb(var(--accent-deep-rgb)));display:flex;align-items:center;justify-content:center;color:var(--on-accent);font-weight:700;font-size:11px;flex-shrink:0;border:1px solid rgb(var(--accent-rgb) / .3)}.avatar-circle .avatar-icon{font-size:16px;line-height:1}.avatar-circle img{width:100%;height:100%;border-radius:50%;object-fit:cover}.username-text{color:var(--text);font-weight:600;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.profile-dropdown{position:absolute;top:calc(100% + 8px);right:0;margin-top:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:180px;box-shadow:var(--shadow-lg);z-index:300;overflow:hidden;padding:5px;animation:slideDown .18s var(--ease-snap)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--muted);cursor:pointer;font-size:.82rem;font-weight:600;transition:all var(--trans-fast);text-align:left}.dropdown-item:hover{background:var(--surface-2);color:var(--text)}.dropdown-item svg{stroke:currentColor;flex-shrink:0;opacity:.75}.dropdown-divider{height:1px;background:var(--line-soft);margin:4px 0}.logout-item{color:var(--danger-text)}.logout-item:hover{background:var(--danger-bg);color:var(--danger-text)}.main-content{flex:1;background:transparent;padding:0;width:100%;min-width:0;overflow-x:clip}.loading{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:.95rem;font-weight:600;color:var(--muted-2);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}@media (max-width: 768px){.header-content{padding:10px 12px;gap:8px}.brand-title{display:none}.brand-subtitle,.logo-text{font-size:.95rem}.brand-logo{width:36px;height:36px}.logo-icon{width:24px;height:24px}.lang-toggle,.theme-toggle,.profile-avatar-btn{width:34px;height:34px}.profile-avatar-btn .avatar-circle{width:28px;height:28px}.profile-dropdown{right:-8px}.search-btn{display:none}}@media (max-width: 480px){.lang-toggle,.theme-toggle{width:32px;height:32px}}.header-left{display:flex;align-items:center;gap:8px;min-width:0;flex-shrink:0}.nav-desktop{display:flex;align-items:center;gap:2px;flex:1;justify-content:flex-start;min-width:0;margin-left:4px;overflow-x:auto;scrollbar-width:none}.nav-desktop::-webkit-scrollbar{display:none}.nav-link{display:flex;align-items:center;position:relative;padding:8px 12px;border-radius:var(--r-pill);color:var(--muted);font-size:.8125rem;font-weight:600;text-decoration:none;transition:all var(--trans-fast);white-space:nowrap;flex-shrink:0}.menu-toggle{display:none;background:transparent;border:1px solid var(--line-soft);border-radius:var(--r-md);width:36px;height:36px;cursor:pointer;color:var(--text)}.nav-link:hover{color:var(--accent-ink);background:rgb(var(--accent-rgb) / .04)}.nav-link.active{color:var(--text);background:rgb(var(--accent-rgb) / .08)}.search-btn{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-md);width:36px;height:36px;cursor:pointer}.nav-badge{background:var(--danger-text);color:#fff;font-size:.65rem;padding:2px 6px;border-radius:var(--r-pill)}.mobile-overlay{position:fixed;inset:0;background:light-dark(rgb(71 85 105 / .22),rgb(165 180 203 / .18));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:400}.mobile-panel{position:fixed;top:0;right:0;width:280px;height:100vh;background:var(--surface);border-left:1px solid var(--line);z-index:401;padding:80px 20px}.mobile-title{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--muted-2)}.mobile-links{display:flex;flex-direction:column;gap:6px}.mobile-item{padding:12px 14px;border-radius:var(--r-md);color:var(--muted);text-decoration:none;font-weight:600}.mobile-item.is-active,.mobile-item.active{background:rgb(var(--accent-rgb) / .08);color:var(--accent-ink)}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:150;background:color-mix(in oklab,var(--surface) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line-soft);padding:var(--space-2) var(--space-2) max(var(--space-2),env(safe-area-inset-bottom));justify-content:space-around;min-height:var(--bottom-nav-height);box-sizing:border-box}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-1) var(--space-2);font-size:.65rem;font-weight:700;color:var(--muted);text-decoration:none;text-align:center;border-radius:var(--r-md);min-width:56px}.bottom-nav-item.active{color:var(--accent-ink)}@media (max-width: 860px){.menu-toggle{display:flex;align-items:center;justify-content:center}.nav-desktop{display:none}.bottom-nav{display:flex}}:root{--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--font-body: "Manrope", system-ui, -apple-system, sans-serif;--font-display: "Unbounded", var(--font-body);--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;--ease: cubic-bezier(.23, 1, .32, 1);--ease-snap: cubic-bezier(.16, 1, .3, 1);--trans-fast: .15s var(--ease);--trans-norm: .25s var(--ease);--header-height: 72px;--bottom-nav-height: 56px;--container-full: min(1140px, calc(100vw - 32px) );--container-play: min(960px, calc(100vw - 32px) );--container-wide: min(960px, calc(100vw - 32px) );--container: min(960px, calc(100vw - 32px) );--content-col: 400px;--sidebar-col: 300px;--btn-max: 200px;--accent-rgb: 100 116 139;--accent-lift-rgb: 148 163 184;--accent-deep-rgb: 71 85 105;--accent-ink-light: #475569;--counter-rgb: 56 189 248;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--gap-page: var(--space-4);--gap-section: var(--space-5);--gap-card: var(--space-3);--gap-inline: var(--space-2);--shadow-sm: 0 1px 2px rgb(0 0 0 / .06), 0 1px 3px rgb(0 0 0 / .04);--shadow-md: 0 4px 12px rgb(0 0 0 / .08), 0 1px 4px rgb(0 0 0 / .05);--shadow-lg: 0 8px 32px rgb(0 0 0 / .1), 0 2px 8px rgb(0 0 0 / .06);--shadow-glow: 0 10px 28px rgb(var(--accent-deep-rgb) / .16)}:root[data-theme=light]{color-scheme:light;--ground: #ffffff;--ground-2: #ffffff;--ground-3: #f8fafc;--ground-4: #f1f5f9;--ground-5: #e8edf3;--ink: #1e293b;--ink-2: #475569;--ink-3: #64748b;--line: rgb(var(--accent-deep-rgb) / .16);--line-soft: rgb(var(--accent-deep-rgb) / .09);--line-faint: rgb(var(--accent-deep-rgb) / .05);--accent-ink: var(--accent-ink-light);--on-accent: #ffffff;--glow: rgb(var(--accent-rgb) / .1);--glow-soft: rgb(var(--accent-rgb) / .05);--fx-grid: rgb(var(--accent-deep-rgb) / .04);--fx-aurora: rgb(var(--accent-rgb) / .1);--fx-vignette: rgb(var(--accent-deep-rgb) / .03);--green: #256640;--green2: #24693e;--red: #b03a26;--red2: #8f2c1b;--blue: #1f5f9c;--cyan: #0e6472;--info-bg: rgb(var(--accent-rgb) / .08);--info-text: var(--accent-ink-light);--info-border: rgb(var(--accent-rgb) / .22);--success-bg: rgb(var(--counter-rgb) / .1);--success-text: var(--green);--success-border: rgb(var(--counter-rgb) / .22);--warning-bg: rgb(180 83 9 / .1);--warning-text: #9a3412;--warning-border: rgb(180 83 9 / .2);--danger-bg: rgb(176 58 38 / .1);--danger-text: var(--red);--danger-border: rgb(176 58 38 / .18);--neutral-bg: var(--ground-3);--neutral-text: var(--ink-3);--neutral-border: var(--line-soft);--shadow-sm: 0 1px 2px rgb(71 85 105 / .05);--shadow-md: 0 2px 8px rgb(71 85 105 / .07);--shadow-lg: 0 4px 16px rgb(71 85 105 / .09);--shadow-glow: 0 8px 24px rgb(var(--accent-rgb) / .14)}:root[data-theme=dark]{color-scheme:dark;--accent-rgb: 165 180 203;--accent-lift-rgb: 203 213 225;--accent-deep-rgb: 113 128 150;--accent-ink-light: #dbe4ef;--ground: #1e2533;--ground-2: #262f40;--ground-3: #2e384c;--ground-4: #364158;--ground-5: #3e4a64;--ink: #eef1f6;--ink-2: #b8c0cc;--ink-3: #949bab;--line: rgb(var(--accent-rgb) / .2);--line-soft: rgb(var(--accent-rgb) / .11);--line-faint: rgb(var(--accent-rgb) / .06);--accent-ink: rgb(var(--accent-rgb));--on-accent: #1a2230;--glow: rgb(var(--accent-rgb) / .14);--glow-soft: rgb(var(--accent-rgb) / .08);--fx-grid: rgb(var(--accent-rgb) / .035);--fx-aurora: rgb(var(--accent-rgb) / .12);--fx-vignette: transparent;--green: #5cb87a;--green2: #7dd99a;--red: #d4604a;--red2: #ff8f7d;--blue: #5b9bd5;--cyan: #64d4e0;--info-bg: rgb(var(--accent-rgb) / .08);--info-text: rgb(var(--accent-lift-rgb));--info-border: rgb(var(--accent-rgb) / .22);--success-bg: rgb(var(--counter-rgb) / .08);--success-text: var(--green);--success-border: rgb(var(--counter-rgb) / .2);--warning-bg: rgb(251 191 36 / .08);--warning-text: #fbbf24;--warning-border: rgb(251 191 36 / .2);--danger-bg: rgb(212 96 74 / .08);--danger-text: var(--red);--danger-border: rgb(212 96 74 / .15);--neutral-bg: var(--ground-3);--neutral-text: var(--ink-3);--neutral-border: var(--line-soft);--shadow-sm: 0 1px 2px rgb(15 20 30 / .28);--shadow-md: 0 4px 12px rgb(15 20 30 / .34);--shadow-lg: 0 8px 24px rgb(15 20 30 / .4);--shadow-glow: 0 0 40px rgb(var(--accent-rgb) / .08)}:root,:root[data-theme=light],:root[data-theme=dark]{--rule: 1px;--rule-heavy: 2px;--draw-soft: light-dark( rgb(var(--accent-deep-rgb) / .26), rgb(var(--accent-rgb) / .2) );--hatch: repeating-linear-gradient( 45deg, var(--draw-soft) 0 1px, transparent 1px 7px );--surface-solid: color-mix(in oklab, rgb(var(--accent-rgb)) 6%, var(--ground-2));--surface-hover: light-dark( rgb(var(--accent-rgb) / .11), rgb(var(--accent-rgb) / .06) );--surface-active: light-dark( rgb(var(--accent-rgb) / .16), rgb(var(--accent-rgb) / .09) );--rd: light-dark(rgb(176 58 38 / .16), rgb(212 96 74 / .12));--gd: rgb(var(--counter-rgb) / .15);--focus-ring-tight: 0 0 0 2px rgb(var(--accent-rgb) / .7);--track-label: .08em;--t-sm: .8125rem;--t-xs: .75rem;--t-base: .9375rem;--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--dur-2: .15s;--z-modal: 500;--z-backdrop: 400}:root,:root[data-theme=light],:root[data-theme=dark]{--bg: var(--ground);--surface: var(--ground-2);--surface-2: var(--ground-3);--surface-3: var(--ground-4);--surface-4: var(--ground-5);--text: var(--ink);--muted: var(--ink-2);--muted-2: var(--ink-3);--border: var(--line);--border-2: var(--line-soft);--accent: rgb(var(--accent-rgb));--accent-contrast: var(--on-accent);--accent-lift: rgb(var(--accent-lift-rgb));--accent-deep: rgb(var(--accent-deep-rgb));--shadow: rgb(0 0 0 / .12);--shadow-2: rgb(0 0 0 / .22);--panel-glow: var(--glow-soft);--focus-ring: 0 0 0 2px var(--ground), 0 0 0 4px rgb(var(--accent-rgb) / .55)}:root{font-family:var(--font-body);line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth;overflow-x:clip;max-width:100%}body{margin:0;min-height:100vh;min-height:100dvh;font-family:var(--font-body);color:var(--text);overflow-x:clip;max-width:100%;min-width:0;background:var(--bg);position:relative}body:after{display:none}#root{position:relative;z-index:1;overflow-x:clip;max-width:100%;min-width:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;line-height:1.15;color:var(--text)}a{color:inherit;font-weight:inherit;text-decoration:none;transition:color var(--trans-fast)}a:hover{color:var(--accent-ink)}a.link:hover,.nav-link:hover,.text-link:hover{text-decoration:none}code,pre,.mono{font-family:var(--font-mono)}input,select,textarea,button{font-family:inherit}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:none;box-shadow:var(--focus-ring)}a.link,.text-link{color:var(--accent-ink);font-weight:600;text-decoration:none;transition:color var(--trans-fast)}a.link:hover,.text-link:hover{color:var(--accent-lift)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);padding:0;border:none;background:transparent;color:var(--accent-ink);font-size:var(--t-sm);font-weight:600;cursor:pointer;text-decoration:none;transition:color var(--trans-fast)}.back-link:hover{color:var(--accent-lift)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);border:var(--rule) solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--muted);font-family:var(--font-body);font-size:var(--t-xs);font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out-quart),border-color var(--dur-2) var(--ease-out-quart),color var(--dur-2) var(--ease-out-quart),transform var(--dur-2) var(--ease-out-quart)}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn-primary,.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-glow)}.btn-primary:hover:not(:disabled),.btn--primary:hover:not(:disabled){background:var(--accent-lift);border-color:var(--accent-lift)}.btn-secondary,.btn--secondary{background:var(--surface);border-color:var(--line);color:var(--text)}.btn-secondary:hover:not(:disabled),.btn--secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent-deep);color:var(--text)}.btn-ghost,.btn--ghost{color:var(--muted)}.btn-ghost:hover:not(:disabled),.btn--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--accent-ink)}.btn-danger,.btn--danger{background:var(--danger-bg);border-color:var(--rd);color:var(--danger-text)}.btn-danger:hover:not(:disabled),.btn--danger:hover:not(:disabled){background:var(--rd)}.btn-success,.btn--success{background:var(--success-bg);border-color:var(--gd);color:var(--success-text)}.btn-success:hover:not(:disabled),.btn--success:hover:not(:disabled){background:var(--gd)}.btn-sm,.btn--sm{height:28px;padding:0 var(--space-2);font-size:.6875rem}.btn-lg,.btn--lg{height:38px;padding:0 var(--space-4);font-size:var(--t-sm)}.btn-block,.btn--block{display:inline-flex;width:auto;max-width:min(100%,var(--btn-max))}.auth-box .btn-block,.modal-body .btn-block,.modal-footer .btn-block,.modal-actions .btn-block,.form-stack .btn-block{display:flex;width:100%;max-width:100%}.tile-btn,.preset-btn,.color-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:40px;height:auto;width:100%;min-width:0;padding:var(--space-2) var(--space-1);border:var(--rule) solid var(--line-soft);border-radius:var(--r-sm);background:var(--surface);color:var(--muted);font-family:var(--font-body);font-size:.6875rem;font-weight:700;line-height:1.15;white-space:normal;text-align:center;cursor:pointer;transition:all var(--trans-fast);box-sizing:border-box}.tile-btn:hover:not(:disabled),.preset-btn:hover:not(:disabled),.color-btn:hover:not(:disabled){border-color:var(--line);background:var(--surface-hover);color:var(--text)}.tile-btn.active,.preset-btn.active,.color-btn.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-glow)}.color-btn{flex-direction:row;min-height:32px}.btn:disabled,.btn.is-disabled{cursor:not-allowed;color:var(--muted-2);background-color:var(--surface-2);background-image:var(--hatch);border-color:var(--line-faint);box-shadow:none;transform:none}.btn-primary:disabled,.btn-danger:disabled{filter:none}.form-input,.input,.edit-input,.edit-textarea,.edit-select{width:100%;box-sizing:border-box;height:32px;padding:0 var(--space-3);background:var(--ground);border:var(--rule) solid var(--line-soft);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-body);font-size:var(--t-base);transition:border-color var(--trans-fast),background-color var(--trans-fast)}.edit-textarea,.textarea{height:auto;min-height:96px;padding:var(--space-3);line-height:1.6;resize:vertical}.form-input::placeholder,.input::placeholder,.edit-input::placeholder,.edit-textarea::placeholder{color:var(--muted-2)}.form-input:hover,.input:hover,.edit-input:hover,.edit-textarea:hover,.edit-select:hover{border-color:var(--line)}.form-input:focus,.input:focus,.edit-input:focus,.edit-textarea:focus,.edit-select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring-tight);background:var(--surface)}.form-input:disabled,.input:disabled{cursor:not-allowed;color:var(--muted-2);background-color:var(--surface-2);background-image:var(--hatch)}.section{position:relative;min-width:0;max-width:100%;margin-bottom:var(--gap-section)}.section:last-child{margin-bottom:0}.page-wrapper .section+.section,.page-flow .page-section+.page-section{padding-top:var(--gap-section);border-top:var(--rule) solid var(--line-faint)}.card,.panel{position:relative;background:var(--surface);border:var(--rule) solid var(--line-soft);border-radius:var(--r-md);box-shadow:var(--shadow-sm);min-width:0;max-width:100%;overflow:hidden;transition:border-color var(--trans-fast),background-color var(--trans-fast),transform var(--trans-fast),box-shadow var(--trans-fast)}.card{padding:var(--space-5)}.panel{padding:0;overflow:hidden}a.card:hover,button.card:hover{border-color:var(--line);background:var(--surface-2);transform:translateY(-2px);box-shadow:var(--shadow-md)}.section-title,.panel-header,.panel-head,.panel-title,.section h2.section-title{margin:0 0 var(--space-3);padding:0;border-bottom:none;background:transparent;font-family:var(--font-display);font-size:var(--t-sm);font-weight:700;letter-spacing:-.01em;text-transform:none;color:var(--text)}.section>h2:not(.section-title){margin:0 0 var(--space-4);font-family:var(--font-display);font-size:var(--t-xs);font-weight:700;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--accent-ink)}.panel .section-title,.panel .panel-header{margin:0;padding:var(--space-4) var(--space-5);padding-bottom:var(--space-3);background:var(--surface-solid);border-bottom:var(--rule) solid var(--line-faint)}.tabs{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-5);padding:0;border-bottom:var(--rule) solid var(--line-soft);background:var(--surface)}.tab,.tab-btn{position:relative;padding:var(--space-3) var(--space-4);border:none;border-radius:0;background:transparent;color:var(--muted-2);font-size:var(--t-sm);font-weight:700;cursor:pointer;transition:color var(--dur-2) var(--ease-out-quart)}.tab:hover,.tab-btn:hover{color:var(--text);background:transparent}.tab.active,.tab-btn.active{color:var(--accent-ink);background:transparent;border-color:transparent}.tab.active:after,.tab-btn.active:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:calc(var(--rule) * -1);height:var(--rule-heavy);background:var(--accent)}.chip-row,.filter-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip,.segment-opt{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);border:var(--rule) solid var(--line-soft);border-radius:var(--r-pill);background:var(--surface);color:var(--muted);font-size:var(--t-xs);font-weight:700;cursor:pointer;transition:all var(--trans-fast)}.chip:hover,.segment-opt:hover{color:var(--text);border-color:var(--line)}.chip.active,.chip--active,.segment-opt.is-active{background:var(--surface-active);border-color:rgb(var(--accent-rgb) / .28);color:var(--accent-ink)}.segment{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border:var(--rule) solid var(--line-soft);border-radius:var(--r-sm)}.segment .segment-opt{border-radius:var(--r-sm);border-color:transparent;background:transparent}.segment .segment-opt.is-active{background:var(--surface);box-shadow:var(--shadow-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) 0;border:none;border-radius:0;background:transparent;text-align:center;color:var(--muted-2);font-size:var(--t-sm)}.error-message,.alert-error,.note--bad{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:var(--rule) solid var(--rd);border-radius:var(--r-sm);background:var(--danger-bg);color:var(--danger-text);font-size:var(--t-sm);line-height:1.5}.alert-info,.note--info{padding:var(--space-4);border:var(--rule) solid var(--info-border);border-radius:var(--r-sm);background:var(--info-bg);color:var(--info-text);font-size:var(--t-sm)}.modal-overlay{position:fixed;inset:0;z-index:var(--z-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:light-dark(rgb(30 28 24 / .34),rgb(0 0 0 / .62));backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:architect-fade-in var(--dur-2) var(--ease-out-quart)}.modal-content{width:min(560px,calc(100vw - var(--space-6)));max-height:min(90vh,720px);margin:0;padding:0;overflow:hidden;display:flex;flex-direction:column;border:var(--rule) solid var(--line-soft);border-radius:var(--r-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);animation:architect-rise var(--dur-3) var(--ease-out-quart)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:var(--rule) solid var(--line-faint);background:var(--surface-solid)}.modal-title{margin:0;font-family:var(--font-display);font-size:var(--t-base);font-weight:700;letter-spacing:-.015em;color:var(--text)}.modal-close-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:var(--rule) solid var(--line-soft);border-radius:var(--r-sm);background:var(--surface-2);color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer;transition:all var(--trans-fast)}.modal-close-btn:hover{color:var(--accent-ink);border-color:var(--line);background:var(--surface-hover)}.modal-body{padding:var(--space-5);overflow:auto;flex:1}.modal-footer,.modal-actions,.dialog-foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:var(--rule) solid var(--line-faint)}@keyframes architect-fade-in{0%{opacity:0}to{opacity:1}}@keyframes architect-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.btn{white-space:normal;min-height:32px;height:auto;padding-top:var(--space-1);padding-bottom:var(--space-1);max-width:100%}.btn-sm{min-height:28px}.tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab,.tab-btn{flex-shrink:0}.modal-overlay{align-items:flex-end;padding:0}.modal-content{width:100%;max-height:85vh;border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:none}}@media (prefers-reduced-motion: reduce){.modal-overlay,.modal-content{animation:none}}.form-group{margin-bottom:var(--space-4)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes kingMatePulse{0%{box-shadow:0 0 #d4604a80;transform:scale(1)}50%{box-shadow:0 0 0 10px #d4604a00;transform:scale(1.03)}to{box-shadow:0 0 #d4604a00;transform:scale(1)}}.page-header-title{flex:1;min-width:200px}.panel{transition:box-shadow var(--trans-fast),border-color var(--trans-fast)}.panel:hover{box-shadow:var(--shadow-md);border-color:var(--line)}.panel-body{padding:var(--oc-block-pad, var(--space-3))}.info-section{display:flex;flex-direction:column;gap:12px}.info-row{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;padding:6px 0}.info-label{color:var(--muted);font-weight:500}.info-value{color:var(--text);font-weight:700}.action-group{display:flex;flex-direction:column;gap:10px}.action-group.horizontal{flex-direction:row}.action-group.horizontal-wrap{flex-direction:row;flex-wrap:wrap}.stats-panel{display:flex;flex-direction:column;gap:12px}.stat-item{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px;background:rgb(var(--accent-rgb) / .05);border:1px solid var(--line-soft);border-radius:var(--r-md);text-align:center}.stat-value{font-size:1.5rem;font-weight:800;font-family:var(--font-display);color:var(--accent-ink)}.stat-label{font-size:.72rem;color:var(--muted);font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.stat-change{font-size:.8rem;font-weight:600}.stat-change.positive{color:var(--success-text)}.stat-change.negative{color:var(--danger-text)}.tag{background:rgb(var(--accent-rgb) / .08);color:var(--muted);padding:.35rem .75rem;border-radius:var(--r-pill);border:1px solid var(--line-soft);font-size:.78rem;font-weight:600;white-space:nowrap}.tag-accent{background:rgb(var(--accent-rgb) / .12);color:var(--accent-ink);border-color:rgb(var(--accent-rgb) / .22);padding:.75rem 1rem;font-size:.9375rem;font-weight:700;text-align:center}.tag-success{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border);padding:.75rem;border-radius:var(--r-md);text-align:center;font-weight:700;font-size:.875rem}@media (max-width: 860px){.layout-2col-board,.layout-2col-sidebar{max-width:100%}}@media (max-width: 1200px){.layout-2col{grid-template-columns:1fr}}@media (max-width: 768px){.action-group.horizontal{flex-direction:column}}@media (max-width: 480px){.stat-value{font-size:1.2rem}}.country-flag{width:22px;height:auto;border-radius:2px;border:1px solid var(--line-soft);object-fit:cover;flex-shrink:0}.tc-ratings{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tc-ratings--compact .tc-rating-badge{padding:var(--space-1) var(--space-2);font-size:.75rem}.tc-rating-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--r-pill);border:1px solid var(--line-soft);background:rgb(var(--accent-rgb) / .06);font-size:.8125rem}.tc-rating-badge__label{font-weight:500;color:var(--muted)}.tc-rating-badge__value{font-weight:700;color:var(--text)}.page-subtitle{max-width:42ch;line-height:1.5}.page-section{margin-bottom:var(--gap-section)}.page-section:last-child{margin-bottom:0}.page-flow{display:flex;flex-direction:column;gap:0}.page-flow>.page-section+.page-section,.page-flow>section+section{padding-top:var(--gap-section);border-top:var(--rule) solid var(--line-faint)}.section>p,.section-desc{margin:0 0 var(--space-4);color:var(--muted);font-size:.875rem;line-height:1.5}.list-stack{display:flex;flex-direction:column;gap:var(--gap-card)}.list-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) 0;background:transparent;border:none;border-bottom:var(--rule) solid var(--line-faint);border-radius:0;transition:background-color var(--trans-fast)}.list-card:last-child{border-bottom:none}.list-card:hover{background:rgb(var(--accent-rgb) / .03)}.list-card__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.list-card__main{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.list-card__title{font-weight:700;font-size:.9375rem;color:var(--text)}.list-card__meta{font-size:.8125rem;color:var(--muted)}.list-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.list-card__actions .btn{flex:0 1 auto}.cta-grid{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--gap-section)}.cta-card{display:inline-flex;flex-direction:row;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:none;border-radius:var(--r-pill);background:transparent;cursor:pointer;text-align:left;transition:background-color var(--trans-fast),color var(--trans-fast);color:var(--muted);font:inherit;box-shadow:none}.cta-card:hover{background:rgb(var(--accent-rgb) / .06);color:var(--text);transform:none;box-shadow:none}.cta-card--primary{background:rgb(var(--accent-rgb) / .08);color:var(--accent-ink);border:var(--rule) solid rgb(var(--accent-rgb) / .18)}.cta-card--primary:hover{background:rgb(var(--accent-rgb) / .12)}.cta-card__icon{font-size:1.1rem;line-height:1;flex-shrink:0}.cta-card__title{font-weight:700;font-size:.875rem;white-space:nowrap}.cta-card__desc{display:none}.layout-split{display:grid;grid-template-columns:minmax(0,var(--content-col)) minmax(0,var(--sidebar-col));gap:var(--space-6);align-items:start;justify-content:center}.layout-cards{display:flex;flex-direction:column;gap:0}.layout-cards>*+*{padding-top:var(--gap-section);border-top:var(--rule) solid var(--line-faint)}.layout-sticky-side{position:sticky;top:calc(var(--header-height) + var(--space-4))}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:var(--space-2);vertical-align:middle;flex-shrink:0}.page-loading{display:flex;justify-content:center;align-items:center;min-height:40vh;color:var(--muted-2);font-size:.875rem;font-weight:600;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.page-hero{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:var(--space-4);padding:0;margin-bottom:var(--gap-section);background:transparent;border:none;border-radius:0;box-shadow:none}.page-hero__stat{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.page-hero__stat-label{font-size:.68rem;font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2)}.page-hero__stat-value{font-size:1.5rem;font-weight:800;font-family:var(--font-display);color:var(--accent-ink);line-height:1}.game-card{display:flex;align-items:center;gap:var(--space-3);padding:10px 12px;border-radius:var(--r-md);border:none;border-bottom:var(--rule) solid var(--line-faint);border-left:3px solid transparent;background:transparent;transition:background-color var(--trans-fast)}.game-card:last-child{border-bottom:none}.game-card:hover{background:rgb(var(--accent-rgb) / .04)}.game-card--won{border-left-color:var(--success-text)}.game-card--lost{border-left-color:var(--danger-text)}.game-card--draw{border-left-color:var(--muted)}.game-card--active{border-left-color:var(--accent-ink)}.game-card__badge{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.875rem;color:var(--text);border-radius:var(--r-sm);background:var(--surface-2)}.game-card__badge--live{color:var(--accent-ink);background:rgb(var(--accent-rgb) / .12);font-size:.75rem}.game-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.game-card__line1{display:flex;align-items:center;gap:var(--space-2);min-width:0}.game-card__line2{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:.72rem;color:var(--muted-2)}.game-card__line2>span:not(:last-child):after{content:"·";margin-left:6px;color:var(--muted-2);opacity:.7}.game-card__opponent{font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.game-card__meta{font-size:.75rem;color:var(--muted);white-space:nowrap;font-family:var(--font-mono);flex-shrink:0}.game-card__date{color:var(--muted-2);white-space:nowrap}.game-card__action{flex-shrink:0;align-self:center}.game-card__player{min-width:0;display:flex;flex-direction:column;gap:2px}.game-card__reason{font-size:.6875rem;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-card__meta-spacer{width:0}.game-card__status{font-size:.875rem;color:var(--accent-ink);line-height:1}.game-card__row{display:flex;align-items:center;gap:var(--space-3);font-size:.875rem;flex-wrap:wrap}@media (max-width: 640px){.game-card{gap:var(--space-2);padding:8px 10px}.game-card__action{padding-inline:10px;font-size:.75rem}.game-card__line2{font-size:.6875rem}}@media (max-width: 900px){.layout-split{grid-template-columns:1fr}.layout-sticky-side{position:static}}.profile-content{max-width:var(--container);margin:0 auto}.profile-header{display:flex;gap:var(--space-6);flex-wrap:wrap}.profile-avatar{flex-shrink:0}.profile-avatar img,.profile-avatar .avatar-image,.avatar-placeholder{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid rgb(var(--accent-rgb) / .35)}.avatar-placeholder{display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:800;color:var(--on-accent);background:linear-gradient(135deg,rgb(var(--accent-rgb)),rgb(var(--accent-deep-rgb)))}.profile-info{flex:1;display:flex;flex-direction:column;gap:var(--space-4);min-width:220px}.profile-title h1{margin:0;font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:800;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.profile-title h1>span{min-width:0}.rating-section{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-start}.rating-display{background:var(--surface-2);padding:var(--space-3) var(--space-5);border-radius:var(--r-md);display:flex;flex-direction:column;gap:var(--space-1);border:1px solid var(--line-soft)}.rating-display .rating-label{font-size:.68rem;color:var(--muted-2);text-transform:uppercase;font-weight:700;font-family:var(--font-mono);letter-spacing:.08em}.rating-display .rating-value{font-size:1.75rem;font-weight:800;font-family:var(--font-display);color:var(--accent-ink)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--gap-card);padding-top:var(--space-2)}.stat-card{background:transparent;border:none;border-radius:0;padding:var(--space-3) 0;text-align:center;display:flex;flex-direction:column;gap:var(--space-2)}.stat-card.win,.stat-card.draw,.stat-card.loss{background:transparent;border:none}.stat-card .stat-label{font-size:.68rem;color:var(--muted-2);text-transform:uppercase;font-weight:700;font-family:var(--font-mono);letter-spacing:.06em}.stat-card .stat-value{font-size:1.5rem;font-weight:800;font-family:var(--font-display);color:var(--text)}.stat-card.win .stat-value{color:var(--success-text)}.stat-card.draw .stat-value{color:var(--neutral-text)}.stat-card.loss .stat-value{color:var(--danger-text)}.profile-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.profile-actions .btn{flex:0 1 auto}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-2) 0}.pagination-btn{width:32px;height:32px;min-width:32px;padding:0;flex-shrink:0}.pagination-controls .btn.pagination-btn{display:inline-flex;align-items:center;justify-content:center}.pagination-btn:hover:not(:disabled){border-color:rgb(var(--accent-rgb) / .35);background:rgb(var(--accent-rgb) / .06)}.pagination-btn:disabled{opacity:.35;cursor:not-allowed}.pagination-info{font-size:.875rem;color:var(--muted);font-weight:600;min-width:4rem;text-align:center;font-family:var(--font-mono)}.list-card__actions--center{justify-content:center}.arena-page{max-width:var(--container)}.arena-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}.arena-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--space-3);padding:var(--space-3);border:none;border-bottom:var(--rule) solid var(--line-faint);border-radius:var(--r-sm);text-decoration:none;color:inherit;background:transparent;transition:background-color var(--trans-fast)}.arena-list-item:last-child{border-bottom:none}.arena-list-item:hover{background:rgb(var(--accent-rgb) / .04);box-shadow:none}.arena-list-item__name{font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-list-item__meta{font-size:.8125rem;color:var(--muted);font-family:var(--font-mono);white-space:nowrap}.arena-status{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px var(--space-2);border-radius:var(--r-sm);background:var(--surface-3);color:var(--muted);white-space:nowrap}.arena-status--active{background:rgb(var(--accent-rgb) / .12);color:var(--accent-ink)}.arena-standings{width:100%;border-collapse:collapse;margin-top:var(--space-4);font-size:.875rem}.arena-standings th,.arena-standings td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line-soft);text-align:left}.arena-standings th{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);font-weight:700}@media (max-width: 860px){.page-hero{flex-direction:column;align-items:flex-start}.page-hero__stat{align-items:flex-start}.cta-grid{gap:var(--space-2)}.profile-actions .btn{flex:0 1 auto}.list-card__row{flex-direction:column;align-items:flex-start}.list-card__actions{width:auto}.list-card__actions .btn{flex:0 1 auto;min-width:0}.profile-header{flex-direction:column;align-items:center;text-align:center}.rating-section{justify-content:center}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.cta-card__title{font-size:.8125rem}}.cc-card{box-shadow:var(--shadow-sm);padding:var(--oc-block-pad, var(--space-3));min-width:0}.cc-card__head{margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--line-faint)}.dashboard-hero{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--oc-section-gap, var(--space-3));padding-bottom:var(--oc-block-pad, var(--space-3));border-bottom:1px solid var(--line-faint)}.puzzle-modes-grid{display:flex;flex-direction:column;gap:var(--oc-section-gap, var(--space-3))}.cc-mode-card{display:flex;flex-direction:column;gap:var(--space-2)}.cc-mode-card .section-desc{margin:0;font-size:.8125rem}.cc-mode-card .btn{align-self:flex-start;margin-top:var(--space-1)}@media (max-width: 900px){.dashboard-aside{order:-1}}:root{--oc-page-pad-x: var(--space-4);--oc-page-pad-y: var(--space-5);--oc-block-pad: var(--space-3);--oc-block-gap: var(--space-2);--oc-section-gap: var(--space-3);--oc-board-max: 800px;--oc-board-stack-max: 560px;--oc-info-col: minmax(280px, 300px);--oc-layout-break: 860px;--oc-stack-break: 768px}.oc-page,.page-wrapper{box-sizing:border-box;width:100%;min-width:0;max-width:var(--container);margin-inline:auto;padding:var(--oc-page-pad-y) var(--oc-page-pad-x) var(--space-10);min-height:calc(100vh - var(--header-height));overflow-x:clip}.oc-page--wide,.page-wrapper--wide{max-width:var(--container-wide)}.oc-page--play,.page-wrapper--play{max-width:var(--container-play)}.oc-page--full,.page-wrapper--full{max-width:var(--container-full)}.oc-page--nav{padding-bottom:calc(var(--bottom-nav-height) + var(--space-6))}.oc-head,.page-header,.board-surface__head,.puzzle-page-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--oc-block-gap);margin-bottom:var(--oc-section-gap);padding-bottom:var(--oc-block-pad);border-bottom:1px solid var(--line-soft);box-sizing:border-box;width:100%}.oc-head__title,.page-title,.page-header h1,.page-header h2,.page-header h3{margin:0;font-family:var(--font-display);font-size:clamp(1.05rem,2.2vw,1.35rem);font-weight:800;letter-spacing:-.02em;color:var(--text);line-height:1.2;flex:1 1 auto;min-width:0}.oc-head__actions,.page-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap-inline);flex-shrink:0}.page-subtitle{margin:calc(var(--space-1) * -1) 0 var(--oc-section-gap);color:var(--muted);font-size:.875rem}.oc-block,.board-panel,.puzzle-panel,.panel{box-sizing:border-box;width:100%;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md)}.oc-block__head,.cc-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--oc-block-gap);padding:var(--oc-block-pad) var(--oc-block-pad) 0}.oc-block__title,.cc-card__title,.panel h3{margin:0;font-family:var(--font-display);font-size:.9375rem;font-weight:700;color:var(--text)}.oc-block__body,.cc-card__body,.panel-body{padding:var(--oc-block-pad)}.oc-block__body--flush{padding-top:0}.panel:not(:has(.panel-body)){padding:var(--oc-block-pad)}.board-panel,.puzzle-panel{padding:var(--oc-block-pad)}.oc-board,.board-surface,.puzzle-stack{display:flex;flex-direction:column;gap:var(--oc-section-gap);width:100%;min-width:0}.oc-board--stack{max-width:var(--oc-board-stack-max);margin-inline:auto}.oc-board__meta,.puzzle-board-meta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--oc-block-gap);padding:var(--space-1) var(--oc-block-pad)}.oc-board__stage,.board-stage,.puzzle-board-wrap,.chess-board-wrapper{width:100%;display:flex;justify-content:center;box-sizing:border-box}.oc-board__stage>*,.board-stage>*{max-width:100%}.oc-board__status,.puzzle-message,.turn-indicator{width:100%;box-sizing:border-box}.oc-board__meta--players,.player-info{display:flex;align-items:center;justify-content:space-between;gap:var(--oc-block-gap);padding:var(--oc-block-pad);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);font-size:.8125rem}.oc-layout-board,.layout-2col{display:grid;grid-template-columns:minmax(0,1fr) var(--oc-info-col);gap:var(--oc-section-gap);align-items:start;justify-content:center;width:100%;max-width:var(--container-full);margin-inline:auto}.oc-layout-board__main,.layout-2col-board{display:flex;flex-direction:column;gap:var(--oc-block-gap);width:100%;min-width:0;max-width:var(--oc-board-max);margin-inline:auto}.oc-layout-board__side,.layout-2col-sidebar{display:flex;flex-direction:column;gap:var(--oc-section-gap);min-width:0;width:100%}.oc-layout-stack{display:flex;flex-direction:column;gap:var(--oc-section-gap);width:100%;max-width:var(--oc-board-stack-max);margin-inline:auto}.oc-layout-aside,.dashboard-layout,.play-hub-layout,.puzzle-hub-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:var(--oc-section-gap);align-items:start;width:100%}.oc-layout-aside__main,.dashboard-main,.play-hub-main,.oc-layout-aside__side,.dashboard-aside,.play-hub-aside{display:flex;flex-direction:column;gap:var(--oc-section-gap);min-width:0}.oc-grid{display:grid;gap:var(--oc-section-gap);width:100%}.oc-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.oc-grid--3,.puzzle-modes-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.oc-grid--auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.oc-layout-aside--lesson{grid-template-columns:minmax(0,280px) minmax(0,1fr)}.oc-flow,.page-flow,.page-section{display:flex;flex-direction:column;gap:var(--oc-section-gap);width:100%}@media (max-width: 1200px){.oc-layout-board,.layout-2col{grid-template-columns:1fr;justify-items:stretch}.oc-layout-board__main,.layout-2col-board{max-width:100%;margin-inline:0}.oc-layout-board__side,.layout-2col-sidebar{max-width:100%}}@media (max-width: 900px){.oc-layout-aside,.dashboard-layout,.play-hub-layout,.puzzle-hub-layout,.oc-grid--3,.puzzle-modes-grid{grid-template-columns:1fr}}@media (max-width: 860px){:root{--oc-page-pad-x: 0;--oc-block-pad: var(--space-3)}.oc-page,.page-wrapper{padding-top:var(--space-3);padding-bottom:calc(var(--bottom-nav-height) + var(--space-8));max-width:100%}.oc-page--board,.board-layout-page,.oc-page--full.game-page,.page-wrapper--full.game-page{padding-bottom:var(--space-4)}.oc-head,.page-header,.board-surface__head,.puzzle-page-head{padding-inline:var(--oc-block-pad);margin-bottom:var(--oc-block-gap)}.oc-board--stack,.board-surface,.puzzle-stack,.oc-layout-stack{max-width:100%;margin-inline:0}.oc-layout-board,.layout-2col,.oc-layout-board__main,.layout-2col-board,.oc-layout-board__side,.layout-2col-sidebar{max-width:100%;width:100%}.oc-board__stage,.board-stage,.chess-board-wrapper{width:100%;max-width:100%;margin-inline:0}.oc-block,.board-panel,.puzzle-panel,.panel,.oc-board__meta--players,.player-info,.turn-indicator,.puzzle-message{border-radius:0;border-left:none;border-right:none}.oc-page:not(.oc-page--board):not(.board-layout-page) .oc-grid,.oc-page:not(.oc-page--board):not(.board-layout-page) .oc-layout-aside,.page-wrapper:not(.board-layout-page) .dashboard-layout,.page-wrapper:not(.board-layout-page) .play-hub-layout{padding-inline:var(--oc-block-pad)}.oc-page:not(.oc-page--board):not(.board-layout-page) .oc-block,.oc-page:not(.oc-page--board):not(.board-layout-page) .cc-card,.page-wrapper:not(.board-layout-page) .cc-card{border-radius:var(--r-md);border-left:1px solid var(--line-soft);border-right:1px solid var(--line-soft)}}@media (max-width: 640px){.oc-grid--2{grid-template-columns:1fr}}
