/* Reuse portal panels, CRM forms/tables, buttons and loading indicator. */
.plan-import-shell { position: relative; font-size: 12px; }
.plan-import-toolbar { gap: 12px; flex-wrap: wrap; }
.plan-import-notice:empty { display: none; }
.plan-import-notice.ok { color: var(--ok); }
.plan-import-notice.error { color: #b42318; }
.plan-import-layout {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 14px;
  min-height: 560px;
}
.plan-import-list, .plan-import-main {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
}
.plan-import-list { align-self: start; overflow: hidden; }
.plan-import-records { max-height: 68vh; overflow: auto; padding: 8px; }
.plan-import-row {
  display: grid;
  gap: 5px;
  width: 100%;
  margin-bottom: 6px;
  padding: 10px;
  text-align: left;
  overflow-wrap: anywhere;
  border-color: transparent;
}
.plan-import-row:last-child { margin-bottom: 0; }
.plan-import-row:hover { background: #f1f5ff; }
.plan-import-row.active { background: var(--accent-soft); border-color: var(--accent); }
.plan-import-row span, .plan-import-row small { color: var(--muted); font-size: 10px; }
.plan-import-main { padding: 14px; }
.plan-import-main h3 { margin: 0; font-size: 14px; }
.plan-import-main h4 { font-size: 12px; }
.plan-import-main p { line-height: 1.6; }
.plan-import-heading { gap: 12px; margin-bottom: 6px; }
.plan-import-heading h3 { min-width: 0; overflow-wrap: anywhere; }
.plan-import-status { flex-shrink: 0; padding: 4px 8px; border-radius: 6px; background: var(--accent-soft); color: var(--accent); font-size: 11px; }
.plan-import-meta { margin: 0 0 14px; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.plan-import-stepbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.plan-import-stepbar button { padding: 7px 10px; }
.plan-import-stepbar button.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.plan-import-shell button:focus-visible, .plan-import-main summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.plan-import-shell button:disabled { cursor: not-allowed; opacity: .55; }
.plan-import-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.plan-import-form label { min-width: 0; }
.plan-import-buttons { display: flex; gap: 8px; align-items: center; margin-top: 14px; flex-wrap: wrap; }
.plan-import-table-wrap { min-height: 0; max-height: 48vh; }
.plan-import-table-wrap .crm-table { width: 100%; min-width: 0; }
.plan-import-table-wrap th { position: sticky; top: 0; z-index: 1; background: #f8fbff; }
.plan-import-table-wrap td { white-space: normal; overflow-wrap: anywhere; }
.plan-import-table-wrap tbody tr { cursor: default; }
.dpi-edit-table input, .dpi-edit-table select {
  width: 100%; min-width: 110px; min-height: 36px; padding: 7px 9px;
  border: 1px solid var(--line); border-radius: 6px;
  background: var(--panel); color: var(--text); font: inherit;
}
.dpi-edit-table select { min-width: 125px; }
.dpi-edit-table input:disabled, .dpi-edit-table select:disabled { background: #f3f4f6; color: var(--muted); cursor: not-allowed; }
.dpi-edit-table td small { display: block; min-width: 100px; max-width: 200px; margin-top: 4px; color: var(--muted); font-size: 10px; }
.plan-import-main input[type=checkbox] { width: 15px; height: 15px; margin: 0 6px 0 0; vertical-align: middle; accent-color: var(--accent); }
.plan-import-alerts .error, .plan-import-alerts .warning { padding: 8px 10px; border-radius: 6px; margin: 8px 0; }
.plan-import-alerts .error { background: #fff2f3; color: #b42318; }
.plan-import-alerts .warning { background: #fffbeb; color: var(--warning); }
.plan-import-main > .error { color: #b42318; }
.plan-import-main details { margin-top: 14px; }
.plan-import-main summary { cursor: pointer; color: var(--muted); font-size: 11px; }
.plan-import-main pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
.plan-import-events { border-top: 1px solid var(--line); padding-top: 12px; color: var(--muted); font-size: 10px; }
.plan-import-events div { padding: 6px 0; border-bottom: 1px solid var(--line); }
.dpi-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; margin: 12px 0; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #f8fbff; font-size: 11px; }
.dpi-summary div { min-width: 0; overflow-wrap: anywhere; }
.dpi-summary b { display: block; margin-bottom: 4px; color: var(--muted); font-weight: 400; }
.dpi-wait { position: absolute; inset: 0; background: #ffffffd9; z-index: 20; display: flex; align-items: center; justify-content: center; gap: 14px; border-radius: 8px; }
.dpi-wait[hidden] { display: none; }
@media (max-width: 1200px) {
  .plan-import-layout { grid-template-columns: 220px minmax(0, 1fr); }
  .plan-import-form, .dpi-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .plan-import-layout { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .plan-import-records { max-height: 220px; }
  .plan-import-form, .dpi-summary { grid-template-columns: minmax(0, 1fr); }
  .plan-import-heading { flex-wrap: wrap; }
}

.plan-import-form input.dpi-invalid, .plan-import-form select.dpi-invalid { color: #b42318; border-color: #b42318; background: #fff2f3; }
.plan-import-form [data-swb-status] { font-size: 12px; overflow-wrap: anywhere; }
.plan-import-form [data-swb-status].error { color: #b42318; font-weight: 600; }
