/* ============================================================
   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;

  /* EDGE LAYOUT v2.0 (2026-06-20): admin NEUTRO, padrão pra todas as lojas.
     A cor por loja (brand_color) deixa de pintar o painel. Tudo grafite/cinza,
     CTA e ações de venda em verde. O topo do admin é grafite fixo (no index). */
  --l2s-brand-600: #17131F;
  --l2s-brand-500: #2A2533;
  --l2s-brand-400: #6B6675;
  --l2s-brand-300: #9A95A3;
  --l2s-brand-200: #D9D7DD;
  --l2s-brand-100: #EFEEF1;
  --l2s-brand-50:  #F7F7F8;
  --l2s-cream:     #FFFFFF;
  --l2s-peach:     #EFEEF1;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(23, 19, 31, 0.18);

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

  /* Ação com IA (roxo), botão "fazer algo" em todo o app. Continuar = verde (cta). */
  --l2s-act:        #6D28D9;
  --l2s-act-top:    #8B5CF6;
  --l2s-act-mid:    #7C3AED;
  --l2s-shadow-act: 0 12px 32px -10px rgba(109, 40, 217, 0.42);
}

/* Todas as paletas antigas colapsam no sistema neutro (lojas antigas incluídas) */
html.palette-laranja, html.palette-coral, html.palette-rosa, html.palette-roxo,
html.palette-verde, html.palette-azul, html.palette-preto, html.palette-terracota {
  --l2s-brand-600: #17131F; --l2s-brand-500: #2A2533; --l2s-brand-400: #6B6675;
  --l2s-brand-300: #9A95A3; --l2s-brand-200: #D9D7DD; --l2s-brand-100: #EFEEF1; --l2s-brand-50: #F7F7F8;
  --l2s-cream: #FFFFFF; --l2s-peach: #EFEEF1;
  --l2s-shadow-brand: 0 12px 32px -10px rgba(23, 19, 31, 0.18);
  --l2s-cta: #1F8A56; --l2s-cta-top: #2EAA6E;
  --l2s-shadow-cta: 0 12px 32px -10px rgba(46, 170, 110, 0.40);
}

* { 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);
}

/* iOS Safari, prevenir zoom automático ao focar input.
   Quando font-size < 16px, iOS faz zoom. Forçando 16px global em telas pequenas. */
@media (max-width: 600px) {
  input:not([type="checkbox"]):not([type="radio"]),
  textarea,
  select { font-size: 16px !important; }
}

/* 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: 16px; 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);
}

/* Preço/Valor monetário, padrão único do sistema, sempre DM Sans com números monoespaçados */
.l2s-price {
  font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: var(--l2s-ink);
  white-space: nowrap;
}
.l2s-price.lg { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; }
.l2s-price.md { font-size: 18px; }
.l2s-price.sm { font-size: 14px; }
.l2s-price.xs { font-size: 12px; }

/* 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-slide-down { 0% { transform: translateX(-50%) translateY(-12px); opacity: 0; } 100% { transform: translateX(-50%) translateY(0); opacity: 1; } }
@keyframes l2s-shimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* Toast */
.l2s-toast {
  position: fixed; top: max(18px, env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); 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-down 220ms ease both;
  max-width: calc(100vw - 44px);
}
.l2s-toast.success { background: var(--l2s-cta); }
.l2s-toast.error { background: var(--l2s-coral); }

/* ============================================================
   Typography v2, mais leve (padrão iFood-like)
   Cravado pelo calderon em 2026-05-08, baseado em UX research:
   pesos 800 em todo lugar gritam "varejo descontão".
   Aqui usamos 700 em títulos, 600 em seções, 400 em corpo,
   e mantém 800 SÓ onde queremos peso (preços e CTAs).
   ============================================================ */

/* Body / paragraph default mais leve */
body, p { font-weight: 400; }

/* Headings, todos 700 (era 800) */
h1, h2, h3, h4 { font-weight: 700; letter-spacing: -0.02em; }

/* Seções de página com pesos suavizados */
.vit-head .nm-row { font-weight: 700; }
.ord-card .nm { font-weight: 600; }
.account-head .nm { font-weight: 700; }
.checkout-summary .nm { font-weight: 600; }
.score-card .num { font-weight: 700; }

/* Tab bar ativo, peso médio (era 700) */
.tab-bar button.active .lbl { font-weight: 600; }

/* Manter peso em preços e elementos de venda (são pontos focais) */
.l2s-price,
.l2s-price.lg,
.l2s-price.md,
.l2s-price.sm,
.l2s-price.xs,
.ord-card .pr,
.checkout-summary .pr,
.score-card .delta,
[data-emphasis="price"] { font-weight: 800; }

/* CTA principais permanecem com peso de comando */
.l2s-btn { font-weight: 700; }

/* Eyebrows e badges mantêm 700 caps (categoria de label) */
.l2s-eyebrow,
.l2s-badge { font-weight: 700; letter-spacing: 0.1em; }

