/* razam — estilos da loja.
   Identidade: teal da marca (--oferta) + preto + branco, tipografia Inter.
   Mobile-first: a loja vive numa coluna de 480px centralizada.
   Todas as cores e escalas ficam nos tokens do :root abaixo. */

:root{
  /* ----- marca (preservada) ----- */
  --oferta:#02A690;      /* teal — cor da marca */
  --oferta-600:#02907E;  /* teal mais fundo (hover/press) */
  --oferta-ink:#017A6B;  /* teal legível em texto pequeno sobre branco (AA) */
  --oferta-wash:#E9F6F2; /* teal ~6% p/ faixas e realces */
  --oferta-wash-2:#F1FAF7;
  --verde:#0E7C64;       /* sucesso/confirmação (AA no branco) */
  --cupom:#02A690;

  /* ----- neutros ----- */
  --bg:#fff;
  --cinza:#F4F4F5;       /* superfície fraca */
  --linha:#ECECEC;       /* hairline */
  --linha-2:#DEDEDE;
  --texto:#1A1A1A;       /* ink */
  --texto-2:#3F3F46;     /* secundário forte */
  --fraco:#6B6B6B;       /* muted legível (≥4.5:1 no branco) */
  --fraco-2:#9AA0A6;     /* decorativo: placeholders, ícones, riscado */
  --preto:#0B0B0B;

  /* ----- forma ----- */
  --r1:8px; --r2:12px; --r3:16px; --pill:999px;

  /* ----- profundidade ----- */
  --sh1:0 1px 2px rgba(17,17,17,.06);
  --sh2:0 8px 24px -10px rgba(17,17,17,.20);
  --sh-app:0 0 0 1px rgba(0,0,0,.04), 0 30px 70px -34px rgba(0,0,0,.30);

  /* ----- camadas ----- */
  --z-topo:30; --z-nav:40; --z-sheet:60;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:#ECECEC;color:var(--texto);
  font-family:'Inter',system-ui,-apple-system,'Helvetica Neue',sans-serif;
  font-size:14px;line-height:1.45;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
::selection{background:var(--oferta);color:#fff}
#app{max-width:480px;margin:0 auto;background:var(--bg);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;box-shadow:var(--sh-app)}
#conteudo{flex:1}
img{max-width:100%}
button{font-family:inherit;cursor:pointer;color:inherit}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--oferta);outline-offset:2px}

.bt{transition:transform .12s cubic-bezier(.2,.8,.2,1),opacity .12s ease}
.bt:active{transform:scale(.97);opacity:.85}
.row{display:flex;align-items:center}
.between{justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:12px}
.sep{height:8px;background:var(--cinza)}
.muted{color:var(--fraco)}

/* ================= topo ================= */
.topo{position:sticky;top:0;z-index:var(--z-topo);background:var(--bg)}
.topo-linha{display:flex;align-items:center;gap:11px;padding:12px 14px;background:#000}
.marca{display:flex;align-items:center;flex-shrink:0}
.marca img{height:22px;display:block}
.busca{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:#191919;border:1px solid #272727;border-radius:var(--pill);padding:9px 14px}
.busca input{border:0;background:none;outline:none;font-size:13px;font-family:inherit;width:100%;color:#fff}
.busca input::placeholder{color:#8A8A8A}
.icone-btn{background:none;border:0;padding:2px;position:relative;color:#fff;display:flex}
.badge{position:absolute;top:-6px;right:-7px;background:var(--oferta);color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:var(--pill);display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 0 0 2px #000}
.abas{display:flex;gap:20px;padding:0 14px;overflow-x:auto;border-bottom:1px solid var(--linha);scrollbar-width:none}
.abas::-webkit-scrollbar{display:none}
.aba{flex-shrink:0;background:none;border:0;padding:12px 0;font-size:14px;color:var(--fraco);font-weight:500;border-bottom:2px solid transparent;transition:color .15s ease}
.aba.on{color:var(--texto);font-weight:700;border-bottom-color:var(--texto)}

/* ================= faixas ================= */
.flash{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#0B0B0B,#1E1E1E);color:#fff;padding:9px 14px}
.flash .rot{display:flex;align-items:center;gap:7px;font-weight:700;font-size:13px;letter-spacing:.01em}
.relogio{display:flex;align-items:center;gap:3px;font-variant-numeric:tabular-nums}
.relogio b{background:var(--oferta);border-radius:5px;padding:2px 5px;font-size:12px;font-weight:800}
.faixa-cupom{display:flex;align-items:center;gap:8px;background:var(--oferta-wash-2);padding:9px 14px;border-bottom:1px solid var(--linha);font-size:12px;color:var(--texto-2)}
.faixa-cupom strong{color:var(--oferta-ink);letter-spacing:.02em}

/* ================= card ================= */
.card{position:relative}
.card-bt{width:100%;background:none;border:0;padding:0;text-align:left;display:block}
.thumb{position:relative;border-radius:var(--r2);overflow:hidden;background:var(--cinza)}
.thumb>svg{transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.card-bt:hover .thumb>svg{transform:scale(1.03)}
.off{position:absolute;left:0;top:10px;background:var(--oferta);color:#fff;font-size:11px;font-weight:800;padding:3px 8px;border-radius:0 var(--pill) var(--pill) 0;box-shadow:var(--sh1);letter-spacing:.01em}
.esgotado{position:absolute;inset:0;background:rgba(255,255,255,.74);backdrop-filter:blur(1px);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;letter-spacing:.02em}
.nome{font-size:13px;line-height:1.32;height:35px;overflow:hidden;color:var(--texto-2);font-weight:500}
.aval{display:flex;align-items:center;gap:5px;margin:6px 0 4px;font-size:10.5px;color:var(--fraco)}
.preco{color:var(--oferta-ink);font-weight:800;font-size:16px;letter-spacing:-.01em}
.preco-de{color:var(--fraco-2);font-size:11px;text-decoration:line-through;margin-left:6px}
.coracao{position:absolute;right:8px;top:8px;background:rgba(255,255,255,.94);border:0;border-radius:var(--pill);width:30px;height:30px;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh1);transition:transform .12s ease}
.coracao:active{transform:scale(.88)}

/* ================= cabecalho simples ================= */
.cab{position:sticky;top:0;z-index:var(--z-topo);background:var(--bg);display:flex;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--linha);font-weight:700;font-size:16px}
.cab button{background:none;border:0;padding:0;color:var(--texto);display:flex}

/* ================= ficha ================= */
.backdrop{position:fixed;inset:0;z-index:var(--z-sheet);background:rgba(10,10,10,.5);display:flex;align-items:flex-end;justify-content:center}
.ficha{width:100%;max-width:480px;max-height:94vh;background:var(--bg);border-radius:var(--r3) var(--r3) 0 0;overflow-y:auto;position:relative;animation:sobe .3s cubic-bezier(.2,.85,.25,1);padding-bottom:env(safe-area-inset-bottom)}
.ficha::before{content:"";position:absolute;left:50%;top:9px;transform:translateX(-50%);width:40px;height:4px;border-radius:99px;background:rgba(255,255,255,.9);z-index:3;box-shadow:0 1px 3px rgba(0,0,0,.25)}
@keyframes sobe{from{transform:translateY(100%)}to{transform:translateY(0)}}
.voltar-flut{position:absolute;left:12px;top:12px;z-index:2;background:rgba(255,255,255,.94);border:0;border-radius:99px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh1)}
.pontos{display:flex;justify-content:center;gap:6px;padding:12px 0 8px}
.ponto{width:6px;height:6px;border-radius:99px;border:0;background:#D6D6D6;transition:width .25s cubic-bezier(.2,.8,.2,1),background .2s}
.ponto.on{width:20px;background:var(--texto)}
.preco-g{color:var(--oferta);font-weight:800;font-size:27px;letter-spacing:-.02em}
.preco-de-g{color:var(--fraco-2);font-size:14px;text-decoration:line-through;margin-left:7px}
.selo{background:var(--oferta);color:#fff;font-size:11px;font-weight:800;padding:3px 7px;border-radius:6px;margin-left:8px}
.tams{display:flex;gap:8px;flex-wrap:wrap}
.tam{min-width:52px;padding:11px 14px;border-radius:10px;font-size:13px;font-weight:600;border:1.5px solid var(--linha);background:var(--bg);color:var(--texto);transition:border-color .15s,background .15s,color .15s}
.tam.on{background:var(--texto);color:#fff;border-color:var(--texto)}
.tam:disabled{color:#C4C4C4;background:var(--cinza);text-decoration:line-through;cursor:not-allowed}
.rodape-fixo{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--linha);padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px}
.principal{flex:1;padding:15px;border-radius:var(--pill);border:0;background:var(--preto);color:#fff;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s,filter .15s}
.principal:not(:disabled):active{transform:scale(.985)}
.principal:not(:disabled):hover{filter:brightness(1.08)}
.principal:disabled{background:#E6E6E6;color:#9B9B9B;cursor:not-allowed}
.principal.oferta{background:var(--oferta)}
.principal.oferta:disabled{background:#BFE6DF;color:#fff}

/* ================= frete ================= */
.barra-frete{background:var(--oferta-wash);padding:11px 14px;border-bottom:1px solid var(--linha)}
.trilho{height:6px;background:#CFEAE3;border-radius:99px;overflow:hidden;margin-top:7px}
.trilho i{display:block;height:100%;background:linear-gradient(90deg,var(--oferta),#04C2AC);border-radius:99px;transition:width .4s cubic-bezier(.2,.8,.2,1)}

/* ================= sacola ================= */
.item{display:flex;gap:12px;padding:14px;border-bottom:1px solid var(--linha)}
.item .foto{width:84px;flex-shrink:0;border-radius:var(--r1);overflow:hidden;background:var(--cinza)}
.chip{display:inline-block;background:var(--cinza);border:1px solid var(--linha);border-radius:6px;padding:2px 8px;font-size:11px;color:var(--fraco);margin-top:6px}
.stepper{display:flex;align-items:center;border:1px solid var(--linha-2);border-radius:99px}
.stepper button{padding:6px 11px;background:none;border:0;color:var(--texto);display:flex}
.stepper span{font-size:13px;font-weight:700;min-width:20px;text-align:center}

/* ================= formulário ================= */
label.campo{display:block;margin-bottom:12px}
label.campo span{font-size:12px;color:var(--fraco);font-weight:600}
label.campo input,label.campo select{width:100%;margin-top:6px;padding:13px 14px;background:var(--cinza);border:1.5px solid var(--linha);border-radius:10px;font-size:15px;font-family:inherit;color:var(--texto);transition:border-color .15s,background .15s}
label.campo input:focus,label.campo select:focus{border-color:var(--oferta);background:#fff;outline:none}
label.campo input::placeholder{color:var(--fraco-2)}
.opcao{width:100%;display:flex;align-items:center;gap:12px;padding:14px;margin-bottom:10px;text-align:left;border-radius:12px;background:var(--bg);border:1.5px solid var(--linha);transition:border-color .15s,background .15s}
.opcao.on{border-color:var(--oferta);background:var(--oferta-wash-2)}
.radio{width:20px;height:20px;border-radius:99px;border:1.5px solid #C4C4C4;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s}
.opcao.on .radio{border-color:var(--oferta)}
.radio i{width:10px;height:10px;border-radius:99px;background:var(--oferta);display:none}
.opcao.on .radio i{display:block}
.linha-resumo{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}
.verde{color:var(--verde)}
.vermelho{color:var(--oferta-ink);font-weight:600}
.total-lado{margin-right:12px}
.total-lado small{display:block;font-size:11px;color:var(--fraco)}
.total-lado b{color:var(--oferta-ink);font-weight:800;font-size:21px;letter-spacing:-.01em}

/* ================= pix ================= */
.pix-tela{padding:22px 16px 30px;text-align:center}
.contador{font-size:36px;font-weight:800;color:var(--oferta);font-variant-numeric:tabular-nums;line-height:1.1;letter-spacing:-.01em}
.qr-caixa{background:#fff;border:1px solid var(--linha);border-radius:16px;padding:16px;margin:18px auto;max-width:236px;box-shadow:var(--sh2)}
.codigo{background:var(--cinza);border:1px solid var(--linha);border-radius:12px;padding:12px;font-size:11px;color:var(--texto-2);word-break:break-all;text-align:left;margin-bottom:10px;font-family:ui-monospace,'SF Mono',monospace}
.link{width:100%;padding:12px;margin-top:10px;background:none;border:0;color:var(--fraco);font-size:13px;text-decoration:underline}

/* ================= nav ================= */
.nav{position:fixed;left:0;right:0;bottom:0;margin:0 auto;width:100%;max-width:480px;z-index:var(--z-nav);background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(8px);border-top:1px solid var(--linha);display:flex;padding-bottom:env(safe-area-inset-bottom)}
/* nas telas com nav, o conteúdo ganha espaço p/ não ficar atrás da barra fixa */
#app.has-nav #conteudo{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
/* na sacola, o CTA "Finalizar compra" fica logo acima da barra de nav */
#app.has-nav .rodape-fixo{bottom:calc(58px + env(safe-area-inset-bottom))}
.nav button{flex:1;background:none;border:0;padding:9px 0 10px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--fraco-2);position:relative;font-size:10px;font-weight:600;transition:color .15s}
.nav button.on{color:var(--texto);font-weight:700}
.nav button.on::before{content:"";position:absolute;top:0;width:22px;height:2.5px;border-radius:99px;background:var(--oferta)}
.nav .badge{top:5px;right:50%;margin-right:-18px;font-size:9px;min-width:15px;height:15px;box-shadow:0 0 0 2px #fff}

/* ================= conta / login ================= */
.avatar{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--oferta),#04C2AC);color:#fff;font-weight:800;font-size:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.linha-conta{width:100%;display:flex;align-items:center;gap:12px;padding:15px 4px;background:none;border:0;border-bottom:1px solid var(--linha);font-size:14.5px;font-weight:500;color:var(--texto);text-align:left}
.linha-conta>svg{color:var(--fraco);flex-shrink:0}
.seg{display:flex;background:var(--cinza);border-radius:12px;padding:4px;margin-bottom:16px}
.seg button{flex:1;padding:10px;border:0;background:none;border-radius:9px;font-size:14px;font-weight:600;color:var(--fraco);transition:.15s}
.seg button.on{background:var(--bg);color:var(--texto);box-shadow:var(--sh1)}
.aviso-off{background:#FFF6E9;border:1px solid #F1E1C2;color:#8A6A2F;font-size:12px;border-radius:10px;padding:10px 12px;margin-bottom:14px;line-height:1.45}
.erro-form{background:#FDECEC;border:1px solid #F3C7C7;color:#B23838;font-size:12.5px;border-radius:10px;padding:10px 12px;margin:2px 0 12px;line-height:1.4}

/* ================= meus pedidos ================= */
.pedido-card{display:block;width:100%;text-align:left;background:var(--bg);border:1px solid var(--linha);border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:var(--sh1)}
.mini-foto{width:44px;height:44px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--cinza)}
.chip-status{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap}

/* ================= rastreamento (timeline) ================= */
.trilha{position:relative;margin:8px 0 2px}
.passo{position:relative;display:flex;gap:12px;padding-bottom:20px}
.passo:last-child{padding-bottom:0}
.passo::before{content:"";position:absolute;left:10px;top:24px;bottom:-2px;width:2px;background:var(--linha)}
.passo:last-child::before{display:none}
.passo.feito::before{background:var(--oferta)}
.bolinha{width:22px;height:22px;border-radius:99px;border:2px solid var(--linha);background:var(--bg);flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;transition:.2s}
.passo.feito .bolinha{background:var(--oferta);border-color:var(--oferta)}
.passo.atual .bolinha{box-shadow:0 0 0 4px var(--oferta-wash)}
.passo-txt{display:flex;flex-direction:column;gap:2px;padding-top:2px}
.passo-txt b{font-size:13.5px;font-weight:600;color:var(--fraco)}
.passo.feito .passo-txt b{color:var(--texto)}
.passo.atual .passo-txt b{color:var(--oferta-ink);font-weight:700}
.passo-txt span{font-size:11px;color:var(--fraco)}

/* ================= misc ================= */
.vazio{padding:70px 30px;text-align:center;color:var(--fraco);font-size:13.5px;line-height:1.55}
.nota{font-size:11px;color:var(--fraco-2);text-align:center;padding:18px 16px 24px}

/* ================= motion ================= */
.fade{animation:ap .2s ease}
@keyframes ap{from{opacity:0}to{opacity:1}}
.girar{animation:gira 1s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:no-preference){
  .card--in{animation:cardIn .44s cubic-bezier(.16,.84,.3,1) backwards;animation-delay:calc(var(--i,0)*32ms)}
}
@keyframes cardIn{from{opacity:0;transform:translateY(10px) scale(.985)}}
@media (prefers-reduced-motion:reduce){
  .ficha,.fade,.girar,.card--in{animation:none}
  html{scroll-behavior:auto}
  .bt,.thumb>svg,.tam,.opcao,.aba,.nav button{transition:none}
}
