/* ==========================================================
   HERO AUTH — login / registro / recuperar / redefinir senha
   Tokens herdam de main.css (--lime, --dark, --bg-body etc).
   Variante --inline cobre o widget [hero_login_form] embedado.
   ========================================================== */

.hero-auth{
    --auth-card-bg:    var(--bg-surface,#fff);
    --auth-card-border:var(--card-border,#ebebeb);
    --auth-input-bg:   var(--input-bg,#fff);
    --auth-input-border:var(--input-border,#e0e0e0);
    --auth-input-focus:var(--lime,#a3d900);
    --auth-text:       var(--text-primary,#2d2d2d);
    --auth-muted:      var(--text-secondary,#6a6a6a);
    --auth-shadow:     0 30px 80px -30px rgba(0,0,0,.18), 0 4px 14px rgba(0,0,0,.05);
    --auth-radius:     20px;
    min-height: calc(100vh - 120px);
    padding: 80px 16px 60px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background:
        radial-gradient(ellipse 60% 50% at 20% -10%, rgba(163,217,0,.10), transparent 60%),
        radial-gradient(ellipse 60% 50% at 80% 110%, rgba(163,217,0,.07), transparent 60%),
        var(--bg-body,#fff);
    font-family: var(--font-body,'Outfit',sans-serif);
    color: var(--auth-text);
}
.admin-bar .hero-auth{ min-height: calc(100vh - 152px); }

.hero-auth__shell{
    width: 100%;
    max-width: 440px;
    background: var(--auth-card-bg);
    border: 1px solid var(--auth-card-border);
    border-radius: var(--auth-radius);
    padding: 40px 36px 32px;
    box-shadow: var(--auth-shadow);
    position: relative;
    overflow: hidden;
}
/* Faixa lime no topo do card — assinatura visual */
.hero-auth__shell::before{
    content:""; position:absolute; top:0; left:0; right:0; height:4px;
    background: linear-gradient(90deg, var(--lime), var(--lime-glow,var(--lime)), var(--lime));
}

.hero-auth__head{ text-align:center; margin-bottom: 28px; }
.hero-auth__logo{ display:flex; justify-content:center; margin-bottom: 12px; }
.hero-auth__logo img{ max-height: 56px; width: auto; }
.hero-auth__brand{
    font-family: var(--font-display,'Bangers',cursive);
    font-size: 36px; letter-spacing: 2px; margin: 0 0 4px; color: var(--dark,#1a1a1a);
}
.hero-auth__title{
    font-family: var(--font-display,'Bangers',cursive);
    font-size: 28px; letter-spacing: 2px; margin: 12px 0 6px; color: var(--dark,#1a1a1a);
}
.hero-auth__tagline{ font-size: 14px; color: var(--auth-muted); margin: 0; line-height:1.5; }

.hero-auth__form{ display:flex; flex-direction:column; gap: 16px; }
.hero-auth__field{ display:flex; flex-direction:column; gap: 6px; }
.hero-auth__label{ font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .6px; color: var(--auth-muted); }
.hero-auth__hint{ font-size: 12px; color: var(--auth-muted); margin-top: 2px; line-height: 1.4; }

.hero-auth__input{
    width: 100%;
    background: var(--auth-input-bg);
    border: 1.5px solid var(--auth-input-border);
    border-radius: 12px;
    padding: 13px 14px;
    font: 500 15px/1.4 var(--font-body,'Outfit',sans-serif);
    color: var(--auth-text);
    transition: border-color .15s, box-shadow .15s;
}
.hero-auth__input:focus{
    outline: 0;
    border-color: var(--auth-input-focus);
    box-shadow: 0 0 0 4px rgba(163,217,0,.18);
}
.hero-auth__input::placeholder{ color: #b0b0b0; }

/* Password toggle (olho) */
.hero-auth__pw-wrap{ position: relative; display:block; }
.hero-auth__pw-wrap .hero-auth__input{ padding-right: 46px; }
.hero-auth__pw-toggle{
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
    background: none; border: 0; color: var(--auth-muted); padding: 8px 10px;
    cursor: pointer; border-radius: 8px; line-height: 1;
}
.hero-auth__pw-toggle:hover{ color: var(--auth-text); background: rgba(0,0,0,.04); }
.hero-auth__pw-toggle i{ font-size: 18px; }

/* Medidor de força da senha */
.hero-auth__pw-meter{
    height: 4px; background: rgba(0,0,0,.06); border-radius: 999px; overflow: hidden;
    margin-top: 4px;
}
.hero-auth__pw-meter-fill{
    display: block; width: 0%; height: 100%; background: var(--lime);
    transition: width .25s, background .25s;
}
.hero-auth__pw-meter[data-strength="1"] .hero-auth__pw-meter-fill{ width: 25%; background: #ff4d4d; }
.hero-auth__pw-meter[data-strength="2"] .hero-auth__pw-meter-fill{ width: 50%; background: #ffa726; }
.hero-auth__pw-meter[data-strength="3"] .hero-auth__pw-meter-fill{ width: 75%; background: #ffc107; }
.hero-auth__pw-meter[data-strength="4"] .hero-auth__pw-meter-fill{ width: 100%; background: var(--lime); }

/* Lembrar / esqueci senha */
.hero-auth__row{
    display:flex; align-items:center; justify-content:space-between; gap: 12px;
    font-size: 13px;
}
.hero-auth__row--inline{ flex-wrap: wrap; margin-top: 4px; }
.hero-auth__check{
    display: inline-flex; align-items:center; gap: 8px;
    font-size: 13px; color: var(--auth-muted); cursor: pointer; user-select: none;
}
.hero-auth__check input{ accent-color: var(--lime); width: 16px; height: 16px; }
.hero-auth__check--inline{ font-size: 12px; line-height: 1.5; }

.hero-auth__link{
    color: var(--auth-muted); font-size: 13px; text-decoration: none;
    border-bottom: 1px solid transparent; transition: color .15s, border-color .15s;
}
.hero-auth__link:hover{ color: var(--lime-dark,var(--lime)); border-bottom-color: currentColor; }
.hero-auth__link--strong{ color: var(--lime-dark,var(--lime)); font-weight: 600; }

/* Botão principal */
.hero-auth__submit{
    width: 100%; margin-top: 8px;
    background: var(--lime); color: var(--dark,#1a1a1a);
    border: 0; border-radius: 14px; padding: 14px 18px;
    font: 700 15px/1 var(--font-body,'Outfit',sans-serif); letter-spacing: .3px;
    cursor: pointer; transition: transform .12s, box-shadow .12s, background .15s;
    box-shadow: 0 6px 18px rgba(163,217,0,.35);
}
.hero-auth__submit:hover{ transform: translateY(-1px); background: var(--lime-dark,var(--lime)); box-shadow: 0 10px 24px rgba(163,217,0,.45); }
.hero-auth__submit:active{ transform: translateY(0); }
.hero-auth__submit--ghost{
    background: transparent; color: var(--auth-text); border: 1.5px solid var(--auth-input-border);
    box-shadow: none; text-align: center; text-decoration: none; display: inline-flex; justify-content: center;
}
.hero-auth__submit--ghost:hover{ background: rgba(0,0,0,.04); border-color: var(--auth-text); }

.hero-auth__alt{
    text-align: center; font-size: 14px; color: var(--auth-muted);
    margin: 14px 0 0;
}

/* Honeypot — escondido do humano, visível pro bot */
.hero-auth__hp{
    position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden;
}

.hero-auth__foot{ text-align: center; margin-top: 24px; }
.hero-auth__back{
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--auth-muted); font-size: 13px; text-decoration: none;
    transition: color .15s;
}
.hero-auth__back:hover{ color: var(--auth-text); }
.hero-auth__back i{ font-size: 16px; }

/* Bloco de CTA (tela de "e-mail enviado", "link inválido") */
.hero-auth__cta-block{
    text-align: center; padding: 12px 0 4px;
    display: flex; flex-direction: column; gap: 18px;
}
.hero-auth__cta-block p{ color: var(--auth-muted); line-height: 1.55; margin: 0; }

/* Notices (sucesso/erro/info) */
.hero-auth-notice{
    margin: 0 0 20px;
    padding: 12px 14px;
    border-radius: 12px;
    font-size: 13.5px; line-height: 1.45;
    border: 1px solid transparent;
}
.hero-auth-notice--error  { background: #ffeded; border-color: #ffc9c9; color: #9c0000; }
.hero-auth-notice--success{ background: #effbe1; border-color: #c9efa1; color: #2d5a00; }
.hero-auth-notice--info   { background: #eef4ff; border-color: #c9d8ef; color: #1a3a8c; }

/* ── Variante INLINE (widget [hero_login_form] embedado em outras páginas) ── */
.hero-auth--inline{
    min-height: 0; padding: 0; background: transparent;
    align-items: stretch; justify-content: stretch;
    display: block;
}
.hero-auth--inline .hero-auth__shell{ box-shadow: none; padding: 0; border: 0; max-width: none; background: transparent; }
.hero-auth--inline .hero-auth__shell::before{ display: none; }
.hero-auth__form--inline{ gap: 12px; }
.hero-auth__form--inline .hero-auth__submit{ margin-top: 4px; }

/* ── Dark mode (segue toggle global do tema) ── */
[data-theme="dark"] .hero-auth{
    --auth-card-bg:     #161616;
    --auth-card-border: #2a2a2a;
    --auth-input-bg:    #1a1a1a;
    --auth-input-border:#2f2f2f;
    --auth-text:        #ececec;
    --auth-muted:       #9a9a9a;
    --auth-shadow: 0 30px 80px -30px rgba(0,0,0,.6), 0 4px 14px rgba(0,0,0,.4);
}
[data-theme="dark"] .hero-auth__brand,
[data-theme="dark"] .hero-auth__title{ color: var(--lime); }
[data-theme="dark"] .hero-auth__input::placeholder{ color: #5a5a5a; }
[data-theme="dark"] .hero-auth__pw-toggle:hover{ background: rgba(255,255,255,.05); }
[data-theme="dark"] .hero-auth-notice--error  { background: #2a0d0d; border-color: #5a2020; color: #ff9d9d; }
[data-theme="dark"] .hero-auth-notice--success{ background: #102a0d; border-color: #2f5a20; color: #b6f48f; }
[data-theme="dark"] .hero-auth-notice--info   { background: #0d1a2a; border-color: #20305a; color: #9dc4ff; }
[data-theme="dark"] .hero-auth__submit--ghost:hover{ background: rgba(255,255,255,.05); }

/* ── Responsivo ── */
@media (max-width: 480px){
    .hero-auth{ padding: 48px 12px 36px; }
    .hero-auth__shell{ padding: 32px 22px 26px; border-radius: 16px; }
    .hero-auth__brand{ font-size: 30px; }
    .hero-auth__title{ font-size: 24px; }
    .hero-auth__row{ flex-direction: column; align-items: flex-start; gap: 8px; }
}
