:root{color:#2a2926;font-synthesis:none;text-rendering:optimizelegibility;--background:#f4f1eb;--surface:#fffdf9;--surface-muted:#f8f5ef;--surface-strong:#ece7de;--foreground:#2a2926;--muted:#76736c;--muted-light:#a09c94;--border:#ded8ce;--border-strong:#c8c0b5;--primary:#292826;--primary-hover:#141412;--primary-foreground:#faf7ef;--accent:#b75b35;--accent-soft:#f4e1d7;--success:#52775e;--success-soft:#e6efe7;--info:#58748c;--info-soft:#e5edf3;--warning:#9b6a2c;--warning-soft:#f8eedb;--danger:#ad4b42;--danger-soft:#f8e9e7;--motion-fast:.14s;--motion-base:.18s;--ease-out:cubic-bezier(.22, .61, .36, 1);background:#f4f1eb;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}body{background:var(--background);scrollbar-gutter:stable;min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{transition:color var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out)}.app-shell{min-height:100vh}.app-header{justify-content:space-between;align-items:flex-start;gap:18px;max-width:1220px;margin:0 auto;padding:26px 24px 16px;display:flex}.step-label{color:var(--muted-light);letter-spacing:.04em;font-size:15px;font-weight:700}h1,h2,h3,p{margin:0}h1{color:var(--foreground);letter-spacing:-.045em;margin-top:5px;font-size:clamp(24px,3.1vw,32px);line-height:1.1}.privacy-badge{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:#fffdf9b8;border-radius:999px;margin-top:3px;padding:5px 9px;font-size:10px}.workspace-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:12px;max-width:1220px;margin:0 auto;padding:0 24px 24px;display:grid}.panel{border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:0;padding:14px 16px;box-shadow:0 1px 2px #2a292608,0 8px 22px #2a292609}.panel-heading{color:var(--primary);justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.panel-heading h2{color:var(--foreground);letter-spacing:-.025em;margin-top:1px;font-size:15px}.setup-panel .panel-heading>div:first-child,.config-panel .panel-heading>div:first-child{align-items:baseline;gap:8px;display:flex}.source-stack{gap:0;min-width:0;display:grid}.source-stack-dual{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}.source-card{background:0 0;border:0;padding:0}.source-card+.source-card{padding-top:12px}.source-stack-dual .source-card+.source-card{border-left:1px solid var(--border);padding-top:0;padding-left:16px}.source-card-heading{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.source-card-heading strong{color:var(--foreground);font-size:12px}.source-card-tools{align-items:center;gap:7px;display:flex}.source-template-link{color:var(--accent);white-space:nowrap;font-size:10px;font-weight:700;text-decoration:none}.source-template-link:hover{text-underline-offset:3px;text-decoration:underline}.source-controls{grid-template-columns:1fr;gap:7px;min-width:0;display:grid}.source-controls.has-sheet{grid-template-columns:minmax(0,1fr) minmax(140px,.3fr);align-items:center;gap:10px}.source-upload-row{border:1px dashed var(--border-strong);background:var(--surface-muted);min-height:42px;transition:border-color var(--motion-base) var(--ease-out), background var(--motion-base) var(--ease-out);border-radius:8px}.source-upload-row:not(.has-file){min-height:84px}.source-upload-row.has-file{border-style:solid;border-color:var(--border);background:var(--surface);min-height:30px}.source-upload-row:not(.has-file):hover{border-color:var(--accent);background:#fcf6f0}.source-upload-row.drag-over{border-color:var(--accent);background:var(--accent-soft)}.source-upload-row input{display:none}.source-upload-row>label{min-height:40px;color:var(--accent);cursor:pointer;flex-direction:row;justify-content:center;align-items:center;gap:7px;display:flex}.source-upload-row:not(.has-file)>label{min-height:82px}.source-upload-row>label strong{color:var(--foreground);font-size:11px;font-weight:700}.source-upload-row>label span{color:var(--muted);font-size:10px}.source-file-row{align-items:center;gap:8px;min-height:28px;padding:1px 8px;display:flex}.source-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.source-file-info strong{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.source-file-actions{flex:none;align-items:center;gap:8px;display:flex}.source-change-link{color:var(--accent);cursor:pointer;white-space:nowrap;font-size:10px;font-weight:700}.source-change-link:hover{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.source-options{min-width:0}.source-options label{color:var(--muted);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;font-size:11px;font-weight:700;display:grid}.source-options label>span:first-child{white-space:nowrap}.source-options select{height:30px;padding:4px 8px;font-size:10px}.setup-form{min-width:0;margin-top:12px}.choice-field{color:var(--muted);align-items:center;gap:9px;margin-bottom:9px;font-size:11px;font-weight:700;display:flex}.choice-label{flex:none}.choice-options{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;flex:0 auto;gap:4px;padding:3px;display:flex}.choice-option{min-width:0;color:var(--muted);text-align:left;box-shadow:none;transition:color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out);background:0 0;border:1px solid #0000;border-radius:6px;flex:none;padding:6px 25px 6px 9px;position:relative}.choice-option:before{content:"";background:0 0;border:1px solid #bbb5ab;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.choice-option span{color:inherit;white-space:nowrap;font-size:10px;font-weight:700;display:block}.choice-option:hover:not(:disabled){color:var(--foreground);background:#fffdf9bf}.choice-option:active:not(:disabled){transform:none}.choice-option.active{border-color:var(--primary);color:var(--primary);background:var(--surface);box-shadow:0 1px 2px #2a292614}.choice-option.active:before{border-color:var(--primary);background:var(--primary);box-shadow:0 0 0 3px var(--surface)}.choice-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.setup-form label{color:var(--muted);flex-direction:column;gap:5px;font-size:11px;font-weight:700;display:flex}select,input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--foreground);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out);border-radius:7px;outline:none;padding:8px 9px}select:hover:not(:disabled),input:hover:not(:disabled){border-color:var(--border-strong);background:#fffefa}select:focus,input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2a29261a}.mapping-board{min-width:0}.mapping-toolbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.mapping-toolbar>div:first-child{min-width:0}.mapping-toolbar-title{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mapping-toolbar strong{color:var(--foreground);font-size:12px}.mapping-guide{color:var(--muted);background:var(--surface-strong);border-radius:4px;padding:3px 6px;font-size:10px;font-weight:600;line-height:1.4}.mapping-actions{gap:5px;display:flex}.mapping-actions .secondary-button{min-height:28px;padding:4px 7px;font-size:10px}.setup-actions{justify-content:flex-end;align-items:center;gap:7px;margin-top:12px;display:flex}.setup-actions .primary-button{min-height:28px;padding:4px 7px;font-size:10px}.mapping-target-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.mapping-target-row{min-width:0}.mapping-target{border:1px solid var(--border);width:100%;min-width:0;min-height:34px;color:var(--muted);background:var(--surface-muted);text-align:left;transition:color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);border-radius:6px;position:relative}.mapping-target-select{width:100%;min-height:32px;color:inherit;text-align:left;background:0 0;border:0;border-radius:5px;padding:6px 29px 6px 8px;display:block}.mapping-target-select:focus-visible{outline-offset:-3px}.mapping-target:not(.mapped){border-color:var(--border);background:var(--surface-muted)}.mapping-target:not(.mapped):not(.disabled):hover{border-color:var(--border-strong);background:#f4eee6}.mapping-target-select:hover:not(:disabled){background:#fffdf947}.mapping-target.mapped{background:var(--success-soft);border-color:#a9c5ae}.mapping-side-b .mapping-target.mapped{background:var(--info-soft);border-color:#abc2d3}.mapping-target.mapped strong{color:var(--success)}.mapping-target:not(.mapped) strong{color:var(--muted-light)}.mapping-target.active{border-color:var(--primary);background:#f7f3ec;box-shadow:0 0 0 2px #2a29261a}.mapping-target.active span{color:var(--primary)}.mapping-target.active strong{color:var(--foreground)}.mapping-side-b .mapping-target.active{border-color:var(--info);background:#f1f6f9;box-shadow:0 0 0 2px #58748c21}.mapping-side-b .mapping-target.active span{color:var(--info)}.mapping-side-b .mapping-target.active strong{color:#49647b}.mapping-target.drop-target{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px #b75b351f}.mapping-target-clear{z-index:1;width:18px;height:18px;color:var(--muted-light);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex;position:absolute;top:3px;right:3px}.mapping-target-clear:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.mapping-target-clear:focus-visible{outline-offset:1px}.mapping-target.disabled{cursor:not-allowed}.mapping-side-heading span.mapping-required-count{color:var(--warning);background:var(--warning-soft);border:1px solid #e4cda7;border-radius:999px;align-items:center;padding:3px 7px;font-size:10px;font-weight:700;line-height:1.2;display:inline-flex}.mapping-side-heading span.mapping-required-count.complete{color:var(--success);background:var(--success-soft);border-color:#b9d1bd}.mapping-target-select span,.mapping-target-select strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mapping-target-select span{color:var(--muted);font-size:10px;font-weight:700}.mapping-target-select em{color:var(--danger);vertical-align:-1px;margin-left:3px;font-size:13px;font-style:normal;font-weight:900;line-height:.9;display:inline-block}.mapping-target-select strong{color:var(--muted-light);margin-top:3px;font-size:10px;font-weight:500}.mapping-side,.mapping-preview-area,.mapping-preview{min-width:0}.mapping-preview-area-dual,.mapping-fields-area-dual{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.mapping-preview-area-dual .mapping-preview+.mapping-preview{border-left:1px solid var(--border);padding-left:16px}.mapping-fields-area{margin-top:10px}.mapping-fields-area:not(.mapping-fields-area-dual) .mapping-side+.mapping-side{border-top:1px solid var(--border);margin-top:10px;padding-top:9px}.mapping-fields-area-dual .mapping-side+.mapping-side{border-left:1px solid var(--border);padding-left:16px}.mapping-side-heading{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:7px;display:flex}.mapping-side-heading strong{color:var(--foreground);font-size:12px}.mapping-side-heading span{color:var(--muted);font-size:10px}.mapping-error{color:var(--danger);margin-top:6px;font-size:10px;line-height:1.4}.mapping-preview-caption{color:var(--muted);align-items:baseline;gap:8px;margin:7px 0 4px;font-size:10px;display:flex}.mapping-preview-caption strong{color:var(--muted);font-size:10px}.mapping-preview-instruction{color:var(--muted-light)}.mapping-preview-instruction.active{color:var(--accent);font-weight:700}.mapping-preview-side-a .mapping-preview-instruction.active.active-b{color:var(--info)}.mapping-preview-wrap{scrollbar-gutter:stable;border:1px solid var(--border);background:var(--surface);border-radius:7px;width:100%;min-width:0;max-height:300px;overflow:auto}.mapping-preview-wrap:hover{border-color:var(--border-strong)}.mapping-preview-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.mapping-preview-table th{z-index:1;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-muted);vertical-align:top;min-width:0;padding:0;position:sticky;top:0}.mapping-preview-table th:last-child,.mapping-preview-table td:last-child{border-right:0}.mapping-preview-table td{border-right:1px solid var(--border);min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:3px 5px;font-size:10px;line-height:1.25;overflow:hidden}.mapping-preview-table tbody tr:nth-child(2n) td:not(.mapping-mapped-cell){background:#fcfaf6}.mapping-preview-table th:not(.mapping-header-mapped){background:var(--surface-muted)}.mapping-preview-side-a .mapping-header-mapped,.mapping-preview-side-a td.mapping-mapped-cell{background:var(--success-soft)}.mapping-preview-side-b .mapping-header-mapped,.mapping-preview-side-b td.mapping-mapped-cell{background:var(--info-soft)}.mapping-preview-side-a td.mapping-mapped-cell{color:#42674e}.mapping-preview-side-b td.mapping-mapped-cell{color:#49647b}.mapping-preview-side-a .mapping-header-mapped.mapping-header-mapped-b,.mapping-preview-side-a td.mapping-mapped-cell.mapping-mapped-cell-b{background:var(--info-soft)}.mapping-preview-side-a td.mapping-mapped-cell.mapping-mapped-cell-b{color:#49647b}.mapping-row-number{text-align:center;width:34px!important;min-width:34px!important;max-width:34px!important;color:var(--muted-light)!important}.mapping-column{width:100%;min-height:31px;color:var(--muted);text-align:left;transition:color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);background:0 0;border:0;border-bottom:2px solid #0000;padding:3px 5px;line-height:1.15}.mapping-column:not(:disabled){cursor:pointer}.mapping-column:not(:disabled)[draggable=true]{cursor:grab}.mapping-column:not(:disabled)[draggable=true]:active{cursor:grabbing}.mapping-column:hover:not(:disabled){background:#f4eee6}.mapping-column:not(.mapped){color:var(--muted);background:var(--surface-muted)}.mapping-column.mapped{color:var(--success);border-bottom-color:var(--success);background:#dceadf}.mapping-preview-side-b .mapping-column.mapped{color:var(--info);border-bottom-color:var(--info);background:#dce9f0}.mapping-column.active{color:var(--primary);border-bottom-color:var(--primary);background:#f7f3ec}.mapping-preview-side-b .mapping-column.active{color:var(--info);border-bottom-color:var(--info);background:#f1f6f9}.mapping-preview-side-a .mapping-column.mapped.mapping-column-b,.mapping-preview-side-a .mapping-column.active.active-b{color:var(--info);border-bottom-color:var(--info);background:#dce9f0}.mapping-column span,.mapping-column small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mapping-column span{color:var(--muted);font-size:10px;font-weight:700}.mapping-column.mapped span{color:inherit;font-weight:800}.mapping-column small{color:var(--muted);margin-top:2px;font-size:9px;font-weight:500;line-height:1.1}.mapping-column.mapped small{color:var(--accent);opacity:1;font-weight:800}.mapping-preview-side-a .mapping-column.mapped.mapping-column-b small{color:var(--info)}.mapping-preview-shared .mapping-column.mapped.mapping-column-b small{color:var(--danger)}.mapping-empty{text-align:center;color:var(--muted-light)!important;padding:18px!important}.primary-button,.secondary-button,.icon-button{transition:background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);border:0;border-radius:7px;justify-content:center;align-items:center;gap:6px;display:inline-flex}.primary-button{min-height:32px;color:var(--primary-foreground);background:var(--primary);padding:6px 11px;font-size:11px;font-weight:700}.primary-button:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 3px 8px #2a292629}.primary-button:active:not(:disabled){box-shadow:none}.primary-button.large{min-height:36px;font-size:12px}.secondary-button{min-height:32px;color:var(--foreground);border:1px solid var(--border);background:var(--surface);padding:5px 9px;font-size:10px}.secondary-button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-muted);box-shadow:0 2px 6px #2a29260f}.secondary-button:active:not(:disabled){box-shadow:none}.icon-button{min-width:26px;min-height:26px;color:var(--muted);background:0 0;padding:4px}.icon-button:hover:not(:disabled){color:var(--foreground);background:var(--surface-strong)}.icon-button:active:not(:disabled){box-shadow:none}.export-message{color:var(--muted);font-size:11px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.validation-box{border:1px solid #d6e2d8;border-left:3px solid var(--success);background:#f7fbf7;border-radius:8px;margin-top:8px;padding:9px 11px 10px}.validation-title{color:var(--foreground);justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.validation-title span{color:var(--success);background:var(--success-soft);border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700}.validation-title span.warn{color:var(--warning);background:var(--warning-soft)}.validation-title-main{flex-wrap:wrap;align-items:baseline;gap:7px;min-width:0;display:flex}.validation-title .validation-inline-status{min-width:0;color:var(--muted);background:0 0;align-items:center;gap:4px;padding:0;font-size:10px;font-weight:500;line-height:1.3;display:inline-flex}.validation-title .validation-inline-status.loading{color:var(--success);font-weight:600}.validation-title .validation-inline-status.error{color:var(--danger);font-weight:600}.validation-status-heading{justify-content:flex-start;margin-top:8px}.validation-stats{flex-direction:column;gap:4px;margin-top:6px;display:flex}.validation-stats-row{flex-wrap:wrap;align-items:center;gap:4px 15px;min-height:19px;display:flex}.validation-stats-row.secondary{border-top:1px solid #e4ece5;padding-top:5px}.validation-stats-row span{color:var(--muted);white-space:nowrap;align-items:baseline;gap:4px;font-size:10px;line-height:1.2;display:inline-flex}.validation-stats-row b{color:var(--foreground);font-size:11px;font-weight:700;line-height:1}.coverage-line{color:var(--muted);margin-top:6px;font-size:10px;line-height:1.35}.validation-impact{color:var(--warning);margin-top:6px;font-size:10px}.validation-warning{line-height:1.35}.invalid-acknowledgement{background:var(--warning-soft);border:1px solid #ead7b3;border-radius:6px;align-items:flex-start;gap:7px;margin-top:7px;padding:6px 8px;line-height:1.35;display:flex;color:var(--warning)!important;flex-direction:row!important;font-size:10px!important;font-weight:600!important}.invalid-acknowledgement input{flex:none;width:auto;margin:1px 0 0}.validation-stats-row .warn b,.warn{color:var(--warning)}.issue-details{color:var(--muted);margin-top:6px;font-size:10px}.issue-details summary{cursor:pointer;color:var(--warning)}.issue-list{max-height:100px;margin-top:5px;line-height:1.55;overflow:auto}.config-panel{flex-direction:column;align-self:start;display:flex}.config-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:10px;display:grid}.config-field{min-width:0}.config-field .field-label{margin:0 0 4px;font-size:10px}.config-field select,.config-field input{height:32px;padding:5px 8px;font-size:10px}.field-label{color:var(--muted);margin:5px 0 6px;font-size:11px;font-weight:700;display:block}.limit-input{align-items:center;gap:6px;display:flex}.limit-input input{max-width:82px}.limit-input span{color:var(--muted);white-space:nowrap;font-size:10px}.field-error{color:var(--danger);margin-top:5px;font-size:10px;line-height:1.35}.run-actions{justify-content:flex-end;gap:6px;margin-top:12px;display:flex}.run-actions .large{flex:0 0 170px;width:170px}.run-actions .secondary-button{min-width:52px}.results-panel{padding:14px 16px 15px}.results-heading{align-items:center;margin-bottom:7px}.results-title{flex-wrap:wrap;align-items:baseline;gap:7px;min-width:0;display:flex}.results-title h2{white-space:nowrap}.results-title .result-meta{flex:auto;min-width:0;margin-left:2px}.result-meta{color:var(--muted);flex-wrap:wrap;gap:0 9px;font-size:10px;display:flex}.result-meta span+span:before{content:"·";color:var(--muted-light);margin-right:9px}.result-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.result-toolbar-left{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.tabs{border:1px solid var(--border);background:var(--surface-muted);border-radius:7px;flex-wrap:wrap;gap:5px;padding:3px;display:flex}.tabs button{color:var(--muted);transition:color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out);background:0 0;border:1px solid #0000;border-radius:5px;padding:5px 9px;font-size:10px}.tabs button:hover{color:var(--foreground);background:#fffdf9cc}.tabs button:active{transform:none}.tabs button.active{border-color:var(--primary);color:var(--primary);background:var(--surface);font-weight:800;box-shadow:0 1px 2px #2a292614}.tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.result-metrics{border-left:1px solid var(--border);color:var(--muted);white-space:nowrap;align-items:center;gap:9px;padding-left:10px;font-size:10px;display:flex}.result-metrics strong{color:var(--foreground);margin-left:2px;font-size:12px;font-weight:700}.result-toolbar input{max-width:190px;padding:7px 9px;font-size:10px}.table-wrap{scrollbar-gutter:stable;border:1px solid var(--border);border-radius:7px;overflow-x:auto}.table-wrap:hover{border-color:var(--border-strong)}.results-panel th,.results-panel td{padding:7px 6px}table{border-collapse:collapse;width:100%;min-width:760px}.summary-table{min-width:540px}.summary-table th:not(:first-child),.summary-table td.number-cell{text-align:center}th{color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface-muted);text-align:left;white-space:nowrap;padding:8px 6px;font-size:10px;font-weight:700}td{color:#4b4944;vertical-align:middle;border-top:1px solid #eee9e1;padding:8px 6px;font-size:11px}tbody tr:not(.detail-row){transition:background var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);cursor:pointer}tbody tr:not(.detail-row):hover,tr.selected-row{box-shadow:inset 2px 0 0 var(--accent);background:#faf6ef}tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}td strong,td small{display:block}td small{color:var(--muted-light);margin-top:3px;font-size:10px}.compact-point{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.compact-point strong{color:var(--foreground);display:inline}.compact-point span{color:var(--muted)}.compact-cell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.number-cell{font-variant-numeric:tabular-nums;white-space:nowrap}.detail-row td{background:#faf6ef;padding:0 8px 8px 38px}.neighbor-list{flex-wrap:wrap;gap:0 10px;display:flex}.neighbor-list span{color:#5e7564;font-size:11px}.neighbor-list span+span:before{content:"·";color:#c8c0b5;margin-right:10px}.neighbor-list b{color:var(--accent)}.neighbor-empty{flex-wrap:wrap;gap:0 12px;display:flex}.neighbor-empty .muted+.muted:before{content:"·";color:#c8c0b5;margin-right:10px}.muted{color:var(--muted-light);font-size:11px}.empty-state{color:var(--muted-light);text-align:center;padding:18px 12px;font-size:12px}.pagination{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding-top:8px;font-size:10px;display:flex}.pagination>div{gap:6px;display:flex}.export-message{color:var(--success);margin-top:7px}.export-download{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-top:7px;padding-top:7px;font-size:10px;display:flex}.export-download-link{min-height:29px;padding:4px 9px;text-decoration:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:850px){.app-header{flex-direction:row;align-items:baseline;gap:10px;padding:20px 16px 14px}.app-header>div:first-child{min-width:0}.app-header h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.privacy-badge{margin-top:0}.workspace-grid{grid-template-columns:1fr;gap:10px;padding:0 16px 18px}.config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mapping-preview-wrap{max-height:280px}.mapping-target-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mapping-preview-area-dual,.mapping-fields-area-dual{display:block}.mapping-preview-area-dual .mapping-preview+.mapping-preview,.mapping-fields-area-dual .mapping-side+.mapping-side{border-top:1px solid var(--border);border-left:0;margin-top:10px;padding-top:9px;padding-left:0}.source-stack-dual{grid-template-columns:1fr}.source-stack-dual .source-card+.source-card{border-top:1px solid var(--border);border-left:0;padding-top:12px;padding-left:0}.source-upload-row>label{min-height:38px}.source-controls.has-sheet{grid-template-columns:1fr}.result-toolbar{flex-direction:column;align-items:stretch}.result-toolbar input{max-width:none}}@media (max-width:620px){.app-header{padding:16px 12px 12px}.app-header h1{font-size:24px}.privacy-badge{font-size:9px}.workspace-grid{gap:8px;padding:0 12px 14px}.panel,.results-panel{padding:12px}.config-grid{grid-template-columns:1fr}.mapping-toolbar{flex-direction:column;align-items:flex-start;gap:7px}.mapping-actions{flex-wrap:wrap}.mapping-target-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mapping-target{min-height:40px}.mapping-target-select{min-height:38px;padding:7px 30px 7px 8px}.mapping-column{min-height:34px;padding:4px 5px}.mapping-preview-wrap{-webkit-overflow-scrolling:touch;max-width:100%;max-height:240px}.source-controls.has-sheet{gap:7px}.config-field{grid-template-columns:58px minmax(0,1fr);align-items:start;column-gap:8px;display:grid}.config-field .field-label{margin:5px 0 0}.config-field>#radius-input,.config-field>.limit-input,.config-field>.field-error{grid-column:2}.config-field select,.config-field input{height:36px;padding:7px 8px;font-size:11px}.limit-input input{max-width:90px}.run-actions{gap:7px}.run-actions .large{min-height:38px}.mapping-actions .secondary-button{min-height:35px}.primary-button,.secondary-button{min-height:36px}.result-toolbar{gap:7px}.tabs{gap:4px}.tabs button{min-height:34px;padding:7px 8px}.results-title{gap:6px}.results-title .result-meta{flex-basis:100%;margin-left:0}.results-heading>.primary-button{width:100%}.table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-width:100%}table{min-width:680px}.summary-table{min-width:500px}.results-panel .table-wrap>table th:first-child,.results-panel .table-wrap>table tbody tr:not(.detail-row) td:first-child{z-index:2;background:var(--surface);box-shadow:1px 0 0 var(--border);position:sticky;left:0}.results-panel .table-wrap>table tbody tr:not(.detail-row):hover td:first-child,.results-panel .table-wrap>table tbody tr.selected-row td:first-child{background:#faf6ef}.results-panel .icon-button{min-width:32px;min-height:32px}.pagination{flex-wrap:wrap;gap:7px}.pagination>span{flex:100%}.pagination>div{width:100%}.pagination>div .secondary-button{flex:1;min-height:36px}}@media (max-width:500px){.source-controls.has-sheet{grid-template-columns:1fr}.source-upload-row>label{flex-direction:column;gap:1px;min-height:44px}.source-upload-row>label span{white-space:nowrap}.choice-field{flex-direction:column;align-items:flex-start;gap:5px}.choice-options{width:100%}.choice-option{flex:1;min-height:34px;padding:6px 22px 6px 8px}.choice-option span{font-size:10px}.run-actions .large{flex:1;width:auto}.validation-stats-row{gap:4px 10px}.results-heading{flex-direction:column;align-items:stretch;gap:6px}}@media (max-width:400px){.mapping-target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-header h1{font-size:22px}.privacy-badge{font-size:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
