/* =========================================================
   Bidoro Premium — Auth v3 (clean, ultra organizado, sem degradês)
   - Sem degradês: superfícies sólidas, card estruturado, sombras suaves
   - Hierarquia tipográfica clara, espaçamentos consistentes
   - Inputs “calmos”, foco elegante, estados de sucesso/erro inequívocos
   - Organização exemplar em mobile / tablet / desktop
   ========================================================= */

:root{
  /* Paleta Bidoro */
  --bp-bg:#f5f5f5;
  --bp-surface:#ffffff;
  --bp-text:#0f172a;         /* ligeiramente mais escuro para legibilidade */
  --bp-muted:#64748b;        /* subtítulos e hints */
  --bp-green:#007940;        /* primário */
  --bp-orange:#F36D22;       /* acento */
  --bp-danger:#d64545;       /* erro */
  --bp-success:#0ea05b;      /* sucesso */
  --bp-border:#e5e7eb;
  --bp-border-strong:#dde2e8;
  --bp-shadow:0 10px 30px rgba(2,8,23,.06);
  --bp-radius:16px;

  /* Tipografia fluída */
  --bp-fs-h1: clamp(22px, 1.2vw + 18px, 28px);
  --bp-fs-h2: clamp(18px, 1vw + 14px, 22px);
  --bp-fs-body: clamp(14px, .28vw + 12px, 16px);
  --bp-fs-small: clamp(12px, .25vw + 11px, 14px);

  /* Anéis de foco */
  --bp-ring: 0 0 0 3px rgba(0,121,64,.18);
}

/* Canvas */
.bp-auth-wrap{
  background:var(--bp-bg);
  padding: clamp(24px, 3vw, 48px) 16px;
}
.bp-auth-container{ max-width:1100px; margin:0 auto }

/* Grid de 2 colunas em desktop, 1 em mobile */
.bp-auth-grid{
  display:grid;
  gap: clamp(16px, 2vw, 28px);
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 1024px){ .bp-auth-grid{ grid-template-columns:1fr } }

/* Card base (igual para login e registo, mas cores de acento diferentes) */
.bp-card{
  position:relative;
  background:var(--bp-surface);
  border:1px solid var(--bp-border);
  border-radius: var(--bp-radius);
  box-shadow: var(--bp-shadow);
  padding: clamp(18px, 2.2vw, 26px);
  overflow: hidden;
}

/* Cabeçalho do card: título e badge */
.bp-card-header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom: 12px;
}
.bp-title{
  font-family: Poppins, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif;
  font-weight: 700;
  font-size: var(--bp-fs-h1);
  color: var(--bp-text);
  margin: 0;
  letter-spacing:.2px;
}
.bp-sub{
  margin: 6px 0 0; color: var(--bp-muted); font-size: var(--bp-fs-small);
}
.bp-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 10px; border-radius: 999px; font-weight: 700;
  font-size: var(--bp-fs-small); letter-spacing:.3px; text-transform: uppercase;
  background:#eef4f0; color:#114b2d; border:1px solid #d7e6dd;
}
.bp-badge--accent{
  background:#fff2ea; color:#7a2e0e; border:1px solid #f5d9c9;
}

/* Diferenciação visual sutil: linha de acento no topo */
.bp-login::before,
.bp-register::before{
  content:"";
  position:absolute; left:0; right:0; top:0; height:4px;
}
.bp-login::before{ background: var(--bp-green) }
.bp-register::before{ background: var(--bp-orange) }

/* Fieldset e inputs */
.form-row{ margin-bottom: 14px }
.input-text{
  width:100%;
  border:1px solid var(--bp-border-strong);
  border-radius:12px;
  padding:12px 14px;
  font-size: var(--bp-fs-body);
  background:#fff;
  transition: border .15s ease, box-shadow .15s ease, background .15s ease;
}
.input-text:hover{ border-color:#ced6df }
.input-text:focus{ outline:none; border-color: var(--bp-green); box-shadow: var(--bp-ring) }

label{ display:block; font-weight:600; margin: 0 0 6px; color: var(--bp-text); font-size: var(--bp-fs-small) }
.required{ color:#dc2626 }

/* Grelha de 2 colunas para Nome/Apelido */
.bp-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px }
@media(max-width:660px){ .bp-grid-2{ grid-template-columns:1fr } }

/* Linha do código + botões (quebra bem em mobile) */
.bp-code-row{
  display:flex; align-items:flex-end; gap:12px; margin-top:6px; flex-wrap: wrap;
}

/* Ações */
.bp-actions{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; margin-top: 12px; flex-wrap: wrap;
}

/* Botões */
.bp-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  border:1px solid transparent; border-radius:12px;
  padding: 11px 16px; font-weight:700; cursor:pointer;
  transition: transform .06s ease, box-shadow .15s ease, background .15s ease, color .15s ease, border .15s ease;
  box-shadow: 0 2px 0 rgba(0,0,0,.07);
}
.bp-btn:active{ transform: translateY(1px) }
.bp-btn:focus-visible{ outline:2px solid #a7f3d0; outline-offset:3px }

.bp-btn--primary{ background: var(--bp-green); color:#fff }
.bp-btn--accent{ background: var(--bp-orange); color:#fff }
.bp-btn--ghost{ background:#fff; color: var(--bp-text); border-color: var(--bp-border-strong) }

.bp-btn[disabled]{ opacity:.6; cursor:not-allowed }

/* Estados do botão de verificação (feedback brutalmente claro) */
#bp-send{ min-width:200px }
#bp-send.is-success{ background:var(--bp-success)!important; color:#fff; border-color:transparent }
#bp-send.is-error{ background:var(--bp-danger)!important; color:#fff; border-color:transparent }
#bp-send.is-wait{ background:#fff; color:var(--bp-muted); border-color: var(--bp-border-strong) }

/* Reenviar */
.bp-resend{
  display:inline-flex; align-items:center; gap:.5rem;
  background:transparent; border:0; margin-left:8px; opacity:.7; padding:8px 0;
}
.bp-resend svg{ opacity:.85 }
.bp-resend[disabled]{ opacity:.35; cursor:not-allowed }
.bp-resend:hover{ opacity:1 }

/* Notices Woo */
.woocommerce-error,.woocommerce-message,.woocommerce-info{
  margin:10px 0; padding:12px 14px; border-radius:12px;
  border:1px solid var(--bp-border-strong); list-style:none; font-size: var(--bp-fs-body);
}
.woocommerce-error{ background:#fff5f5; border-color:#fecaca; color:#7f1d1d }
.woocommerce-message{ background:#ecfdf5; border-color:#a7f3d0; color:#065f46 }
.woocommerce-info{ background:#eff6ff; border-color:#bfdbfe; color:#1e3a8a }

/* Newsletter */
.bp-newsletter{ margin-top: 12px }
.bp-newswrap{ display:flex; align-items:center; gap:8px }
.bp-check{ width:18px; height:18px; border-radius:4px; border:1px solid var(--bp-border-strong); display:inline-block }
.bp-newswrap input:checked + .bp-check{ background: var(--bp-green); border-color: var(--bp-green) }
.bp-newsbenefits{
  font-size: var(--bp-fs-small); color:#0f5132; background:#e6f4ec;
  border:1px solid #ccead9; border-radius:12px; padding:10px; margin-top:8px
}

/* Micro feedbacks */
@keyframes bpPulse{
  0%{ box-shadow:0 0 0 0 rgba(0,121,64,.45) }
  70%{ box-shadow:0 0 0 12px rgba(0,121,64,0) }
  100%{ box-shadow:0 0 0 0 rgba(0,121,64,0) }
}
.bp-pulse{ animation: bpPulse 1.6s infinite; border-color:var(--bp-green)!important }

/* Shake subtil para erro (botão) */
@keyframes bpShake{
  10%,90%{ transform: translateX(-1px) }
  20%,80%{ transform: translateX(2px) }
  30%,50%,70%{ transform: translateX(-4px) }
  40%,60%{ transform: translateX(4px) }
}
.is-error{ animation: bpShake .5s both }

/* Diferenças visuais entre Login e Registo (sem degradê) */
.bp-login .bp-title{ color:#0e3d2b }      /* tom mais próximo do verde, elegante */
.bp-register .bp-title{ color:#6a2b0f }   /* tom próximo do laranja, sólido */

/* Melhorias em mobile: empilhar ações de forma elegante */
@media (max-width:480px){
  .bp-actions{ flex-direction: column; align-items: stretch }
  .bp-actions .bp-btn{ width:100% }
  #bp-send{ width:100% }
}

/* Estilos do botão Mostrar/Ocultar Password */
.bp-pass-wrap { position: relative; }
.bp-pass-toggle {
  position: absolute;
  right: 10px;
  top: 36px; /* Ajuste se a altura do label for diferente */
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 4px;
  opacity: 0.6;
  transition: opacity .2s ease;
}
.bp-pass-toggle:hover { opacity: 1; }
.bp-pass-toggle svg { display: block; }
.bp-pass-toggle .bp-eye-closed { display: none; }
.bp-pass-toggle.is-toggled .bp-eye-open { display: none; }
.bp-pass-toggle.is-toggled .bp-eye-closed { display: block; }

#bp-notices .woocommerce-error li {
    margin-left: 30px;
}

.bp-btn--accent {
    width: 100%;
}


/* === Newsletter Premium Redesign === */

/* Wrapper principal: mais espaçado, com uma linha de separação limpa */
.bp-newsletter.is-premium {
  margin-top: 24px; 
  padding-top: 20px;
  border-top: 1px solid var(--bp-border); /* Usa a sua cor de borda existente */
}

/* Label do checkbox (CTA): mais forte e maior */
.bp-newsletter.is-premium .bp-newslabel {
  font-weight: 700;
  color: var(--bp-text); /* Usa a sua cor de texto principal */
  font-size: var(--bp-fs-body);
}

/* Caixa de benefícios: remove o fundo verde e a borda */
.bp-newsletter.is-premium .bp-newsbenefits {
  background: none;
  border: none;
  padding: 12px 0 0 0;
  margin-top: 0;
  color: var(--bp-muted); /* Usa a sua cor de texto secundário */
}

/* A nova lista de benefícios */
.bp-newsletter.is-premium .bp-benefit-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px; /* Espaço entre cada benefício */
}

.bp-newsletter.is-premium .bp-benefit-list li {
  display: flex;
  align-items: flex-start; /* Alinha o "tick" com o topo do texto */
  gap: 10px;
  font-size: var(--bp-fs-small);
  line-height: 1.45;
}

/* Adiciona um "tick" verde premium em vez de emojis */
.bp-newsletter.is-premium .bp-benefit-list li::before {
  content: '✔';
  color: var(--bp-green); /* Usa a sua cor verde principal */
  font-weight: 700;
  font-size: 14px;
  flex-shrink: 0;
  margin-top: 2px; /* Ajuste fino de alinhamento vertical */
}

/* Destaca o título de cada benefício */
.bp-newsletter.is-premium .bp-benefit-list li strong {
  color: var(--bp-text); /* Cor de texto principal */
  margin-right: 4px;
}

.bp-auth-wrap {
    width: 100%;
    max-width: 100%;
}