/**
 * Migration Module Styles
 * Bluprint (Phase 1)
 */
/* Dropzone hint (the dropzone itself is the framework's .file-drop-zone) */
.migration-dropzone-hint {
  font-size: 0.85em;
  opacity: 0.7;
  margin-top: 0.5rem;
}
/* Parsed summary */
.migration-summary h3 {
  margin-bottom: 0.75rem;
}
.migration-summary-actions {
  display: flex;
  gap: 0.5rem;
}
/* Progress */
.migration-progress-track {
  height: 12px;
  border-radius: 6px;
  background-color: var(--border-color, #eee);
  overflow: hidden;
  margin: 1.5rem 0 0.5rem;
}
.migration-progress-bar {
  height: 100%;
  width: 0;
  border-radius: 6px;
  background-color: var(--primary-color, #4a90d9);
  transition: width 0.2s;
}
/* Job status badges */
.migration-status {
  display: inline-block;
  padding: 0.15em 0.6em;
  border-radius: 1em;
  font-size: 0.85em;
  background-color: var(--border-color, #eee);
}
.migration-status-uploaded,
.migration-status-review {
  background-color: #fff3cd;
  color: #856404;
}
.migration-status-done {
  background-color: #d4edda;
  color: #155724;
}
.migration-status-failed {
  background-color: #f8d7da;
  color: #721c24;
}
.migration-status-uploading,
.migration-status-profiling,
.migration-status-analyzing,
.migration-status-importing {
  background-color: #cce5ff;
  color: #004085;
}
/* Review UI — questions */
.migration-question {
  border: 1px solid var(--border-color, #ddd);
  border-left: 4px solid var(--primary-color, #4a90d9);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  margin: 0.5rem 0;
}
.migration-question-text {
  margin-bottom: 0.5rem;
  font-weight: 500;
}
.migration-question-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
/* Review UI — entity cards */
.migration-entity {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.migration-entity .migration-samples {
  padding: 0;
}
.migration-entity-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.migration-entity-head h3 {
  margin: 0;
  flex: 1 1 auto;
}
.migration-entity-head label {
  display: flex;
  align-items: center;
  font-size: 0.85em;
  gap: 0.25rem;
}
.migration-row-review {
  background-color: rgba(255, 193, 7, 0.08);
}
/* Confidence badges: เขียว ≥90, เหลือง 70–89, แดง <70 */
.migration-conf {
  display: inline-block;
  padding: 0.1em 0.5em;
  border-radius: 1em;
  font-size: 0.85em;
  font-weight: 600;
}
.migration-conf-high {
  background-color: #d4edda;
  color: #155724;
}
.migration-conf-mid {
  background-color: #fff3cd;
  color: #856404;
}
.migration-conf-low {
  background-color: #f8d7da;
  color: #721c24;
}
.migration-override {
  margin-left: 0.35em;
  opacity: 0.6;
}
.migration-review-status {
  align-self: center;
  opacity: 0.7;
}
/* Import page */
.migration-import-controls label {
  display: block;
  margin: 0.35rem 0;
}
.migration-report-ok {
  color: var(--color-success);
}
.migration-report-bad {
  color: var(--color-error);
  font-weight: 600;
}
/* Relationships (FK) */
.migration-relationship {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.4rem 0;
  border-bottom: 1px dashed var(--border-color, #eee);
  font-family: monospace;
  font-size: 0.9em;
}
.migration-relationship .btn {
  margin-left: auto;
  padding: 0.15em 0.5em;
}
/* ER Diagram */
.migration-er {
  margin-bottom: 1.5rem;
}
.migration-er-canvas {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 3.5rem 5rem;
  padding: 1rem 0.5rem;
  overflow-x: auto;
}
.migration-er-card {
  position: relative;
  z-index: 1;
  min-width: 160px;
  border: 1px solid var(--border-color, #ccc);
  border-radius: 6px;
  background: var(--card-bg, var(--bg-color, #fff));
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  font-family: monospace;
  font-size: 0.85em;
}
.migration-er-title {
  padding: 0.35rem 0.75rem;
  font-weight: 700;
  background: var(--primary-color, #4a90d9);
  color: #fff;
  border-radius: 5px 5px 0 0;
}
.migration-er-row {
  padding: 0.25rem 0.75rem;
  border-top: 1px solid var(--border-color, #eee);
}
.migration-er-pk {
  font-weight: 600;
}
.migration-er-bk {
  font-weight: 600;
  color: var(--primary-color, #4a90d9);
}
.migration-er-more {
  opacity: 0.5;
  font-style: italic;
}
.migration-er-lines {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}
.migration-er-lines path {
  fill: none;
  stroke: var(--primary-color, #4a90d9);
  stroke-width: 1.5;
  opacity: 0.65;
}
.migration-er-lines text {
  font-size: 11px;
  fill: var(--text-muted, #888);
  text-anchor: middle;
}
/* Business classification card */
.migration-business {
  border: 1px solid var(--border-color, #ddd);
  border-left: 4px solid #28a745;
  border-radius: 6px;
  padding: 0.75rem 1rem;
}
.migration-business-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 600;
}
.migration-business-modules {
  margin-top: 0.5rem;
}
.migration-module-chip {
  display: inline-block;
  padding: 0.15em 0.7em;
  margin: 0.15em 0.25em 0.15em 0;
  border-radius: 1em;
  background-color: #e7f1ff;
  color: #0a58ca;
  font-size: 0.9em;
  cursor: help;
}
/* Express mode */
.migration-express {
  margin: 1rem 0;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border-color, #ddd);
  border-left: 4px solid #ffc107;
  border-radius: 6px;
}
/* ── หน้ารายงานการนำเข้า (migration/report.html) ── */
.report-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.report-head h2 {
  margin: 0;
}
.report-meta {
  font-size: 0.85em;
  opacity: 0.7;
}
.report-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.report-stat {
  flex: 1 1 120px;
  border: 1px solid var(--border-color, #e0e0e0);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  text-align: center;
}
.report-stat-value {
  font-size: 1.5rem;
  font-weight: 700;
}
.report-stat-label {
  font-size: 0.8em;
  opacity: 0.7;
}
.report-stat.ok .report-stat-value {
  color: var(--color-success, #2e7d32);
}
.report-stat.bad .report-stat-value {
  color: var(--color-danger, #c62828);
}
.report-stat.warn .report-stat-value {
  color: var(--color-warning, #f39c12);
}
.report-note {
  font-size: 0.85em;
  opacity: 0.7;
  margin-top: 0.5rem;
}
.report-hard-error {
  background: rgba(198, 40, 40, 0.08);
  border: 1px solid rgba(198, 40, 40, 0.3);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin-bottom: 1.5rem;
  word-break: break-word;
}
.migration-express input[type="text"] {
  margin-left: 0.5rem;
  max-width: 200px;
}
.migration-import-controls,
#migration-entities {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: var(--space-4);
}
.migration-import-controls:empty,
#migration-entities:empty {
  display: none;
}