/* Telas de acesso do portal (LOGIN-PORTAL, 23/10): /login/ (shortcode lbt_auth, public/views/auth.php) e /entrar (wp-login.php).
   Fonte única dos tokens --lpp-* destas telas e dos componentes .lpp-lg-*. Só tokens --lpp-*; fontes carregadas por quem enfileira (LBT_Public::FONTS_URL). */
:root {
  --lpp-cream:#FBF6EC; --lpp-surface:#FFFFFF; --lpp-ink:#1A1200;
  --lpp-gold:#E8AB3A; --lpp-gold-deep:#8A5A00; --lpp-sand:#F5E6C0;
  --lpp-line:#F0E4C8; --lpp-border:#E2D0A0; --lpp-muted:#6B5B3E;
  --lpp-success-bg:#D4F5E2; --lpp-success-fg:#1A6636; --lpp-error-bg:#FDE8E8; --lpp-error-fg:#8B1A1A;
  --lpp-shadow:0 6px 24px rgba(26,18,0,.10);
  --lpp-font-display:'Playfair Display',serif; --lpp-font-body:'DM Sans',sans-serif;
  --lpp-ease-out:cubic-bezier(.23,1,.32,1);
}

/* ---------- Hero ouro com onda (comum às duas telas) ---------- */
.lpp-lg__hero { position:relative; overflow:hidden; background:var(--lpp-gold); color:var(--lpp-ink); width:100vw; margin-left:calc(50% - 50vw) }
.lpp-lg__hero-in { max-width:1120px; margin:0 auto; padding:40px 16px 112px; text-align:center }
.lpp-lg__kicker { display:inline-block; font-family:var(--lpp-font-body); font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; line-height:1.4; padding:5px 12px; border-radius:999px; background:var(--lpp-ink); color:var(--lpp-cream) }
.lpp-lg .lpp-lg__title, .lpp-lg__hero .lpp-lg__title { margin:14px 0 0; font-family:var(--lpp-font-display); font-weight:800; font-size:clamp(32px,6vw,52px); line-height:1.15; letter-spacing:0; color:var(--lpp-ink); overflow-wrap:anywhere }
.lpp-lg__wave { position:absolute; bottom:-1px; left:0; width:100%; height:56px; display:block }
.lpp-lg__wave path { fill:var(--lpp-cream) }

/* ---------- /login/ ---------- */
#primary:has(.lpp-lg) { margin-top:0 !important; padding-top:0 !important }
.lpp-lg { font-family:var(--lpp-font-body); color:var(--lpp-ink); line-height:1.5; padding-bottom:56px }
.lpp-lg__card { position:relative; box-sizing:border-box; width:min(480px, calc(100vw - 24px)); margin:-72px 0 0 calc(50% - min(240px, 50vw - 12px)); padding:32px 24px; background:var(--lpp-surface); border-radius:22px; box-shadow:var(--lpp-shadow) }

/* Abas em pílula: aba ativa em --lpp-ink. Os resets de :hover/:focus vencem o preto do Astra em button:hover. */
.lpp-lg-tabs { display:flex; gap:4px; padding:4px; margin:0 0 24px; background:var(--lpp-sand); border-radius:999px }
.lpp-lg .lpp-lg-tab { flex:1 1 0; min-width:0; min-height:44px; padding:8px 12px; border:0; border-radius:999px; background:transparent; color:var(--lpp-ink); font-family:var(--lpp-font-body); font-size:15px; font-weight:700; line-height:1.2; box-shadow:none; cursor:pointer; -webkit-tap-highlight-color:transparent; touch-action:manipulation; -webkit-user-select:none; user-select:none; transition:transform 150ms var(--lpp-ease-out), background-color 150ms var(--lpp-ease-out), color 150ms var(--lpp-ease-out) }
.lpp-lg .lpp-lg-tab:hover, .lpp-lg .lpp-lg-tab:focus { background:transparent; color:var(--lpp-ink) }
.lpp-lg .lpp-lg-tab[aria-selected="true"], .lpp-lg .lpp-lg-tab[aria-selected="true"]:hover, .lpp-lg .lpp-lg-tab[aria-selected="true"]:focus { background:var(--lpp-ink); color:var(--lpp-cream) }
@media (hover:hover) and (pointer:fine) { .lpp-lg .lpp-lg-tab[aria-selected="false"]:hover { background:var(--lpp-line) } }
.lpp-lg .lpp-lg-tab:active { transform:scale(.97) }
.lpp-lg .lpp-lg-tab:focus-visible { outline:3px solid var(--lpp-gold-deep); outline-offset:2px }

.lpp-lg-panel[hidden] { display:none }
.lpp-lg-grid { display:grid; gap:16px }
.lpp-lg-field { display:flex; flex-direction:column; gap:6px; min-width:0 }
.lpp-lg .lpp-lg-field label { margin:0; font-size:14px; font-weight:700; color:var(--lpp-ink) }
.lpp-lg .lpp-lg-field :is(input, select) { box-sizing:border-box; width:100%; max-width:100%; min-height:44px; margin:0; padding:10px 14px; background:var(--lpp-surface); border:1.5px solid var(--lpp-border); border-radius:10px; box-shadow:none; color:var(--lpp-ink); font-family:var(--lpp-font-body); font-size:16px; line-height:1.4; transition:border-color 150ms var(--lpp-ease-out) }
.lpp-lg .lpp-lg-field :is(input, select):focus, .lpp-lg .lpp-lg-field :is(input, select):focus-visible { outline:3px solid var(--lpp-gold-deep); outline-offset:2px; border-color:var(--lpp-gold-deep); box-shadow:none }
.lpp-lg-hint { font-size:13px; color:var(--lpp-muted) }
.lpp-lg-check { display:flex; align-items:center; gap:10px; min-height:44px; margin:8px 0 0; font-size:14px; font-weight:500; color:var(--lpp-ink) }
.lpp-lg .lpp-lg-check input { flex:none; width:22px; height:22px; margin:0; accent-color:var(--lpp-ink) }
.lpp-lg .lpp-lg-check input:focus-visible { outline:3px solid var(--lpp-gold-deep); outline-offset:2px }
.lpp-lg-captcha { display:flex; justify-content:center; margin:16px 0 }

/* Botão: pílula ouro, texto ink; hover só com mouse */
.lpp-lg .lpp-lg-btn { box-sizing:border-box; display:flex; align-items:center; justify-content:center; width:100%; min-height:44px; padding:12px 26px; border:2px solid var(--lpp-gold); border-radius:999px; background:var(--lpp-gold); color:var(--lpp-ink); font-family:var(--lpp-font-body); font-size:16px; font-weight:700; line-height:1.2; text-align:center; text-shadow:none; box-shadow:none; cursor:pointer; -webkit-tap-highlight-color:transparent; touch-action:manipulation; transition:transform 150ms var(--lpp-ease-out), background-color 150ms var(--lpp-ease-out), color 150ms var(--lpp-ease-out), border-color 150ms var(--lpp-ease-out) }
.lpp-lg .lpp-lg-btn:hover, .lpp-lg .lpp-lg-btn:focus { background:var(--lpp-gold); border-color:var(--lpp-gold); color:var(--lpp-ink) }
@media (hover:hover) and (pointer:fine) { .lpp-lg .lpp-lg-btn:hover { background:var(--lpp-ink); border-color:var(--lpp-ink); color:var(--lpp-cream) } }
.lpp-lg .lpp-lg-btn:active { transform:scale(.97) }
.lpp-lg .lpp-lg-btn:focus-visible { outline:3px solid var(--lpp-ink); outline-offset:3px }
.lpp-lg .lpp-lg-btn:disabled { opacity:.6; cursor:default }

.lpp-lg-links { margin:8px 0 0; text-align:center }
.lpp-lg .lpp-lg-link, body.lpp-lg-page .lpp-lg-signup { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 8px; color:var(--lpp-gold-deep); font-size:14px; font-weight:600; text-decoration:underline; text-underline-offset:3px; -webkit-tap-highlight-color:transparent; touch-action:manipulation; transition:opacity 150ms var(--lpp-ease-out) }
@media (hover:hover) and (pointer:fine) { .lpp-lg .lpp-lg-link:hover { color:var(--lpp-ink) } }
.lpp-lg .lpp-lg-link:active { opacity:.6 }
.lpp-lg .lpp-lg-link:focus-visible { outline:3px solid var(--lpp-gold-deep); outline-offset:2px }
.lpp-lg .lpp-conf__status { margin:12px 0 0; text-align:center }

/* Avisos (login falho, cadastro, e-mail de recuperação enviado) */
.lpp-lg .lpp-lg-msg, body.lpp-lg-page .lpp-lg-msg { box-sizing:border-box; margin:0 0 16px; padding:12px 14px; border:0; border-radius:10px; background:var(--lpp-sand); color:var(--lpp-ink); font-size:14px; font-weight:500; line-height:1.45; overflow-wrap:anywhere }
.lpp-lg .lpp-lg-msg.success { background:var(--lpp-success-bg); color:var(--lpp-success-fg) }
.lpp-lg .lpp-lg-msg.error { background:var(--lpp-error-bg); color:var(--lpp-error-fg) }
.lpp-lg .lpp-lg-msg[hidden] { display:none }
.lpp-lg #lbt-login-msg:empty { display:none }

/* Tela "Verifique seu e-mail" (public.js troca o contêiner pelo .lpp-conf): sem card dentro do card */
.lpp-lg__card [data-lbt-reg-root] .lpp-conf { padding:0; min-height:0 }
.lpp-lg__card [data-lbt-reg-root] .lpp-conf__card { max-width:none; margin:0; padding:0; border-radius:0; box-shadow:none }

/* reCAPTCHA (304px) em telas estreitas: cartão com 10px de respiro e widget reduzido, ancorado à esquerda */
@media (max-width:359px) { .lpp-lg__card { padding-inline:10px } }
@media (max-width:347px) {
  .lpp-lg-captcha { justify-content:flex-start; margin-bottom:8px }
  .lpp-lg-captcha > div { transform:scale(.9); transform-origin:left top }
}
@media (max-width:299px) { .lpp-lg-captcha > div { transform:scale(.8) } }

@media (prefers-reduced-motion:reduce) {
  .lpp-lg .lpp-lg-tab, .lpp-lg .lpp-lg-btn { transition:background-color 200ms, color 200ms, border-color 200ms }
  .lpp-lg .lpp-lg-tab:active, .lpp-lg .lpp-lg-btn:active { transform:none }
  .lpp-lg .lpp-lg-link { transition:none }
}

/* ---------- /entrar (wp-login.php): cabeçalho, menu, cartão e rodapé ---------- */
body.lpp-lg-page { display:flex; flex-direction:column; height:auto; min-height:100vh; min-height:100dvh; margin:0; background:var(--lpp-cream); color:var(--lpp-ink); font-family:var(--lpp-font-body) }
body.lpp-lg-page > * { flex-shrink:0 }
body.lpp-lg-page .lpp-lg__hero { width:auto; margin-left:0 }
body.lpp-lg-page .lpp-lg-head { background:var(--lpp-cream); border-bottom:1px solid var(--lpp-line) }
body.lpp-lg-page .lpp-lg-head__in { box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:16px; max-width:1120px; margin:0 auto; padding:10px 16px }
body.lpp-lg-page .lpp-lg-brand { display:inline-flex; align-items:center; gap:12px; min-height:44px; min-width:0; color:var(--lpp-ink); font-family:var(--lpp-font-display); font-size:clamp(19px, 6vw, 22px); font-weight:800; line-height:1.2; text-decoration:none }
body.lpp-lg-page .lpp-lg-brand img { display:block; flex:none; width:48px; height:48px; border-radius:12px }
body.lpp-lg-page .lpp-lg-brand:focus-visible, body.lpp-lg-page .lpp-lg-menu a:focus-visible { outline:3px solid var(--lpp-gold-deep); outline-offset:2px }
body.lpp-lg-page .lpp-lg-nav { display:none }
@media (min-width:820px) { body.lpp-lg-page .lpp-lg-nav { display:block } }
body.lpp-lg-page .lpp-lg-menu { display:flex; align-items:center; gap:4px; margin:0; padding:0; list-style:none }
body.lpp-lg-page .lpp-lg-menu li { margin:0 }
body.lpp-lg-page .lpp-lg-menu a { display:inline-flex; align-items:center; min-height:44px; padding:0 14px; color:var(--lpp-ink); font-size:15px; font-weight:500; text-decoration:none; border-radius:999px; -webkit-tap-highlight-color:transparent; touch-action:manipulation; transition:opacity 150ms var(--lpp-ease-out), background-color 150ms var(--lpp-ease-out), color 150ms var(--lpp-ease-out) }
body.lpp-lg-page .lpp-lg-menu .current-menu-item > a { color:var(--lpp-gold-deep); font-weight:700 }
body.lpp-lg-page .lpp-lg-menu a:active { opacity:.6 }
body.lpp-lg-page .lpp-lg-menu .lpp-login > a { background:var(--lpp-ink); color:var(--lpp-cream) }
@media (hover:hover) and (pointer:fine) {
  body.lpp-lg-page .lpp-lg-menu a:hover { color:var(--lpp-gold-deep) }
  body.lpp-lg-page .lpp-lg-menu .lpp-login > a:hover { background:var(--lpp-gold-deep); color:var(--lpp-cream) }
}
body.lpp-lg-page .lpp-lg-menu .lpp-login > a:focus-visible { outline-color:var(--lpp-gold-deep) }

body.lpp-lg-page .lpp-lg-foot { margin-top:auto; padding:20px 16px; background:var(--lpp-ink); color:var(--lpp-cream); text-align:center; font-size:14px }
body.lpp-lg-page .lpp-lg-foot a { display:inline-flex; align-items:center; min-height:44px; padding:0 12px; color:var(--lpp-gold); font-weight:600; text-decoration:underline; text-underline-offset:3px }
body.lpp-lg-page .lpp-lg-foot a:focus-visible { outline:3px solid var(--lpp-gold); outline-offset:2px }
@media (hover:hover) and (pointer:fine) { body.lpp-lg-page .lpp-lg-foot a:hover { color:var(--lpp-cream) } }
body.lpp-lg-page .lpp-lg-foot a:active { opacity:.6 }
body.lpp-lg-page .lpp-lg-foot p { margin:0 }

/* Cartão do wp-login: o #login inteiro (aviso, formulário, links) vira o cartão sobreposto ao hero */
body.lpp-lg-page #login { box-sizing:border-box; position:relative; width:min(480px, calc(100vw - 24px)); max-width:none; margin:-72px auto 56px; padding:32px 24px; background:var(--lpp-surface); border-radius:22px; box-shadow:var(--lpp-shadow) }
body.lpp-lg-page #login h1.wp-login-logo { display:none }
@media (max-width:359px) { body.lpp-lg-page #login { padding-inline:10px } }
@media (max-width:347px) {
  body.lpp-lg-page .g-recaptcha { justify-content:flex-start }
  body.lpp-lg-page .g-recaptcha > div { transform:scale(.9); transform-origin:left top }
}
@media (max-width:299px) { body.lpp-lg-page .g-recaptcha > div { transform:scale(.8) } }

/* O core zera margin e padding de tudo em .login (.login * { margin:0; padding:0 }): reforço do hero comum no wp-login */
body.lpp-lg-page .lpp-lg__hero-in { margin:0 auto; padding:40px 16px 112px }
body.lpp-lg-page .lpp-lg__kicker { padding:5px 12px }
body.lpp-lg-page .lpp-lg__title { margin:14px 0 0 }

/* Erro de campo: texto + ícone "!", AA (#8B1A1A sobre #FDE8E8 ≈ 8:1); vazio some */
.lpp-field__error, #login .lpp-field__error { display:block; margin:6px 0 0; padding:8px 12px; border-radius:8px; background:var(--lpp-error-bg,#FDE8E8); color:var(--lpp-error-fg,#8B1A1A); font-size:14px; font-weight:600; line-height:1.4 }
.lpp-field__error:empty, #login .lpp-field__error:empty { display:none }
.lpp-field__error::before { content:"!"; display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; margin-right:8px; border-radius:50%; background:var(--lpp-error-fg,#8B1A1A); color:var(--lpp-error-bg,#FDE8E8); font-size:12px; font-weight:800; vertical-align:1px }
body.lpp-lg-page input[aria-invalid="true"], .lpp-lg .lpp-lg-field input[aria-invalid="true"] { border-color:var(--lpp-error-fg,#8B1A1A) }

/* Botão em espera (BUSY, 24/10; docs/design.md; wp-login.php não carrega o public.css): mesma cor, tamanho e raio; o spinner herda currentColor (AA em cada variante). */
.lpp-is-busy { cursor:wait }
.lpp-is-busy::before { content:""; flex:none; box-sizing:border-box; display:inline-block; width:16px; height:16px; margin-right:8px; vertical-align:-3px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:lpp-busy-spin 700ms linear infinite }
@keyframes lpp-busy-spin { to { transform:rotate(360deg) } }
@media (prefers-reduced-motion:reduce) { .lpp-is-busy::before { animation:none } }
