.puzzle-detail { margin-top:24px; padding:20px; border:1px solid #d9e1e7; border-radius:14px; background:#f5f8fa; color:#253746; }
.puzzle-detail[hidden] { display:none; }
.puzzle-detail h3 { margin:0 0 8px; font-size:21px; }
.puzzle-detail p { margin:8px 0 14px; line-height:1.5; }
.puzzle-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:start; }
.puzzle-detail-grid > div { min-width:0; }
.puzzle-detail-caption { display:block; margin-bottom:9px; font-weight:700; }
.puzzle-detail-map { position:relative; width:100%; line-height:0; background:#e5e9ec; border-radius:6px; overflow:hidden; touch-action:none; cursor:crosshair; }
.puzzle-detail-map:focus-visible { outline:3px solid #1c72a6; outline-offset:3px; }
.puzzle-detail-map canvas { display:block; width:100%; height:auto; }
.puzzle-detail-frame { position:absolute; border:2px solid #fff; outline:2px solid #e87916; box-shadow:0 0 0 1000px rgba(0,0,0,.2); pointer-events:none; box-sizing:border-box; }
.puzzle-detail-sample { display:block; width:6cm; max-width:100%; height:auto; aspect-ratio:1; background:#fff; border:1px solid #cbd5dd; border-radius:6px; }
.puzzle-detail-note { color:#42596a; font-size:13px; line-height:1.5; margin-top:9px; }
.puzzle-detail-confirm { display:flex; align-items:flex-start; gap:10px; margin-top:18px; padding-top:16px; border-top:1px solid #d9e1e7; cursor:pointer; line-height:1.5; font-weight:600; }
.puzzle-detail-confirm input { appearance:auto; flex:0 0 20px; width:20px; height:20px; margin:2px 0 0; accent-color:#126c91; }
.puzzle-detail-alert { margin-top:12px; padding:12px; border-radius:8px; background:#fff0df; color:#713b13; line-height:1.5; }
.puzzle-detail-alert[hidden], .puzzle-detail-cart-help[hidden] { display:none; }
.puzzle-detail-cart-help { margin:12px 0; font-size:14px; line-height:1.5; }
@media (max-width:600px) {
    .puzzle-detail { padding:15px; }
    .puzzle-detail-grid { grid-template-columns:1fr; gap:16px; }
    .puzzle-detail-map { max-width:210px; margin:0 auto; }
    .puzzle-detail-sample { margin:0 auto; }
}
