:root{--bg:#1b232b;--panel:#232d36;--cell:#2a333c;--ink:#e9eef2;--muted:#9aa8b3;--line:#34404b;--tile:#f3f0e8;--tile-ink:#161616;--new:#ffd44d;--focus:#6aa8f0;--tw:#b53a37;--dw:#d0812c;--tl:#2a6b9f;--dl:#4f8f4a;--body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 var(--body)}.app,.foot,.top{max-width:1080px;margin:0 auto;padding:0 16px}.top h1{margin:20px 0 4px;font-size:1.6rem}.top p{margin:0 0 16px;color:var(--muted)}.app{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:24px;align-items:start}@media (max-width:820px){.app{grid-template-columns:minmax(0,1fr)}}.drop{display:block;padding:18px;border:2px dashed var(--line);border-radius:12px;background:var(--panel);text-align:center;cursor:pointer}.drop.over{border-color:var(--focus)}.drop input{position:absolute;opacity:0;width:1px;height:1px}.drop strong{display:block;font-size:1.1rem}.drop span{color:var(--muted);font-size:.9rem}.drop:focus-within{outline:2px solid var(--focus);outline-offset:2px}.status{min-height:1.45em;margin:10px 0;color:var(--muted)}.status.error{color:#ff8a80}.board{display:grid;grid-template-columns:repeat(15,1fr);gap:2px;padding:2px;background:#12181e;border-radius:6px;aspect-ratio:1;user-select:none}.cell{position:relative;display:grid;place-items:center;min-width:0;border:0;border-radius:3px;padding:0;background:var(--cell);color:#fff;font:700 clamp(7px, 1.6vw, 10px) var(--body);cursor:pointer}.cell.T{background:var(--tw)}.cell.D{background:var(--dw)}.cell.t{background:var(--tl)}.cell.d{background:var(--dl)}.cell.new,.cell.tile{background:var(--tile);color:var(--tile-ink);font-size:clamp(11px, 3.4vw, 21px);font-weight:600}.cell.new{background:var(--new)}.cell.blank{color:#c0392b}.cell sup{position:absolute;top:1px;right:2px;font-size:.45em;font-weight:500}.cell.sel{outline:2px solid var(--focus);outline-offset:-1px;z-index:1}.edit{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;padding:10px;border-radius:10px;background:var(--panel)}.edit[hidden]{display:none}#edit-pos{font-weight:600;min-width:3ch}#edit-letter{width:3ch;text-align:center;text-transform:uppercase}button,input{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 10px}button{cursor:pointer}button:hover{border-color:var(--muted)}button:focus-visible,input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}input[type=checkbox]{padding:0}.rack-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.rack-row label{font-weight:600}#rack{flex:1 1 10ch;min-width:0;text-transform:uppercase;letter-spacing:.2em;font-weight:600}.hint{color:var(--muted);font-size:.85rem}.right h2{margin:0 0 8px;font-size:1.1rem}.moves{list-style:none;margin:0;padding:0}.moves li{margin-bottom:4px}.moves button{display:grid;grid-template-columns:3.2ch 1fr auto;gap:10px;width:100%;text-align:left;background:var(--panel);border-color:transparent}.moves button[aria-pressed=true]{border-color:var(--new)}.moves .pts{font-weight:700;color:var(--new);text-align:right}.moves .word{font-weight:600;letter-spacing:.06em;text-transform:uppercase;overflow-wrap:anywhere}.moves .word i{color:#ff8a80;font-style:normal}.moves .where{color:var(--muted);font-size:.85rem;white-space:nowrap}.moves .none{color:var(--muted)}.foot{margin:32px auto 24px;color:var(--muted);font-size:.8rem}.foot a{color:inherit}