/* Shared name + avatar picker used by the setup form and the inline
   "edit name" panel on the profile page. The avatar emoji doubles as the
   third word of the name (see partyapp/name_generator.py). */

.name-picker-form {
  max-width: 500px;
  margin: 0 auto;
}

.np-section {
  margin-bottom: var(--space-lg);
}

.np-label {
  font-weight: 700;
  margin-bottom: var(--space-sm);
  display: block;
}

.np-hint {
  font-size: var(--font-size-sm);
  color: var(--color-text-light);
  margin-bottom: var(--space-md);
}

/* --- Live name preview --- */
.np-preview {
  text-align: center;
  font-size: var(--font-size-xl);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: var(--space-lg);
  padding: var(--space-md);
  background: var(--color-bg-card);
  border-radius: var(--border-radius);
  border: 2px dashed var(--color-primary);
}

.np-preview-emoji {
  display: block;
  font-size: 3rem;
  line-height: 1.1;
  margin-bottom: var(--space-xs);
}

/* --- Word components (adjective + noun) --- */
.np-words {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  justify-content: center;
}

.np-component {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  min-width: 130px;
}

.np-component-label {
  font-size: var(--font-size-sm);
  font-weight: 600;
  color: var(--color-text-light);
}

.np-word {
  font-size: var(--font-size-lg);
  font-weight: 700;
  padding: var(--space-xs) var(--space-md);
  background: var(--color-bg-card);
  border: 2px solid var(--color-primary);
  border-radius: var(--border-radius);
  text-align: center;
  min-width: 130px;
  color: var(--color-primary);
  cursor: pointer;
}

@keyframes np-shuffle-pop {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}
.np-word.shuffling {
  animation: np-shuffle-pop 0.2s ease-out;
}

.np-shuffle,
.np-spin {
  font-size: var(--font-size-sm);
  padding: var(--space-xs) var(--space-sm);
  background: var(--color-accent);
  color: #fff;
  border: none;
  border-radius: var(--border-radius);
  cursor: pointer;
  transition: all var(--transition);
  font-weight: 600;
}

.np-spin {
  display: block;
  margin: var(--space-sm) auto 0;
  padding: var(--space-sm) var(--space-lg);
}

.np-shuffle:hover,
.np-spin:hover {
  opacity: 0.9;
  transform: scale(1.05);
}

.np-shuffle:active,
.np-spin:active {
  transform: scale(0.95);
}

.np-shuffle:disabled,
.np-spin:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

/* --- Emoji choices (the third name component + avatar) --- */
.avatar-picker.np-emoji-choices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-sm);
  justify-items: center;
  margin-bottom: var(--space-sm);
}

.np-emoji {
  background: var(--color-bg-card);
  border: 2px solid #e0e0e0;
  border-radius: var(--border-radius);
  padding: var(--space-sm);
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  cursor: pointer;
  transition: all var(--transition);
}

.np-emoji:hover {
  border-color: var(--color-primary);
  transform: scale(1.05);
}

.np-emoji.selected {
  border-color: var(--color-primary);
  background: var(--color-accent-light);
  box-shadow: var(--shadow-card);
}

.np-emoji-glyph {
  font-size: var(--font-size-xxl);
  line-height: 1;
}

.np-emoji-word {
  font-size: var(--font-size-sm);
  font-weight: 700;
  color: var(--color-text-light);
}

.np-emoji.selected .np-emoji-word {
  color: var(--color-primary);
}

/* --- Age group --- */
.np-ages {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm);
}

@media (min-width: 500px) {
  .np-ages {
    grid-template-columns: repeat(4, 1fr);
  }
}

.np-age {
  background: var(--color-bg-card);
  border: 2px solid #e0e0e0;
  border-radius: var(--border-radius);
  padding: var(--space-md) var(--space-sm);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  cursor: pointer;
  transition: all var(--transition);
  text-align: center;
}

.np-age:hover {
  border-color: var(--color-primary);
  transform: scale(1.05);
}

.np-age.selected {
  border-color: var(--color-primary);
  background: var(--color-accent-light);
  box-shadow: var(--shadow-card);
}

.np-age-emoji {
  font-size: var(--font-size-xl);
}

.np-age-label {
  font-weight: 700;
  font-size: var(--font-size-sm);
}

/* --- Submit --- */
.np-submit {
  display: block;
  width: 100%;
  padding: var(--space-md);
  font-size: var(--font-size-lg);
  font-weight: 700;
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: var(--border-radius);
  cursor: pointer;
  transition: all var(--transition);
}

.np-submit:hover {
  opacity: 0.9;
}

.np-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
