:root{--page-bg:#0d1117;--surface:#161b22;--surface-raised:#21262d;--border:#30363d;--text:#e6edf3;--btn-text:#c9d1d9;--muted:#8b949e;--accent:#58a6ff;--accent-soft:#1a2740;--accent-text:#79c0ff;--success:#3fb950;--success-soft:#12261e;--danger:#f85149;--warning:#d29922;--warning-soft:#2b2111;--radius:8px;--sans:system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--mono:"SF Mono", "Fira Code", "Cascadia Code", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:16px/1.5 var(--sans);color:var(--text);background:var(--page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{background:var(--page-bg);min-height:100vh;margin:0}h1,h2,h3,p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:24px}.button{border:1px solid var(--border);background:var(--surface-raised);color:var(--btn-text);cursor:pointer;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;line-height:1.5;transition:background-color .15s,border-color .15s;display:inline-block}.button:hover{text-decoration:none}.button:hover:not(:disabled){border-color:var(--muted);background:var(--border)}.button:disabled{opacity:.6;cursor:default}.button--primary{border-color:var(--accent);background:var(--accent);color:var(--page-bg)}.button--primary:hover:not(:disabled){border-color:var(--accent-text);background:var(--accent-text)}.tag{background:var(--accent-soft);color:var(--accent-text);border:1px solid #0000;border-radius:999px;padding:2px 10px;font-size:.8125rem}button.tag{cursor:pointer}button.tag:hover{border-color:var(--accent)}.tag[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--page-bg)}.app{flex-direction:column;min-height:100vh;display:flex}.app__main{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:24px}.app__main--wide{max-width:1200px}.app__workspace{flex-direction:column;gap:16px;display:flex}.app__notice{border:1px solid var(--success);border-radius:var(--radius);background:var(--success-soft);color:var(--success);padding:10px 16px;font-size:.875rem}.app__notice--warning{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}@media (width<=600px){.app__main{padding:16px}}.app-footer{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:center;gap:8px 24px;padding:16px 24px;font-size:.8125rem;display:flex}.language-switcher{gap:4px;display:flex}.language-switcher__option{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:.9rem;font-weight:500;transition:color .15s}.language-switcher__option:hover{color:var(--text)}.language-switcher__option[aria-pressed=true]{background:var(--surface-raised);color:var(--text);font-weight:700}.app-header{width:100%;max-width:1000px;margin:0 auto;padding:24px 24px 8px}.app-header--wide{max-width:1200px}.app-header__nav{justify-content:space-between;align-items:center;display:flex}.app-header__logo{color:var(--text);font-weight:600;transition:opacity .15s}.app-header__logo:hover{opacity:.75;text-decoration:none}@media (width<=600px){.app-header{padding:16px 16px 4px}}.data-table{flex-direction:column;gap:16px;padding:0;display:flex;overflow:hidden}.data-table__scroll{max-height:60vh;overflow:auto}.data-table table{border-collapse:collapse;width:100%;font-size:.8125rem}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;white-space:pre;text-overflow:ellipsis;max-width:280px;padding:6px 12px;overflow:hidden}.data-table td{font-family:var(--mono)}.data-table th{z-index:1;background:var(--surface-raised);padding:0;position:sticky;top:0}.data-table th button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;padding:8px 12px;font-weight:600}.data-table th button:hover{color:var(--accent-text)}.data-table [aria-selected=true]{background:var(--accent-soft)}.data-table th[aria-selected=true] button{color:var(--accent-text)}.data-table__index{width:1%;color:var(--muted);-webkit-user-select:none;user-select:none;text-align:right!important}.data-table th.data-table__index{padding:8px 12px}.data-table__empty{color:var(--muted);font-family:var(--sans);font-style:italic}.data-table__pagination{color:var(--muted);justify-content:center;align-items:center;gap:16px;padding:0 16px 16px;font-size:.8125rem;display:flex}.dataset-summary{flex-direction:column;gap:16px;display:flex}.dataset-summary__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dataset-summary__actions{flex-wrap:wrap;gap:8px;display:flex}.dataset-summary__modified{color:var(--success)}.dataset-summary__title{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.dataset-summary__privacy{border:1px solid var(--success);background:var(--success-soft);color:var(--success);border-radius:999px;padding:2px 10px;font-size:.75rem}.dataset-summary__file{word-break:break-all;font-size:1.125rem;font-weight:600}.dataset-summary__stats{color:var(--muted);font-size:.875rem}.dataset-summary__label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:600}.dataset-summary__sheet{align-items:center;gap:12px;display:flex}.dataset-summary__sheet select{border:1px solid var(--border);background:var(--page-bg);color:var(--text);font:inherit;border-radius:6px;padding:6px 10px;font-size:.875rem}.dataset-summary__columns{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.visible-text{font-family:var(--mono);white-space:pre}.visible-text__space{color:var(--muted);opacity:.6}.visible-text__empty{color:var(--muted);font-style:italic}.duplicates{flex-direction:column;gap:16px;display:flex}.duplicates__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.duplicates__modes{gap:8px;display:flex}.duplicates__modes .button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.duplicates__score{color:var(--accent-text);text-decoration:none!important}.duplicates__options{flex-direction:column;gap:10px;display:flex}.duplicates__label{color:var(--muted);font-size:.8125rem}.duplicates__columns{flex-wrap:wrap;gap:8px;display:flex}.duplicates__groups{flex-direction:column;gap:12px;max-height:60vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.duplicates__group{border:1px solid var(--border);border-radius:var(--radius);background:var(--page-bg);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.duplicates__group--excluded{opacity:.5}.duplicates__group-title{font-size:.8125rem;font-weight:600}.duplicates__scroll{overflow-x:auto}.duplicates__scroll table{border-collapse:collapse;width:100%;font-size:.8125rem}.duplicates__scroll th,.duplicates__scroll td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:220px;padding:4px 10px;overflow:hidden}.duplicates__scroll th{color:var(--muted);font-weight:600}.duplicates__scroll [aria-selected=true]{background:var(--accent-soft)}.duplicates__scroll input[type=radio]{accent-color:var(--accent)}.duplicates__removed td{color:var(--danger);text-decoration:line-through}.duplicates__removed td:first-child,.duplicates__removed td:nth-child(2){text-decoration:none}.duplicates__result td{border-top:1px dashed var(--border);color:var(--muted);font-weight:600}.duplicates__result .duplicates__filled{background:var(--success-soft);color:var(--success)}.duplicates__result .duplicates__conflict{background:var(--warning-soft);color:var(--warning);cursor:help}.similar{flex-direction:column;gap:16px;display:flex}.similar__options{flex-wrap:wrap;align-items:flex-end;gap:12px 32px;display:flex}.similar__threshold{min-width:260px;color:var(--muted);flex-direction:column;gap:4px;font-size:.8125rem;display:flex}.similar__threshold input{accent-color:var(--accent)}.similar__groups{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;max-height:50vh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.similar__group{border:1px solid var(--border);border-radius:var(--radius);background:var(--page-bg);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.similar__group--excluded{opacity:.5}.similar__group fieldset{border:none;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.similar__include{font-size:.8125rem;font-weight:600}.similar__legend{color:var(--muted);margin-bottom:2px;padding:0;font-size:.75rem}.similar__variant{cursor:pointer;align-items:center;gap:8px;font-size:.8125rem;display:flex}.similar__variant input[type=radio]{accent-color:var(--accent)}.similar__count{color:var(--muted);margin-left:auto;font-size:.75rem}.similar__custom{border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);font:inherit;font-family:var(--mono);border-radius:6px;flex:1;padding:4px 8px}.similar__custom:focus{border-color:var(--accent)}.export{flex-direction:column;gap:16px;display:flex}.export__split,.export__csv{flex-direction:column;gap:8px;display:flex}.export__field{color:var(--muted);align-items:center;gap:12px;font-size:.875rem;display:flex}.export select{border:1px solid var(--border);background:var(--page-bg);color:var(--text);font:inherit;border-radius:6px;padding:6px 10px;font-size:.8125rem}.export__scroll{border:1px solid var(--border);border-radius:var(--radius);max-height:50vh;overflow:auto}.export__types{border-collapse:collapse;width:100%;font-size:.8125rem}.export__types th,.export__types td{border-bottom:1px solid var(--border);text-align:left;padding:6px 12px}.export__types th{background:var(--surface-raised);position:sticky;top:0}.export__example{max-width:220px;color:var(--muted);font-family:var(--mono);white-space:pre;text-overflow:ellipsis;overflow:hidden}.export__warning{color:var(--warning)}.profile{flex-direction:column;gap:16px;display:flex}.profile__steps{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.profile__step{border:1px solid var(--border);background:var(--page-bg);border-radius:6px;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 12px;font-size:.8125rem;display:flex}.profile__description{flex:1}.profile__step--changes .profile__outcome{color:var(--success)}.profile__step--none .profile__outcome{color:var(--muted)}.profile__step--skipped{border-color:var(--warning)}.profile__step--skipped .profile__outcome{color:var(--warning)}.file-import{border:1px dashed var(--border);background:var(--page-bg);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;transition:border-color .15s,background .15s;display:flex}.file-import--dragging{border-color:var(--accent);background:var(--accent-soft)}.file-import h2{font-size:1.125rem;font-weight:600}.file-import p{color:var(--muted)}.file-import__hint{font-size:.8125rem}.file-import__error{color:var(--danger)!important}.window{border:1px solid var(--border);background:var(--surface);border-radius:14px;box-shadow:0 20px 60px #00000080,0 1px #ffffff0a}.intro{flex-direction:column;gap:24px;margin-top:16px;padding:36px 40px;display:flex}.intro__text{flex-direction:column;gap:12px;display:flex}.intro h1{font-size:2.4rem;line-height:1.15}.intro__subtitle{color:var(--muted);font-size:1.15rem}.intro__description{max-width:720px;color:var(--muted);line-height:1.65}.intro__callout{border:1px solid var(--success);background:var(--success-soft);border-radius:10px;padding:16px 20px;font-size:.9rem}.intro__callout-title{color:var(--success);margin-bottom:6px;font-weight:600}.intro__callout ul{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.intro__actions{flex-wrap:wrap;gap:8px;display:flex}.intro__download-note{color:var(--muted);margin:0;font-size:.85rem}@media (width<=600px){.intro{padding:20px 16px}.intro h1{font-size:1.75rem}}.history{padding:12px 24px}.history summary{color:var(--muted);cursor:pointer;font-size:.875rem}.history__steps{flex-direction:column;gap:2px;margin:12px 0 8px;padding:0;list-style:none;display:flex}.history__step{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:12px;padding:6px 10px;font-size:.8125rem;display:flex}.history__step:hover{background:var(--surface-raised)}.history__step[aria-current=step]{border-color:var(--accent);background:var(--accent-soft)}.history__step[data-undone]{color:var(--muted);text-decoration:line-through}.history__number{min-width:2ch;color:var(--muted);font-family:var(--mono);text-align:right}.history__save{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin-top:12px;padding-top:12px;display:flex}.history__save label{min-width:200px;color:var(--muted);flex-direction:column;flex:1;gap:4px;font-size:.8125rem;display:flex}.history__save input{border:1px solid var(--border);background:var(--page-bg);color:var(--text);font:inherit;border-radius:6px;padding:8px 10px;font-size:.875rem}.history__save input:focus{border-color:var(--accent)}.transform-panel{flex-direction:column;gap:16px;display:flex}.transform-panel__title{font-size:1rem;font-weight:600}.transform-panel__options{flex-wrap:wrap;gap:8px;display:flex}.transform-panel__options .button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.transform-panel__custom{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;display:grid}.transform-panel__custom label{color:var(--muted);flex-direction:column;gap:4px;font-size:.8125rem;display:flex}.transform-panel__custom input[type=text]{border:1px solid var(--border);background:var(--page-bg);color:var(--text);font:inherit;font-family:var(--mono);border-radius:6px;padding:8px 10px;font-size:.875rem}.transform-panel__custom select{border:1px solid var(--border);background:var(--page-bg);color:var(--text);font:inherit;border-radius:6px;padding:8px 10px;font-size:.875rem}.transform-panel__formats{border:none;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.transform-panel__formats legend{color:var(--muted);margin-bottom:4px;padding:0;font-size:.8125rem}.transform-panel__formats code{color:var(--muted);font-family:var(--mono);font-size:.8125rem}.transform-panel__year-limit{flex-direction:column;grid-column:1/-1;gap:4px;display:flex}.transform-panel__year-limit-input{color:var(--text);font-family:var(--mono);align-items:center;gap:8px;font-size:.875rem;display:flex}.transform-panel__year-limit-input input{border:1px solid var(--border);background:var(--page-bg);width:5em;color:var(--text);font:inherit;border-radius:6px;padding:6px 8px}.transform-panel__year-limit-input input:focus{border-color:var(--accent)}.transform-panel__hint{color:var(--muted);grid-column:1/-1;font-size:.8125rem}.transform-panel__issues{border:1px solid var(--warning);border-radius:var(--radius);background:var(--warning-soft);padding:10px 14px;font-size:.875rem}.transform-panel__warning{border:1px solid var(--warning);border-radius:var(--radius);background:var(--warning-soft);color:var(--warning);padding:10px 14px;font-size:.875rem}.transform-panel__issues summary{color:var(--warning);cursor:pointer}.transform-panel__issues ul{flex-direction:column;gap:4px;max-height:200px;margin:10px 0 0;padding:0;font-size:.8125rem;list-style:none;display:flex;overflow:auto}.transform-panel__issues li{gap:12px;display:flex}.transform-panel__issues .transform-panel__index{min-width:3ch}.transform-panel__custom input[type=text]:focus,.transform-panel__custom select:focus{border-color:var(--accent)}.transform-panel__custom-options{flex-wrap:wrap;grid-column:1/-1;gap:8px 24px;display:flex}.transform-panel__custom .transform-panel__check{color:var(--text);flex-direction:row;align-items:center;gap:8px}.transform-panel__info{color:var(--muted);font-size:.875rem}.transform-panel__preview{border:1px solid var(--border);border-radius:var(--radius);max-height:50vh;overflow:auto}.transform-panel__preview table{border-collapse:collapse;width:100%;font-size:.8125rem}.transform-panel__preview th,.transform-panel__preview td{border-bottom:1px solid var(--border);text-align:left;padding:6px 12px}.transform-panel__preview th{z-index:1;background:var(--surface-raised);font-weight:600;position:sticky;top:0}.transform-panel__preview th:first-child,.transform-panel__preview td:first-child{width:1%}.transform-panel__index{width:1%;color:var(--muted);text-align:right!important}.transform-panel__original,.transform-panel__proposed{word-break:break-word;width:50%}.transform-panel__original{color:var(--muted)}.transform-panel__proposed{color:var(--success)}.transform-panel__arrow{width:1%;color:var(--muted)}.transform-panel__rejected td{opacity:.4}.transform-panel__rejected .transform-panel__proposed{text-decoration:line-through}.transform-panel__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.transform-panel__actions .transform-panel__info{margin-right:auto}.transform-panel input[type=checkbox],.transform-panel input[type=radio]{accent-color:var(--accent);cursor:pointer}.transform-panel__preview .visible-text{white-space:pre-wrap;word-break:break-all}@media (width<=600px){.transform-panel__preview th,.transform-panel__preview td{padding:6px}}
