.file-joiner-page .file-joiner-preflight-summary {display:grid;gap:6px}
.file-joiner-page .file-joiner-preflight-summary.is-ready {border-left:3px solid var(--success);padding:8px 12px;background:var(--success-soft);font-size:14px}
.file-joiner-page .file-joiner-intro {display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:0 0 16px;max-width:920px}
.file-joiner-page .file-joiner-upload-box {border-top:0;padding-top:0}
.file-joiner-page .file-joiner-intro p {flex-basis:100%;margin:0}
.file-joiner-page .file-joiner-intro .btn {flex:none}
.file-joiner-page .file-joiner-route {display:flex;flex-wrap:wrap;gap:12px 24px;list-style:none;margin:0 0 20px;padding:0 0 12px;border-bottom:1px solid var(--border);font-size:14px;color:var(--muted)}
.file-joiner-page .file-joiner-route > li {margin:0;padding:0;font-size:14px;line-height:1.5;font-weight:500;color:var(--muted)}
.file-joiner-page .file-joiner-route [aria-current=step] {color:var(--primary);font-weight:600}
@media(max-width:640px){.file-joiner-page .file-joiner-route {flex-direction:column;gap:8px}}
.file-joiner-page #fileMatchSummary {display:grid;gap:8px;overflow-wrap:anywhere}
.file-joiner-page #duplicateExample p {margin:8px 0;overflow-wrap:anywhere}
.file-joiner-page #masterConsequence {overflow-wrap:anywhere}
.file-joiner-page #forecastRisks:empty,.file-joiner-page #fileMatchSummary:empty {display:none}
.file-joiner-page .file-joiner-preview-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.file-joiner-page .file-joiner-preview-heading h3 {margin:0;font-size:18px}
.file-joiner-page .file-joiner-match-fields > div {display:grid;align-content:start;gap:8px;min-width:0}
.file-joiner-page .file-joiner-match-fields .label {margin:0}
.file-joiner-page .file-joiner-preview-legend {display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.file-joiner-page .file-joiner-preview-legend span {padding:4px 8px;border:1px solid var(--border);border-radius:4px}
.file-joiner-page .file-joiner-added {background:var(--success-soft)}
.file-joiner-page #previewTable th {min-width:140px;max-width:320px;vertical-align:top;overflow-wrap:anywhere}
.file-joiner-page #previewTable th small {display:block;font-size:12px;font-weight:400;margin-top:4px;color:var(--muted)}
.file-joiner-page .file-joiner-file-role {display:block;font-size:12px;margin-top:4px;color:var(--muted)}
.file-joiner-page .is-master .file-joiner-file-role {color:var(--primary);font-weight:600}
.file-joiner-page #fileJoinerSelectedFiles .ui-file-size {white-space:normal;text-align:right;max-width:145px}
.file-joiner-page #advancedSettings {margin-top:4px}
.file-joiner-page #advancedSettings > .content > details {border:0;border-bottom:1px solid var(--border);border-radius:0}
.file-joiner-page #advancedSettings > .content > details:last-child {border-bottom:0}
.file-joiner-page .file-joiner-example-actions {flex-wrap:wrap;margin:16px 0}
.file-joiner-page table caption {text-align:left;font-weight:600;padding:12px 0}
.file-joiner-page #previewStatus {margin:0}
.file-joiner-page .file-joiner-launch-card {display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--border);padding-top:20px}
.file-joiner-page .file-joiner-preflight-plan {display:grid;gap:6px;min-width:0}
.file-joiner-page .file-joiner-preview-action {display:flex;align-self:stretch;align-items:flex-end}
.file-joiner-page #preflightForecast {gap:16px}
.file-joiner-page #preflightForecast .metric-chip {font-size:14px;gap:8px}
.file-joiner-page .file-joiner-quality {border-left:3px solid var(--border);padding:4px 16px;display:grid;gap:8px}
.file-joiner-page .file-joiner-quality ul {margin:0;padding-left:20px}
.file-joiner-page .dr-item {display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface,#fff);min-width:0}
.file-joiner-page .dr-label {display:flex;align-items:center;gap:10px;flex:1;min-width:0;margin:0}
.file-joiner-page .dr-label input {flex:none}
.file-joiner-page .dr-label span {min-width:0;overflow-wrap:anywhere}
.file-joiner-page .dr-label small {display:block;font-weight:400;margin-top:3px}
.file-joiner-page .dr-handle {cursor:grab;flex:none;color:var(--muted);user-select:none}
.file-joiner-page .dr-move {width:36px;height:36px;min-height:36px;padding:0;flex:none}
.file-joiner-page .dr-item.dragging {opacity:.5}
.file-joiner-page .dr-item.is-key {opacity:.6}
.file-joiner-page #columnSelectionCount {margin-left:12px;white-space:normal}
.file-joiner-page #colList {max-height:560px;overflow-y:auto;overscroll-behavior:contain}
.file-joiner-page #previewCard {min-width:0;display:grid;gap:8px}
.file-joiner-page #previewTable {font-size:14px}
.file-joiner-page #previewCard .tool-table-wrap {max-height:360px;overflow:auto}
.file-joiner-page #previewTable td {max-width:360px;overflow-wrap:anywhere}
.file-joiner-page #fileKeyMapping label,.file-joiner-page #sheetSelectors label {overflow-wrap:anywhere}
.file-joiner-result .file-joiner-status-step {display:flex;gap:12px;align-items:flex-start}
.file-joiner-result .file-joiner-status-step b {width:24px;flex:none}
.file-joiner-result .file-joiner-status-downloads {display:flex;flex-wrap:wrap;gap:10px}
.file-joiner-result .file-joiner-result-stats {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px 0;border-bottom:1px solid var(--border)}
.file-joiner-result .file-joiner-result-stats div {display:grid;gap:6px;min-width:0}
.file-joiner-result .file-joiner-result-stats strong {font-size:24px}
.file-joiner-result #resultWarnings {margin:0;padding-left:20px}
.file-joiner-result #resultFiles {overflow:auto}
.file-joiner-result #resultFiles td,.file-joiner-result #resultFiles th {padding:10px;text-align:left;overflow-wrap:anywhere}
@media(max-width:640px){
 .file-joiner-page .file-joiner-preview-heading {align-items:stretch;flex-direction:column}
 .file-joiner-page .file-joiner-intro {padding-bottom:16px}
 .file-joiner-page .file-joiner-intro .btn {width:100%}
 .file-joiner-page #fileJoinerSelectedFiles .ui-file-item {grid-template-columns:minmax(0,1fr) 44px}
 .file-joiner-page #fileJoinerSelectedFiles .ui-file-size {grid-column:1;grid-row:2;text-align:left;max-width:none}
 .file-joiner-page #fileJoinerSelectedFiles .ui-file-remove {grid-column:2;grid-row:1 / 3}
 .file-joiner-page .file-joiner-launch-card {flex-direction:column;align-items:stretch;gap:12px}
 .file-joiner-page .file-joiner-launch-card .btn,.file-joiner-page .file-joiner-preview-action .btn {width:100%}
 .file-joiner-page .dr-item {gap:6px;padding:8px}
 .file-joiner-page .dr-move {width:40px;height:40px;min-height:40px}
 .file-joiner-page .dr-handle {display:none}
 .file-joiner-page #columnSelectionCount {margin-left:8px;font-size:13px}
 .file-joiner-result .file-joiner-result-stats {grid-template-columns:repeat(2,minmax(0,1fr))}
 .file-joiner-result .file-joiner-status-downloads .btn {width:100%}
}
.file-joiner-page .file-joiner-file-status {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;padding:16px 20px;border-left:4px solid var(--primary);background:var(--primary-soft);border-radius:6px;color:var(--text)}
.file-joiner-page .file-joiner-file-status__copy {display:grid;gap:6px;min-width:0;overflow-wrap:anywhere;font-size:14px}
.file-joiner-page .file-joiner-file-status__copy strong {font-size:16px;color:var(--primary)}
.file-joiner-page .file-joiner-file-status__actions {display:flex;align-items:center;gap:8px}
.file-joiner-page .file-joiner-file-status__actions:not(:has(> :not(.hidden))) {display:none}
.file-joiner-page .file-joiner-file-status[data-state=ready] {border-color:var(--success);background:var(--success-soft)}
.file-joiner-page .file-joiner-file-status[data-state=ready] strong {color:var(--success)}
.file-joiner-page .file-joiner-file-status[data-state=warning] {border-color:var(--warning);background:var(--warning-soft)}
.file-joiner-page .file-joiner-file-status[data-state=warning] strong {color:var(--warning)}
.file-joiner-page .file-joiner-file-status:is([data-state=blocked],[data-state=error]) {border-color:var(--danger);background:var(--danger-soft)}
.file-joiner-page .file-joiner-file-status:is([data-state=blocked],[data-state=error]) strong {color:var(--danger)}
.file-joiner-page #uploadProgWrap {grid-column:1 / -1}
.file-joiner-page #fileJoinerSelectedFiles {max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding:4px}
.file-joiner-page :is(#preflightCard,#fileJoinerLaunchCard) {scroll-margin-top:24px}
@media(max-width:640px){
 .file-joiner-page .file-joiner-file-status {grid-template-columns:minmax(0,1fr);padding:14px;gap:12px}
 .file-joiner-page .file-joiner-file-status__actions .btn {width:100%}
}
