.page-shell.svelte-t4vew4{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;position:relative}.page-shell.svelte-t4vew4 .tool-layout{height:auto;flex:1;min-height:0}.nav-bar.svelte-t4vew4{padding:.5rem 1rem;border-bottom:1px solid #e5e7eb;background:#fff}.canvas-wrap.svelte-t4vew4{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1rem;background:#fff}svg.svelte-t4vew4{max-width:100%;max-height:100%;display:block}polygon[role=button].svelte-t4vew4:hover{fill-opacity:.85}polygon[role=button].svelte-t4vew4:focus-visible{outline:2px solid #df6526;outline-offset:1px}.controls.svelte-t4vew4{display:flex;flex-direction:column;gap:.7rem;padding:1rem;height:100%;min-height:0;overflow:hidden}.controls-header.svelte-t4vew4,.controls-footer.svelte-t4vew4{flex:0 0 auto;display:flex;flex-direction:column;gap:.5rem}.controls-scroll.svelte-t4vew4{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.control-group.svelte-t4vew4{display:flex;flex-direction:column;gap:.4rem}.hint.svelte-t4vew4{font-size:.78rem;line-height:1.45;color:#475569}.actions-row.svelte-t4vew4{display:flex;gap:.5rem;flex-wrap:wrap}.diff-row.svelte-t4vew4{display:flex;gap:.4rem;justify-content:stretch}.diff-row.svelte-t4vew4 button{flex:1}.mode-row.svelte-t4vew4{display:flex;gap:0;border:1px solid #cbd5e1;border-radius:6px;overflow:hidden;margin-bottom:.25rem}.mode-btn.svelte-t4vew4{flex:1;padding:.4rem .6rem;background:#fff;border:none;border-right:1px solid #e2e8f0;font-family:inherit;font-size:.78rem;font-weight:600;color:#334155;cursor:pointer;transition:background .15s,color .15s}.mode-btn.svelte-t4vew4:last-child{border-right:none}.mode-btn.svelte-t4vew4:hover{background:#f8fafc}.mode-btn.active.svelte-t4vew4{background:#145666;color:#fff}.mode-btn.svelte-t4vew4:disabled{opacity:.5;cursor:not-allowed}.generating.svelte-t4vew4{font-size:.78rem;color:#64748b;font-style:italic;padding:.3rem .1rem}.puzzle-header.svelte-t4vew4{display:flex;align-items:center;gap:.4rem}.clue-count.svelte-t4vew4{font-size:.72rem;color:#475569;font-variant-numeric:tabular-nums}.legend-toggle.svelte-t4vew4{border:none;background:none;color:#475569;cursor:pointer;padding:.15rem;border-radius:3px;display:flex;align-items:center}.legend-toggle.svelte-t4vew4:hover,.legend-toggle[aria-pressed=true].svelte-t4vew4{color:#145666;background:#e8f4f7}.legend-toggle.svelte-t4vew4:focus-visible{outline:2px solid #145666;outline-offset:1px}.legend.svelte-t4vew4{padding:.5rem .6rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;font-size:.74rem;color:#334155}.legend-table.svelte-t4vew4{border-collapse:collapse;width:100%;margin-bottom:.4rem}.legend-table.svelte-t4vew4 td:where(.svelte-t4vew4){padding:.1rem .3rem .1rem 0;vertical-align:middle}.legend-op.svelte-t4vew4{width:1.6rem;text-align:center;padding-right:.4rem}.legend-hints.svelte-t4vew4{margin:0;padding-left:1rem;font-size:.72rem;line-height:1.45;color:#475569}.legend-hints.svelte-t4vew4 li:where(.svelte-t4vew4){margin-bottom:.15rem}.legend-hints.svelte-t4vew4 li:where(.svelte-t4vew4):last-child{margin-bottom:0}.legend-hints.svelte-t4vew4 b:where(.svelte-t4vew4){font-weight:600;color:#1f2937}.theme-options.svelte-t4vew4{font-size:.78rem;color:#64748b;margin-top:.5rem}.theme-options.svelte-t4vew4 summary:where(.svelte-t4vew4){cursor:pointer;padding:.3rem 0;font-weight:600;color:#64748b;list-style:none}.theme-options.svelte-t4vew4 summary:where(.svelte-t4vew4):before{content:"▸ ";display:inline-block;transition:transform .15s}.theme-options[open].svelte-t4vew4 summary:where(.svelte-t4vew4):before{transform:rotate(90deg)}.theme-options[open].svelte-t4vew4 summary:where(.svelte-t4vew4){margin-bottom:.4rem}.clue-list.svelte-t4vew4{display:flex;flex-direction:column;gap:.35rem}.clue-card.svelte-t4vew4{display:flex;align-items:stretch;gap:0;background:#fff;border:1px solid #e2e8f0;border-radius:6px;text-align:left;font-family:inherit;font-size:.82rem;color:#374151;line-height:1.4;transition:border-color .15s,background .15s,opacity .15s}.clue-card.checked.svelte-t4vew4{opacity:.65;background:#f1f5f9}.clue-card.checked.svelte-t4vew4 .clue-text-area:where(.svelte-t4vew4){text-decoration:line-through;text-decoration-color:#475569;text-decoration-thickness:1.5px}.clue-text-area.svelte-t4vew4{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;padding:.5rem .7rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit;color:inherit;min-width:0}.clue-text-area.svelte-t4vew4:hover{background:#f8fafc}.clue-text-area.svelte-t4vew4:focus-visible{outline:2px solid #145666;outline-offset:-2px;border-radius:5px}.clue-eye.svelte-t4vew4{display:flex;align-items:center;justify-content:center;padding:0 .55rem;background:none;border:none;border-left:1px solid #e2e8f0;color:#475569;cursor:pointer;font-family:inherit;transition:color .15s,background .15s}.clue-eye.svelte-t4vew4:hover{color:#145666;background:#f8fafc}.clue-eye.on.svelte-t4vew4{color:#df6526;background:#fff7ed}.clue-eye.svelte-t4vew4:focus-visible{outline:2px solid #145666;outline-offset:-2px;border-radius:5px}.clue-chunk.svelte-t4vew4{display:inline-flex;align-items:center;gap:.2rem;white-space:nowrap}.clue-chunk.op.svelte-t4vew4{color:#475569;font-weight:700;font-size:.95rem}.clue-op.svelte-t4vew4{font-size:1.4rem;font-weight:700;color:#374151;margin:0 .2rem;line-height:1;position:relative;display:inline-block}.clue-op-not.svelte-t4vew4:after{content:"";position:absolute;left:-1px;right:-1px;top:50%;height:2.5px;background:#dc2626;transform:rotate(-45deg)}.clue-card.svelte-t4vew4:hover{border-color:#cbd5e1}.clue-card.active.svelte-t4vew4{border-color:#df6526;box-shadow:0 0 0 1px #df6526}.clue-text.svelte-t4vew4{white-space:pre}.clue-icon.svelte-t4vew4{display:inline-flex;align-items:center;justify-content:center;padding:.05rem .15rem}.validation-msg.svelte-t4vew4{font-size:.78rem;padding:.5rem .6rem;border-radius:6px;background:#fef3c7;color:#92400e;animation:svelte-t4vew4-msg-pop .18s ease-out}.validation-msg.msg-success.svelte-t4vew4{background:#d1fae5;color:#065f46}@keyframes svelte-t4vew4-msg-pop{0%{opacity:.6;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.validation-msg.svelte-t4vew4{animation:none}}
