.app-header[data-v-4fc95e39]{background:#fff;border-bottom:1px solid var(--gray-200);z-index:var(--z-header)}.header-top[data-v-4fc95e39]{display:flex;align-items:center;height:var(--header-height);padding:0 var(--space-3)}.header-left[data-v-4fc95e39]{display:flex;align-items:center;gap:var(--space-2);min-width:0}.header-btn[data-v-4fc95e39]{display:flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-md);color:var(--gray-700);transition:background var(--transition-fast)}.header-btn[data-v-4fc95e39]:hover{background:var(--gray-100)}.app-title[data-v-4fc95e39]{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);white-space:nowrap}.title-tap[data-v-4fc95e39]{color:var(--primary-400)}.title-topic[data-v-4fc95e39]{color:var(--gray-800)}.header-center[data-v-4fc95e39]{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:0}.board-name[data-v-4fc95e39]{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-separator[data-v-4fc95e39]{color:var(--gray-300);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal)}.topic-name[data-v-4fc95e39]{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-right[data-v-4fc95e39]{display:flex;align-items:center;gap:var(--space-2);min-width:0}@media(max-width:640px){.header-top[data-v-4fc95e39]{flex-wrap:wrap;height:auto;padding:var(--space-2) var(--space-3) 0}.app-title[data-v-4fc95e39]{font-size:var(--font-size-lg)}.header-center[data-v-4fc95e39]{order:3;flex:0 0 100%;justify-content:flex-start;gap:var(--space-1);padding-bottom:var(--space-2)}.header-right[data-v-4fc95e39]{margin-left:auto}}.app-footer[data-v-ced7d70a]{display:flex;align-items:center;justify-content:space-between;height:var(--footer-height);padding:0 var(--space-4);background:#fff;border-top:1px solid var(--gray-200);flex-shrink:0}.footer-left[data-v-ced7d70a]{display:flex;align-items:center;gap:var(--space-2)}.status-dot[data-v-ced7d70a]{width:12px;height:12px;border-radius:var(--radius-full);background:var(--green-500);flex-shrink:0}.footer-brand[data-v-ced7d70a]{font-size:var(--font-size-sm);color:var(--gray-600)}.footer-divider[data-v-ced7d70a]{color:var(--gray-300);font-size:var(--font-size-sm)}.footer-attribution[data-v-ced7d70a]{font-size:var(--font-size-xs);color:var(--gray-500)}.footer-attribution a[data-v-ced7d70a]{color:var(--gray-600);text-decoration:underline}.footer-attribution a[data-v-ced7d70a]:hover{color:var(--primary-500)}.topic-item[data-v-19810690]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);min-height:36px;color:var(--gray-600)}.topic-item[data-v-19810690]:hover{background:var(--gray-100);color:var(--gray-800)}.topic-item.active[data-v-19810690]{background:var(--primary-100);color:var(--primary-700)}.topic-item.dragging[data-v-19810690]{opacity:.4;cursor:grabbing}.topic-name[data-v-19810690]{font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-list[data-v-989c2e5f]{padding-left:var(--space-6);padding-bottom:var(--space-1)}.empty-topics[data-v-989c2e5f]{padding:var(--space-2);font-size:var(--font-size-xs);color:var(--gray-400)}.folder-item[data-v-a4221cb1]{margin-bottom:var(--space-1)}.folder-header[data-v-a4221cb1]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);min-height:var(--touch-min)}.folder-header[data-v-a4221cb1]:hover{background:var(--gray-100)}.folder-item.active>.folder-header[data-v-a4221cb1]{background:var(--primary-50)}.folder-chevron[data-v-a4221cb1]{transition:transform var(--transition-fast);flex-shrink:0;color:var(--gray-400)}.folder-chevron.expanded[data-v-a4221cb1]{transform:rotate(90deg)}.folder-name[data-v-a4221cb1]{flex:1;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-add-btn[data-v-a4221cb1]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);color:var(--gray-400);opacity:0;transition:all var(--transition-fast)}.folder-header:hover .folder-add-btn[data-v-a4221cb1]{opacity:1}.folder-add-btn[data-v-a4221cb1]:hover{background:var(--gray-200);color:var(--gray-700)}.folder-header.drag-over[data-v-a4221cb1]{background:var(--primary-100);outline:2px dashed var(--primary-400);outline-offset:-2px}.folder-list[data-v-6215f012]{padding:0 var(--space-2)}.empty-folders[data-v-6215f012]{padding:var(--space-4);text-align:center;color:var(--gray-500);font-size:var(--font-size-sm)}.sidebar[data-v-a208221c]{width:var(--sidebar-width);height:100%;background:#fff;border-right:1px solid var(--gray-200);display:flex;flex-direction:column;z-index:var(--z-sidebar);position:absolute;left:0;top:0;bottom:0}@media(min-width:1024px){.sidebar[data-v-a208221c]{position:relative}}.sidebar-header[data-v-a208221c]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--gray-100)}.sidebar-title[data-v-a208221c]{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--gray-800)}.sidebar-close[data-v-a208221c]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--gray-500)}.sidebar-close[data-v-a208221c]:hover{background:var(--gray-100);color:var(--gray-700)}.sidebar-content[data-v-a208221c]{flex:1;overflow-y:auto;padding:var(--space-2) 0}.sidebar-actions[data-v-a208221c]{padding:var(--space-3) var(--space-4);border-top:1px solid var(--gray-100);display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-action-btn[data-v-a208221c]{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-600);transition:all var(--transition-fast)}.sidebar-action-btn[data-v-a208221c]:hover{background:var(--gray-100);color:var(--gray-800)}.sidebar-action-row[data-v-a208221c]{display:flex;gap:var(--space-2)}.sidebar-action-btn.small[data-v-a208221c]{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2)}.phrase-word[data-v-60f6d84e]{display:flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);border:1.5px solid var(--cat-border, var(--gray-300));background:var(--cat-bg, white);cursor:pointer;transition:transform var(--transition-fast),opacity var(--transition-fast);-webkit-user-select:none;user-select:none;flex-shrink:0;min-height:72px;animation:slideInUp var(--transition-fast)}.phrase-word[data-v-60f6d84e]:hover{opacity:.7}.phrase-word[data-v-60f6d84e]:active{transform:scale(.9)}.phrase-word-image[data-v-60f6d84e]{width:64px;height:64px;object-fit:contain;border-radius:2px;flex-shrink:0}.phrase-word-label[data-v-60f6d84e]{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--cat-text, var(--gray-800));white-space:nowrap}.phrase-controls[data-v-1d3bf36d]{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.control-btn[data-v-1d3bf36d]{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-md);transition:all var(--transition-fast)}.control-btn[data-v-1d3bf36d]:disabled{opacity:.3;cursor:not-allowed}.speak-btn[data-v-1d3bf36d]{background:var(--primary-400);color:#fff;width:100px;height:100px}.speak-btn[data-v-1d3bf36d]:hover:not(:disabled){background:var(--primary-500)}.speak-btn.speaking[data-v-1d3bf36d]{background:var(--red-500)}.speak-btn.speaking[data-v-1d3bf36d]:hover{background:var(--red-600)}.backspace-btn[data-v-1d3bf36d]{color:var(--gray-600)}.backspace-btn[data-v-1d3bf36d]:hover:not(:disabled){background:var(--gray-100)}.clear-btn[data-v-1d3bf36d]{color:var(--gray-500)}.clear-btn[data-v-1d3bf36d]:hover:not(:disabled){background:var(--red-100);color:var(--red-500)}@media(max-width:767px){.control-btn[data-v-1d3bf36d]{width:var(--touch-min);height:var(--touch-min)}.control-btn svg[data-v-1d3bf36d]{width:18px;height:18px}.speak-btn[data-v-1d3bf36d]{width:var(--touch-min);height:var(--touch-min)}.speak-btn svg[data-v-1d3bf36d]{width:20px;height:20px}}.phrase-bar[data-v-6d817f64]{position:relative;display:flex;align-items:stretch;gap:var(--space-3);padding:var(--space-3);min-height:var(--phrase-bar-height);background:#fff;border-bottom:1px solid var(--gray-200)}.phrase-words[data-v-6d817f64]{flex:1;display:flex;align-items:center;align-content:center;flex-wrap:wrap;gap:var(--space-2);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;min-height:240px}.phrase-words[data-v-6d817f64]::-webkit-scrollbar{display:none}.phrase-placeholder[data-v-6d817f64]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--gray-400);font-size:var(--font-size-lg);white-space:nowrap;font-style:italic;pointer-events:none}.phrase-textarea[data-v-6d817f64]{width:100%;height:100%;padding:var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:var(--font-size-lg);font-family:var(--font-family);resize:none;line-height:1.5;box-sizing:border-box}.phrase-textarea[data-v-6d817f64]:focus{outline:none;border-color:var(--primary-400);box-shadow:0 0 0 3px #4a90d926}.typed-word-images[data-v-6d817f64]{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;padding:var(--space-3);background:var(--gray-50, #f9fafb);border-bottom:1px solid var(--gray-200)}.typed-word-item[data-v-6d817f64]{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:72px}.typed-word-img-wrap[data-v-6d817f64]{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:#fff}.typed-word-img[data-v-6d817f64]{width:48px;height:48px;object-fit:contain}.typed-word-no-img[data-v-6d817f64]{font-size:var(--font-size-xl);color:var(--gray-300);font-weight:var(--font-weight-bold)}.typed-word-label[data-v-6d817f64]{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--gray-700);text-align:center;word-break:break-word}@media(max-width:767px){.phrase-bar[data-v-6d817f64]{padding:var(--space-2);gap:var(--space-2)}.phrase-words[data-v-6d817f64]{min-height:120px}.phrase-placeholder[data-v-6d817f64]{display:none}}.word-card[data-v-19093765]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-lg);border:2px solid var(--cat-border, var(--gray-300));background:var(--cat-bg, white);min-height:80px;min-width:80px;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);user-select:none;-webkit-user-select:none}.word-card[data-v-19093765]:hover{box-shadow:var(--shadow-md)}.word-card[data-v-19093765]:active{transform:scale(.95)}.word-card.dragging[data-v-19093765]{opacity:.4}.word-card[draggable=true][data-v-19093765]{cursor:grab}.word-image[data-v-19093765]{width:64px;height:64px;object-fit:contain;border-radius:var(--radius-sm)}.word-label[data-v-19093765]{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--cat-text, var(--gray-800));text-align:center;word-break:break-word;line-height:1.2}.word-label.size-small[data-v-19093765]{font-size:var(--font-size-xs)}.word-label.size-large[data-v-19093765]{font-size:var(--font-size-lg)}.category-column[data-v-8d4e0ecd]{flex:1;min-width:150px;display:flex;flex-direction:column;border-right:1px solid var(--gray-300)}.category-column[data-v-8d4e0ecd]:last-child{border-right:none}.category-column.drag-over[data-v-8d4e0ecd]{background:color-mix(in srgb,var(--cat-bg, var(--gray-100)) 80%,white);box-shadow:inset 0 0 0 2px var(--cat-border, var(--gray-400))}.column-header[data-v-8d4e0ecd]{text-align:center;padding:var(--space-2) var(--space-2) 0}.column-label[data-v-8d4e0ecd]{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--cat-text, var(--gray-600));margin:0}.column-underline[data-v-8d4e0ecd]{height:3px;background:var(--cat-border, var(--gray-400));border-radius:2px;margin-top:var(--space-1)}.column-input-wrap[data-v-8d4e0ecd]{padding:var(--space-2)}.column-input[data-v-8d4e0ecd]{width:100%;padding:var(--space-2);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:inherit;background:#fff;color:var(--gray-800);outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.column-input[data-v-8d4e0ecd]::placeholder{color:var(--gray-400)}.column-input[data-v-8d4e0ecd]:focus{border-color:var(--cat-border, var(--primary-400));box-shadow:0 0 0 2px color-mix(in srgb,var(--cat-border, var(--primary-400)) 20%,transparent)}.column-words[data-v-8d4e0ecd]{flex:1;overflow-y:auto;display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2);align-content:flex-start}@media(max-width:767px){.category-column[data-v-8d4e0ecd]{flex:1;min-width:0}.column-header[data-v-8d4e0ecd],.mobile-hidden[data-v-8d4e0ecd]{display:none}}.empty-state[data-v-c486ceab]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10);text-align:center;flex:1}.empty-icon[data-v-c486ceab]{font-size:3rem;margin-bottom:var(--space-4)}.empty-title[data-v-c486ceab]{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--gray-700);margin-bottom:var(--space-2)}.empty-description[data-v-c486ceab]{font-size:var(--font-size-sm);color:var(--gray-500);max-width:300px}.word-grid[data-v-798d83e2]{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}.categories[data-v-798d83e2]{display:flex;flex-direction:row;flex:1;overflow-x:auto;overflow-y:hidden}.tab-bar[data-v-798d83e2]{display:none}@media(max-width:767px){.tab-bar[data-v-798d83e2]{display:flex;overflow-x:auto;border-bottom:1px solid var(--gray-300);background:var(--gray-100, #f8f9fa);flex-shrink:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-bar[data-v-798d83e2]::-webkit-scrollbar{display:none}.tab-btn[data-v-798d83e2]{flex:0 0 auto;min-width:max-content;padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);background:none;border:none;cursor:pointer;position:relative;white-space:nowrap;transition:color var(--transition-fast);font-family:inherit}.tab-btn.active[data-v-798d83e2]{color:var(--cat-text, var(--gray-800));font-weight:var(--font-weight-bold)}.tab-indicator[data-v-798d83e2]{display:block;position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:2px 2px 0 0;background:transparent;transition:background var(--transition-fast)}.tab-btn.active .tab-indicator[data-v-798d83e2]{background:var(--cat-border, var(--gray-400))}.categories[data-v-798d83e2]{overflow-x:hidden}}.add-word-btn[data-v-798d83e2]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--primary-400);color:#fff;border-radius:var(--radius-lg);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);margin-top:var(--space-4);transition:background var(--transition-fast)}.add-word-btn[data-v-798d83e2]:hover{background:var(--primary-500)}.fab[data-v-798d83e2]{position:fixed;bottom:var(--space-4);right:var(--space-4);width:56px;height:56px;border-radius:var(--radius-full);background:var(--primary-400);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:all var(--transition-fast);z-index:50}.fab[data-v-798d83e2]:hover{background:var(--primary-500);transform:scale(1.05)}.fab[data-v-798d83e2]:active{transform:scale(.95)}.merged-view[data-v-798d83e2]{flex:1;display:flex;flex-direction:column;overflow:hidden}.merged-input-wrap[data-v-798d83e2]{padding:var(--space-2);flex-shrink:0}.merged-input[data-v-798d83e2]{width:100%;padding:var(--space-2);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:inherit;background:#fff;color:var(--gray-800);outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.merged-input[data-v-798d83e2]::placeholder{color:var(--gray-400)}.merged-input[data-v-798d83e2]:focus{border-color:var(--primary-400);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary-400) 20%,transparent)}.merged-words[data-v-798d83e2]{flex:1;overflow-y:auto;display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2);align-content:flex-start}.favorites-panel[data-v-4e626b1d]{padding:var(--space-3) var(--space-4);background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.favorites-title[data-v-4e626b1d]{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:var(--space-2)}.favorites-grid[data-v-4e626b1d]{display:flex;flex-wrap:wrap;gap:var(--space-1)}.favorite-word[data-v-4e626b1d]{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);border:1px solid var(--cat-border, var(--gray-300));background:var(--cat-bg, white);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--cat-text, var(--gray-700));cursor:pointer;transition:transform var(--transition-fast)}.favorite-word[data-v-4e626b1d]:active{transform:scale(.95)}.fav-image[data-v-4e626b1d]{width:20px;height:20px;object-fit:contain}.tts-mode[data-v-8f44dca5]{flex:1;display:flex;flex-direction:column;overflow:hidden}.input-mode-toggle[data-v-8f44dca5]{display:flex;gap:var(--space-1);background:var(--gray-200);padding:var(--space-1);border-radius:var(--radius-lg);margin:var(--space-2) var(--space-3) 0;align-self:flex-end;border:2px solid var(--gray-300)}.toggle-btn[data-v-8f44dca5]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--gray-500);transition:all var(--transition-fast);white-space:nowrap}.toggle-btn.active[data-v-8f44dca5]{background:var(--primary-500);color:#fff;box-shadow:var(--shadow-md)}.toggle-btn[data-v-8f44dca5]:hover:not(.active){color:var(--gray-800);background:var(--gray-100)}.setting-toggle[data-v-f3e96b23]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;cursor:pointer}.toggle-text[data-v-f3e96b23]{display:flex;flex-direction:column;gap:2px;min-width:0}.toggle-label[data-v-f3e96b23]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-800)}.toggle-desc[data-v-f3e96b23]{font-size:var(--font-size-xs);color:var(--gray-500)}.toggle-switch[data-v-f3e96b23]{position:relative;width:44px;height:24px;background:var(--gray-300);border-radius:var(--radius-full);transition:background var(--transition-fast);flex-shrink:0}.toggle-switch.active[data-v-f3e96b23]{background:var(--primary-400)}.toggle-knob[data-v-f3e96b23]{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.toggle-switch.active .toggle-knob[data-v-f3e96b23]{transform:translate(20px)}.setting-slider[data-v-cad26b47]{padding:var(--space-3) 0}.slider-header[data-v-cad26b47]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.slider-label[data-v-cad26b47]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-800)}.slider-value[data-v-cad26b47]{font-size:var(--font-size-sm);color:var(--gray-500);font-variant-numeric:tabular-nums}.slider-input[data-v-cad26b47]{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--gray-200);border-radius:var(--radius-full);outline:none}.slider-input[data-v-cad26b47]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:var(--primary-400);border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-sm)}.slider-input[data-v-cad26b47]::-moz-range-thumb{width:20px;height:20px;background:var(--primary-400);border-radius:var(--radius-full);cursor:pointer;border:none;box-shadow:var(--shadow-sm)}.category-visibility[data-v-88b57d64]{padding:var(--space-3) 0}.section-label[data-v-88b57d64]{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--gray-700);margin-bottom:var(--space-2)}.category-list[data-v-88b57d64]{display:flex;flex-direction:column;gap:var(--space-1)}.category-row[data-v-88b57d64]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.category-row[data-v-88b57d64]:hover{background:var(--gray-50)}.category-info[data-v-88b57d64]{display:flex;align-items:center;gap:var(--space-2)}.category-dot[data-v-88b57d64]{width:12px;height:12px;border-radius:var(--radius-full)}.category-name[data-v-88b57d64]{font-size:var(--font-size-sm)}.category-checkbox[data-v-88b57d64]{width:18px;height:18px;accent-color:var(--primary-400);cursor:pointer}.settings-panel[data-v-7fe957a8]{width:var(--settings-width);height:100%;background:#fff;border-left:1px solid var(--gray-200);display:flex;flex-direction:column;z-index:var(--z-sidebar);position:absolute;right:0;top:0;bottom:0}@media(min-width:1024px){.settings-panel[data-v-7fe957a8]{position:relative}}.settings-header[data-v-7fe957a8]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--gray-100)}.settings-title[data-v-7fe957a8]{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.settings-close[data-v-7fe957a8]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--gray-500)}.settings-close[data-v-7fe957a8]:hover{background:var(--gray-100)}.settings-body[data-v-7fe957a8]{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-4)}.settings-section[data-v-7fe957a8]{padding:var(--space-2) 0;border-bottom:1px solid var(--gray-100)}.settings-section[data-v-7fe957a8]:last-child{border-bottom:none}.section-title[data-v-7fe957a8]{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:var(--space-1)}.font-size-setting[data-v-7fe957a8]{padding:var(--space-3) 0}.setting-label[data-v-7fe957a8]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-800);display:block;margin-bottom:var(--space-2)}.font-size-options[data-v-7fe957a8]{display:flex;gap:var(--space-1);background:var(--gray-100);padding:var(--space-1);border-radius:var(--radius-md)}.font-size-btn[data-v-7fe957a8]{flex:1;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-600);transition:all var(--transition-fast)}.font-size-btn.active[data-v-7fe957a8]{background:#fff;color:var(--primary-500);box-shadow:var(--shadow-sm)}.settings-action-btn[data-v-7fe957a8]{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);margin-top:var(--space-2);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-700);background:var(--gray-50);border:1px solid var(--gray-200);cursor:pointer;transition:all var(--transition-fast)}.settings-action-btn[data-v-7fe957a8]:hover{background:var(--gray-100);border-color:var(--gray-300)}.settings-action-btn.danger[data-v-7fe957a8]{color:var(--red-500)}.settings-action-btn.danger[data-v-7fe957a8]:hover{background:var(--red-50, #fef2f2);border-color:var(--red-200, #fecaca)}.visually-hidden[data-v-7fe957a8]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.status-message[data-v-7fe957a8]{font-size:var(--font-size-sm);color:var(--green-500);padding:var(--space-2);background:var(--green-50, #f0fdf4);border-radius:var(--radius-md);margin-top:var(--space-2)}.import-error[data-v-7fe957a8]{font-size:var(--font-size-sm);color:var(--red-500);padding:var(--space-2);background:var(--red-50, #fef2f2);border-radius:var(--radius-md);margin-top:var(--space-2)}.import-confirm[data-v-7fe957a8],.reset-confirm[data-v-7fe957a8]{padding:var(--space-3);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);margin-top:var(--space-2)}.import-confirm p[data-v-7fe957a8],.reset-confirm p[data-v-7fe957a8]{margin:0;font-size:var(--font-size-sm);color:var(--gray-700)}.import-date[data-v-7fe957a8]{color:var(--gray-500);margin-top:var(--space-1)}.import-warning[data-v-7fe957a8]{color:var(--yellow-600, #ca8a04);font-weight:var(--font-weight-medium);margin-top:var(--space-2)}.confirm-actions[data-v-7fe957a8]{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-3)}.btn-sm[data-v-7fe957a8]{padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-secondary[data-v-7fe957a8]{color:var(--gray-600);background:#fff;border:1px solid var(--gray-300)}.btn-secondary[data-v-7fe957a8]:hover{background:var(--gray-50)}.btn-primary[data-v-7fe957a8]{color:#fff;background:var(--primary-500);border:1px solid var(--primary-500)}.btn-primary[data-v-7fe957a8]:hover{background:var(--primary-600)}.btn-danger[data-v-7fe957a8]{color:#fff;background:var(--red-500);border:1px solid var(--red-500)}.btn-danger[data-v-7fe957a8]:hover{background:var(--red-600, #dc2626)}.context-menu[data-v-b8ab30f8]{position:fixed;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-1);z-index:var(--z-context-menu);min-width:160px;animation:scaleIn var(--transition-fast)}.context-item[data-v-b8ab30f8]{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--gray-700);transition:background var(--transition-fast)}.context-item[data-v-b8ab30f8]:hover{background:var(--gray-100)}.context-item.danger[data-v-b8ab30f8]{color:var(--red-500)}.context-item.danger[data-v-b8ab30f8]:hover{background:var(--red-100)}.modal-backdrop[data-v-278bcd6b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--space-4);animation:fadeIn var(--transition-fast)}.modal[data-v-278bcd6b]{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-height:90vh;display:flex;flex-direction:column;animation:scaleIn var(--transition-base)}.modal-header[data-v-278bcd6b]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--gray-100)}.modal-title[data-v-278bcd6b]{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.modal-close[data-v-278bcd6b]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--gray-500)}.modal-close[data-v-278bcd6b]:hover{background:var(--gray-100);color:var(--gray-700)}.modal-body[data-v-278bcd6b]{padding:var(--space-5);overflow-y:auto}.modal-footer[data-v-278bcd6b]{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--gray-100)}.form-group[data-v-ea4dbf94]{display:flex;flex-direction:column;gap:var(--space-2)}.form-label[data-v-ea4dbf94]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-700)}.form-input[data-v-ea4dbf94]{padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.form-input[data-v-ea4dbf94]:focus{outline:none;border-color:var(--primary-400);box-shadow:0 0 0 3px #4a90d926}.btn[data-v-ea4dbf94]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);min-height:var(--touch-min)}.btn-secondary[data-v-ea4dbf94]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-ea4dbf94]:hover{background:var(--gray-200)}.btn-primary[data-v-ea4dbf94]{background:var(--primary-400);color:#fff}.btn-primary[data-v-ea4dbf94]:hover:not(:disabled){background:var(--primary-500)}.btn-primary[data-v-ea4dbf94]:disabled{opacity:.5;cursor:not-allowed}.form-group[data-v-515f2586]{display:flex;flex-direction:column;gap:var(--space-2)}.form-label[data-v-515f2586]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-700)}.form-input[data-v-515f2586]{padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.form-input[data-v-515f2586]:focus{outline:none;border-color:var(--primary-400);box-shadow:0 0 0 3px #4a90d926}.btn[data-v-515f2586]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);min-height:var(--touch-min)}.btn-secondary[data-v-515f2586]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-515f2586]:hover{background:var(--gray-200)}.btn-primary[data-v-515f2586]{background:var(--primary-400);color:#fff}.btn-primary[data-v-515f2586]:hover:not(:disabled){background:var(--primary-500)}.btn-primary[data-v-515f2586]:disabled{opacity:.5;cursor:not-allowed}.spinner[data-v-64810bac]{display:inline-flex;color:var(--primary-400)}.spinner-arc[data-v-64810bac]{animation:spin-64810bac .8s linear infinite;transform-origin:center}@keyframes spin-64810bac{to{transform:rotate(360deg)}}.symbol-search[data-v-0bded104]{display:flex;flex-direction:column;gap:var(--space-3)}.search-input-wrap[data-v-0bded104]{position:relative;display:flex;align-items:center}.search-icon[data-v-0bded104]{position:absolute;left:var(--space-3);color:var(--gray-400);pointer-events:none}.search-input[data-v-0bded104]{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) 36px;border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.search-input[data-v-0bded104]:focus{outline:none;border-color:var(--primary-400);box-shadow:0 0 0 3px #4a90d926}.search-results[data-v-0bded104]{min-height:100px;display:flex;align-items:center;justify-content:center}.search-error[data-v-0bded104]{color:var(--red-500);font-size:var(--font-size-sm)}.search-empty[data-v-0bded104]{color:var(--gray-500);font-size:var(--font-size-sm)}.symbol-grid[data-v-0bded104]{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:var(--space-2);width:100%}.symbol-item[data-v-0bded104]{display:flex;align-items:center;justify-content:center;padding:var(--space-2);border:1px solid var(--gray-200);border-radius:var(--radius-md);transition:all var(--transition-fast);aspect-ratio:1}.symbol-item[data-v-0bded104]:hover{border-color:var(--primary-400);box-shadow:var(--shadow-sm)}.symbol-img[data-v-0bded104]{width:48px;height:48px;object-fit:contain}.form[data-v-cb247766]{display:flex;flex-direction:column;gap:var(--space-4)}.form-group[data-v-cb247766]{display:flex;flex-direction:column;gap:var(--space-2)}.form-label[data-v-cb247766]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-700)}.form-input[data-v-cb247766]{padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.form-input[data-v-cb247766]:focus{outline:none;border-color:var(--primary-400);box-shadow:0 0 0 3px #4a90d926}.form-hint[data-v-cb247766]{font-size:var(--font-size-xs);color:var(--gray-500)}.category-grid[data-v-cb247766]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.category-option[data-v-cb247766]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.category-option[data-v-cb247766]:hover{border-color:var(--gray-400)}.category-option.selected[data-v-cb247766]{border-color:var(--gray-500);font-weight:var(--font-weight-semibold)}.category-dot[data-v-cb247766]{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0}.image-section[data-v-cb247766]{display:flex;flex-direction:column;gap:var(--space-2)}.image-actions[data-v-cb247766]{display:flex;gap:var(--space-2)}.image-action-btn[data-v-cb247766]{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--gray-600);transition:all var(--transition-fast)}.image-action-btn[data-v-cb247766]:hover{border-color:var(--primary-400);color:var(--primary-500)}.image-preview-row[data-v-cb247766]{display:flex;align-items:center;gap:var(--space-3)}.preview-img[data-v-cb247766]{width:64px;height:64px;object-fit:contain;border:1px solid var(--gray-200);border-radius:var(--radius-md)}.remove-img-btn[data-v-cb247766]{font-size:var(--font-size-sm);color:var(--red-500);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.remove-img-btn[data-v-cb247766]:hover{background:var(--red-100)}.btn[data-v-cb247766]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);min-height:var(--touch-min)}.btn-secondary[data-v-cb247766]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-cb247766]:hover{background:var(--gray-200)}.btn-primary[data-v-cb247766]{background:var(--primary-400);color:#fff}.btn-primary[data-v-cb247766]:hover:not(:disabled){background:var(--primary-500)}.btn-primary[data-v-cb247766]:disabled{opacity:.5;cursor:not-allowed}.form[data-v-9c1b4a65]{display:flex;flex-direction:column;gap:var(--space-4)}.form-group[data-v-9c1b4a65]{display:flex;flex-direction:column;gap:var(--space-2)}.form-label[data-v-9c1b4a65]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-700)}.form-input[data-v-9c1b4a65]{padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-base)}.form-input[data-v-9c1b4a65]:focus{outline:none;border-color:var(--primary-400);box-shadow:0 0 0 3px #4a90d926}.file-picker[data-v-9c1b4a65]{cursor:pointer;display:block}.file-picker-content[data-v-9c1b4a65]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-8);border:2px dashed var(--gray-300);border-radius:var(--radius-lg);color:var(--gray-500);font-size:var(--font-size-sm);transition:all var(--transition-fast)}.file-picker-content[data-v-9c1b4a65]:hover{border-color:var(--primary-400);color:var(--primary-500)}.image-preview[data-v-9c1b4a65]{width:100%;max-height:300px;object-fit:contain;border-radius:var(--radius-lg);border:1px solid var(--gray-200)}.toggle-row[data-v-9c1b4a65]{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);cursor:pointer}.btn[data-v-9c1b4a65]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);min-height:var(--touch-min)}.btn-secondary[data-v-9c1b4a65]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-9c1b4a65]:hover{background:var(--gray-200)}.btn-primary[data-v-9c1b4a65]{background:var(--primary-400);color:#fff}.btn-primary[data-v-9c1b4a65]:hover:not(:disabled){background:var(--primary-500)}.btn-primary[data-v-9c1b4a65]:disabled{opacity:.5;cursor:not-allowed}.form[data-v-1e461b4e]{display:flex;flex-direction:column;gap:var(--space-4)}.form-group[data-v-1e461b4e]{display:flex;flex-direction:column;gap:var(--space-2)}.form-label[data-v-1e461b4e]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-700)}.form-error[data-v-1e461b4e]{color:var(--red-500);font-size:var(--font-size-sm)}.file-picker[data-v-1e461b4e]{cursor:pointer}.file-picker-btn[data-v-1e461b4e]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--gray-600)}.file-picker-btn[data-v-1e461b4e]:hover{border-color:var(--primary-400)}.import-preview[data-v-1e461b4e]{padding:var(--space-3);background:var(--gray-50);border-radius:var(--radius-md);font-size:var(--font-size-sm);display:flex;flex-direction:column;gap:var(--space-1)}.btn[data-v-1e461b4e]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);min-height:var(--touch-min)}.btn-secondary[data-v-1e461b4e]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-1e461b4e]:hover{background:var(--gray-200)}.btn-primary[data-v-1e461b4e]{background:var(--primary-400);color:#fff}.btn-primary[data-v-1e461b4e]:hover:not(:disabled){background:var(--primary-500)}.btn-primary[data-v-1e461b4e]:disabled{opacity:.5;cursor:not-allowed}.export-mode-picker[data-v-1a2722f3]{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--gray-100);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.mode-option[data-v-1a2722f3]{flex:1;padding:var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-500);cursor:pointer;transition:all var(--transition-fast)}.mode-option.active[data-v-1a2722f3]{background:#fff;color:var(--gray-900);box-shadow:0 1px 2px #0000001a}.export-info[data-v-1a2722f3]{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-size-base)}.export-hint[data-v-1a2722f3]{font-size:var(--font-size-sm);color:var(--gray-500)}.btn[data-v-1a2722f3]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);min-height:var(--touch-min)}.btn-secondary[data-v-1a2722f3]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-1a2722f3]:hover{background:var(--gray-200)}.btn-primary[data-v-1a2722f3]{background:var(--primary-400);color:#fff}.btn-primary[data-v-1a2722f3]:hover:not(:disabled){background:var(--primary-500)}.btn-primary[data-v-1a2722f3]:disabled{opacity:.5;cursor:not-allowed}.confirm-message[data-v-ef33291e]{font-size:var(--font-size-base);color:var(--gray-700);line-height:1.6}.btn[data-v-ef33291e]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);min-height:var(--touch-min)}.btn-secondary[data-v-ef33291e]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-ef33291e]:hover{background:var(--gray-200)}.btn-danger[data-v-ef33291e]{background:var(--red-500);color:#fff}.btn-danger[data-v-ef33291e]:hover{background:var(--red-600)}.about-content[data-v-ee62c1ca]{display:flex;flex-direction:column;gap:var(--space-5)}.about-section[data-v-ee62c1ca]{display:flex;flex-direction:column;gap:var(--space-2)}.section-title[data-v-ee62c1ca]{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--gray-900)}.about-section p[data-v-ee62c1ca]{font-size:var(--font-size-sm);color:var(--gray-600);line-height:1.6}.getting-started-list[data-v-ee62c1ca]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.getting-started-list li[data-v-ee62c1ca]{font-size:var(--font-size-sm);color:var(--gray-600);line-height:1.6;padding-left:var(--space-3);position:relative}.getting-started-list li[data-v-ee62c1ca]:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--primary-400)}.getting-started-list li strong[data-v-ee62c1ca]{color:var(--gray-800)}.contact-link[data-v-ee62c1ca]{color:var(--primary-400);text-decoration:none;font-weight:var(--font-weight-semibold)}.contact-link[data-v-ee62c1ca]:hover{text-decoration:underline}.app-shell[data-v-3def212d]{display:flex;flex-direction:column;height:100%;position:relative}.app-body[data-v-3def212d]{display:flex;flex:1;overflow:hidden;position:relative}.app-content[data-v-3def212d]{flex:1;overflow:hidden;display:flex;flex-direction:column;padding-left:var(--space-8);padding-right:var(--space-8)}.backdrop[data-v-3def212d]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:calc(var(--z-sidebar) - 1)}@media(max-width:767px){.app-content[data-v-3def212d]{padding-left:0;padding-right:0}}@media(min-width:1024px){.backdrop[data-v-3def212d]{display:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{min-height:100vh;min-height:100dvh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}ul,ol{list-style:none}a{text-decoration:none;color:inherit}:root{--primary-50: #EBF5FF;--primary-100: #D6EBFF;--primary-200: #ADD6FF;--primary-300: #85C2FF;--primary-400: #4A90D9;--primary-500: #3A7BC8;--primary-600: #2A66B7;--primary-700: #1A51A6;--primary-800: #0A3C95;--primary-900: #002B84;--gray-50: #F8F9FA;--gray-100: #F1F3F5;--gray-200: #E9ECEF;--gray-300: #DEE2E6;--gray-400: #CED4DA;--gray-500: #ADB5BD;--gray-600: #868E96;--gray-700: #495057;--gray-800: #343A40;--gray-900: #212529;--green-100: #D4EDDA;--green-500: #28A745;--green-600: #218838;--yellow-100: #FFF3CD;--yellow-500: #FFC107;--yellow-600: #E0A800;--red-100: #F8D7DA;--red-500: #DC3545;--red-600: #C82333;--orange-100: #FFE0CC;--orange-500: #FD7E14;--purple-100: #E8D5F5;--purple-500: #6F42C1;--blue-100: #CCE5FF;--blue-500: #007BFF;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--sidebar-width: 280px;--header-height: 56px;--phrase-bar-height: 140px;--settings-width: 320px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .35s ease;--touch-min: 44px;--z-sidebar: 100;--z-header: 90;--z-modal-backdrop: 200;--z-modal: 210;--z-context-menu: 300;--z-toast: 400}.category-subject{--cat-bg: #FFF3CD;--cat-border: #E0A800;--cat-text: #856404}.category-action{--cat-bg: #D4EDDA;--cat-border: #218838;--cat-text: #155724}.category-description{--cat-bg: #CCE5FF;--cat-border: #007BFF;--cat-text: #004085}.category-object{--cat-bg: #FFE0CC;--cat-border: #FD7E14;--cat-text: #8B4513}.category-preposition{--cat-bg: #E8D5F5;--cat-border: #6F42C1;--cat-text: #4A2882}.category-miscellaneous{--cat-bg: #E9ECEF;--cat-border: #ADB5BD;--cat-text: #495057}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--gray-900);background-color:var(--gray-50);overflow:hidden}#app{height:100vh;height:100dvh;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}:focus-visible{outline:2px solid var(--primary-400);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-100%;left:var(--space-4);background:var(--primary-400);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:9999;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);text-decoration:none}.skip-link:focus{top:var(--space-2)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideOutLeft{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOutRight{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.fade-enter-active{animation:fadeIn var(--transition-base)}.fade-leave-active{animation:fadeOut var(--transition-base)}.slide-left-enter-active{animation:slideInLeft var(--transition-base)}.slide-left-leave-active{animation:slideOutLeft var(--transition-base)}.slide-right-enter-active{animation:slideInRight var(--transition-base)}.slide-right-leave-active{animation:slideOutRight var(--transition-base)}.slide-up-enter-active{animation:slideInUp var(--transition-base)}.slide-up-leave-active{animation:fadeOut var(--transition-fast)}.scale-enter-active{animation:scaleIn var(--transition-base)}.scale-leave-active{animation:fadeOut var(--transition-fast)}
