:root,[data-theme=dark]{--bg-primary: #161512;--bg-page-top: #2e2a24;--bg-card: #262421;--bg-card-head: #302e2c;--bg-error: #3b2424;--bg-success: #26331a;--bg-warning: #3a3320;--border-color: #3d3a37;--border-active: #3692e7;--text-primary: #bababa;--text-secondary: #8c8a87;--text-muted: #6f6d6a;--text-dim: #999;--text-light: #aaa;--text-bright: #cfcfcf;--text-heading: #e3e3e3;--accent: #3692e7;--accent-bg: rgba(54, 146, 231, .12);--accent-bg-subtle: rgba(54, 146, 231, .06);--accent-bg-medium: rgba(54, 146, 231, .2);--brand: #c7a76c;--success: #629924;--error: #cc3333;--error-bg: rgba(204, 51, 51, .12);--shadow-dropdown: 0 2px 6px rgba(0, 0, 0, .5)}[data-theme=light]{--bg-primary: #edebe9;--bg-page-top: #fff;--bg-card: #fff;--bg-card-head: #f4f3f1;--bg-error: #fbe9e9;--bg-success: #ebf3e0;--bg-warning: #fbf3dd;--border-color: #d9d7d4;--border-active: #1b78d0;--text-primary: #4d4d4d;--text-secondary: #787674;--text-muted: #9a9896;--text-dim: #6b6967;--text-light: #5c5a58;--text-bright: #333;--text-heading: #222;--accent: #1b78d0;--accent-bg: rgba(27, 120, 208, .1);--accent-bg-subtle: rgba(27, 120, 208, .05);--accent-bg-medium: rgba(27, 120, 208, .16);--brand: #8b6a2e;--success: #4f7d1c;--error: #c33;--error-bg: rgba(204, 51, 51, .1);--shadow-dropdown: 0 2px 6px rgba(0, 0, 0, .18)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Cabinet Grotesk,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;background:linear-gradient(to bottom,var(--bg-page-top),var(--bg-primary) 116px) no-repeat;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh}button,input,select,textarea{font-family:inherit}a{color:var(--accent)}h1,h2,h3,h4{color:var(--text-heading);font-weight:600}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;height:3.2rem;padding:0 1.5rem;max-width:1300px;width:100%;margin:0 auto}.app-logo{display:inline-flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;letter-spacing:.01em;color:var(--text-heading);text-decoration:none}.app-logo:hover .app-logo-mark{animation:logo-hop .6s ease-in-out}.app-logo-mark{display:block;width:36px;height:36px}[data-theme=light] .app-logo-mark{filter:invert(1)}.app-logo-word{display:inline-flex;align-items:baseline;line-height:1}.app-logo-chess{font-family:Bespoke Stencil,Stardom,sans-serif;letter-spacing:.04em}.app-logo-opus{font-family:Britney,Stardom,sans-serif;font-size:1.2em;line-height:1}@keyframes logo-hop{0%{transform:translateY(0)}30%{transform:translateY(-9px)}55%{transform:translateY(0)}75%{transform:translateY(-4px)}to{transform:translateY(0)}}.app-logo-tld{font-family:Bespoke Stencil,Stardom,sans-serif;font-size:.62em;font-weight:700;letter-spacing:.04em;color:var(--text-muted)}.app-main{flex:1;padding-top:.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{display:flex;align-items:center;justify-content:center;gap:.5rem;text-align:center;padding:1.25rem;color:var(--text-muted);font-size:.8rem}.app-footer-sep{color:var(--text-muted)}.app-footer-link{color:var(--text-muted);text-decoration:none;transition:color .15s ease}.app-footer-link:hover{color:var(--accent)}.header-nav{display:flex;align-items:center;gap:.25rem}.nav-link{color:var(--text-secondary);text-decoration:none;font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;padding:.5rem .75rem;transition:color .15s ease}.nav-link:hover{color:var(--accent)}.nav-link-primary{color:var(--accent);font-weight:600}.header-nav-desktop{display:contents}.mobile-menu{display:none;position:relative}.mobile-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;background:none;border:1px solid var(--border-color);border-radius:2px;padding:0;cursor:pointer;color:var(--text-primary);transition:border-color .2s ease,background .2s ease}.mobile-menu-trigger:hover,.mobile-menu-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-bg-subtle)}.mobile-menu-panel{position:absolute;top:calc(100% + .45rem);right:0;min-width:200px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:3px;box-shadow:var(--shadow-dropdown);padding:.35rem 0;z-index:200}.mobile-menu-item{display:block;width:100%;padding:.7rem 1.1rem;color:var(--text-primary);font-size:1rem;font-family:inherit;text-align:left;text-decoration:none;background:none;border:none;cursor:pointer;transition:background .15s ease}.mobile-menu-item:hover{background:var(--accent-bg)}.mobile-menu-item-primary{color:var(--accent);font-weight:600}.mobile-menu-divider{height:1px;background:var(--border-color);margin:.35rem 0}.mobile-menu-user{padding:.5rem 1.1rem .25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.4rem;background:none;border:1px solid var(--border-color);border-radius:2px;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:3px;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{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:none;border:none;border-radius:2px;padding:0;cursor:pointer;color:var(--text-dim);transition:background .2s ease,color .2s ease}.theme-toggle:hover{background:var(--bg-card);color:var(--text-primary)}.onboarding-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto}.onboarding-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:3px;max-width:640px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0006;overflow:hidden}.onboarding-header{padding:1.25rem 1.25rem .75rem;border-bottom:1px solid var(--border-color);position:relative}.onboarding-header h2{font-size:1.1rem;color:var(--text-primary);margin:0}.onboarding-step{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:.25rem}.onboarding-subtitle{font-size:.85rem;color:var(--text-secondary);margin:.35rem 0 .5rem}.onboarding-close{position:absolute;top:.5rem;right:.75rem;background:transparent;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer;line-height:1;padding:.25rem .5rem}.onboarding-close:hover{color:var(--accent)}.onboarding-body{padding:1rem 1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.onboarding-section h3{font-size:.85rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem}.onboarding-toggle-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0}.onboarding-toggle-row+.onboarding-toggle-row{border-top:1px solid var(--border-color)}.onboarding-toggle-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.onboarding-toggle-label{font-size:.9rem;color:var(--text-primary);font-weight:600}.onboarding-toggle-desc{font-size:.75rem;color:var(--text-muted)}.onboarding-toggle{padding:.35rem 1rem;border:1px solid var(--border-color);border-radius:2px;background:var(--bg-primary);color:var(--text-secondary);font-size:.85rem;font-family:inherit;cursor:pointer;transition:all .2s ease;min-width:50px;flex-shrink:0}.onboarding-toggle-on{background:var(--accent-bg-medium);border-color:var(--accent);color:var(--accent)}.onboarding-footer{padding:.75rem 1.25rem 1rem;display:flex;justify-content:flex-end;gap:.5rem;border-top:1px solid var(--border-color);background:var(--bg-primary)}.onboarding-btn{padding:.5rem 1rem;border-radius:2px;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease}.onboarding-btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.onboarding-btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.onboarding-btn-primary{background:var(--accent);border:1px solid var(--accent);color:#fff}.onboarding-btn-primary:hover{opacity:.9}.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:3px;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{display:none;padding:.55rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:3px;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-upload-btn{padding:.55rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:3px;color:var(--text-primary);cursor:pointer;font-size:.9rem;white-space:nowrap;transition:border-color .2s ease}.gb-upload-btn:hover{border-color:var(--accent);color:var(--accent)}.gb-result-count{color:var(--text-secondary);font-size:.85rem;white-space:nowrap}.pgn-upload-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.pgn-upload-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:3px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.pgn-upload-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color)}.pgn-upload-header h3{margin:0;font-size:1.05rem}.pgn-upload-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0 .25rem}.pgn-upload-close:hover{color:var(--text-primary)}.pgn-upload-body{padding:1.25rem}.pgn-upload-dropzone{border:2px dashed var(--border-color);border-radius:3px;padding:2rem 1rem;text-align:center;cursor:pointer;transition:border-color .2s ease,background .2s ease}.pgn-upload-dropzone:hover,.pgn-upload-dropzone.active{border-color:var(--accent);background:var(--accent-bg)}.pgn-upload-dropzone code{background:#00000014;padding:.05rem .35rem;border-radius:3px;font-size:.9em}.pgn-upload-dropzone-hint{margin:0 0 .5rem;color:var(--text-primary);font-size:.95rem}.pgn-upload-dropzone-sub{margin:0;color:var(--text-muted);font-size:.85rem}.pgn-upload-error{margin-top:.75rem;padding:.6rem .85rem;background:#dc3c3c1f;border:1px solid rgba(220,60,60,.4);color:#d33;border-radius:3px;font-size:.9rem}.pgn-upload-progress{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 0;color:var(--text-secondary)}.pgn-upload-progress p{margin:0}.pgn-upload-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:pgn-upload-spin .8s linear infinite}@keyframes pgn-upload-spin{to{transform:rotate(360deg)}}.pgn-upload-result{display:flex;flex-direction:column;gap:.75rem}.pgn-upload-result-summary{margin:0;font-size:.95rem;color:var(--text-primary)}.pgn-upload-result-empty{margin:0;color:var(--text-muted);font-size:.9rem}.pgn-upload-skip-reasons{background:#dc963c14;border:1px solid rgba(220,150,60,.35);border-radius:3px;padding:.55rem .75rem;color:var(--text-secondary);font-size:.85rem}.pgn-upload-skip-reasons ul{margin:.25rem 0 0;padding-left:1.1rem}.pgn-upload-skip-reasons li{margin:.15rem 0}.pgn-upload-skip-reasons-heading{margin:0;font-weight:600;color:var(--text-primary)}.pgn-upload-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.25rem}.pgn-upload-primary,.pgn-upload-secondary{padding:.5rem 1rem;border-radius:3px;cursor:pointer;font-size:.9rem;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);transition:border-color .2s ease}.pgn-upload-primary:hover,.pgn-upload-secondary:hover{border-color:var(--accent);color:var(--accent)}.pgn-upload-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.pgn-upload-primary:hover{background:var(--accent);color:#fff;opacity:.9}.platform-import-form{display:flex;flex-direction:column;gap:.5rem}.platform-import-form label{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.platform-import-form input[type=text],.platform-import-form input[type=number]{padding:.5rem .7rem;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);border-radius:3px;font-size:.9rem}.platform-import-form input[type=text]:focus,.platform-import-form input[type=number]:focus{outline:none;border-color:var(--accent)}.platform-import-hint{margin:0 0 .5rem;color:var(--text-secondary);font-size:.9rem;line-height:1.4}.platform-import-max-note{margin:0;color:var(--text-muted);font-size:.8rem}.platform-import-slow-note{margin:.25rem 0 0;color:var(--text-muted);font-size:.8rem;font-style:italic}.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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;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:2px;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:2px;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;white-space:nowrap}.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-progress-toggle{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border-color);border-radius:2px;overflow:hidden}.gb-progress-toggle button{flex:none;padding:.4rem .5rem;font-size:.78rem;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.gb-progress-toggle button:nth-child(2n){border-right:none}.gb-progress-toggle button:nth-last-child(-n+2){border-bottom:none}.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:2px;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:2px;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:3px;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:2px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;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:#fff;border:none;border-radius:2px;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:2px;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:3px;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-row-completed,.gb-card-completed{opacity:.92}.gb-completed-badge{display:inline-block;margin-right:.5rem;padding:.1rem .45rem;border-radius:4px;font-size:.7rem;font-weight:700;color:var(--accent);background:var(--accent-bg-subtle);border:1px solid var(--accent);vertical-align:middle;line-height:1.2}.gb-uploaded-badge{display:inline-block;margin-right:.5rem;padding:.1rem .45rem;border-radius:4px;font-size:.7rem;font-weight:700;color:#8f6acc;background:#8f6acc1f;border:1px solid #8f6acc;vertical-align:middle;line-height:1.2}.gb-hot-badge{display:inline-block;margin-right:.5rem;padding:.1rem .45rem;border-radius:4px;font-size:.7rem;font-weight:700;color:#e0662b;background:#e0662b1f;border:1px solid #e0662b;vertical-align:middle;line-height:1.2}.gb-in-progress-badge{display:inline-block;margin-right:.5rem;padding:.1rem .45rem;border-radius:4px;font-size:.7rem;font-weight:700;color:#4caf50;background:#4caf501f;border:1px solid #4caf50;vertical-align:middle;line-height:1.2}.gb-players{font-weight:500;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.gb-result{display:inline-block;white-space:nowrap;padding:.1rem .4rem;border-radius:2px;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:3px;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:2px;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:2px;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:3px;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{display:none}.gb-filter-toggle{display:inline-block}.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:2px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;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:3px;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-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;font-size:1.35rem;color:var(--text-heading)}.game-info p{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.board-wrapper{border-radius:2px;overflow:hidden;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f}.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:2px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;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:2px;background:var(--accent);color:#fff;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}.retry-toggle{display:inline-flex;align-items:center;gap:.35rem;margin-left:.5rem;padding:.3rem .6rem;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-card);color:var(--text-secondary);font-size:.75rem;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s ease}.retry-toggle:hover{border-color:var(--accent);color:var(--accent)}.retry-toggle-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.retry-toggle-on{border-color:var(--accent);color:var(--accent);background:var(--accent-bg-subtle)}.retry-toggle-on .retry-toggle-dot{background:var(--accent)}.game-toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%);z-index:900;padding:.5rem .9rem;border-radius:2px;background:var(--text-primary);color:#fff;font-size:.85rem;box-shadow:var(--shadow-dropdown);pointer-events:none;max-width:calc(100vw - 2rem);text-align:center}.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-with-retry{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .75rem}.try-again-btn{padding:.4rem 1.2rem;border:1px solid var(--accent);border-radius:2px;background:var(--accent);color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;font-family:inherit;transition:opacity .2s ease}.try-again-btn:hover{opacity:.85}.alt-callout{display:flex;flex-direction:column;align-items:center;gap:.35rem}.alt-callout-evals{font-size:.85rem;color:var(--text-secondary)}.alt-callout-continue{padding:.35rem 1.1rem;border:1px solid var(--accent);border-radius:2px;background:var(--accent);color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;font-family:inherit}.alt-callout-continue:hover{opacity:.85}.skip-move-btn{padding:.4rem 1rem;border:1px solid var(--border-color);border-radius:2px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.9rem;font-weight:600;font-family:inherit;transition:all .15s ease}.skip-move-btn:hover{border-color:var(--accent);color:var(--accent)}.move-skipped{margin-left:4px;padding:0 .3rem;border-radius:3px;background:var(--accent-bg-subtle);color:var(--text-muted);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle}.feedback-prompt{color:var(--text-heading);font-size:1.05rem;font-weight:600}.feedback-gameover{color:var(--accent);font-weight:600;font-size:1.1rem}.game-accuracy{color:var(--accent);font-size:1rem;font-weight:600}.game-result-breakdown{color:var(--text-secondary);font-size:.9rem}.progress-saved{color:var(--success);font-size:.85rem}.game-over-section{display:flex;flex-direction:column;align-items:center;gap:.75rem}.signup-prompt{color:#fff;background:var(--accent);font-size:.9rem;font-weight:600;text-decoration:none;padding:.5rem 1.25rem;border-radius:2px;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:2px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:2px;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;padding:.3rem .75rem;font-variant-numeric:tabular-nums}.alternative-moves{padding:.6rem .8rem;background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:2px;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}.wrong-move-review{display:flex;flex-direction:column;gap:.5rem;padding:.6rem .8rem;background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-left:3px solid var(--error);border-radius:2px;width:100%}.wmr-banner{font-size:.78rem;color:var(--error);font-weight:600}.wmr-rows{display:flex;flex-direction:column;gap:.2rem}.wmr-row{display:flex;align-items:baseline;gap:.5rem;font-size:.85rem}.wmr-label{color:var(--text-muted);width:6.5rem;flex-shrink:0;font-size:.78rem}.wmr-move{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.wmr-move-num{color:var(--text-muted);font-weight:400;margin-right:.15rem}.wmr-score{color:var(--text-secondary);font-size:.8rem}.wmr-user .wmr-move{color:var(--error)}.wmr-master .wmr-move{color:var(--accent)}.game-stats-panel{display:flex;flex-direction:column;gap:.5rem;padding:0 .8rem .6rem;background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:2px;width:100%}.gsp-header{margin:0 -.8rem;padding:.35rem .8rem;background:var(--bg-card-head);border-bottom:1px solid var(--border-color);font-size:.72rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.gsp-grid{display:flex;flex-direction:column;gap:.2rem}.gsp-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.85rem}.gsp-label{color:var(--text-muted);font-size:.78rem}.gsp-value{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.gsp-pending{color:var(--text-muted);font-weight:400}.gsp-accuracy-pct{color:var(--text-secondary);font-weight:400;font-family:inherit}.stats-rating-up{color:var(--success)}.stats-rating-down{color:var(--error)}.stats-rating-neutral{color:var(--text-secondary)}.move-list{background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:2px;width:100%;height:200px;display:flex;flex-direction:column}.move-list-header{font-size:.8rem;color:var(--text-secondary);background:var(--bg-card-head);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{flex:1;min-height:0;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}.replay-mode-selection{max-width:480px;margin:2rem auto;padding:1.5rem;background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;text-align:center}.replay-mode-selection h3{font-size:1.05rem;color:var(--text-primary);margin-bottom:.5rem}.replay-prior-stats{font-size:.9rem;color:var(--text-primary);margin-bottom:.75rem}.replay-mode-help{font-size:.8rem;color:var(--text-secondary);margin-bottom:1.25rem}.replay-mode-actions{display:flex;flex-direction:column;gap:.6rem;align-items:stretch}.replay-mode-btn{padding:.6rem 1rem;border-radius:6px;border:1px solid var(--border-color);background:transparent;color:var(--text-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease}.replay-mode-btn:hover{border-color:var(--accent);color:var(--accent)}.replay-mode-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.replay-mode-btn.primary:hover{opacity:.9;color:#fff}.replay-mode-link{margin-top:.5rem;font-size:.8rem;color:var(--text-muted)}.replay-mode-link:hover{color:var(--accent)}.unrated-badge{display:inline-block;padding:.05rem .4rem;border-radius:4px;font-size:.7rem;font-weight:700;color:var(--text-muted);background:var(--accent-bg-subtle);border:1px solid var(--border-color)}.resume-badge{display:inline-block;padding:.05rem .4rem;border-radius:4px;font-size:.7rem;font-weight:700;color:var(--success);background:#4caf501f;border:1px solid var(--success)}.review-mode-badge{display:inline-block;padding:.05rem .4rem;border-radius:4px;font-size:.7rem;font-weight:700;color:var(--accent);background:var(--accent-bg-subtle);border:1px solid var(--accent)}.review-keyboard-hint{margin-top:.5rem;font-size:.7rem;color:var(--text-muted);text-align:center}.review-summary{display:flex;gap:.5rem;align-items:baseline;font-size:.85rem;color:var(--text-secondary);padding:.5rem 0}.review-summary-label{color:var(--text-muted)}.review-summary-value{color:var(--text-primary);font-weight:600}.review-no-attempts{padding:.75rem;font-size:.8rem;color:var(--text-muted);background:var(--accent-bg-subtle);border-radius:4px;margin-bottom:.75rem}.review-attempt{padding:.75rem;border-radius:6px;border-left:3px solid var(--accent);background:var(--accent-bg-subtle);margin-bottom:.75rem;font-size:.85rem}.review-attempt.review-attempt-correct{border-left-color:var(--success)}.review-attempt.review-attempt-wrong{border-left-color:var(--error)}.review-attempt-header{font-weight:600;color:var(--text-primary);margin-bottom:.4rem}.review-attempt-row{display:flex;gap:.5rem;margin:.1rem 0}.review-attempt-label{color:var(--text-muted);width:5.5rem;flex-shrink:0}.review-attempt-move{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.review-attempt-wrong-move{color:var(--error)}.review-actions{display:flex;flex-direction:column;gap:.25rem;margin-top:1rem}.review-branch-toggle{margin-top:.5rem;display:flex;justify-content:center}.review-branch-btn{padding:.35rem .85rem;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);font-size:.8rem;font-weight:600;border-radius:4px;cursor:pointer;transition:all .15s ease}.review-branch-btn:hover{border-color:var(--accent);color:var(--accent)}.review-branch-btn-active{background:var(--accent);color:#fff;border-color:var(--accent)}.review-branch-btn-active:hover{color:#fff;opacity:.9}.move-user-guess{font-size:.75rem;margin-left:.15rem;cursor:pointer}.move-user-guess:hover{text-decoration:underline}.move-user-guess-correct{color:var(--success)}.move-user-guess-wrong{color:var(--error)}@media(min-width:769px){.game-col-side{gap:0;background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:2px;overflow:hidden}.game-col-side>*{box-shadow:none;border-radius:0;margin:0}.game-col-side>*+*{border-top:1px solid var(--border-color)}.board-controls{min-height:3.4rem;padding:.6rem 1rem;border-left:4px solid var(--accent)}.board-controls:has(.feedback-correct){border-left-color:var(--success);background:var(--bg-success)}.board-controls:has(.feedback-incorrect){border-left-color:var(--error);background:var(--error-bg)}.board-controls:empty{display:none}}.coach-nudge{display:flex;align-items:center;gap:.5rem;padding:.3rem .7rem;font-size:.78rem;font-weight:600;color:var(--accent);background:var(--accent-bg-subtle);border:1px solid var(--accent);border-radius:2px;text-decoration:none;transition:background .15s}.coach-nudge:hover{background:var(--accent-bg-medium)}.coach-nudge-icon{font-size:.85rem}.coach-nudge-text{flex:1}.coach-nudge-arrow{opacity:.8}.explanation-panel{display:flex;flex-direction:column;gap:.4rem;padding:.6rem .8rem;background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-left:3px solid var(--accent);border-radius:2px;width:100%}.explanation-prompt,.explanation-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.explanation-title{font-size:.85rem;font-weight:600;color:var(--text-primary)}.explanation-meta{font-size:.75rem;color:var(--text-secondary)}.explanation-btn{padding:.35rem .8rem;font-size:.85rem;font-weight:600;color:var(--accent);background:var(--accent-bg-subtle);border:1px solid var(--accent);border-radius:2px;cursor:pointer;transition:background .15s}.explanation-btn:hover:not(:disabled){background:var(--accent-bg-medium)}.explanation-btn:disabled{opacity:.6;cursor:default}.explanation-text{display:flex;flex-direction:column;gap:.5rem;font-size:.9rem;line-height:1.5;color:var(--text-primary)}.explanation-text p{margin:0}.explanation-label{display:block;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-secondary)}.explanation-error{font-size:.8rem;color:var(--error)}.register-page{max-width:400px;margin:0 auto;padding:0 1rem 2rem}.register-page h2{text-align:center;color:var(--text-heading);font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;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:3px;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:3px;background:var(--accent);color:#fff;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:2px;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{display:grid;grid-template-columns:minmax(0,520px) minmax(0,420px);justify-content:center;align-items:start;gap:2.5rem;max-width:1000px;margin:0 auto;padding:1rem 1rem 3rem}.lp-puzzle{background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;overflow:hidden}.lp-puzzle .board-wrapper{border-radius:0}.lp-puzzle-head{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--bg-card-head);border-bottom:1px solid var(--border-color)}.lp-puzzle-players{font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;font-weight:600;font-size:1.05rem;color:var(--text-heading)}.lp-puzzle-event{font-size:.8rem;color:var(--text-secondary)}.lp-sound-btn{display:inline-flex;align-items:center;margin-left:.75rem;padding:.15rem;background:none;border:none;color:var(--text-secondary);cursor:pointer;transition:color .15s ease}.lp-sound-btn:hover{color:var(--accent)}.lp-puzzle-head .lp-puzzle-event{margin-left:auto}.lp-board{position:relative}.lp-board [data-piece]{cursor:grab}.lp-board-invite:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 3px var(--accent);animation:lp-invite 1.6s ease-in-out infinite}@keyframes lp-invite{0%,to{opacity:.15}50%{opacity:.9}}@media(prefers-reduced-motion:reduce){.lp-board-invite:after{animation:none;opacity:.6}.lp-glyph-badge,.lp-thinking i,.lp-try-now .lp-try-btn{animation:none}}.lp-glyph{position:absolute;width:12.5%;height:12.5%;pointer-events:none;z-index:2}.lp-glyph-badge{position:absolute;top:0;right:0;--lp-glyph-x: 30%;--lp-glyph-y: -30%;transform:translate(var(--lp-glyph-x),var(--lp-glyph-y));display:flex;align-items:center;justify-content:center;min-width:1.6em;height:1.6em;padding:0 .25em;border-radius:1em;font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;font-weight:700;font-size:clamp(.8rem,2.6vw,1.1rem);line-height:1;color:#fff;box-shadow:0 1px 3px #00000080;animation:lp-glyph-in .25s ease-out}.lp-glyph-bad{background:#d6312b}.lp-glyph-good{background:#1f9d55}.lp-glyph-right .lp-glyph-badge{--lp-glyph-x: -6%}.lp-glyph-top .lp-glyph-badge{--lp-glyph-y: 6%}@keyframes lp-glyph-in{0%{transform:translate(var(--lp-glyph-x),var(--lp-glyph-y)) scale(.4);opacity:0}to{transform:translate(var(--lp-glyph-x),var(--lp-glyph-y));opacity:1}}.lp-demo{padding:.75rem 1rem .8rem;min-height:5.6rem;border-top:1px solid var(--border-color);border-left:5px solid var(--text-muted);transition:background .2s ease,border-color .2s ease}.lp-demo-main{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .6rem}.lp-demo-title{display:inline-flex;align-items:baseline;font-size:1.3rem;font-weight:700;line-height:1.2;color:var(--text-heading)}.lp-demo-move{padding:.1rem .45rem;border-radius:3px;background:var(--bg-card-head);font-size:.95rem;font-weight:700;color:var(--text-heading);font-variant-numeric:tabular-nums}.lp-demo-eval{padding:.1rem .45rem;border-radius:3px;background:var(--bg-card-head);font-size:.72rem;font-weight:600;letter-spacing:.03em;color:var(--text-secondary);white-space:nowrap}.lp-demo-controls{margin-left:auto;display:inline-flex;gap:.25rem}.lp-demo-caption{margin-top:.4rem;font-size:.92rem;line-height:1.45;color:var(--text-primary)}.lp-demo-bad{border-left-color:var(--error);background:var(--error-bg)}.lp-demo-bad .lp-demo-title{color:var(--error)}.lp-demo-good{border-left-color:var(--success);background:var(--bg-success)}.lp-demo-good .lp-demo-title{color:var(--success)}.lp-demo-outro{border-left-color:var(--brand)}.lp-demo-outro .lp-demo-title{color:var(--text-heading)}.lp-demo-reset .lp-demo-title{color:var(--text-secondary);font-weight:600}.lp-thinking{display:inline-flex;gap:.2em;margin-left:.45em}.lp-thinking i{width:.3em;height:.3em;border-radius:50%;background:var(--text-secondary);animation:lp-think 1.2s ease-in-out infinite}.lp-thinking i:nth-child(2){animation-delay:.2s}.lp-thinking i:nth-child(3){animation-delay:.4s}@keyframes lp-think{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-.3em);opacity:1}}.lp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;background:var(--bg-card-head);border:none;border-radius:3px;color:var(--text-secondary);cursor:pointer;transition:color .15s ease,background .15s ease}.lp-icon-btn:hover{background:var(--accent);color:#fff}.lp-try{display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;border-top:1px solid var(--border-color);background:var(--bg-card-head)}.lp-try-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.lp-try-title{font-weight:700;color:var(--text-heading);line-height:1.25}.lp-try-sub{font-size:.85rem;color:var(--text-secondary)}.lp-try-btn{flex-shrink:0;margin-left:auto;padding:.7rem 1.3rem;background:var(--success);color:#fff;font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:3px;cursor:pointer;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;transition:filter .15s ease,transform .15s ease}.lp-try-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.lp-try-now .lp-try-btn{animation:lp-try-pulse 1.1s ease-in-out infinite}@keyframes lp-try-pulse{0%,to{transform:none;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f}50%{transform:scale(1.05);box-shadow:0 0 0 6px #3fa44940}}.lp-back{padding:.45rem 1rem .55rem;border-top:1px solid var(--border-color);font-size:.82rem}.lp-turn{padding:.85rem 1rem .9rem;min-height:6.2rem;border-top:1px solid var(--border-color);border-left:5px solid var(--accent);transition:background .2s ease}.lp-turn-main{display:flex;align-items:center;gap:.65rem}.lp-turn-piece{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.3rem;height:2.3rem;border-radius:3px;background:#f0f0f0;box-shadow:inset 0 -2px #00000040}.lp-turn-piece img{width:1.9rem;height:1.9rem}.lp-turn-title{flex:1;font-size:1.35rem;font-weight:700;line-height:1.2;color:var(--text-heading)}.lp-turn-count{flex-shrink:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.lp-turn-sub,.lp-turn-note{margin-top:.45rem;font-size:.92rem;line-height:1.45;color:var(--text-primary)}.lp-turn-sub strong,.lp-turn-note strong{color:var(--text-heading)}.lp-turn-wrong{border-left-color:var(--error);background:var(--error-bg)}.lp-turn-wrong .lp-turn-title{color:var(--error)}.lp-turn-replying{border-left-color:var(--success);background:var(--bg-success)}.lp-turn-replying .lp-turn-title{color:var(--success)}.lp-turn-accepted{border-left-color:var(--success);background:var(--bg-success)}.lp-turn-accepted .lp-turn-title{color:var(--success)}.lp-turn-done{border-left-color:var(--brand)}.lp-turn-ask{margin:.75rem 0 0;font-size:.9rem;font-weight:600;color:var(--text-bright)}.lp-turn-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.lp-turn-btn{padding:.5rem 1rem;background:var(--bg-card-head);color:var(--text-bright);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;border:none;border-radius:3px;cursor:pointer}.lp-turn-btn:hover{background:var(--accent);color:#fff}.lp-turn-btn-main{background:var(--success);color:#fff}.lp-turn-btn-main:hover{background:var(--success);filter:brightness(1.1)}.lp-moves{display:flex;flex-wrap:wrap;gap:.15rem .45rem;padding:.5rem 1rem .6rem;border-top:1px solid var(--border-color);background:var(--bg-card-head);font-size:.85rem;font-variant-numeric:tabular-nums}.lp-move-white{color:var(--text-heading);font-weight:600}.lp-move-black{color:var(--text-primary);margin-right:.3rem}.lp-move-num{color:var(--text-muted);font-weight:400;margin-right:.15rem}.lp-link-btn{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--accent);text-decoration:underline;cursor:pointer}.lp-side{padding-top:.5rem}.lp-title{font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;font-size:2.6rem;font-weight:700;line-height:1.05;letter-spacing:-.01em;color:var(--text-heading);margin-bottom:.9rem}.lp-lead{font-size:1rem;line-height:1.6;color:var(--text-primary);margin-bottom:1.4rem}.lp-actions{display:flex;flex-direction:column;gap:.4rem;margin-bottom:2rem}.lp-btn{display:block;padding:.75rem 1rem;background:var(--bg-card);color:var(--text-bright);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;border-radius:3px;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;transition:background .15s ease,color .15s ease}.lp-btn:hover{background:var(--accent);color:#fff}.lp-btn-main{background:var(--success);color:#fff}.lp-btn-main:hover{background:var(--success);filter:brightness(1.1)}.lp-subhead{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);padding-bottom:.35rem;margin-bottom:.6rem;border-bottom:1px solid var(--border-color)}.lp-why-section{grid-column:1/-1;padding-top:.5rem}.lp-why{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 2.5rem;list-style:none;padding:0;margin:0;font-size:.9rem;line-height:1.5;color:var(--text-primary)}.lp-why li{position:relative;padding-left:1.1rem;margin-bottom:.6rem}.lp-why li:before{content:"";position:absolute;left:0;top:.55em;width:.45rem;height:.45rem;border-radius:1px;background:var(--brand)}.lp-why strong{color:var(--text-heading)}.lp-steps{padding-left:1.2rem;margin-bottom:1.75rem;font-size:.9rem;line-height:1.5}.lp-steps li{margin-bottom:.35rem}.lp-steps li::marker{font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;font-weight:700;color:var(--brand)}.lp-stats{width:100%;border-collapse:collapse;font-size:.85rem}.lp-stats th,.lp-stats td{padding:.35rem 0;border-bottom:1px dotted var(--border-color)}.lp-stats th{text-align:left;font-weight:400;color:var(--text-secondary)}.lp-stats td{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-bright)}@media(max-width:900px){.landing{grid-template-columns:minmax(0,520px);gap:1.5rem;padding-top:.5rem}.lp-title{font-size:2rem}.lp-try{flex-wrap:wrap}.lp-try-btn{width:100%;margin-left:0}.lp-why{grid-template-columns:minmax(0,1fr)}}.lp-eval{display:inline-block;margin-left:.15rem;padding:0 .4rem;border-radius:3px;font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-secondary);background:var(--bg-card-head);white-space:nowrap}.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(--text-heading);font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif}.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:2px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px}.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:2px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;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 var(--border-color);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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;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:2px;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)}.piece-set-grid{display:flex;flex-direction:column;gap:.5rem}.piece-set-option{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:none;border:2px solid var(--border-color);border-radius:2px;cursor:pointer;transition:border-color .2s ease,background-color .2s ease;font-family:inherit;text-align:left}.piece-set-option:hover{border-color:var(--accent)}.piece-set-active{border-color:var(--accent);background-color:rgba(var(--accent),.08)}.piece-set-preview{display:grid;grid-template-columns:repeat(8,1fr);width:320px;height:40px;border-radius:3px;overflow:hidden;flex-shrink:0}.piece-set-square{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.piece-set-square svg,.piece-set-square img{width:90%;height:90%;display:block}.piece-set-name{font-size:.95rem;font-weight:600;color:var(--text-primary)}@media(max-width:600px){.piece-set-preview{width:240px;height:30px}.piece-set-square{width:30px;height:30px}}.settings-page{max-width:500px;margin:0 auto;padding:0 1rem 2rem}.settings-page h2{color:var(--text-heading);font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif}.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:3px;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:3px;background:var(--accent);color:#fff;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:2px;font-size:.85rem}.settings-success{background:var(--bg-success);color:var(--success);padding:.5rem .75rem;border-radius:2px;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:2px;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:2px}.delete-actions{display:flex;gap:.75rem;margin-top:.5rem}.settings-form-input{padding:.7rem 1rem;border:1px solid var(--border-color);border-radius:3px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px}.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:2px;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:2px;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;font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;color:var(--text-heading)}.explorer-layout{display:flex;gap:2rem;align-items:flex-start}.explorer-board-section{flex-shrink:0;width:100%;max-width:400px}.explorer-board-wrapper{border-radius:3px;overflow:hidden;width:100%;max-width:400px;aspect-ratio:1/1}.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:2px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:2px;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);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;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:2px;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:2px;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-section,.explorer-board-wrapper{max-width:100%}}.calibration-page{max-width:560px;margin:0 auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.calibration-header{display:flex;flex-direction:column;gap:.35rem}.calibration-header h1{font-size:1.25rem;color:var(--text-primary);margin:0}.calibration-header p{font-size:.9rem;color:var(--text-secondary);margin:0}.calibration-progress{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--text-muted)}.calibration-progress-bar{flex:1;height:6px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:3px;overflow:hidden}.calibration-progress-fill{height:100%;background:var(--accent);transition:width .2s ease}.calibration-prompt{font-size:1rem;font-weight:600;color:var(--text-primary);text-align:center}.calibration-board{width:100%;max-width:480px;margin:0 auto}.calibration-feedback{min-height:2.5rem;padding:.6rem .9rem;border-radius:2px;font-size:.95rem;font-weight:600;text-align:center;border:1px solid var(--border-color);color:var(--text-secondary);background:var(--bg-card);display:flex;flex-direction:column;gap:.25rem}.calibration-feedback.calibration-feedback-correct{background:var(--bg-success);border-color:var(--success);color:var(--success)}.calibration-feedback.calibration-feedback-wrong{background:var(--bg-error);border-color:var(--error);color:var(--error)}.calibration-feedback-note{font-size:.75rem;font-weight:400;color:var(--text-muted)}.calibration-actions{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.calibration-btn{padding:.6rem 1.1rem;min-height:44px;border-radius:2px;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease}.calibration-btn:disabled{opacity:.5;cursor:default}.calibration-btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.calibration-btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.calibration-btn-primary{background:var(--accent);border:1px solid var(--accent);color:#fff}.calibration-btn-primary:hover:not(:disabled){opacity:.9}.calibration-result{background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;padding:1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.calibration-result h2{margin:0;font-size:1.15rem;color:var(--text-primary)}.calibration-result p{margin:0;color:var(--text-secondary);font-size:.95rem}.calibration-result-rating{font-size:2.5rem;font-weight:700;color:var(--accent);line-height:1}.calibration-result-badge{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:var(--accent-bg-medium);border-radius:2px;padding:.2rem .6rem}.calibration-error{color:var(--error);font-size:.9rem}.leaderboard-page{max-width:900px;margin:0 auto;padding:0 1rem 3rem}.leaderboard-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.leaderboard-header h2{color:var(--text-heading);font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;font-size:1.8rem;margin-bottom:.35rem}.leaderboard-sub{color:var(--text-bright);font-size:.95rem}.leaderboard-sub strong{color:var(--text-primary)}.leaderboard-cta{display:inline-block;color:var(--accent);text-decoration:none;font-weight:600;font-size:.9rem;border:1px solid var(--accent);border-radius:3px;padding:.5rem 1.1rem;transition:background .2s ease;white-space:nowrap}.leaderboard-cta:hover{background:var(--accent-bg)}.leaderboard-status{color:var(--text-muted);padding:2rem 0;text-align:center}.leaderboard-error{color:var(--error)}.leaderboard-empty{text-align:center;padding:3rem 1rem;background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;color:var(--text-dim)}.leaderboard-empty p{margin-bottom:1rem}.leaderboard-note{margin-top:1rem;color:var(--text-dim);font-size:.9rem;text-align:center}.leaderboard-note a{color:var(--accent)}.lb-table-wrap{background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;overflow:hidden}.lb-table{width:100%;border-collapse:collapse;font-size:.92rem}.lb-table th{text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);padding:.7rem .9rem;border-bottom:1px solid var(--border-color);white-space:nowrap}.lb-table td{padding:.65rem .9rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.lb-table tbody tr:last-child td{border-bottom:none}.lb-row{transition:background .15s ease}.lb-row:hover{background:var(--accent-bg-subtle)}.lb-row-me{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}.lb-row-me:hover{background:var(--accent-bg-medium)}.lb-gap td{text-align:center;color:var(--text-muted);letter-spacing:.3em;padding:.2rem;font-size:.8rem}.lb-col-rank{width:3.2rem}.lb-col-rating{white-space:nowrap}.lb-col-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.lb-rank{display:inline-flex;align-items:center;justify-content:center;min-width:1.9rem;height:1.9rem;border-radius:50%;font-weight:700;font-size:.85rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.lb-rank-gold{color:#3a2c05;background:#d9b44a}.lb-rank-silver{color:#2b2b2b;background:#bdbdbd}.lb-rank-bronze{color:#2e1a0c;background:#c08a5b}.lb-col-player{display:flex;align-items:center;gap:.65rem;min-width:0}.lb-table th.lb-col-player{display:table-cell}.lb-avatar{flex:0 0 auto;width:30px;height:30px;border-radius:50%;object-fit:cover;background:var(--accent-bg-medium)}.lb-avatar-initials{display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:var(--accent)}.lb-name{display:inline-flex;align-items:center;gap:.5rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-weight:500}.lb-you{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fff;background:var(--accent);border-radius:999px;padding:.05rem .45rem}.lb-rating{font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;margin-right:.5rem}.lb-badge{font-size:.7rem;font-weight:600;border-radius:999px;padding:.1rem .5rem;border:1px solid currentColor;opacity:.9}.lb-badge-beginner{color:#78909c}.lb-badge-intermediate{color:#4caf50}.lb-badge-advanced{color:#ff9800}.lb-badge-expert{color:#ab47bc}[data-theme=light] .lb-badge-beginner{color:#546e7a}[data-theme=light] .lb-badge-intermediate{color:#2e7d32}[data-theme=light] .lb-badge-advanced{color:#e65100}[data-theme=light] .lb-badge-expert{color:#6a1b9a}@media(max-width:640px){.lb-col-secondary{display:none}.lb-table{font-size:.85rem}.lb-table th,.lb-table td{padding:.55rem .6rem}.lb-badge{display:none}.lb-rating{margin-right:0}}.changelog-page{max-width:820px;margin:0 auto;padding:0 1rem 3rem}.changelog-header{margin-bottom:2rem}.changelog-header h2{color:var(--text-heading);font-family:Stardom,Cabinet Grotesk,Segoe UI,sans-serif;font-size:1.8rem;margin-bottom:.5rem}.changelog-intro{color:var(--text-bright);line-height:1.6;margin-bottom:1rem}.changelog-totals{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem;color:var(--text-dim);font-size:.9rem}.changelog-totals strong{color:var(--text-primary)}.changelog-legend{display:inline-flex;gap:.35rem;flex-wrap:wrap}.changelog-timeline{list-style:none;position:relative;padding-left:1.5rem;border-left:2px solid var(--border-color)}.changelog-week{position:relative;margin-bottom:2.25rem}.changelog-week:last-child{margin-bottom:0}.changelog-week-marker{position:absolute;left:calc(-1.5rem - 7px);top:.45rem;width:12px;height:12px;border-radius:50%;background:var(--bg-primary);border:2px solid var(--accent)}.changelog-week-body{background:var(--bg-card);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;border-radius:3px;padding:1rem 1.25rem 1.1rem}.changelog-week-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;margin-bottom:.35rem}.changelog-week-title{font-size:1.1rem;color:var(--text-primary);display:flex;align-items:center;gap:.6rem}.changelog-latest{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--accent);border-radius:999px;padding:.1rem .5rem}.changelog-week-meta{display:flex;align-items:center;gap:.75rem;font-size:.8rem;color:var(--text-muted)}.changelog-version{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;color:var(--accent);background:var(--accent-bg);border-radius:2px;padding:.1rem .4rem}.changelog-headline{color:var(--text-dim);font-style:italic;font-size:.92rem;margin:.25rem 0 .75rem}.changelog-entries{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.changelog-entry{display:flex;align-items:flex-start;gap:.6rem;font-size:.92rem;line-height:1.5;color:var(--text-primary)}.changelog-entry-text{flex:1;min-width:0}.changelog-pill{flex:0 0 auto;display:inline-block;min-width:5.2rem;text-align:center;font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:.18rem .5rem;margin-top:.2rem;border:1px solid transparent}.changelog-pill-feature{color:#4caf50;background:#4caf501f;border-color:#4caf5059}.changelog-pill-improvement{color:#42a5f5;background:#42a5f51f;border-color:#42a5f559}.changelog-pill-fix{color:#ff9800;background:#ff98001f;border-color:#ff980059}.changelog-pill-infra{color:#ab47bc;background:#ab47bc1f;border-color:#ab47bc59}[data-theme=light] .changelog-pill-feature{color:#2e7d32}[data-theme=light] .changelog-pill-improvement{color:#1565c0}[data-theme=light] .changelog-pill-fix{color:#e65100}[data-theme=light] .changelog-pill-infra{color:#6a1b9a}.changelog-footer{margin-top:2.5rem;text-align:center;color:var(--text-muted);font-size:.9rem}.changelog-footer a{color:var(--accent)}@media(max-width:600px){.changelog-timeline{padding-left:1rem}.changelog-week-marker{left:calc(-1rem - 7px)}.changelog-week-body{padding:.85rem .9rem .9rem}.changelog-entry{flex-direction:column;gap:.25rem}.changelog-pill{min-width:0;margin-top:0}}@media(max-width:768px){.app-header{padding:.3rem .75rem}.app-logo{font-size:1.1rem}.header-nav-desktop{display:none}.mobile-menu{display:block}.header-nav{gap:.4rem}.app-main{padding-top:.25rem}.game-play{padding:0 0 1rem;gap:0}.game-info{order:10;margin:.75rem .5rem 0}.game-info h2{font-size:.9rem}.game-info p{font-size:.72rem;margin-top:.1rem}.game-info-event{display:none}.game-layout{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.4rem}.game-col-board,.game-col-side{display:contents}.game-layout>*,.game-col-board>*,.game-col-side>*{width:100%;max-width:480px}.board-wrapper{order:0;border-radius:0}.board-nav{order:1;width:auto;flex:0 0 auto;margin:0 0 0 .25rem;gap:.15rem}.board-nav-btn{min-width:34px;min-height:36px;padding:.25rem .4rem}.board-nav-jump{display:none}.retry-toggle{margin-left:.25rem;padding:.25rem .5rem;font-size:.7rem}.board-nav-label{font-size:.8rem;min-width:3rem;text-align:center}.board-controls{order:1;width:auto;flex:1 1 auto;justify-content:center;flex-wrap:wrap;min-height:36px;padding:0 .25rem;text-align:center}.difficulty-panel-inline{order:1;width:auto;flex:0 0 auto;gap:.3rem;padding:.25rem .5rem}.difficulty-panel-rating{font-size:1rem}.difficulty-panel-tier{font-size:.8rem}.difficulty-panel-label,.difficulty-panel-bar-h,.eval-display{display:none}.auto-analyze-indicator{order:2}.opening-phase{flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center;gap:.5rem;padding:.25rem .5rem;max-width:480px}.opening-title,.opening-subtitle,.opening-progress-bar{display:none}.opening-progress{flex:1;width:auto;min-width:0;flex-direction:row;justify-content:center}.opening-progress-text{font-size:.7rem;white-space:nowrap}.feedback-with-retry{flex-direction:row;justify-content:center;gap:.75rem}.feedback-correct,.feedback-incorrect{font-size:.95rem}.feedback-prompt{font-size:.85rem}.streak-indicator{display:inline;margin-left:.5rem}.alt-callout{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.35rem .6rem}.alt-callout-evals{font-size:.75rem;width:100%}.opening-next-btn,.try-again-btn,.skip-move-btn,.alt-callout-continue{min-height:36px;padding:.3rem .75rem;font-size:.85rem;white-space:nowrap}.alternative-moves,.wrong-move-review{order:4}.move-list{order:5;height:124px;flex-shrink:0;border-radius:0}.move-list-header{display:none}.move-list-body{padding:0}.move-pair{padding:0;gap:0;font-size:.85rem;line-height:1.55}.move-pair:nth-child(odd){background:var(--accent-bg-subtle)}.move-pair-moves{flex:1;display:grid;grid-template-columns:1.8rem 1fr 1fr;align-items:center;gap:0;flex-wrap:nowrap}.move-number{min-width:0;text-align:center;font-size:.75rem}.move-san{min-width:0;padding:.05rem .4rem;border-radius:0}.move-deltas{padding-right:.5rem}.live-score,.game-stats-panel{order:6}}@media(max-height:560px)and (orientation:landscape){.game-col-board{width:70vh;max-width:480px;flex-shrink:0}}@media(max-width:600px){.app-header{padding:.35rem .75rem;gap:.5rem}.app-logo{font-size:1.1rem;white-space:nowrap}.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}}
