.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;border:none;font-weight:600;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}.loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page{align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.home-logo-circle{width:min(320px,55vw);height:min(320px,55vw);margin-top:var(--space-6);filter:drop-shadow(0 12px 32px #e9456066);background:#fffffff2;border-radius:50%;justify-content:center;align-items:center;animation:3s ease-in-out infinite floatLogo;display:flex;overflow:hidden}.home-logo{object-fit:contain;width:150%;height:150%}@keyframes floatLogo{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.home h1{font-size:var(--font-size-3xl);margin-top:var(--space-4)}.tagline{color:var(--color-text-muted);font-size:var(--font-size-xl);text-align:center;max-width:480px}.home-actions{gap:var(--space-4);margin-top:var(--space-6);display:flex}.home-actions .btn{padding:var(--space-4) var(--space-8);font-size:var(--font-size-lg)}.not-found{margin-top:var(--space-12)}:root{--color-bg:#1a1a2e;--color-bg-secondary:#16213e;--color-bg-card:#0f3460;--color-primary:#e94560;--color-primary-hover:#ff6b81;--color-secondary:#533483;--color-text:#eaeaea;--color-text-muted:#a0a0b0;--color-text-heading:#fff;--color-border:#2a2a4a;--color-success:#4ade80;--color-warning:#fbbf24;--color-error:#ef4444;--color-square-light:#f0d9b5;--color-square-dark:#b58863;--color-square-selected:#ff06;--color-square-legal:#00000026;--color-square-last-move:#9bc70066;--color-square-check:#ff000080;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0000004d;--shadow-lg:0 10px 15px #0006;--transition-fast:.15s ease;--transition-normal:.25s ease;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4{color:var(--color-text-heading);font-weight:600;line-height:1.2}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{cursor:pointer;background:0 0;border:none;font-family:inherit}html{touch-action:manipulation;overflow-x:hidden}.language-switcher{gap:var(--space-1);display:flex}.lang-btn{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.lang-btn:hover{color:var(--color-text);background:#ffffff0d}.lang-btn.active{color:var(--color-primary);background:#e945601a}.user-menu{align-items:center;gap:var(--space-2);display:flex}.user-avatar{background:var(--color-primary);color:#fff;width:32px;height:32px;font-weight:700;font-size:var(--font-size-sm);border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden}.user-avatar-img{object-fit:cover;width:100%;height:100%}.user-name{font-size:var(--font-size-sm);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-weight:500;overflow:hidden}.user-rating{font-size:var(--font-size-xs);color:var(--color-warning);border-radius:var(--radius-sm);background:#fbbf241a;padding:2px 6px;font-weight:600}.btn-sign-out{font-size:var(--font-size-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-sign-out:hover{color:var(--color-error);background:#ef44441a}.notification-bell{position:relative}.bell-btn{color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-md);transition:color var(--transition-fast);position:relative}.bell-btn:hover{color:var(--color-text)}.bell-badge{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.notification-panel{margin-top:var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);width:340px;max-height:440px;box-shadow:var(--shadow-lg);z-index:50;position:absolute;top:100%;right:0;overflow:hidden}@media (width<=768px){.notification-panel{z-index:200;border:none;border-radius:0;flex-direction:column;width:100%;max-height:100%;margin:0;display:flex;position:fixed;inset:0}.notification-list{flex:1;max-height:none}}.notif-header-actions{align-items:center;gap:var(--space-2);display:flex}.clear-all-btn{font-size:var(--font-size-xs);color:var(--color-error);cursor:pointer}.clear-all-btn:hover{text-decoration:underline}.notif-right{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.notif-delete-btn{color:var(--color-text-muted);opacity:0;transition:opacity var(--transition-fast), color var(--transition-fast);border-radius:var(--radius-sm);padding:2px 4px;font-size:11px}.notification-item:hover .notif-delete-btn{opacity:1}.notif-delete-btn:hover{color:var(--color-error)}@media (width<=768px){.notif-delete-btn{opacity:1}}.notif-expired{font-size:var(--font-size-xs);color:var(--color-text-muted);padding:var(--space-1) 0;font-style:italic}.notification-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.notification-header h4{font-size:var(--font-size-base);margin:0}.notif-close-btn{font-size:var(--font-size-lg);color:var(--color-text-muted);padding:var(--space-1);display:none}@media (width<=768px){.notif-close-btn{display:block}}.mark-all-btn{font-size:var(--font-size-xs);color:var(--color-primary);cursor:pointer}.mark-all-btn:hover{text-decoration:underline}.notification-list{max-height:380px;overflow-y:auto}.no-notifications{padding:var(--space-6);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.notif-challenge-actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}.notif-challenge-actions .btn{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.notification-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast);justify-content:space-between;align-items:flex-start;display:flex}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:#ffffff08}.notification-item.unread{background:#e945600d}.notification-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notification-title{font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-heading)}.notification-body{font-size:var(--font-size-xs);color:var(--color-text-muted)}.notification-time{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;margin-inline-start:var(--space-2)}.header{padding:var(--space-3) var(--space-4);padding-top:max(var(--space-3), env(safe-area-inset-top));padding-left:max(var(--space-4), env(safe-area-inset-left));padding-right:max(var(--space-4), env(safe-area-inset-right));border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex;position:relative}.header-logo{align-items:center;gap:var(--space-2);font-size:var(--font-size-lg);color:var(--color-text-heading);letter-spacing:-.5px;flex-shrink:0;font-weight:700;text-decoration:none;display:flex}.header-logo-img{object-fit:contain;background:#fffffff2;border-radius:50%;width:36px;height:36px;padding:3px}.header-logo:hover{color:var(--color-primary)}.menu-toggle{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;display:none}.hamburger{background:var(--color-text);width:20px;height:2px;transition:all .3s;display:block;position:relative}.hamburger:before,.hamburger:after{content:"";background:var(--color-text);width:20px;height:2px;transition:all .3s;position:absolute}.hamburger:before{top:-6px}.hamburger:after{top:6px}.hamburger.open{background:0 0}.hamburger.open:before{top:0;transform:rotate(45deg)}.hamburger.open:after{top:0;transform:rotate(-45deg)}.header-collapse{align-items:center;gap:var(--space-4);display:flex}.header-nav{gap:var(--space-1);display:flex}.header-nav a{color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;font-weight:500}.header-nav a:hover{color:var(--color-text);background:#ffffff0d}.header-nav a.active{color:var(--color-primary);background:#e945601a}.header-actions{align-items:center;gap:var(--space-3);display:flex}@media (width<=1024px){.menu-toggle{display:flex}.header-logo-text{display:none}.header-collapse{width:100%;padding:var(--space-3) 0;align-items:stretch;gap:var(--space-3);border-top:1px solid var(--color-border);margin-top:var(--space-3);flex-direction:column;display:none}.header-collapse.open{display:flex}.header-nav{flex-direction:column;gap:0}.header-nav a{padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);border-radius:0}.header-nav a:hover{background:#ffffff08}.header-actions{padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);padding-top:var(--space-3);justify-content:space-between}}.layout{flex-direction:column;min-height:100vh;display:flex}.layout-main{padding:var(--space-8) var(--space-6);flex:1;width:100%;margin:0 auto}.square{aspect-ratio:1;cursor:pointer;transition:background-color var(--transition-fast);justify-content:center;align-items:center;display:flex;position:relative}.square .piece-icon{pointer-events:none;width:85%;height:85%}.square:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;z-index:1}.square-light{background-color:var(--color-square-light)}.square-dark{background-color:var(--color-square-dark)}.square-selected{background-color:var(--color-square-selected)!important}.square-last-move{background-color:var(--color-square-last-move)!important}.square-check{background:radial-gradient(ellipse at center, var(--color-square-check) 0%, var(--color-square-check) 25%, transparent 89%)!important}.legal-dot{background:var(--color-square-legal);pointer-events:none;border-radius:50%;width:30%;height:30%;position:absolute}.legal-capture{border:6px solid var(--color-square-legal);background:0 0;border-radius:50%;width:100%;height:100%}.promotion-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.promotion-modal{align-items:center;gap:var(--space-3);padding:var(--space-6);background:var(--color-bg-secondary);border:2px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.promotion-title{font-size:var(--font-size-lg);color:var(--color-text-heading)}.promotion-picker{gap:var(--space-3);display:flex}.promotion-option{border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-bg);cursor:pointer;width:64px;height:64px;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:8px;display:flex}.promotion-option.black-piece{background:#b0b0b0;border-color:#999}.promotion-option .piece-icon{width:100%;height:100%}.promotion-option:hover{border-color:var(--color-primary);background:#e9456026;transform:scale(1.15)}.promotion-option.black-piece:hover{background:#c8c8c8}.chess-board-wrapper{flex-direction:column;align-items:center;display:flex;position:relative}.chess-board-outer{border-radius:var(--radius-md);width:min(85vmin,640px);max-width:85vw;height:min(85vmin,640px);max-height:85vw;box-shadow:var(--shadow-lg);grid-template-rows:repeat(8,1fr) 20px;grid-template-columns:20px repeat(8,1fr);display:grid;overflow:hidden}.chess-board-outer .rank-label,.chess-board-outer .file-label{color:var(--color-text-muted);-webkit-user-select:none;user-select:none;opacity:.5;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.game-info{gap:var(--space-4);min-width:220px;padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.game-status{align-items:center;gap:var(--space-3);display:flex}.turn-indicator{border:2px solid var(--color-border);border-radius:50%;width:24px;height:24px}.turn-indicator.white{background:#fff}.turn-indicator.black{background:#333}.status-text{font-weight:600;font-size:var(--font-size-lg);color:var(--color-text-heading)}.status-text.in-check{color:var(--color-error);animation:1s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.game-over-banner{padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning);border-radius:var(--radius-md);text-align:center;background:#fbbf241a}.game-over-text{font-weight:700;font-size:var(--font-size-base);color:var(--color-warning)}.game-actions{gap:var(--space-2);display:flex}.game-actions .btn{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);flex:1}.game-actions .btn:disabled{opacity:.4;cursor:not-allowed}.move-list h3{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2)}.moves{gap:var(--space-1);flex-direction:column;max-height:300px;display:flex;overflow-y:auto}.no-moves{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}.move-pair{gap:var(--space-2);font-family:var(--font-mono);font-size:var(--font-size-sm);display:flex}.move-number{color:var(--color-text-muted);min-width:2em}.move{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);min-width:4em}.move:hover{background:#ffffff0d}.find-match{align-items:center;gap:var(--space-4);padding:var(--space-6);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;width:100%;display:flex}.find-match h3{font-size:var(--font-size-xl)}.tc-selector{gap:var(--space-2);width:100%;display:flex}.tc-option{align-items:center;gap:var(--space-1);padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;flex:1;display:flex}.tc-option:hover{border-color:var(--color-primary)}.tc-option.selected{border-color:var(--color-primary);background:#e945601a}.tc-name{font-weight:600;font-size:var(--font-size-sm)}.tc-time{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted)}.find-match-btn{width:100%;padding:var(--space-4);font-size:var(--font-size-lg)}.find-match.queuing{border-color:var(--color-primary)}.queue-animation{margin-bottom:var(--space-2)}.queue-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}.queue-info{color:var(--color-text-muted);font-size:var(--font-size-sm)}.queue-timeout-msg{color:var(--color-warning);font-size:var(--font-size-sm);text-align:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:#fbbf241a;width:100%}.queue-timer{font-family:var(--font-mono);font-size:var(--font-size-2xl);color:var(--color-text-heading);font-weight:700}.scheduled-games{width:100%;max-width:500px}.scheduled-games h3{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-3)}.scheduled-list{gap:var(--space-2);flex-direction:column;display:flex}.scheduled-item{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);justify-content:space-between;align-items:center;display:flex}.scheduled-info{align-items:center;gap:var(--space-3);display:flex}.scheduled-opponent{color:var(--color-text-heading);font-weight:600}.scheduled-tc{font-size:var(--font-size-xs);color:var(--color-text-muted);border-radius:var(--radius-sm);background:#ffffff0d;padding:2px 6px}.scheduled-time{font-size:var(--font-size-xs);color:var(--color-warning)}.scheduled-actions{gap:var(--space-2);display:flex}.scheduled-pending{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.chess-clock{gap:var(--space-2);flex-direction:column;min-width:160px;display:flex}.clock-side{padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.clock-side.active{border-color:var(--color-primary);background:#e945600d}.clock-side.low .clock-time{color:var(--color-error);animation:1s ease-in-out infinite pulse}.clock-label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500}.clock-time{font-family:var(--font-mono);font-size:var(--font-size-xl);color:var(--color-text-heading);font-weight:700}.game-result-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.game-result-modal{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;width:90%;max-width:400px;box-shadow:var(--shadow-lg);animation:.3s slideUp}.result-title{font-size:var(--font-size-3xl);margin-bottom:var(--space-2)}.result-title.win{color:var(--color-success)}.result-title.lose{color:var(--color-error)}.result-title.draw-result{color:var(--color-warning)}.result-reason{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.result-players{justify-content:center;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);font-size:var(--font-size-lg);display:flex}.result-players .winner{color:var(--color-success);font-weight:700}.result-players .vs{color:var(--color-text-muted);font-size:var(--font-size-sm)}.result-actions{gap:var(--space-3);justify-content:center;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.match-preview-overlay{background:var(--color-bg);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.match-preview{align-items:center;gap:var(--space-8);display:flex;position:relative}.mp-player{align-items:center;gap:var(--space-2);opacity:0;flex-direction:column;transition:all .6s;display:flex;transform:translate(0)}.mp-white{transform:translate(-60px)}.mp-black{transform:translate(60px)}.match-preview.show .mp-player,.match-preview.go .mp-player{opacity:1;transform:translate(0)}.mp-avatar{background:var(--color-secondary);color:#fff;width:90px;height:90px;font-weight:700;font-size:var(--font-size-3xl);border:3px solid var(--color-border);border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden}.mp-white .mp-avatar{border-color:#fff}.mp-black .mp-avatar{border-color:#333}.mp-avatar img{object-fit:cover;width:100%;height:100%}.mp-name{font-weight:700;font-size:var(--font-size-lg);color:var(--color-text-heading)}.mp-rating{font-size:var(--font-size-xl);color:var(--color-warning);font-weight:700;animation:.5s 1.5s both ratingPop}@keyframes ratingPop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.mp-center{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.mp-vs{font-size:var(--font-size-3xl);color:var(--color-primary);opacity:0;font-weight:900;animation:.4s .8s forwards vsAppear}@keyframes vsAppear{0%{opacity:0;transform:scale(2)}to{opacity:1;transform:scale(1)}}.mp-tc{font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);opacity:0;animation:.3s 1.2s forwards vsAppear}.mp-go{color:var(--color-success);font-size:4rem;font-weight:900;animation:.6s goFlash;position:absolute}@keyframes goFlash{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}@media (width<=480px){.match-preview{gap:var(--space-4);flex-direction:column}.mp-white{transform:translateY(-40px)}.mp-black{transform:translateY(40px)}.match-preview.show .mp-player,.match-preview.go .mp-player{transform:translateY(0)}.mp-avatar{width:70px;height:70px}}.online-game-page{align-items:center}.online-game-layout{gap:var(--space-6);flex-wrap:wrap;justify-content:center;align-items:flex-start;max-width:900px;margin:0 auto;display:flex}.board-section{gap:var(--space-2);flex-direction:column;display:flex}.player-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex}.player-name{color:var(--color-text-heading);font-weight:600}.player-rating-badge{font-size:var(--font-size-xs);color:var(--color-warning);border-radius:var(--radius-sm);background:#fbbf241a;padding:2px 6px;font-weight:600}.game-sidebar{gap:var(--space-4);flex-direction:column;min-width:220px;display:flex}.game-status-bar{text-align:center;padding:var(--space-2);border-radius:var(--radius-md);font-weight:600}.status-your-turn{color:var(--color-success)}.status-waiting{color:var(--color-text-muted)}.status-ended{color:var(--color-warning)}.game-controls{gap:var(--space-2);display:flex}.draw-offer-dialog{padding:var(--space-4);border:2px solid var(--color-warning);border-radius:var(--radius-lg);text-align:center;background:#fbbf2426;animation:2s ease-in-out infinite drawPulse}@keyframes drawPulse{0%,to{box-shadow:0 0 #fbbf244d}50%{box-shadow:0 0 16px 4px #fbbf244d}}.draw-offer-dialog p{font-weight:700;font-size:var(--font-size-lg);color:var(--color-warning);margin-bottom:var(--space-3)}.draw-offer-actions{gap:var(--space-3);justify-content:center;display:flex}.draw-offer-actions .btn{padding:var(--space-2) var(--space-6);font-size:var(--font-size-base)}.resign-confirm{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-error);border-radius:var(--radius-md);background:#ef44441a;display:flex}.resign-confirm-text{font-size:var(--font-size-sm);color:var(--color-error);white-space:nowrap;font-weight:600}.resign-yes{background:var(--color-error)!important}.game-controls .btn{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);flex:1}.resign-btn:hover{color:var(--color-error)!important;border-color:var(--color-error)!important}.online-move-list h3{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.moves-scroll{gap:var(--space-1);max-height:300px;padding:var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow-y:auto}.online-move-list .no-moves{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}.online-move-list .move-pair{gap:var(--space-2);font-family:var(--font-mono);font-size:var(--font-size-sm);display:flex}.online-move-list .move-number{color:var(--color-text-muted);min-width:2em}@media (width<=800px){.online-game-layout{flex-direction:column;align-items:center}}.are-you-there-overlay{z-index:180;background:#000000b3;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.are-you-there-dialog{align-items:center;gap:var(--space-3);padding:var(--space-8);background:var(--color-bg-secondary);border:2px solid var(--color-warning);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;flex-direction:column;max-width:340px;animation:.4s slideUp;display:flex}.are-you-there-dialog h3{font-size:var(--font-size-2xl);color:var(--color-warning)}.are-you-there-dialog p{color:var(--color-text-muted);font-size:var(--font-size-sm)}.are-you-there-dialog .btn{width:100%;padding:var(--space-3);font-size:var(--font-size-lg)}.play-menu-page{align-items:center;gap:var(--space-6);max-width:800px;margin:0 auto}.play-heading{font-size:var(--font-size-2xl);text-align:center}.play-options{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));width:100%;display:grid}.play-option-card{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center;transition:all var(--transition-fast);flex-direction:column;display:flex}.play-option-card.clickable{cursor:pointer}.play-option-card.clickable:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.play-option-icon{opacity:.8;font-size:3rem;line-height:1}.play-option-card h3{font-size:var(--font-size-lg);color:var(--color-text-heading)}.play-option-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.4}.play-option-btn{margin-top:auto}.matchmaking-section{gap:var(--space-3);flex-direction:column;align-items:center;width:100%;max-width:450px;display:flex}.active-games-banner{width:100%;padding:var(--space-4);border:1px solid var(--color-primary);border-radius:var(--radius-md);text-align:center;background:#e945601a}.active-games-banner h3{margin-bottom:var(--space-3);font-size:var(--font-size-base)}.active-games-list{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.game-page{align-items:center;max-width:100%}.back-to-menu{margin-bottom:var(--space-2);align-self:flex-start}.game-layout{gap:var(--space-6);justify-content:center;align-items:flex-start;width:100%;display:flex}@media (width<=900px){.game-layout{flex-direction:column;align-items:center}}.ai-setup{align-items:center;gap:var(--space-8);padding-top:var(--space-6);max-width:600px;margin:0 auto}.ai-setup-section{text-align:center;width:100%}.ai-setup-section h2{margin-bottom:var(--space-4);color:var(--color-text-heading)}.ai-difficulty-options{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ai-difficulty-btn{align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-8);border-radius:var(--radius-lg);border:2px solid var(--color-border);background:var(--color-bg-secondary);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;min-width:130px;display:flex}.ai-difficulty-btn:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.ai-difficulty-btn.active{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb,59, 130, 246), .1);box-shadow:0 0 0 1px var(--color-primary)}.ai-difficulty-icon{font-size:2.5rem;line-height:1}.ai-difficulty-name{font-size:var(--font-size-base);color:var(--color-text-heading);font-weight:700}.ai-difficulty-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:100px;line-height:1.3}.ai-color-options{justify-content:center;gap:var(--space-6);display:flex}.ai-color-btn{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-8);border-radius:var(--radius-lg);border:2px solid var(--color-border);background:var(--color-bg-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-lg);color:var(--color-text-heading);flex-direction:column;font-weight:600;display:flex}.ai-color-btn:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.ai-color-btn.white,.ai-color-btn.black{background:var(--color-bg-secondary)}.ai-board-section{flex-direction:column;align-items:center;gap:0;display:flex}.ai-status-slot{justify-content:center;align-items:center;height:28px;display:flex}.ai-thinking{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-1) var(--space-3);display:flex}.ai-bottom-slot{justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;min-height:36px;display:flex}.ai-move-nav{align-items:center;gap:var(--space-2);display:flex}.ai-nav-btn{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary);width:36px;height:36px;color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:1.1rem;display:flex}.ai-nav-btn:hover:not(:disabled){border-color:var(--color-primary);background:#ffffff1a}.ai-nav-btn:disabled{opacity:.3;cursor:not-allowed}.ai-thinking-dot{background:var(--color-warning);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite pulse}.ai-difficulty-badge{padding:var(--space-1) var(--space-3);background:var(--color-bg-secondary);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-text-muted);border:1px solid var(--color-border)}.ai-turn-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.endgames-page{align-items:center;gap:var(--space-4);max-width:1000px;margin:0 auto}.endgames-heading{font-size:var(--font-size-2xl);text-align:center;margin:0}.endgames-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center;margin:0}.endgames-search{width:100%;max-width:500px}.endgames-search-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text);font-size:var(--font-size-base)}.endgames-search-input:focus{border-color:var(--color-primary);outline:none}.endgames-categories{gap:var(--space-2);flex-wrap:wrap;justify-content:center;width:100%;display:flex}.endgames-cat-btn{padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.endgames-cat-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.endgames-cat-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.endgames-count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.endgames-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));width:100%;display:grid}.endgame-card{gap:var(--space-3);padding:var(--space-6);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;display:flex;overflow:hidden}.endgame-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.endgame-card-header{justify-content:space-between;align-items:center;display:flex}.endgame-number{font-weight:700;font-size:var(--font-size-sm);color:var(--color-primary)}.endgame-result{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.endgame-result.win{color:#22c55e;background:#22c55e26}.endgame-result.draw{color:#fbbf24;background:#fbbf2426}.endgame-card-title{font-size:var(--font-size-base);color:var(--color-text-heading);margin:0}.endgame-card-category{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.endgame-card-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);-webkit-line-clamp:3;word-wrap:break-word;overflow-wrap:break-word;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.endgame-card-footer{padding-top:var(--space-3);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.endgame-to-move{font-size:var(--font-size-xs);color:var(--color-text-muted)}.endgame-practice-btn{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3)}.endgames-empty{padding:var(--space-8);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-lg)}.endgame-practice-layout{gap:var(--space-6);justify-content:center;align-items:flex-start;width:100%;display:flex}.endgame-info-panel{gap:var(--space-3);flex-direction:column;min-width:240px;max-width:300px;display:flex}.endgame-info-header{justify-content:space-between;align-items:center;display:flex}.endgame-info-title{font-size:var(--font-size-lg);color:var(--color-text-heading);margin:0}.endgame-info-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0;line-height:1.5}.endgame-info-status{min-height:24px}.endgame-controls{gap:var(--space-2);display:flex}.endgame-moves{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-3);border:1px solid var(--color-border)}.endgame-moves h4{font-size:var(--font-size-sm);margin:0 0 var(--space-2) 0;color:var(--color-text-heading)}.endgame-moves-list{gap:var(--space-1);font-size:var(--font-size-sm);flex-wrap:wrap;max-height:120px;display:flex;overflow-y:auto}.endgame-move{color:var(--color-text)}.move-num{color:var(--color-text-muted);margin-right:2px}.text-muted{color:var(--color-text-muted);font-size:var(--font-size-xs)}.endgame-nav{justify-content:space-between;gap:var(--space-2);display:flex}.endgame-board-section{flex-direction:column;align-items:center;display:flex}@media (width<=900px){.endgame-practice-layout{flex-direction:column-reverse;align-items:center}.endgame-info-panel{width:100%;max-width:100%}}.profile-page{align-items:center}.profile-card{align-items:center;gap:var(--space-6);padding:var(--space-8);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:500px;display:flex}.profile-avatar-large{background:var(--color-primary);color:#fff;width:80px;height:80px;font-size:var(--font-size-3xl);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;position:relative;overflow:hidden}.avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar-overlay{font-size:var(--font-size-2xl);color:#fff;opacity:0;transition:opacity var(--transition-fast);background:#00000080;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.profile-avatar-large:hover .avatar-overlay{opacity:1}.profile-info{text-align:center}.profile-name{cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.profile-name:hover{background:#ffffff0d}.profile-email{color:var(--color-text-muted);font-size:var(--font-size-sm)}.profile-edit-name{gap:var(--space-2);align-items:center;display:flex}.profile-edit-name input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);font-family:inherit}.profile-edit-name input:focus{border-color:var(--color-primary);outline:none}.profile-edit-name .btn{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.profile-stats{gap:var(--space-6);flex-wrap:wrap;justify-content:center;display:flex}.stat{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.stat-value{font-size:var(--font-size-2xl);color:var(--color-text-heading);font-weight:700}.stat-link{cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:background var(--transition-fast);text-decoration:none}.stat-link:hover{background:#ffffff0d}.stat-link .stat-label{color:var(--color-primary)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.user-search{width:100%;max-width:500px}.search-input-wrapper{position:relative}.search-input{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);transition:border-color var(--transition-fast);font-family:inherit}.search-input:focus{border-color:var(--color-primary);outline:none}.search-input::placeholder{color:var(--color-text-muted);opacity:.5}.search-results{margin-top:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.search-result-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:#ffffff08}.search-user-info{align-items:center;gap:var(--space-2);display:flex}.search-user-name{font-weight:500}.search-user-rating{font-size:var(--font-size-xs);color:var(--color-warning);border-radius:var(--radius-sm);background:#fbbf241a;padding:2px 6px;font-weight:600}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.no-results{margin-top:var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.friend-card{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:background var(--transition-fast);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.friend-card:hover{background:#ffffff08}.friend-card-left{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}@media (width<=480px){.friend-card{align-items:stretch;gap:var(--space-2);flex-direction:column}.friend-card-actions{justify-content:flex-end}}.friend-avatar{background:var(--color-secondary);color:#fff;width:40px;height:40px;font-weight:700;font-size:var(--font-size-sm);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.status-dot{border:2px solid var(--color-bg-secondary);border-radius:50%;width:12px;height:12px;position:absolute;bottom:0;right:0}.online-dot,.status-dot.online{background:var(--color-success)}.online-dot.offline,.status-dot.offline{background:var(--color-text-muted)}.online-dot{border-radius:50%;width:8px;height:8px}.friend-info{flex-direction:column;min-width:0;display:flex}.friend-name{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-heading);font-weight:500;overflow:hidden}.friend-rating{font-size:var(--font-size-xs);color:var(--color-text-muted)}.friend-card-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.time-control-picker{gap:var(--space-1);flex-wrap:wrap;display:flex}.challenge-sent-info{align-items:center;gap:var(--space-2);display:flex}.challenge-sent-label{font-size:var(--font-size-xs);color:var(--color-success);font-weight:600}.friend-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.friend-menu-wrapper{position:relative}.friend-menu-btn{font-size:var(--font-size-lg);color:var(--color-text-muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);letter-spacing:2px;transition:color var(--transition-fast);line-height:1}.friend-menu-btn:hover{color:var(--color-text)}.friend-menu-dropdown{margin-top:var(--space-1);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:10;min-width:120px;position:absolute;top:100%;right:0;overflow:hidden}.friend-menu-item{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);text-align:start;transition:background var(--transition-fast);color:var(--color-text)}.friend-menu-item:hover{background:#ffffff0d}.friend-menu-item.danger{color:var(--color-error)}.friend-menu-item.danger:hover{background:#ef44441a}.remove-confirm{align-items:center;gap:var(--space-2);display:flex}.remove-confirm-text{font-size:var(--font-size-xs);color:var(--color-text-muted)}.remove-yes{background:var(--color-error)!important}.color-picker{gap:var(--space-2);align-items:center;display:flex}.color-btn{border:2px solid var(--color-border);cursor:pointer;width:36px;height:36px;transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex}.color-btn:hover{border-color:var(--color-primary);transform:scale(1.15)}.white-btn{color:#333;background:#fff}.black-btn{color:#fff;background:#1a1a1a}.random-btn{color:var(--color-primary);font-weight:700;font-size:var(--font-size-sm);background:linear-gradient(135deg,#fff 50%,#1a1a1a 50%)}.friends-list{width:100%;max-width:500px}.friends-section{margin-bottom:var(--space-6)}.friends-section-title{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-3)}.friends-empty{text-align:center;padding:var(--space-8);color:var(--color-text-muted)}.friends-list .friend-card{margin-bottom:var(--space-2)}.pending-requests{width:100%;max-width:500px}.requests-section{margin-bottom:var(--space-6)}.requests-title{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-3)}.request-item{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.request-user{align-items:center;gap:var(--space-3);display:flex}.request-avatar{background:var(--color-secondary);color:#fff;width:36px;height:36px;font-weight:700;font-size:var(--font-size-sm);border-radius:50%;justify-content:center;align-items:center;display:flex}.request-info{align-items:center;gap:var(--space-2);display:flex}.request-name{font-weight:500}.request-rating{font-size:var(--font-size-xs);color:var(--color-warning);font-weight:600}.request-actions{gap:var(--space-2);display:flex}.request-pending-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.friends-page{align-items:center;gap:var(--space-6)}.game-replay{align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.replay-info{align-items:center;gap:var(--space-3);font-size:var(--font-size-lg);color:var(--color-text-heading);font-weight:600;display:flex}.replay-info .vs{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:400}.replay-controls{align-items:center;gap:var(--space-2);display:flex}.replay-controls .btn{padding:var(--space-2) var(--space-3);font-family:var(--font-mono);min-width:40px;font-weight:700}.replay-controls .btn:disabled{opacity:.3;cursor:not-allowed}.replay-ply{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center;min-width:60px}.replay-move-list{gap:var(--space-1);max-width:400px;max-height:200px;padding:var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex;overflow-y:auto}.replay-move-list .move-pair{gap:var(--space-1);font-family:var(--font-mono);font-size:var(--font-size-sm);display:flex}.replay-move-list .move{border-radius:var(--radius-sm);cursor:pointer;padding:2px 4px}.replay-move-list .move:hover{background:#ffffff0d}.replay-move-list .move.current{color:var(--color-primary);background:#e9456033}.replay-move-list .move-number{color:var(--color-text-muted);min-width:2em}.history-page{align-items:center;gap:var(--space-4)}.history-filters{gap:var(--space-2);display:flex}.filter-btn{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:all var(--transition-fast)}.filter-btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.filter-btn.active{color:var(--color-primary);border-color:var(--color-primary);background:#e945601a}.no-history{color:var(--color-text-muted);padding:var(--space-8)}.history-list{gap:var(--space-2);flex-direction:column;width:100%;max-width:600px;display:flex}.history-item{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.history-item:hover{border-color:var(--color-primary);background:#ffffff08}.history-item-left{align-items:center;gap:var(--space-3);display:flex}.history-result{width:32px;height:32px;font-weight:700;font-size:var(--font-size-sm);border-radius:50%;justify-content:center;align-items:center;display:flex}.history-result.win{color:var(--color-success);background:#4ade8026}.history-result.loss{color:var(--color-error);background:#ef444426}.history-result.draw-result{color:var(--color-warning);background:#fbbf2426}.history-details{flex-direction:column;display:flex}.history-opponent{color:var(--color-text-heading);font-weight:500}.history-meta,.history-date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.back-btn{align-self:flex-start}.rating-info-page{align-items:center;gap:var(--space-6);max-width:700px;margin:0 auto}.rating-subtitle{color:var(--color-text-muted);text-align:center}.rating-section h3{font-size:var(--font-size-lg);margin-bottom:var(--space-3)}.rating-card{padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:var(--space-3);flex-direction:column;display:flex}.rating-card p{color:var(--color-text);font-size:var(--font-size-sm);line-height:1.6}.rating-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.rating-table th{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px}.rating-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);color:var(--color-text)}.rating-table tr:last-child td{border-bottom:none}.result-win{color:var(--color-success);font-weight:600}.result-loss{color:var(--color-error);font-weight:600}.result-draw{color:var(--color-warning);font-weight:600}.positive{color:var(--color-success);font-weight:700}.negative{color:var(--color-error);font-weight:700}.formula-card{align-items:center;gap:var(--space-4)}.formula-card code{font-family:var(--font-mono);font-size:var(--font-size-base);color:var(--color-text-heading);background:var(--color-bg);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);text-align:center;display:block}.formula-note{text-align:center;font-style:italic;font-size:var(--font-size-xs)!important;color:var(--color-text-muted)!important}.tournaments-page{gap:var(--space-6)}.tournaments-header{justify-content:space-between;align-items:center;width:100%;max-width:800px;display:flex}.empty-state{color:var(--color-text-muted);padding:var(--space-8);text-align:center}.tournament-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));width:100%;max-width:800px;display:grid}.tournament-card{gap:var(--space-2);padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:inherit;transition:all var(--transition-fast);flex-direction:column;text-decoration:none;display:flex}.tournament-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tc-header{justify-content:space-between;align-items:center;display:flex}.tc-status{font-size:var(--font-size-xs);border-radius:var(--radius-full);text-transform:uppercase;padding:2px 8px;font-weight:600}.tc-status.registration{color:var(--color-success);background:#4ade801a}.tc-status.in_progress{color:var(--color-warning);background:#fbbf241a}.tc-status.completed{color:var(--color-text-muted);background:#ffffff0d}.tc-status.cancelled{color:var(--color-error);background:#ef44441a}.tc-status.archived{color:var(--color-text-muted);background:#ffffff0d}.tc-type{font-size:var(--font-size-xs);color:var(--color-text-muted)}.tc-name{font-size:var(--font-size-lg);color:var(--color-text-heading)}.tc-details{gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.tc-prize{font-size:var(--font-size-sm);color:var(--color-warning);font-weight:600}.create-tournament-page{align-items:center;gap:var(--space-4);max-width:500px;margin:0 auto}.tournament-form{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.tournament-form input,.tournament-form select{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:var(--font-size-base)}.tournament-form input:focus,.tournament-form select:focus{border-color:var(--color-primary);outline:none}.form-row{gap:var(--space-3);display:flex}.form-row .form-field{flex:1}.tournament-detail{align-items:center;gap:var(--space-6);max-width:900px;margin:0 auto}.td-header{width:100%}.td-info,.td-referee{color:var(--color-text-muted);font-size:var(--font-size-sm)}.td-prize{color:var(--color-warning);font-weight:600;font-size:var(--font-size-lg);margin-top:var(--space-2)}.winner-banner{align-items:center;gap:var(--space-2);padding:var(--space-6);border:2px solid var(--color-warning);border-radius:var(--radius-lg);text-align:center;background:#fbbf241a;flex-direction:column;width:100%;display:flex}.trophy{font-size:4rem}.winner-banner h3{font-size:var(--font-size-2xl);color:var(--color-warning)}.winner-banner p{color:var(--color-text-muted)}.group-photo{border-radius:var(--radius-md);width:100%;max-width:600px;overflow:hidden}.group-photo img{width:100%;height:auto}.td-section{width:100%}.td-section h3{font-size:var(--font-size-base);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-3)}.reg-form{gap:var(--space-3);flex-direction:column;max-width:400px;display:flex}.reg-form input{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-family:inherit}.reg-form input:focus{border-color:var(--color-primary);outline:none}.reg-form-actions{gap:var(--space-2);display:flex}.reg-status{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);display:inline-block}.reg-status.pending{color:var(--color-warning);background:#fbbf241a}.reg-status.confirmed{color:var(--color-success);background:#4ade801a}.reg-status.rejected{color:var(--color-error);background:#ef44441a}.reg-list{gap:var(--space-2);flex-direction:column;display:flex}.reg-card{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;display:flex}.reg-card-left{align-items:center;gap:var(--space-3);display:flex}.reg-info{font-size:var(--font-size-sm);flex-direction:column;gap:2px;display:flex}.reg-actions{gap:var(--space-2);display:flex}.players-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.player-card-mini{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast);display:flex}.player-card-mini:hover{border-color:var(--color-primary)}.pcm-avatar{background:var(--color-secondary);width:48px;height:48px;font-weight:700;font-size:var(--font-size-lg);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.pcm-avatar img{object-fit:cover;width:100%;height:100%}.pcm-info{flex-direction:column;gap:2px;min-width:0;display:flex}.pcm-name{color:var(--color-text-heading);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.pcm-detail{font-size:var(--font-size-xs);color:var(--color-text-muted)}.bracket-actions{gap:var(--space-3);display:flex}.td-admin-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.td-confirm-delete{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-error);display:flex}.btn-danger{background:var(--color-error);color:#fff;border:none}.btn-danger:hover{background:#c0392b}.td-edit-form{width:100%;max-width:500px;padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.td-edit-form select{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:var(--font-size-base)}.td-edit-form select:focus{border-color:var(--color-primary);outline:none}.td-edit-actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}.bracket-tree{width:100%;padding:var(--space-4) var(--space-2);overflow-x:auto}.bracket-rounds{align-items:stretch;gap:0;min-width:max-content;display:flex}.bracket-round{flex-direction:column;min-width:220px;display:flex}.round-title{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;text-align:center;padding:var(--space-2);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-3)}.round-matches{justify-content:space-around;gap:var(--space-2);flex-direction:column;flex:1;padding-inline-end:var(--space-4);display:flex}.bracket-match-wrapper{align-items:center;display:flex;position:relative}.bracket-match{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex:1;min-width:180px;overflow:hidden}.bracket-match.completed{border-color:var(--color-success)}.bracket-match.bye{opacity:.5}.bracket-match-wrapper:after{content:"";background:var(--color-border);width:16px;height:1px;position:absolute;top:50%;right:-16px}.bracket-round:last-child .bracket-match-wrapper:after{display:none}.bracket-player{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text);transition:background var(--transition-fast);cursor:default;align-items:center;min-height:36px;display:flex}.bracket-player.top{border-bottom:1px solid var(--color-border)}.bracket-player.winner{color:var(--color-success);background:#4ade8026;font-weight:700}.bracket-match:not(.completed):not(.bye) .bracket-player:hover{cursor:pointer;background:#ffffff0d}.bracket-vs{color:var(--color-text-muted);text-align:center;background:var(--color-bg);padding:2px;font-size:10px}.bracket-round:last-child .bracket-match.completed{border-color:var(--color-warning);box-shadow:0 0 12px #fbbf244d}.auth-form-container{max-width:440px;margin:var(--space-8) auto;padding:var(--space-8) var(--space-8) var(--space-6);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000004d}.auth-logo-section{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.auth-logo-circle{filter:drop-shadow(0 4px 16px #e945604d);background:#fffffff2;border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;display:flex;overflow:hidden}.auth-logo{object-fit:contain;width:150%;height:150%}.auth-brand{font-size:var(--font-size-2xl);color:var(--color-text-heading);letter-spacing:-.5px;font-weight:700}.auth-form-container h2{text-align:center;margin-bottom:var(--space-6);font-size:var(--font-size-xl);color:var(--color-text-muted);font-weight:500}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.form-field{gap:var(--space-1);flex-direction:column;display:flex}.form-field label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{width:100%;padding-inline-end:44px}.password-toggle{color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;inset-inline-end:8px}.password-toggle:hover{color:var(--color-text)}.form-field input{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);text-align:start;transition:border-color var(--transition-fast);font-family:inherit}.form-field input:focus{border-color:var(--color-primary);outline:none}.form-field input::placeholder{color:var(--color-text-muted);opacity:.5}.forgot-link{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:calc(-1 * var(--space-2));transition:color var(--transition-fast);align-self:flex-end}.forgot-link:hover{color:var(--color-primary)}.reset-email-info{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;margin-bottom:var(--space-2)}.reset-email-info strong{color:var(--color-text-heading)}.forgot-description{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;line-height:1.5}.code-input{letter-spacing:8px;text-align:center;font-family:var(--font-mono)!important;font-size:var(--font-size-2xl)!important}.auth-success{color:var(--color-success);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:center;background:#4ade801a}.auth-error{color:var(--color-error);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:#ef44441a}.auth-submit{width:100%;margin-top:var(--space-2)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-muted)}.auth-toggle-btn{color:var(--color-primary);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;padding:0}.auth-toggle-btn:hover{color:var(--color-primary-hover);text-decoration:underline}.level-quiz{flex-direction:column;align-items:center;gap:0;max-width:700px;margin:0 auto;display:flex}.quiz-top-section{align-items:center;gap:var(--space-1);width:100%;height:110px;padding-bottom:var(--space-1);flex-direction:column;flex-shrink:0;justify-content:flex-end;display:flex}.quiz-bottom-section{align-items:center;gap:var(--space-3);width:100%;min-height:160px;padding:var(--space-3) 0 var(--space-8);flex-direction:column;flex-shrink:0;display:flex}.quiz-info-slot{width:100%;min-height:60px;padding:0 var(--space-4);justify-content:center;align-items:flex-start;display:flex}.quiz-header{justify-content:space-between;align-items:center;width:100%;display:flex}.quiz-header h2{font-size:var(--font-size-xl)}.quiz-progress{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full)}.puzzle-description{color:var(--color-text);font-size:var(--font-size-base);text-align:center}.quiz-meta{align-items:center;gap:var(--space-4);display:flex}.diff-badge{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.diff-badge.beginner{color:var(--color-success);background:#4ade801a}.diff-badge.intermediate{color:var(--color-warning);background:#fbbf241a}.diff-badge.advanced{color:var(--color-primary);background:#e945601a}.attempts-left{font-size:var(--font-size-xs);color:var(--color-text-muted)}.quiz-feedback-slot{flex-shrink:0;justify-content:center;align-items:center;height:36px;display:flex}.quiz-feedback-slot:not(.visible) .quiz-feedback{opacity:0}.quiz-explanation{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;max-width:500px;padding:var(--space-1) var(--space-4);line-height:1.5;animation:.4s fadeInUp}.quiz-feedback{font-weight:700;font-size:var(--font-size-base);padding:var(--space-2) var(--space-6);border-radius:var(--radius-md);text-align:center;transition:opacity .2s}.quiz-feedback.correct{color:var(--color-success);background:#4ade801a}.quiz-feedback.wrong{color:var(--color-error);background:#ef44441a}.quiz-feedback.solution{color:var(--color-warning);font-family:var(--font-mono);background:#fbbf241a}.quiz-board .chess-board-outer{width:min(85vmin,560px);max-width:85vw;height:min(85vmin,560px);max-height:85vw}.quiz-bottom{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.quiz-dots{gap:var(--space-2);display:flex}.quiz-dot{border:2px solid var(--color-border);width:12px;height:12px;transition:all var(--transition-fast);border-radius:50%}.quiz-dot.current{border-color:var(--color-primary);background:#e945604d}.quiz-dot.correct{border-color:var(--color-success);background:var(--color-success)}.quiz-dot.wrong{border-color:var(--color-error);background:var(--color-error)}.quiz-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.flip-btn{font-size:var(--font-size-lg);padding:var(--space-1) var(--space-2);line-height:1}.quiz-hint{color:var(--color-warning);font-size:var(--font-size-sm);text-align:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:#fbbf2414;font-style:italic;animation:.3s fadeInUp}.quiz-result{align-items:center;gap:var(--space-4);padding:var(--space-8);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:400px;margin:var(--space-8) auto;text-align:center;flex-direction:column;display:flex}.quiz-score{align-items:baseline;gap:var(--space-1);display:flex}.score-number{color:var(--color-success);font-size:3rem;font-weight:700}.score-separator,.score-total{font-size:var(--font-size-2xl);color:var(--color-text-muted)}.quiz-rating-label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.quiz-rating-value{color:var(--color-warning);font-size:3rem;font-weight:700}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.profile-setup-container{max-width:400px;margin:var(--space-12) auto;padding:var(--space-8);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.profile-setup-container h2{margin-bottom:var(--space-2)}.setup-subtitle{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-6)}.profile-setup-form{gap:var(--space-4);text-align:left;flex-direction:column;display:flex}.profile-setup-container.quiz-step{max-width:700px;margin-top:var(--space-2);padding:var(--space-2) var(--space-4);background:0 0;border:none}.skip-btn{margin-top:var(--space-2)}.challenge-popup-overlay{z-index:150;background:#000000b3;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.challenge-popup{align-items:center;gap:var(--space-4);padding:var(--space-8);background:var(--color-bg-secondary);border:2px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:90%;max-width:360px;animation:.4s slideUp;display:flex}.cp-icon{font-size:3rem}.challenge-popup h3{font-size:var(--font-size-xl);color:var(--color-text-heading)}.cp-challenger{align-items:center;gap:var(--space-3);display:flex}.cp-avatar{background:var(--color-secondary);color:#fff;width:56px;height:56px;font-weight:700;font-size:var(--font-size-xl);border-radius:50%;justify-content:center;align-items:center;display:flex}.cp-info{flex-direction:column;display:flex}.cp-name{font-weight:700;font-size:var(--font-size-lg);color:var(--color-text-heading)}.cp-rating{font-size:var(--font-size-sm);color:var(--color-warning);font-weight:600}.cp-details{gap:var(--space-3);display:flex}.cp-tc{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--color-text);background:#ffffff0d}.cp-rated{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--color-primary);background:#e945601a;font-weight:600}.cp-color{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--color-text-heading);background:#ffffff0d;font-weight:500}.cp-details{flex-wrap:wrap;justify-content:center}.cp-actions{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.cp-accept{width:100%;padding:var(--space-3);font-size:var(--font-size-lg)}.cp-actions .btn-secondary{width:100%}.cp-later{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;padding:var(--space-1)}.cp-later:hover{color:var(--color-text)}
