.icon[data-v-1fdde018]{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-156ddb41]{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-156ddb41]{display:flex;align-items:center;gap:24px}.title[data-v-156ddb41]{display:flex;align-items:center;gap:8px}h1[data-v-156ddb41]{font-size:26px;font-weight:700;color:var(--primary);letter-spacing:2px;margin:0}.title-suffix[data-v-156ddb41]{font-size:18px;font-weight:600}.ver[data-v-156ddb41]{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-156ddb41]{display:flex;gap:20px}.stat-item[data-v-156ddb41]{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-label[data-v-156ddb41]{font-size:11px;color:var(--text2)}.stat-value[data-v-156ddb41]{font-size:14px;font-weight:600;color:var(--primary)}.header-right[data-v-156ddb41]{display:flex;align-items:center;gap:12px}.config-info[data-v-156ddb41]{display:flex;align-items:center;gap:6px;cursor:pointer;transition:all .2s ease}.config-info:hover .config-name[data-v-156ddb41],.config-info:hover .config-author[data-v-156ddb41]{filter:brightness(1.1)}.config-name[data-v-156ddb41]{font-size:16px;font-weight:800;color:var(--primary);background:#0066b426;padding:4px 10px;border-radius:8px}.config-author[data-v-156ddb41]{font-size:14px;font-weight:500;color:var(--success);background:#00b42a26;padding:4px 10px;border-radius:8px}.config-author[data-v-156ddb41]:before{content:"";margin-right:0;color:var(--text3)}.config-actions[data-v-156ddb41],.config-actions .btn[data-v-156ddb41]{display:flex;align-items:center;gap:4px}.btn-sm[data-v-156ddb41]{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-156ddb41]{background:var(--primary);color:#fff;border:none}.btn-sm.btn-primary[data-v-156ddb41]:hover{background:var(--primary-light);transform:translateY(-1px)}.btn-sm.btn-ghost[data-v-156ddb41]{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-sm.btn-ghost[data-v-156ddb41]:hover{background:var(--bg3);border-color:var(--primary)}.btn-icon[data-v-156ddb41]{font-size:14px}.btn-text[data-v-156ddb41]{font-size:13px}.divider-v[data-v-156ddb41]{width:1px;height:20px;background:var(--border);margin:0 8px}.theme-toggle[data-v-156ddb41]{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-156ddb41]:hover{background:var(--primary-bg);border-color:var(--primary);transform:scale(1.05)}@media (max-width: 900px){.stats[data-v-156ddb41]{display:none}.config-info[data-v-156ddb41]{padding:4px 8px}.config-name[data-v-156ddb41]{font-size:12px}.config-author[data-v-156ddb41],.btn-text[data-v-156ddb41]{display:none}.config-actions .btn[data-v-156ddb41]{padding:6px 10px}}.overlay[data-v-156ddb41]{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-156ddb41]{opacity:1;pointer-events:auto}.modal[data-v-156ddb41]{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-156ddb41]{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--text)}.form-group[data-v-156ddb41]{margin-bottom:16px}.form-group label[data-v-156ddb41]{display:block;font-size:13px;font-weight:500;color:var(--text2);margin-bottom:6px}.form-group input[data-v-156ddb41],.form-group textarea[data-v-156ddb41]{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-156ddb41]:focus,.form-group textarea[data-v-156ddb41]:focus{border-color:var(--primary)}.form-group input[data-v-156ddb41]::placeholder,.form-group textarea[data-v-156ddb41]::placeholder{color:var(--text3)}.form-group textarea[data-v-156ddb41]{resize:vertical;min-height:60px}.actions[data-v-156ddb41]{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.charset-item[data-v-156ddb41]{margin-left:8px}.charset-select[data-v-156ddb41]{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-156ddb41]:hover{background:var(--primary);color:#fff}.charset-select[data-v-156ddb41]:focus{box-shadow:0 0 0 2px #0066b433}@media (max-width: 900px){.charset-item[data-v-156ddb41]{display:none}}.freq-item[data-v-156ddb41]{margin-left:4px}.freq-select[data-v-156ddb41]{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-156ddb41]:hover{background:var(--success);color:#fff}.freq-select[data-v-156ddb41]:focus{box-shadow:0 0 0 2px #00b42a33}@media (max-width: 900px){.freq-item[data-v-156ddb41]{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}.detail-panel[data-v-a5493338]{background:var(--bg2);border-left:1px solid var(--border);overflow-y:auto;padding:20px}h3[data-v-a5493338]{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-a5493338]{color:var(--text2);font-size:13px;text-align:center;padding:40px 0}.char-display[data-v-a5493338]{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-a5493338]{margin-bottom:14px}.label[data-v-a5493338]{font-size:11px;color:var(--text2);margin-bottom:4px;font-weight:500}.value[data-v-a5493338]{font-size:14px;color:var(--text)}.value.primary[data-v-a5493338]{color:var(--primary);font-weight:500;font-size:15px}.value.mono[data-v-a5493338]{font-family:monospace}.value.small[data-v-a5493338]{font-size:12px}.info-grid[data-v-a5493338]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.info-item[data-v-a5493338]{margin-bottom:0}.actions[data-v-a5493338]{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.pinyin-item[data-v-a5493338]{display:inline-block;margin-right:8px;margin-bottom:4px}.pinyin-text[data-v-a5493338]{color:var(--text)}.pinyin-freq[data-v-a5493338]{font-size:11px;color:var(--text2);margin-left:2px}.pinyin-item[data-v-a5493338]:not(:last-child):after{content:",";color:var(--text2)}.stroke-item[data-v-a5493338]{display:flex;align-items:center;gap:6px;margin-bottom:4px}.stroke-label[data-v-a5493338]{font-size:11px;color:var(--text2);background:var(--bg3);padding:1px 4px;border-radius:3px}.leaves-container[data-v-a5493338]{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.leaf-btn[data-v-a5493338]{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-a5493338]: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-a5493338]{background:var(--primary);border-color:var(--primary);color:#fff}.leaf-btn.is-root[data-v-a5493338]:hover{background:var(--primary-dark, #0066cc);border-color:var(--primary-dark, #0066cc)}.leaf-btn.is-equiv[data-v-a5493338]{background:#13c2c226;border-color:#13c2c2;color:#0d8a8a}.leaf-btn.is-equiv[data-v-a5493338]:hover{background:#13c2c240;border-color:#13c2c2;color:#0d8a8a}.leaf-char[data-v-a5493338]{font-weight:500}.leaf-badge[data-v-a5493338]{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-a5493338]{background:#13c2c2}.leaf-sep[data-v-a5493338]{color:var(--text2);font-weight:600;font-size:12px;margin:0 2px}.overlay[data-v-a5493338]{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-a5493338]{opacity:1;pointer-events:auto}.modal[data-v-a5493338]{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-a5493338]{margin-bottom:16px;font-size:16px;font-weight:600;color:var(--text)}.form-group[data-v-a5493338]{margin-bottom:16px}.form-group label[data-v-a5493338]{display:block;font-size:12px;color:var(--text2);margin-bottom:6px;font-weight:500}.form-group .input[data-v-a5493338]{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-a5493338]:focus{border-color:var(--primary)}.form-group .hint[data-v-a5493338]{margin-top:6px;font-size:11px;color:var(--text2);line-height:1.4}.modal-actions[data-v-a5493338]{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}.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-e811a2a2]{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-e811a2a2]{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-e811a2a2]{display:flex;align-items:center;gap:8px}.rule-count[data-v-e811a2a2]{color:var(--text2);font-size:12px;font-weight:400}.ids-transformer-body[data-v-e811a2a2]{padding:20px;flex:1;overflow-y:auto;min-height:0;max-height:400px}.rule-list[data-v-e811a2a2]{display:flex;flex-direction:column;gap:8px;padding-right:4px}.rule-item[data-v-e811a2a2]{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:12px;transition:all .2s;cursor:grab}.rule-item[data-v-e811a2a2]:active{cursor:grabbing}.rule-item.disabled[data-v-e811a2a2]{opacity:.5}.rule-item.dragging[data-v-e811a2a2]{opacity:.5;border:2px dashed var(--accent);background:var(--bg2)}.rule-item.drag-over[data-v-e811a2a2]{border:2px solid var(--accent);background:var(--bg2)}.rule-header[data-v-e811a2a2]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.drag-handle[data-v-e811a2a2]{color:var(--text2);cursor:grab;font-size:12px;-webkit-user-select:none;user-select:none;padding:2px}.drag-handle[data-v-e811a2a2]:hover{color:var(--text1)}.rule-priority[data-v-e811a2a2]{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-e811a2a2]{font-weight:500;flex:1}.rule-mode[data-v-e811a2a2]{font-size:11px;color:var(--text2);background:var(--bg2);padding:2px 6px;border-radius:4px}.rule-detail[data-v-e811a2a2]{font-size:12px;color:var(--text2);margin-bottom:8px}.rule-detail code[data-v-e811a2a2]{background:var(--bg2);padding:2px 4px;border-radius:4px;font-family:monospace}.rule-actions[data-v-e811a2a2]{display:flex;gap:4px}.icon-btn[data-v-e811a2a2]{min-width:28px;padding:0 6px;font-weight:700}.icon-btn[data-v-e811a2a2]:disabled{opacity:.4;cursor:not-allowed}.toggle[data-v-e811a2a2]{position:relative;width:36px;height:20px}.toggle input[data-v-e811a2a2]{opacity:0;width:0;height:0}.toggle .slider[data-v-e811a2a2]{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-e811a2a2]{background:var(--accent)}.toggle .slider[data-v-e811a2a2]: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-e811a2a2]:before{transform:translate(16px)}.preview-panel[data-v-e811a2a2]{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-e811a2a2]{margin-bottom:12px}.form-group label[data-v-e811a2a2]{display:block;font-size:12px;color:var(--text2);margin-bottom:4px}.form-group input[data-v-e811a2a2],.form-group select[data-v-e811a2a2]{width:100%}.data-page[data-v-769cafaf]{display:flex;flex-direction:column;gap:16px;height:100%}.toolbar[data-v-769cafaf]{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-769cafaf]{display:flex;align-items:center;gap:12px}.title[data-v-769cafaf]{font-size:16px;font-weight:600}.count[data-v-769cafaf]{font-size:13px;color:var(--text2);background:var(--bg3);padding:4px 10px;border-radius:4px}.filter-info[data-v-769cafaf]{font-size:13px;color:var(--primary);background:var(--primary-bg);padding:4px 10px;border-radius:4px}.search-panel[data-v-769cafaf]{background:var(--bg2);border-radius:8px;border:1px solid var(--border);padding:16px}.search-row[data-v-769cafaf]{display:flex;gap:8px}.search-type[data-v-769cafaf]{width:100px;flex-shrink:0}.search-input[data-v-769cafaf]{flex:1}.table-container[data-v-769cafaf]{flex:1;overflow:auto;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.data-table[data-v-769cafaf]{font-size:13px}.data-table th[data-v-769cafaf]{position:sticky;top:0;z-index:1}.char-cell[data-v-769cafaf]{font-size:20px;text-align:center;font-weight:500}.mono[data-v-769cafaf]{font-family:SF Mono,Consolas,monospace;font-size:12px}.ids-cell[data-v-769cafaf]{font-family:SF Mono,Consolas,monospace;font-size:12px;color:var(--text2)}.split-cell[data-v-769cafaf]{font-size:13px;letter-spacing:1px}.clickable-row[data-v-769cafaf]{cursor:pointer;transition:background-color .15s ease}.clickable-row[data-v-769cafaf]:hover{background:var(--bg3)!important}.pagination[data-v-769cafaf]{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-769cafaf]{font-size:13px;color:var(--text2);min-width:80px;text-align:center}.empty-state[data-v-769cafaf]{padding:60px 20px;text-align:center;color:var(--text2)}.empty-icon[data-v-769cafaf]{font-size:48px;margin-bottom:12px;opacity:.5}.element-pool[data-v-4c9d8cfe]{display:flex;flex-direction:column;gap:12px}.element-grid[data-v-4c9d8cfe]{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-4c9d8cfe]{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-4c9d8cfe]:hover{background:var(--bg3);border-color:var(--border)}.element-item.selected[data-v-4c9d8cfe]{background:var(--primary-bg);border-color:var(--primary)}.element-item.added[data-v-4c9d8cfe]{background:#00b42a14}.element-item.added.selected[data-v-4c9d8cfe]{background:var(--primary-bg)}.element-char[data-v-4c9d8cfe]{font-size:20px;line-height:1;color:var(--text)}.element-code[data-v-4c9d8cfe]{font-size:10px;color:var(--success);font-family:monospace;margin-top:2px}.pagination[data-v-4c9d8cfe]{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px}.page-btn[data-v-4c9d8cfe]{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-4c9d8cfe]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.page-btn[data-v-4c9d8cfe]:disabled{opacity:.4;cursor:not-allowed}.page-info[data-v-4c9d8cfe]{font-size:13px;color:var(--text2);display:flex;align-items:center;gap:4px}.page-input[data-v-4c9d8cfe]{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-4c9d8cfe]::-webkit-inner-spin-button,.page-input[data-v-4c9d8cfe]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.total-count[data-v-4c9d8cfe]{font-size:12px;color:var(--text3)}.key-select[data-v-c166bdc9]{position:relative;min-width:80px}.select-trigger[data-v-c166bdc9]{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-c166bdc9]:hover{border-color:var(--primary)}.select-trigger.disabled[data-v-c166bdc9]{cursor:not-allowed;opacity:.6;background:var(--bg3)}.select-trigger.disabled[data-v-c166bdc9]:hover{border-color:var(--border)}.key-select.disabled[data-v-c166bdc9]{pointer-events:none}.select-value[data-v-c166bdc9]{color:var(--text)}.select-arrow[data-v-c166bdc9]{font-size:10px;color:var(--text2);transition:transform .2s}.select-arrow.open[data-v-c166bdc9]{transform:rotate(180deg)}.select-dropdown[data-v-c166bdc9]{position:absolute;left:0;right:0;min-width:200px;max-height:300px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow2);z-index:100;overflow:hidden;margin-top:4px}.select-dropdown.below[data-v-c166bdc9]{top:100%}.select-dropdown.above[data-v-c166bdc9]{bottom:100%;top:auto;margin-top:0;margin-bottom:4px}.select-search[data-v-c166bdc9]{width:100%;padding:8px 10px;border:none;border-bottom:1px solid var(--border);font-size:13px;outline:none}.select-options[data-v-c166bdc9]{max-height:250px;overflow-y:auto;padding:4px 0}.option-group[data-v-c166bdc9]{padding:4px 0}.group-label[data-v-c166bdc9]{padding:4px 10px;font-size:11px;color:var(--text2);font-weight:500;text-transform:uppercase}.group-items[data-v-c166bdc9]{display:flex;flex-wrap:wrap;gap:4px;padding:0 6px}.key-item[data-v-c166bdc9]{min-width:28px;text-align:center}.element-items[data-v-c166bdc9]{flex-direction:column;gap:2px}.element-item[data-v-c166bdc9]{padding:6px 10px;text-align:left}.element-label[data-v-c166bdc9]{font-size:12px}.option-item[data-v-c166bdc9]{padding:4px 8px;border-radius:4px;cursor:pointer;font-size:13px;transition:all .15s}.option-item[data-v-c166bdc9]:hover{background:var(--primary-bg)}.option-item.selected[data-v-c166bdc9]{background:var(--primary);color:#fff}.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-3e1796bd]{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-3e1796bd]{display:flex;align-items:center;justify-content:space-between}.picker-title[data-v-3e1796bd]{font-size:16px;font-weight:600;margin:0}.element-count[data-v-3e1796bd]{font-size:12px;color:var(--text2);background:var(--bg3);padding:2px 8px;border-radius:4px}.search-box[data-v-3e1796bd]{position:relative}.search-input[data-v-3e1796bd]{width:100%;padding:10px 14px;font-size:13px}.filter-count[data-v-3e1796bd]{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--text3);pointer-events:none}.pool-section[data-v-3e1796bd]{flex:1;min-height:0;overflow-y:auto}.adder-section[data-v-3e1796bd]{flex-shrink:0}.element-page[data-v-5b8f7dd4]{display:flex;flex-direction:column;height:100%;overflow:hidden}.toolbar[data-v-5b8f7dd4]{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-5b8f7dd4]{display:flex;align-items:center;gap:20px}.stats-item[data-v-5b8f7dd4]{display:flex;align-items:baseline;gap:6px}.stats-label[data-v-5b8f7dd4]{font-size:12px;color:var(--text2)}.stats-value[data-v-5b8f7dd4]{font-size:16px;font-weight:600;color:var(--text)}.stats-value.success[data-v-5b8f7dd4]{color:var(--success)}.toolbar-right[data-v-5b8f7dd4]{display:flex;gap:8px}.main-content[data-v-5b8f7dd4]{flex:1;display:flex;min-height:0;overflow:hidden}.keyboard-panel[data-v-5b8f7dd4]{flex:1;display:flex;flex-direction:column;padding:16px;overflow-y:auto;background:var(--bg)}.keyboard[data-v-5b8f7dd4]{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-5b8f7dd4]{display:flex;gap:6px}.key[data-v-5b8f7dd4]{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-5b8f7dd4]:hover{border-color:var(--primary);background:var(--bg)}.key-populated[data-v-5b8f7dd4]{background:var(--bg);border-color:var(--primary)}.key-selected[data-v-5b8f7dd4]{background:var(--primary);border-color:var(--primary)}.key-selected .key-label[data-v-5b8f7dd4],.key-selected .root-text[data-v-5b8f7dd4],.key-selected .root-sub[data-v-5b8f7dd4]{color:#fff}.key-label[data-v-5b8f7dd4]{font-size:13px;font-weight:600;color:var(--text3);margin-bottom:4px}.key-roots[data-v-5b8f7dd4]{flex:1;display:flex;flex-wrap:wrap;gap:2px;align-content:flex-start}.root-chip[data-v-5b8f7dd4]{display:flex;align-items:center;background:var(--primary-bg);border-radius:4px;padding:1px 4px;font-size:11px}.root-text[data-v-5b8f7dd4]{font-size:12px;color:var(--primary)}.root-sub[data-v-5b8f7dd4]{font-size:10px;color:var(--success);margin-left:1px}.key-selected .root-chip[data-v-5b8f7dd4]{background:#fff3}.more[data-v-5b8f7dd4]{font-size:10px;color:var(--text3);padding:2px 4px}.key-count[data-v-5b8f7dd4]{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-5b8f7dd4]{background:#ffffff4d}.key-space[data-v-5b8f7dd4]{min-height:50px;flex:none;width:50%;margin:0 auto}.roots-detail[data-v-5b8f7dd4]{margin-top:16px;background:var(--bg2);border-radius:8px;border:1px solid var(--border);padding:16px}.detail-header[data-v-5b8f7dd4]{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-5b8f7dd4]{margin:0;font-size:14px;font-weight:500}.detail-header strong[data-v-5b8f7dd4]{color:var(--primary);font-size:16px}.root-count[data-v-5b8f7dd4]{font-size:12px;color:var(--text2);margin-left:8px;font-weight:400}.btn-close-detail[data-v-5b8f7dd4]{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-5b8f7dd4]:hover{background:var(--bg3);color:var(--text)}.merged-section[data-v-5b8f7dd4],.equiv-section[data-v-5b8f7dd4]{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.section-label[data-v-5b8f7dd4]{font-size:12px;color:var(--text2);margin-bottom:8px}.merged-list[data-v-5b8f7dd4],.equiv-list[data-v-5b8f7dd4]{display:flex;flex-wrap:wrap;gap:8px}.merged-item[data-v-5b8f7dd4],.equiv-item[data-v-5b8f7dd4]{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg3);border-radius:4px;font-size:12px}.merged-item.clickable[data-v-5b8f7dd4],.equiv-item.clickable[data-v-5b8f7dd4]{cursor:pointer;transition:all .15s}.merged-item.clickable[data-v-5b8f7dd4]:hover,.equiv-item.clickable[data-v-5b8f7dd4]:hover{background:var(--primary-bg)}.merged-target[data-v-5b8f7dd4],.equiv-target[data-v-5b8f7dd4]{font-weight:500;color:var(--purple)}.merged-arrow[data-v-5b8f7dd4],.equiv-equal[data-v-5b8f7dd4]{color:var(--text2)}.merged-source[data-v-5b8f7dd4],.equiv-source[data-v-5b8f7dd4]{color:var(--primary)}.merged-code[data-v-5b8f7dd4],.equiv-code[data-v-5b8f7dd4]{font-family:monospace;font-size:11px;color:var(--text3)}.btn-remove[data-v-5b8f7dd4]{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-5b8f7dd4]:hover{background:var(--danger);color:#fff}.roots-grid[data-v-5b8f7dd4]{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.root-card[data-v-5b8f7dd4]{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-5b8f7dd4]:hover{border-color:var(--primary);cursor:pointer}.root-card.dragging[data-v-5b8f7dd4]{opacity:.5;border-style:dashed}.root-char[data-v-5b8f7dd4]{font-size:24px;line-height:1;margin-bottom:4px}.root-code[data-v-5b8f7dd4]{font-family:monospace;font-size:12px}.root-code .main[data-v-5b8f7dd4]{color:var(--primary);font-weight:600}.root-code .sub[data-v-5b8f7dd4]{color:var(--success)}.root-code .supplement[data-v-5b8f7dd4]{color:var(--warning)}.merged-badge[data-v-5b8f7dd4]{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-5b8f7dd4]{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-5b8f7dd4]{opacity:1}.btn-delete[data-v-5b8f7dd4]:hover{background:var(--danger);color:#fff}.no-selection-hint[data-v-5b8f7dd4]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text2)}.no-selection-hint p[data-v-5b8f7dd4]{margin:4px 0}.hint-sub[data-v-5b8f7dd4]{font-size:13px;color:var(--text3)}.modal-overlay[data-v-5b8f7dd4]{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-5b8f7dd4]{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-5b8f7dd4]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3[data-v-5b8f7dd4]{margin:0;font-size:16px}.btn-close[data-v-5b8f7dd4]{width:28px;height:28px;border:none;background:transparent;color:var(--text2);font-size:20px;cursor:pointer;border-radius:4px}.btn-close[data-v-5b8f7dd4]:hover{background:var(--bg3)}.modal-body[data-v-5b8f7dd4]{padding:20px}.modal-desc[data-v-5b8f7dd4]{margin:0 0 12px;font-size:14px;color:var(--text);line-height:1.6}.modal-footer[data-v-5b8f7dd4]{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.pua-font[data-v-5b8f7dd4]{font-family:CHS-PUA,Noto Sans SC,Microsoft YaHei,PingFang SC,sans-serif!important}.btn[data-v-5b8f7dd4]{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-5b8f7dd4]{padding:4px 10px;font-size:12px}.btn-primary[data-v-5b8f7dd4]{background:var(--primary);color:#fff}.btn-primary[data-v-5b8f7dd4]:hover{filter:brightness(1.1)}.btn-outline[data-v-5b8f7dd4]{background:transparent;border-color:var(--border);color:var(--text)}.btn-outline[data-v-5b8f7dd4]:hover{border-color:var(--primary);color:var(--primary)}.btn-info[data-v-5b8f7dd4]{background:#1890ff;color:#fff}.btn-info[data-v-5b8f7dd4]: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-81b16554]{display:flex;flex-direction:column;height:100%;gap:12px}.toolbar[data-v-81b16554]{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-81b16554]{display:flex;align-items:center;gap:12px}.title[data-v-81b16554]{font-size:16px;font-weight:600}.tab-switch[data-v-81b16554]{display:flex;background:var(--bg3);border-radius:6px;padding:2px}.tab-btn[data-v-81b16554]{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-81b16554]:hover{color:var(--text)}.tab-btn.active[data-v-81b16554]{background:var(--primary);color:#fff}.count[data-v-81b16554]{font-size:13px;color:var(--text2);background:var(--bg3);padding:4px 10px;border-radius:4px}.toolbar-right[data-v-81b16554]{display:flex;gap:8px}.main-content[data-v-81b16554]{flex:1;display:flex;gap:12px;min-height:0}.node-panel[data-v-81b16554]{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-81b16554]{padding:12px 16px;font-size:14px;font-weight:600;border-bottom:1px solid var(--border)}.node-list[data-v-81b16554]{flex:1;padding:12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.node-template[data-v-81b16554]{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-81b16554]:hover:not(.disabled){transform:translateY(-2px);box-shadow:var(--shadow)}.node-template.disabled[data-v-81b16554]{opacity:.5;cursor:not-allowed}.template-icon[data-v-81b16554]{font-size:20px;width:28px;text-align:center}.template-info[data-v-81b16554]{flex:1}.template-label[data-v-81b16554]{font-size:13px;font-weight:500}.template-desc[data-v-81b16554]{font-size:11px;color:var(--text3);margin-top:2px}.template-badge[data-v-81b16554]{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-81b16554]{padding:12px;border-top:1px solid var(--border);font-size:12px;color:var(--text3)}.panel-hint p[data-v-81b16554]{margin:4px 0}.flow-wrapper[data-v-81b16554]{flex:1;background:var(--bg2);border-radius:8px;border:1px solid var(--border);overflow:hidden;position:relative}.rule-flow[data-v-81b16554]{width:100%;height:100%}.source-node[data-v-81b16554]{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-81b16554]:hover{transform:scale(1.02)}.source-node.start[data-v-81b16554]{background:#00b42a26;border:2px solid var(--success);color:var(--success)}.source-node.end[data-v-81b16554]{background:#f53f3f26;border:2px solid var(--danger);color:var(--danger)}.source-node.pick[data-v-81b16554]{background:var(--bg);border:2px solid var(--primary);color:var(--primary)}.condition-node[data-v-81b16554]{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-81b16554]:hover{transform:scale(1.02)}.node-icon[data-v-81b16554]{font-size:16px}.node-label[data-v-81b16554]{font-weight:500;font-size:12px;white-space:nowrap}.handle-target[data-v-81b16554],.handle-source[data-v-81b16554]{width:12px!important;height:12px!important;background:var(--primary)!important;border:2px solid var(--bg)!important}.handle-positive[data-v-81b16554]{width:12px!important;height:12px!important;background:var(--success)!important;border:2px solid var(--bg)!important}.handle-negative[data-v-81b16554]{width:12px!important;height:12px!important;background:var(--danger)!important;border:2px solid var(--bg)!important}.edit-panel[data-v-81b16554]{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-81b16554]{padding:12px 16px;border-bottom:1px solid var(--border)}.edit-panel-header h3[data-v-81b16554]{margin:0;font-size:14px;font-weight:600}.edit-panel-body[data-v-81b16554]{padding:16px}.form-row[data-v-81b16554]{margin-bottom:12px}.form-row label[data-v-81b16554]{display:block;font-size:12px;color:var(--text2);margin-bottom:4px}.form-row select[data-v-81b16554],.form-row input[data-v-81b16554]{width:100%}.context-menu[data-v-81b16554]{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-81b16554]{padding:8px 16px;cursor:pointer;font-size:13px;transition:background-color .15s ease}.context-menu-item[data-v-81b16554]:hover{background:var(--primary-bg)}.context-menu-item.danger[data-v-81b16554]{color:var(--danger)}.context-menu-item.danger[data-v-81b16554]: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-879b1f41]{display:flex;flex-direction:column;gap:16px;height:100%}.toolbar[data-v-879b1f41]{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-879b1f41]{display:flex;align-items:center;gap:12px}.title[data-v-879b1f41]{font-size:16px;font-weight:600}.tab-switch[data-v-879b1f41]{display:flex;background:var(--bg3);border-radius:6px;padding:2px}.tab-btn[data-v-879b1f41]{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-879b1f41]:hover{color:var(--text)}.tab-btn.active[data-v-879b1f41]{background:var(--primary);color:#fff}.count[data-v-879b1f41]{font-size:13px;color:var(--text2);background:var(--bg3);padding:4px 10px;border-radius:4px}.encoded-info[data-v-879b1f41]{font-size:13px;color:var(--success);background:#00b42a26;padding:4px 10px;border-radius:4px}.toolbar-right[data-v-879b1f41]{display:flex;align-items:center;gap:8px}.search-panel[data-v-879b1f41]{padding:16px;background:var(--bg2);border-radius:8px;border:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.search-input[data-v-879b1f41]{width:100%}.filter-group[data-v-879b1f41]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-label[data-v-879b1f41]{font-size:13px;color:var(--text2);margin-right:4px}.filter-btn[data-v-879b1f41]{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-879b1f41]:hover{background:var(--bg1);border-color:var(--primary)}.filter-btn.active[data-v-879b1f41]{background:var(--primary-bg);color:var(--primary);border-color:var(--primary)}.filter-btn.filter-complete.active[data-v-879b1f41]{background:#00b42a26;color:var(--success);border-color:var(--success)}.filter-btn.filter-missing.active[data-v-879b1f41]{background:#f53f3f26;color:var(--danger);border-color:var(--danger)}.table-container[data-v-879b1f41]{flex:1;overflow:auto;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.data-table[data-v-879b1f41]{font-size:13px}.data-table th[data-v-879b1f41]{position:sticky;top:0;z-index:1}.char-cell[data-v-879b1f41]{font-size:20px;text-align:center;font-weight:500}.word-cell[data-v-879b1f41]{font-size:18px;font-weight:500}.mono[data-v-879b1f41]{font-family:SF Mono,Consolas,monospace;font-size:12px}.split-cell[data-v-879b1f41]{letter-spacing:1px}.char-group[data-v-879b1f41]{display:inline-flex;align-items:center}.char-sep[data-v-879b1f41]{color:var(--text3);margin:0 4px}.root-part[data-v-879b1f41]{margin-right:2px;padding:1px 2px;border-radius:2px}.root-part.root-has-code[data-v-879b1f41]{color:var(--success);background:#00b42a1a}.root-part.root-no-code[data-v-879b1f41]{color:var(--danger);background:#f53f3f1a}.code-cell[data-v-879b1f41]{font-family:monospace;font-size:13px}.char-code[data-v-879b1f41]{color:var(--primary);font-weight:500;background:var(--primary-bg);padding:2px 6px;border-radius:4px}.no-code[data-v-879b1f41]{color:var(--text3)}.freq-cell[data-v-879b1f41]{font-family:SF Mono,Consolas,monospace;font-size:12px;text-align:right;color:var(--text2)}.status-badge[data-v-879b1f41]{font-size:11px;padding:2px 6px;border-radius:4px}.status-badge.status-complete[data-v-879b1f41]{background:#00b42a26;color:var(--success)}.status-badge.status-missing[data-v-879b1f41]{background:#f53f3f26;color:var(--danger)}.clickable-row[data-v-879b1f41]{cursor:pointer;transition:background-color .15s ease}.clickable-row[data-v-879b1f41]:hover{background:var(--bg3)!important}.pagination[data-v-879b1f41]{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-879b1f41]{font-size:13px;color:var(--text2);min-width:80px;text-align:center}.empty-state[data-v-879b1f41]{padding:60px 20px;text-align:center;color:var(--text2)}.empty-icon[data-v-879b1f41]{font-size:48px;margin-bottom:12px;opacity:.5}.keyboard-heatmap[data-v-515128c5]{padding:16px;background:var(--bg2);border-radius:8px;border:1px solid var(--border)}.heatmap-title[data-v-515128c5]{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.keyboard-container[data-v-515128c5]{display:flex;flex-direction:column;gap:6px;align-items:stretch;width:100%}.keyboard-row[data-v-515128c5]{display:flex;gap:6px;justify-content:center}.key[data-v-515128c5]{flex:1;max-width:52px;min-width:32px;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;font-family:SF Mono,Consolas,monospace;transition:transform .15s ease;cursor:default}.key[data-v-515128c5]:hover{transform:scale(1.1);z-index:1}.key-label[data-v-515128c5]{font-size:clamp(10px,2vw,14px);font-weight:600}.key-usage[data-v-515128c5]{font-size:clamp(8px,1.5vw,10px);opacity:.8}.key-space[data-v-515128c5]{flex:0 0 auto;width:50%;max-width:400px;min-width:160px;aspect-ratio:auto;height:44px}.space-row[data-v-515128c5]{justify-content:center;margin-top:4px}.legend-container[data-v-515128c5]{display:flex;flex-direction:column;gap:8px;margin-top:16px}.legend[data-v-515128c5]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2)}.legend-label[data-v-515128c5]{min-width:50px}.legend-bar[data-v-515128c5]{flex:1;max-width:200px;height:12px;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.legend-gradient-keys[data-v-515128c5]{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-515128c5]{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-515128c5],.legend-max[data-v-515128c5]{font-size:11px;min-width:40px}.legend-max[data-v-515128c5]{text-align:right}.evaluate-page[data-v-ba30f7c3]{display:flex;flex-direction:column;gap:20px;padding:4px}.toolbar[data-v-ba30f7c3]{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-ba30f7c3]{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-ba30f7c3]{display:flex;align-items:center;gap:20px}.config-group[data-v-ba30f7c3]{display:flex;align-items:center;gap:8px}.config-group label[data-v-ba30f7c3]{font-size:13px;color:var(--text2);font-weight:500}.config-input[data-v-ba30f7c3]{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-ba30f7c3]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f133}.tabs[data-v-ba30f7c3]{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-ba30f7c3]{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-ba30f7c3]:hover{background:#ffffff0d;color:var(--text)}.tab-btn.active[data-v-ba30f7c3]{background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);color:#fff;box-shadow:0 4px 12px #6366f166}.sub-tabs[data-v-ba30f7c3]{display:flex;gap:4px;padding:4px;background:var(--bg3);border-radius:10px;margin-bottom:16px;width:fit-content}.sub-tab-btn[data-v-ba30f7c3]{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-ba30f7c3]:hover{background:#ffffff0d;color:var(--text)}.sub-tab-btn.active[data-v-ba30f7c3]{background:var(--primary);color:#fff;box-shadow:0 2px 8px #6366f14d}.action-bar[data-v-ba30f7c3]{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-ba30f7c3]{font-size:13px;color:var(--text3)}.result-panel[data-v-ba30f7c3]{display:flex;flex-direction:column;gap:20px}.table-container[data-v-ba30f7c3]{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-ba30f7c3]{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;text-align:center}.eval-table th[data-v-ba30f7c3],.eval-table td[data-v-ba30f7c3]{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05);white-space:nowrap;min-width:44px}.eval-table th[data-v-ba30f7c3]{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-ba30f7c3]:first-child{border-radius:16px 0 0}.eval-table th[data-v-ba30f7c3]:last-child{border-radius:0 16px 0 0}.eval-table .sticky-col[data-v-ba30f7c3]{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-ba30f7c3]{z-index:3}.eval-table .col-select[data-v-ba30f7c3]{color:#f43f5e!important;font-weight:700}.eval-table td.col-select.clickable[data-v-ba30f7c3]{color:#f43f5e!important}.eval-table td.col-select.clickable[data-v-ba30f7c3]:hover{background:linear-gradient(135deg,#f43f5e,#ec4899);color:#fff!important}.eval-table .row-highlight[data-v-ba30f7c3]{background:#6366f108}.eval-table .row-subtotal[data-v-ba30f7c3]{background:linear-gradient(90deg,rgba(99,102,241,.08) 0%,transparent 100%);font-weight:600}.eval-table .row-total[data-v-ba30f7c3]{background:linear-gradient(90deg,rgba(99,102,241,.12) 0%,transparent 100%);font-weight:700;font-size:14px}.eval-table .row-weight[data-v-ba30f7c3]{background:var(--bg3);font-size:12px;color:var(--text);font-weight:500}.eval-table .row-weight td[data-v-ba30f7c3]{color:var(--text2)}.eval-table td.clickable[data-v-ba30f7c3]{cursor:pointer;color:var(--primary);font-weight:600;transition:all .2s ease}.eval-table td.clickable[data-v-ba30f7c3]: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-ba30f7c3]{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.heatmap-container[data-v-ba30f7c3]{background:var(--bg2);border-radius:16px;border:1px solid rgba(255,255,255,.05);padding:20px;box-shadow:0 4px 24px #0000000f}.scheme-title-row[data-v-ba30f7c3]{background:linear-gradient(135deg,#6366f114,#8b5cf60d)}.scheme-title-cell[data-v-ba30f7c3]{padding:16px!important;text-align:center!important;border-radius:16px 16px 0 0}.scheme-title-content[data-v-ba30f7c3]{display:flex;align-items:baseline;justify-content:center;gap:8px}.scheme-name-text[data-v-ba30f7c3]{font-size:20px;font-weight:700;color:var(--text);cursor:pointer;transition:color .2s ease}.scheme-name-text[data-v-ba30f7c3]:hover{color:var(--primary)}.scheme-name-input[data-v-ba30f7c3]{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-ba30f7c3]{font-size:14px;font-weight:500;color:var(--text2)}.edit-icon[data-v-ba30f7c3]{color:var(--text3);cursor:pointer;transition:color .2s ease}.edit-icon[data-v-ba30f7c3]:hover{color:var(--primary)}.upload-section[data-v-ba30f7c3]{display:flex;flex-direction:column;gap:12px}.upload-area[data-v-ba30f7c3]{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-ba30f7c3]:hover{border-color:var(--primary);background:linear-gradient(135deg,#6366f10d,#8b5cf60d)}.upload-icon[data-v-ba30f7c3]{font-size:28px;opacity:.7}.upload-text[data-v-ba30f7c3]{text-align:center}.upload-text p[data-v-ba30f7c3]{margin:6px 0}.file-name[data-v-ba30f7c3]{font-weight:600;color:var(--primary);font-size:15px}.file-info[data-v-ba30f7c3]{font-size:13px;color:var(--text2)}.upload-hint[data-v-ba30f7c3]{font-size:12px;color:var(--text3)}.rule-config[data-v-ba30f7c3]{padding:16px 20px;background:var(--bg2);border-radius:12px;border:1px solid rgba(255,255,255,.05)}.rule-title[data-v-ba30f7c3]{font-size:14px;font-weight:600;color:var(--text);margin:0 0 8px}.rule-hint[data-v-ba30f7c3]{font-size:12px;color:var(--text3);margin:0 0 16px;line-height:1.5}.rule-inputs[data-v-ba30f7c3]{display:flex;flex-direction:column;gap:12px}.rule-item[data-v-ba30f7c3]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rule-item label[data-v-ba30f7c3]{font-size:13px;font-weight:500;color:var(--text2);min-width:70px}.rule-input[data-v-ba30f7c3]{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-ba30f7c3]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f133}.rule-input[data-v-ba30f7c3]::placeholder{color:var(--text3)}.rule-example[data-v-ba30f7c3]{font-size:12px;color:var(--text3);font-style:italic}.empty-state[data-v-ba30f7c3]{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-ba30f7c3]{font-size:64px;margin-bottom:16px;opacity:.4}.btn[data-v-ba30f7c3]{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-ba30f7c3]{background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);color:#fff;box-shadow:0 4px 12px #6366f14d}.btn-primary[data-v-ba30f7c3]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.btn-primary[data-v-ba30f7c3]:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary[data-v-ba30f7c3]{background:var(--bg3);color:var(--text);border:1px solid rgba(255,255,255,.1)}.btn-secondary[data-v-ba30f7c3]:hover{background:var(--bg1);border-color:#fff3}.modal-overlay[data-v-ba30f7c3]{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-ba30f7c3]{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-ba30f7c3]{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-ba30f7c3]{margin:0;font-size:15px;font-weight:600;color:var(--text)}.modal-close[data-v-ba30f7c3]{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-ba30f7c3]:hover{background:#f43f5e;color:#fff}.modal-body[data-v-ba30f7c3]{padding:16px 20px;overflow-y:auto;background:var(--bg2)}.detail-table[data-v-ba30f7c3]{width:100%;border-collapse:collapse;font-size:13px}.detail-table th[data-v-ba30f7c3],.detail-table td[data-v-ba30f7c3]{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border)}.detail-table th[data-v-ba30f7c3]{background:var(--bg3);font-weight:600;font-size:12px;color:var(--text2)}.detail-table tr[data-v-ba30f7c3]:hover{background:var(--bg3)}.detail-table tr.is-lack[data-v-ba30f7c3]{background:#f43f5e14}.detail-table tr.is-lack[data-v-ba30f7c3]:hover{background:#f43f5e1f}.detail-table .char-col[data-v-ba30f7c3]{font-size:18px;text-align:center;font-weight:500}.detail-table .code-col[data-v-ba30f7c3]{font-family:SF Mono,JetBrains Mono,Consolas,monospace;color:var(--primary);font-weight:500}.practice-page[data-v-45cf114e]{display:flex;flex-direction:column;height:100%;gap:12px;padding:16px}.progress-header[data-v-45cf114e]{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.progress-info[data-v-45cf114e]{display:flex;align-items:center;gap:8px}.header-actions[data-v-45cf114e]{display:flex;align-items:center;gap:12px}.hint-toggle[data-v-45cf114e]{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-45cf114e]{width:14px;height:14px;cursor:pointer;accent-color:var(--primary)}.hint-toggle[data-v-45cf114e]:hover{color:var(--text2)}.progress-text[data-v-45cf114e]{font-size:13px;font-weight:500;color:var(--text2);font-variant-numeric:tabular-nums}.reset-btn[data-v-45cf114e]{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-45cf114e]:hover{background:var(--bg3);color:var(--text2)}.progress-bar[data-v-45cf114e]{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden}.progress-fill[data-v-45cf114e]{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-45cf114e]{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-45cf114e]{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-45cf114e]{background:color-mix(in srgb,#f59e0b 4%,var(--bg2));border-color:color-mix(in srgb,#f59e0b 20%,var(--border))}.card-display[data-v-45cf114e]{display:flex;flex-direction:column;align-items:center;gap:12px}.root-char[data-v-45cf114e]{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-45cf114e]{animation:shake-45cf114e .4s ease-in-out;color:var(--danger)}@keyframes shake-45cf114e{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-45cf114e]{font-size:15px;color:var(--text3);letter-spacing:4px}.input-area[data-v-45cf114e]{width:100%;max-width:240px}.code-input[data-v-45cf114e]{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-45cf114e]::placeholder{color:var(--text3);font-weight:400;letter-spacing:1px}.code-input[data-v-45cf114e]:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.code-input.error[data-v-45cf114e]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 12%,transparent)}.hint-area[data-v-45cf114e]{display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(4px);transition:all .3s ease;pointer-events:none}.hint-area.visible[data-v-45cf114e]{opacity:1;transform:translateY(0);pointer-events:auto}.hint-label[data-v-45cf114e]{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:1px}.hint-code[data-v-45cf114e]{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-45cf114e]{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-45cf114e]{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-45cf114e]{font-size:18px;font-weight:600;color:var(--text)}.continue-btn[data-v-45cf114e]{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-45cf114e]:hover{background:color-mix(in srgb,var(--primary) 85%,black);transform:translateY(-1px)}.empty-state[data-v-45cf114e]{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-45cf114e]{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-45cf114e]{margin:0;font-size:14px}.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-f138b09f]{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-f138b09f]{grid-template-columns:var(--nav-width) 1fr}.main-layout.nav-collapsed[data-v-f138b09f]{grid-template-columns:var(--nav-collapsed-width) 1fr 300px}.main-layout.nav-collapsed.no-detail[data-v-f138b09f]{grid-template-columns:var(--nav-collapsed-width) 1fr}.center[data-v-f138b09f]{overflow-y:auto;padding:24px;background:var(--bg);transition:background-color .3s ease}.placeholder-page[data-v-f138b09f]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text2);font-size:16px}.loading-page[data-v-f138b09f]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text2);gap:16px}.loading-spinner[data-v-f138b09f]{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin-f138b09f 1s linear infinite}@keyframes spin-f138b09f{to{transform:rotate(360deg)}}.loading-page p[data-v-f138b09f]{font-size:14px;color:var(--text3)}@media (max-width: 900px){.main-layout[data-v-f138b09f]{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}
