:root{--page:#f6f7f3;--surface:#fcfdf9;--soft:#edf1e7;--hover:#e4ebdc;--text:#27352e;--on-accent:#fff;--hero:#1c4838;--hero-end:#17392f;--hero-text:#f6f3e6;--hero-muted:#c1d0ba;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:var(--page);font-synthesis:none;font-weight:400;--green:#214e3e;--dark:#173b30;--muted:#7c857c;--line:#e4e8df;--cream:#f4efdf;--gold:#c69c55}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a,input,select,summary{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button{border:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:550;letter-spacing:-.04em}h1{font-size:33px;line-height:1.22;margin-bottom:10px}h2{font-size:23px;line-height:1.28;margin-bottom:13px}h3{font-size:17px;margin-bottom:9px}p{color:var(--muted);font-size:14px;line-height:1.7}small{font-size:12px}button svg,a svg{flex-shrink:0}button{transition:background .15s,box-shadow .15s,transform .15s}button:not(:disabled):active{transform:translateY(1px)}input,select{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:12px 13px;min-width:0}input:focus,select:focus{outline:2px solid #508d7040;border-color:var(--line)}input::placeholder{color:var(--muted)}label{display:block;font-size:12px;font-weight:600;line-height:1.5;color:var(--muted);margin-bottom:19px}label input,label select{margin-top:7px;font-size:14px;font-weight:400}input[type=range]{accent-color:var(--green);padding:0;border:0}input[type=checkbox]{width:18px;height:18px;accent-color:var(--green);flex-shrink:0}summary{cursor:pointer;font-size:13px;color:var(--muted);padding:12px 0}progress{width:100%;height:5px;accent-color:var(--green);border:0;border-radius:9px;overflow:hidden}progress::-webkit-progress-bar{background:var(--soft);border-radius:8px}progress::-webkit-progress-value{background:var(--green);border-radius:8px}.primary,.secondary,.cream-button{display:inline-flex;align-items:center;justify-content:center;gap:13px;border-radius:8px;padding:13px 19px;font-size:13px;font-weight:550;min-height:44px}.primary{background:var(--green);color:var(--on-accent)}.primary:hover:not(:disabled){background:var(--green);box-shadow:0 4px 12px #214e3e20}.secondary{background:var(--surface);border:1px solid var(--line);color:var(--text)}.secondary:hover:not(:disabled){background:var(--soft)}.cream-button{background:var(--soft);color:var(--text)}.cream-button:hover{background:var(--surface)}.wide{width:100%}.compact{padding:8px 12px;min-height:34px;font-size:12px}.link{background:none;color:var(--muted);display:inline-flex;align-items:center;gap:7px;padding:4px 0;font-size:12px;font-weight:550;justify-content:center}.link:hover{text-decoration:underline}.icon-button{background:none;padding:8px;color:var(--muted);display:inline-flex;align-items:center;border-radius:6px}.icon-button:hover{background:var(--soft)}.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--muted);font-weight:650;margin-bottom:14px}.small{font-size:12px}.muted{color:var(--muted)}.centered{text-align:center}.tag{display:inline-flex;align-items:center;background:var(--soft);color:var(--muted);border:1px solid var(--line);border-radius:5px;font-size:10px;padding:5px 8px;white-space:nowrap;letter-spacing:.2px}.tag.green{color:#438356;background:#edf5e9}.error{background:#fff0ec;color:#a04c37;border:1px solid #f1d4c7;display:flex;align-items:flex-start;gap:9px;padding:13px 15px;border-radius:8px;font-size:13px;line-height:1.5;margin:12px 0}.error svg{flex-shrink:0;margin-top:1px}.success{display:flex;align-items:flex-start;gap:12px;border:1px solid #d4e2c9;background:#edf5e8;color:#41733e;padding:17px;border-radius:8px;font-size:13px;margin-bottom:20px}.success code,.success small{display:block;margin-top:8px}.success code{-webkit-user-select:all;user-select:all;font-size:15px;word-break:break-all}.success p{margin:0;color:inherit}.loading{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted);min-height:250px;font-size:14px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fatal{max-width:600px;margin:100px auto;padding:25px}.status-dot,.local-indicator{height:6px;width:6px;display:inline-block;border-radius:50%;background:#6c9272;flex-shrink:0}.status-dot.running{background:#c49e48;box-shadow:0 0 0 3px #c49e4818}.status-dot.queued{background:#b9b8a2}.status-dot.failed{background:#c1745e}.status-dot.cancelled{background:#a6aa9e}.app{display:flex;min-height:100vh}.sidebar{width:232px;position:fixed;inset:0 auto 0 0;background:var(--surface);border-right:1px solid var(--line);padding:34px 20px 0;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:650;font-size:24px;letter-spacing:-1.2px;color:var(--text)}.brand-mark{font-size:32px;line-height:1}.brand-light{font-weight:350}.sidebar .brand{padding-left:13px;margin-bottom:55px}.nav-caption{font-size:9px;letter-spacing:1.65px;color:var(--muted);font-weight:600;padding:0 14px;margin-bottom:15px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav a,.sidebar-bottom>a{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:12px;padding:13px;border-radius:7px;font-weight:500}.sidebar a.selected{background:var(--soft);color:var(--text)}.sidebar nav a:hover,.sidebar-bottom>a:hover{background:var(--soft);color:var(--text)}.nav-dot{height:5px;width:5px;background:var(--green);margin-left:auto;border-radius:50%}.sidebar-note{margin:36px 12px 20px;padding:26px 12px 15px;background:linear-gradient(160deg,var(--soft),var(--surface));border-radius:9px;text-align:center;position:relative}.sidebar-note .spark{display:block;font-size:34px;color:var(--muted);margin-bottom:12px}.sidebar-note strong{font-family:Georgia,serif;color:var(--muted);font-weight:400;font-size:17px}.sidebar-note p{font-size:11px;line-height:1.8;color:var(--muted);margin:10px 0}.note-line{display:block;width:24px;height:1px;background:var(--soft);margin:17px auto 0}.sidebar-bottom{margin-top:auto;padding-bottom:10px}.user-block{border-top:1px solid var(--line);padding:22px 1px 14px;display:flex;align-items:center;margin-top:14px}.user-profile{display:flex;gap:10px;align-items:center;background:none;text-align:left;padding:0;flex:1;min-width:0}.avatar{height:34px;width:34px;background:var(--soft);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;font-size:12px;flex-shrink:0}.user-profile strong{font-size:12px;font-weight:550;max-width:85px;overflow:hidden;text-overflow:ellipsis;display:block}.user-profile small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.main{margin-left:232px;width:calc(100% - 232px);min-width:0}.topbar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;color:var(--muted);font-size:11px;letter-spacing:.2px}.topbar>div{display:flex;align-items:center;gap:8px}.topbar .icon-button{margin-left:10px}.page{max-width:1370px;padding:39px 44px 50px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:28px}.page-title p{margin-bottom:0;font-size:13px;color:var(--muted)}.date-label{font-size:11px;color:var(--muted);white-space:nowrap}footer{color:var(--muted);font-size:10px;letter-spacing:.2px;padding:0 44px 24px;display:flex;align-items:center;gap:8px}.mobile-toggle{display:none}.hero{background:linear-gradient(120deg,var(--green),var(--green));border-radius:12px;display:flex;min-height:323px;color:var(--on-accent);position:relative;overflow:hidden;margin-bottom:25px;border:1px solid var(--line)}.hero-content{padding:32px 38px;position:relative;z-index:2;width:65%}.hero-label{font-size:9px;letter-spacing:1.5px;color:var(--muted);margin-bottom:20px;display:flex;align-items:center;gap:7px}.hero-label span{background:var(--soft);width:5px;height:5px;border-radius:50%}.hero h2{font-family:Georgia,Times New Roman,serif;font-size:36px;line-height:1.14;font-weight:400;letter-spacing:-1.1px;margin-bottom:15px}.hero p{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:24px}.hero-footnote{font-size:9px;letter-spacing:.3px;color:var(--muted);margin-top:17px}.hero-art{position:absolute;width:44%;height:100%;right:0;bottom:0;overflow:hidden}.art-grid{position:absolute;inset:45% -45% -70% -15%;background:conic-gradient(#64816115 25%,transparent 0 50%,#64816115 0 75%,transparent 0);background-size:68px 68px;transform:rotate(-22deg);border:1px solid #7c957515}.hero-art>.piece{width:200px;height:220px;position:absolute;right:22%;top:35px;transform:rotate(-7deg);filter:drop-shadow(15px 18px 5px #0c231e55)}.orbit{position:absolute;border:1px solid #89a58320;border-radius:50%;width:260px;height:260px;top:7%;right:9%}.orbit-two{width:350px;height:350px;top:-5%;right:-4%;border-style:dashed}.art-star{position:absolute;top:38px;right:52px;color:var(--muted);font-size:38px}.art-label{position:absolute;right:34px;bottom:33px;color:var(--muted);font-size:8px;letter-spacing:1.8px;line-height:1.9;text-align:right}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:29px}.stat{padding:22px 23px;border:1px solid var(--line);background:var(--surface);border-radius:10px}.stat-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin-bottom:17px}.stat-label>span{color:var(--muted)}.stat>strong{font-size:29px;letter-spacing:-1.4px;display:block;color:var(--text);font-weight:500}.stat>small{display:block;font-size:10px;color:var(--muted);margin-top:9px}.panel{border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:23px;overflow:hidden}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 24px 18px}.section-heading h2,.section-heading h3{font-size:15px;letter-spacing:-.3px;margin:0;color:var(--text);font-weight:550}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr);gap:23px}.practice-card{padding:25px;background:var(--soft)}.practice-card .eyebrow{font-size:8px}.practice-symbol{font-family:Georgia,serif;font-size:44px;color:var(--muted);line-height:1;margin:25px 0 20px}.practice-card h2{font-size:22px;font-family:Georgia,serif;font-weight:400;color:var(--muted);letter-spacing:-.5px}.practice-card p{font-size:11px;color:var(--muted);margin-bottom:25px}.practice-card .secondary{background:transparent;border-color:var(--line);color:var(--muted);font-size:11px}.empty{text-align:center;padding:35px 25px 45px}.empty-icon{font-size:36px;color:var(--muted);margin-bottom:13px}.empty h3{font-size:16px;color:var(--muted);letter-spacing:-.2px}.empty p{font-size:12px;max-width:350px;margin:0 auto 20px;color:var(--muted)}.empty .primary{font-size:11px;background:var(--soft);color:var(--muted);border:1px solid var(--line);min-height:35px;padding:9px 14px}.game-row{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border-top:1px solid var(--line);text-align:left;padding:17px 23px;color:var(--muted)}.game-row:hover{background:var(--soft)}.game-symbol{font-size:28px;color:var(--muted);width:31px}.game-players{flex:1;min-width:0}.game-players strong{font-size:12px;font-weight:550;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-players strong span{color:var(--muted);margin:0 5px}.game-players small{font-size:9px;color:var(--muted);display:block;margin-top:6px}.result{font-size:12px;color:var(--muted);white-space:nowrap;min-width:38px;text-align:center}.result.active{font-size:10px;color:var(--muted)}.dashboard-columns .game-row .tag{display:none}.cadence-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:25px;padding:0 25px 25px}.cadence-stats strong{font-size:12px;font-weight:500;display:block}.cadence-stats span{font-size:10px;color:var(--muted);display:block;margin:9px 0}.form-section{padding:27px}.step-heading{display:flex;align-items:center;gap:11px;margin-bottom:25px}.step-heading>span{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.step-heading h2{font-size:17px;letter-spacing:-.3px;margin:0;color:var(--muted)}.setup-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(285px,1fr);gap:23px}.opponent{display:flex;align-items:center;gap:16px;margin-bottom:28px}.opponent-avatar{width:57px;height:57px;background:var(--green);border-radius:13px;flex-shrink:0;padding:8px}.opponent-avatar .piece{width:100%;height:100%}.opponent h3{font-size:22px;margin:0 0 7px}.opponent h3 .tag{font-size:7px;vertical-align:middle;margin-left:6px}.opponent p{font-size:10px;margin:0}.elo-number{font-size:27px;font-weight:500;letter-spacing:-1px;margin-left:auto;color:var(--muted)}.elo-number small{display:block;font-size:7px;letter-spacing:1.1px;margin-top:5px;color:var(--muted)}.range-label{margin-bottom:0}.range-label input{margin-top:18px}.range-captions{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:12px 0 25px}.time-group{display:flex;align-items:center;gap:20px;margin-bottom:15px}.time-group>span{font-size:11px;color:var(--muted);min-width:65px}.time-group>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:1}.time-choice{padding:12px 10px;border:1px solid var(--line);background:var(--surface);border-radius:7px;color:var(--muted);font-size:15px;white-space:nowrap}.time-choice small{font-size:11px}.time-choice.chosen,.color-choices .chosen{background:var(--soft);color:var(--muted);border-color:var(--line);box-shadow:0 0 0 1px #81a06430}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.color-choices{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-bottom:28px}.color-choices button{background:var(--surface);border:1px solid var(--line);padding:14px 4px;border-radius:8px;font-size:10px;color:var(--muted)}.color-token{width:23px;height:23px;border-radius:50%;display:block;margin:0 auto 9px;border:1px solid var(--line)}.color-token.w{background:var(--soft)}.color-token.b{background:var(--green)}.color-token.random{background:linear-gradient(90deg,var(--soft) 50%,var(--green) 50%)}.checkbox-row{display:flex;gap:12px;font-weight:400;border-top:1px solid var(--line);padding-top:23px}.checkbox-row input{margin-top:0}.checkbox-row strong{font-size:12px;font-weight:550;color:var(--muted)}.checkbox-row small{display:block;font-size:11px;line-height:1.7;color:var(--muted);margin-top:7px}.setup-summary{display:flex;align-items:center;justify-content:center;gap:9px;background:var(--soft);padding:14px;border-radius:7px;font-size:11px;color:var(--muted);margin:25px 0 17px}.soft-note{display:flex;gap:13px;padding:20px;color:var(--muted);background:var(--soft);border:1px solid var(--line);border-radius:8px;margin-bottom:20px}.soft-note svg{flex-shrink:0;margin-top:2px}.soft-note p{font-size:11px;line-height:1.9;margin:0;color:var(--muted)}.filters{display:flex;gap:12px;padding:22px}.filters input{flex:2}.filters select{flex:1;font-size:12px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-top:1px solid var(--line)}.pagination span{font-size:11px;color:var(--muted)}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:23px}.import-icon{width:52px;height:52px;border-radius:12px;background:var(--soft);color:var(--muted);display:flex;align-items:center;justify-content:center;margin-bottom:22px}.chesscom-icon{font-size:35px;background:var(--soft);color:var(--muted)}.file-drop{position:relative;cursor:pointer;border:1px dashed #cbd8ba;background:#f6f9ef;border-radius:9px;min-height:165px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#91a579;margin:25px 0}.file-drop small{font-size:10px;font-weight:400;color:#a5b194}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.two-columns form>.primary{margin-top:20px}.two-columns form>p{font-size:12px}.job{padding:21px 25px;border-top:1px solid var(--line)}.job-head{display:flex;align-items:center;gap:13px}.job-head>div{flex:1;min-width:0}.job-head strong{font-size:12px;font-weight:550;word-break:break-word}.job-head small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.job-counts{display:flex;gap:16px;font-size:10px;color:var(--muted);margin:13px 0}.job progress{margin-top:18px}.inline-form{padding:25px;display:flex;align-items:end;gap:20px}.inline-form label{margin:0;flex:1}.admin-row{display:flex;gap:15px;align-items:center;padding:19px 25px;border-top:1px solid var(--line)}.admin-row>div{flex:1}.admin-row strong{font-size:13px;font-weight:500}.admin-row small{display:block;font-size:10px;margin-top:4px;color:var(--muted)}.account-form{max-width:490px}.password-onboarding{max-width:640px;margin:60px auto;padding:20px}.password-onboarding>.brand{margin-bottom:40px}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fbfcf8}.login-story{background:#1c4636;color:#f6f1df;display:flex;flex-direction:column;justify-content:space-between;padding:50px 60px;overflow:hidden;position:relative}.login-story .brand{color:#f5eed8}.login-story>.brand,.login-story>small{z-index:1}.login-story .eyebrow{color:#92ab82}.login-story h1{font:400 49px/1.2 Georgia,serif;letter-spacing:-1px}.login-story p{color:#9fb591;font-size:13px}.login-story>small{color:#839e78;font-size:11px;letter-spacing:1px}.login-piece{position:absolute;right:3%;bottom:4%;height:210px;width:210px;opacity:.13;transform:rotate(-15deg)}.login-piece svg{width:100%;height:100%}.login-form{width:100%;max-width:420px;margin:auto;padding:40px}.login-form h2{font-size:32px}.login-form>p{font-size:12px;margin-bottom:35px}.login-form>p:last-child{display:flex;align-items:center;gap:8px;margin-top:27px;font-size:10px}.login-form .eyebrow{font-size:8px}.game-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.game-heading>div{display:flex;gap:8px}.play-layout{display:grid;grid-template-columns:minmax(300px,1.45fr) minmax(280px,1fr);gap:25px;align-items:start}.board-column{min-width:0}.board-wrap{position:relative}.chessboard{display:grid;grid-template-columns:repeat(8,1fr);width:100%;aspect-ratio:1;border-radius:5px;overflow:hidden;position:relative;box-shadow:0 8px 25px #273c2710;border:1px solid #6c896439}.square{aspect-ratio:1;border:0;border-radius:0;padding:0;position:relative;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.square:active{transform:none!important}.square.light{background:#e8ecdb;color:#6b8960}.square.dark{background:#819b72;color:#edf0e0}.square.last.light{background:#e3dc97}.square.last.dark{background:#b2b779}.square.selected{background:#bdc983!important}.square .piece{width:83%;height:83%;z-index:1;pointer-events:none;filter:drop-shadow(0 2px 1px #24362025)}.rank,.file{position:absolute;font-size:clamp(7px,1vw,11px);font-weight:600;line-height:1;z-index:2;pointer-events:none}.rank{left:4px;top:4px}.file{right:4px;bottom:3px}.move-dot{height:24%;width:24%;border-radius:50%;background:#31463132;position:absolute}.capture-dot{position:absolute;inset:0;border:5px solid #31463140;border-radius:50%}.board-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.promotion{position:absolute;inset:25% 8% auto;background:var(--surface);box-shadow:0 12px 50px #182b2960;padding:20px;z-index:8;border-radius:12px;text-align:center}.promotion>div{display:flex;justify-content:center;gap:8px;margin:15px 0}.promotion button:not(.link){width:55px;height:55px;background:var(--soft);border-radius:6px}.promotion .piece{width:100%;height:100%}.player-bar{display:flex;align-items:center;gap:11px;padding:14px 1px}.player-avatar{width:35px;height:35px;background:var(--soft);border:1px solid var(--line);border-radius:7px}.player-avatar.b{background:var(--soft)}.player-avatar svg{width:100%;height:100%}.player-name{flex:1;min-width:0}.player-name strong{display:block;font-size:13px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-name small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.clock{font-size:25px;letter-spacing:.4px;font-variant-numeric:tabular-nums;background:var(--soft);color:var(--muted);padding:7px 13px;border-radius:6px;min-width:100px;text-align:center;line-height:1.2}.clock.low.ticking{background:#a05c41}.board-tools{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:9px;color:var(--muted);padding:12px 0}.board-tools>span{display:flex;gap:6px;align-items:center}.board-tools .link{font-size:10px}.game-side .panel{margin-bottom:16px}.game-status{padding:24px;margin-top:13px}.game-status .eyebrow{font-size:8px}.game-status h2{font:400 24px Georgia,serif;color:var(--muted)}.game-status p{font-size:11px;color:var(--muted);margin-bottom:0}.game-status .primary{margin-top:20px}.notation-panel .section-heading{padding:19px 20px 15px}.move-list{max-height:290px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;align-content:start;background:var(--surface);padding:8px 15px;gap:0;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.move-list>p{grid-column:1/-1;padding:20px 4px}.move-entry{display:flex;align-items:center;min-width:0;height:35px}.move-number{font-size:10px;color:var(--muted);width:28px;flex-shrink:0;text-align:center}.move-entry.b .move-number:empty{width:6px}.move-entry button{font-size:13px;color:var(--muted);background:transparent;padding:6px 10px;text-align:left;width:100%;border-radius:4px;display:flex;justify-content:space-between;gap:6px}.move-entry button:disabled{opacity:1}.move-entry button.current{background:var(--soft);color:var(--muted)}.move-entry button.blunder{color:#b26e4c}.move-entry button.mistake{color:#b69a46}.move-entry button.inaccuracy{color:#a9aa60}.move-grade{font-size:10px}.game-actions{display:flex;flex-direction:column;gap:16px;padding:20px;border-top:1px solid var(--line)}.game-actions .secondary{font-size:11px}.game-side .soft-note{font-size:11px;padding:17px}.review-layout{grid-template-columns:minmax(300px,1.3fr) minmax(310px,1fr)}.review-layout .board-column{position:sticky;top:20px}.review-board-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:12px;color:var(--muted);min-height:25px}.review-navigation{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 0;background:var(--soft);border-radius:0 0 8px 8px;border:1px solid var(--line)}.review-navigation button{display:flex;align-items:center;justify-content:center;background:transparent;color:var(--muted);padding:5px}.review-navigation span{font-size:11px;color:var(--muted);min-width:62px;text-align:center}.review-slider{margin:13px 0 18px}.trial-banner{background:#ede6c9;padding:12px;display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:10px;color:#8b7c45}.trial-banner .link{font-size:10px;color:#8b7c45}.evaluation-panel .section-heading{padding:15px 17px 0}.evaluation-panel h3{font-size:12px}.evaluation-panel .small{font-size:9px}.evaluation-panel>p{padding:15px 17px}.evaluation-chart{width:100%;display:block;padding:10px 15px}.analysis-settings{padding:21px}.analysis-settings .section-heading{padding:0 0 18px}.analysis-settings label{font-size:10px;margin-bottom:14px}.analysis-settings select{font-size:11px;padding:9px 7px}.analysis-settings .form-grid{gap:9px}.analysis-settings .primary{font-size:11px;padding:12px 9px;gap:8px}.analysis-progress{margin-top:17px}.analysis-progress small{display:block;font-size:10px;color:var(--muted);margin:6px 0}.engine-panel{padding:19px}.engine-title{display:flex;align-items:center;gap:10px;margin-bottom:16px}.engine-title h3{font-size:15px;letter-spacing:-.2px;margin:0 0 3px}.engine-title h3 span{font-size:11px;color:var(--muted);margin-left:4px}.engine-title small{font-size:9px;color:var(--muted)}.engine-mark{border-radius:6px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font:600 16px Georgia,serif;background:var(--soft);color:var(--muted)}.engine-mark.maia{background:var(--soft);color:var(--muted)}.analysis-lines>button{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:12px 0;width:100%;background:none;text-align:left}.analysis-lines>button:hover{background:var(--soft)}.line-rank{font-size:9px;color:var(--muted);width:16px;text-align:center}.analysis-lines>button>div{flex:1;min-width:0}.analysis-lines strong{font-size:14px;font-weight:550;color:var(--muted)}.analysis-lines small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;color:var(--muted);margin-top:5px}.score{font-size:11px;color:var(--muted);background:var(--soft);padding:5px 7px;border-radius:4px}.human-choice{font-size:8px;color:var(--muted);letter-spacing:.2px}.engine-note{font-size:9px;line-height:1.7;color:var(--muted);margin:10px 0 0;padding-top:12px;border-top:1px solid var(--line)}.classification{padding:10px 12px;border-radius:5px;background:#f4ecd5;color:#a28b4c;font-size:10px;line-height:1.6}.classification.blunder{background:#f4e5d9;color:#b77c55}.pgn-notes{padding:6px 18px}.variation-node{border-left:1px solid var(--line);padding-left:12px;margin:8px 0}.variation-node>.link{margin-right:10px}.variation-node .small{font-size:10px}.variation-node summary{font-size:10px;padding:7px 0}.exercise-card{padding:28px}.exercise-target{width:70px;height:70px;background:var(--soft);border:1px solid var(--line);border-radius:50%;color:var(--muted);display:flex;align-items:center;justify-content:center;margin:27px 0}.exercise-card h2{font-family:Georgia,serif;font-size:26px;font-weight:400;color:var(--muted)}.exercise-card p{font-size:12px}.exercise-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:27px 0}.exercise-card>.link{margin-top:23px;font-size:11px}.solution-line{display:flex;flex-wrap:wrap;gap:11px;padding:12px 0 18px}.exercise-card .success{margin-bottom:10px}.exercise-card .success svg{flex-shrink:0}@media(min-width:1500px){.page{padding-top:45px}.hero{min-height:340px}.hero-content{padding:38px 43px}.hero h2{font-size:41px}.hero-art>.piece{width:230px;height:250px}.game-side .move-list{max-height:350px}}@media(max-width:1150px){.sidebar{width:210px;padding-left:14px;padding-right:14px}.main{margin-left:210px;width:calc(100% - 210px)}.page{padding:30px 28px}.topbar{padding:0 28px}.hero-content{padding:28px}.hero h2{font-size:31px}.hero-art>.piece{right:5%;width:180px}.hero-art{width:38%}.stat{padding:18px}.stat-label{font-size:10px}.stat>small{font-size:9px}.dashboard-columns{grid-template-columns:minmax(0,1.5fr) minmax(200px,1fr);gap:17px}.practice-card{padding:22px}.practice-card h2{font-size:20px}.setup-layout,.play-layout,.review-layout{gap:18px}.form-section{padding:22px}.opponent{gap:10px}.opponent-avatar{width:45px;height:45px}.opponent h3{font-size:20px}.elo-number{font-size:23px}.opponent h3 .tag{display:none}.time-group{gap:9px}.time-group>span{min-width:48px;font-size:10px}.time-group>div{gap:5px}.time-choice{padding:10px 7px}.play-layout{grid-template-columns:minmax(270px,1.3fr) minmax(260px,1fr)}.board-tools{flex-wrap:wrap;gap:7px}.page-title h1{font-size:29px}.game-row{padding:16px}.game-row .tag{font-size:9px}.date-label{display:none}}@media(max-width:950px){.sidebar{width:185px;padding:28px 10px 0}.sidebar .brand{font-size:22px;padding-left:10px;margin-bottom:38px}.sidebar nav a,.sidebar-bottom>a{font-size:11px;padding:12px 9px;gap:9px}.sidebar-note{margin:28px 5px}.main{margin-left:185px;width:calc(100% - 185px)}.page{padding:28px 22px}.topbar{padding:0 22px}.hero-art{width:34%;opacity:.7}.hero-content{width:85%}.hero h2{font-size:30px}.hero-art>.piece{width:140px;right:-10%;top:90px}.art-label,.art-star{display:none}.stat-grid{gap:10px}.stat{padding:15px 13px}.stat-label{font-size:9px;min-height:25px}.stat-label svg{width:15px}.stat>small{line-height:1.6;min-height:27px}.dashboard-columns{grid-template-columns:1fr}.practice-card{display:none}.setup-layout,.play-layout,.review-layout{grid-template-columns:1fr}.board-column{max-width:600px;width:100%;margin:auto}.review-layout .board-column{position:static}.game-side{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.game-side .panel{margin:0}.game-side>.soft-note,.game-side>.error{grid-column:1/-1}.game-side .game-status{margin-top:0}.notation-panel,.game-side .analysis-settings{grid-column:1/-1}.two-columns{gap:15px}.two-columns .form-section{padding:20px}.form-grid{gap:10px}.filters{flex-wrap:wrap}.filters input{flex-basis:100%}.game-row .tag{display:none}.admin-row{gap:10px;flex-wrap:wrap}.admin-row>.tag{margin-left:auto}.admin-row .compact{margin-left:44px}.login-story{padding:45px 35px}.login-story h1{font-size:37px}.login-form{padding:30px}.exercise-card{grid-column:1/-1}.review-layout .engine-panel{min-width:0}.hero{min-height:315px}}@media(max-width:680px){.sidebar{transform:translate(-100%);width:240px;padding:30px 20px 0;transition:transform .2s}.sidebar.open{transform:translate(0)}.main{margin-left:0;width:100%}.mobile-toggle{display:flex;position:fixed;left:12px;top:13px;background:var(--soft);padding:7px;border-radius:7px;color:var(--muted);z-index:30;border:1px solid var(--line)}.mobile-toggle svg{width:19px;height:19px}.scrim{position:fixed;inset:0;background:#19342355;z-index:19}.topbar{padding:0 17px 0 57px;height:60px;font-size:10px}.topbar>span{font-size:9px}.topbar .icon-button{margin-left:1px}.page{padding:26px 18px 35px}.page-title{gap:12px;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap}.page-title h1{font-size:26px}.page-title p{font-size:12px;line-height:1.7}.page-title .secondary{font-size:11px;min-height:35px;padding:9px 12px}.eyebrow{font-size:8px;margin-bottom:11px}.hero{min-height:300px;margin-bottom:18px}.hero-content{padding:25px;width:100%}.hero h2{font-size:30px}.hero p{font-size:11px;max-width:82%}.hero-art{width:40%;opacity:.4}.hero-art>.piece{width:125px;top:125px;right:-20px}.hero-label{font-size:8px}.hero .cream-button{font-size:11px;padding:12px 14px}.hero-footnote{font-size:8px}.stat-grid{gap:8px;margin-bottom:21px}.stat{padding:14px 10px}.stat-label{font-size:8px;line-height:1.6;margin-bottom:13px;min-height:26px}.stat-label>span{display:none}.stat>strong{font-size:25px}.stat>small{font-size:8px;line-height:1.65;min-height:28px}.section-heading{padding:20px 19px 16px}.section-heading h2{font-size:14px}.section-heading .link{font-size:10px}.game-row{padding:15px;gap:9px}.game-symbol{font-size:24px;width:25px}.game-players strong{font-size:11px}.game-players small{font-size:8px}.result{font-size:10px;min-width:25px}.game-row>svg{width:12px}.panel{margin-bottom:18px}.empty{padding:25px 20px 35px}.empty h3{font-size:15px}.empty p{font-size:11px}.two-columns{grid-template-columns:1fr;gap:0}.filters{padding:17px;gap:8px}.filters input,.filters select{font-size:11px;padding:10px}.pagination{padding:16px}.pagination .secondary{font-size:10px;padding:8px 12px;min-height:33px}.setup-layout{gap:0}.form-section{padding:21px}.time-group>span{min-width:52px}.time-choice{padding:12px 9px}.opponent-avatar{width:46px;height:46px}.opponent h3{font-size:20px}.elo-number{font-size:26px}.step-heading{margin-bottom:22px}.step-heading h2{font-size:16px}.form-section .small{font-size:10px}.color-choices button{font-size:11px}.game-side{display:flex;flex-direction:column;gap:15px}.game-side .panel{width:100%}.play-layout{gap:16px}.game-heading{margin-bottom:15px}.player-bar{padding:12px 0}.player-name strong{font-size:12px}.clock{font-size:22px;min-width:90px}.rank,.file{font-size:8px;left:3px;top:3px}.file{inset:auto 3px 2px auto}.square .piece{width:85%;height:85%}.review-layout .engine-panel{width:100%}.review-board-label{font-size:11px}.board-tools .link{font-size:9px}.job{padding:18px}.job-head{gap:9px;flex-wrap:wrap}.job-head>div{flex-basis:55%}.job-counts{flex-wrap:wrap;gap:7px 13px;font-size:9px}.job-head strong{font-size:11px}.job-head>.compact{margin-left:15px}.job-head .tag{font-size:8px}.inline-form{flex-direction:column;align-items:stretch;padding:20px;gap:15px}.admin-row{padding:17px}.admin-row .link,.admin-row .compact{font-size:10px}footer{padding:0 18px 20px;font-size:9px}.login-layout{display:flex;flex-direction:column}.login-story{min-height:210px;padding:28px}.login-story .brand{font-size:23px;margin-bottom:32px}.login-story .eyebrow,.login-story p,.login-story>small{display:none}.login-story h1{font-size:30px;margin-bottom:0}.login-piece{height:150px;width:150px;right:5%;bottom:15px}.login-form{padding:34px 28px;max-width:450px}.login-form h2{font-size:28px}.password-onboarding{margin-top:20px;padding:20px}.password-onboarding h1{font-size:27px}.trial-banner{font-size:10px;flex-wrap:wrap}.review-navigation{gap:20px}.exercise-card{padding:24px}}.game-list-entry{display:flex;align-items:center;border-top:1px solid var(--line)}.game-list-entry .game-row{flex:1;min-width:0;border-top:0}.delete-game{flex-shrink:0;justify-content:center;min-width:44px;min-height:44px;margin-right:8px;color:#a35449}.delete-game:hover:not(:disabled){background:#faeeea;color:#84392f}.chessboard{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.chessboard .square{touch-action:none}.square.light{background:var(--board-light,#e8ecdb)}.square.dark{background:var(--board-dark,#819b72)}.square.last.light{background:color-mix(in srgb,var(--board-light) 45%,#e6ce54)}.square.last.dark{background:color-mix(in srgb,var(--board-dark) 45%,#e6ce54)}.square.check{background:radial-gradient(ellipse at center,#c77757,#b58767)!important}.square .classic-piece{filter:none}.appearance-settings{max-width:490px}.appearance-preview{max-width:350px;margin:0 auto 24px}.appearance-settings>p{font-size:12px}.brand-mark{display:inline-flex;width:36px;height:40px;flex-shrink:0}.brand-mark .piece,.game-symbol .piece,.chesscom-icon .piece{width:100%;height:100%}.game-symbol{display:inline-flex;height:32px;flex-shrink:0}.chesscom-icon .piece{padding:5px}.appearance-preview .square{cursor:default}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}body,.app{background:var(--page);color:var(--text)}button{color:inherit}a,button,input,select,summary{outline-color:var(--green)}.primary{color:var(--on-accent)}.primary:hover:not(:disabled){background:var(--dark)}.secondary,.link,.sidebar a.selected,.sidebar nav a:hover,.sidebar-bottom>a:hover{color:var(--green)}.secondary:hover:not(:disabled),.icon-button:hover,.game-row:hover{background:var(--hover)}.hero{background:linear-gradient(120deg,var(--hero),var(--hero-end));border-color:var(--hero);color:var(--hero-text)}.hero-label,.hero p,.hero-footnote,.art-label,.art-star{color:var(--hero-muted)}.hero-label span{background:var(--hero-muted)}.cream-button{background:var(--cream);color:var(--hero-end)}.cream-button:hover{background:#fff9e8}.stat>strong,.section-heading h2,.section-heading h3,.practice-card h2,.game-status h2,.exercise-card h2{color:var(--text)}.sidebar,.panel,.stat{background:var(--surface)}.sidebar-note{background:linear-gradient(160deg,var(--soft),var(--surface))}.practice-card,.tag,.review-navigation,.move-list,.clock,.player-avatar,.player-avatar.b,.opponent-avatar,.chesscom-icon,.engine-mark,.engine-mark.maia{background:var(--soft)}.brand,.time-choice.selected,.color-choices button.selected,.move-entry button.current,.score,.analysis-lines strong{color:var(--green)}.clock.ticking{background:var(--green);color:var(--on-accent)}.clock.low.ticking{background:#a05c41;color:#fff}.opponent-avatar{background:var(--hero)}.trial-banner,.classification{background:#eee0b8;color:#68541f}.classification.blunder{background:#f4e5d9;color:#854426}.move-entry button.blunder{color:#b25935}.move-entry button.mistake,.move-entry button.inaccuracy{color:var(--gold)}[data-theme=space] .move-entry button.blunder,[data-theme=slate] .move-entry button.blunder{color:#f1ac87}.square.light{color:#30404a}.square.dark{color:#fff}.square:before{content:"";position:absolute;inset:0;background-image:var(--board-texture,none);background-size:23px 23px;pointer-events:none}.move-dot,.capture-dot{z-index:2;pointer-events:none}.square.selected{box-shadow:inset 0 0 0 3px #756307}.brand-mark,.game-symbol{background:var(--soft);border-radius:7px}fieldset{padding:0;margin:0;border:0;min-width:0}legend{font-size:12px;font-weight:600;margin-bottom:12px;color:var(--text)}.appearance-settings{max-width:640px}.theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:22px}.theme-tile{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:7px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:11px;text-align:left;min-width:0}.theme-tile[aria-pressed=true]{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.theme-tile>svg{margin-left:auto;color:var(--green)}.theme-swatch{height:42px;display:block;width:100%;border-radius:4px}.appearance-preview{max-width:380px;padding:15px;background:var(--page);border:1px solid var(--line);border-radius:10px;color:var(--text)}.preview-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:14px}.preview-heading strong{font-family:Georgia,serif;font-size:20px;font-weight:400}.preview-heading span,.preview-footer{font-size:10px;color:var(--muted)}.preview-footer{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:8px}.preview-accent{background:var(--green);color:var(--on-accent);padding:8px 11px;border-radius:5px}.logo-settings{max-width:640px;padding:18px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.logo-settings h2{font-size:15px;margin:0 0 5px}.logo-settings p{font-size:11px;margin:0}.logo-choices{display:flex;gap:6px;margin-left:auto}.logo-choices button{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:3px;min-width:48px;min-height:60px;padding:5px;border:1px solid var(--line);border-radius:7px;background:var(--soft);color:var(--text);font-size:9px}.logo-choices .piece{width:30px;height:33px}.logo-choices button[aria-pressed=true]{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.logo-feedback{font-size:11px;color:var(--muted);flex-basis:100%;min-height:13px}.logo-settings .error{width:100%;margin:0}@media(max-width:680px){.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.logo-settings{padding:16px;gap:12px}.logo-choices{margin-left:0;width:100%;justify-content:space-between;gap:4px}.logo-choices button{min-width:0;flex:1;font-size:8px}.appearance-preview{padding:10px}.appearance-settings .form-grid{grid-template-columns:1fr}.hero-art>.piece{right:0;max-width:100%}}
