/* ===== Detail Stepper — 상단 10단계 (ADR-015) ===== */
.factory-detail-stepper {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 20px;
  padding: 14px 12px;
  background: var(--bg-secondary);
  border-radius: var(--radius-lg);
  overflow-x: auto;
}

.factory-detail-step {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--text-muted);
  padding: 4px 6px;
  border-radius: var(--radius-md, 6px);
  white-space: nowrap;
  flex-shrink: 0;
}

.factory-detail-step.done {
  color: #059669;
  font-weight: 600;
}

.factory-detail-step.active {
  background: var(--accent-light);
  color: var(--accent);
  font-weight: 700;
}

.factory-detail-step.error {
  color: #EF4444;
  font-weight: 600;
}

.factory-detail-step-icon {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  flex-shrink: 0;
}

.factory-detail-step.done .factory-detail-step-icon {
  border-color: #059669;
  background: #059669;
  color: white;
}

.factory-detail-step.active .factory-detail-step-icon {
  border-color: var(--accent);
  color: var(--accent);
  animation: factory-pulse-icon 2s ease-in-out infinite;
}

@keyframes factory-pulse-icon {
  0%, 100% { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent); }
  50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 10%, transparent); }
}

/* Pending steps — reduced opacity */
.factory-detail-step:not(.done):not(.active):not(.error) {
  opacity: 0.6;
}

.factory-detail-step.error .factory-detail-step-icon {
  border-color: #EF4444;
  background: #EF4444;
  color: white;
}

.factory-detail-step-label {
  display: inline;
}

.factory-detail-connector {
  width: 16px;
  height: 2px;
  background: var(--border);
  flex-shrink: 0;
}

.factory-detail-connector.done {
  background: #059669;
}

/* ===== Phase Execution Sub-Stepper — 하단 (ADR-015) ===== */
.factory-phase-stepper-wrap {
  background: var(--bg-secondary);
  border-radius: var(--radius-lg);
  padding: 12px;
  margin-bottom: 16px;
}

.factory-phase-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
}

.factory-phase-tab {
  padding: 4px 10px;
  border-radius: var(--radius-md, 6px);
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: all 150ms;
}
.factory-phase-tab:hover {
  background: var(--bg-tertiary);
}

.factory-phase-tab.done {
  color: var(--accent);
  background: var(--accent-light);
}

.factory-phase-tab.active {
  color: white;
  background: var(--accent);
  border-color: var(--accent);
}

.factory-phase-tab.current {
  color: var(--accent);
  border-color: var(--accent);
}

.factory-phase-stepper {
  display: flex;
  align-items: center;
  gap: 12px;
}

.factory-phase-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  min-width: 80px;
}

.factory-phase-steps {
  display: flex;
  align-items: center;
  gap: 8px;
}

.factory-phase-step {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--text-muted);
  padding: 6px 10px;
  border-radius: var(--radius-md, 6px);
  position: relative;
}

.factory-phase-step.active {
  background: var(--accent-light);
  color: var(--accent);
  font-weight: 600;
}

.factory-phase-step.done {
  color: var(--accent);
}

.factory-phase-step-icon {
  font-size: 12px;
}

.factory-phase-step-label {
  font-size: 12px;
}

.factory-phase-step-note {
  font-size: 12px;
  color: var(--text-muted);
  font-style: italic;
}

.factory-phase-connector {
  width: 16px;
  height: 2px;
  background: var(--border);
  flex-shrink: 0;
}
.factory-phase-connector.done {
  background: var(--accent);
}

.factory-phase-gate-badge {
  font-size: 9px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: var(--radius-full);
  background: rgba(245,158,11,0.1);
  color: #F59E0B;
  white-space: nowrap;
}
.factory-phase-gate-badge.at-max {
  background: rgba(239,68,68,0.1);
  color: #EF4444;
}

.factory-phase-arrow {
  color: var(--text-muted);
  font-size: 10px;
}

/* ===== Stepper collapsed/expanded (Phase 2 — §5.4) ===== */
.factory-detail-step.collapsed .factory-detail-step-label {
  display: none;
}

.factory-detail-step.expanded .factory-detail-step-label {
  display: inline;
}

.factory-detail-step { cursor: pointer; }

/* ===== Stepper inline Resume/Pause ===== */
.factory-stepper-resume,
.factory-stepper-pause {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full, 50%);
  border: 1px solid var(--border);
  background: var(--bg-secondary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 200ms;
}

.factory-stepper-resume {
  color: var(--accent);
  border-color: var(--accent);
  animation: factory-resume-pulse 2s ease-in-out infinite;
}

.factory-stepper-resume:hover {
  background: var(--accent);
  color: white;
}

.factory-stepper-pause {
  color: var(--text-muted);
}

.factory-stepper-pause:hover {
  color: #EF4444;
  border-color: #F87171;
  background: #FEF2F2;
}

@keyframes factory-resume-pulse {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 30%, transparent); }
  50% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent); }
}

.factory-stepper-status {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.factory-stepper-status.running {
  color: var(--accent);
}

.factory-spinner-sm {
  width: 14px;
  height: 14px;
  border: 2px solid color-mix(in srgb, var(--accent) 25%, transparent);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: factory-spin 0.8s linear infinite;
}

.factory-stepper-status.paused-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #FBBF24;
}

/* (구 pause-resume-bar — stepper inline 아이콘으로 대체, JS에서 아직 참조) */
.factory-pause-resume-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-radius: var(--radius-lg);
  margin-bottom: 12px;
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-secondary));
  border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--border));
}

.factory-pause-resume-bar.paused {
  background: #FEF3C7;
  border-color: #FDE68A;
}

.factory-status-indicator {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
}

.factory-status-indicator.active {
  color: var(--accent);
}

.factory-status-indicator.pending {
  color: #92400E;
}
