.lf-panel{border:2px solid #183333;border-radius:28px;background:#fffdf7;box-shadow:7px 8px #183333;padding:clamp(14px,3vw,28px);color:#183333}.lf-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:20px 0 12px}.lf-top h2{font-size:1.5rem;font-weight:900}.lf-kicker{font-size:.8rem;font-weight:800;color:#a8442d}.lf-size{display:flex;align-items:center;gap:12px;font-weight:800;margin:12px 0}.lf-size select{border:2px solid #183333;border-radius:12px;padding:10px;background:#fffdf7;min-height:44px}.lf-panel p{line-height:1.6}.lf-scroll{overflow:auto;max-width:100%;padding:12px 5px 15px;overscroll-behavior:contain;margin-top:12px}.lf-grid{display:grid;grid-template-columns:repeat(var(--n),48px);gap:4px;width:max-content;min-width:0;max-width:560px;margin:auto}.lf-cell{position:relative;min-width:44px;width:100%;height:48px;background:#f1eadc;border:2px solid #c5c8bb;border-radius:7px;font-size:1.4rem;font-weight:800;touch-action:manipulation;color:#183333}.lf-cell.selected,.lf-island.selected{outline:3px solid #bd5038;outline-offset:-3px}.lf-cell.fixed{background:#a9d8cf}.lf-cell.confirmed{background:#fffdf7;border-color:#849d8b}.lf-cell.black{background:#183333;color:#fffdf7}.lf-cell.revealed{border-style:dashed;border-color:#9b5d00}.lf-hint-mark{position:absolute;right:2px;bottom:0;font-size:12px;color:#c46b00}.lf-cell.black .lf-hint-mark{color:#f4bd4f}.lf-cell.wrong,.lf-connections .wrong{box-shadow:inset 0 0 0 3px #bc302d}.lf-futo{grid-template-columns:repeat(calc(var(--n) - 1),44px 17px) 44px;min-width:0;max-width:none;gap:0}.lf-futo .lf-cell{height:44px}.lf-sign{display:grid;place-items:center;font-size:22px;font-weight:900;min-height:17px;line-height:17px}.lf-vertical{font-size:24px;height:20px}.lf-relations{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.lf-tents{grid-template-columns:32px repeat(calc(var(--n) - 1),44px);min-width:0;max-width:none}.lf-count{display:grid;place-items:center;min-height:40px;font-weight:900;background:#efe9dc;border-radius:7px;color:#183333}.lf-count.met{background:#a9d8cf}.lf-keypad,.lf-actions{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.lf-keypad button,.lf-actions button,.lf-connections button{min-width:44px;min-height:44px;border:2px solid #183333;border-radius:12px;background:#efe9dc;padding:8px 12px;font-weight:800}.lf-actions [data-action=hint]{background:#f4bd4f}.lf-actions [data-action=new]{background:#a9d8cf}.lf-panel button:disabled{opacity:.5;cursor:default}.lf-panel :focus-visible{outline:3px solid #b83e25;outline-offset:3px}.lf-status{border-left:4px solid #bd5038;background:#f1eadc;padding:12px;margin:15px 0;min-height:52px;overflow-wrap:anywhere}.lf-stats{display:flex;flex-wrap:wrap;gap:20px}.lf-stats dt{font-size:.75rem;font-weight:800}.lf-stats dd{font-size:1.15rem;font-weight:900}.lf-help{font-size:.8rem;color:#4f6462;margin-top:16px}.lf-hashi{position:relative;margin:0 auto}.lf-hashi svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.lf-island{position:absolute;width:48px;height:48px;border:2px solid #183333;border-radius:50%;background:#f4bd4f;display:grid;place-content:center;line-height:1;font-size:1.3rem;font-weight:900;touch-action:manipulation}.lf-island small{font-size:10px;margin-top:3px}.lf-island.met{background:#a9d8cf}.lf-island.anchor{background:#f0a790;box-shadow:0 0 0 3px #bd5038}.lf-bridge{stroke:#183333;stroke-width:3}.lf-bridge.wrong{stroke:#bc302d;stroke-width:5}.lf-bridge.revealed{stroke:#9b5d00}.lf-path{stroke:#b7c2b6;stroke-dasharray:3 5;stroke-width:1}.lf-connections{margin:16px 0}.lf-connections summary{cursor:pointer;font-weight:800;min-height:44px}.lf-connections div{display:flex;flex-wrap:wrap;gap:8px}.lf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

.lf-error-mark{position:absolute;right:2px;top:0;font-size:16px;color:#bc302d}.lf-cell.black .lf-error-mark{color:#ffbeac}

.lf-fixed-mark{position:absolute;bottom:-3px;left:3px;font-size:13px}.lf-scroll{scrollbar-color:#52776f #efe9dc;scrollbar-width:thin}

.lf-path.wrong{stroke:#bc302d;stroke-width:2}.lf-bridge-error{fill:#bc302d;stroke:#fffdf7;stroke-width:3;paint-order:stroke;font-size:23px;font-weight:900}
