:root{--bg:#14110e;--surface:#1f1b16;--surface-2:#2a241d;--border:#3a3228;--text:#f3ece1;--text-dim:#b3a892;--accent:#b8860b;--gold:#d4af37;--beginner:#388e3c;--intermediate:#f57c00;--advanced:#c62828;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;padding:0}a{color:inherit;text-decoration:none}.page{max-width:1040px;margin:0 auto;padding:32px 20px 64px}.app-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:28px;padding-bottom:20px;display:flex}.app-title{letter-spacing:.3px;margin:0;font-size:28px}.app-title .knight{color:var(--accent);margin-right:8px}.app-subtitle{color:var(--text-dim);margin:4px 0 0;font-size:14px}.back-link{color:var(--accent);font-size:14px;font-weight:600}.back-link:hover{text-decoration:underline}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.filter-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .15s}.filter-btn:hover{border-color:var(--accent);color:var(--text)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#1a1408}.puzzle-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.puzzle-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;transition:transform .15s,border-color .15s;display:block}.puzzle-card:hover{border-color:var(--accent);transform:translateY(-2px)}.puzzle-card__top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.puzzle-card__title{margin:0;font-size:18px}.puzzle-card__desc{color:var(--text-dim);margin:12px 0 0;font-size:14px;line-height:1.5}.badge{text-transform:uppercase;letter-spacing:.6px;color:#fff;white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.detail-layout{grid-template-columns:minmax(280px,1fr) minmax(260px,360px);align-items:start;gap:32px;display:grid}@media (width<=800px){.detail-layout{grid-template-columns:1fr}}.board-wrap{width:100%}.detail-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px}.detail-panel h2{margin:0 0 8px;font-size:22px}.detail-desc{color:var(--text-dim);margin:0 0 20px;line-height:1.5}.status{border-radius:10px;margin-bottom:16px;padding:14px 16px;font-size:14px;font-weight:600;line-height:1.4}.status--neutral{background:var(--surface-2);color:var(--text-dim)}.status--wrong{color:#ef9a9a;background:#c6282829;border:1px solid #c6282866}.status--correct{color:#a5d6a7;background:#388e3c29;border:1px solid #388e3c66}.status--solved{color:var(--gold);background:#d4af3729;border:1px solid #d4af3773}.status--solution{color:var(--gold);background:#b8860b29;border:1px solid #b8860b73}.attempts{color:var(--text-dim);align-items:center;gap:8px;margin-bottom:20px;font-size:13px;display:flex}.attempt-dot{border:1.5px solid var(--border);border-radius:50%;width:12px;height:12px}.attempt-dot.used{background:var(--advanced);border-color:var(--advanced)}.btn-row{flex-direction:column;gap:10px;display:flex}.btn{cursor:pointer;border:none;border-radius:10px;padding:12px 16px;font-size:15px;font-weight:700;transition:filter .15s,opacity .15s}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--accent);color:#1a1408}.btn--ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn--solution{background:var(--gold);color:#2a2106}.move-list{color:var(--text-dim);margin-top:20px;font-size:13px}.move-list h3{text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);margin:0 0 8px;font-size:12px}.move-chips{flex-wrap:wrap;gap:6px;display:flex}.move-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.move-chip.played{background:var(--accent);color:#1a1408;border-color:var(--accent)}.empty{color:var(--text-dim);padding:40px 0}.rating-pill{color:var(--gold);white-space:nowrap;background:#d4af371f;border:1px solid #d4af3759;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-block}.theme-tag{color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:inline-block}.puzzle-card__foot,.puzzle-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;display:flex}.puzzle-meta{margin-top:0;margin-bottom:18px}.inline-link{color:var(--accent);font-weight:600}.inline-link:hover{text-decoration:underline}.lichess-link{color:var(--accent);margin-top:18px;font-size:13px;font-weight:600;display:inline-block}.lichess-link:hover{text-decoration:underline}
