.letters.svelte-bjnubc{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.letters-head.svelte-bjnubc{border-bottom:1px solid var(--border-default);background:var(--surface-sunken);align-items:center;gap:12px;padding:14px 18px;display:flex}.letters-heading.svelte-bjnubc{flex:1;min-width:0}.letters-title.svelte-bjnubc{font-family:var(--font-serif);font-size:var(--fs-400);font-weight:var(--fw-semibold);color:var(--text-primary);margin:0}.letters-sub.svelte-bjnubc{font-size:var(--fs-100);color:var(--text-tertiary);margin:2px 0 0}.letters-list.svelte-bjnubc{grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;display:grid}.letter-row.svelte-bjnubc{font-size:var(--fs-200);border-top:1px solid var(--border-subtle,var(--border-default));align-items:center;gap:14px;padding:11px 18px;display:flex}.letter-row.svelte-bjnubc:nth-child(-n+2){border-top:none}.letter-row.svelte-bjnubc:nth-child(2n){border-left:1px solid var(--border-subtle,var(--border-default))}@media (width<=640px){.letters-list.svelte-bjnubc{grid-template-columns:1fr}.letter-row.svelte-bjnubc:nth-child(2){border-top:1px solid var(--border-subtle,var(--border-default))}.letter-row.svelte-bjnubc:nth-child(2n){border-left:none}}.letter-name.svelte-bjnubc{font-weight:var(--fw-semibold);color:var(--text-primary);min-width:120px}.letter-desc.svelte-bjnubc{color:var(--text-secondary);flex:1}.chip-mini.svelte-bjnubc{border-radius:var(--radius-sm);width:26px;height:26px;font-weight:var(--fw-bold);background:var(--family1-bg);color:var(--family1-fg);flex-shrink:0;justify-content:center;align-items:center;padding:0 5px;font-size:13px;display:inline-flex}.chip-slot.svelte-bjnubc{flex-shrink:0;align-items:center;gap:6px;width:44px;display:inline-flex}.chip-edit.svelte-bjnubc{cursor:text}.chip-edit-icon.svelte-bjnubc{color:var(--text-tertiary);flex-shrink:0}.chip-edit.svelte-bjnubc:hover .chip-edit-icon:where(.svelte-bjnubc),.chip-edit.svelte-bjnubc:focus-within .chip-edit-icon:where(.svelte-bjnubc){color:var(--teal-700)}.chip-input.svelte-bjnubc{text-align:center;width:26px;font-family:var(--font-sans);cursor:text;box-sizing:border-box;border:1px solid #0000}.chip-edit.svelte-bjnubc:hover .chip-input:where(.svelte-bjnubc){border-color:var(--accent)}.chip-input.svelte-bjnubc:focus-visible{outline:2px solid var(--teal-500);outline-offset:1px}.chip-mini.none.svelte-bjnubc{color:var(--text-tertiary);box-shadow:inset 0 0 0 1px var(--border-strong);background:0 0}.add-letter.svelte-bjnubc{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--teal-700);font-size:var(--fs-100);font-weight:var(--fw-semibold);cursor:pointer;background:0 0;flex-shrink:0;align-items:center;gap:5px;padding:7px 12px;display:inline-flex}.add-letter.svelte-bjnubc:hover{border-color:var(--teal-500);background:var(--accent-subtle)}.letter-remove.svelte-bjnubc{border-radius:var(--radius-sm);width:18px;height:18px;color:var(--text-tertiary);cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.letter-row.svelte-bjnubc:hover .letter-remove:where(.svelte-bjnubc),.letter-remove.svelte-bjnubc:focus-visible{opacity:1}.letter-remove.svelte-bjnubc:hover{background:var(--surface-sunken);color:var(--text-primary)}.picker-message.svelte-bjnubc{font-size:var(--fs-100);color:var(--status-danger-fg);margin:0;padding:0 18px 12px}.dialog-backdrop.svelte-bjnubc{z-index:40;padding:var(--space-4);animation:svelte-bjnubc-backdrop-in var(--duration-fast) var(--ease-out);background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.concept-dialog.svelte-bjnubc{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:min(760px,100%);max-height:min(720px,100%);box-shadow:var(--shadow-lg);animation:svelte-bjnubc-dialog-in var(--duration-base) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.concept-dialog.svelte-bjnubc:focus{outline:none}@keyframes svelte-bjnubc-backdrop-in{0%{opacity:0}}@keyframes svelte-bjnubc-dialog-in{0%{opacity:0;transform:translateY(10px)scale(.98)}}@media (prefers-reduced-motion:reduce){.dialog-backdrop.svelte-bjnubc,.concept-dialog.svelte-bjnubc{animation:none}}.dialog-head.svelte-bjnubc{border-bottom:1px solid var(--border-default);align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.dialog-heading.svelte-bjnubc{flex:1;min-width:0}.dialog-title.svelte-bjnubc{font-family:var(--font-serif);font-size:var(--fs-400);font-weight:var(--fw-semibold);color:var(--text-primary);margin:0}.dialog-sub.svelte-bjnubc{font-size:var(--fs-100);color:var(--text-tertiary);margin:2px 0 0}.dialog-close.svelte-bjnubc{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;line-height:1;display:inline-flex}.dialog-close.svelte-bjnubc:hover{background:var(--surface-sunken);color:var(--text-primary)}.dialog-close.svelte-bjnubc:focus-visible{outline:2px solid var(--teal-500);outline-offset:1px}.dialog-body.svelte-bjnubc{background:var(--surface-sunken);overflow-y:auto}.letter-panel.svelte-bjnubc{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:8px;padding:16px 18px;display:grid}@media (width>=800px){.letter-panel.svelte-bjnubc{grid-template-columns:repeat(3,1fr)}}.letter-option.svelte-bjnubc{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);text-align:left;cursor:pointer;align-items:flex-start;gap:8px;padding:9px 11px;display:flex}.letter-option.svelte-bjnubc:not(:disabled):hover{border-color:var(--teal-500);background:var(--accent-subtle)}.letter-option.svelte-bjnubc:disabled{opacity:.5;cursor:not-allowed}.cap-note.svelte-bjnubc{font-size:var(--fs-100);font-weight:var(--fw-semibold);color:var(--text-secondary);grid-column:1/-1;margin:0}.option-text.svelte-bjnubc{flex-direction:column;gap:1px;min-width:0;display:flex}.letter-option.svelte-bjnubc .letter-name:where(.svelte-bjnubc){min-width:0;font-size:var(--fs-100)}.letter-meaning.svelte-bjnubc{font-size:var(--fs-100);color:var(--text-tertiary)}.letter-choice.svelte-bjnubc{flex-direction:column;gap:12px;padding:16px 18px;display:flex}.choice-head.svelte-bjnubc{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.choice-back.svelte-bjnubc{color:var(--teal-700);font-family:var(--font-sans);font-size:var(--fs-100);font-weight:var(--fw-semibold);cursor:pointer;background:0 0;border:none;padding:0}.choice-back.svelte-bjnubc:hover{text-decoration:underline}.choice-title.svelte-bjnubc{flex-direction:column;gap:1px;margin:0;display:flex}.choice-title.svelte-bjnubc .letter-name:where(.svelte-bjnubc){min-width:0}.alphabet.svelte-bjnubc{flex-wrap:wrap;gap:6px;display:flex}.alpha-chip.svelte-bjnubc{border:1px solid var(--border-strong);background:var(--surface-card);color:var(--text-secondary);cursor:pointer}.alpha-chip.svelte-bjnubc:disabled{cursor:not-allowed;background:var(--surface-sunken);color:var(--text-tertiary);border-color:#0000}.alpha-chip.svelte-bjnubc:not(:disabled):hover{border-color:var(--teal-500);background:var(--accent-subtle);color:var(--text-primary)}.alpha-chip[aria-pressed=true].svelte-bjnubc{border-color:var(--accent);background:var(--accent);color:var(--accent-on-accent);box-shadow:0 0 0 3px var(--accent-subtle-border)}.alpha-chip.svelte-bjnubc:focus-visible{outline:2px solid var(--teal-500);outline-offset:1px}.choice-actions.svelte-bjnubc{flex-wrap:wrap;gap:8px;display:flex}.choice-add.svelte-bjnubc,.choice-more.svelte-bjnubc{border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--fs-200);font-weight:var(--fw-semibold);cursor:pointer;padding:8px 16px}.choice-add.svelte-bjnubc{border:1px solid var(--accent);background:var(--accent);color:var(--accent-on-accent)}.choice-add.svelte-bjnubc:not(:disabled):hover{background:var(--accent-hover)}.choice-more.svelte-bjnubc{border:1px solid var(--border-strong);background:var(--surface-card);color:var(--text-primary)}.choice-more.svelte-bjnubc:not(:disabled):hover{border-color:var(--teal-500);background:var(--accent-subtle)}.choice-add.svelte-bjnubc:disabled,.choice-more.svelte-bjnubc:disabled{opacity:.5;cursor:not-allowed}.generator.svelte-wne4lp{gap:var(--space-4);font-family:var(--font-sans);flex-direction:column;display:flex}.toolbar.svelte-wne4lp{gap:var(--space-3);align-items:center;display:flex}.title-input.svelte-wne4lp{min-width:200px;font-family:var(--font-sans);font-size:var(--fs-300);font-weight:var(--fw-semibold);color:var(--text-primary);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-sm);flex:1;padding:9px 12px}.title-input.svelte-wne4lp::placeholder{color:var(--slate-400);font-weight:var(--fw-regular)}.save-state.svelte-wne4lp{font-size:var(--fs-100);color:var(--text-tertiary);white-space:nowrap}.btn.svelte-wne4lp{font-family:var(--font-sans);font-size:var(--fs-200);font-weight:var(--fw-semibold);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:7px;padding:9px 16px;display:inline-flex}.btn-icon.svelte-wne4lp{align-items:center;display:inline-flex}.btn.primary.svelte-wne4lp{background:var(--accent);color:var(--accent-on-accent);border:1px solid var(--accent)}.btn.primary.svelte-wne4lp:hover{background:var(--accent-hover)}.btn.secondary.svelte-wne4lp{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-strong)}.btn.secondary.svelte-wne4lp:hover{background:var(--surface-sunken)}.file-input.svelte-wne4lp{display:none}.load-error.svelte-wne4lp{font-size:var(--fs-100);color:var(--status-danger-fg);margin:0}.grid-frame.svelte-wne4lp{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}.grid-viewport.svelte-wne4lp{position:relative}.grid-scroll.svelte-wne4lp{overflow-x:auto}.scroll-cue.svelte-wne4lp{z-index:4;pointer-events:none;width:56px;display:flex;position:absolute;top:0;bottom:0}.scroll-cue.right.svelte-wne4lp{background:linear-gradient(to right, transparent, var(--surface-card) 78%);border-radius:0 var(--radius-md) var(--radius-md) 0;justify-content:flex-end;right:0}.scroll-cue.left.svelte-wne4lp{background:linear-gradient(to left, transparent, var(--surface-card) 78%);justify-content:flex-start}.scroll-cue-arrow.svelte-wne4lp{pointer-events:none;opacity:0;transition:opacity var(--duration-fast,.12s) var(--ease-standard,ease);border:1px solid var(--border-strong);background:var(--surface-card);width:32px;height:32px;color:var(--text-secondary);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:50%;justify-content:center;align-self:flex-start;align-items:center;margin:52px 7px 7px;display:inline-flex;position:sticky;top:58px}.grid-viewport.svelte-wne4lp:hover .scroll-cue-arrow:where(.svelte-wne4lp),.scroll-cue-arrow.svelte-wne4lp:focus-visible{pointer-events:auto;opacity:1}.scroll-cue-arrow.svelte-wne4lp:hover{color:var(--text-primary);border-color:var(--text-secondary)}.scroll-cue-arrow.svelte-wne4lp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (pointer:coarse){.scroll-cue-arrow.svelte-wne4lp{display:none}}table.svelte-wne4lp{border-collapse:collapse;width:100%;font-size:var(--fs-200)}th.svelte-wne4lp{z-index:2;background:var(--surface-sunken);border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-weight:var(--fw-semibold);min-width:160px;padding:8px 12px;position:sticky;top:0}th.task-col.svelte-wne4lp{text-align:left;min-width:220px}.task-col.svelte-wne4lp{z-index:1;background:var(--surface-card);position:sticky;left:0}th.task-col.svelte-wne4lp{z-index:3;background:var(--surface-sunken)}th.end-col.svelte-wne4lp,td.end-col.svelte-wne4lp{text-align:center;min-width:110px}td.svelte-wne4lp{border-bottom:1px solid var(--border-default);padding:6px 10px}tr.svelte-wne4lp:last-child td:where(.svelte-wne4lp){border-bottom:none}tr.ghost.svelte-wne4lp{opacity:.6}tr.ghost.svelte-wne4lp .name-input:where(.svelte-wne4lp){font-style:italic}.header-cell.svelte-wne4lp{align-items:center;gap:4px;display:flex}.name-input.svelte-wne4lp{box-sizing:border-box;border-radius:var(--radius-sm);width:100%;min-width:0;font-family:var(--font-sans);font-size:var(--fs-200);font-weight:var(--fw-medium);color:var(--text-primary);resize:none;background:0 0;border:1px solid #0000;flex:1;padding:4px 6px;line-height:1.35;display:block;overflow:hidden}.role-name.svelte-wne4lp{text-align:center;font-weight:var(--fw-semibold)}.name-input.svelte-wne4lp:hover{border-color:var(--border-default)}.name-input.svelte-wne4lp:focus{border-color:var(--accent);background:var(--surface-card);outline:none}.name-input.svelte-wne4lp::placeholder{color:var(--slate-400);font-weight:var(--fw-regular);font-style:italic}.delete.svelte-wne4lp{opacity:0;color:var(--text-tertiary);cursor:pointer;font-size:var(--fs-200);background:0 0;border:none;padding:2px 4px;line-height:1;transition:opacity .12s}th.svelte-wne4lp:hover .delete:where(.svelte-wne4lp),td.svelte-wne4lp:hover .delete:where(.svelte-wne4lp),.delete.svelte-wne4lp:focus-visible{opacity:1}.add-role.svelte-wne4lp{border:1px dashed var(--border-strong);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-100);white-space:nowrap;background:0 0;align-items:center;gap:5px;padding:5px 10px;display:inline-flex}.add-role.svelte-wne4lp:hover{color:var(--text-primary);border-color:var(--text-secondary)}.cell.svelte-wne4lp{text-align:center}.chips.svelte-wne4lp{flex-direction:column;align-items:center;gap:4px;display:inline-flex}.chip-row.svelte-wne4lp{justify-content:center;gap:4px;display:flex}.chip.svelte-wne4lp{border-radius:var(--radius-sm);width:30px;height:30px;font-family:var(--font-sans);font-weight:var(--fw-bold);cursor:pointer;border:1px solid var(--border-default);color:var(--text-tertiary);opacity:.55;background:0 0;padding:0;font-size:13px}.chip.active.svelte-wne4lp{background:var(--family1-bg);color:var(--family1-fg);opacity:1;border-color:#0000}.chip.none.active.svelte-wne4lp{background:var(--surface-sunken);color:var(--text-secondary);border-color:var(--border-strong)}.chip.svelte-wne4lp:disabled{cursor:default;opacity:.25}.chip.svelte-wne4lp:not(:disabled):hover{opacity:1}.chip.svelte-wne4lp:focus-visible{outline:2px solid var(--accent);outline-offset:1px;opacity:1}@media (pointer:coarse){.chip.svelte-wne4lp{width:40px;height:40px}}.hint-dot.svelte-wne4lp{background:var(--status-warning-fg);border-radius:50%;width:8px;height:8px;display:inline-block}.brand-mark.svelte-wne4lp{text-align:left;color:var(--text-tertiary);border-top:1px solid var(--border-default);padding:4px 10px 6px;font-size:11px}.privacy-note.svelte-wne4lp{font-size:var(--fs-100);color:var(--text-tertiary);align-items:center;gap:8px;margin:0;display:flex}.privacy-note.svelte-wne4lp .btn-icon:where(.svelte-wne4lp){flex-shrink:0}.export.svelte-wne4lp{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);overflow:hidden}.export-head.svelte-wne4lp{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-default);background:var(--surface-sunken);padding:16px 20px;display:flex}.export-badge.svelte-wne4lp{border-radius:var(--radius-md);background:var(--accent-subtle);width:34px;height:34px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.export-copy.svelte-wne4lp{flex:1;min-width:0}.export-title.svelte-wne4lp{font-family:var(--font-serif);font-size:var(--fs-500);font-weight:var(--fw-semibold);color:var(--text-primary);margin:0}.export-sub.svelte-wne4lp{font-size:var(--fs-200);color:var(--text-secondary);margin:2px 0 0}.export-empty.svelte-wne4lp{font-size:var(--fs-100);font-weight:var(--fw-semibold);color:var(--status-warning-fg);background:var(--status-warning-bg);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.export-grid.svelte-wne4lp{gap:var(--space-3);grid-template-columns:repeat(5,1fr);padding:18px 20px;display:grid}.export-btn.svelte-wne4lp{text-align:left;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);cursor:pointer;width:100%;font-family:var(--font-sans);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);align-items:center;gap:11px;padding:12px 14px;display:flex}.export-btn.svelte-wne4lp:not(:disabled):hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.export-btn.svelte-wne4lp:disabled{cursor:not-allowed;opacity:.5}.export-icon.svelte-wne4lp{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.export-text.svelte-wne4lp{min-width:0;display:block}.export-label.svelte-wne4lp{font-size:var(--fs-300);font-weight:var(--fw-semibold);color:var(--text-primary);display:block}.export-ext.svelte-wne4lp{font-size:var(--fs-100);color:var(--text-tertiary);font-family:var(--font-mono);display:block}@media (width<=720px){.toolbar.svelte-wne4lp{flex-wrap:wrap}.title-input.svelte-wne4lp{flex-basis:100%}.save-state.svelte-wne4lp{flex-basis:100%;order:1}.btn.svelte-wne4lp{flex:1;justify-content:center}th.svelte-wne4lp{min-width:120px}th.task-col.svelte-wne4lp{min-width:132px}.export-grid.svelte-wne4lp{grid-template-columns:repeat(2,1fr)}}@media (width<=400px){.toolbar.svelte-wne4lp{gap:var(--space-2)}.btn.svelte-wne4lp{gap:5px;padding:9px 10px}.export-grid.svelte-wne4lp{grid-template-columns:1fr}}.undo-toast.svelte-wne4lp{z-index:20;gap:var(--space-3);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--fs-200);color:var(--text-primary);align-items:center;padding:10px 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.undo-action.svelte-wne4lp{color:var(--accent);font-weight:var(--fw-bold);font-size:var(--fs-200);cursor:pointer;background:0 0;border:none}.guide.svelte-1jski8y{margin-bottom:var(--space-4);flex-direction:column;gap:12px;display:flex;position:relative}.guide-main.svelte-1jski8y{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:12px 18px;padding:12px 16px;display:flex}.guide-aside.svelte-1jski8y{background:var(--accent-subtle);border:1px solid var(--accent-subtle-border);border-radius:var(--radius-md);font-size:var(--fs-200);color:var(--teal-800);align-items:flex-start;gap:10px;padding:12px 16px;display:flex}.guide-aside.custom.svelte-1jski8y{background:var(--surface-sunken);border-color:var(--border-default);color:var(--text-secondary)}.guide-aside.custom.svelte-1jski8y strong:where(.svelte-1jski8y){color:var(--text-primary)}.guide-aside.svelte-1jski8y .icon:where(.svelte-1jski8y){color:var(--accent);flex-shrink:0;margin-top:2px}.guide-aside.svelte-1jski8y .hint:where(.svelte-1jski8y){flex-direction:column;gap:6px;min-width:0;display:flex}.guide-aside.svelte-1jski8y .hint:where(.svelte-1jski8y) p:where(.svelte-1jski8y){margin:0}.guide-aside.svelte-1jski8y strong:where(.svelte-1jski8y){font-weight:var(--fw-semibold);white-space:nowrap}.guide-aside.svelte-1jski8y .actions:where(.svelte-1jski8y){flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none;display:flex}.guide-aside.svelte-1jski8y a:where(.svelte-1jski8y){color:var(--accent);font-weight:var(--fw-semibold);white-space:nowrap;align-items:flex-start;gap:6px;text-decoration:none;display:inline-flex}.guide-aside.svelte-1jski8y a:where(.svelte-1jski8y):hover span:where(.svelte-1jski8y),.guide-aside.svelte-1jski8y a:where(.svelte-1jski8y):focus-visible span:where(.svelte-1jski8y){text-decoration:underline}.guide-aside.svelte-1jski8y .chevron:where(.svelte-1jski8y){flex-shrink:0;margin-top:3px}@media (width<=720px){.guide-aside.svelte-1jski8y strong:where(.svelte-1jski8y),.guide-aside.svelte-1jski8y a:where(.svelte-1jski8y){white-space:normal}}@media (width>=901px){.guide-aside.svelte-1jski8y{max-width:340px;box-shadow:var(--shadow-sm);position:absolute;bottom:calc(100% + 12px);right:0}}@media (width>=1280px){.guide-aside.svelte-1jski8y{max-width:620px}}.steps.svelte-1jski8y{flex-wrap:wrap;gap:12px 24px;margin:0;padding:0;list-style:none;display:flex}.steps.svelte-1jski8y li:where(.svelte-1jski8y){font-size:var(--fs-200);color:var(--text-secondary);align-items:center;gap:8px;display:flex}.step-number.svelte-1jski8y{background:var(--accent-subtle);width:22px;height:22px;color:var(--accent);font-weight:var(--fw-bold);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:inline-flex}
