body:has(#jigsaw-app){margin:0;background:#15563e;color:#f7f1df}
.jg-app{max-width:1440px;margin:auto;padding:18px;color:#f7f1df;font:16px/1.5 system-ui,sans-serif}.jg-app *{box-sizing:border-box}.jg-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.jg-heading h1{margin:0;font:700 clamp(30px,4vw,46px) Georgia,serif;color:#f0d889}.jg-heading p{margin:4px 0;color:#d3e1d3}.jg-app button,.jg-app select,.jg-app summary{font:600 14px/1.3 system-ui;padding:11px 14px;min-height:44px;border:1px solid #c6d6be66;border-radius:10px;background:#164f3b;color:#fff8e6;cursor:pointer}.jg-app button:hover,.jg-app summary:hover{background:#236449}.jg-app button:disabled{opacity:.5;cursor:default}.jg-app button[aria-pressed=true]{background:#f0d889;color:#123f2d;border-color:#f0d889}.jg-app :focus-visible{outline:3px solid #ffdb72;outline-offset:3px}.jg-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}.jg-controls details{position:relative}.jg-options{position:absolute;z-index:8;right:0;top:100%;width:min(360px,85vw);padding:18px;background:#f7f1df;color:#1b412e;border:1px solid #b6bda5;border-radius:12px;box-shadow:0 8px 24px #0004}.jg-options p{font-size:14px}.jg-options label{display:block;padding:5px 0}.jg-app input[type=checkbox]{width:18px;height:18px;vertical-align:middle;accent-color:#a96d12}.jg-app input[type=range]{width:100%;accent-color:#145438}.jg-app label{line-height:1.7}.jg-progress{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:14px;margin:10px 0}.jg-progress progress{width:140px;height:8px;accent-color:#e8c85d}.jg-workspace{position:relative;height:clamp(420px,72vh,850px);overflow:hidden;border-radius:16px;background:#0b3b2c;border:1px solid #8fae8266}.jg-workspace canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}.jg-workspace #jg-drag-layer{pointer-events:none}.jg-workspace #jg-preview{position:absolute;right:12px;top:12px;max-width:150px;max-height:150px;object-fit:contain;border:1px solid #fff8e677;border-radius:5px;pointer-events:none;box-shadow:0 3px 8px #0003}.jg-workspace #jg-win{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(390px,90%);padding:26px;background:#f7f1dff5;color:#163f2d;border-radius:18px;text-align:center;box-shadow:0 8px 24px #0004}.jg-workspace #jg-win strong{font:700 30px Georgia,serif}.jg-app [hidden]{display:none!important}.jg-tray{margin-top:14px;padding:14px;background:#123f30;border:1px solid #aac29c44;border-radius:14px}.jg-tray-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.jg-tray-head h2{font:700 22px Georgia,serif;margin:0 auto 0 0}.jg-tray-head span{font-size:14px}.jg-small{font-size:13px;line-height:1.6}.jg-tray .jg-small{margin:8px 0;color:#d3dfd2}#jg-tray-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}#jg-tray-grid button{padding:3px;background:#214c3c;min-width:0;aspect-ratio:1/1}#jg-tray-grid canvas{display:block;width:100%;height:100%}.jg-save{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 0}.jg-save span{font-size:13px;color:#dee8d9}.jg-app dialog{width:min(1050px,94vw);max-height:90vh;overflow:auto;border:1px solid #b9c6ad;border-radius:18px;padding:24px;background:#f7f1df;color:#163c2a;box-shadow:0 20px 70px #0005}.jg-app dialog::backdrop{background:#001d15b3}.jg-app dialog h2,.jg-app dialog h3{font-family:Georgia,serif}.jg-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.jg-dialog-head h2{margin:0}.jg-app dialog button,.jg-app dialog select{background:#164f3b;color:#fff8e6}.jg-app .jg-primary{background:#d5ac4c;color:#143d2b;border-color:#b78c2f;font-weight:800}.jg-app .jg-primary:hover{background:#e4c26e}.jg-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.jg-photos button{padding:5px;border:2px solid transparent;background:#fff9ea!important;color:#163c2a!important}.jg-photos button[aria-pressed=true]{border-color:#b47b17;box-shadow:0 0 0 2px #b47b1733}.jg-photos img{width:100%;height:110px;object-fit:cover;border-radius:6px;display:block}.jg-upload{display:block;border:1px dashed #557754;padding:12px;border-radius:10px}.jg-upload input{display:block;width:100%;margin-top:6px;font:inherit}.jg-setup{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.jg-setup label{display:block}.jg-setup select{width:100%}#jg-crop-preview{display:block;width:100%;height:auto;background:#183e2d;border-radius:8px}#jg-confirm{width:min(460px,94vw)}#jg-confirm form{display:flex;gap:10px;flex-wrap:wrap}#jg-message{min-height:24px;margin:10px 0;font-size:14px;color:#efdfac}
@media(max-width:800px){#jg-tray-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.jg-setup{grid-template-columns:1fr}.jg-options{right:auto;left:0}.jg-app dialog{padding:18px}.jg-photos img{height:80px}}
@media(max-width:480px){.jg-app{padding:10px}.jg-workspace{height:58vh;min-height:400px}.jg-controls{gap:5px}.jg-controls button,.jg-controls summary{padding:10px;font-size:13px}.jg-workspace #jg-preview{max-width:85px;max-height:85px}.jg-photos{gap:6px}.jg-tray{padding:10px}#jg-tray-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.jg-save{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.jg-app *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* v8.1: one open puzzle table, with quiet controls below it. */
.jg-app{max-width:none;padding:8px 14px 18px;display:flex;flex-direction:column;gap:0}.jg-heading{order:0;padding:0 2px 8px}.jg-heading h1{font-size:28px}.jg-heading p{font-size:13px;margin:0}.jg-heading button{min-height:40px}#jg-message{order:1;margin:0 2px 8px;font-size:13px;min-height:20px}.jg-workspace{order:2;height:clamp(480px,68vh,1000px);border-radius:12px 12px 0 0;background-color:#174c3b;background-image:radial-gradient(ellipse at 50% 35%,#ffffff06,transparent 70%),repeating-linear-gradient(115deg,#ffffff02 0,#ffffff02 1px,transparent 1px,transparent 5px);border-color:#d5c38730}.jg-controls{order:3;margin:0;padding:8px 12px;background:#0d3528;border:1px solid #d5c38730;border-top:0;gap:6px}.jg-controls button,.jg-controls summary{font-size:12px;min-height:40px;padding:8px 10px;border-color:transparent;background:transparent}.jg-controls button:hover,.jg-controls summary:hover{background:#285d46}.jg-controls details{margin-left:auto}.jg-options{top:auto;bottom:calc(100% + 12px);right:0;max-height:65vh;overflow:auto}.jg-progress{order:4;margin:0;padding:7px 14px 9px;background:#0d3528;border:1px solid #d5c38730;border-top:0;border-radius:0 0 12px 12px;justify-content:center;color:#e3d8b5;font-size:12px}.jg-progress progress{width:90px}.jg-storage{order:6;margin:12px 2px;color:#d8e2d6;font-size:13px}.jg-storage>summary{background:none!important;border:0!important;padding:4px!important;min-height:32px!important;font-size:13px!important}.jg-save{padding:8px 0}.jg-workspace #jg-preview{max-height:130px;max-width:130px}.jg-workspace canvas{cursor:grab}.jg-workspace canvas:active{cursor:grabbing}.jg-app:fullscreen{background:#15563e;width:100%;height:100%;padding:10px;overflow:auto}.jg-app:fullscreen .jg-workspace{height:auto;min-height:250px;flex:1}.jg-app:fullscreen .jg-storage{display:none}.jg-app:fullscreen .jg-heading h1{font-size:22px}
@media(max-width:600px){.jg-app{padding:4px 8px 14px}.jg-heading h1{font-size:24px}.jg-workspace{height:62vh;min-height:410px}.jg-controls{padding:5px;gap:2px}.jg-controls button,.jg-controls summary{min-height:44px;padding:8px;font-size:12px}.jg-controls details{margin-left:0}.jg-options{left:auto;right:0;width:min(320px,85vw)}.jg-progress{gap:7px}.jg-workspace #jg-preview{max-width:85px;max-height:85px}}
@media(max-width:600px){.jg-controls{position:relative}.jg-controls details{position:static}.jg-options{left:8px;right:8px;bottom:calc(100% + 8px);width:auto}}

#jg-selection-count{font-size:12px;color:#ffe8a1}.jg-app:has(#jg-select[aria-pressed=true]) #jg-stage{cursor:crosshair}

.jg-controls button[aria-pressed=true]:hover{background:#f0d889;color:#123f2d}
