.dropzone[data-v-8c927b05]{padding:28px 20px;text-align:center;border:1.5px dashed var(--c-border);cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast);min-height:190px;display:flex;flex-direction:column;justify-content:center}.dropzone.filled[data-v-8c927b05]{cursor:default;border-style:solid}.dropzone.dragging[data-v-8c927b05]{border-color:var(--c-primary);background:var(--c-primary-weak);transform:scale(1.012)}.dropzone.error[data-v-8c927b05]{border-color:var(--diff-deleted-accent)}.dz-empty[data-v-8c927b05]{color:var(--c-text-2);display:flex;flex-direction:column;align-items:center;gap:6px}.dz-empty svg[data-v-8c927b05]{color:var(--c-text-3);margin-bottom:4px}.dropzone:hover:not(.filled) .dz-empty svg[data-v-8c927b05]{color:var(--c-primary)}.dz-title[data-v-8c927b05]{font-size:15px;font-weight:600;color:var(--c-text)}.dz-hint[data-v-8c927b05]{font-size:13px}.dz-formats[data-v-8c927b05]{font-size:12px;color:var(--c-text-3);margin-top:4px}.dz-parsing[data-v-8c927b05]{display:flex;flex-direction:column;align-items:center;gap:12px}.dz-filled[data-v-8c927b05]{text-align:left}.dz-file-head[data-v-8c927b05]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.file-icon[data-v-8c927b05]{flex:none}.dz-name[data-v-8c927b05]{font-weight:600;font-size:14px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dz-size[data-v-8c927b05]{color:var(--c-text-3);font-size:12.5px}.dz-ok[data-v-8c927b05]{color:var(--diff-added-accent);font-size:12.5px;font-weight:500}.dz-remove[data-v-8c927b05]{margin-left:auto;border:none;background:transparent;cursor:pointer;color:var(--c-text-3);padding:4px;border-radius:6px;display:inline-flex}.dz-remove[data-v-8c927b05]:hover{color:var(--diff-deleted-accent);background:var(--diff-deleted-bg)}.dz-error[data-v-8c927b05]{margin-top:10px;color:var(--diff-deleted-accent);font-size:13px}.vgrid[data-v-de98ecd4]{overflow:auto;position:relative;background:var(--c-surface);font-size:13px;contain:strict}.vgrid-inner[data-v-de98ecd4]{position:relative}.vgrid-header[data-v-de98ecd4]{position:sticky;top:0;z-index:5;height:40px;background:var(--c-surface-2);border-bottom:1px solid var(--c-border);display:block}.vgrid-gutter-head[data-v-de98ecd4]{position:sticky;left:0;z-index:6;float:left;width:84px;height:40px;line-height:40px;padding-left:10px;font-size:12px;color:var(--c-text-3);background:var(--c-surface-2);border-right:1px solid var(--c-border);box-sizing:border-box}.vgrid-hcell[data-v-de98ecd4]{position:absolute;top:0;height:40px;line-height:40px;padding:0 10px;font-size:12.5px;font-weight:600;color:var(--c-text-2);background:var(--c-surface-2);border-right:1px solid var(--c-border-weak);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.vgrid-row[data-v-de98ecd4]{position:absolute;left:0;right:0}.vgrid-gutter[data-v-de98ecd4]{position:sticky;left:0;z-index:2;float:left;width:84px;height:32px;line-height:32px;padding-left:8px;font-size:12px;color:var(--c-text-3);background:var(--c-surface-2);border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border-weak);display:flex;align-items:center;gap:5px;box-sizing:border-box}.gutter-dot[data-v-de98ecd4]{width:7px;height:7px;border-radius:50%;flex:none;background:transparent}.vgrid-gutter.g-dot-modified .gutter-dot[data-v-de98ecd4]{background:var(--diff-modified-accent)}.vgrid-gutter.g-dot-added .gutter-dot[data-v-de98ecd4]{background:var(--diff-added-accent)}.vgrid-gutter.g-dot-deleted .gutter-dot[data-v-de98ecd4]{background:var(--diff-deleted-accent)}.gutter-text[data-v-de98ecd4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgrid-cell[data-v-de98ecd4]{position:absolute;padding:0 10px;line-height:31px;border-right:1px solid var(--c-border-weak);border-bottom:1px solid var(--c-border-weak);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;box-sizing:border-box;background:var(--c-surface)}.cell-text[data-v-de98ecd4]{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.c-modified[data-v-de98ecd4]{background:var(--diff-modified-cell);box-shadow:inset 0 0 0 1.5px var(--diff-modified-accent);font-weight:500}.c-added[data-v-de98ecd4]{background:var(--diff-added-bg);box-shadow:inset 0 0 0 1.5px var(--diff-added-accent)}.c-deleted[data-v-de98ecd4]{background:var(--diff-deleted-bg);box-shadow:inset 0 0 0 1.5px var(--diff-deleted-accent);text-decoration-color:#00000040}.c-search-hit[data-v-de98ecd4]{background:#fef08a;box-shadow:inset 0 0 0 1.5px #ca8a04}.c-modified.c-search-hit[data-v-de98ecd4]{background:#fde68a}.dual-grid[data-v-b1cd7c4c]{display:flex;gap:0;border:1px solid var(--c-border);border-radius:var(--radius-md);overflow:hidden;background:var(--c-surface)}.dual-pane[data-v-b1cd7c4c]{flex:1;min-width:0}.dual-divider[data-v-b1cd7c4c]{width:3px;background:var(--c-border);flex:none}.dual-label[data-v-b1cd7c4c]{height:34px;display:flex;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;color:var(--c-text-2);background:var(--c-surface-2);border-bottom:1px solid var(--c-border)}.dual-label[data-v-b1cd7c4c] .chip{transform:scale(.92);transform-origin:left center}.legend[data-v-54cfd965]{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.nav[data-v-b7aad7d5]{display:inline-flex;align-items:center;gap:8px}.nav-pos[data-v-b7aad7d5]{font-size:12.5px;color:var(--c-text-3);min-width:64px;text-align:center;font-variant-numeric:tabular-nums}.empty[data-v-2aa9b3b3]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 20px;color:var(--c-text-3);text-align:center}.empty svg[data-v-2aa9b3b3]{color:#c8ccd4}.empty-title[data-v-2aa9b3b3]{font-size:15px;font-weight:600;color:var(--c-text-2)}.empty-hint[data-v-2aa9b3b3]{font-size:13px;max-width:380px;line-height:1.6}.upload-row[data-v-a269a045]{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:stretch}.vs-badge[data-v-a269a045]{align-self:center;font-size:14px;font-weight:700;color:var(--c-text-3);background:var(--c-surface);border:1px solid var(--c-border);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.config-bar[data-v-a269a045]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;flex-wrap:wrap}.cfg-left[data-v-a269a045]{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.cfg-field[data-v-a269a045]{display:inline-flex;align-items:center;gap:8px}.cfg-label[data-v-a269a045]{font-size:13px;color:var(--c-text-2)}.cfg-toggle[data-v-a269a045]{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--c-text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.cfg-sheets[data-v-a269a045]{font-size:12.5px}.loading-card[data-v-a269a045]{display:flex;align-items:center;gap:12px;padding:20px;color:var(--c-text-2)}.all-same-card[data-v-a269a045]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 20px}.all-same-title[data-v-a269a045]{font-size:17px;font-weight:700;color:var(--c-text)}.toolbar[data-v-a269a045]{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;flex-wrap:wrap}.toolbar-right[data-v-a269a045]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search[data-v-a269a045]{width:160px}.filter-note[data-v-a269a045]{font-size:12px;padding-left:4px}.dot-l[data-v-a269a045],.dot-r[data-v-a269a045]{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-l[data-v-a269a045]{background:#94a3b8}.dot-r[data-v-a269a045]{background:var(--c-primary)}.popover-mask[data-v-a269a045]{position:fixed;inset:0;z-index:90}.popover[data-v-a269a045]{position:fixed;z-index:95;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:12px;width:320px;margin-top:8px;display:flex;flex-direction:column;gap:8px}.pop-row[data-v-a269a045]{display:flex;align-items:flex-start;gap:8px}.pop-tag[data-v-a269a045]{flex:none;font-size:11.5px;font-weight:600;border-radius:5px;padding:2px 7px;margin-top:1px}.tag-left[data-v-a269a045]{background:var(--chip-neutral-bg);color:var(--chip-neutral-text)}.tag-right[data-v-a269a045]{background:var(--c-primary-weak);color:var(--c-primary)}.pop-val[data-v-a269a045]{flex:1;font-size:13px;word-break:break-all;max-height:100px;overflow:auto}.pop-copy[data-v-a269a045]{flex:none;border:1px solid var(--c-border);background:transparent;border-radius:5px;font-size:11.5px;padding:2px 7px;cursor:pointer;color:var(--c-text-2);font-family:inherit}.pop-copy[data-v-a269a045]:hover{color:var(--c-primary);border-color:var(--c-primary-border)}.pop-foot[data-v-a269a045]{font-size:12px;color:var(--c-text-3);border-top:1px solid var(--c-border-weak);padding-top:8px}.upload-row[data-v-5e7bc906]{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:stretch}.vs-badge[data-v-5e7bc906]{align-self:center;font-size:14px;font-weight:700;color:var(--c-text-3);background:var(--c-surface);border:1px solid var(--c-border);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.config-bar[data-v-5e7bc906]{display:flex;align-items:center;gap:16px;padding:12px 16px;flex-wrap:wrap}.col-pick[data-v-5e7bc906]{display:inline-flex;align-items:center;gap:8px}.cfg-label[data-v-5e7bc906]{font-size:13px;color:var(--c-text-2)}.cfg-toggle[data-v-5e7bc906]{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--c-text-2);cursor:pointer}.sheet-switch[data-v-5e7bc906]{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.select-sm[data-v-5e7bc906]{padding:4px 8px;font-size:12.5px}.paste-box[data-v-5e7bc906]{padding:12px 16px}.paste-box summary[data-v-5e7bc906]{cursor:pointer;font-size:13px;color:var(--c-text-2);-webkit-user-select:none;user-select:none}.paste-grid[data-v-5e7bc906]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.paste-ta[data-v-5e7bc906]{min-height:140px;resize:vertical;font-family:var(--mono);font-size:12.5px}.stat-row[data-v-5e7bc906]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat-card[data-v-5e7bc906]{padding:16px;text-align:center}.stat-num[data-v-5e7bc906]{font-size:26px;font-weight:700;color:var(--c-primary);font-variant-numeric:tabular-nums}.stat-num.only-l[data-v-5e7bc906]{color:var(--diff-modified-accent)}.stat-num.only-r[data-v-5e7bc906]{color:var(--diff-deleted-accent)}.stat-num.dim[data-v-5e7bc906]{font-size:20px;color:var(--c-text-2)}.stat-label[data-v-5e7bc906]{font-size:12.5px;color:var(--c-text-3);margin-top:2px}.toolbar[data-v-5e7bc906]{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;flex-wrap:wrap}.toolbar-right[data-v-5e7bc906]{display:flex;align-items:center;gap:10px}.seg[data-v-5e7bc906]{display:inline-flex;background:var(--c-surface-2);border-radius:var(--radius-sm);padding:3px;gap:2px}.seg-btn[data-v-5e7bc906]{border:none;background:transparent;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;color:var(--c-text-2);cursor:pointer;font-family:inherit;transition:all var(--t-fast)}.seg-btn.active[data-v-5e7bc906]{background:var(--c-surface);color:var(--c-primary);box-shadow:var(--shadow-card)}.search[data-v-5e7bc906]{width:150px}.list-card[data-v-5e7bc906]{padding:6px 0;max-height:480px;overflow:auto}.list-row[data-v-5e7bc906]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 16px;border-bottom:1px solid var(--c-border-weak);font-size:13.5px}.list-row[data-v-5e7bc906]:last-child{border-bottom:none}.list-val[data-v-5e7bc906]{font-family:var(--mono);word-break:break-all}.list-extra[data-v-5e7bc906]{color:var(--c-text-3);font-size:12px;flex:none}.row-inter[data-v-5e7bc906]{background:var(--c-primary-weak)}.row-only-l[data-v-5e7bc906]{background:var(--diff-modified-bg)}.row-only-r[data-v-5e7bc906]{background:var(--diff-deleted-bg)}.empty-list[data-v-5e7bc906]{text-align:center;padding:32px}.list-more[data-v-5e7bc906]{text-align:center;padding:10px;font-size:12px;border-top:1px solid var(--c-border-weak)}.upload-row[data-v-8fe71c5c]{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:stretch}.vs-badge[data-v-8fe71c5c]{align-self:center;font-size:14px;font-weight:700;color:var(--c-text-3);background:var(--c-surface);border:1px solid var(--c-border);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.config-card[data-v-8fe71c5c]{padding:14px 16px;display:flex;flex-direction:column;gap:12px}.cfg-row[data-v-8fe71c5c]{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.cfg-field[data-v-8fe71c5c]{display:inline-flex;align-items:center;gap:8px}.cfg-label[data-v-8fe71c5c]{font-size:13px;color:var(--c-text-2)}.cfg-toggle[data-v-8fe71c5c]{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--c-text-2);cursor:pointer}.sheet-switch[data-v-8fe71c5c]{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.select-sm[data-v-8fe71c5c]{padding:4px 8px;font-size:12.5px}.val-cols[data-v-8fe71c5c]{display:flex;gap:6px;flex-wrap:wrap}.val-col-chip[data-v-8fe71c5c]{font-size:12.5px;padding:3px 10px;border-radius:999px;cursor:pointer;border:1px solid var(--c-border);color:var(--c-text-2);background:var(--c-surface);-webkit-user-select:none;user-select:none;transition:all var(--t-fast)}.val-col-chip.on[data-v-8fe71c5c]{background:var(--c-primary-weak);border-color:var(--c-primary-border);color:var(--c-primary);font-weight:500}.val-col-chip.key[data-v-8fe71c5c]{opacity:.45;cursor:not-allowed}.loading-card[data-v-8fe71c5c]{display:flex;align-items:center;gap:12px;padding:20px;color:var(--c-text-2)}.toolbar[data-v-8fe71c5c]{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;flex-wrap:wrap}.chips[data-v-8fe71c5c]{display:flex;gap:8px;flex-wrap:wrap}.toolbar-right[data-v-8fe71c5c]{display:flex;align-items:center;gap:10px}.search[data-v-8fe71c5c]{width:150px}.table-card[data-v-8fe71c5c]{overflow:auto;max-height:560px}.km-table[data-v-8fe71c5c]{border-collapse:collapse;width:100%;font-size:13px}.km-table th[data-v-8fe71c5c]{position:sticky;top:0;background:var(--c-surface-2);z-index:2;text-align:left;padding:9px 14px;font-size:12.5px;color:var(--c-text-2);border-bottom:1px solid var(--c-border);white-space:nowrap}.km-table td[data-v-8fe71c5c]{padding:7px 14px;border-bottom:1px solid var(--c-border-weak);white-space:nowrap}.km-table tbody tr[data-v-8fe71c5c]:hover{background:var(--c-surface-2)}tr.km-mismatch[data-v-8fe71c5c]{background:var(--diff-modified-bg)}tr.km-mismatch[data-v-8fe71c5c]:hover{background:#fff3d6}tr.km-only-left[data-v-8fe71c5c]{background:var(--diff-deleted-bg)}tr.km-only-right[data-v-8fe71c5c]{background:var(--diff-added-bg)}.col-key[data-v-8fe71c5c]{font-weight:600;font-family:var(--mono)}.km-diff[data-v-8fe71c5c]{color:var(--diff-deleted-accent);font-weight:500}.km-equal[data-v-8fe71c5c]{color:var(--c-text-2)}.dup-badge[data-v-8fe71c5c]{font-size:10.5px;background:#dbeafe;color:#1e40af;border-radius:4px;padding:1px 5px;margin-left:6px;vertical-align:1px}.empty-list[data-v-8fe71c5c]{text-align:center;padding:36px}.list-more[data-v-8fe71c5c]{text-align:center;padding:10px;font-size:12px;border-top:1px solid var(--c-border-weak)}.app-header[data-v-968054fb]{position:sticky;top:0;z-index:50;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--c-border)}.header-inner[data-v-968054fb]{max-width:1280px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand[data-v-968054fb]{display:flex;align-items:center;gap:10px}.brand-name[data-v-968054fb]{font-size:17px;font-weight:700;letter-spacing:.2px}.brand-sub[data-v-968054fb]{font-size:12px;color:var(--c-text-3)}.privacy-badge[data-v-968054fb]{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:#166534;background:var(--chip-added-bg);border:1px solid #bbf7d0;border-radius:999px;padding:5px 12px}.app-main[data-v-968054fb]{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:24px 24px 40px;display:flex;flex-direction:column;gap:20px}.mode-tabs[data-v-968054fb]{display:flex;padding:6px;gap:6px}.mode-tab[data-v-968054fb]{flex:1;border:none;background:transparent;border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:2px;transition:background var(--t-fast),box-shadow var(--t-fast);font-family:inherit}.mode-tab[data-v-968054fb]:hover{background:var(--c-surface-2)}.mode-tab.active[data-v-968054fb]{background:var(--c-primary-weak);box-shadow:inset 0 0 0 1.5px var(--c-primary-border)}.mt-label[data-v-968054fb]{font-size:14.5px;font-weight:600;color:var(--c-text)}.mode-tab.active .mt-label[data-v-968054fb]{color:var(--c-primary)}.mt-desc[data-v-968054fb]{font-size:12px;color:var(--c-text-3)}.app-footer[data-v-968054fb]{text-align:center;font-size:12.5px;color:var(--c-text-3);padding:8px 0 0}.faq[data-v-968054fb]{padding:20px 24px}.faq-title[data-v-968054fb]{font-size:16px;font-weight:700;margin:0 0 8px}.faq-item[data-v-968054fb]{border-bottom:1px solid var(--c-border-weak)}.faq-item[data-v-968054fb]:last-child{border-bottom:none}.faq-item summary[data-v-968054fb]{cursor:pointer;padding:12px 4px;font-size:14px;font-weight:600;color:var(--c-text);list-style-position:outside;transition:color var(--t-fast)}.faq-item summary[data-v-968054fb]:hover{color:var(--c-primary)}.faq-item summary[data-v-968054fb]::marker{color:var(--c-text-3)}.faq-item p[data-v-968054fb]{margin:0;padding:0 4px 14px;font-size:13.5px;line-height:1.7;color:var(--c-text-2)}.app-footer a[data-v-968054fb]{color:var(--c-primary);text-decoration:none;margin-left:8px}.app-footer a[data-v-968054fb]:hover{text-decoration:underline}.toast[data-v-968054fb]{position:fixed;top:68px;left:50%;transform:translate(-50%);z-index:100;max-width:480px;border-radius:var(--radius-md);padding:10px 18px;font-size:13.5px;box-shadow:var(--shadow-pop);background:var(--c-surface);border:1px solid var(--c-border)}.toast-error[data-v-968054fb]{border-color:#fecaca;color:var(--chip-deleted-text);background:#fff5f5}.toast-success[data-v-968054fb]{border-color:#bbf7d0;color:var(--chip-added-text);background:#f2fdf5}:root{--c-primary: #4f46e5;--c-primary-hover: #4338ca;--c-primary-weak: #eef2ff;--c-primary-border: #c7d2fe;--c-bg: #f6f7fa;--c-surface: #ffffff;--c-surface-2: #fafbfc;--c-border: #e5e7eb;--c-border-weak: #f0f1f4;--c-text: #111827;--c-text-2: #6b7280;--c-text-3: #9ca3af;--diff-modified-bg: #fff7e6;--diff-modified-cell: #fff3d6;--diff-modified-accent: #d48806;--diff-added-bg: #f0fdf4;--diff-added-accent: #16a34a;--diff-deleted-bg: #fef2f2;--diff-deleted-accent: #dc2626;--diff-info: #2563eb;--chip-modified-bg: #fef3c7;--chip-modified-text: #92400e;--chip-added-bg: #dcfce7;--chip-added-text: #166534;--chip-deleted-bg: #fee2e2;--chip-deleted-text: #991b1b;--chip-neutral-bg: #e5e7eb;--chip-neutral-text: #374151;--radius-lg: 16px;--radius-md: 10px;--radius-sm: 8px;--shadow-card: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--shadow-pop: 0 4px 6px -2px rgba(16, 24, 40, .05), 0 12px 20px -4px rgba(16, 24, 40, .12);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--font: "PingFang SC", "Microsoft YaHei", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "SF Mono", "Cascadia Code", Consolas, monospace;--row-h: 32px;--header-h: 40px;--col-w: 160px;--t-fast: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);font-size:14px;line-height:1.55;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased}#app{min-height:100%;display:flex;flex-direction:column}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-primary);color:#fff}.btn-primary:not(:disabled):hover{background:var(--c-primary-hover);box-shadow:0 1px 4px #4f46e559}.btn-ghost{background:var(--c-surface);border-color:var(--c-border);color:var(--c-text)}.btn-ghost:not(:disabled):hover{border-color:var(--c-primary-border);color:var(--c-primary);background:var(--c-primary-weak)}.btn-sm{padding:5px 10px;font-size:13px}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 10px;font-size:12.5px;font-weight:500;line-height:1.7;white-space:nowrap}.chip .dot{width:7px;height:7px;border-radius:50%;flex:none}.chip-modified{background:var(--chip-modified-bg);color:var(--chip-modified-text)}.chip-modified .dot{background:var(--diff-modified-accent)}.chip-added{background:var(--chip-added-bg);color:var(--chip-added-text)}.chip-added .dot{background:var(--diff-added-accent)}.chip-deleted{background:var(--chip-deleted-bg);color:var(--chip-deleted-text)}.chip-deleted .dot{background:var(--diff-deleted-accent)}.chip-neutral{background:var(--chip-neutral-bg);color:var(--chip-neutral-text)}.chip-neutral .dot{background:var(--c-text-3)}.chip-info{background:#dbeafe;color:#1e40af}.chip-info .dot{background:var(--diff-info)}.chip-toggle{cursor:pointer;border:1px solid transparent;transition:opacity var(--t-fast),border-color var(--t-fast)}.chip-toggle:hover{opacity:.85}.chip-toggle.off{opacity:.4;filter:grayscale(.6)}.select,.input{border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:7px 10px;font-size:13.5px;font-family:inherit;color:var(--c-text);background:var(--c-surface);outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.select:focus,.input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px #4f46e51f}.select{cursor:pointer;padding-right:28px}.switch{position:relative;width:34px;height:20px;border-radius:999px;background:#d1d5db;cursor:pointer;transition:background var(--t-fast);flex:none;border:none;padding:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform var(--t-fast)}.switch.on{background:var(--c-primary)}.switch.on:after{transform:translate(14px)}.text-2{color:var(--c-text-2)}.text-3{color:var(--c-text-3)}.mono{font-family:var(--mono)}.fade-enter-active,.fade-leave-active{transition:opacity .15s ease}.fade-enter-from,.fade-leave-to{opacity:0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:18px;height:18px;border:2px solid rgba(79,70,229,.25);border-top-color:var(--c-primary);border-radius:50%;animation:spin .7s linear infinite;flex:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,#eef0f3 25%,#f7f8fa,#eef0f3 65%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}
