/* Atomic UI components */
.nv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 50px;
  padding: 0 28px;
  border-radius: var(--nv-radius-pill);
  border: 1.5px solid transparent;
  font-weight: 600;
  font-size: 0.9375rem;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: transform var(--nv-duration) var(--nv-ease), box-shadow var(--nv-duration) var(--nv-ease), background var(--nv-duration) var(--nv-ease), color var(--nv-duration) var(--nv-ease), border-color var(--nv-duration) var(--nv-ease);
  text-decoration: none;
  white-space: nowrap;
}

.nv-btn:active {
  transform: scale(0.98);
}

.nv-btn--primary {
  background: var(--nv-primary);
  color: #fff;
  box-shadow: var(--nv-shadow-glow);
}

.nv-btn--primary:hover {
  background: var(--nv-primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(225, 29, 72, 0.28);
}

.nv-btn--ghost {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  border-color: var(--nv-border);
  color: var(--nv-ink);
}

.nv-btn--ghost:hover {
  border-color: var(--nv-border-rose);
  color: var(--nv-primary-dark);
  background: #fff;
}

.nv-btn--block {
  width: 100%;
}

.nv-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--nv-radius-pill);
  font-size: 0.75rem;
  font-weight: 600;
  background: var(--nv-primary-soft);
  color: var(--nv-primary-dark);
}

.nv-badge--mint { background: var(--nv-pastel-mint); color: #BE123C; }
.nv-badge--peach { background: var(--nv-pastel-peach); color: #C2410C; }
.nv-badge--lilac { background: var(--nv-pastel-lilac); color: #9F1239; }
.nv-badge--sky { background: var(--nv-pastel-sky); color: #E11D48; }
.nv-badge--rose { background: var(--nv-pastel-rose); color: #BE185D; }

.nv-card {
  background: var(--nv-surface);
  border: 1px solid var(--nv-border);
  border-radius: var(--nv-radius-lg);
  box-shadow: var(--nv-shadow-card);
  transition: transform var(--nv-duration) var(--nv-ease-out), box-shadow var(--nv-duration) var(--nv-ease-out), border-color var(--nv-duration) var(--nv-ease);
}

.nv-card--lift:hover {
  transform: translateY(-3px);
  box-shadow: var(--nv-shadow-lg);
  border-color: var(--nv-border-rose);
}

.nv-icon-tile {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nv-icon-tile--mint { background: var(--nv-pastel-mint); color: #E11D48; }
.nv-icon-tile--peach { background: var(--nv-pastel-peach); color: #EA580C; }
.nv-icon-tile--lilac { background: var(--nv-pastel-lilac); color: #BE123C; }
.nv-icon-tile--sky { background: var(--nv-pastel-sky); color: #E11D48; }
.nv-icon-tile--rose { background: var(--nv-pastel-rose); color: #DB2777; }
.nv-icon-tile--teal { background: var(--nv-primary-soft); color: var(--nv-primary); }

.nv-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.nv-field__label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--nv-muted);
}

.nv-field__control,
.nv-field select,
.nv-field input {
  width: 100%;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid var(--nv-border);
  border-radius: var(--nv-radius-sm);
  background: var(--nv-surface-alt);
  color: var(--nv-ink);
  outline: none;
  transition: border-color var(--nv-duration) var(--nv-ease), box-shadow var(--nv-duration) var(--nv-ease);
}

.nv-field__control:focus,
.nv-field select:focus,
.nv-field input:focus {
  border-color: var(--nv-primary);
  box-shadow: 0 0 0 3px var(--nv-primary-soft);
  background: #fff;
}

.nv-avatars {
  display: flex;
  align-items: center;
}

.nv-avatars img,
.nv-avatars span {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid #fff;
  margin-left: -10px;
  object-fit: cover;
  background: var(--nv-pastel-sky);
}

.nv-avatars img:first-child,
.nv-avatars span:first-child {
  margin-left: 0;
}

.nv-stars {
  display: inline-flex;
  gap: 2px;
  color: var(--nv-gold);
}

.nv-stars svg {
  width: 14px;
  height: 14px;
}

.nv-reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s var(--nv-ease), transform 0.5s var(--nv-ease);
}

.nv-reveal.is-visible {
  opacity: 1;
  transform: none;
}

.nv-accordion__item {
  border-bottom: 1px solid var(--nv-border);
}

.nv-accordion__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
  background: none;
  border: 0;
  text-align: left;
  font-weight: 600;
  color: var(--nv-ink);
  cursor: pointer;
}

.nv-accordion__panel {
  display: none;
  padding: 0 0 18px;
  color: var(--nv-muted);
}

.nv-accordion__item.is-open .nv-accordion__panel {
  display: block;
}

.nv-accordion__item.is-open .nv-accordion__chevron {
  transform: rotate(180deg);
}

.nv-accordion__chevron {
  transition: transform var(--nv-duration) var(--nv-ease);
  flex-shrink: 0;
}
