:root,[data-theme=dark]{--bg-primary: #1a1a2e;--bg-card: #16213e;--bg-error: #3a1a1a;--bg-success: #1a3a1a;--bg-warning: #3a3a1a;--border-color: #333;--border-active: #c9a227;--text-primary: #e0e0e0;--text-secondary: #888;--text-muted: #666;--text-dim: #999;--text-light: #aaa;--text-bright: #bbb;--accent: #c9a227;--accent-bg: rgba(201, 162, 39, .1);--accent-bg-subtle: rgba(201, 162, 39, .05);--accent-bg-medium: rgba(201, 162, 39, .15);--success: #4caf50;--error: #e53935;--error-bg: rgba(229, 57, 53, .1);--shadow-dropdown: 0 4px 16px rgba(0, 0, 0, .4)}[data-theme=light]{--bg-primary: #f0f0f0;--bg-card: #ffffff;--bg-error: #fde8e8;--bg-success: #e8fde8;--bg-warning: #fdf8e8;--border-color: #d0d0d0;--border-active: #9a7a1a;--text-primary: #1a1a2e;--text-secondary: #555;--text-muted: #888;--text-dim: #666;--text-light: #555;--text-bright: #444;--accent: #9a7a1a;--accent-bg: rgba(154, 122, 26, .1);--accent-bg-subtle: rgba(154, 122, 26, .05);--accent-bg-medium: rgba(154, 122, 26, .15);--success: #2e7d32;--error: #c62828;--error-bg: rgba(198, 40, 40, .1);--shadow-dropdown: 0 4px 16px rgba(0, 0, 0, .15)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;border-bottom:1px solid var(--border-color)}.app-logo{font-size:1.5rem;font-weight:700;color:var(--accent);text-decoration:none}.app-main{flex:1;padding-top:1.5rem}.revoked-banner{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 1.5rem;background:var(--bg-error);color:var(--error);font-size:.9rem;text-align:center}.revoked-banner button{background:none;border:none;color:var(--error);font-size:1.2rem;cursor:pointer;padding:0 .25rem}.app-footer{text-align:center;padding:1.5rem;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:.8rem}.header-nav{display:flex;align-items:center;gap:.75rem}.nav-link{color:var(--accent);text-decoration:none;font-size:.9rem;padding:.4rem 1rem;border-radius:6px;transition:background .2s ease}.nav-link:hover{background:var(--accent-bg)}.nav-link-primary{background:var(--accent);color:var(--bg-primary);font-weight:600}.nav-link-primary:hover{opacity:.9;background:var(--accent)}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.4rem;background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.9rem;font-family:inherit;padding:.4rem .75rem;cursor:pointer;transition:border-color .2s ease}.user-menu-trigger:hover{border-color:var(--accent)}.user-menu-arrow{font-size:.6rem;color:var(--text-secondary)}.user-menu-dropdown{position:absolute;top:calc(100% + .4rem);right:0;min-width:160px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:.35rem 0;z-index:100;box-shadow:var(--shadow-dropdown)}.user-menu-item{display:block;width:100%;padding:.55rem 1rem;color:var(--text-primary);font-size:.9rem;text-decoration:none;text-align:left;background:none;border:none;font-family:inherit;cursor:pointer;transition:background .15s ease}.user-menu-item:hover{background:var(--accent-bg);color:var(--accent)}.user-menu-divider{height:1px;background:var(--border-color);margin:.35rem 0}.theme-toggle{background:none;border:1px solid var(--border-color);border-radius:6px;padding:.3rem .5rem;cursor:pointer;font-size:1rem;line-height:1;transition:border-color .2s ease}.theme-toggle:hover{border-color:var(--accent)}.game-browser{max-width:1200px;margin:0 auto;padding:0 1rem 2rem}.gb-search-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.gb-search-bar input[type=text]{flex:1;min-width:200px;padding:.6rem .85rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:.95rem}.gb-search-bar input[type=text]::placeholder{color:var(--text-muted)}.gb-search-bar input[type=text]:focus{outline:none;border-color:var(--accent)}.gb-clear-search{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;margin-left:-2.5rem;padding:0 .5rem}.gb-clear-search:hover{color:var(--text-primary)}.gb-filter-toggle{padding:.55rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:.9rem;white-space:nowrap;transition:border-color .2s ease}.gb-filter-toggle:hover{border-color:var(--accent)}.gb-filter-toggle.active{border-color:var(--accent);color:var(--accent)}.gb-result-count{color:var(--text-secondary);font-size:.85rem;white-space:nowrap}.gb-filter-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;align-items:center}.gb-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;background:var(--accent-bg);border:1px solid var(--accent);border-radius:20px;font-size:.8rem;color:var(--accent)}.gb-chip button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:1rem;padding:0;line-height:1}.gb-chip button:hover{color:var(--text-primary)}.gb-clear-all{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.8rem;text-decoration:underline}.gb-clear-all:hover{color:var(--text-primary)}.gb-layout{display:flex;gap:1.25rem}.gb-main{flex:1;min-width:0}.gb-filters{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;height:fit-content}.gb-filters h3{margin:0 0 .25rem;font-size:1rem;color:var(--text-primary)}.gb-filters label{font-size:.8rem;color:var(--text-secondary);margin-top:.25rem}.gb-filters input[type=text],.gb-filters input[type=number],.gb-filters select{width:100%;padding:.45rem .6rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:.85rem}.gb-filters input[type=text]::placeholder,.gb-filters input[type=number]::placeholder,.gb-filters select::placeholder{color:var(--text-muted)}.gb-filters input[type=text]:focus,.gb-filters input[type=number]:focus,.gb-filters select:focus{outline:none;border-color:var(--accent)}.gb-filters select{cursor:pointer}.gb-filters-header{display:flex;justify-content:space-between;align-items:center}.gb-filters-close{display:none;background:none;border:none;color:var(--text-muted);font-size:1.3rem;cursor:pointer}.gb-side-toggle{display:flex;border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.gb-side-toggle button{flex:1;padding:.3rem;border:none;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;font-size:.75rem;transition:background .15s ease}.gb-side-toggle button.active{background:var(--accent-bg-medium);color:var(--accent)}.gb-side-toggle button:not(:last-child){border-right:1px solid var(--border-color)}.gb-player-autocomplete,.gb-opening-autocomplete{position:relative}.gb-suggestions{position:absolute;top:100%;left:0;right:0;z-index:10;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;margin-top:2px;max-height:200px;overflow-y:auto;list-style:none;padding:0;margin-left:0}.gb-suggestions li{padding:.4rem .6rem;cursor:pointer;font-size:.8rem;color:var(--text-primary);border-bottom:1px solid var(--border-color)}.gb-suggestions li:last-child{border-bottom:none}.gb-suggestions li:hover{background:var(--accent-bg-subtle)}.gb-suggestions li strong{color:var(--accent)}.gb-suggestion-count{color:var(--text-muted);margin-left:.3rem;font-size:.75rem}.gb-opening-trigger{display:flex;align-items:center;justify-content:space-between;padding:.5rem .65rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.85rem;cursor:pointer;transition:border-color .15s ease}.gb-opening-trigger:hover{border-color:var(--accent)}.gb-opening-placeholder{color:var(--text-muted)}.gb-opening-clear{background:none;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:0 .15rem;line-height:1}.gb-opening-clear:hover{color:var(--text-primary)}.opening-popup-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.opening-popup{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;width:820px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-dropdown)}.opening-popup-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem 0}.opening-popup-header h3{margin:0;font-size:1rem;color:var(--text-primary)}.opening-popup-close{background:none;border:none;font-size:1.4rem;color:var(--text-muted);cursor:pointer;padding:0 .25rem;line-height:1}.opening-popup-close:hover{color:var(--text-primary)}.opening-popup-search{margin:.75rem 1.25rem;padding:.6rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.9rem;outline:none}.opening-popup-search:focus{border-color:var(--accent)}.opening-popup-body{display:flex;flex:1;min-height:0;border-top:1px solid var(--border-color)}.opening-popup-results{flex:1;overflow-y:auto;border-right:1px solid var(--border-color);min-height:360px;max-height:500px}.opening-popup-item{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;cursor:pointer;transition:background .15s ease;border-bottom:1px solid rgba(var(--border-color),.5)}.opening-popup-item:hover,.opening-popup-item.selected{background:var(--accent-bg)}.opening-popup-eco{font-weight:700;color:var(--accent);font-size:.85rem;min-width:36px}.opening-popup-name{flex:1;color:var(--text-primary);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opening-popup-count{color:var(--text-muted);font-size:.75rem;white-space:nowrap}.opening-popup-preview{width:300px;min-width:300px;padding:1.25rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.opening-popup-board{width:250px;height:250px;border-radius:4px;overflow:hidden}.opening-popup-preview-title{font-size:.85rem;color:var(--text-primary);text-align:center}.opening-popup-preview-title strong{color:var(--accent)}.opening-popup-board{border-radius:4px;overflow:hidden}.opening-popup-moves{font-size:.75rem;color:var(--text-secondary);line-height:1.4;text-align:center;max-height:50px;overflow:hidden}.opening-popup-game-count{font-size:.75rem;color:var(--text-muted)}.opening-popup-status{padding:2rem 1rem;text-align:center;color:var(--text-muted);font-size:.85rem}@media(max-width:640px){.opening-popup-body{flex-direction:column}.opening-popup-results{border-right:none;border-bottom:1px solid var(--border-color);max-height:200px}.opening-popup-preview{width:100%}}.opening-preview{position:absolute;left:calc(100% + .75rem);top:0;width:220px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:.75rem;z-index:20;box-shadow:var(--shadow-dropdown)}.opening-preview-header{font-size:.8rem;color:var(--text-primary);margin-bottom:.5rem;line-height:1.3}.opening-preview-header strong{color:var(--accent)}.opening-preview-board{width:200px;height:200px;margin:0 auto .5rem;border-radius:4px;overflow:hidden}.opening-preview-moves{font-size:.7rem;color:var(--text-secondary);line-height:1.4;margin-bottom:.3rem;max-height:60px;overflow:hidden}.opening-preview-count{font-size:.7rem;color:var(--text-muted)}.opening-preview-loading{font-size:.8rem;color:var(--text-muted);padding:1rem;text-align:center}@media(max-width:1024px){.opening-preview{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:200}}.gb-range-inputs{display:flex;align-items:center;gap:.4rem}.gb-range-inputs input{flex:1;min-width:0}.gb-range-inputs span{color:var(--text-muted)}.gb-checkbox-label{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.85rem!important;color:var(--text-primary)!important}.gb-checkbox-label input[type=checkbox]{width:auto;accent-color:var(--accent)}.gb-filter-actions{display:flex;gap:.5rem;margin-top:.5rem}.gb-apply-btn{flex:1;padding:.45rem;background:var(--accent);color:var(--bg-primary);border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:.85rem}.gb-apply-btn:hover{opacity:.9}.gb-reset-btn{padding:.45rem .75rem;background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:.85rem}.gb-reset-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.gb-table{width:100%;border-collapse:collapse;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.gb-table th,.gb-table td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--border-color);font-size:.85rem}.gb-table th{background:var(--bg-card);color:var(--text-secondary);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;-webkit-user-select:none;user-select:none}.gb-table th.sortable{cursor:pointer}.gb-table th.sortable:hover{color:var(--accent)}.gb-table tbody tr{background:var(--bg-primary);transition:background .15s ease}.gb-row{cursor:pointer}.gb-row:hover{background:var(--accent-bg-subtle)!important}.gb-players{font-weight:500;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.gb-result{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.75rem;font-weight:600;background:var(--border-color)}.sort-icon{font-size:.75rem;color:var(--text-muted)}.sort-icon.active{color:var(--accent)}.gb-skeleton-row td{padding:.7rem .75rem}.gb-skeleton{height:.85rem;width:80%;background:linear-gradient(90deg,var(--border-color) 25%,transparent 50%,var(--border-color) 75%);background-size:200% 100%;border-radius:4px;animation:shimmer 1.5s infinite}.gb-skeleton-sm{width:40%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.gb-cards{display:flex;flex-direction:column;gap:.6rem}.gb-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:.75rem 1rem;cursor:pointer;transition:border-color .2s ease}.gb-card:hover{border-color:var(--accent)}.gb-card-players{font-weight:600;font-size:.95rem;margin-bottom:.25rem}.gb-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--text-secondary)}.gb-show-mobile{display:none}.gb-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;flex-wrap:wrap;gap:.75rem}.gb-page-controls{display:flex;align-items:center;gap:.4rem}.gb-page-controls button{padding:.35rem .7rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.8rem;transition:border-color .15s ease}.gb-page-controls button:hover:not(:disabled){border-color:var(--accent)}.gb-page-controls button:disabled{opacity:.3;cursor:default}.gb-page-info{font-size:.85rem;color:var(--text-secondary);padding:0 .4rem}.gb-page-size{display:flex;align-items:center;gap:.4rem}.gb-page-size label{font-size:.8rem;color:var(--text-secondary)}.gb-page-size select{padding:.3rem .5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.8rem;cursor:pointer}.gb-page-size select:focus{outline:none;border-color:var(--accent)}.no-results{text-align:center;color:var(--text-muted);padding:2rem 0}#loading{text-align:center;color:var(--text-muted)}.game-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem 1.25rem;cursor:pointer;transition:border-color .2s ease}.game-card:hover{border-color:var(--accent)}.game-card .players{font-size:1.1rem;font-weight:600;margin-bottom:.35rem}.game-card .meta{font-size:.85rem;color:var(--text-secondary)}.game-card .result{display:inline-block;margin-top:.5rem;padding:.15rem .5rem;border-radius:4px;font-size:.8rem;font-weight:600;background:var(--border-color)}.game-card-disabled{opacity:.4;cursor:default}.game-card-disabled:hover{border-color:var(--border-color)}@media(max-width:1024px){.gb-col-hide-tablet,.gb-filters{display:none}.gb-filters.open{display:flex;position:fixed;inset:0;width:100%;z-index:100;border-radius:0;overflow-y:auto;padding:1.5rem}.gb-filters-close{display:block}}@media(max-width:768px){.gb-hide-mobile{display:none}.gb-show-mobile{display:flex}.game-browser{padding:0 .5rem 1.5rem}.gb-search-bar{flex-direction:column;align-items:stretch}.gb-search-bar input[type=text]{min-width:0}.gb-clear-search{position:absolute;right:.5rem;top:.5rem}.gb-pagination{flex-direction:column;align-items:center}}.game-play{max-width:960px;margin:0 auto;padding:0 1rem 2rem;display:flex;flex-direction:column;align-items:center}.game-layout{display:flex;gap:1.25rem;align-items:flex-start;width:100%}.game-col-board{flex-shrink:0;width:480px}.game-col-side{flex:1;min-width:0;display:flex;flex-direction:column;gap:.5rem}.board-nav{display:flex;align-items:center;justify-content:center;gap:.25rem;margin-top:.4rem}.board-nav-btn{padding:.2rem .5rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-size:1rem;font-family:inherit;line-height:1;transition:border-color .2s ease}.board-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}.board-nav-btn:disabled{opacity:.3;cursor:default}.board-nav-label{font-size:.8rem;color:var(--text-secondary);min-width:7rem;text-align:center}.difficulty-panel-inline{display:flex;align-items:center;gap:.6rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:.5rem .75rem;width:100%}.difficulty-panel-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.difficulty-panel-rating{font-size:1.2rem;font-weight:800;color:var(--accent);line-height:1}.difficulty-panel-tier{font-size:.75rem;color:var(--text-secondary);font-weight:600}.difficulty-panel-bar-h{flex:1;height:4px;background:var(--border-color);border-radius:2px;overflow:hidden}.auto-analyze-indicator{margin-top:.4rem;padding:.3rem .6rem;font-size:.7rem;color:var(--text-muted);background:var(--bg-card);border:1px dashed var(--border-color);border-radius:8px;text-align:center;cursor:help}.difficulty-panel-bar-h-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.game-info{text-align:center;margin-bottom:1rem}.game-info h2{font-size:1.2rem;color:var(--text-primary)}.game-info p{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.board-wrapper{border-radius:4px;overflow:hidden}.board-controls{display:flex;align-items:center;gap:.75rem}.analyze-section{margin-top:.5rem}.analyze-btn{padding:.35rem 1rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-size:.8rem;font-family:inherit;transition:border-color .2s ease}.analyze-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}.analyze-btn:disabled{cursor:default;opacity:.7}.puzzle-rating-badge{font-weight:600}.rating-up{color:var(--success);font-weight:700;margin-left:4px}.rating-down{color:var(--error);font-weight:700;margin-left:4px}.point-popup{margin-left:6px;color:var(--success);font-weight:700;font-size:.9rem}.streak-indicator{display:block;font-size:.8rem;color:var(--accent);font-weight:600}.live-score{font-size:.85rem;color:var(--text-secondary);text-align:center}.game-grade{font-size:2rem;font-weight:800;color:var(--accent)}.game-score-summary{font-size:.9rem;color:var(--text-secondary)}.longest-streak{color:var(--accent);font-weight:600}.opening-phase{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem 1.5rem;width:100%;max-width:400px}.opening-title{font-size:1.05rem;font-weight:700;color:var(--accent)}.opening-subtitle{font-size:.8rem;color:var(--text-muted);text-align:center;line-height:1.3}.opening-progress{width:100%;display:flex;flex-direction:column;align-items:center;gap:.3rem}.opening-progress-bar{width:100%;height:4px;background:var(--border-color);border-radius:2px;overflow:hidden}.opening-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.opening-progress-text{font-size:.8rem;color:var(--text-secondary)}.opening-next-btn{padding:.5rem 1.5rem;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:var(--bg-primary);cursor:pointer;font-size:.95rem;font-weight:600;font-family:inherit;transition:opacity .2s ease}.opening-next-btn:hover{opacity:.85}.opening-transition{display:flex;flex-direction:column;align-items:center;gap:.25rem}.opening-complete{color:var(--success);font-weight:700;font-size:1.1rem}.opening-transition-sub{color:var(--text-secondary);font-size:.85rem}.feedback-correct{color:var(--success);font-weight:600;font-size:1.1rem}.feedback-incorrect{color:var(--error);font-weight:600;font-size:1.1rem}.feedback-good-move{color:var(--accent);font-weight:600;font-size:1.1rem}.feedback-with-retry{display:flex;flex-direction:column;align-items:center;gap:.5rem}.try-again-btn{padding:.4rem 1.2rem;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:var(--bg-primary);cursor:pointer;font-size:.9rem;font-weight:600;font-family:inherit;transition:opacity .2s ease}.try-again-btn:hover{opacity:.85}.feedback-prompt{color:var(--text-secondary);font-size:.95rem}.feedback-gameover{color:var(--accent);font-weight:600;font-size:1.1rem}.game-accuracy{color:var(--accent);font-size:1rem;font-weight:600}.progress-saved{color:var(--success);font-size:.85rem}.game-over-section{display:flex;flex-direction:column;align-items:center;gap:.75rem}.signup-prompt{color:var(--bg-primary);background:var(--accent);font-size:.9rem;font-weight:600;text-decoration:none;padding:.5rem 1.25rem;border-radius:6px;transition:opacity .2s ease}.signup-prompt:hover{opacity:.9}.back-link{color:var(--accent);font-size:.9rem;text-decoration:none;border:1px solid var(--border-color);padding:.4rem 1rem;border-radius:6px;transition:border-color .2s ease}.back-link:hover{border-color:var(--accent)}.analysis-panel{display:flex;flex-direction:column;gap:.4rem;padding:.5rem .6rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;font-size:.8rem}.analysis-section{display:flex;flex-direction:column;gap:.15rem}.analysis-section-title{font-size:.7rem;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.analysis-detail{font-size:.75rem;color:var(--text-secondary);line-height:1.3}.analysis-tag{display:inline-block;font-size:.6rem;padding:.05rem .3rem;border-radius:3px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.analysis-tag-blue{color:#64b5f6;background:#64b5f61a}.analysis-tag-green{color:var(--success);background:#4caf501a}.analysis-tag-gray{color:var(--text-muted);background:#9e9e9e14}.engine-line-row{display:flex;align-items:center;gap:.35rem;padding:.1rem 0;flex-wrap:wrap}.engine-line-good{background:#4caf500a}.engine-line-rank{color:var(--text-muted);min-width:1.2rem;font-size:.75rem}.engine-line-move{font-weight:600;color:var(--text-primary);min-width:3rem}.engine-line-eval{color:var(--text-secondary);font-family:monospace;font-size:.72rem;min-width:3.5rem}.eval-display{font-size:.85rem;color:var(--text-light);text-align:center}.alternative-moves{padding:.6rem .8rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;width:100%}.alt-header{font-size:.8rem;color:var(--text-secondary);margin-bottom:.4rem}.alt-list{display:flex;flex-direction:column;gap:.25rem}.alt-line{display:flex;align-items:center;gap:.5rem;padding:.2rem .4rem;border-radius:3px;font-size:.85rem}.alt-master{background:#c9a2271a}.alt-user{background:#e539351a}.alt-rank{color:var(--text-muted);min-width:1.2rem}.alt-move{font-weight:600;color:var(--text-primary)}.alt-score{color:var(--text-secondary);font-size:.8rem}.alt-label{font-size:.7rem;padding:.1rem .3rem;border-radius:3px;margin-left:auto}.alt-label-master{color:var(--accent);background:#c9a22726}.alt-label-user{color:var(--error);background:#e5393526}.move-list{background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;width:100%;height:200px;display:flex;flex-direction:column}.move-list-header{font-size:.8rem;color:var(--text-secondary);padding:.4rem .6rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:.3rem}.move-list-col-header{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;width:2.5rem;text-align:right}.move-list-body{overflow-y:auto;padding:.3rem .4rem}.move-pair{display:flex;align-items:center;justify-content:space-between;gap:.3rem;padding:.15rem .2rem;font-size:.85rem}.move-pair-moves{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap;min-width:0}.move-deltas{display:flex;align-items:center;gap:.3rem;flex-shrink:0}.move-number{color:var(--text-muted);min-width:2rem;text-align:right;font-size:.8rem}.move-san{color:var(--text-primary);padding:.1rem .35rem;border-radius:3px;min-width:3rem}.move-mistake{background:#e5393514}.guess-result-icon{font-weight:700;font-size:.75rem;margin-left:2px}.move-delta{font-size:.7rem;font-weight:600;font-family:monospace;width:2.5rem;text-align:right;flex-shrink:0}.move-opening{color:var(--text-muted);font-style:italic}.move-active{background:var(--accent-bg-medium);color:var(--accent);font-weight:600}.register-page{max-width:400px;margin:0 auto;padding:0 1rem 2rem}.register-page h2{text-align:center;color:var(--accent);margin-bottom:1.5rem}.register-form{display:flex;flex-direction:column;gap:.5rem}.register-form label{font-size:.85rem;color:var(--text-light);margin-top:.25rem}.register-form input{padding:.7rem 1rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:1rem}.register-form input::placeholder{color:var(--text-muted)}.register-form input:focus{outline:none;border-color:var(--accent)}.register-form button{margin-top:.75rem;padding:.75rem;border:none;border-radius:8px;background:var(--accent);color:var(--bg-primary);font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.register-form button:hover{opacity:.9}.register-form button:disabled{opacity:.5;cursor:not-allowed}.register-error{background:var(--bg-error);color:var(--error);padding:.6rem .8rem;border-radius:6px;font-size:.9rem;text-align:center}.register-login-link{text-align:center;margin-top:1rem;font-size:.85rem;color:var(--text-secondary)}.register-login-link a{color:var(--accent);text-decoration:none}.register-login-link a:hover{text-decoration:underline}.forgot-password-sent{text-align:center;color:var(--text-dim);line-height:1.6;margin-bottom:1rem}.auth-divider{display:flex;align-items:center;margin:1.25rem 0;color:var(--text-muted);font-size:.85rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.auth-divider span{padding:0 .75rem}.google-signin{display:flex;flex-direction:column;align-items:center;gap:.5rem}.verify-email-page{max-width:400px;margin:0 auto;padding:2rem 1rem;text-align:center}.verify-email-result{display:flex;flex-direction:column;align-items:center;gap:1rem}.verify-email-result h2{color:var(--text-primary)}.verify-email-result p{color:var(--text-dim)}.verify-email-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700}.verify-email-success{background:var(--bg-success);color:var(--success)}.verify-email-error{background:var(--bg-error);color:var(--error)}.landing{width:100%}.landing-hero{text-align:center;padding:2.5rem 1.5rem 2rem;max-width:700px;margin:0 auto}.landing-hero h2{font-size:2.2rem;color:var(--accent);margin-bottom:.75rem;line-height:1.2}.landing-hero-sub{font-size:1.05rem;color:var(--text-bright);line-height:1.6;margin-bottom:1.5rem}.landing-cta-group{display:flex;gap:.75rem;justify-content:center;align-items:center;flex-wrap:wrap}.landing-cta-secondary{color:var(--accent);text-decoration:none;font-size:1rem;font-weight:600;border:1px solid var(--accent);padding:.7rem 1.75rem;border-radius:8px;transition:background .2s ease}.landing-cta-secondary:hover{background:var(--accent-bg)}.landing-cta{display:inline-block;padding:.75rem 1.75rem;background:var(--accent);color:var(--bg-primary);font-size:1rem;font-weight:600;border-radius:8px;text-decoration:none;transition:opacity .2s ease}.landing-cta:hover{opacity:.9}.landing-hero-stats{display:flex;justify-content:center;gap:2.5rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.landing-stat{text-align:center}.landing-stat-number{display:block;font-size:1.8rem;font-weight:700;color:var(--accent)}.landing-stat-label{font-size:.8rem;color:var(--text-dim);margin-top:.15rem}.landing-section{padding:2rem 1.5rem;max-width:900px;margin:0 auto}.landing-section h3{text-align:center;font-size:1.3rem;color:var(--accent);margin-bottom:1.25rem}.landing-how{background:var(--bg-card);max-width:100%;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.landing-how .landing-steps{max-width:900px;margin:0 auto}.landing-steps{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.landing-step{text-align:center;flex:1;min-width:180px;max-width:240px}.landing-step h4{font-size:.95rem;color:var(--text-primary);margin-bottom:.3rem}.landing-step p{font-size:.85rem;color:var(--text-dim);line-height:1.4}.landing-step-icon{width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--bg-primary);font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto .6rem}.landing-feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.landing-feature-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1.1rem 1.25rem;transition:border-color .2s ease}.landing-feature-card:hover{border-color:var(--accent)}.landing-feature-card h4{font-size:.95rem;color:var(--text-primary);margin-bottom:.3rem}.landing-feature-card p{font-size:.8rem;color:var(--text-dim);line-height:1.4}.landing-final-cta{text-align:center;background:var(--bg-card);max-width:100%;padding:2.5rem 1.5rem}.landing-final-cta h3{margin-bottom:1rem}.profile-page{max-width:800px;margin:0 auto;padding:0 1rem 2rem}.profile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.profile-header h2{color:var(--accent)}.profile-layout{display:flex;gap:2rem}.profile-sidebar{display:flex;flex-direction:column;gap:.25rem;min-width:150px;border-right:1px solid var(--border-color);padding-right:1.5rem}.profile-nav-item{background:none;border:none;border-radius:6px;padding:.6rem 1rem;color:var(--text-secondary);font-size:.95rem;font-family:inherit;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease}.profile-nav-item:hover{color:var(--text-primary);background:#ffffff08}.profile-nav-active{color:var(--accent);background:var(--accent-bg)}.profile-content{flex:1;min-width:0}.preferences-section{display:flex;flex-direction:column;gap:1.5rem}.pref-group h3{color:var(--text-primary);font-size:1rem;margin-bottom:.75rem}.pref-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px}.pref-info{display:flex;flex-direction:column;gap:.15rem}.pref-label{font-size:.9rem;color:var(--text-primary)}.pref-desc{font-size:.8rem;color:var(--text-secondary)}.pref-toggle{padding:.35rem 1rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-secondary);font-size:.85rem;font-family:inherit;cursor:pointer;transition:all .2s ease;min-width:50px}.pref-toggle-on{background:var(--accent-bg-medium);border-color:var(--accent);color:var(--accent)}.pref-coming-soon{color:var(--text-muted);font-size:.85rem;font-style:italic}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:2rem}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem;text-align:center;display:flex;flex-direction:column;gap:.3rem}.stat-value{font-size:1.5rem;font-weight:700;color:var(--accent)}.stat-label{font-size:.75rem;color:var(--text-dim)}.profile-section h3{color:var(--text-primary);margin-bottom:1rem}.profile-empty{color:var(--text-muted);font-size:.9rem}.profile-empty a{color:var(--accent)}.history-table{display:flex;flex-direction:column}.history-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;padding:.5rem 1rem;font-size:.8rem;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.history-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;padding:.65rem 1rem;border-bottom:1px solid #2a2a3e;text-decoration:none;color:var(--text-primary);font-size:.9rem;transition:background .15s ease}.history-row:hover{background:var(--accent-bg-subtle)}.history-game{color:var(--text-primary)}.history-accuracy{color:var(--accent);font-weight:600}.history-score{color:var(--text-dim)}.history-date{color:var(--text-muted)}.rating-dashboard{display:flex;flex-direction:column;gap:1.5rem}.rating-loading,.rating-no-data{color:var(--text-muted);font-size:.9rem}.rating-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.rating-stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem;text-align:center;display:flex;flex-direction:column;gap:.3rem}.rating-stat-main{border-color:var(--accent)}.rating-stat-value{font-size:1.5rem;font-weight:700;color:var(--accent)}.rating-stat-label{font-size:.75rem;color:var(--text-dim)}.rating-badge{font-weight:600}.rating-chart-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.rating-chart-title{font-size:.9rem;color:var(--text-secondary);margin-bottom:.75rem}.board-theme-grid{display:flex;flex-wrap:wrap;gap:.75rem}.board-theme-option{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.5rem;background:none;border:2px solid var(--border-color);border-radius:6px;cursor:pointer;transition:border-color .2s ease;font-family:inherit}.board-theme-option:hover,.board-theme-active{border-color:var(--accent)}.board-theme-preview{display:grid;grid-template-columns:1fr 1fr;width:48px;height:48px;border-radius:3px;overflow:hidden}.preview-square{width:24px;height:24px}.board-theme-name{font-size:.75rem;color:var(--text-secondary)}.settings-page{max-width:500px;margin:0 auto;padding:0 1rem 2rem}.settings-page h2{color:var(--accent)}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.settings-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.settings-section:last-child{border-bottom:none}.settings-section h3{font-size:1.1rem;color:var(--text-primary);margin-bottom:1rem}.settings-form{display:flex;flex-direction:column;gap:.5rem}.settings-form label{font-size:.85rem;color:var(--text-light);margin-top:.25rem}.settings-form input{padding:.7rem 1rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:1rem}.settings-form input:disabled{opacity:.5;cursor:not-allowed}.settings-form input::placeholder{color:var(--text-muted)}.settings-form input:focus{outline:none;border-color:var(--accent)}.settings-form button{margin-top:.75rem;padding:.65rem 1.5rem;border:none;border-radius:8px;background:var(--accent);color:var(--bg-primary);font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s ease;align-self:flex-start}.settings-form button:hover{opacity:.9}.settings-form button:disabled{opacity:.5;cursor:not-allowed}.settings-meta{font-size:.8rem;color:var(--text-muted);margin-top:.25rem}.settings-error{background:var(--bg-error);color:var(--error);padding:.5rem .75rem;border-radius:6px;font-size:.85rem}.settings-success{background:var(--bg-success);color:var(--success);padding:.5rem .75rem;border-radius:6px;font-size:.85rem}.settings-placeholder p{color:var(--text-muted);font-size:.9rem}.settings-danger h3{color:var(--error)}.settings-danger .settings-meta{margin-bottom:1rem}.danger-btn{padding:.5rem 1.25rem;border:1px solid var(--error);border-radius:6px;background:none;color:var(--error);font-size:.9rem;font-family:inherit;font-weight:600;cursor:pointer;transition:background .2s ease}.danger-btn:hover{background:var(--error-bg)}.danger-btn:disabled{opacity:.5;cursor:not-allowed}.delete-confirm{display:flex;flex-direction:column;gap:.5rem}.delete-confirm label{font-size:.85rem;color:var(--text-light)}.delete-warning{color:var(--error);font-size:.9rem;line-height:1.5;padding:.75rem;background:var(--bg-error);border-radius:6px}.delete-actions{display:flex;gap:.75rem;margin-top:.5rem}.settings-form-input{padding:.7rem 1rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:1rem}.settings-form-input:focus{outline:none;border-color:var(--error)}.settings-sessions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.settings-sessions-header h3{margin-bottom:0}.sessions-list{display:flex;flex-direction:column;gap:.5rem}.session-card{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px}.session-current{border-color:var(--accent)}.session-info{display:flex;flex-direction:column;gap:.2rem}.session-device{font-size:.9rem;color:var(--text-primary);font-weight:500}.session-meta{font-size:.8rem;color:var(--text-secondary)}.session-badge{display:inline-block;margin-left:.5rem;padding:.1rem .4rem;background:var(--accent-bg-medium);color:var(--accent);font-size:.75rem;font-weight:600;border-radius:4px}.session-revoke{background:none;border:1px solid var(--error);color:var(--error);padding:.3rem .75rem;border-radius:6px;font-size:.8rem;font-family:inherit;cursor:pointer;transition:background .2s ease;flex-shrink:0}.session-revoke:hover{background:var(--error-bg)}.settings-email-row{display:flex;align-items:center;gap:.5rem}.settings-email-row input{flex:1}.settings-badge{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0}.settings-badge-verified{background:var(--bg-success);color:var(--success)}.settings-badge-unverified{background:var(--bg-warning);color:var(--accent)}.settings-verify-section{display:flex;flex-direction:column;gap:.4rem}.settings-verify-btn{align-self:flex-start;padding:.45rem 1rem;border:1px solid var(--accent);border-radius:6px;background:none;color:var(--accent);font-size:.85rem;font-family:inherit;cursor:pointer;transition:background .2s ease}.settings-verify-btn:hover{background:var(--accent-bg)}.settings-verify-btn:disabled{opacity:.5;cursor:not-allowed}.opening-explorer{max-width:960px;margin:0 auto;padding:2rem 1rem}.opening-explorer h1{margin-bottom:1.5rem;color:var(--text-primary)}.explorer-layout{display:flex;gap:2rem;align-items:flex-start}.explorer-board-section{flex-shrink:0;width:400px}.explorer-board-wrapper{border-radius:8px;overflow:hidden;width:400px;height:400px}.explorer-controls{display:flex;align-items:center;gap:.75rem;margin-top:.75rem}.explorer-btn{padding:.4rem 1rem;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:.875rem;transition:border-color .2s ease}.explorer-btn:hover:not(:disabled){border-color:var(--accent)}.explorer-btn:disabled{opacity:.4;cursor:default}.explorer-move-count{color:var(--text-secondary);font-size:.875rem;margin-left:auto}.explorer-move-history{margin-top:.5rem;padding:.5rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-dim);font-size:.875rem;line-height:1.5}.explorer-data-section{flex:1;min-width:0}.explorer-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.explorer-panel h2{font-size:1rem;color:var(--text-primary);margin-bottom:.75rem}.explorer-loading,.explorer-empty{color:var(--text-secondary);font-size:.875rem;padding:.5rem 0}.move-stats-list{display:flex;flex-direction:column}.move-row{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:6px;cursor:pointer;transition:background-color .2s ease}.move-row:hover{background:var(--accent-bg)}.move-name{font-weight:600;color:var(--text-primary);min-width:3.5rem;font-size:.9rem}.move-count{color:var(--text-secondary);font-size:.8rem;min-width:2.5rem;text-align:right}.result-bar{flex:1;display:flex;height:20px;border-radius:3px;overflow:hidden;font-size:.7rem;font-weight:600}.result-segment{display:flex;align-items:center;justify-content:center;min-width:0;white-space:nowrap}.result-white{background:#f0f0f0;color:#333}.result-draw{background:#888;color:#fff}.result-black{background:#333;color:#ddd}.explorer-games-panel{margin-top:1rem}.explorer-games-list{display:flex;flex-direction:column;gap:.5rem}.explorer-game-card{padding:.6rem .75rem;background:#ffffff08;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:border-color .2s ease}.explorer-game-card:hover{border-color:var(--accent)}.explorer-game-players{display:flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--text-primary);margin-bottom:.3rem}.explorer-game-vs{color:var(--text-muted);font-size:.75rem}.explorer-game-elo{color:var(--text-secondary);font-size:.8rem}.explorer-game-meta{display:flex;align-items:center;gap:.6rem;font-size:.75rem;color:var(--text-dim)}.explorer-game-result{font-weight:600;padding:.1rem .35rem;border-radius:3px;font-size:.7rem}.result-white-win{background:#ffffff26;color:#f0f0f0}.result-black-win{background:#333c;color:#ddd}.result-draw-result{background:#8888884d;color:#aaa}.explorer-load-more{display:block;width:100%;margin-top:.75rem;text-align:center}@media(max-width:768px){.explorer-layout{flex-direction:column}.explorer-board-wrapper{max-width:100%}}@media(max-width:768px){.game-layout{flex-direction:column;align-items:center}.game-col-board,.game-col-side{width:100%;max-width:480px}}@media(max-width:600px){.landing-hero h2{font-size:1.7rem}.landing-hero-stats{gap:1.5rem}.landing-feature-grid{grid-template-columns:1fr}.landing-steps{flex-direction:column;align-items:center}.landing-cta{display:block;text-align:center}.stats-grid{grid-template-columns:repeat(2,1fr)}.profile-layout{flex-direction:column;gap:1rem}.profile-sidebar{flex-direction:row;border-right:none;border-bottom:1px solid var(--border-color);padding-right:0;padding-bottom:.5rem;min-width:0}}
