.puzzle-section{margin:32px 0 44px;padding:28px 0;border-block:1px solid var(--stroke);min-width:0}
.puzzle-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}
.puzzle-heading h3{font-family:var(--font-body);font-size:24px;font-weight:700;margin:0 0 8px}
.puzzle-heading p,.puzzle-heading a{font-size:14px;color:var(--soft);margin:0;line-height:2}
.puzzle-heading a{color:var(--accent);text-decoration:underline;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.puzzle-art-picker{border:0;padding:0;margin:0 0 20px;min-width:0}
.puzzle-art-picker legend{font-size:13px;color:var(--quiet);padding:0 0 10px}
#puzzle-art-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.puzzle-art-option{display:flex;gap:14px;align-items:center;text-align:start;background:transparent;border:1px solid var(--stroke);border-radius:8px;padding:10px;color:var(--text);min-width:0}
.puzzle-art-option img{width:80px;height:64px;object-fit:cover;border-radius:3px;flex-shrink:0}
.puzzle-art-option strong{display:block;font-size:14px;font-weight:600;line-height:1.8}
.puzzle-art-option small{display:block;color:var(--quiet);font-size:12px;line-height:1.8}
.puzzle-art-option[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent);background:var(--surface)}
.puzzle-art-option:hover{background:var(--surface-2)}
.puzzle-controls{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap}
.puzzle-controls label{margin:0;display:flex;align-items:center;gap:12px;color:var(--soft);font-size:14px}
.puzzle-controls select{width:auto;min-height:44px;background:var(--surface-2);border-color:var(--stroke-strong);color:var(--text);font-size:15px;margin:0}
.puzzle-setup-help{font-size:13px;color:var(--quiet);margin:12px 0 20px}
.puzzle-reference{display:flex;align-items:center;gap:20px;background:var(--surface);padding:16px;margin-bottom:20px;border-radius:8px}
.puzzle-reference[hidden]{display:none}
.puzzle-reference img{width:150px;max-width:38%;height:auto;display:block;border-radius:3px}
.puzzle-reference h4{font-size:17px;margin:0 0 6px;font-weight:650}
.puzzle-reference p{font-size:13px;color:var(--soft);margin:4px 0}
.puzzle-progress-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.puzzle-progress-row label{margin:0;font-size:14px;color:var(--text);min-width:130px}
.puzzle-progress-row progress{flex:1;min-width:100px;max-width:400px;height:10px;accent-color:var(--accent)}
#puzzle-time{font-size:13px;color:var(--quiet);font-variant-numeric:tabular-nums}
#puzzle-status{font-size:14px;line-height:2;color:var(--soft);min-height:28px;margin:16px 0}
#puzzle-scroll-hint{font-size:13px;color:var(--soft)}
.puzzle-workspace{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:28px;align-items:start;min-width:0}
.puzzle-board-scroll{direction:ltr;overflow-x:auto;max-width:100%;overscroll-behavior-x:contain;padding:5px 5px 14px;scrollbar-color:var(--accent) var(--surface-2);border:1px solid var(--stroke);border-radius:5px;background:var(--surface)}
.puzzle-board-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.puzzle-board{direction:ltr;position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(var(--puzzle-cols),minmax(0,1fr));grid-template-rows:repeat(var(--puzzle-rows),minmax(0,1fr));width:100%;background:var(--surface-2);overflow:hidden}
.puzzle-slot{position:relative;isolation:auto;min-width:0;min-height:0;padding:0;margin:0;background:transparent;border:0;border-radius:0;overflow:visible;z-index:1;aspect-ratio:auto}
.puzzle-slot svg{position:absolute;inset:-24%;width:148%;height:148%;pointer-events:none;overflow:visible}
.puzzle-slot.placed{z-index:2;opacity:1;cursor:default}
.puzzle-slot:disabled{opacity:1}
.puzzle-slot:focus-visible,.puzzle-slot.drop-target,.puzzle-slot.puzzle-hint{outline:3px solid var(--accent);outline-offset:-3px;z-index:4}
.puzzle-board.has-selection .puzzle-slot:not(:disabled):hover{box-shadow:inset 0 0 0 2px var(--accent);z-index:4}
.puzzle-outline{fill:none;stroke:var(--stroke-strong);stroke-width:.012}
.puzzle-seam{fill:none;stroke:var(--page);stroke-opacity:.5;stroke-width:.006}
.puzzle-tray-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}
.puzzle-tray-heading h4{font-size:15px;font-weight:600;margin:0}
.puzzle-tray-heading span{font-size:14px;color:var(--quiet)}
.puzzle-tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:520px;overflow-y:auto;overscroll-behavior-y:contain;padding:5px 5px 12px;align-content:start;scrollbar-color:var(--accent) var(--surface-2)}
.puzzle-piece{position:relative;min-width:44px;min-height:52px;padding:4px;background:var(--surface);border:1px solid var(--stroke);border-radius:5px;cursor:grab!important;touch-action:manipulation}
.puzzle-piece svg{display:block;width:100%;height:100%;pointer-events:none}
.puzzle-piece:hover{border-color:var(--stroke-strong);background:var(--surface-2)}
.puzzle-piece[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.puzzle-piece:active{cursor:grabbing!important}
.puzzle-piece:disabled{cursor:not-allowed!important;opacity:.5}
.puzzle-complete #puzzle-status{color:var(--mint);font-weight:600}
.puzzle-complete .puzzle-board-scroll{border-color:var(--mint)}
#puzzle-contributions{font-size:13px;color:var(--soft);margin:18px 0 0}
@media(max-width:1000px){.puzzle-workspace{grid-template-columns:minmax(0,1fr) 210px;gap:20px}.puzzle-art-option{flex-direction:column;align-items:stretch;gap:8px}.puzzle-art-option img{width:100%;height:96px}.puzzle-art-option small{font-size:12px}.puzzle-tray{gap:8px}}

/* Empty cells reveal no cut silhouette or image. */
.puzzle-slot:not(.placed){box-shadow:inset 0 0 0 .5px var(--stroke)}
.puzzle-art-option:disabled{opacity:.6;cursor:wait}
.puzzle-dialog-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
#puzzle-reset-dialog{max-width:480px}
.puzzle-piece svg{aspect-ratio:inherit}
.puzzle-workspace{grid-template-columns:minmax(0,1fr) 270px;gap:24px;align-items:start}
.puzzle-dock{position:sticky;top:calc(100px + var(--app-safe-top,0px));min-width:0}
.puzzle-reference{display:block;margin:0 0 20px;padding:12px;background:var(--surface);border:1px solid var(--stroke);border-radius:8px}
.puzzle-reference img{width:100%;max-width:100%;height:auto;object-fit:contain;margin-bottom:10px}
.puzzle-reference h4{font-size:15px;margin:0;font-weight:650}
.puzzle-reference p{font-size:12px;line-height:1.8;margin:2px 0;color:var(--soft)}
.puzzle-tray{max-height:310px}
.puzzle-tray-panel{min-width:0}
#puzzle-return{width:100%;min-height:44px;margin:0 0 12px;font-size:13px}
#puzzle-hints-left{font-size:13px;color:var(--soft)}
#puzzle-hint-status{font-size:14px;line-height:1.9;color:var(--accent);min-height:0;margin:0 0 16px}
#puzzle-hint-status:empty{display:none}
.puzzle-slot.placed{cursor:grab}
.puzzle-slot[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:-3px;z-index:5}
.puzzle-slot.puzzle-hint{outline:4px dashed var(--mint);outline-offset:-5px;z-index:4}
.puzzle-slot.puzzle-hint::after{content:'راهنما';position:absolute;inset-inline:0;top:3px;margin:auto;width:max-content;max-width:100%;padding:1px 4px;background:var(--page);color:var(--mint);font-size:11px;z-index:6;pointer-events:none}
.puzzle-tray.drop-target{outline:3px dashed var(--accent);outline-offset:-3px;min-height:80px}
.puzzle-slot svg{touch-action:manipulation}
.puzzle-slot:not(.placed){box-shadow:inset 0 0 0 .5px var(--stroke)}
@media(max-width:1000px){.puzzle-workspace{grid-template-columns:minmax(0,1fr) 220px;gap:20px}}
@media(max-width:700px){
 .puzzle-section{padding-top:24px}.puzzle-heading{flex-wrap:wrap;gap:8px}.puzzle-heading h3{font-size:22px}.puzzle-heading p{font-size:14px}.puzzle-heading a{font-size:13px}
 .puzzle-workspace{display:flex;flex-direction:column;gap:18px}.puzzle-dock{display:contents}
 .puzzle-reference{order:0;position:sticky;top:calc(130px + var(--app-safe-top,0px));z-index:6;display:flex;align-items:center;gap:12px;margin:0;width:100%;padding:10px}
 .puzzle-reference img{width:120px;max-width:40%;max-height:100px;margin:0;object-fit:contain}.puzzle-reference h4{font-size:14px}.puzzle-reference p{font-size:12px}
 .puzzle-board-scroll{order:1;width:100%}.puzzle-tray-panel{order:2;width:100%;border-top:1px solid var(--stroke);padding-top:16px}
 #puzzle-art-options{gap:8px}.puzzle-art-option{padding:6px}.puzzle-art-option img{height:72px}.puzzle-art-option strong{font-size:12px}.puzzle-art-option small{font-size:11px}
 .puzzle-controls{gap:12px}.puzzle-controls>label:first-child{flex-basis:100%;justify-content:space-between}.puzzle-controls select{font-size:16px}.puzzle-controls .button,.puzzle-controls .ghost{font-size:14px}
 .puzzle-progress-row{gap:8px 12px}.puzzle-progress-row label{min-width:120px}.puzzle-progress-row progress{max-width:none}#puzzle-time{flex-basis:100%}
 .puzzle-tray{grid-template-columns:repeat(4,minmax(0,1fr));max-height:280px;gap:10px}.puzzle-piece{min-height:60px}
}

.puzzle-art-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.puzzle-art-filters button{min-height:44px;padding:8px 18px;border:1px solid var(--stroke);border-radius:6px;background:transparent;color:var(--soft);font:inherit;font-size:13px}.puzzle-art-filters button[aria-pressed=true]{background:var(--surface);border-color:var(--accent);color:var(--text)}.puzzle-art-option[hidden]{display:none}.puzzle-art-option img{object-fit:contain;background:var(--surface-2)}
@media(max-width:700px){#puzzle-art-options{grid-template-columns:repeat(2,minmax(0,1fr))}.puzzle-art-option img{height:110px}.puzzle-art-filters button{padding-inline:12px}}

.puzzle-upload-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.puzzle-upload-row span{font-size:12px;line-height:2;color:var(--soft)}#puzzle-file[hidden]{display:none}.puzzle-upload-row button{min-height:44px;font-size:14px}.header-actions .support-link{font-size:12px;white-space:nowrap;padding:8px;min-height:44px;display:inline-flex;align-items:center}.header-actions{flex-wrap:wrap}#auth-password-help,#auth-password-status{font-size:13px;line-height:2;color:var(--soft)}#auth-password-status:empty{display:none}#profile-dialog p{font-size:14px;line-height:2}#profile-dialog select{width:100%;background:var(--surface-2);color:var(--text);min-height:44px}#auth-gender-label[hidden],#auth-password-help[hidden]{display:none}
@media(max-width:1000px){.header-actions .support-link{font-size:11px}.topbar{column-gap:12px}}@media(max-width:640px){.puzzle-upload-row button{width:100%}.header-actions .support-link{padding:5px;min-height:36px;font-size:11px}}
