html, body, #app { height: 100%; margin: 0; min-height: 0; overflow: hidden; background: #fff; color: #1f1f1f; font-family: Arial, sans-serif; } .plugin-shell { display: flex; box-sizing: border-box; height: 100%; min-height: 0; flex-direction: column; } .plugin-header { flex: 0 0 auto; padding: 4px 12px; border-bottom: 1px solid #f0f0f0; background: #fff; } .status-line { display: flex; width: 100%; min-width: 0; min-height: 28px; align-items: center; justify-content: space-between; } .connection-status { margin: 0; white-space: nowrap; } .plugin-version { color: rgb(0 0 0 / 45%); white-space: nowrap; } .status-actions { display: flex; min-width: 0; align-items: center; gap: 4px; } .plugin-scroll-region { min-height: 0; flex: 1 1 auto; padding: 12px 0; overflow-x: hidden; overflow-y: auto; } .field-list { width: 100%; padding-inline: 0; margin: 0; } .field-list-compact { margin: 0; } .field-toolbar { display: flex; min-width: 0; flex: 0 0 auto; align-items: center; gap: 8px; padding: 8px 12px; border-bottom: 1px solid #f0f0f0; background: #fff; } .field-filter { min-width: 0; flex: 1 1 auto; margin-bottom: 0; } .field-toolbar > .ant-btn, .field-toolbar > .ant-tooltip-disabled-compatible-wrapper { flex: 0 0 auto; } .field-row { box-sizing: border-box; width: 100%; padding: 8px 12px; margin: 0; transition: background 120ms ease; } .field-row:hover { background: #f5f9ff; } .field-row.field-row-focused { background: #e8f3ff; } .field-label { display: flex; min-height: 28px; align-items: center; justify-content: space-between; gap: 4px; } .field-row label { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: 4px; font-size: 13px; font-weight: 500; overflow-wrap: anywhere; } .field-label .ant-btn { flex: 0 0 28px; color: #d9d9d9; transition: color 120ms ease; } .field-row:hover .field-label .ant-btn { color: #1f1f1f; } .field-row .ant-select, .field-row .ant-picker { width: 100%; } .required-mark, .field-error, .directory-problem, .status-problem { color: #d4380d; } .field-error { margin-top: 4px; font-size: 12px; } .field-conflict { display: grid; gap: 6px; margin-top: 8px; padding: 8px; border-left: 2px solid #d4380d; background: #fff7e6; font-size: 12px; } .field-conflict-value { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 6px; } .field-conflict span, .field-conflict strong { overflow-wrap: anywhere; } .field-conflict span { color: #8c8c8c; } .field-conflict .ant-space { flex-wrap: wrap; justify-content: flex-end; } .conflict-summary { display: grid; gap: 2px; margin-top: 8px; padding: 8px 0; border-block: 1px solid #ffccc7; } .conflict-summary-title { display: flex; min-height: 28px; align-items: center; gap: 6px; padding-inline: 6px; color: #d4380d; font-size: 13px; } .conflict-summary-item { display: grid; min-height: 34px; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 4px 8px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; } .conflict-summary-item:hover { background: #fff7e6; } .conflict-summary-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .conflict-summary-item small { color: #8c8c8c; } .repeat-group { margin: 12px 0 64px; border-top: 1px solid #f0f0f0; } .repeat-group-header, .repeat-row-header { display: flex; min-height: 40px; align-items: center; justify-content: space-between; } .repeat-count { margin-left: 8px; color: #8c8c8c; font-size: 12px; } .repeat-row { padding-top: 10px; border-top: 1px solid #f0f0f0; } .repeat-row-title { display: flex; align-items: center; gap: 6px; color: #8c8c8c; font-size: 12px; } .repeat-delete-state { margin: 4px 0 8px; } .repeat-delete-form { display: grid; gap: 8px; margin: 8px 0 12px; padding-left: 8px; border-left: 2px solid #ff4d4f; } .repeat-delete-form .ant-space { justify-content: flex-end; } .step-navigation { display: grid; min-height: 44px; grid-template-columns: 32px minmax(0, 1fr) 32px 32px; align-items: center; margin: 8px -4px 0; border-block: 1px solid #f0f0f0; } .current-step { display: flex; min-width: 0; align-items: center; justify-content: center; gap: 6px; padding: 0 4px; font-size: 13px; font-weight: 600; } .current-step > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .current-step .ant-tag, .directory-step .ant-tag { margin: 0; } .step-sections { margin-inline: -12px; } .step-sections > .ant-collapse-item > .ant-collapse-header { padding-inline: 16px; } .step-sections .ant-collapse-content-box { padding: 0 16px; } .step-sections .field-list, .step-sections .repeat-group { margin-bottom: 12px; } .step-directory { padding-top: 12px; } .directory-summary { display: flex; min-height: 28px; align-items: center; gap: 8px; font-size: 12px; } .directory-summary strong { margin-right: auto; font-size: 14px; } .directory-step { width: 100%; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; } .directory-steps { display: grid; margin-top: 10px; border-top: 1px solid #f0f0f0; } .directory-step { display: grid; min-height: 40px; grid-template-columns: 18px minmax(0, 1fr) auto auto; align-items: center; gap: 6px; padding: 4px 6px; border-top: 1px solid #fafafa; font-size: 13px; } .directory-step:hover, .directory-step-current { background: #f5f7fa; } .directory-step-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .directory-step-status { color: #8c8c8c; font-size: 12px; } .status-complete { color: #389e0d; } .status-progress { color: #8c8c8c; } .source-sync-list { display: grid; max-height: min(360px, calc(100vh - 180px)); overflow-y: auto; } .source-sync-item { display: grid; gap: 8px; padding: 10px 0; border-bottom: 1px solid #f0f0f0; } .source-sync-field { display: grid; gap: 2px; min-width: 0; } .source-sync-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; } .source-sync-heading strong { min-width: 0; } .source-sync-field strong, .source-sync-field small, .source-sync-values span, .source-sync-values strong { overflow-wrap: anywhere; } .source-sync-field small { color: #8c8c8c; } .source-sync-lineage { color: #595959 !important; } .source-sync-values { display: grid; grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr); align-items: center; gap: 6px; } .source-sync-values > :nth-child(2) { color: #8c8c8c; } .plugin-shell footer { position: static; z-index: 2; flex: 0 0 auto; padding: 10px 12px 12px; border-top: 1px solid #f0f0f0; background: #fff; }