/* =========================================================
   site.css (Mobile-first)
   Nickel + Dime / Steel Donkey global styling
   Drop-in replacement
   ========================================================= */

/* -------------------------
   Theme tokens
   ------------------------- */
:root {
    --nd-ink: #0f2f3a;
    --nd-ink-2: rgba(15,47,58,.82);
    --nd-border: rgba(15,47,58,.14);
    --nd-soft: rgba(15,47,58,.06);
    --nd-bg: #f6f9fb;
    --nd-surface: #ffffff;
    --nd-accent: #198754; /* success-ish accent */
    /* Used by footer hover states / small accents */
    --p-cta: #f0b483;
}

/* -------------------------
   Base document (mobile-first)
   ------------------------- */
html {
    font-size: 14px; /* mobile base */
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
    /* tablet+ */
}

html, body {
    height: 100%;
}

body {
    margin: 0;
    background: var(--nd-bg);
    color: var(--nd-ink);
    font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Keep scaffold helper (used by Bootstrap floating labels) */
.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* -------------------------
   Focus ring (theme-aligned)
   ------------------------- */
.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus,
.form-select:focus,
a:focus {
    /* Bootstrap-like dual ring, but themed */
    box-shadow: 0 0 0 0.1rem #fff, 0 0 0 0.25rem rgba(25,135,84,.35);
}

/* =========================================================
   Page shell helpers (sticky footer without hacks)
   ========================================================= */
.nd-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.nd-page-main {
    flex: 1 0 auto;
}

/* =========================================================
   Top Nav (Prosper-inspired, mobile-first)
   ========================================================= */
.nd-nav {
    background: #fff;
    border-bottom: 1px solid rgba(15,47,58,.12);
}

    .nd-nav .navbar-brand {
        font-weight: 900;
        letter-spacing: .2px;
        color: var(--nd-ink) !important;
    }

    .nd-nav .nav-link {
        font-weight: 800;
        color: rgba(15,47,58,.85) !important;
    }

        .nd-nav .nav-link:hover {
            color: var(--nd-ink) !important;
        }

    .nd-nav .navbar-toggler {
        border: 1px solid rgba(15,47,58,.18);
    }

/* Right-side actions: stacked on mobile */
.nd-nav-right {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
    width: 100%;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(15,47,58,.10);
}

.nd-nav-login {
    font-weight: 900;
    color: rgba(15,47,58,.90) !important;
    text-decoration: none;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(15,47,58,.16);
    background: rgba(15,47,58,.03);
    text-align: center;
}

    .nd-nav-login:hover {
        background: rgba(15,47,58,.06);
        text-decoration: none;
    }

.nd-nav-cta {
    border-radius: 12px;
    font-weight: 950;
    padding: 10px 14px;
    background: #20303a;
    color: #fff !important;
    border: 1px solid transparent;
    text-align: center;
}

    .nd-nav-cta:hover {
        background: #15222a;
        color: #fff !important;
    }

/* Desktop enhancement: inline actions */
@media (min-width: 992px) {
    .nd-nav-right {
        flex-direction: row;
        align-items: center;
        width: auto;
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }

    .nd-nav-login {
        padding: 0;
        border: 0;
        background: transparent;
    }

        .nd-nav-login:hover {
            text-decoration: underline;
            text-underline-offset: 3px;
            background: transparent;
        }

    .nd-nav-cta {
        border-radius: 999px;
        padding: 10px 16px;
    }
}

/* =========================================================
   Nickel + Dime Footer (mobile-first)
   ========================================================= */
.nd-footer {
    margin-top: auto;
    background: var(--nd-ink);
    color: rgba(255,255,255,.85);
    padding: 50px 0 30px 0;
    font-size: 14px;
    box-shadow: 0 -8px 40px rgba(0,0,0,.25);
}

.nd-footer-inner {
    width: min(1440px, calc(100% - 24px));
    margin: 0 auto;
}

@media (min-width: 768px) {
    .nd-footer-inner {
        width: min(1440px, calc(100% - 32px));
    }
}

.nd-footer-top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding-bottom: 24px;
}

.nd-footer-logo {
    height: 36px;
    width: auto;
    filter: brightness(100);
}

.nd-footer-tag {
    color: rgba(255,255,255,.7);
    font-weight: 600;
    margin-top: 4px;
}

.nd-footer-social {
    display: flex;
    gap: 14px;
}

.nd-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: #fff;
    font-size: 18px;
    transition: all .2s ease;
}

    .nd-social-link:hover {
        background: rgba(255,255,255,.18);
        color: var(--p-cta);
    }

.nd-footer-divider {
    border: none;
    border-top: 1px solid rgba(255,255,255,.12);
    margin: 22px 0;
}

.nd-footer-links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    padding-bottom: 24px;
}

@media (min-width: 768px) {
    .nd-footer-links {
        grid-template-columns: repeat(3, 1fr);
    }
}

.nd-footer-links h6 {
    color: #fff;
    font-weight: 900;
    font-size: 15px;
    margin-bottom: 12px;
}

.nd-footer-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.nd-footer-links li {
    margin-bottom: 8px;
}

.nd-footer-links a {
    color: rgba(255,255,255,.7);
    text-decoration: none;
    font-weight: 600;
}

    .nd-footer-links a:hover {
        color: var(--p-cta);
    }

.nd-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    font-size: 13px;
    color: rgba(255,255,255,.6);
}

.nd-footer-small {
    color: rgba(255,255,255,.7);
    text-decoration: underline;
    font-weight: 600;
}

    .nd-footer-small:hover {
        color: var(--p-cta);
    }

/* =========================================================
   ND Auth Shell (Login + Consent) - mobile-first
   ========================================================= */
.nd-auth-page {
    min-height: calc(100vh - 140px);
    padding: 18px 0 28px 0; /* mobile */
    background: radial-gradient(900px 420px at 18% 12%, rgba(25,135,84,.08) 0%, rgba(255,255,255,0) 62%), radial-gradient(800px 380px at 82% 22%, rgba(15,47,58,.08) 0%, rgba(255,255,255,0) 64%), var(--nd-bg);
}

.nd-auth-shell {
    width: min(1100px, calc(100% - 24px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr; /* mobile-first */
    gap: 14px;
}

.nd-auth-card {
    background: var(--nd-surface);
    border: 1px solid var(--nd-border);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0,0,0,.08);
    padding: 18px; /* mobile */
}

.nd-auth-header {
    margin-bottom: 16px;
}

.nd-auth-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 12px;
    letter-spacing: .2px;
    color: rgba(15,47,58,.88);
    background: var(--nd-soft);
    border: 1px solid rgba(15,47,58,.10);
}

.nd-auth-title {
    margin: 12px 0 6px 0;
    color: var(--nd-ink);
    font-weight: 900;
    letter-spacing: -0.3px;
    font-size: 22px; /* mobile-first */
}

.nd-auth-subtitle {
    margin: 0;
    color: var(--nd-ink-2);
    font-weight: 600;
}

.nd-auth-divider {
    border: none;
    border-top: 1px solid rgba(15,47,58,.12);
    margin: 16px 0;
}

/* Scope form polish ONLY inside auth cards */
.nd-auth-card .form-label {
    font-weight: 700;
    color: rgba(15,47,58,.90);
}

.nd-auth-card .form-control,
.nd-auth-card .form-select {
    border-radius: 12px;
    border-color: rgba(15,47,58,.18);
    padding: 0.65rem 0.85rem;
}

    .nd-auth-card .form-control:focus,
    .nd-auth-card .form-select:focus {
        border-color: rgba(25,135,84,.55);
    }

/* Auth buttons (theme buttons without changing Bootstrap defaults globally) */
.nd-btn-primary {
    background: var(--nd-ink);
    border: 1px solid rgba(15,47,58,.18);
    color: #fff;
    font-weight: 900;
    border-radius: 12px;
    padding: 10px 14px;
}

    .nd-btn-primary:hover {
        filter: brightness(0.96);
        color: #fff;
    }

.nd-btn-outline {
    background: transparent;
    border: 1px solid rgba(15,47,58,.22);
    color: var(--nd-ink);
    font-weight: 900;
    border-radius: 12px;
    padding: 10px 14px;
}

    .nd-btn-outline:hover {
        background: rgba(15,47,58,.05);
        color: var(--nd-ink);
    }

.nd-auth-help {
    margin-top: 14px;
    color: rgba(15,47,58,.74);
    font-weight: 600;
    font-size: 14px;
}

    .nd-auth-help a {
        color: var(--nd-ink);
        text-decoration: underline;
        text-underline-offset: 3px;
    }

/* Aside panel (desktop enhancement only) */
.nd-auth-aside {
    background: linear-gradient(180deg, rgba(15,47,58,.92), rgba(15,47,58,.98));
    border-radius: 18px;
    padding: 26px;
    color: rgba(255,255,255,.90);
    box-shadow: 0 20px 60px rgba(0,0,0,.12);
    border: 1px solid rgba(255,255,255,.10);
}

    .nd-auth-aside h2 {
        font-weight: 900;
        letter-spacing: -0.2px;
        margin: 0 0 8px 0;
        color: #fff;
    }

    .nd-auth-aside p {
        margin: 0 0 14px 0;
        color:
