.jigsaw{color:#233e36;width:min(100%,860px);margin:0 auto;font-size:15px}.jigsaw-stats{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 0 14px;display:flex}.jigsaw-stats strong{font-size:1.3em}.jigsaw-board{background:#e7ecdf;border-radius:12px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #9aae98}.jigsaw-art,.jigsaw-slots{width:100%;height:100%;position:absolute;inset:0}.jigsaw-ghost{opacity:.16;transition:opacity .2s}.jigsaw-ghost.is-preview{opacity:.75}.jigsaw-hole{fill:none;stroke:#7d927f;stroke-width:1.6px;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}.jigsaw-seam{fill:none;stroke:#fff5;stroke-width:1px;vector-effect:non-scaling-stroke}.jigsaw-slots{display:grid}.jigsaw-slot{cursor:pointer;touch-action:manipulation;background:0 0;border:0;min-width:0;min-height:0;padding:0}.jigsaw-slot:disabled{cursor:default}.jigsaw-slot:focus-visible{outline-offset:-3px;outline:3px solid #de861b}.jigsaw-actions{flex-wrap:wrap;gap:10px;margin:14px 0;display:flex}.jigsaw-actions button{color:#244a38;min-height:44px;font:inherit;cursor:pointer;background:#edf2e6;border:1px solid #9bab99;border-radius:8px;padding:9px 15px}.jigsaw-actions button:disabled{opacity:.55;cursor:default}.jigsaw-actions button:focus-visible{outline-offset:3px;outline:3px solid #de861b}.jigsaw-tray{background:#dfe6d6;border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;max-height:min(46vh,420px);padding:10px;display:grid;overflow-y:auto}.jigsaw-piece{cursor:grab;touch-action:none;background:0 0;border:0;border-radius:6px;width:100%;min-height:0;padding:0;display:block}.jigsaw-piece svg{filter:drop-shadow(0 2px 2px #2a443a55);width:100%;height:100%;display:block;overflow:visible}.jigsaw-piece[aria-pressed=true]{outline-offset:2px;background:#fff7dd;outline:3px solid #e9b14c}.jigsaw-piece:focus-visible{outline-offset:2px;outline:3px solid #de861b}.jigsaw-piece:disabled{opacity:.55;cursor:default}.jigsaw-outline{fill:none;stroke:#2a443a66;stroke-width:2px;vector-effect:non-scaling-stroke}.jigsaw-status{text-align:center;min-height:3em;line-height:1.5}@media (max-width:600px){.jigsaw-tray{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:6px;padding:6px}}
