/* ============================================================
   Link2shop v2, Design Tokens
   8 paletas curadas baseadas no handoff do Claude Design.
   Cada paleta tem escala 50→600 (brand) + cream + peach + CTA contrastante.
   Switch via classe no <html>: html.palette-laranja, html.palette-verde, etc.
   ============================================================ */

:root {
  --l2s-font: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;

  /* Neutros warm (compartilhados em todas as paletas) */
  --l2s-ink:        #1A1410;
  --l2s-slate-700:  #3B3128;
  --l2s-slate-500:  #6E5F52;
  --l2s-slate-400:  #9C8B7C;
  --l2s-slate-300:  #C9BBAE;
  --l2s-slate-200:  #E8DDD0;
  --l2s-slate-100:  #F4ECE0;

  /* Acentos quentes (ousados, compartilhados) */
  --l2s-coral:      #FF7A6B;
  --l2s-amber:      #F8C44A;
  --l2s-rose:       #F8A3B0;
  --l2s-mint:       #8DD3B8;
  --l2s-lavender:   #B6A6E9;

  /* Sombras */
  --l2s-shadow-sm:  0 1px 2px rgba(60, 30, 10, 0.06);
  --l2s-shadow-md:  0 6px 24px -8px rgba(80, 40, 10, 0.12), 0 2px 6px rgba(80, 40, 10, 0.05);
  --l2s-shadow-lg:  0 24px 48px -16px rgba(80, 40, 10, 0.18), 0 4px 12px rgba(80, 40, 10, 0.06);

  /* Radius */
  --l2s-r-sm: 10px;
  --l2s-r-md: 16px;
  --l2s-r-lg: 22px;
  --l2s-r-xl: 28px;
  --l2s-r-2xl: 36px;

  /* Default = Laranja Headspace */
  --l2s-brand-600: #E26A2C;
  --l2s-brand-500: #F47B3F;
  --l2s-brand-400: #FF9460;
  --l2s-brand-300: #FFB37A;
  --l2s-brand-200: #FFD2A8;
  --l2s-brand-100: #FFE6CB;
  --l2s-brand-50:  #FFF3E8;
  --l2s-cream:     #FFFBF5;
  --l2s-peach:     #FFD9B5;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(244, 123, 63, 0.55);

  --l2s-cta:        #1F8A56;
  --l2s-cta-top:    #2EAA6E;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(46, 170, 110, 0.55);
}

html.palette-laranja {
  --l2s-brand-600: #E26A2C; --l2s-brand-500: #F47B3F; --l2s-brand-400: #FF9460;
  --l2s-brand-300: #FFB37A; --l2s-brand-200: #FFD2A8; --l2s-brand-100: #FFE6CB; --l2s-brand-50: #FFF3E8;
  --l2s-cream: #FFFBF5; --l2s-peach: #FFD9B5;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(244, 123, 63, 0.55);
  --l2s-cta: #1F8A56; --l2s-cta-top: #2EAA6E;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(46, 170, 110, 0.55);
}

html.palette-coral {
  --l2s-brand-600: #D94B4B; --l2s-brand-500: #F26565; --l2s-brand-400: #FF8273;
  --l2s-brand-300: #FFA399; --l2s-brand-200: #FFC4BC; --l2s-brand-100: #FFE0DA; --l2s-brand-50: #FFF1ED;
  --l2s-cream: #FFFAF7; --l2s-peach: #FFD0C4;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(242, 101, 101, 0.55);
  --l2s-cta: #2952B8; --l2s-cta-top: #3F6FE0;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(63, 111, 224, 0.55);
}

html.palette-rosa {
  --l2s-brand-600: #C7457E; --l2s-brand-500: #E55D9C; --l2s-brand-400: #F478B3;
  --l2s-brand-300: #FBA3CC; --l2s-brand-200: #FECBDF; --l2s-brand-100: #FFE4EE; --l2s-brand-50: #FFF1F7;
  --l2s-cream: #FFFAFC; --l2s-peach: #FFCFE3;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(229, 93, 156, 0.55);
  --l2s-cta: #5A3FBF; --l2s-cta-top: #7B5FE5;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(123, 95, 229, 0.55);
}

html.palette-roxo {
  --l2s-brand-600: #5A3FBF; --l2s-brand-500: #7B5FE5; --l2s-brand-400: #9580F2;
  --l2s-brand-300: #B4A6F5; --l2s-brand-200: #D2C8F8; --l2s-brand-100: #E8E2FB; --l2s-brand-50: #F4F1FE;
  --l2s-cream: #FBFAFF; --l2s-peach: #D8CDF7;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(123, 95, 229, 0.55);
  --l2s-cta: #1F8A56; --l2s-cta-top: #2EAA6E;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(46, 170, 110, 0.55);
}

html.palette-verde {
  --l2s-brand-600: #1F8A56; --l2s-brand-500: #2EAA6E; --l2s-brand-400: #4CC68A;
  --l2s-brand-300: #7DDDA9; --l2s-brand-200: #B0EBC8; --l2s-brand-100: #D5F4DF; --l2s-brand-50: #EAFAF0;
  --l2s-cream: #F8FCF9; --l2s-peach: #B8E8C9;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(46, 170, 110, 0.55);
  --l2s-cta: #E26A2C; --l2s-cta-top: #F47B3F;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(244, 123, 63, 0.55);
}

html.palette-azul {
  --l2s-brand-600: #2952B8; --l2s-brand-500: #3F6FE0; --l2s-brand-400: #638FF0;
  --l2s-brand-300: #8FACF5; --l2s-brand-200: #BCCDF9; --l2s-brand-100: #DCE5FB; --l2s-brand-50: #EEF3FE;
  --l2s-cream: #F8FAFE; --l2s-peach: #C8D5F4;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(63, 111, 224, 0.55);
  --l2s-cta: #1F8A56; --l2s-cta-top: #2EAA6E;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(46, 170, 110, 0.55);
}

html.palette-preto {
  --l2s-brand-600: #0A0A0A; --l2s-brand-500: #1A1A1A; --l2s-brand-400: #2A2A2A;
  --l2s-brand-300: #5A5A5A; --l2s-brand-200: #9A9A9A; --l2s-brand-100: #D4D4D4; --l2s-brand-50: #F2F2F2;
  --l2s-cream: #FAFAFA; --l2s-peach: #C8C8C8;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(26, 26, 26, 0.55);
  --l2s-cta: #1F8A56; --l2s-cta-top: #2EAA6E;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(46, 170, 110, 0.55);
}

html.palette-terracota {
  --l2s-brand-600: #8E3A1F; --l2s-brand-500: #B05030; --l2s-brand-400: #C8694A;
  --l2s-brand-300: #DA8A6E; --l2s-brand-200: #E9B19A; --l2s-brand-100: #F2D4C2; --l2s-brand-50: #F9EBE0;
  --l2s-cream: #FBF5EE; --l2s-peach: #E5C2A8;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(176, 80, 48, 0.55);
  --l2s-cta: #1F8A56; --l2s-cta-top: #2EAA6E;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(46, 170, 110, 0.55);
}

* { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  font-family: var(--l2s-font);
  color: var(--l2s-ink);
  background: var(--l2s-cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Botão CTA (cor contrastante da paleta) */
.l2s-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; height: 56px;
  border: none; border-radius: 999px;
  background: linear-gradient(180deg, var(--l2s-cta-top) 0%, var(--l2s-cta) 100%);
  color: white;
  font-family: var(--l2s-font); font-weight: 700; font-size: 16px;
  letter-spacing: -0.01em;
  cursor: pointer;
  box-shadow: var(--l2s-shadow-cta);
  transition: transform 120ms ease, box-shadow 120ms ease, filter 120ms ease;
}
.l2s-btn:hover { transform: translateY(-1px); filter: brightness(1.03); }
.l2s-btn:active { transform: translateY(0); filter: brightness(0.97); }
.l2s-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

.l2s-btn-ghost {
  background: white; color: var(--l2s-ink);
  box-shadow: var(--l2s-shadow-sm);
  border: 1px solid var(--l2s-slate-200);
}

/* Input */
.l2s-input {
  width: 100%; height: 52px;
  padding: 0 18px;
  border-radius: var(--l2s-r-md);
  border: 1.5px solid var(--l2s-slate-200);
  background: white;
  font-family: var(--l2s-font); font-size: 15px; color: var(--l2s-ink);
  outline: none;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}
.l2s-input::placeholder { color: var(--l2s-slate-400); }
.l2s-input:focus {
  border-color: var(--l2s-brand-500);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--l2s-brand-500) 15%, transparent);
}

/* Eyebrow */
.l2s-eyebrow {
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--l2s-slate-500);
}

/* Scroll fino */
.l2s-scroll::-webkit-scrollbar { width: 0; height: 0; }
.l2s-scroll { scrollbar-width: none; }

/* Animações */
@keyframes l2s-pop { 0% { transform: scale(0.8); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
@keyframes l2s-slide-up { 0% { transform: translateY(12px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes l2s-shimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* Toast */
.l2s-toast {
  position: fixed; bottom: 22px; right: 22px; z-index: 9999;
  padding: 12px 18px;
  background: var(--l2s-ink); color: white;
  border-radius: 999px; font-weight: 600; font-size: 13px;
  box-shadow: var(--l2s-shadow-lg);
  animation: l2s-slide-up 220ms ease both;
  max-width: calc(100vw - 44px);
}
.l2s-toast.success { background: var(--l2s-cta); }
.l2s-toast.error { background: var(--l2s-coral); }
