/* Layout and type scale follow the portal's /chess catalog. */
.ai-stats{font:12px/20px var(--mono);color:var(--muted);padding:10px 0;margin:0}.lab-warning{font-size:13px;line-height:22px;border-left:3px solid var(--lime);padding:16px;background:#1b2110;margin-bottom:24px}.lab-controls{display:flex;flex-wrap:wrap;align-items:end;gap:16px}.lab-controls label{display:flex;flex-direction:column;gap:10px;font-size:12px;color:var(--muted)}.lab-controls input,.lab-controls select{font:14px/20px var(--mono);border:1px solid #555;background:#151515;color:#fff;padding:12px;max-width:100%;min-width:180px}.lab-controls input:focus,.lab-controls select:focus{outline:2px solid var(--lime)}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:20px}.candidate-card{background:var(--card);padding:22px;min-width:0}.candidate-preview{display:block;width:100%;background:#141910;aspect-ratio:1}.candidate-card h3{font:500 18px/26px var(--display);margin:20px 0 12px}.candidate-card p{font:13px/22px var(--mono);color:var(--muted)}.candidate-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.candidate-actions button{font-size:12px;padding:10px}.candidate-card summary{font-size:12px;cursor:pointer;color:var(--lime);margin-top:16px}.candidate-card details p{margin-top:12px}.approved-week{border:1px solid var(--line);padding:22px;margin:24px 0 32px;overflow-wrap:anywhere}.approved-week h3{font:500 20px/28px var(--display);margin:0 0 16px}.approved-week p{font-size:13px;line-height:22px;margin:12px 0}.approved-week button{margin:8px 12px 8px 0}.board-actions button{font-size:12px}.candidate-card details{overflow-wrap:anywhere}@media(max-width:700px){.lab-controls{display:grid;grid-template-columns:1fr}.lab-controls input,.lab-controls select{width:100%}.candidate-card{padding:16px}.approved-week{padding:16px}.board-actions button{padding:10px;font-size:11px}}
:root{--bg:#000;--card:#1E1E1E;--line:rgba(255,255,255,.16);--muted:rgba(255,255,255,.64);--white:#fff;--mono:'PT Mono',ui-monospace,Menlo,Consolas,monospace;--display:Unbounded,-apple-system,'Segoe UI',sans-serif}
body{background:#000;font-family:var(--mono);-webkit-font-smoothing:antialiased}main.dots{max-width:1240px;margin:auto;padding:80px 24px;display:flex;flex-direction:column;gap:56px}.head{display:flex;flex-direction:column;gap:28px}.head-nav{display:flex;flex-direction:column;gap:12px;border-bottom:1px solid var(--line);padding-bottom:16px}.head .eyebrow{font-size:13px;line-height:18px;color:var(--muted);letter-spacing:0;gap:12px}.pulse{width:8px;height:8px;background:var(--lime)}.breadcrumbs{display:flex;align-items:center;gap:8px;font-size:13px;line-height:18px;color:var(--muted)}.breadcrumbs a,.breadcrumbs button{color:var(--lime);text-decoration:none}.breadcrumbs button{padding:0}.breadcrumbs>span:not([aria-current]){opacity:.7}h1{margin:0;font-family:Rubik,-apple-system,sans-serif;font-size:clamp(32px,5.6vw,56px);font-weight:800;font-style:italic;line-height:1.05;letter-spacing:0;text-transform:uppercase}.lead{max-width:620px;color:var(--muted);font-size:16px;line-height:24px;letter-spacing:-.02em;margin:0}
.label,.card-label{font-size:13px;line-height:18px;color:var(--muted);letter-spacing:0}.label{border-top:1px solid var(--line);padding-top:16px}.filters{display:flex;flex-direction:column;gap:20px;margin-bottom:32px}.filtergrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:20px 28px}.fgroup{display:flex;flex-direction:column;gap:10px}.fname{font-size:12px;line-height:16px;color:rgba(255,255,255,.45)}.frow{display:flex;flex-wrap:wrap;gap:6px}.chipbtn{padding:9px 14px;border:1px solid rgba(255,255,255,.28);font-size:13px;line-height:18px;transition:background 200ms}.chipbtn:hover{background:rgba(255,255,255,.08)}.chipbtn.on{background:var(--lime);color:#000;border-color:var(--lime)}.countbar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;font-size:13px;line-height:18px;color:var(--muted)}.count-actions{display:flex;flex-wrap:wrap;gap:8px}.btn,.secondary,.primary{padding:13px 18px;border:1px solid rgba(255,255,255,.28);font:14px/20px var(--mono);clip-path:none;font-weight:400;display:inline-flex;justify-content:center;align-items:center}.btn:hover,.secondary:hover{background:#fff;color:#000}.btn.small{padding:9px 14px;font-size:13px;line-height:18px}.primary{background:var(--lime);color:#000;border-color:var(--lime)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:20px}.catalog-card{background:var(--card);padding:18px;display:flex;flex-direction:column;gap:16px;text-align:left;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%);transition:background 200ms;color:#fff}.catalog-card:hover{background:#262626}.catalog-card:focus-visible{outline:none;background:#313626;box-shadow:inset 0 0 0 2px var(--lime)}.mini-board{display:block;width:100%;aspect-ratio:1.6;background:#161b12}.card-body{display:flex;flex-direction:column;gap:10px}.card-meta{font-size:12px;line-height:16px;color:rgba(255,255,255,.5);display:flex;gap:10px;align-items:center}.completed{margin-left:auto;color:#000;background:var(--lime);padding:3px 8px;font-size:11px}.card-title{font-family:var(--display);font-weight:500;font-size:18px;line-height:24px;letter-spacing:-.02em}.card-diff{display:flex;gap:10px;align-items:center;font-size:12px;line-height:16px;color:rgba(255,255,255,.55)}.bars{display:inline-flex;gap:3px}.bars i{width:12px;height:7px;background:rgba(255,255,255,.2)}.bars i.on{background:var(--lime)}.card-tags{display:flex;gap:6px;flex-wrap:wrap}.card-tags span{padding:4px 9px;border:1px solid rgba(255,255,255,.2);font-size:12px;color:rgba(255,255,255,.7)}.prototype-note{font-size:12px;line-height:20px;color:rgba(255,255,255,.45);margin-top:24px}.empty{padding:30px;background:var(--card)}.empty h2{font-size:20px}.empty p{color:var(--muted);margin:15px 0 20px}
.tabs{margin:0;gap:24px;flex-wrap:wrap}.tabs button{font-size:13px;line-height:18px;padding:12px 0}.game-layout{grid-template-columns:minmax(0,1fr) 320px;gap:28px}.board-card{background:none;border:0}.board-top{padding:16px 0;border-top:1px solid var(--line);border-bottom:0}.board-top strong{font-size:14px;line-height:20px;font-weight:400}.board-top small{font-size:12px;line-height:18px}.training-tag{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:6px 8px}.board-wrap{padding:0;background:#151912;border:1px solid var(--line)}.board-bottom{font-size:12px;padding:15px 0;border:0}.board-actions{display:flex;flex-wrap:wrap;gap:8px}.board-actions button{flex:1 1 auto}.hint-description{background:var(--card);border-left:3px solid var(--lime);padding:16px;font-size:14px;line-height:22px;margin:16px 0 0;color:#d9e1cc}.ghost{fill:#c3e82320}aside{gap:28px}aside section{padding:16px 0 0;background:none;border:0;border-top:1px solid var(--line)}.score small{font-size:11px}.status{font-size:14px;line-height:22px;padding:13px 16px;background:var(--card);border:0}.bot-heading span{font-size:12px}.opponent-card p,.mission-card p{font-size:14px;line-height:22px}.below-board{display:none}.section-title{margin:0 0 24px}.section-title h2{font-family:var(--display);font-size:24px;line-height:32px;letter-spacing:-.02em}.section-title p{font-size:13px}.eyebrow{font-size:12px;letter-spacing:0}.level-card p{font-size:13px;line-height:20px}.level-card small{font-size:11px;line-height:18px}.info-strip{font-size:13px;line-height:22px}.sample-tag{font-size:12px}.progress-main h3{font-family:var(--display);font-size:28px;line-height:38px}.progress-main p,.rank-card p{font-size:14px;line-height:22px}.passport-stats span{font-size:12px}.muted{font-size:13px!important;line-height:20px}.rank-pill{font-size:12px}.rating-bottom{display:block}.rating-bottom article{border:0;border-top:1px solid var(--line);background:none;padding:24px 0}.rating-bottom p{font-size:14px;line-height:22px}.achievements-section{margin-top:36px}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:16px}.achievement{background:var(--card);padding:20px;display:flex;flex-direction:column;gap:12px}.achievement-top{display:flex;justify-content:space-between;align-items:center}.achievement-icon{font-size:30px;line-height:36px;color:var(--lime)}.achievement-state{font-size:11px;color:var(--muted)}.achievement h3{font-family:var(--display);font-size:15px;line-height:22px;margin:0}.achievement p{font-size:12px;line-height:20px;color:var(--muted);margin:0}.achievement.locked .achievement-icon{color:#848a7d}.achievement.locked{border:1px solid var(--line);background:#101010;opacity:1}.achievement-progress{font-size:11px;color:var(--violet)}footer{padding:24px 0 0;border-top:1px solid var(--line);font-size:13px;line-height:18px;color:var(--muted)}dialog{background:var(--card)}dialog li,dialog p{font-size:14px;line-height:22px}dialog h2{font-family:var(--display);font-size:23px;line-height:32px}
@media(min-width:1450px){main.dots{max-width:1240px}}@media(max-width:1000px){main.dots{padding:56px 24px;gap:40px}.game-layout{grid-template-columns:minmax(0,1fr) 280px;gap:24px}.board-actions button{font-size:12px;padding:11px 12px}}
@media(max-width:700px){main.dots{padding:40px 16px;gap:32px}.head{gap:20px}.game-layout{grid-template-columns:1fr}.filtergrid{grid-template-columns:1fr 1fr;gap:20px 16px}.chipbtn{font-size:12px;padding:8px 10px}.count-actions{gap:6px}.btn.small{font-size:12px;padding:9px 10px}.cards{gap:16px}.tabs{gap:6px 18px}.tabs button{font-size:12px}.tabs button:last-child{margin-left:0}aside{display:flex}.board-top strong{font-size:13px}.board-top small{font-size:11px}.training-tag{font-size:10px}.section-title{flex-wrap:wrap;gap:12px}.section-title h2{font-size:21px;line-height:30px}.progress-grid{grid-template-columns:1fr}.progress-main h3{font-size:24px}.passport-stats{gap:24px}.passport-stats span{font-size:11px}.prototype-note{font-size:11px}.board-caption{display:none}.level-grid{grid-template-columns:1fr 1fr}.level-card p{min-height:0}}

.free-play{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;padding:24px;background:var(--card);border-left:3px solid var(--lime);margin-bottom:32px}.free-play h2{font:500 22px/30px var(--display);margin:0 0 12px}.free-play p{max-width:520px;font:14px/22px var(--mono);color:var(--muted);margin:0}@media(max-width:700px){.free-play{padding:20px 16px}.free-play .lab-controls{width:100%}.free-play h2{font-size:20px}}
