/* ============================================================
   Vortal — Team Member Forms
   Requires: components/inputs.css, components/buttons.css,
             components/card.css

   Covers: add, edit, remove team member.
   Role selector with helper text.
   ============================================================ */

/* ── Form layout ─────────────────────────────────────────── */
.team-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  max-inline-size: 560px;
}

.team-form-section {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.team-form-section-title {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-text-muted);
  padding-block-end: var(--space-3);
  border-block-end: 1px solid var(--color-border-light);
}

/* ── Role selector ───────────────────────────────────────── */
.role-selector {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.role-option {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--color-border);
  cursor: pointer;
  transition: border-color 120ms ease, background-color 120ms ease;
}

.role-option:hover {
  border-color: var(--color-primary);
  background-color: color-mix(in oklch, var(--color-primary) 3%, transparent);
}

.role-option input[type="radio"] {
  margin-block-start: 2px;
  accent-color: var(--color-primary);
  flex-shrink: 0;
}

.role-option:has(input:checked) {
  border-color: var(--color-primary);
  background-color: color-mix(in oklch, var(--color-primary) 5%, transparent);
}

.role-option-body {
  flex: 1;
  min-inline-size: 0;
}

.role-option-label {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text);
  display: block;
}

.role-option-desc {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
  margin-block-start: var(--space-1);
}

/* ── Form actions ────────────────────────────────────────── */
.team-form-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-block-start: var(--space-2);
}

/* ── Remove confirmation ─────────────────────────────────── */
.team-remove-confirm {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  max-inline-size: 480px;
}

.team-remove-user {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  background-color: color-mix(in oklch, var(--color-bg) 50%, var(--color-surface));
  border: 1px solid var(--color-border-light);
}

.team-remove-avatar {
  inline-size: 2.5rem;
  block-size: 2.5rem;
  border-radius: var(--radius-full);
  background-color: color-mix(in oklch, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: var(--text-sm);
  flex-shrink: 0;
}

.team-remove-name {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text);
}

.team-remove-email {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.team-remove-warning {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
}

.team-remove-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
