:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f5f1;--surface:#fcfcfb;--surface-2:#f0efec;--text:#0b0b0b;--text-2:#52514e;--muted:#74726c;--grid:#e1e0d9;--axis:#c3c2b7;--border:#0b0b0b1a;--accent:#2a78d6;--accent-wash:#2a78d61a;--accent-ink:#1c5cab;--good:#0ca30c;--good-ink:#006300;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;--critical-ink:#b02a2a;--board-light:#ebecd0;--board-dark:#739552;--radius:10px;--shadow:0 1px 2px #0000000d, 0 4px 16px #0000000a;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0d0d;--surface:#1a1a19;--surface-2:#242422;--text:#fff;--text-2:#c3c2b7;--muted:#9a988f;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--accent:#3987e5;--accent-wash:#3987e524;--accent-ink:#86b6ef;--good-ink:#0ca30c;--critical-ink:#e66767;--shadow:none}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0d0d;--surface:#1a1a19;--surface-2:#242422;--text:#fff;--text-2:#c3c2b7;--muted:#9a988f;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--accent:#3987e5;--accent-wash:#3987e524;--accent-ink:#86b6ef;--good-ink:#0ca30c;--critical-ink:#e66767;--shadow:none}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:var(--accent-ink)}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0 0 .75rem}.app-header{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header-inner{align-items:center;gap:1rem;max-width:1280px;min-height:56px;margin:0 auto;padding:0 16px;display:flex;position:relative}.brand{color:var(--text);white-space:nowrap;align-items:center;gap:.5rem;font-weight:700;text-decoration:none;display:flex}.brand img{width:24px;height:24px}.menu-panel{flex:1;align-items:center;gap:1rem;min-width:0;display:flex}.nav{flex-wrap:wrap;gap:.25rem;display:flex}.nav a{color:var(--text-2);border-radius:8px;padding:.4rem .7rem;font-weight:500;text-decoration:none}.nav a:hover{background:var(--surface-2)}.nav a.active{color:var(--text);background:var(--surface-2)}.nav a:focus-visible,.icon-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.header-user{color:var(--text-2);white-space:nowrap;align-items:center;gap:.75rem;margin-left:auto;font-size:.9rem;display:flex}.header-user a{color:inherit}.header-actions{align-items:center;gap:.25rem;display:flex}.icon-button{color:var(--text-2);background:0 0;border:none;border-radius:10px;justify-content:center;width:44px;height:44px;padding:0}.icon-button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.menu-button{display:none}@media (width<=820px){.menu-button{display:inline-flex}.header-actions{margin-left:auto}.menu-panel{background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 16px;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 12px 24px #0000001f}.menu-panel.open{display:flex}.nav{flex-direction:column;gap:2px}.nav a{min-height:44px;padding:.75rem;font-size:1.05rem}.header-user{border-top:1px solid var(--grid);justify-content:space-between;margin:8px 0 0;padding:12px .75rem 0}}main{max-width:1280px;margin:0 auto;padding:20px 16px 64px}.page-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.subtle{color:var(--text-2)}.muted{color:var(--muted)}.small{font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stack>.card+.card,main>.card+.card,.stack>*+*{margin-top:16px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.spacer{flex:1}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-weight:500;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:var(--surface-2)}button:disabled{opacity:.5;cursor:default}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-ink)}button.ghost{background:0 0;border-color:#0000}button.small,.btn.small{padding:.25rem .6rem;font-size:.85rem}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--axis);border-radius:8px;padding:.45rem .7rem}textarea{width:100%;min-height:140px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}label.field{color:var(--text-2);flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.chips{flex-wrap:wrap;gap:.35rem;display:flex}.chip{border-radius:999px;padding:.2rem .75rem;font-size:.85rem}.chip.on{background:var(--text);color:var(--surface);border-color:var(--text)}.chip.on:hover{background:var(--text)!important}.error{color:var(--critical-ink);background:color-mix(in srgb, var(--critical) 10%, transparent);border-radius:8px;padding:.6rem .8rem}.notice{background:var(--surface-2);color:var(--text-2);border-radius:8px;padding:.6rem .8rem;font-size:.9rem}.progress{background:var(--accent-wash);border-radius:999px;min-width:120px;height:8px;overflow:hidden}.progress>div{background:var(--accent);border-radius:999px;height:100%;transition:width .2s}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--grid);white-space:nowrap;padding:.5rem .6rem}th{color:var(--muted);font-size:.8rem;font-weight:500}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.result{align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.cls{align-items:center;gap:.35rem;display:inline-flex}.cls-great{--c:var(--accent)}.cls-best,.cls-excellent{--c:var(--good)}.cls-good,.cls-forced{--c:var(--muted)}.cls-inaccuracy{--c:var(--warning)}.cls-mistake{--c:var(--serious)}.cls-blunder{--c:var(--critical)}.cls .dot{background:var(--c)}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.tile .label{color:var(--text-2);font-size:.85rem}.tile .value{font-size:1.6rem;font-weight:600}.tile .sub{color:var(--muted);font-size:.8rem}.review{grid-template-columns:minmax(0,560px) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=960px){.review{grid-template-columns:minmax(0,1fr)}}.board-wrap{align-items:stretch;gap:8px;display:flex}.board-wrap .board{flex:1;min-width:0}.player-line{justify-content:space-between;align-items:center;padding:6px 2px;font-weight:600;display:flex}.player-line .clock{font-variant-numeric:tabular-nums;color:var(--text-2);background:var(--surface-2);border-radius:6px;padding:0 .5rem;font-weight:500}.eval-bar{border:1px solid var(--border);background:#2b2b2b;border-radius:6px;flex:none;width:30px;position:relative;overflow:hidden}.eval-bar .white{background:#f4f4f1;transition:height .25s;position:absolute;bottom:0;left:0;right:0}.eval-bar .label{letter-spacing:-.02em;text-align:center;font-size:.66rem;font-weight:700;position:absolute;left:0;right:0}.nav-buttons{justify-content:center;gap:.35rem;margin:10px 0;display:flex}.tabs{border-bottom:1px solid var(--grid);flex-wrap:wrap;gap:.25rem;margin-bottom:12px;display:flex}.tabs button{color:var(--text-2);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:.5rem .75rem}.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.move-list{font-variant-numeric:tabular-nums;grid-template-columns:2.5rem 1fr 1fr;max-height:420px;display:grid;overflow-y:auto}.move-list .num{color:var(--muted);padding:.2rem .3rem}.move-list button{background:0 0;border:none;border-radius:6px;justify-content:flex-start;padding:.2rem .4rem;font-weight:500}.move-list button.on{background:var(--accent-wash)}.sym{color:var(--text-2);font-size:.85em;font-weight:700}.moment{border:1px solid var(--border);cursor:pointer;background:var(--surface);border-radius:8px;padding:10px 12px}.moment:hover{background:var(--surface-2)}.moment.on{border-color:var(--accent)}.moment+.moment{margin-top:8px}.moment ul{color:var(--text-2);margin:.25rem 0 0;padding-left:1.1rem}.theme-tag{background:var(--surface-2);color:var(--text-2);border-radius:999px;margin:0 .25rem .25rem 0;padding:.05rem .55rem;font-size:.75rem;display:inline-block}.summary-grid{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto auto;gap:.2rem 1rem;font-size:.9rem;display:grid}.summary-grid .h{font-weight:600}.chart{width:100%;position:relative}.chart svg{width:100%;display:block;overflow:visible}.chart .tooltip{pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);white-space:nowrap;z-index:2;border-radius:8px;padding:.35rem .6rem;font-size:.8rem;position:absolute;transform:translate(-50%,-110%)}.chart .tooltip strong{font-size:.9rem}.hbar{grid-template-columns:7rem 1fr 3.5rem;align-items:center;gap:.5rem;font-size:.9rem;display:grid}.hbar+.hbar{margin-top:6px}.hbar .track{height:12px}.hbar .fill{background:var(--accent);border-radius:0 4px 4px 0;min-width:2px;height:100%}.meter{background:var(--surface-2);border-radius:999px;height:10px;overflow:hidden}.meter>div{border-radius:999px;height:100%}.hero{font-size:3rem;font-weight:600;line-height:1}.level{align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.puzzle{grid-template-columns:minmax(0,520px) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=900px){.puzzle{grid-template-columns:minmax(0,1fr)}}.feedback-good{color:var(--good-ink);font-weight:600}.feedback-bad{color:var(--critical-ink);font-weight:600}.empty{text-align:center;color:var(--text-2);padding:40px 16px}.move-tree{font-variant-numeric:tabular-nums;max-height:460px;line-height:2;overflow-y:auto}.tree-move{color:var(--text);background:0 0;border:none;border-radius:6px;gap:.15rem;padding:.05rem .3rem;font-weight:600}.tree-move.var{color:var(--text-2);font-weight:500}.tree-move[aria-current=true]{background:var(--accent);color:#fff}.tree-move[aria-current=true] .tree-num,.tree-move[aria-current=true] .sym{color:#fff}.tree-move.start{color:var(--muted);font-weight:500}.tree-num{color:var(--muted);margin-right:.15rem;font-weight:500}.tree-move .sym{margin-left:.1rem}.tree-move.cls-mistake .sym,.tree-move.cls-blunder .sym,.tree-move.cls-inaccuracy .sym{color:var(--c);filter:saturate(1.1)}.tree-variation.block{border-left:2px solid var(--grid);margin:2px 0 2px .75rem;padding-left:.6rem;display:block}.tree-variation.inline{color:var(--text-2)}.engine-panel .engine-head{gap:.75rem}.switch{cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch .slider{background:var(--axis);border-radius:999px;flex:none;width:36px;height:20px;transition:background .15s;position:relative}.switch .slider:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:after{transform:translate(16px)}.switch input:focus-visible+.slider{outline:2px solid var(--accent);outline-offset:2px}.engine-lines{margin:10px 0 0;padding:0;list-style:none}.engine-lines li{border-top:1px solid var(--grid);align-items:baseline;gap:.6rem;padding:4px 0;display:flex}.engine-score{font-variant-numeric:tabular-nums;flex:none;min-width:3.6rem;font-weight:700}.engine-pv{flex-wrap:wrap;gap:0 .1rem;min-width:0;display:flex}.engine-pv button{background:0 0;border:none;gap:.1rem;padding:.05rem .25rem;font-size:.9rem;font-weight:500}.engine-terminal{margin:10px 0 0;font-weight:600}.threat-row{border-top:1px solid var(--grid);gap:.75rem;margin-top:10px;padding-top:8px}.compare{background:var(--surface-2);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.compare-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.compare-row .subtle{min-width:5.5rem}
