.icon[data-v-7fc8335c]{display:inline-block;vertical-align:middle;flex-shrink:0}.overlay[data-v-30be3883]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.show[data-v-30be3883]{opacity:1;pointer-events:auto}.modal[data-v-30be3883]{background:var(--bg2);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow2);max-height:90vh;overflow:hidden}.scheme-modal[data-v-30be3883]{width:600px;max-width:95vw}.edit-modal[data-v-30be3883]{width:400px;max-width:95vw;padding:24px}.modal-header[data-v-30be3883]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2[data-v-30be3883]{margin:0;font-size:18px;font-weight:600;color:var(--text)}.close-btn[data-v-30be3883]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--text2);cursor:pointer;transition:all .2s ease}.close-btn[data-v-30be3883]:hover{background:var(--bg3);color:var(--text)}.modal-body[data-v-30be3883]{padding:16px 20px;max-height:calc(90vh - 60px);overflow-y:auto}.action-bar[data-v-30be3883]{display:flex;gap:8px;margin-bottom:16px}.btn[data-v-30be3883]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-primary[data-v-30be3883]{background:var(--primary);color:#fff;border:none}.btn-primary[data-v-30be3883]:hover{background:var(--primary-light);transform:translateY(-1px)}.btn-ghost[data-v-30be3883]{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-ghost[data-v-30be3883]:hover{background:var(--bg3);border-color:var(--primary)}.scheme-list[data-v-30be3883]{display:flex;flex-direction:column;gap:8px}.scheme-item[data-v-30be3883]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s ease}.scheme-item[data-v-30be3883]:hover{border-color:var(--primary);transform:translate(4px)}.scheme-item.active[data-v-30be3883]{border-color:var(--primary);background:var(--primary-bg)}.scheme-item.example[data-v-30be3883]{background:linear-gradient(135deg,var(--bg) 0%,rgba(255,193,7,.05) 100%)}.scheme-info[data-v-30be3883]{flex:1;min-width:0}.scheme-name[data-v-30be3883]{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px}.badge[data-v-30be3883]{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;border-radius:4px;background:var(--warning-bg);color:var(--warning)}.active-badge[data-v-30be3883]{background:var(--primary);color:#fff}.scheme-meta[data-v-30be3883]{display:flex;gap:12px;font-size:12px;color:var(--text2)}.scheme-desc[data-v-30be3883]{margin-top:6px;font-size:13px;color:var(--text2);line-height:1.4}.scheme-actions[data-v-30be3883]{display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.scheme-item:hover .scheme-actions[data-v-30be3883]{opacity:1}.action-btn[data-v-30be3883]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--text2);cursor:pointer;transition:all .2s ease}.action-btn[data-v-30be3883]:hover{background:var(--primary-bg);border-color:var(--primary);color:var(--primary)}.action-btn.danger[data-v-30be3883]:hover{background:#dc35451a;border-color:var(--danger);color:var(--danger)}.empty-state[data-v-30be3883]{text-align:center;padding:40px 20px;color:var(--text2)}.empty-state p[data-v-30be3883]{margin:0}.empty-state .hint[data-v-30be3883]{margin-top:8px;font-size:13px}.edit-modal h2[data-v-30be3883]{margin:0 0 20px;font-size:16px;font-weight:600;color:var(--text)}.form-group[data-v-30be3883]{margin-bottom:16px}.form-group label[data-v-30be3883]{display:block;font-size:13px;font-weight:500;color:var(--text2);margin-bottom:6px}.form-group .required[data-v-30be3883]{color:var(--danger)}.form-group input[data-v-30be3883],.form-group textarea[data-v-30be3883]{width:100%;padding:10px 12px;font-size:14px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);outline:none;transition:border-color .2s ease;box-sizing:border-box;font-family:inherit}.form-group input[data-v-30be3883]:focus,.form-group textarea[data-v-30be3883]:focus{border-color:var(--primary)}.form-group input[data-v-30be3883]::placeholder,.form-group textarea[data-v-30be3883]::placeholder{color:var(--text3)}.form-group textarea[data-v-30be3883]{resize:vertical;min-height:60px}.actions[data-v-30be3883]{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}@media (max-width: 600px){.scheme-modal[data-v-30be3883]{width:100%;max-width:100%;border-radius:0;max-height:100vh}.scheme-actions[data-v-30be3883]{opacity:1}}.header[data-v-c7b243bf]{background:var(--bg2);border-bottom:1px solid var(--border);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;transition:background-color .3s ease,border-color .3s ease}.header-left[data-v-c7b243bf]{display:flex;align-items:center;gap:24px}.title[data-v-c7b243bf]{display:flex;align-items:center;gap:8px}h1[data-v-c7b243bf]{font-size:26px;font-weight:700;color:var(--primary);letter-spacing:2px;margin:0}.title-suffix[data-v-c7b243bf]{font-size:18px;font-weight:600}.ver[data-v-c7b243bf]{font-size:11px;color:var(--text2);background:var(--bg3);padding:2px 6px;border-radius:4px;font-weight:500;margin-left:8px;vertical-align:middle}.stats[data-v-c7b243bf]{display:flex;gap:20px}.stat-item[data-v-c7b243bf]{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-label[data-v-c7b243bf]{font-size:11px;color:var(--text2)}.stat-value[data-v-c7b243bf]{font-size:14px;font-weight:600;color:var(--primary)}.header-right[data-v-c7b243bf]{display:flex;align-items:center;gap:12px}.config-info[data-v-c7b243bf]{display:flex;align-items:center;gap:6px;cursor:pointer;transition:all .2s ease}.config-info:hover .config-name[data-v-c7b243bf],.config-info:hover .config-author[data-v-c7b243bf]{filter:brightness(1.1)}.config-name[data-v-c7b243bf]{font-size:16px;font-weight:800;color:var(--primary);background:#0066b426;padding:4px 10px;border-radius:8px}.config-author[data-v-c7b243bf]{font-size:14px;font-weight:500;color:var(--success);background:#00b42a26;padding:4px 10px;border-radius:8px}.config-author[data-v-c7b243bf]:before{content:"";margin-right:0;color:var(--text3)}.config-actions[data-v-c7b243bf],.config-actions .btn[data-v-c7b243bf]{display:flex;align-items:center;gap:4px}.btn-sm[data-v-c7b243bf]{padding:6px 12px;font-size:13px;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-sm.btn-primary[data-v-c7b243bf]{background:var(--primary);color:#fff;border:none}.btn-sm.btn-primary[data-v-c7b243bf]:hover{background:var(--primary-light);transform:translateY(-1px)}.btn-sm.btn-ghost[data-v-c7b243bf]{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-sm.btn-ghost[data-v-c7b243bf]:hover{background:var(--bg3);border-color:var(--primary)}.btn-icon[data-v-c7b243bf]{font-size:14px}.btn-text[data-v-c7b243bf]{font-size:13px}.divider-v[data-v-c7b243bf]{width:1px;height:20px;background:var(--border);margin:0 8px}.theme-toggle[data-v-c7b243bf]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg3);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:16px;transition:all .2s ease}.theme-toggle[data-v-c7b243bf]:hover{background:var(--primary-bg);border-color:var(--primary);transform:scale(1.05)}@media (max-width: 900px){.stats[data-v-c7b243bf]{display:none}.config-info[data-v-c7b243bf]{padding:4px 8px}.config-name[data-v-c7b243bf]{font-size:12px}.config-author[data-v-c7b243bf],.btn-text[data-v-c7b243bf]{display:none}.config-actions .btn[data-v-c7b243bf]{padding:6px 10px}}.overlay[data-v-c7b243bf]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.show[data-v-c7b243bf]{opacity:1;pointer-events:auto}.modal[data-v-c7b243bf]{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:24px;min-width:360px;max-width:400px;box-shadow:var(--shadow2)}.modal h2[data-v-c7b243bf]{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--text)}.form-group[data-v-c7b243bf]{margin-bottom:16px}.form-group label[data-v-c7b243bf]{display:block;font-size:13px;font-weight:500;color:var(--text2);margin-bottom:6px}.form-group input[data-v-c7b243bf],.form-group textarea[data-v-c7b243bf]{width:100%;padding:8px 12px;font-size:14px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);outline:none;transition:border-color .2s ease;box-sizing:border-box;font-family:inherit}.form-group input[data-v-c7b243bf]:focus,.form-group textarea[data-v-c7b243bf]:focus{border-color:var(--primary)}.form-group input[data-v-c7b243bf]::placeholder,.form-group textarea[data-v-c7b243bf]::placeholder{color:var(--text3)}.form-group textarea[data-v-c7b243bf]{resize:vertical;min-height:60px}.actions[data-v-c7b243bf]{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.charset-item[data-v-c7b243bf]{margin-left:8px}.charset-select[data-v-c7b243bf]{padding:2px 8px;font-size:14px;font-weight:600;color:var(--primary);background:var(--primary-bg);border:1px solid var(--primary);border-radius:4px;cursor:pointer;outline:none;transition:all .2s ease;min-width:70px;text-align:center}.charset-select[data-v-c7b243bf]:hover{background:var(--primary);color:#fff}.charset-select[data-v-c7b243bf]:focus{box-shadow:0 0 0 2px #0066b433}@media (max-width: 900px){.charset-item[data-v-c7b243bf]{display:none}}.freq-item[data-v-c7b243bf]{margin-left:4px}.freq-controls[data-v-c7b243bf]{display:flex;align-items:center;gap:6px}.freq-select[data-v-c7b243bf]{padding:2px 8px;font-size:14px;font-weight:600;color:var(--success);background:#00b42a26;border:1px solid var(--success);border-radius:4px;cursor:pointer;outline:none;transition:all .2s ease;min-width:50px;text-align:center}.freq-select[data-v-c7b243bf]:hover{background:var(--success);color:#fff}.freq-select[data-v-c7b243bf]:focus{box-shadow:0 0 0 2px #00b42a33}.freq-upload-btn[data-v-c7b243bf]{padding:2px 8px;font-size:12px;font-weight:600;color:var(--success);background:#00b42a14;border:1px solid var(--success);border-radius:4px;cursor:pointer;outline:none;transition:all .2s ease}.freq-upload-btn[data-v-c7b243bf]:hover{background:var(--success);color:#fff}@media (max-width: 900px){.freq-item[data-v-c7b243bf]{display:none}}.sidebar[data-v-fe2db72e]{width:var(--nav-width);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100%;overflow:hidden;transition:width .3s ease}.sidebar-collapsed[data-v-fe2db72e]{width:var(--nav-collapsed-width)}.collapse-btn[data-v-fe2db72e]{display:flex;align-items:center;justify-content:center;height:36px;margin:8px;background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text2);cursor:pointer;font-size:14px;font-weight:700;transition:all .2s ease}.collapse-btn[data-v-fe2db72e]:hover{background:var(--primary-bg);color:var(--primary);border-color:var(--primary);transform:scale(1.02)}.nav-main[data-v-fe2db72e]{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.nav-item[data-v-fe2db72e]{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:transparent;border:none;border-radius:8px;color:var(--text2);font-size:14px;cursor:pointer;transition:all .2s ease;text-align:left;font-family:inherit}.sidebar-collapsed .nav-item[data-v-fe2db72e]{justify-content:center;padding:12px 8px}.nav-item[data-v-fe2db72e]:hover{background:var(--bg3);color:var(--text);transform:scale(1.02)}.nav-item.active[data-v-fe2db72e]{background:var(--primary);color:#fff}.nav-item.active[data-v-fe2db72e]:hover{background:var(--primary-light)}.nav-icon[data-v-fe2db72e]{font-size:18px;width:24px;text-align:center;flex-shrink:0}.nav-label[data-v-fe2db72e]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.nav-item-sm[data-v-fe2db72e]{padding:10px 14px;font-size:13px}.nav-divider[data-v-fe2db72e]{height:1px;background:var(--border);margin:4px 16px}.nav-aux[data-v-fe2db72e]{padding:4px 8px;display:flex;flex-direction:column;gap:2px}.nav-footer[data-v-fe2db72e]{padding:8px;border-top:1px solid var(--border)}.theme-btn[data-v-fe2db72e]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 12px;background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;cursor:pointer;transition:all .2s ease;font-family:inherit}.theme-btn[data-v-fe2db72e]:hover{background:var(--primary-bg);border-color:var(--primary);color:var(--primary);transform:scale(1.02)}.theme-label[data-v-fe2db72e]{flex:1;text-align:left}.sidebar-collapsed .nav-label[data-v-fe2db72e],.sidebar-collapsed .theme-label[data-v-fe2db72e]{display:none}.sidebar-collapsed .theme-btn[data-v-fe2db72e]{justify-content:center;padding:10px 8px}.key-select[data-v-3430960b]{position:relative;min-width:80px}.key-select.is-open .select-trigger[data-v-3430960b]{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-bg)}.select-trigger[data-v-3430960b]{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s}.select-trigger[data-v-3430960b]:hover{border-color:var(--primary)}.select-trigger.disabled[data-v-3430960b]{cursor:not-allowed;opacity:.6;background:var(--bg3)}.select-trigger.disabled[data-v-3430960b]:hover{border-color:var(--border)}.key-select.disabled[data-v-3430960b]{pointer-events:none}.select-value[data-v-3430960b]{color:var(--text)}.select-arrow[data-v-3430960b]{font-size:10px;color:var(--text2);transition:transform .2s}.select-arrow.open[data-v-3430960b]{transform:rotate(180deg)}.key-select-dropdown[data-v-3430960b]{position:fixed;z-index:1000;background:var(--bg2);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 32px #0003;max-height:460px;overflow:hidden;display:flex;flex-direction:column}.key-select-dropdown.below[data-v-3430960b]{border-top-left-radius:8px;border-top-right-radius:8px}.key-select-dropdown.above[data-v-3430960b]{border-bottom-left-radius:8px;border-bottom-right-radius:8px;box-shadow:0 -4px 20px #00000026}.dropdown-enter-active[data-v-3430960b],.dropdown-leave-active[data-v-3430960b]{transition:all .2s ease}.dropdown-enter-from[data-v-3430960b],.dropdown-leave-to[data-v-3430960b]{opacity:0;transform:translateY(-8px)}.dropdown-enter-to[data-v-3430960b],.dropdown-leave-from[data-v-3430960b]{opacity:1;transform:translateY(0)}.keyboard-section[data-v-3430960b]{padding:12px;border-bottom:1px solid var(--border)}.section-label[data-v-3430960b]{font-size:11px;color:var(--text2);font-weight:500;text-transform:uppercase;margin-bottom:8px}.keyboard[data-v-3430960b]{display:flex;flex-direction:column;gap:6px}.keyboard-row[data-v-3430960b]{display:flex;gap:4px}.key[data-v-3430960b]{flex:1;min-width:28px;height:34px;background:var(--bg3);border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.key[data-v-3430960b]:hover{border-color:var(--primary);background:var(--bg)}.key-selected[data-v-3430960b]{background:var(--primary);color:#fff;border-color:var(--primary)}.key-label[data-v-3430960b]{font-size:12px;font-weight:600}.space-row[data-v-3430960b]{margin-top:4px}.key-space[data-v-3430960b]{height:30px}.code-section[data-v-3430960b]{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:120px;max-height:200px}.section-header[data-v-3430960b]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border)}.section-header .section-label[data-v-3430960b]{font-size:11px;color:var(--text2);font-weight:500;white-space:nowrap;margin:0}.code-search[data-v-3430960b]{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:4px;font-size:12px;outline:none;background:var(--bg);color:var(--text)}.code-search[data-v-3430960b]:focus{border-color:var(--primary)}.code-options[data-v-3430960b]{flex:1;overflow-y:auto;padding:6px}.code-option[data-v-3430960b]{padding:6px 10px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .15s}.code-option[data-v-3430960b]:hover{background:var(--primary-bg)}.code-option.selected[data-v-3430960b]{background:var(--primary);color:#fff}.code-option.selected .stroke-code[data-v-3430960b]{color:#fffc}.code-label[data-v-3430960b]{font-family:monospace}.stroke-code[data-v-3430960b]{font-size:11px;color:var(--text3);margin-left:6px;font-family:monospace}.detail-panel[data-v-12d143e0]{background:var(--bg2);border-left:1px solid var(--border);overflow-y:auto;padding:20px}h3[data-v-12d143e0]{font-size:12px;color:var(--text2);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border);font-weight:600;letter-spacing:.5px}.empty[data-v-12d143e0]{color:var(--text2);font-size:13px;text-align:center;padding:40px 0}.char-display[data-v-12d143e0]{font-size:64px;text-align:center;padding:24px;background:var(--bg3);border-radius:8px;margin-bottom:20px;line-height:1.2;color:var(--text)}.info-row[data-v-12d143e0]{margin-bottom:14px}.label[data-v-12d143e0]{font-size:11px;color:var(--text2);margin-bottom:4px;font-weight:500}.value[data-v-12d143e0]{font-size:14px;color:var(--text)}.value.mono[data-v-12d143e0]{font-family:monospace}.value.small[data-v-12d143e0]{font-size:12px}.info-grid[data-v-12d143e0]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.info-item[data-v-12d143e0]{margin-bottom:0}.actions[data-v-12d143e0]{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.pinyin-item[data-v-12d143e0]{display:inline-block;margin-right:8px;margin-bottom:4px}.pinyin-text[data-v-12d143e0]{color:var(--text)}.pinyin-freq[data-v-12d143e0]{font-size:11px;color:var(--text2);margin-left:2px}.pinyin-item[data-v-12d143e0]:not(:last-child):after{content:",";color:var(--text2)}.stroke-item[data-v-12d143e0]{display:flex;align-items:center;gap:6px;margin-bottom:4px}.stroke-label[data-v-12d143e0]{font-size:11px;color:var(--text2);background:var(--bg3);padding:1px 4px;border-radius:3px}.leaves-container[data-v-12d143e0]{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.leaf-btn[data-v-12d143e0]{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:4px 8px;font-size:16px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);cursor:pointer;transition:all .15s ease}.leaf-btn[data-v-12d143e0]:hover{background:var(--primary);border-color:var(--primary);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.leaf-btn.is-root[data-v-12d143e0]{background:var(--primary);border-color:var(--primary);color:#fff}.leaf-btn.is-root[data-v-12d143e0]:hover{background:var(--primary-dark, #0066cc);border-color:var(--primary-dark, #0066cc)}.leaf-btn.is-equiv[data-v-12d143e0]{background:#13c2c226;border-color:#13c2c2;color:#0d8a8a}.leaf-btn.is-equiv[data-v-12d143e0]:hover{background:#13c2c240;border-color:#13c2c2;color:#0d8a8a}.leaf-char[data-v-12d143e0]{font-weight:500}.leaf-badge[data-v-12d143e0]{position:absolute;top:-4px;right:-4px;width:14px;height:14px;font-size:10px;display:flex;align-items:center;justify-content:center;background:var(--success, #28a745);color:#fff;border-radius:50%}.leaf-badge.equiv[data-v-12d143e0]{background:#13c2c2}.leaf-sep[data-v-12d143e0]{color:var(--text2);font-weight:600;font-size:12px;margin:0 2px}.overlay[data-v-12d143e0]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.show[data-v-12d143e0]{opacity:1;pointer-events:auto}.modal[data-v-12d143e0]{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:24px;min-width:320px;max-width:520px;box-shadow:var(--shadow2)}.modal h2[data-v-12d143e0]{margin-bottom:16px;font-size:16px;font-weight:600;color:var(--text)}.form-group[data-v-12d143e0]{margin-bottom:16px}.form-group label[data-v-12d143e0]{display:block;font-size:12px;color:var(--text2);margin-bottom:6px;font-weight:500}.form-group .input[data-v-12d143e0]{width:100%;padding:8px 12px;font-size:14px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);outline:none;transition:border-color .2s}.form-group .input[data-v-12d143e0]:focus{border-color:var(--primary)}.code-inputs[data-v-12d143e0]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.form-group .hint[data-v-12d143e0]{margin-top:6px;font-size:11px;color:var(--text2);line-height:1.4}.merge-results[data-v-12d143e0]{margin-top:8px;max-height:160px;overflow:auto;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.merge-result-item[data-v-12d143e0]{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);padding:8px 10px;cursor:pointer}.merge-result-item[data-v-12d143e0]:last-child{border-bottom:none}.merge-result-item[data-v-12d143e0]:hover{background:var(--bg3)}.merge-target-row[data-v-12d143e0]{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.modal-actions[data-v-12d143e0]{display:flex;gap:8px;justify-content:flex-end}.toast[data-v-9921150f]{position:fixed;bottom:24px;right:24px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:12px 20px;color:var(--text);font-size:14px;z-index:1000;transform:translateY(100px);opacity:0;transition:all .3s ease;box-shadow:var(--shadow2)}.toast.show[data-v-9921150f]{transform:translateY(0);opacity:1}.loading-container[data-v-2b32fabd]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg);z-index:9999;overflow:hidden}.bg-decoration[data-v-2b32fabd]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.bg-circle[data-v-2b32fabd]{position:absolute;border-radius:50%;opacity:.03}.bg-circle-1[data-v-2b32fabd]{width:600px;height:600px;background:var(--primary);top:-200px;right:-100px;animation:float1-2b32fabd 20s ease-in-out infinite}.bg-circle-2[data-v-2b32fabd]{width:400px;height:400px;background:var(--purple);bottom:-150px;left:-100px;animation:float2-2b32fabd 15s ease-in-out infinite}.bg-circle-3[data-v-2b32fabd]{width:300px;height:300px;background:var(--primary);top:50%;left:50%;transform:translate(-50%,-50%);animation:pulse-2b32fabd 10s ease-in-out infinite}@keyframes float1-2b32fabd{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-30px,30px) scale(1.05)}}@keyframes float2-2b32fabd{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,-30px) scale(1.1)}}@keyframes pulse-2b32fabd{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.03}50%{transform:translate(-50%,-50%) scale(1.2);opacity:.05}}.loading-content[data-v-2b32fabd]{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;max-width:400px;width:90%;padding:40px;background:var(--bg2);border-radius:20px;box-shadow:var(--shadow2);border:1px solid var(--border)}.logo-area[data-v-2b32fabd]{text-align:center;margin-bottom:32px}.logo-icon[data-v-2b32fabd]{width:72px;height:72px;margin:0 auto 16px;color:var(--primary);position:relative}.logo-svg[data-v-2b32fabd]{width:100%;height:100%}.logo-rect[data-v-2b32fabd]{animation:logo-rect-draw-2b32fabd 2s ease-out forwards;stroke-dasharray:144;stroke-dashoffset:144}.logo-text[data-v-2b32fabd]{animation:logo-text-fade-2b32fabd 1s ease-out .5s forwards;opacity:0}@keyframes logo-rect-draw-2b32fabd{to{stroke-dashoffset:0}}@keyframes logo-text-fade-2b32fabd{to{opacity:1}}.logo-title[data-v-2b32fabd]{font-size:28px;font-weight:700;color:var(--text);margin-bottom:4px;letter-spacing:2px}.logo-subtitle[data-v-2b32fabd]{font-size:14px;color:var(--text2)}.progress-area[data-v-2b32fabd]{width:100%}.progress-track[data-v-2b32fabd]{width:100%;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;margin-bottom:12px}.progress-bar[data-v-2b32fabd]{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:4px;transition:width .3s ease;position:relative}.progress-glow[data-v-2b32fabd]{position:absolute;right:0;top:0;bottom:0;width:20px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4));animation:glow-move-2b32fabd 1.5s ease-in-out infinite}@keyframes glow-move-2b32fabd{0%,to{opacity:.5}50%{opacity:1}}.progress-info[data-v-2b32fabd]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.progress-percent[data-v-2b32fabd]{font-size:24px;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}.progress-message[data-v-2b32fabd]{font-size:13px;color:var(--text2)}.loading-items[data-v-2b32fabd]{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto;padding-right:8px}.loading-item[data-v-2b32fabd]{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg);border-radius:8px;font-size:13px;transition:all .3s ease}.loading-item.done[data-v-2b32fabd]{background:#00b42a14}.loading-item.error[data-v-2b32fabd]{background:#f53f3f14}.item-icon[data-v-2b32fabd]{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.item-icon svg[data-v-2b32fabd]{width:100%;height:100%}.loading-item.pending .item-icon[data-v-2b32fabd]{color:var(--text3)}.loading-item.loading .item-icon[data-v-2b32fabd]{color:var(--primary)}.loading-item.loading .icon-loading[data-v-2b32fabd]{animation:spin-2b32fabd 1s linear infinite}.loading-item.done .item-icon[data-v-2b32fabd]{color:var(--success)}.loading-item.error .item-icon[data-v-2b32fabd]{color:var(--danger)}.item-name[data-v-2b32fabd]{color:var(--text);flex:1}.loading-item.pending .item-name[data-v-2b32fabd]{color:var(--text3)}@keyframes spin-2b32fabd{to{transform:rotate(360deg)}}.loading-tip[data-v-2b32fabd]{margin-top:24px;font-size:12px;color:var(--text3);text-align:center}.loading-items[data-v-2b32fabd]::-webkit-scrollbar{width:4px}.loading-items[data-v-2b32fabd]::-webkit-scrollbar-track{background:transparent}.loading-items[data-v-2b32fabd]::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}@media (max-width: 480px){.loading-content[data-v-2b32fabd]{padding:24px}.logo-icon[data-v-2b32fabd]{width:56px;height:56px}.logo-title[data-v-2b32fabd]{font-size:24px}.progress-percent[data-v-2b32fabd]{font-size:20px}}.overlay[data-v-13044f8c]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.show[data-v-13044f8c]{opacity:1;pointer-events:auto}.modal[data-v-13044f8c]{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:24px;min-width:400px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow2)}.modal h2[data-v-13044f8c]{margin-bottom:16px;font-size:16px;font-weight:600;color:var(--text)}.actions[data-v-13044f8c]{display:flex;gap:8px;margin-top:20px;justify-content:flex-end}.ids-transformer-panel[data-v-3eb5f2b5]{background:var(--bg2);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;overflow:hidden;box-shadow:var(--shadow);max-height:500px;display:flex;flex-direction:column}.ids-transformer-head[data-v-3eb5f2b5]{padding:14px 20px;background:var(--bg2);border-bottom:1px solid var(--border);font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px}.toolbar-actions[data-v-3eb5f2b5]{display:flex;align-items:center;gap:8px}.rule-count[data-v-3eb5f2b5]{color:var(--text2);font-size:12px;font-weight:400}.ids-transformer-body[data-v-3eb5f2b5]{padding:20px;flex:1;overflow-y:auto;min-height:0;max-height:400px}.rule-list[data-v-3eb5f2b5]{display:flex;flex-direction:column;gap:8px;padding-right:4px}.rule-item[data-v-3eb5f2b5]{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:12px;transition:all .2s;cursor:grab}.rule-item[data-v-3eb5f2b5]:active{cursor:grabbing}.rule-item.disabled[data-v-3eb5f2b5]{opacity:.5}.rule-item.dragging[data-v-3eb5f2b5]{opacity:.5;border:2px dashed var(--accent);background:var(--bg2)}.rule-item.drag-over[data-v-3eb5f2b5]{border:2px solid var(--accent);background:var(--bg2)}.rule-header[data-v-3eb5f2b5]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.drag-handle[data-v-3eb5f2b5]{color:var(--text2);cursor:grab;font-size:12px;-webkit-user-select:none;user-select:none;padding:2px}.drag-handle[data-v-3eb5f2b5]:hover{color:var(--text1)}.rule-priority[data-v-3eb5f2b5]{background:var(--accent);color:#fff;font-size:10px;font-weight:600;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}.rule-name[data-v-3eb5f2b5]{font-weight:500;flex:1}.rule-mode[data-v-3eb5f2b5]{font-size:11px;color:var(--text2);background:var(--bg2);padding:2px 6px;border-radius:4px}.rule-detail[data-v-3eb5f2b5]{font-size:12px;color:var(--text2);margin-bottom:8px}.rule-detail code[data-v-3eb5f2b5]{background:var(--bg2);padding:2px 4px;border-radius:4px;font-family:monospace}.rule-actions[data-v-3eb5f2b5]{display:flex;gap:4px}.icon-btn[data-v-3eb5f2b5]{min-width:28px;padding:0 6px;font-weight:700}.icon-btn[data-v-3eb5f2b5]:disabled{opacity:.4;cursor:not-allowed}.toggle[data-v-3eb5f2b5]{position:relative;width:36px;height:20px}.toggle input[data-v-3eb5f2b5]{opacity:0;width:0;height:0}.toggle .slider[data-v-3eb5f2b5]{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:10px;transition:.2s}.toggle input:checked+.slider[data-v-3eb5f2b5]{background:var(--accent)}.toggle .slider[data-v-3eb5f2b5]:before{content:"";position:absolute;width:14px;height:14px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.toggle input:checked+.slider[data-v-3eb5f2b5]:before{transform:translate(16px)}.preview-panel[data-v-3eb5f2b5]{margin-top:16px;padding:12px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;max-height:400px;overflow-y:auto}.form-group[data-v-3eb5f2b5]{margin-bottom:12px}.form-group label[data-v-3eb5f2b5]{display:block;font-size:12px;color:var(--text2);margin-bottom:4px}.form-group input[data-v-3eb5f2b5],.form-group select[data-v-3eb5f2b5]{width:100%}.data-page[data-v-a12db737]{display:flex;flex-direction:column;gap:16px;height:100%}.toolbar[data-v-a12db737]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 20px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.toolbar-left[data-v-a12db737]{display:flex;align-items:center;gap:12px}.title[data-v-a12db737]{font-size:16px;font-weight:600}.count[data-v-a12db737]{font-size:13px;color:var(--text2);background:var(--bg3);padding:4px 10px;border-radius:4px}.filter-info[data-v-a12db737]{font-size:13px;color:var(--primary);background:var(--primary-bg);padding:4px 10px;border-radius:4px}.search-panel[data-v-a12db737]{background:var(--bg2);border-radius:8px;border:1px solid var(--border);padding:16px}.search-row[data-v-a12db737]{display:flex;gap:8px}.search-type[data-v-a12db737]{width:100px;flex-shrink:0}.search-input[data-v-a12db737]{flex:1}.table-container[data-v-a12db737]{flex:1;overflow:auto;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.data-table[data-v-a12db737]{font-size:13px}.data-table th[data-v-a12db737]{position:sticky;top:0;z-index:1}.char-cell[data-v-a12db737]{font-size:20px;text-align:center;font-weight:500}.mono[data-v-a12db737]{font-family:SF Mono,Consolas,monospace;font-size:12px}.ids-cell[data-v-a12db737]{font-family:SF Mono,Consolas,monospace;font-size:12px;color:var(--text2)}.split-cell[data-v-a12db737]{font-size:13px;letter-spacing:1px}.clickable-row[data-v-a12db737]{cursor:pointer;transition:background-color .15s ease}.clickable-row[data-v-a12db737]:hover{background:var(--bg3)!important}.pagination[data-v-a12db737]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.page-info[data-v-a12db737]{font-size:13px;color:var(--text2);min-width:80px;text-align:center}.empty-state[data-v-a12db737]{padding:60px 20px;text-align:center;color:var(--text2)}.empty-icon[data-v-a12db737]{font-size:48px;margin-bottom:12px;opacity:.5}.element-pool[data-v-ef518bbd]{display:flex;flex-direction:column;gap:12px}.element-grid[data-v-ef518bbd]{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:4px;max-height:400px;overflow-y:auto;padding:4px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.element-item[data-v-ef518bbd]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;border-radius:6px;cursor:pointer;transition:all .15s;min-height:48px;background:var(--bg2);border:1px solid transparent}.element-item[data-v-ef518bbd]:hover{background:var(--bg3);border-color:var(--border)}.element-item.selected[data-v-ef518bbd]{background:var(--primary-bg);border-color:var(--primary)}.element-item.added[data-v-ef518bbd]{background:#00b42a14}.element-item.added.selected[data-v-ef518bbd]{background:var(--primary-bg)}.element-char[data-v-ef518bbd]{font-size:20px;line-height:1;color:var(--text)}.element-code[data-v-ef518bbd]{font-size:10px;color:var(--success);font-family:monospace;margin-top:2px}.pagination[data-v-ef518bbd]{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px}.page-btn[data-v-ef518bbd]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;background:var(--bg2);color:var(--text);cursor:pointer;font-size:14px;transition:all .15s}.page-btn[data-v-ef518bbd]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.page-btn[data-v-ef518bbd]:disabled{opacity:.4;cursor:not-allowed}.page-info[data-v-ef518bbd]{font-size:13px;color:var(--text2);display:flex;align-items:center;gap:4px}.page-input[data-v-ef518bbd]{width:50px;padding:2px 4px;font-size:12px;text-align:center;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text)}.page-input[data-v-ef518bbd]::-webkit-inner-spin-button,.page-input[data-v-ef518bbd]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.total-count[data-v-ef518bbd]{font-size:12px;color:var(--text3)}.element-adder[data-v-16294b89]{padding:12px;background:var(--bg3);border-radius:8px;border:1px solid var(--border)}.selected-info[data-v-16294b89]{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.info-row[data-v-16294b89]{display:flex;align-items:center;gap:8px}.info-char[data-v-16294b89]{font-size:24px;font-weight:600}.info-details[data-v-16294b89]{flex:1;display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--text2)}.info-unicode[data-v-16294b89]{font-family:monospace}.info-code[data-v-16294b89]{color:var(--success);font-family:monospace;font-weight:500}.info-no-code[data-v-16294b89]{color:var(--text3)}.btn-close[data-v-16294b89]{width:24px;height:24px;border:none;background:transparent;color:var(--text2);font-size:18px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}.btn-close[data-v-16294b89]:hover{background:var(--bg2);color:var(--text)}.no-selection[data-v-16294b89]{color:var(--text3);font-size:13px;text-align:center;padding:16px}.already-added[data-v-16294b89]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.added-tag[data-v-16294b89]{padding:2px 8px;background:#00b42a26;color:var(--success);border-radius:4px;font-size:12px;font-weight:500}.merged-tag[data-v-16294b89]{font-size:12px;color:var(--text2)}.quick-add[data-v-16294b89]{margin-bottom:12px}.operation-section[data-v-16294b89]{display:flex;flex-direction:column;gap:12px}.form-label[data-v-16294b89]{font-size:12px;color:var(--text2);margin-bottom:4px}.disabled-hint[data-v-16294b89]{color:var(--text3);font-weight:400}.add-form.disabled[data-v-16294b89]{opacity:.6}.add-form.disabled .form-label[data-v-16294b89]{color:var(--text3)}.form-hint[data-v-16294b89]{font-size:11px;color:var(--text3);margin-top:2px}.add-form[data-v-16294b89],.merge-form[data-v-16294b89]{display:flex;flex-direction:column;gap:6px}.code-inputs[data-v-16294b89]{display:flex;gap:4px;flex-wrap:wrap}.code-inputs .key-select[data-v-16294b89]{flex:1;min-width:60px;max-width:80px}.merge-input-wrapper[data-v-16294b89]{position:relative}.merge-search-input[data-v-16294b89]{width:100%;padding:8px 10px;font-size:13px}.merge-results[data-v-16294b89]{position:absolute;left:0;right:0;max-height:150px;overflow-y:auto;background:var(--bg2);border:1px solid var(--border);border-radius:6px;z-index:10;box-shadow:var(--shadow2)}.merge-results.below[data-v-16294b89]{top:100%}.merge-results.above[data-v-16294b89]{bottom:100%;top:auto}.merge-result-item[data-v-16294b89]{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;cursor:pointer;transition:background .15s}.merge-result-item[data-v-16294b89]:hover{background:var(--bg3)}.result-root[data-v-16294b89]{font-size:16px}.result-code[data-v-16294b89]{font-family:monospace;font-size:12px;color:var(--success)}.merge-selected[data-v-16294b89]{font-size:12px;color:var(--text)}.selected-code[data-v-16294b89]{color:var(--success);font-family:monospace}.element-picker[data-v-36e46be7]{display:flex;flex-direction:column;gap:12px;width:400px;min-width:400px;max-width:400px;height:100%;padding:16px;background:var(--bg2);border-right:1px solid var(--border);overflow:hidden}.picker-header[data-v-36e46be7]{display:flex;align-items:center;justify-content:space-between}.picker-title[data-v-36e46be7]{font-size:16px;font-weight:600;margin:0}.element-count[data-v-36e46be7]{font-size:12px;color:var(--text2);background:var(--bg3);padding:2px 8px;border-radius:4px}.search-box[data-v-36e46be7]{position:relative}.search-input[data-v-36e46be7]{width:100%;padding:10px 14px;font-size:13px}.filter-count[data-v-36e46be7]{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--text3);pointer-events:none}.pool-section[data-v-36e46be7]{flex:1;min-height:0;overflow-y:auto}.adder-section[data-v-36e46be7]{flex-shrink:0}.equiv-modal-content[data-v-10ecc1f3]{display:flex;gap:20px;min-width:700px;max-width:90vw;max-height:70vh}.equiv-list-section[data-v-10ecc1f3]{flex:1;display:flex;flex-direction:column;min-width:350px}.equiv-list-header-row[data-v-10ecc1f3]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title[data-v-10ecc1f3]{margin:0;font-size:14px;font-weight:500;color:var(--text)}.equiv-list-header[data-v-10ecc1f3]{display:flex;padding:8px 12px;background:var(--bg3);border-radius:6px 6px 0 0;font-size:12px;color:var(--text2);font-weight:500;border-bottom:1px solid var(--border)}.col-main[data-v-10ecc1f3]{width:120px}.col-equiv[data-v-10ecc1f3]{flex:1}.drop-zone[data-v-10ecc1f3]{padding:12px;background:var(--primary-bg);border:2px dashed var(--primary);border-radius:8px;margin-bottom:12px;text-align:center;transition:all .2s}.drop-zone.drag-over[data-v-10ecc1f3]{background:var(--primary);color:#fff}.drop-zone-label[data-v-10ecc1f3]{font-size:13px;margin-bottom:4px}.drop-zone-hint[data-v-10ecc1f3]{font-size:12px;color:var(--text2)}.drop-zone.drag-over .drop-zone-hint[data-v-10ecc1f3]{color:#fffc}.equiv-list-body[data-v-10ecc1f3]{flex:1;overflow-y:auto;border:1px solid var(--border);border-radius:0 0 6px 6px;border-top:none;max-height:400px}.equiv-item[data-v-10ecc1f3]{display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:all .15s}.equiv-item[data-v-10ecc1f3]:hover{background:var(--bg3)}.equiv-item.selected[data-v-10ecc1f3]{background:var(--primary-bg)}.main-root[data-v-10ecc1f3]{width:120px;display:flex;align-items:center;gap:8px}.root-char[data-v-10ecc1f3]{font-size:20px;width:24px;text-align:center}.root-code[data-v-10ecc1f3]{font-family:monospace;font-size:12px;color:var(--text2)}.root-code.editable[data-v-10ecc1f3]{cursor:pointer;padding:2px 6px;border-radius:4px;background:var(--bg3)}.root-code.editable[data-v-10ecc1f3]:hover{background:var(--primary-bg);color:var(--primary)}.equiv-code-input[data-v-10ecc1f3]{width:60px;padding:2px 6px;font-size:12px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text)}.equiv-roots[data-v-10ecc1f3]{flex:1;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.equiv-tag[data-v-10ecc1f3]{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;background:var(--success-bg, rgba(0, 180, 100, .1));color:var(--success);border-radius:4px;font-size:13px}.remove-btn[data-v-10ecc1f3]{width:16px;height:16px;border:none;background:transparent;color:var(--text3);cursor:pointer;border-radius:50%;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}.remove-btn[data-v-10ecc1f3]:hover{background:var(--danger);color:#fff}.empty-hint[data-v-10ecc1f3]{font-size:12px;color:var(--text3);font-style:italic}.delete-group-btn[data-v-10ecc1f3]{padding:4px 8px;font-size:11px;color:var(--danger);background:transparent;border:1px solid var(--danger);border-radius:4px;cursor:pointer;opacity:0;transition:all .15s}.equiv-item:hover .delete-group-btn[data-v-10ecc1f3]{opacity:1}.delete-group-btn[data-v-10ecc1f3]:hover{background:var(--danger);color:#fff}.empty-list[data-v-10ecc1f3]{padding:40px;text-align:center;color:var(--text2);font-size:13px}.components-section[data-v-10ecc1f3]{width:300px;display:flex;flex-direction:column}.section-header[data-v-10ecc1f3]{margin-bottom:12px}.section-header .section-title[data-v-10ecc1f3]{margin-bottom:8px}.search-input-sm[data-v-10ecc1f3]{width:100%;padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.search-input-sm[data-v-10ecc1f3]:focus{outline:none;border-color:var(--primary)}.components-grid[data-v-10ecc1f3]{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px;overflow-y:auto;max-height:400px;padding:4px}.component-item[data-v-10ecc1f3]{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--bg3);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:16px;transition:all .15s}.component-item[data-v-10ecc1f3]:hover{border-color:var(--primary);background:var(--primary-bg)}.component-item.is-main[data-v-10ecc1f3]{background:var(--primary-bg);border-color:var(--primary);color:var(--primary);font-weight:500}.component-item.is-equiv[data-v-10ecc1f3]{background:var(--success-bg, rgba(0, 180, 100, .1));border-color:var(--success);color:var(--success)}.component-item.is-braced[data-v-10ecc1f3]{font-family:CHS-PUA,Noto Sans SC,sans-serif}.components-hint[data-v-10ecc1f3]{margin-top:12px;padding:10px;background:var(--bg3);border-radius:6px;font-size:12px;color:var(--text2);text-align:center}.btn[data-v-10ecc1f3]{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;font-size:13px;font-weight:500;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.btn-sm[data-v-10ecc1f3]{padding:4px 10px;font-size:12px}.btn-xs[data-v-10ecc1f3]{padding:2px 8px;font-size:11px}.btn-info[data-v-10ecc1f3]{background:#1890ff;color:#fff}.btn-info[data-v-10ecc1f3]:hover{background:#40a9ff}.btn-ghost[data-v-10ecc1f3]{background:transparent;border-color:var(--border);color:var(--text)}.btn-ghost[data-v-10ecc1f3]:hover{border-color:var(--primary);color:var(--primary)}.pua-font[data-v-10ecc1f3]{font-family:CHS-PUA,Noto Sans SC,Microsoft YaHei,PingFang SC,sans-serif!important}.element-page[data-v-8de3d352]{display:flex;flex-direction:column;height:100%;overflow:hidden}.toolbar[data-v-8de3d352]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 20px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0}.toolbar-left[data-v-8de3d352]{display:flex;align-items:center;gap:20px}.stats-item[data-v-8de3d352]{display:flex;align-items:baseline;gap:6px}.stats-label[data-v-8de3d352]{font-size:12px;color:var(--text2)}.stats-value[data-v-8de3d352]{font-size:16px;font-weight:600;color:var(--text)}.stats-value.success[data-v-8de3d352]{color:var(--success)}.toolbar-right[data-v-8de3d352]{display:flex;gap:8px}.main-content[data-v-8de3d352]{flex:1;display:flex;min-height:0;overflow:hidden}.keyboard-panel[data-v-8de3d352]{flex:1;display:flex;flex-direction:column;padding:16px;overflow-y:auto;background:var(--bg)}.keyboard[data-v-8de3d352]{background:var(--bg2);border-radius:12px;padding:20px;border:1px solid var(--border);display:flex;flex-direction:column;gap:8px;flex-shrink:0}.keyboard-row[data-v-8de3d352]{display:flex;gap:6px}.key[data-v-8de3d352]{flex:1;min-height:90px;background:var(--bg3);border:2px solid var(--border);border-radius:8px;display:flex;flex-direction:column;padding:6px;cursor:pointer;transition:all .2s ease;position:relative}.key[data-v-8de3d352]:hover{border-color:var(--primary);background:var(--bg)}.key-populated[data-v-8de3d352]{background:var(--bg);border-color:var(--primary)}.key-selected[data-v-8de3d352]{background:var(--primary);border-color:var(--primary)}.key-selected .key-label[data-v-8de3d352],.key-selected .root-text[data-v-8de3d352],.key-selected .root-sub[data-v-8de3d352]{color:#fff}.key-label[data-v-8de3d352]{font-size:13px;font-weight:600;color:var(--text3);margin-bottom:4px}.key-roots[data-v-8de3d352]{flex:1;display:flex;flex-wrap:wrap;gap:2px;align-content:flex-start}.root-chip[data-v-8de3d352]{display:flex;align-items:center;background:var(--primary-bg);border-radius:4px;padding:1px 4px;font-size:11px}.root-text[data-v-8de3d352]{font-size:12px;color:var(--primary)}.root-sub[data-v-8de3d352]{font-size:10px;color:var(--success);margin-left:1px}.key-selected .root-chip[data-v-8de3d352]{background:#fff3}.more[data-v-8de3d352]{font-size:10px;color:var(--text3);padding:2px 4px}.key-count[data-v-8de3d352]{position:absolute;top:4px;right:6px;font-size:10px;background:var(--primary);color:#fff;padding:1px 6px;border-radius:10px}.key-selected .key-count[data-v-8de3d352]{background:#ffffff4d}.key-space[data-v-8de3d352]{min-height:50px;flex:none;width:50%;margin:0 auto}.roots-detail[data-v-8de3d352]{margin-top:16px;background:var(--bg2);border-radius:8px;border:1px solid var(--border);padding:16px}.detail-header[data-v-8de3d352]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.detail-header h3[data-v-8de3d352]{margin:0;font-size:14px;font-weight:500}.detail-header strong[data-v-8de3d352]{color:var(--primary);font-size:16px}.root-count[data-v-8de3d352]{font-size:12px;color:var(--text2);margin-left:8px;font-weight:400}.btn-close-detail[data-v-8de3d352]{width:28px;height:28px;border:none;background:transparent;color:var(--text2);font-size:18px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}.btn-close-detail[data-v-8de3d352]:hover{background:var(--bg3);color:var(--text)}.merged-section[data-v-8de3d352],.equiv-section[data-v-8de3d352]{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.section-label[data-v-8de3d352]{font-size:12px;color:var(--text2);margin-bottom:8px}.merged-list[data-v-8de3d352],.equiv-list[data-v-8de3d352]{display:flex;flex-wrap:wrap;gap:8px}.merged-item[data-v-8de3d352],.equiv-item[data-v-8de3d352]{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg3);border-radius:4px;font-size:12px}.merged-item.clickable[data-v-8de3d352],.equiv-item.clickable[data-v-8de3d352]{cursor:pointer;transition:all .15s}.merged-item.clickable[data-v-8de3d352]:hover,.equiv-item.clickable[data-v-8de3d352]:hover{background:var(--primary-bg)}.merged-target[data-v-8de3d352],.equiv-target[data-v-8de3d352]{font-weight:500;color:var(--purple)}.merged-arrow[data-v-8de3d352],.equiv-equal[data-v-8de3d352]{color:var(--text2)}.merged-source[data-v-8de3d352],.equiv-source[data-v-8de3d352]{color:var(--primary)}.merged-code[data-v-8de3d352],.equiv-code[data-v-8de3d352]{font-family:monospace;font-size:11px;color:var(--text3)}.btn-remove[data-v-8de3d352]{width:18px;height:18px;border:none;background:#f53f3f26;color:var(--danger);border-radius:50%;cursor:pointer;font-size:12px;line-height:1;margin-left:4px}.btn-remove[data-v-8de3d352]:hover{background:var(--danger);color:#fff}.roots-grid[data-v-8de3d352]{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.root-card[data-v-8de3d352]{display:flex;flex-direction:column;align-items:center;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:8px;position:relative;transition:all .15s}.root-card[data-v-8de3d352]:hover{border-color:var(--primary);cursor:pointer}.root-card.dragging[data-v-8de3d352]{opacity:.5;border-style:dashed}.root-char[data-v-8de3d352]{font-size:24px;line-height:1;margin-bottom:4px}.root-code[data-v-8de3d352]{font-family:monospace;font-size:12px}.root-code .main[data-v-8de3d352]{color:var(--primary);font-weight:600}.root-code .sub[data-v-8de3d352]{color:var(--success)}.root-code .supplement[data-v-8de3d352]{color:var(--warning)}.merged-badge[data-v-8de3d352]{font-size:11px;color:var(--primary);background:var(--primary-bg);padding:1px 4px;border-radius:3px;margin-top:4px;font-weight:500}.btn-delete[data-v-8de3d352]{position:absolute;top:4px;right:4px;width:18px;height:18px;border:none;background:transparent;color:var(--text3);border-radius:50%;cursor:pointer;font-size:14px;line-height:1;opacity:0;transition:all .15s}.root-card:hover .btn-delete[data-v-8de3d352]{opacity:1}.btn-delete[data-v-8de3d352]:hover{background:var(--danger);color:#fff}.no-selection-hint[data-v-8de3d352]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text2)}.no-selection-hint p[data-v-8de3d352]{margin:4px 0}.hint-sub[data-v-8de3d352]{font-size:13px;color:var(--text3)}.modal-overlay[data-v-8de3d352]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-8de3d352]{background:var(--bg2);border-radius:12px;border:1px solid var(--border);min-width:400px;max-width:80vw;max-height:80vh;overflow:hidden}.modal-header[data-v-8de3d352]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3[data-v-8de3d352]{margin:0;font-size:16px}.btn-close[data-v-8de3d352]{width:28px;height:28px;border:none;background:transparent;color:var(--text2);font-size:20px;cursor:pointer;border-radius:4px}.btn-close[data-v-8de3d352]:hover{background:var(--bg3)}.modal-body[data-v-8de3d352]{padding:20px}.modal-desc[data-v-8de3d352]{margin:0 0 12px;font-size:14px;color:var(--text);line-height:1.6}.modal-footer[data-v-8de3d352]{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.pua-font[data-v-8de3d352]{font-family:CHS-PUA,Noto Sans SC,Microsoft YaHei,PingFang SC,sans-serif!important}.btn[data-v-8de3d352]{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;font-size:13px;font-weight:500;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.btn-sm[data-v-8de3d352]{padding:4px 10px;font-size:12px}.btn-primary[data-v-8de3d352]{background:var(--primary);color:#fff}.btn-primary[data-v-8de3d352]:hover{filter:brightness(1.1)}.btn-outline[data-v-8de3d352]{background:transparent;border-color:var(--border);color:var(--text)}.btn-outline[data-v-8de3d352]:hover{border-color:var(--primary);color:var(--primary)}.btn-info[data-v-8de3d352]{background:#1890ff;color:#fff}.btn-info[data-v-8de3d352]:hover{background:#40a9ff}.split-page[data-v-2960441c]{display:flex;flex-direction:column;gap:16px;height:100%}.toolbar[data-v-2960441c]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 20px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.toolbar-left[data-v-2960441c]{display:flex;align-items:center;gap:12px}.title[data-v-2960441c]{font-size:16px;font-weight:600}.count[data-v-2960441c]{font-size:13px;color:var(--text2);background:var(--bg3);padding:4px 10px;border-radius:4px}.complete-info[data-v-2960441c]{font-size:13px;color:var(--success);background:#00b42a26;padding:4px 10px;border-radius:4px}.incomplete-info[data-v-2960441c]{font-size:13px;color:var(--warning);background:#ff7d0026;padding:4px 10px;border-radius:4px}.search-panel[data-v-2960441c]{background:var(--bg2);border-radius:8px;border:1px solid var(--border);padding:16px}.search-row[data-v-2960441c]{display:flex;gap:8px}.search-type[data-v-2960441c]{width:100px;flex-shrink:0}.search-input[data-v-2960441c]{flex:1}.table-container[data-v-2960441c]{flex:1;overflow:auto;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.data-table[data-v-2960441c]{font-size:13px}.data-table th[data-v-2960441c]{position:sticky;top:0;z-index:1}.main-row[data-v-2960441c]{cursor:pointer;transition:background .15s ease}.main-row[data-v-2960441c]:hover{background:var(--bg3)}.char-cell[data-v-2960441c]{font-size:20px;text-align:center;font-weight:500}.mono[data-v-2960441c]{font-family:SF Mono,Consolas,monospace;font-size:12px}.ids-cell[data-v-2960441c]{color:var(--text2)}.split-cell[data-v-2960441c]{vertical-align:middle}.split-cell .root-tag[data-v-2960441c]{display:inline-block;vertical-align:middle;margin:2px}.root-tag[data-v-2960441c]{display:inline-block;padding:1px 4px;background:var(--primary-bg);color:var(--primary);border-radius:3px;font-size:12px}.root-missing[data-v-2960441c]{background:#ff7d0026;color:var(--warning)}.root-equiv[data-v-2960441c]{background:#13c2c226;color:#13c2c2}.code-cell[data-v-2960441c]{font-family:monospace;font-size:12px}.char-code[data-v-2960441c]{color:var(--primary);font-weight:500}.no-code[data-v-2960441c]{color:var(--text3)}.status-tag[data-v-2960441c]{font-size:11px;padding:2px 6px;border-radius:4px}.status-complete[data-v-2960441c]{background:#00b42a26;color:var(--success)}.status-incomplete[data-v-2960441c]{background:#ff7d0026;color:var(--warning)}.expand-cell[data-v-2960441c]{text-align:center}.expand-icon[data-v-2960441c]{display:inline-block;transition:transform .2s ease;font-size:14px;color:var(--text3)}.expand-icon.expanded[data-v-2960441c]{transform:rotate(90deg)}.detail-row[data-v-2960441c]{background:var(--bg3)}.detail-row td[data-v-2960441c]{padding:0}.detail-content[data-v-2960441c]{padding:16px 20px;display:flex;gap:24px}.detail-section[data-v-2960441c]{flex:1}.detail-section h4[data-v-2960441c]{font-size:12px;color:var(--text2);margin-bottom:8px;font-weight:500}.root-codes[data-v-2960441c]{display:flex;flex-wrap:wrap;gap:8px}.root-code-item[data-v-2960441c]{display:flex;align-items:center;gap:4px;padding:6px 10px;background:var(--bg2);border-radius:6px;border:1px solid var(--border)}.root-code-item.missing[data-v-2960441c]{border-color:var(--warning);background:#ff7d001a}.root-code-item.equiv[data-v-2960441c]{border-color:#13c2c2;background:#13c2c21a}.equiv-badge[data-v-2960441c]{font-size:10px;color:#13c2c2;margin-left:2px}.root-code-item .root[data-v-2960441c]{font-size:16px}.root-code-item .arrow[data-v-2960441c]{color:var(--text3)}.root-code-item .code[data-v-2960441c]{font-family:monospace;color:var(--primary);font-weight:500}.tree-view pre[data-v-2960441c]{margin:0;padding:12px;background:var(--bg2);border-radius:6px;font-size:12px;overflow-x:auto}.pagination[data-v-2960441c]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.page-info[data-v-2960441c]{font-size:13px;color:var(--text2);min-width:80px;text-align:center}.empty-state[data-v-2960441c]{padding:60px 20px;text-align:center;color:var(--text2)}.empty-icon[data-v-2960441c]{font-size:48px;margin-bottom:12px;opacity:.5}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.rule-page[data-v-5121be73]{display:flex;flex-direction:column;height:100%;gap:12px}.toolbar[data-v-5121be73]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.toolbar-left[data-v-5121be73]{display:flex;align-items:center;gap:12px}.title[data-v-5121be73]{font-size:16px;font-weight:600}.tab-switch[data-v-5121be73]{display:flex;background:var(--bg3);border-radius:6px;padding:2px}.tab-btn[data-v-5121be73]{padding:6px 16px;font-size:13px;font-weight:500;background:transparent;border:none;border-radius:4px;color:var(--text2);cursor:pointer;transition:all .2s ease}.tab-btn[data-v-5121be73]:hover{color:var(--text)}.tab-btn.active[data-v-5121be73]{background:var(--primary);color:#fff}.count[data-v-5121be73]{font-size:13px;color:var(--text2);background:var(--bg3);padding:4px 10px;border-radius:4px}.toolbar-right[data-v-5121be73]{display:flex;gap:8px}.main-content[data-v-5121be73]{flex:1;display:flex;gap:12px;min-height:0}.node-panel[data-v-5121be73]{width:220px;background:var(--bg2);border-radius:8px;border:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.panel-title[data-v-5121be73]{padding:12px 16px;font-size:14px;font-weight:600;border-bottom:1px solid var(--border)}.node-list[data-v-5121be73]{flex:1;padding:12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.node-template[data-v-5121be73]{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border:2px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s ease;position:relative}.node-template[data-v-5121be73]:hover:not(.disabled){transform:translateY(-2px);box-shadow:var(--shadow)}.node-template.disabled[data-v-5121be73]{opacity:.5;cursor:not-allowed}.template-icon[data-v-5121be73]{font-size:20px;width:28px;text-align:center}.template-info[data-v-5121be73]{flex:1}.template-label[data-v-5121be73]{font-size:13px;font-weight:500}.template-desc[data-v-5121be73]{font-size:11px;color:var(--text3);margin-top:2px}.template-badge[data-v-5121be73]{position:absolute;top:4px;right:4px;font-size:10px;padding:2px 6px;background:var(--bg3);border-radius:4px;color:var(--text3)}.panel-hint[data-v-5121be73]{padding:12px;border-top:1px solid var(--border);font-size:12px;color:var(--text3)}.panel-hint p[data-v-5121be73]{margin:4px 0}.flow-wrapper[data-v-5121be73]{flex:1;background:var(--bg2);border-radius:8px;border:1px solid var(--border);overflow:hidden;position:relative}.rule-flow[data-v-5121be73]{width:100%;height:100%}.source-node[data-v-5121be73]{padding:10px 20px;border-radius:8px;min-width:80px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:all .2s ease;position:relative}.source-node[data-v-5121be73]:hover{transform:scale(1.02)}.source-node.start[data-v-5121be73]{background:#00b42a26;border:2px solid var(--success);color:var(--success)}.source-node.end[data-v-5121be73]{background:#f53f3f26;border:2px solid var(--danger);color:var(--danger)}.source-node.pick[data-v-5121be73]{background:var(--bg);border:2px solid var(--primary);color:var(--primary)}.condition-node[data-v-5121be73]{padding:10px 20px;border-radius:0;min-width:120px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:all .2s ease;position:relative;background:var(--bg);border:2px dashed var(--purple);color:var(--purple)}.condition-node[data-v-5121be73]:hover{transform:scale(1.02)}.node-icon[data-v-5121be73]{font-size:16px}.node-label[data-v-5121be73]{font-weight:500;font-size:12px;white-space:nowrap}.handle-target[data-v-5121be73],.handle-source[data-v-5121be73]{width:12px!important;height:12px!important;background:var(--primary)!important;border:2px solid var(--bg)!important}.handle-positive[data-v-5121be73]{width:12px!important;height:12px!important;background:var(--success)!important;border:2px solid var(--bg)!important}.handle-negative[data-v-5121be73]{width:12px!important;height:12px!important;background:var(--danger)!important;border:2px solid var(--bg)!important}.edit-panel[data-v-5121be73]{position:absolute;top:12px;right:12px;width:280px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow2);z-index:100}.edit-panel-header[data-v-5121be73]{padding:12px 16px;border-bottom:1px solid var(--border)}.edit-panel-header h3[data-v-5121be73]{margin:0;font-size:14px;font-weight:600}.edit-panel-body[data-v-5121be73]{padding:16px}.form-row[data-v-5121be73]{margin-bottom:12px}.form-row label[data-v-5121be73]{display:block;font-size:12px;color:var(--text2);margin-bottom:4px}.form-row select[data-v-5121be73],.form-row input[data-v-5121be73]{width:100%}.context-menu[data-v-5121be73]{position:fixed;background:var(--bg2);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow2);padding:4px 0;min-width:120px;z-index:10000}.context-menu-item[data-v-5121be73]{padding:8px 16px;cursor:pointer;font-size:13px;transition:background-color .15s ease}.context-menu-item[data-v-5121be73]:hover{background:var(--primary-bg)}.context-menu-item.danger[data-v-5121be73]{color:var(--danger)}.context-menu-item.danger[data-v-5121be73]:hover{background:#f53f3f1a}.vue-flow__controls{display:flex!important;flex-direction:column!important;gap:4px!important;background:var(--bg2)!important;border:1px solid var(--border)!important;border-radius:8px!important;padding:6px!important;box-shadow:var(--shadow)!important}.vue-flow__controls-button{width:28px!important;height:28px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;background:var(--bg)!important;border:1px solid var(--border)!important;border-radius:4px!important;color:var(--text)!important;cursor:pointer!important;transition:all .15s ease!important}.vue-flow__controls-button:hover{background:var(--primary-bg)!important;border-color:var(--primary)!important;color:var(--primary)!important}.vue-flow__controls-button svg{fill:currentColor!important;width:14px!important;height:14px!important}.vue-flow__node{border:none!important;padding:0!important;background:transparent!important;box-shadow:none!important}.vue-flow__edge-path{stroke-width:2!important}.vue-flow__edge-textbg{fill:var(--bg2)!important}.vue-flow__edge-text{font-size:11px!important;fill:var(--text2)!important}.vue-flow__handle{border-radius:50%!important}.code-page[data-v-fe71c4fa]{display:flex;flex-direction:column;gap:16px;height:100%}.toolbar[data-v-fe71c4fa]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 20px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.toolbar-left[data-v-fe71c4fa]{display:flex;align-items:center;gap:12px}.title[data-v-fe71c4fa]{font-size:16px;font-weight:600}.tab-switch[data-v-fe71c4fa]{display:flex;background:var(--bg3);border-radius:6px;padding:2px}.tab-btn[data-v-fe71c4fa]{padding:6px 16px;font-size:13px;font-weight:500;background:transparent;border:none;border-radius:4px;color:var(--text2);cursor:pointer;transition:all .2s ease}.tab-btn[data-v-fe71c4fa]:hover{color:var(--text)}.tab-btn.active[data-v-fe71c4fa]{background:var(--primary);color:#fff}.count[data-v-fe71c4fa]{font-size:13px;color:var(--text2);background:var(--bg3);padding:4px 10px;border-radius:4px}.encoded-info[data-v-fe71c4fa]{font-size:13px;color:var(--success);background:#00b42a26;padding:4px 10px;border-radius:4px}.toolbar-right[data-v-fe71c4fa]{display:flex;align-items:center;gap:8px}.search-panel[data-v-fe71c4fa]{padding:16px;background:var(--bg2);border-radius:8px;border:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.search-input[data-v-fe71c4fa]{width:100%}.filter-group[data-v-fe71c4fa]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-label[data-v-fe71c4fa]{font-size:13px;color:var(--text2);margin-right:4px}.filter-btn[data-v-fe71c4fa]{font-size:12px;padding:4px 12px;border-radius:4px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);cursor:pointer;transition:all .15s ease}.filter-btn[data-v-fe71c4fa]:hover{background:var(--bg1);border-color:var(--primary)}.filter-btn.active[data-v-fe71c4fa]{background:var(--primary-bg);color:var(--primary);border-color:var(--primary)}.filter-btn.filter-complete.active[data-v-fe71c4fa]{background:#00b42a26;color:var(--success);border-color:var(--success)}.filter-btn.filter-missing.active[data-v-fe71c4fa]{background:#f53f3f26;color:var(--danger);border-color:var(--danger)}.table-container[data-v-fe71c4fa]{flex:1;overflow:auto;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.data-table[data-v-fe71c4fa]{font-size:13px}.data-table th[data-v-fe71c4fa]{position:sticky;top:0;z-index:1}.char-cell[data-v-fe71c4fa]{font-size:20px;text-align:center;font-weight:500}.word-cell[data-v-fe71c4fa]{font-size:18px;font-weight:500}.mono[data-v-fe71c4fa]{font-family:SF Mono,Consolas,monospace;font-size:12px}.split-cell[data-v-fe71c4fa]{letter-spacing:1px}.char-group[data-v-fe71c4fa]{display:inline-flex;align-items:center}.char-sep[data-v-fe71c4fa]{color:var(--text3);margin:0 4px}.root-part[data-v-fe71c4fa]{margin-right:2px;padding:1px 2px;border-radius:2px}.root-part.root-has-code[data-v-fe71c4fa]{color:var(--success);background:#00b42a1a}.root-part.root-no-code[data-v-fe71c4fa]{color:var(--danger);background:#f53f3f1a}.code-cell[data-v-fe71c4fa]{font-family:monospace;font-size:13px}.char-code[data-v-fe71c4fa]{color:var(--primary);font-weight:500;background:var(--primary-bg);padding:2px 6px;border-radius:4px}.no-code[data-v-fe71c4fa]{color:var(--text3)}.freq-cell[data-v-fe71c4fa]{font-family:SF Mono,Consolas,monospace;font-size:12px;text-align:right;color:var(--text2)}.status-badge[data-v-fe71c4fa]{font-size:11px;padding:2px 6px;border-radius:4px}.status-badge.status-complete[data-v-fe71c4fa]{background:#00b42a26;color:var(--success)}.status-badge.status-missing[data-v-fe71c4fa]{background:#f53f3f26;color:var(--danger)}.clickable-row[data-v-fe71c4fa]{cursor:pointer;transition:background-color .15s ease}.clickable-row[data-v-fe71c4fa]:hover{background:var(--bg3)!important}.pagination[data-v-fe71c4fa]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.page-info[data-v-fe71c4fa]{font-size:13px;color:var(--text2);min-width:80px;text-align:center}.empty-state[data-v-fe71c4fa]{padding:60px 20px;text-align:center;color:var(--text2)}.empty-icon[data-v-fe71c4fa]{font-size:48px;margin-bottom:12px;opacity:.5}.keyboard-heatmap[data-v-73f0fd78]{padding:16px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.heatmap-title[data-v-73f0fd78]{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.keyboard-container[data-v-73f0fd78]{display:flex;flex-direction:column;gap:6px;align-items:stretch;width:100%}.keyboard-row[data-v-73f0fd78]{display:flex;gap:6px;justify-content:center}.keyboard-row[data-v-73f0fd78]:nth-child(2){transform:translate(calc(1.6 * (52px + 6px)))}.keyboard-row[data-v-73f0fd78]:nth-child(3){transform:translate(49.3px)}.keyboard-row[data-v-73f0fd78]:nth-child(4){transform:translate(52.2px)}.key[data-v-73f0fd78]{flex:1;max-width:52px;min-width:32px;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px;box-sizing:border-box;border-radius:6px;font-family:SF Mono,Consolas,monospace;transition:transform .15s ease;cursor:default}.key[data-v-73f0fd78]:hover{transform:scale(1.1);z-index:1;position:relative}.key-label[data-v-73f0fd78]{font-size:clamp(10px,2vw,14px);font-weight:600;line-height:1}.key-usage[data-v-73f0fd78]{display:inline-flex;align-items:center;justify-content:center;max-width:calc(100% - 2px);padding:2px 4px;border-radius:999px;border:1px solid var(--key-chip-border);background:linear-gradient(180deg,var(--key-chip-bg-start),var(--key-chip-bg-end));box-shadow:inset 0 1px 0 var(--key-chip-highlight),0 4px 10px -8px var(--key-chip-shadow);color:var(--key-chip-color);font-size:clamp(7px,1.35vw,9px);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em;line-height:1;white-space:nowrap}.key-space[data-v-73f0fd78]{flex:0 0 auto;width:50%;max-width:400px;min-width:200px;aspect-ratio:auto;height:44px;padding:0 16px}.space-content[data-v-73f0fd78]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:100%}.hand-stats[data-v-73f0fd78]{min-width:92px;flex:0 0 auto}.space-center[data-v-73f0fd78]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-width:0}.space-center .key-label[data-v-73f0fd78]{font-size:14px;font-weight:600}.space-center .key-usage[data-v-73f0fd78]{font-size:10px;padding:3px 8px}.space-row[data-v-73f0fd78]{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:4px}.usage-card[data-v-73f0fd78]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px 6px 12px;min-width:0;border-radius:999px;border:1px solid var(--usage-border);background:linear-gradient(135deg,var(--usage-bg-start),var(--usage-bg-end)),var(--bg2);box-shadow:inset 0 1px #ffffff73,0 10px 24px -18px var(--usage-shadow);transition:transform .18s ease,box-shadow .18s ease}.usage-card[data-v-73f0fd78]:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffffff80,0 14px 26px -18px var(--usage-shadow)}.usage-name[data-v-73f0fd78]{font-size:13px;font-weight:500;color:var(--text2)}.usage-percent[data-v-73f0fd78]{font-size:13px;font-weight:700;color:var(--usage-accent);font-family:SF Mono,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:.02em;padding:3px 9px;border-radius:999px;background:var(--usage-chip-bg);box-shadow:inset 0 1px #fff6}.legend-container[data-v-73f0fd78]{display:flex;flex-direction:column;gap:8px;margin-top:16px}.legend[data-v-73f0fd78]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2)}.legend-label[data-v-73f0fd78]{min-width:50px}.legend-bar[data-v-73f0fd78]{flex:1;max-width:200px;height:12px;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.legend-gradient-keys[data-v-73f0fd78]{height:100%;background:linear-gradient(to right,var(--bg3) 0%,hsl(200,50%,70%) 20%,hsl(205,60%,60%) 40%,hsl(210,75%,55%) 60%,hsl(215,90%,48%) 80%,hsl(220,100%,40%) 100%)}.legend-gradient-space[data-v-73f0fd78]{height:100%;background:linear-gradient(to right,var(--bg3) 0%,hsl(165,60%,50%) 20%,hsl(170,75%,45%) 40%,hsl(175,90%,42%) 60%,hsl(180,95%,38%) 80%,hsl(180,100%,35%) 100%)}.legend-min[data-v-73f0fd78],.legend-max[data-v-73f0fd78]{font-size:11px;min-width:40px}.legend-max[data-v-73f0fd78]{text-align:right}.finger-distribution[data-v-73f0fd78]{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.finger-title[data-v-73f0fd78]{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.finger-layout[data-v-73f0fd78]{display:grid;grid-template-columns:minmax(100px,120px) 48px minmax(0,1fr);grid-template-rows:repeat(2,auto);gap:10px 14px;align-items:stretch}.finger-item[data-v-73f0fd78]{width:100%;white-space:nowrap}.finger-thumb[data-v-73f0fd78]{grid-column:1;grid-row:1 / span 2;flex-direction:column;align-items:flex-start;justify-content:center;padding:12px 14px;border-radius:18px}.finger-thumb .usage-name[data-v-73f0fd78]{font-size:14px}.finger-thumb .usage-percent[data-v-73f0fd78]{font-size:15px;padding-inline:10px}.finger-hand-section[data-v-73f0fd78]{display:contents}.finger-hand-label[data-v-73f0fd78]{display:flex;align-items:center;justify-content:flex-start;width:48px;min-width:48px;font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.08em}.finger-hand-row[data-v-73f0fd78]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px}@media (max-width: 720px){.key-space[data-v-73f0fd78]{width:100%;max-width:none;min-width:0;height:auto;padding:10px 12px}.space-content[data-v-73f0fd78]{flex-wrap:wrap;justify-content:center}.space-center[data-v-73f0fd78]{order:-1;width:100%}.hand-stats[data-v-73f0fd78]{min-width:0;flex:1 1 140px}.finger-layout[data-v-73f0fd78]{grid-template-columns:1fr}.finger-thumb[data-v-73f0fd78]{grid-column:auto;grid-row:auto;flex-direction:row;align-items:center;border-radius:999px;padding:6px 8px 6px 12px}.finger-thumb .usage-name[data-v-73f0fd78],.finger-thumb .usage-percent[data-v-73f0fd78]{font-size:13px}.finger-hand-section[data-v-73f0fd78]{display:flex;flex-direction:column;gap:6px}.finger-hand-label[data-v-73f0fd78]{width:auto;min-width:0}.finger-hand-row[data-v-73f0fd78]{grid-template-columns:repeat(2,minmax(0,1fr))}}.evaluate-page[data-v-5d89d2f0]{display:flex;flex-direction:column;gap:20px;padding:4px}.toolbar[data-v-5d89d2f0]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:16px 20px;background:linear-gradient(135deg,var(--bg2) 0%,var(--bg1) 100%);border-radius:16px;border:1px solid rgba(255,255,255,.05);box-shadow:0 4px 20px #00000014}.title[data-v-5d89d2f0]{font-size:16px;font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.toolbar-right[data-v-5d89d2f0]{display:flex;align-items:center;gap:20px}.config-group[data-v-5d89d2f0]{display:flex;align-items:center;gap:8px}.config-group label[data-v-5d89d2f0]{font-size:13px;color:var(--text2);font-weight:500}.config-input[data-v-5d89d2f0]{width:80px;padding:8px 12px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:var(--bg);color:var(--text);font-size:13px;transition:all .2s ease}.config-input[data-v-5d89d2f0]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f133}.tabs[data-v-5d89d2f0]{display:flex;gap:8px;padding:6px;background:var(--bg2);border-radius:14px;border:1px solid rgba(255,255,255,.05);box-shadow:inset 0 1px 3px #0000001a;position:relative}.tab-btn[data-v-5d89d2f0]{flex:1;padding:10px 20px;border:none;border-radius:10px;background:transparent;color:var(--text2);font-size:13px;font-weight:500;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.tab-btn[data-v-5d89d2f0]:hover{background:#ffffff0d;color:var(--text)}.tab-btn.active[data-v-5d89d2f0]{background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);color:#fff;box-shadow:0 4px 12px #6366f166}.sub-tabs[data-v-5d89d2f0]{display:flex;gap:4px;padding:4px;background:var(--bg3);border-radius:10px;margin-bottom:16px;width:fit-content}.sub-tab-btn[data-v-5d89d2f0]{padding:8px 16px;border:none;border-radius:8px;background:transparent;color:var(--text2);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.sub-tab-btn[data-v-5d89d2f0]:hover{background:#ffffff0d;color:var(--text)}.sub-tab-btn.active[data-v-5d89d2f0]{background:var(--primary);color:#fff;box-shadow:0 2px 8px #6366f14d}.action-bar[data-v-5d89d2f0]{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--bg2);border-radius:14px;border:1px solid rgba(255,255,255,.05);margin-bottom:8px}.hint[data-v-5d89d2f0]{font-size:13px;color:var(--text3)}.result-panel[data-v-5d89d2f0]{display:flex;flex-direction:column;gap:20px}.table-container[data-v-5d89d2f0]{overflow-x:auto;background:var(--bg2);border-radius:16px;border:1px solid rgba(255,255,255,.05);box-shadow:0 4px 24px #0000000f}.eval-table[data-v-5d89d2f0]{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;text-align:center}.eval-table th[data-v-5d89d2f0],.eval-table td[data-v-5d89d2f0]{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05);white-space:nowrap;min-width:44px}.eval-table th[data-v-5d89d2f0]{background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,transparent 100%);font-weight:600;font-size:12px;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:2}.eval-table th[data-v-5d89d2f0]:first-child{border-radius:16px 0 0}.eval-table th[data-v-5d89d2f0]:last-child{border-radius:0 16px 0 0}.eval-table .sticky-col[data-v-5d89d2f0]{position:sticky;left:0;background:var(--bg2);z-index:1;text-align:left;font-weight:600;min-width:80px}.eval-table th.sticky-col[data-v-5d89d2f0]{z-index:3}.eval-table .col-ks-eq[data-v-5d89d2f0]{background:#818cf81a}.eval-table td.col-ks-eq.clickable[data-v-5d89d2f0]:hover{background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff!important}.eval-table .col-select[data-v-5d89d2f0]{color:#f43f5e!important;font-weight:700}.eval-table td.col-select.clickable[data-v-5d89d2f0]{color:#f43f5e!important}.eval-table td.col-select.clickable[data-v-5d89d2f0]:hover{background:linear-gradient(135deg,#f43f5e,#ec4899);color:#fff!important}.eval-table .col-simple-collision[data-v-5d89d2f0]{color:#f43f5e!important;font-weight:700}.eval-table td.col-simple-collision.clickable[data-v-5d89d2f0]{color:#f43f5e!important}.eval-table td.col-simple-collision.clickable[data-v-5d89d2f0]:hover{background:linear-gradient(135deg,#f43f5e,#ec4899);color:#fff!important}.eval-table .row-highlight[data-v-5d89d2f0]{background:#6366f108}.eval-table .row-subtotal[data-v-5d89d2f0]{background:linear-gradient(90deg,rgba(99,102,241,.08) 0%,transparent 100%);font-weight:600}.eval-table .row-total[data-v-5d89d2f0]{background:linear-gradient(90deg,rgba(99,102,241,.12) 0%,transparent 100%);font-weight:700;font-size:14px}.eval-table .row-weight[data-v-5d89d2f0]{background:var(--bg3);font-size:12px;color:var(--text);font-weight:500}.eval-table .row-weight td[data-v-5d89d2f0]{color:var(--text2)}.eval-table td.clickable[data-v-5d89d2f0]{cursor:pointer;color:var(--primary);font-weight:600;transition:all .2s ease}.eval-table td.clickable[data-v-5d89d2f0]:hover{background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);color:#fff;border-radius:6px;transform:scale(1.08);box-shadow:0 2px 8px #6366f166}.section-title[data-v-5d89d2f0]{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.heatmap-container[data-v-5d89d2f0]{background:var(--bg2);border-radius:16px;border:1px solid rgba(255,255,255,.05);padding:20px;box-shadow:0 4px 24px #0000000f}.heatmap-header[data-v-5d89d2f0]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.heatmap-header .section-title[data-v-5d89d2f0]{margin-bottom:0}.checkbox-label[data-v-5d89d2f0]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox][data-v-5d89d2f0]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.th-checkbox-label[data-v-5d89d2f0]{display:inline-flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:inherit}.th-checkbox-label input[type=checkbox][data-v-5d89d2f0]{width:12px;height:12px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.scheme-title-row[data-v-5d89d2f0]{background:linear-gradient(135deg,#6366f114,#8b5cf60d)}.scheme-title-cell[data-v-5d89d2f0]{padding:16px!important;text-align:center!important;border-radius:16px 16px 0 0}.scheme-title-content[data-v-5d89d2f0]{display:flex;align-items:baseline;justify-content:center;gap:8px}.scheme-name-text[data-v-5d89d2f0]{font-size:20px;font-weight:700;color:var(--text);cursor:pointer;transition:color .2s ease}.scheme-name-text[data-v-5d89d2f0]:hover{color:var(--primary)}.scheme-name-input[data-v-5d89d2f0]{font-size:20px;font-weight:700;color:var(--text);background:var(--bg);border:2px solid var(--primary);border-radius:8px;padding:4px 12px;outline:none;min-width:200px}.scheme-subtitle[data-v-5d89d2f0]{font-size:14px;font-weight:500;color:var(--text2)}.edit-icon[data-v-5d89d2f0]{color:var(--text3);cursor:pointer;transition:color .2s ease}.edit-icon[data-v-5d89d2f0]:hover{color:var(--primary)}.upload-section[data-v-5d89d2f0]{display:flex;flex-direction:column;gap:12px}.upload-area[data-v-5d89d2f0]{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;padding:20px 24px;background:linear-gradient(135deg,var(--bg2) 0%,var(--bg1) 100%);border:2px dashed rgba(99,102,241,.3);border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-area[data-v-5d89d2f0]:hover{border-color:var(--primary);background:linear-gradient(135deg,#6366f10d,#8b5cf60d)}.upload-icon[data-v-5d89d2f0]{font-size:28px;opacity:.7}.upload-text[data-v-5d89d2f0]{text-align:center}.upload-text p[data-v-5d89d2f0]{margin:6px 0}.file-name[data-v-5d89d2f0]{font-weight:600;color:var(--primary);font-size:15px}.file-info[data-v-5d89d2f0]{font-size:13px;color:var(--text2)}.upload-hint[data-v-5d89d2f0]{font-size:12px;color:var(--text3)}.rule-config[data-v-5d89d2f0]{padding:16px 20px;background:var(--bg2);border-radius:12px;border:1px solid rgba(255,255,255,.05)}.rule-title[data-v-5d89d2f0]{font-size:14px;font-weight:600;color:var(--text);margin:0 0 8px}.rule-hint[data-v-5d89d2f0]{font-size:12px;color:var(--text3);margin:0 0 16px;line-height:1.5}.rule-inputs[data-v-5d89d2f0]{display:flex;flex-direction:column;gap:12px}.rule-item[data-v-5d89d2f0]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rule-item label[data-v-5d89d2f0]{font-size:13px;font-weight:500;color:var(--text2);min-width:70px}.rule-input[data-v-5d89d2f0]{flex:0 0 140px;padding:8px 12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:var(--bg);color:var(--text);font-size:13px;font-family:SF Mono,JetBrains Mono,Consolas,monospace;transition:all .2s ease}.rule-input[data-v-5d89d2f0]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f133}.rule-input[data-v-5d89d2f0]::placeholder{color:var(--text3)}.rule-example[data-v-5d89d2f0]{font-size:12px;color:var(--text3);font-style:italic}.empty-state[data-v-5d89d2f0]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;color:var(--text2);background:var(--bg2);border-radius:16px;border:1px solid rgba(255,255,255,.05)}.empty-icon[data-v-5d89d2f0]{font-size:64px;margin-bottom:16px;opacity:.4}.btn[data-v-5d89d2f0]{padding:10px 20px;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);border:none}.btn-primary[data-v-5d89d2f0]{background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);color:#fff;box-shadow:0 4px 12px #6366f14d}.btn-primary[data-v-5d89d2f0]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.btn-primary[data-v-5d89d2f0]:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary[data-v-5d89d2f0]{background:var(--bg3);color:var(--text);border:1px solid rgba(255,255,255,.1)}.btn-secondary[data-v-5d89d2f0]:hover{background:var(--bg1);border-color:#fff3}.modal-overlay[data-v-5d89d2f0]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-5d89d2f0]{background:var(--bg2);border-radius:12px;max-width:900px;width:90%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border);box-shadow:0 20px 40px #0003}.modal-header[data-v-5d89d2f0]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg3)}.modal-header h3[data-v-5d89d2f0]{margin:0;font-size:15px;font-weight:600;color:var(--text)}.modal-close[data-v-5d89d2f0]{width:28px;height:28px;border:none;background:transparent;font-size:20px;cursor:pointer;color:var(--text2);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.modal-close[data-v-5d89d2f0]:hover{background:#f43f5e;color:#fff}.modal-body[data-v-5d89d2f0]{padding:16px 20px;overflow-y:auto;background:var(--bg2)}.modal-search[data-v-5d89d2f0]{margin-bottom:12px}.modal-search .search-input[data-v-5d89d2f0]{width:100%;max-width:260px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg1);color:var(--text1);font-size:13px;outline:none;transition:border-color .2s}.modal-search .search-input[data-v-5d89d2f0]:focus{border-color:var(--accent)}.modal-search .search-input[data-v-5d89d2f0]::placeholder{color:var(--text3)}.detail-table[data-v-5d89d2f0]{width:100%;border-collapse:collapse;font-size:13px}.detail-table th[data-v-5d89d2f0],.detail-table td[data-v-5d89d2f0]{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border)}.detail-table th[data-v-5d89d2f0]{background:var(--bg3);font-weight:600;font-size:12px;color:var(--text2)}.detail-table tr[data-v-5d89d2f0]:hover{background:var(--bg3)}.detail-table tr.is-lack[data-v-5d89d2f0]{background:#f43f5e14}.detail-table tr.is-lack[data-v-5d89d2f0]:hover{background:#f43f5e1f}.detail-table .char-col[data-v-5d89d2f0]{font-size:18px;text-align:center;font-weight:500}.detail-table .primary-char[data-v-5d89d2f0]{font-size:14px;color:var(--text3);margin-left:4px}.detail-table .code-col[data-v-5d89d2f0]{font-family:SF Mono,JetBrains Mono,Consolas,monospace;color:var(--primary);font-weight:500}.pagination[data-v-5d89d2f0]{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px 0;margin-top:16px;border-top:1px solid var(--border);flex-wrap:wrap}.page-btn[data-v-5d89d2f0]{padding:6px 12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:var(--bg3);color:var(--text);font-size:13px;cursor:pointer;transition:all .2s ease}.page-btn[data-v-5d89d2f0]:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}.page-btn[data-v-5d89d2f0]:disabled{opacity:.4;cursor:not-allowed}.page-info[data-v-5d89d2f0]{font-size:13px;color:var(--text2);font-weight:500;margin:0 8px}.page-jump[data-v-5d89d2f0]{display:flex;align-items:center;gap:8px;margin-left:16px}.page-input[data-v-5d89d2f0]{width:60px;padding:6px 10px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:var(--bg);color:var(--text);font-size:13px;text-align:center}.page-input[data-v-5d89d2f0]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f133}.page-input[data-v-5d89d2f0]::-webkit-outer-spin-button,.page-input[data-v-5d89d2f0]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.page-input[type=number][data-v-5d89d2f0]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.config-card[data-v-5d89d2f0]{background:linear-gradient(135deg,var(--bg2) 0%,var(--bg1) 100%);border-radius:16px;border:2px solid rgba(99,102,241,.3);box-shadow:0 4px 20px #6366f11a;overflow:hidden;transition:all .3s ease}.config-card[data-v-5d89d2f0]:hover{border-color:#6366f180;box-shadow:0 6px 24px #6366f126}.config-card-header[data-v-5d89d2f0]{display:flex;align-items:center;gap:10px;padding:14px 20px;background:linear-gradient(90deg,#6366f126,#8b5cf614);border-bottom:1px solid rgba(99,102,241,.2);color:var(--text);font-weight:600;font-size:14px}.config-card-header[data-v-5d89d2f0] svg{color:var(--primary)}.config-hint[data-v-5d89d2f0]{margin-left:auto;font-size:12px;color:var(--text3);font-weight:400}.config-card-body[data-v-5d89d2f0]{padding:20px;display:flex;flex-direction:column;gap:20px}.config-item[data-v-5d89d2f0]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}.config-label[data-v-5d89d2f0]{display:flex;flex-direction:column;gap:4px;flex:1;min-width:200px}.config-name[data-v-5d89d2f0]{font-size:15px;font-weight:600;color:var(--text)}.config-desc[data-v-5d89d2f0]{font-size:12px;color:var(--text);line-height:1.5}.config-value[data-v-5d89d2f0]{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.select-keys-display[data-v-5d89d2f0]{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg);border-radius:10px;border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all .2s ease}.select-keys-display[data-v-5d89d2f0]:hover{border-color:var(--primary);background:#6366f10d}.select-keys-list[data-v-5d89d2f0]{display:flex;gap:8px;flex-wrap:wrap}.select-key-badge[data-v-5d89d2f0]{display:inline-flex;align-items:center;padding:4px 10px;background:var(--bg2);border-radius:6px;font-size:13px;font-weight:600;color:var(--text2);font-family:SF Mono,JetBrains Mono,Consolas,monospace;border:1px solid rgba(255,255,255,.05)}.select-key-badge.key-primary[data-v-5d89d2f0]{background:linear-gradient(135deg,#6366f133,#8b5cf633);color:var(--primary);border-color:#6366f14d}.select-key-badge.key-secondary[data-v-5d89d2f0]{background:linear-gradient(135deg,#f43f5e26,#ec489926);color:#f43f5e;border-color:#f43f5e4d}.select-keys-edit[data-v-5d89d2f0]{display:flex;align-items:center;gap:8px}.select-keys-input[data-v-5d89d2f0]{width:220px;padding:8px 12px;background:var(--bg);border:2px solid var(--primary);border-radius:8px;color:var(--text);font-size:14px;font-family:SF Mono,JetBrains Mono,Consolas,monospace;outline:none;transition:all .2s ease}.select-keys-input[data-v-5d89d2f0]:focus{box-shadow:0 0 0 3px #6366f133}.edit-hint[data-v-5d89d2f0]{font-size:11px;color:var(--text3);font-style:italic}.btn-icon[data-v-5d89d2f0]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;background:transparent}.btn-icon[data-v-5d89d2f0]:hover{transform:scale(1.05)}.btn-edit[data-v-5d89d2f0]{color:var(--text3)}.btn-edit[data-v-5d89d2f0]:hover{background:#6366f11a;color:var(--primary)}.btn-confirm[data-v-5d89d2f0]{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-confirm[data-v-5d89d2f0]:hover{box-shadow:0 2px 8px #10b98166}.btn-cancel[data-v-5d89d2f0]{background:linear-gradient(135deg,#f43f5e,#e11d48);color:#fff}.btn-cancel[data-v-5d89d2f0]:hover{box-shadow:0 2px 8px #f43f5e66}.max-code-control[data-v-5d89d2f0]{display:flex;align-items:center;gap:12px;padding:6px;background:var(--bg);border-radius:10px;border:1px solid rgba(255,255,255,.1)}.btn-step[data-v-5d89d2f0]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:var(--bg2);color:var(--text);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-step[data-v-5d89d2f0]:hover:not(:disabled){background:var(--primary);color:#fff}.btn-step[data-v-5d89d2f0]:disabled{opacity:.4;cursor:not-allowed}.max-code-value[data-v-5d89d2f0]{min-width:60px;text-align:center;font-size:15px;font-weight:600;color:var(--text);font-family:SF Mono,JetBrains Mono,Consolas,monospace}.select-keys-section[data-v-5d89d2f0]{flex-direction:column;align-items:flex-start}.select-keys-editor[data-v-5d89d2f0]{width:100%;align-items:flex-start}.select-keys-grid[data-v-5d89d2f0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;width:100%}.select-key-item[data-v-5d89d2f0]{background:var(--bg);border-radius:10px;border:1px solid rgba(255,255,255,.1);overflow:hidden;transition:all .2s ease}.select-key-item[data-v-5d89d2f0]:hover{border-color:#6366f14d}.select-key-display[data-v-5d89d2f0]{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;transition:all .2s ease}.select-key-display[data-v-5d89d2f0]:hover{background:#6366f10d}.select-key-label[data-v-5d89d2f0]{font-size:12px;font-weight:600;color:var(--text);min-width:32px}.select-key-value[data-v-5d89d2f0]{flex:1;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:14px;font-weight:600;color:var(--text);text-align:center}.select-key-value.multi-keys[data-v-5d89d2f0]{color:var(--primary);background:linear-gradient(135deg,#6366f11a,#8b5cf61a);padding:2px 8px;border-radius:4px}.select-key-edit-row[data-v-5d89d2f0]{display:flex;align-items:center;gap:6px;padding:8px}.select-key-input[data-v-5d89d2f0]{flex:1;width:60px;padding:6px 8px;background:var(--bg2);border:2px solid var(--primary);border-radius:6px;color:var(--text);font-size:13px;font-family:SF Mono,JetBrains Mono,Consolas,monospace;outline:none}.btn-icon-sm[data-v-5d89d2f0]{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.add-position[data-v-5d89d2f0]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px;cursor:pointer;background:#6366f10d;border:2px dashed rgba(99,102,241,.3);min-height:60px}.add-position[data-v-5d89d2f0]:hover{background:#6366f11a;border-color:#6366f180}.add-icon[data-v-5d89d2f0]{font-size:20px;font-weight:600;color:var(--primary)}.add-text[data-v-5d89d2f0]{font-size:12px;color:var(--text)}.select-keys-actions[data-v-5d89d2f0]{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.btn-remove[data-v-5d89d2f0]{padding:4px 10px;font-size:11px;color:var(--text);background:var(--bg);border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;transition:all .2s ease}.btn-remove[data-v-5d89d2f0]:hover{color:#f43f5e;border-color:#f43f5e4d;background:#f43f5e0d}.expanded-row[data-v-5d89d2f0]{background:#6366f114!important}.debug-expand-row>td[data-v-5d89d2f0]{padding:0!important;background:#00000026}.debug-detail[data-v-5d89d2f0]{padding:10px 14px}.debug-summary[data-v-5d89d2f0]{font-size:12px;color:var(--text-secondary, #94a3b8);margin-bottom:8px}.debug-summary b[data-v-5d89d2f0]{color:var(--text, #e2e8f0)}.debug-table[data-v-5d89d2f0]{width:100%;border-collapse:collapse;font-size:11px}.debug-table th[data-v-5d89d2f0]{padding:4px 6px;text-align:center;font-weight:600;color:var(--text-secondary, #94a3b8);border-bottom:1px solid rgba(255,255,255,.1);white-space:nowrap}.debug-table td[data-v-5d89d2f0]{padding:4px 6px;text-align:center;font-variant-numeric:tabular-nums;border-bottom:1px solid rgba(255,255,255,.05)}.debug-table .mono[data-v-5d89d2f0]{font-family:SF Mono,Cascadia Code,Fira Code,monospace;letter-spacing:.5px}.debug-table .debug-total[data-v-5d89d2f0]{font-weight:700;color:#818cf8}.debug-raw[data-v-5d89d2f0]{color:var(--text-secondary, #64748b);font-size:10px}.debug-footer[data-v-5d89d2f0]{margin-top:8px;font-size:11px;color:var(--text-secondary, #94a3b8);text-align:right}.debug-footer b[data-v-5d89d2f0]{color:#818cf8}.practice-page[data-v-7b76ccde]{display:flex;flex-direction:column;height:100%;gap:12px;padding:16px}.tabs-header[data-v-7b76ccde]{display:flex;gap:4px;padding:4px;background:var(--bg2);border-radius:10px;border:1px solid var(--border)}.tab-btn[data-v-7b76ccde]{flex:1;padding:10px 16px;font-size:14px;font-weight:500;color:var(--text2);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.tab-btn[data-v-7b76ccde]:hover{color:var(--text);background:var(--bg3)}.tab-btn.active[data-v-7b76ccde]{color:#fff;background:var(--primary)}.tab-btn.active[data-v-7b76ccde]:hover{background:var(--primary-light)}.progress-header[data-v-7b76ccde]{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.progress-info[data-v-7b76ccde]{display:flex;align-items:center;gap:8px}.header-actions[data-v-7b76ccde]{display:flex;align-items:center;gap:12px}.hint-toggle[data-v-7b76ccde]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text3);cursor:pointer;-webkit-user-select:none;user-select:none}.hint-toggle input[data-v-7b76ccde]{width:14px;height:14px;cursor:pointer;accent-color:var(--primary)}.hint-toggle[data-v-7b76ccde]:hover{color:var(--text2)}.progress-text[data-v-7b76ccde]{font-size:13px;font-weight:500;color:var(--text2);font-variant-numeric:tabular-nums}.reset-btn[data-v-7b76ccde]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text3);border-radius:6px;cursor:pointer;transition:all .2s ease}.reset-btn[data-v-7b76ccde]:hover{background:var(--bg3);color:var(--text2)}.action-btn[data-v-7b76ccde]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text3);border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:13px;font-weight:600}.action-btn[data-v-7b76ccde]:hover{background:var(--bg3);color:var(--text2)}.action-btn.active[data-v-7b76ccde]{color:var(--primary);background:var(--primary-bg)}.action-btn.danger[data-v-7b76ccde]:hover{background:color-mix(in srgb,var(--danger) 10%,var(--bg3));color:var(--danger)}.font-setting[data-v-7b76ccde]{position:relative}.font-input-popup[data-v-7b76ccde]{position:absolute;top:calc(100% + 6px);right:0;display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:10;white-space:nowrap}.font-input[data-v-7b76ccde]{width:860px;padding:5px 10px;font-size:13px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);outline:none;transition:border-color .2s}.font-input[data-v-7b76ccde]:focus{border-color:var(--primary)}.font-apply-btn[data-v-7b76ccde]{padding:5px 10px;font-size:12px;font-weight:500;color:#fff;background:var(--primary);border:none;border-radius:5px;cursor:pointer;transition:background .2s}.font-apply-btn[data-v-7b76ccde]:hover{background:color-mix(in srgb,var(--primary) 85%,black)}.font-clear-btn[data-v-7b76ccde]{padding:5px 10px;font-size:12px;font-weight:500;color:var(--text2);background:var(--bg3);border:none;border-radius:5px;cursor:pointer;transition:background .2s}.font-clear-btn[data-v-7b76ccde]:hover{background:color-mix(in srgb,var(--danger) 10%,var(--bg3));color:var(--danger)}.progress-bar[data-v-7b76ccde]{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden}.progress-fill[data-v-7b76ccde]{height:100%;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 70%,white));border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1)}.practice-area[data-v-7b76ccde]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:48px 24px;background:var(--bg2);border-radius:12px;border:1px solid var(--border);transition:all .3s ease}.practice-area.wrong[data-v-7b76ccde]{background:color-mix(in srgb,var(--danger) 4%,var(--bg2));border-color:color-mix(in srgb,var(--danger) 20%,var(--border))}.practice-area.hint-mode[data-v-7b76ccde]{background:color-mix(in srgb,#f59e0b 4%,var(--bg2));border-color:color-mix(in srgb,#f59e0b 20%,var(--border))}.card-display[data-v-7b76ccde]{display:flex;flex-direction:column;align-items:center;gap:12px}.root-char[data-v-7b76ccde]{font-size:96px;font-weight:400;line-height:1;color:var(--text);transition:all .3s ease;text-shadow:0 2px 8px rgba(0,0,0,.08)}.root-char.shake[data-v-7b76ccde]{animation:shake-7b76ccde .4s ease-in-out;color:var(--danger)}@keyframes shake-7b76ccde{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.related-chars[data-v-7b76ccde]{font-size:15px;color:var(--text3);letter-spacing:4px}.input-area[data-v-7b76ccde]{width:100%;max-width:240px;display:flex;flex-direction:column;align-items:center}.code-input[data-v-7b76ccde]{width:100%;padding:12px 16px;font-size:18px;text-align:center;font-family:SF Mono,Menlo,Consolas,monospace;letter-spacing:3px;font-weight:500;background:var(--bg);border:1.5px solid var(--border);border-radius:10px;color:var(--text);outline:none;transition:all .2s ease}.code-input[data-v-7b76ccde]::placeholder{color:var(--text3);font-weight:400;letter-spacing:1px}.code-input[data-v-7b76ccde]:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.code-input.error[data-v-7b76ccde]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 12%,transparent)}.hint-area[data-v-7b76ccde]{display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(4px);transition:all .3s ease;pointer-events:none}.hint-area.visible[data-v-7b76ccde]{opacity:1;transform:translateY(0);pointer-events:auto}.hint-label[data-v-7b76ccde]{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:1px}.hint-code[data-v-7b76ccde]{font-family:SF Mono,Menlo,Consolas,monospace;font-size:15px;font-weight:600;color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--bg3));padding:4px 12px;border-radius:6px;letter-spacing:2px}.complete-area[data-v-7b76ccde]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 24px;background:var(--bg2);border-radius:12px;border:1px solid var(--border)}.complete-icon[data-v-7b76ccde]{width:64px;height:64px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:600;color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;box-shadow:0 4px 12px #10b9814d}.complete-text[data-v-7b76ccde]{font-size:18px;font-weight:600;color:var(--text)}.continue-btn[data-v-7b76ccde]{margin-top:8px;padding:10px 24px;font-size:14px;font-weight:500;color:#fff;background:var(--primary);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.continue-btn[data-v-7b76ccde]:hover{background:color-mix(in srgb,var(--primary) 85%,black);transform:translateY(-1px)}.empty-state[data-v-7b76ccde]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 24px;background:var(--bg2);border-radius:12px;border:1px solid var(--border);color:var(--text3)}.empty-icon[data-v-7b76ccde]{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--text3);background:var(--bg3);border-radius:50%}.empty-state p[data-v-7b76ccde]{margin:0;font-size:14px}.stats-bar[data-v-7b76ccde]{display:flex;align-items:center;gap:24px;padding:12px 16px;background:var(--bg2);border-radius:10px;border:1px solid var(--border)}.stat-item[data-v-7b76ccde]{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-value[data-v-7b76ccde]{font-size:20px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.stat-label[data-v-7b76ccde]{font-size:12px;color:var(--text3)}.stat-item.instant .stat-value[data-v-7b76ccde]{color:var(--primary);font-size:16px}.toolbar[data-v-7b76ccde]{margin-left:auto;display:flex;gap:8px}.tool-btn[data-v-7b76ccde]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:var(--bg3);color:var(--text2);border-radius:6px;cursor:pointer;transition:all .2s ease}.tool-btn[data-v-7b76ccde]:hover{background:var(--primary-bg);color:var(--primary)}.char-practice[data-v-7b76ccde]{gap:40px}.phrases-display[data-v-7b76ccde]{display:grid;grid-template-columns:repeat(5,1fr);align-items:center;justify-items:center;gap:16px;width:100%;max-width:700px}.phrase[data-v-7b76ccde]{min-width:80px;min-height:80px}.phrase[data-v-7b76ccde]{display:flex;flex-direction:column;align-items:center;gap:8px}.phrase.current .phrase-text[data-v-7b76ccde]{font-size:64px;font-weight:500;color:var(--text)}.phrase.prev-1[data-v-7b76ccde]{opacity:.4}.phrase.prev-1 .phrase-text[data-v-7b76ccde]{font-size:42px;color:var(--text3)}.phrase.prev-2[data-v-7b76ccde]{opacity:.25}.phrase.prev-2 .phrase-text[data-v-7b76ccde]{font-size:36px;color:var(--text3)}.phrase.next-1[data-v-7b76ccde]{opacity:.6}.phrase.next-1 .phrase-text[data-v-7b76ccde]{font-size:48px;color:var(--text2)}.phrase.next-2[data-v-7b76ccde]{opacity:.4}.phrase.next-2 .phrase-text[data-v-7b76ccde]{font-size:42px;color:var(--text3)}.phrase-code[data-v-7b76ccde]{font-family:SF Mono,Menlo,Consolas,monospace;font-size:18px;color:var(--primary);background:var(--primary-bg);padding:4px 12px;border-radius:6px;letter-spacing:2px}.char-hint-area[data-v-7b76ccde]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 24px;min-height:80px;background:var(--bg);border-radius:10px;border:1px solid var(--border);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.char-hint-area.visible[data-v-7b76ccde]{opacity:1;visibility:visible}.hint-split[data-v-7b76ccde]{display:flex;align-items:center;gap:4px}.split-root[data-v-7b76ccde]{font-size:24px;color:var(--text);padding:2px 6px;background:var(--bg3);border-radius:4px}.hint-code-row[data-v-7b76ccde]{display:flex;align-items:center}.hint-code-row .hint-code[data-v-7b76ccde]{font-family:SF Mono,Menlo,Consolas,monospace;font-size:20px;font-weight:600;color:var(--primary);background:var(--primary-bg);padding:6px 16px;border-radius:6px;letter-spacing:3px}.char-input-area[data-v-7b76ccde]{max-width:none}.type-input[data-v-7b76ccde]{width:400px;padding:16px 24px;font-size:32px;text-align:center;font-family:inherit;letter-spacing:4px;font-weight:500;background:var(--bg);border:2px solid var(--border);border-radius:12px;color:var(--text);outline:none;transition:all .2s ease}.type-input[data-v-7b76ccde]::placeholder{color:var(--text3);font-weight:400;letter-spacing:1px}.type-input[data-v-7b76ccde]:focus{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 12%,transparent)}.type-input.error[data-v-7b76ccde]{border-color:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 12%,transparent)}.input-hint[data-v-7b76ccde]{font-size:12px;color:var(--text3)}.progress-info[data-v-7b76ccde]{font-size:14px;color:var(--text3)}.finish-area[data-v-7b76ccde]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:48px 24px;background:var(--bg2);border-radius:12px;border:1px solid var(--border)}.finish-icon[data-v-7b76ccde]{width:72px;height:72px;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:600;color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;box-shadow:0 4px 16px #10b9814d}.finish-title[data-v-7b76ccde]{font-size:24px;font-weight:600;color:var(--text)}.finish-stats[data-v-7b76ccde]{display:flex;gap:32px}.finish-stat[data-v-7b76ccde]{display:flex;flex-direction:column;align-items:center;gap:4px}.finish-stat-value[data-v-7b76ccde]{font-size:28px;font-weight:600;color:var(--primary);font-variant-numeric:tabular-nums}.finish-stat-label[data-v-7b76ccde]{font-size:13px;color:var(--text3)}.restart-btn[data-v-7b76ccde]{margin-top:16px;padding:12px 32px;font-size:15px;font-weight:500;color:#fff;background:var(--primary);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.restart-btn[data-v-7b76ccde]:hover{background:color-mix(in srgb,var(--primary) 85%,black);transform:translateY(-1px)}.empty-area[data-v-7b76ccde]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;background:var(--bg2);border-radius:12px;border:1px solid var(--border)}.empty-area .empty-icon[data-v-7b76ccde]{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;color:var(--text3);background:var(--bg3);border-radius:50%}.empty-area p[data-v-7b76ccde]{margin:0;font-size:14px;color:var(--text2)}.empty-hint[data-v-7b76ccde]{font-size:12px!important;color:var(--text3)!important}.settings-overlay[data-v-7b76ccde]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.settings-panel[data-v-7b76ccde]{width:400px;background:var(--bg);border-radius:12px;border:1px solid var(--border);box-shadow:0 8px 32px #0003}.settings-header[data-v-7b76ccde]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.settings-header h3[data-v-7b76ccde]{margin:0;font-size:16px;font-weight:600;color:var(--text)}.close-btn[data-v-7b76ccde]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--text3);background:transparent;border:none;border-radius:6px;cursor:pointer}.close-btn[data-v-7b76ccde]:hover{background:var(--bg3);color:var(--text)}.settings-body[data-v-7b76ccde]{padding:20px;display:flex;flex-direction:column;gap:16px}.setting-item[data-v-7b76ccde]{display:flex;align-items:center;justify-content:space-between}.setting-item label[data-v-7b76ccde]{font-size:14px;color:var(--text2)}.range-input[data-v-7b76ccde]{display:flex;align-items:center;gap:8px}.range-input input[data-v-7b76ccde]{width:60px;padding:6px 10px;font-size:14px;text-align:center;background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--text)}.range-input span[data-v-7b76ccde]{color:var(--text3)}.checkbox-label[data-v-7b76ccde]{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input[data-v-7b76ccde]{width:16px;height:16px;accent-color:var(--primary)}.settings-footer[data-v-7b76ccde]{padding:16px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}.apply-btn[data-v-7b76ccde]{padding:8px 20px;font-size:14px;font-weight:500;color:#fff;background:var(--primary);border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.apply-btn[data-v-7b76ccde]:hover{background:color-mix(in srgb,var(--primary) 85%,black)}.loading-state[data-v-58f64217]{text-align:center;padding:40px;color:var(--text2);display:flex;flex-direction:column;align-items:center;gap:12px}.stats-grid[data-v-58f64217]{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:20px}.stat-card[data-v-58f64217]{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:20px;text-align:center}.stat-value[data-v-58f64217]{font-size:28px;font-weight:700;color:var(--primary);margin-bottom:6px}.stat-value.success[data-v-58f64217]{color:var(--success)}.stat-value.primary[data-v-58f64217]{color:var(--primary)}.stat-label[data-v-58f64217]{font-size:12px;color:var(--text2);font-weight:500}.section-title[data-v-58f64217]{margin:16px 0 12px;font-size:13px;color:var(--text2);font-weight:600}.uncovered-list[data-v-58f64217]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.uncovered-char[data-v-58f64217]{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;font-size:18px;cursor:pointer;transition:all .15s ease}.uncovered-char[data-v-58f64217]:hover{border-color:var(--primary);background:var(--primary-bg)}.overlay[data-v-58f64217]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.show[data-v-58f64217]{opacity:1;pointer-events:auto}.modal[data-v-58f64217]{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:24px;min-width:320px;max-width:400px;box-shadow:var(--shadow2)}.modal h2[data-v-58f64217]{margin-bottom:16px;font-size:16px;font-weight:600;color:var(--text)}.form-group[data-v-58f64217]{margin-bottom:16px}.form-group label[data-v-58f64217]{display:block;font-size:12px;color:var(--text2);margin-bottom:6px;font-weight:500}.form-group .input[data-v-58f64217]{width:100%;padding:8px 12px;font-size:14px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);outline:none;transition:border-color .2s}.form-group .input[data-v-58f64217]:focus{border-color:var(--primary)}.form-group .hint[data-v-58f64217]{margin-top:6px;font-size:11px;color:var(--text2);line-height:1.4}.modal-actions[data-v-58f64217]{display:flex;gap:8px;justify-content:flex-end}.si[data-v-3e14678c]{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.si[data-v-3e14678c]:hover{background:var(--bg3)}.sc[data-v-3e14678c]{font-size:22px;width:36px;text-align:center}.sc.clickable[data-v-3e14678c]{cursor:pointer;border-radius:4px;transition:background .15s}.sc.clickable[data-v-3e14678c]:hover{background:var(--bg2);color:var(--primary)}.cn[data-v-3e14678c]{color:var(--accent);font-size:13px}.ss[data-v-3e14678c]{color:var(--text2);font-size:12px}.main-layout[data-v-796242e3]{display:grid;grid-template-columns:var(--nav-width) 1fr 300px;gap:0;height:calc(100vh - 56px);transition:grid-template-columns .3s ease}.main-layout.no-detail[data-v-796242e3]{grid-template-columns:var(--nav-width) 1fr}.main-layout.nav-collapsed[data-v-796242e3]{grid-template-columns:var(--nav-collapsed-width) 1fr 300px}.main-layout.nav-collapsed.no-detail[data-v-796242e3]{grid-template-columns:var(--nav-collapsed-width) 1fr}.center[data-v-796242e3]{overflow-y:auto;padding:24px;background:var(--bg);transition:background-color .3s ease}.placeholder-page[data-v-796242e3]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text2);font-size:16px}@media (max-width: 900px){.main-layout[data-v-796242e3]{grid-template-columns:1fr;grid-template-rows:auto 1fr}}.pua-font{font-family:CHS-PUA,Noto Sans SC,Microsoft YaHei,PingFang SC,sans-serif!important}:root{--primary: #165DFF;--primary-light: #4080FF;--primary-dark: #0D47A1;--primary-bg: #E8F1FF;--bg: #F5F7FA;--bg2: #FFFFFF;--bg3: #F0F2F5;--border: #E4E7ED;--border2: #DCDFE6;--text: #1D2129;--text2: #86909C;--text3: #C9CDD4;--success: #00B42A;--warning: #FF7D00;--danger: #F53F3F;--info: #165DFF;--purple: #7C3AED;--purple-light: #8B5CF6;--shadow: 0 2px 8px rgba(0, 0, 0, .06);--shadow2: 0 4px 16px rgba(0, 0, 0, .08);--nav-width: 220px;--nav-collapsed-width: 56px}[data-theme=dark]{--primary: #3B82F6;--primary-light: #60A5FA;--primary-dark: #2563EB;--primary-bg: rgba(59, 130, 246, .15);--bg: #0F172A;--bg2: #1E293B;--bg3: #334155;--border: #475569;--border2: #64748B;--text: #F1F5F9;--text2: #94A3B8;--text3: #64748B;--success: #22C55E;--warning: #F59E0B;--danger: #EF4444;--shadow: 0 2px 8px rgba(0, 0, 0, .3);--shadow2: 0 4px 16px rgba(0, 0, 0, .4)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans SC,Microsoft YaHei,PingFang SC,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text2)}.btn{padding:8px 20px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease,transform .15s ease;white-space:nowrap;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:hover{background:var(--primary-light);transform:scale(1.05)}.btn:active{transform:scale(.98)}.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:12px 28px;font-size:15px}.btn-outline{background:transparent;border:1px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--primary-bg);border-color:var(--primary);transform:scale(1.05)}.btn-ghost{background:transparent;color:var(--text2)}.btn-ghost:hover{background:var(--bg3);color:var(--text);transform:scale(1.05)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:#f76560}.btn-success{background:var(--success)}.btn-success:hover{background:#23c343}.btn-purple{background:#7c3aed}.btn-purple:hover{background:#8b5cf6}input[type=text],input[type=number],input[type=search],select,textarea{padding:10px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px;outline:none;transition:border-color .3s ease,box-shadow .3s ease,background-color .3s ease;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}input::placeholder{color:var(--text3)}textarea{resize:vertical;min-height:100px}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.tag-primary{background:var(--primary-bg);color:var(--primary)}.tag-success{background:#00b42a26;color:var(--success)}.tag-danger{background:#f53f3f26;color:var(--danger)}.tag-warning{background:#ff7d0026;color:var(--warning)}.tag-info{background:var(--primary-bg);color:var(--primary)}.panel{background:var(--bg2);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;overflow:hidden;box-shadow:var(--shadow);transition:background-color .3s ease,border-color .3s ease}.panel-head{padding:14px 20px;background:var(--bg2);border-bottom:1px solid var(--border);font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.panel-body{padding:20px}.input-row{display:flex;gap:10px;margin-bottom:12px}.input-row input,.input-row select{flex:1}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{background:var(--bg3);padding:10px 14px;text-align:left;font-weight:600;color:var(--text2);border-bottom:1px solid var(--border);position:sticky;top:0;transition:background-color .3s ease}.data-table td{padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg2);transition:background-color .3s ease}.data-table tr:hover td{background:var(--bg3)}.data-table .char-col{font-size:20px;text-align:center;width:50px}.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin:12px 0}.progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .5s ease}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top:3px solid var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}.card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:16px;transition:all .2s ease}.card:hover{box-shadow:var(--shadow2);border-color:var(--border2);transform:translateY(-2px)}.divider{height:1px;background:var(--border);margin:16px 0}.empty-state{text-align:center;padding:40px 20px;color:var(--text2)}.empty-state-icon{font-size:48px;margin-bottom:12px;opacity:.5}.sidebar{transition:width .3s ease,transform .3s ease}.sidebar-collapsed{width:var(--nav-collapsed-width)!important}.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-section-title{opacity:0;width:0;overflow:hidden}.search-highlight{background:var(--primary-bg);color:var(--primary);padding:0 2px;border-radius:2px}.key{transition:all .2s ease,transform .15s ease}.key:hover{transform:scale(1.05)}.icon-btn{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--text2);transition:all .2s ease,transform .15s ease}.icon-btn:hover{background:var(--bg3);color:var(--primary);transform:scale(1.05)}.vue-flow{background:var(--bg)!important}.vue-flow__edge-path{stroke:var(--border2)!important}
