:root{color-scheme:light;--paper: #f2f3ef;--panel: #e1e4dc;--panel-strong: #d4d8cf;--ink: #20231f;--muted: #6f756d;--line: #b7beb2;--line-strong: #8f968d;--square-light: #e7e9e4;--square-dark: #aeb5ac;--good: #526451;--bad: #8c5d5d;--white: #fbfcf8}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Avenir Next,Gill Sans,Trebuchet MS,sans-serif;letter-spacing:0}button,input,select{font:inherit}button{border:1px solid var(--line);background:var(--square-light);color:var(--ink);min-height:36px;border-radius:8px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}button:hover:not(:disabled){background:var(--white);border-color:var(--line-strong)}button:focus-visible,input:focus-visible{outline:2px solid #6f786d;outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.48}.loading{min-height:100vh;display:grid;place-items:center;padding:32px;color:var(--muted)}.app-shell{min-height:100vh;padding:18px}.workspace{height:calc(100vh - 36px);display:grid;grid-template-columns:minmax(250px,310px) minmax(340px,1fr) minmax(260px,340px);gap:14px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.rail,.inspector{min-height:0;display:flex;flex-direction:column;padding:14px}.inspector{overflow:auto}.brand{display:flex;align-items:center;justify-content:center;height:82px;padding:0 24px;margin:4px 0 18px;overflow:hidden}.brand img{width:min(400px,100%);height:auto;display:block;object-fit:contain;transform:translateY(5px)}.stats-grid,.meta-grid{display:grid;gap:8px}.stats-grid{grid-template-columns:repeat(3,1fr);margin:8px 0 10px}.stats-grid div,.meta-grid div{border:1px solid var(--line);background:#f7f8f47a;border-radius:8px;padding:10px;min-width:0}.stats-grid strong,.meta-grid strong,.status-card strong{display:block;font-size:18px;line-height:1.2}.stats-grid span,.meta-grid span,.status-card span,.progress-copy span,.section-title{display:block;color:var(--muted);font-size:12px;line-height:1.2;text-transform:uppercase}.progress-card{display:grid;grid-template-columns:84px 1fr;gap:12px;align-items:center;border:1px solid var(--line);background:#f7f8f47a;border-radius:8px;padding:10px;margin-bottom:10px}.progress-ring{--progress: 0%;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(circle at center,var(--panel) 0 55%,transparent 56%),conic-gradient(#6f786d var(--progress),#c8cec5 0);border:1px solid var(--line)}.progress-ring strong,.progress-ring span{display:block;line-height:1}.progress-ring strong{font-size:19px}.progress-ring span{color:var(--muted);font-size:11px;margin-top:4px;text-transform:uppercase}.progress-copy{min-width:0}.progress-copy strong{display:block;font-size:19px;line-height:1.15;margin-top:5px}.progress-copy small{display:block;color:var(--muted);line-height:1.35;margin-top:4px}.progress-breakdown,.overview-bars{display:grid;gap:7px}.progress-breakdown{margin-bottom:12px}.progress-row,.overview-row{display:grid;align-items:center;gap:8px}.progress-row{grid-template-columns:28px minmax(0,1fr) 34px;color:var(--muted);font-size:12px}.progress-row strong,.overview-row b{color:var(--ink);font-size:12px;font-weight:600;text-align:right}.meter{height:8px;border:1px solid var(--line);border-radius:999px;background:#d1d6ce;overflow:hidden}.meter i{display:block;height:100%;background:#6f786d;border-radius:inherit}.search-box{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;border:1px solid var(--line);background:var(--white);border-radius:8px}.search-box input{border:0;background:transparent;min-width:0;width:100%;color:var(--ink)}.filter-block{margin-top:14px}.filter-title{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;margin-bottom:7px;text-transform:uppercase}.segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.segmented.two{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented.wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented button{min-width:0;min-height:32px;padding:0 8px;font-size:13px;text-transform:capitalize}.segmented button.active,.actions button.pressed{background:#cad0c7;border-color:#868f84}.list-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0 8px;color:var(--muted);font-size:13px}.list-header button{min-height:32px}.problem-list{flex:1;min-height:120px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#f7f8f470;position:relative;scrollbar-gutter:stable}.problem-list-spacer{min-height:100%;position:relative}.problem-list-window{left:0;position:absolute;right:0;top:0;will-change:transform}.problem-row{width:100%;border:0;border-bottom:1px solid rgba(143,150,141,.35);border-radius:0;background:transparent;justify-content:flex-start;height:38px;min-height:38px}.problem-row span{font-variant-numeric:tabular-nums;min-width:58px;text-align:left}.problem-row small{color:var(--muted);margin-right:auto}.problem-row.active{background:#c7cdc4;box-shadow:inset 0 0 0 1px #969e92;color:var(--ink);font-weight:700}.board-column{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}.topbar{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:62px;padding:10px;display:grid;grid-template-columns:minmax(108px,auto) 1fr minmax(108px,auto);align-items:center;gap:10px}.puzzle-title{min-width:0;text-align:center}.puzzle-title span,.puzzle-title strong{display:block}.puzzle-title span{color:var(--muted);font-size:12px;line-height:1.1;text-transform:uppercase}.puzzle-title strong{font-family:SFMono-Regular,Consolas,monospace;font-size:28px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.1;letter-spacing:0}.board-shell{min-width:0;min-height:0;display:grid;place-items:center;align-content:center;padding:10px;border-radius:8px;border:1px solid var(--line);overflow:hidden;background:linear-gradient(90deg,rgba(32,35,31,.035) 1px,transparent 1px),linear-gradient(rgba(32,35,31,.035) 1px,transparent 1px),#d9ddd5;background-size:18px 18px}.board-stage{position:relative;max-width:100%;max-height:100%}.board-surface{transition:filter .14s ease,opacity .14s ease}.board-stage.is-solved .board-surface{filter:blur(2px) saturate(.78);opacity:.68}.solved-board-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:18px;border-radius:8px;background:#e1e4dc38;cursor:pointer}.solved-actions{width:min(320px,82%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border:1px solid rgba(82,100,81,.34);border-radius:8px;background:#f2f3efeb;cursor:default}.solved-actions span{grid-column:1 / -1;color:var(--good);font-family:Iowan Old Style,Georgia,serif;font-size:30px;line-height:1;text-align:center}.solved-actions button{min-height:48px;background:var(--white);border-color:var(--line-strong);font-weight:600}.solved-actions button:last-of-type{background:#cbd4c2;border-color:#7e8a79}.status-card{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;border:1px solid var(--line);background:#f7f8f47a;border-radius:8px;padding:10px;min-height:92px}.status-card>div:last-child{min-width:0}.status-card strong{font-size:17px;line-height:1.25;height:44px;display:flex;align-items:center;overflow:hidden}.result-mark{width:36px;height:36px;border:1px solid var(--bad);color:var(--bad);border-radius:50%;display:grid;place-items:center}.result-mark.solved{border-color:var(--good);color:var(--good)}.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.overview-panel{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.overview-bars{margin-top:10px}.overview-row{grid-template-columns:minmax(82px,auto) minmax(0,1fr) 38px}.overview-row div:first-child{min-width:0}.overview-row span,.overview-row strong{display:block}.overview-row span{color:var(--muted);font-size:12px}.overview-row strong{font-size:13px;line-height:1.2}.meter.wide{height:10px}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.actions button:last-child{grid-column:1 / -1}.move-list,.solution-line,.fen-box{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.move-list{min-height:150px}.move-list>div:not(.section-title){display:grid;grid-template-columns:28px minmax(56px,auto) 1fr;align-items:center;gap:8px;min-height:32px;border-bottom:1px solid rgba(143,150,141,.35)}.move-list>div.auto{color:var(--muted)}.move-list strong{font-size:16px}.move-list small{color:var(--muted)}.empty-copy,.solution-line p{color:var(--muted);line-height:1.5}.solution-line p{margin:8px 0 0;word-break:break-word}.fen-box code{display:block;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#f7f8f47a;color:#3b4039;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.5;white-space:normal;word-break:break-word}@media(max-width:1180px){.workspace{height:auto;min-height:calc(100vh - 36px);grid-template-columns:minmax(240px,300px) minmax(340px,1fr)}.inspector{grid-column:1 / -1;min-height:auto}.problem-list{max-height:420px}}@media(max-width:780px){.app-shell{padding:10px}.workspace{height:auto;min-height:auto;grid-template-columns:1fr}.rail{order:2}.inspector{order:3}.problem-list{max-height:360px}.topbar{grid-template-columns:1fr 1fr}.puzzle-title{grid-column:1 / -1;grid-row:1}.topbar button:first-child{grid-column:1}.topbar button:last-child{grid-column:2}}
