/* ============================================================
   auth.css — Shared styles for dedicated auth pages
   Login, Register, VerifyOtp, ForgotPassword, ResetPassword
   ============================================================ */

/* PWA-aligned page field (MASTER §2 --brand-subtle #F6F8F7): set on <body> so the
   grey renders seamlessly behind the transparent absolute navbar (.fbs__net-navbar)
   and in the .container gutters — the same app-shell model as profile/settings.
   Scoped to auth pages via :has(.auth-section). Replaces the old off-brand #f4f9f6
   page bg that used to sit on the section. */
body:has(.auth-section) {
    background-color: #F6F8F7;
}

/* White top banner on auth pages: the navbar is transparent by default (it overlays
   marketing heroes), so over the grey field it read grey. Give it an opaque white
   background + hairline divider — matches the profile/settings app bar. */
body:has(.auth-section) .fbs__net-navbar {
    background-color: #ffffff !important;
    border-bottom: 1px solid #e8ece9;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

/* Full-height centred section — the <body> provides the grey field */
.auth-section {
    min-height: calc(100vh - 120px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    background-color: transparent;
}

/* Card */
.auth-card {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    padding: 2.5rem 2rem;
    width: 100%;
    max-width: 420px;
}

.auth-card-wide {
    max-width: 520px;
}

/* Logo */
.auth-logo {
    text-align: center;
    margin-bottom: 1.25rem;
}

    .auth-logo img {
        height: 48px;
        width: auto;
    }

/* Headings */
.auth-title {
    font-size: 1.6rem;
    font-weight: 600;
    color: #136242;
    text-align: center;
    margin-bottom: 0.25rem;
}

.auth-subtitle {
    font-size: 0.95rem;
    color: #6c757d;
    text-align: center;
    margin-bottom: 1.5rem;
}

/* Password rules list */
.password-rules-list {
    list-style: none;
    padding: 0 0 0 0.5rem;
    margin: -0.25rem 0 1rem 0;
    font-size: 0.82rem;
}

.password-rules-list .rule {
    color: #6c757d;
    margin-bottom: 0.2rem;
    transition: color 0.2s;
}

    .password-rules-list .rule.rule-pass {
        color: #2ecc71;
    }

    .password-rules-list .rule.rule-fail {
        color: #e74c3c;
    }

.rule-icon {
    margin-right: 0.3rem;
    font-size: 0.75rem;
}

/* Password strength meter */
.strength-meter {
    margin: -0.25rem 0 1rem 0;
}

.strength-meter-track {
    height: 6px;
    background: #e9ecef;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 0.3rem;
}

.strength-bar-fill {
    height: 100%;
    width: 0;
    border-radius: 4px;
    transition: width 0.3s ease, background-color 0.3s ease;
    background-color: transparent;
}

    .strength-bar-fill.strength-weak   { background-color: #e74c3c; }
    .strength-bar-fill.strength-fair   { background-color: #f39c12; }
    .strength-bar-fill.strength-good   { background-color: #3498db; }
    .strength-bar-fill.strength-strong { background-color: #2ecc71; }

.strength-label {
    font-size: 0.78rem;
    font-weight: 600;
    min-height: 1.1em;
    display: block;
}

    .strength-label.strength-weak   { color: #e74c3c; }
    .strength-label.strength-fair   { color: #f39c12; }
    .strength-label.strength-good   { color: #3498db; }
    .strength-label.strength-strong { color: #2ecc71; }

/* OTP digit inputs */
.otp-inputs {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
}

.otp-digit {
    width: 48px !important;
    height: 52px !important;
    text-align: center;
    font-size: 1.4rem;
    font-weight: 600;
    border: 2px solid #86AF99;
    border-radius: 8px;
    padding: 0 !important;
    background-color: #ffffff;
    color: #1a1a1a;
    transition: border-color 0.2s, box-shadow 0.2s;
    caret-color: #136242;
}

    .otp-digit:focus {
        border-color: #4A8A68;
        box-shadow: 0 0 0 3px rgba(74, 138, 104, 0.25);
        outline: none;
        background-color: #ffffff;
    }

    .otp-digit.otp-filled {
        border-color: #4A8A68;
    }

/* Responsive */
@media (max-width: 480px) {
    .auth-card {
        padding: 2rem 1.25rem;
    }

    .otp-digit {
        width: 40px !important;
        height: 46px !important;
        font-size: 1.2rem;
    }
}

/* ============================================================
   Notifications prompt — aligned with the GrowthPoints PWA
   (mirrors FregaForceGrowthPoints .notifications-prompt /
    .auth-btn / .notifications-later; cardless, pill CTA)
   ============================================================ */
/* (page bg now provided by body:has(.auth-section) above — the former
   .notifications-prompt #F6F8F7 override is redundant and was removed) */

.notifications-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    max-width: 480px;
    gap: 8px;
}

/* Forms wrap the buttons — stretch so the pill CTA is full-width like the PWA */
.notifications-content form {
    width: 100%;
    margin: 0;
}

.notifications-title {
    font-family: 'Lato', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-weight: 700;
    font-size: 26px;
    color: #000;
    margin: 0 0 4px;
}

.notifications-subtitle {
    font-size: 16px;
    color: #000;
    line-height: 1.45;
    margin: 0 0 20px;
}

/* Benefits list — kept from FregaForce, recoloured to brand green */
.notifications-benefits {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    width: 100%;
    max-width: 320px;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

    .notifications-benefits li {
        display: flex;
        align-items: center;
        gap: 12px;
        font-size: 15px;
        color: #1f2a26;
    }

    .notifications-benefits .np-check {
        color: #4A8A68;
        font-size: 18px;
        flex-shrink: 0;
    }

/* Primary pill CTA — mirrors PWA .auth-btn */
.notifications-content .auth-btn {
    display: block;
    width: 100%;
    padding: 16px;
    border-radius: 50px;
    background: #4A8A68;
    color: #fff;
    font-weight: 700;
    font-size: 18px;
    border: none;
    cursor: pointer;
    text-align: center;
    transition: background .15s ease;
}

    .notifications-content .auth-btn:hover:not(:disabled) {
        background: #136242;
    }

    .notifications-content .auth-btn:disabled {
        background: #c2d7cc;
        cursor: not-allowed;
    }

/* Plain text "maybe later" — mirrors PWA .notifications-later */
.notifications-later {
    background: none;
    border: none;
    color: #848484;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    padding: 12px;
    width: 100%;
}

    .notifications-later:hover:not(:disabled) {
        color: #555;
    }

    .notifications-later:disabled {
        cursor: not-allowed;
        opacity: .7;
    }

.notifications-footnote {
    font-size: 12px;
    color: #848484;
    margin-top: 12px;
}

    .notifications-footnote a {
        color: #4A8A68;
        font-weight: 600;
    }

/* Visible focus ring (design-system requirement) */
.notifications-content .auth-btn:focus-visible,
.notifications-later:focus-visible {
    outline: 2px solid #4A8A68; /* MASTER §8 canonical focus outline --brand (was --brand-strong #136242) */
    outline-offset: 2px;
}

@media (max-width: 480px) {
    .notifications-title { font-size: 22px; }
    .notifications-subtitle { font-size: 14px; }
}
