* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --bg: #ede9dd;
  --primary: #2d2d2d;
  --primary-light: #3d3d3d;
  --accent: #8b7bad;
  --accent-hover: #7a6a9c;
  --card-bg: #fff;
  --border: #d4cfc4;
  --text: #2d2d2d;
  --text-muted: #8a8578;
  --text-light: #6b665c;
  --success: #5a8a5a;
  --danger: #c45c5c;
  --warning-bg: #f5efd6;
  --warning-text: #7a6930;
  --error-bg: #f5d6d6;
  --error-text: #8a3030;
  --chip-bg: #f5f2ea;
  --chip-border: #d4cfc4;
  --chip-active: #2d2d2d;
  --chip-active-text: #fff;
  --custom-input-bg: #faf8f3;
  --suggestion-bg: #f5f2ea;
  --suggestion-border: #d4cfc4;
  --gold: #c8a84e;
  --gold-light: #f5ecd0;
  --radius: 12px;
  --radius-sm: 8px;
  --radius-pill: 24px;
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
  --transition: 0.2s ease;
  --success-light: #e8f5e9;
  --success-dark: #2d8a4e;
  --warning: #e65100;
  --warning-light: #fff3e0;
  --danger-light: #fce4ec;
  --danger-dark: #c62828;
  --border-light: #e0ddd5;
  --bg-elevated: #faf8f3;
  --bg-muted: #f5f3ee;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: var(--bg);
  height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Shared @keyframes — canonical definitions (used across multiple modules) */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
