/* ============================================================
   Auth pages — 2-col split (brand left, form right).
   Pure dark, monochrome, light primary buttons.
   Animated SVG paths in the left brand panel.
   ============================================================ */

html, body { height: 100%; }

body.auth-page {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 100dvh !important;
    background: #0a0a0b !important;
    background-color: #0a0a0b !important;
    background-image: none !important;
    color: #e5e7eb !important;
    font-family: -apple-system, BlinkMacSystemFont, "Inter", "SF Pro Display",
                 "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    -webkit-font-smoothing: antialiased;
    box-sizing: border-box !important;
    /* Native form controls (select dropdown nativo, scrollbar, ecc.)
       devono essere renderizzati con palette dark dal browser. */
    color-scheme: dark !important;
}
body.auth-page * { box-sizing: border-box; }
body.auth-page div.wrapper { display: none !important; }

/* Reset inherited backgrounds on our containers */
body.auth-page .auth-shell,
body.auth-page .auth-side,
body.auth-page .auth-main,
body.auth-page .auth-col,
body.auth-page .auth-form,
body.auth-page .auth-field,
body.auth-page .auth-input-shell {
    background: transparent !important;
    background-image: none !important;
}

/* ============================================================
   ROOT 2-COL SHELL
   ============================================================ */
body.auth-page .auth-shell {
    position: relative !important;
    width: 100% !important;
    min-height: 100dvh !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    margin: 0 !important;
    padding: 0 !important;
}
@media (min-width: 1024px) {
    body.auth-page .auth-shell {
        grid-template-columns: 1fr 1fr !important;
        height: 100dvh !important;
        overflow: hidden !important;
    }
}

/* ============================================================
   LEFT — BRAND SIDE (hidden on mobile)
   ============================================================ */
body.auth-page .auth-side {
    display: none !important;
    position: relative !important;
    height: 100dvh !important;
    background: #111114 !important;
    border-right: 1px solid rgba(255,255,255,.06) !important;
    padding: 40px !important;
    flex-direction: column !important;
    overflow: hidden !important;
}
@media (min-width: 1024px) {
    body.auth-page .auth-side { display: flex !important; }
}

/* Top fade gradient overlay (subtle) */
body.auth-page .auth-side::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(to top, #0a0a0b 0%, transparent 60%) !important;
    z-index: 1 !important;
    pointer-events: none !important;
}

/* Brand row top-left — uses the actual wordmark logo PNG */
body.auth-page .auth-side .auth-brand {
    position: relative !important;
    z-index: 5 !important;
    display: inline-flex !important;
    align-items: center !important;
    text-decoration: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
body.auth-page .auth-side .auth-brand img {
    display: block !important;
    height: 44px !important;
    width: auto !important;
    max-width: 260px !important;
    background: transparent !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

/* Quote at bottom — explicit reset to defeat browser/core.css blockquote styling */
body.auth-page .auth-side .auth-quote {
    position: relative !important;
    z-index: 5 !important;
    margin: auto 0 0 0 !important;
    padding: 0 !important;
    color: #fafafa !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    max-width: 480px !important;
}
body.auth-page .auth-side .auth-quote p {
    font-size: 18px !important;
    line-height: 1.5 !important;
    color: #f3f4f6 !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    font-weight: 400 !important;
    background: transparent !important;
    border: 0 !important;
    quotes: none !important;
}
body.auth-page .auth-side .auth-quote .cite {
    font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #d1d5db !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

/* WebGL globe — fills the brand panel behind the brand/quote.
   Square aspect, capped to ~75% of panel width, drag-rotatable. */
body.auth-page .auth-side .auth-globe-wrap {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
body.auth-page .auth-side .auth-globe-wrap canvas {
    width: min(75%, 580px) !important;
    aspect-ratio: 1 / 1 !important;
    max-height: 70vh !important;
    pointer-events: none !important;
    opacity: 0;
    transition: opacity 1.4s ease !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    display: block !important;
}


/* ============================================================
   RIGHT — MAIN FORM SIDE
   ============================================================ */
body.auth-page .auth-main {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 100dvh !important;
    padding: 24px 16px !important;
    overflow-y: auto !important;
}
@media (min-width: 1024px) {
    body.auth-page .auth-main { padding: 32px !important; }
}

/* Subtle radial glow background */
body.auth-page .auth-main::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        radial-gradient(60% 50% at 65% 35%, rgba(255,255,255,.04), transparent 70%) !important;
    pointer-events: none !important;
    z-index: 0 !important;
}

/* "Home" back link — top-left of the form column (right side of the
   screen on desktop). Borderless, light hover bg. Hidden on mobile. */
body.auth-page .auth-back {
    position: absolute !important;
    top: 40px !important;          /* matches .auth-side padding-top so it lines up with the brand logo */
    left: 22px !important;
    z-index: 5 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    height: 44px !important;       /* same height as the brand logo image */
    padding: 0 14px !important;
    background: transparent !important;
    border: 0 !important;
    color: #f3f4f6 !important;
    text-decoration: none !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    border-radius: 10px !important;
    transition: background-color .15s, color .15s !important;
}
body.auth-page .auth-back:hover {
    background: rgba(255,255,255,.06) !important;
    color: #fff !important;
}
body.auth-page .auth-back svg {
    width: 18px !important;
    height: 18px !important;
    stroke: currentColor !important;
    stroke-width: 2.5 !important;
}
@media (max-width: 1023px) {
    body.auth-page .auth-back { display: none !important; }
}

/* Form column */
body.auth-page .auth-col {
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: 384px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    padding: 0 !important;
    text-align: left !important;
}
body.auth-page .auth-col.is-wide { max-width: 440px !important; }

/* Mobile-only brand inside form col */
body.auth-page .auth-col .auth-brand-mobile {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    text-decoration: none !important;
    color: inherit !important;
    margin-bottom: 8px !important;
}
@media (min-width: 1024px) { body.auth-page .auth-col .auth-brand-mobile { display: none !important; } }
body.auth-page .auth-col .auth-brand-mobile img {
    width: 24px !important;
    height: 24px !important;
    object-fit: contain !important;
    background: transparent !important;
}
body.auth-page .auth-col .auth-brand-mobile .name {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #fafafa !important;
}

/* Heading + sub */
body.auth-page .auth-col h1 {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    letter-spacing: .01em !important;
    color: #fafafa !important;
    background: transparent !important;
}
body.auth-page .auth-col .auth-sub {
    margin: 6px 0 0 0 !important;
    padding: 0 !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    color: #9ca3af !important;
    background: transparent !important;
}

/* ============================================================
   PRIMARY BUTTONS (light bg, dark text — like reference)
   ============================================================ */
body.auth-page .auth-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    height: 44px !important;
    padding: 0 18px !important;
    background: #f3f4f6 !important;
    color: #0a0a0b !important;
    border: 1px solid transparent !important;
    border-radius: 10px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background-color .15s !important;
    text-decoration: none !important;
    font-family: inherit !important;
    box-shadow: 0 1px 0 rgba(0,0,0,.04), 0 4px 8px -4px rgba(0,0,0,.2) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}
body.auth-page .auth-btn:hover { background: #ffffff !important; }
body.auth-page .auth-btn:active { background: #e5e7eb !important; }
body.auth-page .auth-btn:disabled { opacity: .5 !important; cursor: not-allowed !important; }
body.auth-page .auth-btn .mdi { font-size: 16px !important; color: #0a0a0b !important; }
body.auth-page .auth-btn svg { color: #0a0a0b !important; }

/* "Continue with X" buttons stack */
body.auth-page .auth-socials {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

/* SEPARATOR */
body.auth-page .auth-sep {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin: 4px 0 !important;
}
body.auth-page .auth-sep::before,
body.auth-page .auth-sep::after {
    content: "" !important;
    flex: 1 !important;
    height: 1px !important;
    background: rgba(255,255,255,.12) !important;
}
body.auth-page .auth-sep span {
    color: #9ca3af !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    padding: 0 8px !important;
}

/* ============================================================
   FORM
   ============================================================ */
body.auth-page .auth-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.auth-page .auth-form-hint {
    color: #9ca3af !important;
    font-size: 12px !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}
body.auth-page .auth-field { display: flex !important; flex-direction: column !important; margin: 0 !important; }
body.auth-page .auth-field-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 6px !important;
}
body.auth-page .auth-field > label,
body.auth-page .auth-field-head > label {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #fafafa !important;
    margin-bottom: 6px !important;
}
body.auth-page .auth-field-head > label { margin-bottom: 0 !important; }
body.auth-page .auth-field-head > a {
    font-size: 13px !important;
    color: #9ca3af !important;
    text-decoration: none !important;
}
body.auth-page .auth-field-head > a:hover { color: #f3f4f6 !important; }

/* Input shell with inline-SVG icon prefix */
body.auth-page .auth-input-shell { position: relative !important; display: block !important; }
body.auth-page .auth-input-shell .ico-prefix {
    position: absolute !important;
    left: 14px !important;
    top: 0 !important;
    height: 100% !important;
    width: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #9ca3af !important;
    pointer-events: none !important;
    z-index: 3 !important;
    line-height: 1 !important;
}
body.auth-page .auth-input-shell .ico-prefix svg {
    width: 16px !important;
    height: 16px !important;
    display: block !important;
    color: #9ca3af !important;
    stroke: currentColor !important;
}
body.auth-page .auth-input-shell .pwd-toggle {
    position: absolute !important;
    right: 4px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 36px !important;
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: 0 !important;
    cursor: pointer !important;
    padding: 0 !important;
    color: #9ca3af !important;
    transition: color .15s !important;
    z-index: 3 !important;
    border-radius: 6px !important;
}
body.auth-page .auth-input-shell .pwd-toggle:hover { color: #f3f4f6 !important; background: rgba(255,255,255,.04) !important; }
body.auth-page .auth-input-shell .pwd-toggle svg {
    width: 16px !important;
    height: 16px !important;
    color: inherit !important;
    stroke: currentColor !important;
}
body.auth-page .auth-input-shell .pwd-toggle svg.is-hidden { display: none !important; }

body.auth-page .auth-input {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 14px 0 40px !important;
    background: transparent !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 10px !important;
    color: #f3f4f6 !important;
    font-size: 15px !important;
    font-family: inherit !important;
    transition: border-color .15s, box-shadow .15s, background-color .15s !important;
    outline: none !important;
    margin: 0 !important;
    height: 44px !important;
    line-height: 1.4 !important;
}
body.auth-page .auth-input.has-suffix { padding-right: 40px !important; }
body.auth-page .auth-input.no-prefix { padding-left: 14px !important; }
body.auth-page .auth-input:focus {
    border-color: rgba(255,255,255,.32) !important;
    background: rgba(255,255,255,.02) !important;
    box-shadow: 0 0 0 3px rgba(255,255,255,.08) !important;
}
body.auth-page .auth-input::placeholder { color: #6b7280 !important; opacity: 1 !important; }

/* Chrome/Edge autofill: ignora background-color/color sui campi precompilati e
   forza il giallino chiaro di default. Si vince con un box-shadow inset 30px
   (copre l'intera input area) + -webkit-text-fill-color sul testo.
   La transizione lunghissima è il "trick" per ritardare il ripristino del
   background nativo del browser quando l'autofill diventa "non più attivo". */
body.auth-page .auth-input:-webkit-autofill,
body.auth-page .auth-input:-webkit-autofill:hover,
body.auth-page .auth-input:-webkit-autofill:focus,
body.auth-page .auth-input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px #0a0a0b inset !important;
    box-shadow: 0 0 0 1000px #0a0a0b inset !important;
    -webkit-text-fill-color: #f3f4f6 !important;
    caret-color: #f3f4f6 !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    transition: background-color 99999s ease-in-out 0s, color 99999s ease-in-out 0s !important;
}
body.auth-page .auth-input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #0a0a0b inset, 0 0 0 3px rgba(255,255,255,.08) !important;
    box-shadow: 0 0 0 1000px #0a0a0b inset, 0 0 0 3px rgba(255,255,255,.08) !important;
    border-color: rgba(255,255,255,.32) !important;
}
/* Firefox: fill semitrasparente blu/giallo per autofill */
body.auth-page .auth-input:autofill {
    background-color: #0a0a0b !important;
    color: #f3f4f6 !important;
    box-shadow: 0 0 0 1000px #0a0a0b inset !important;
}

@media (max-width: 600px) {
    body.auth-page .auth-input { font-size: 16px !important; height: 44px !important; }
}

/* Checkbox — vertically aligned with label text via line-height: 1 trick.
   Without it, the span's default line-box (font-size × 1.5 ≈ 20px) is
   taller than the 16px box, and align-items:center pushes the text glyph
   visually below the checkbox center. */
body.auth-page .auth-check {
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    cursor: pointer !important;
    user-select: none !important;
    color: #d1d5db !important;
    font-size: 13px !important;
    line-height: 1 !important;
}
body.auth-page .auth-check span {
    line-height: 1 !important;
    display: inline-block !important;
}
body.auth-page .auth-check input[type=checkbox] {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    border-radius: 4px !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    background: transparent !important;
    cursor: pointer !important;
    position: relative !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    vertical-align: middle !important;
}
body.auth-page .auth-check input[type=checkbox]:checked {
    background: #f3f4f6 !important;
    border-color: #f3f4f6 !important;
}
body.auth-page .auth-check input[type=checkbox]:checked::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 4px !important;
    height: 8px !important;
    border: solid #0a0a0b !important;
    border-width: 0 2px 2px 0 !important;
    transform: translate(-50%, -58%) rotate(45deg) !important;
}

/* TERMS footer */
body.auth-page .auth-terms {
    margin: 8px 0 0 0 !important;
    font-size: 13px !important;
    color: #9ca3af !important;
    line-height: 1.5 !important;
}
body.auth-page .auth-terms a {
    color: #d1d5db !important;
    text-decoration: underline !important;
    text-underline-offset: 4px !important;
    text-decoration-color: rgba(255,255,255,.32) !important;
}
body.auth-page .auth-terms a:hover { color: #fff !important; text-decoration-color: #fff !important; }

/* ALERT */
body.auth-page .auth-alert {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    margin: 0 !important;
}
body.auth-page .auth-alert .mdi { font-size: 16px !important; flex: 0 0 auto !important; }
body.auth-page .auth-alert.is-error {
    background: rgba(239,68,68,.10) !important;
    color: #fca5a5 !important;
    border: 1px solid rgba(239,68,68,.22) !important;
}

/* SUCCESS state */
body.auth-page .auth-success { margin: 0 !important; }
body.auth-page .auth-success-icon {
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    background: rgba(16,185,129,.14) !important;
    color: #34d399 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 22px !important;
    border: 1px solid rgba(16,185,129,.28) !important;
    margin-bottom: 14px !important;
}
body.auth-page .auth-success-icon svg {
    width: 22px !important;
    height: 22px !important;
    stroke: currentColor !important;
    color: #34d399 !important;
    display: block !important;
}
body.auth-page .auth-success h2 {
    margin: 0 0 8px 0 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #fafafa !important;
}
body.auth-page .auth-success p {
    margin: 0 0 18px 0 !important;
    color: #9ca3af !important;
    line-height: 1.5 !important;
    font-size: 14px !important;
}

/* SIGNUP — multi-col rows */
body.auth-page .auth-row-2 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
}
@media (max-width: 480px) {
    body.auth-page .auth-row-2 { grid-template-columns: 1fr !important; gap: 12px !important; }
}

/* ============================================================
   MOBILE — globe AS BACKGROUND behind the form, visible through
   the form card's transparency
   ============================================================ */
@media (max-width: 1023px) {
    /* Shell stays a single column. Side is absolute behind everything. */
    body.auth-page .auth-shell {
        position: relative !important;
        grid-template-columns: 1fr !important;
    }

    /* Brand panel = fullscreen background layer, globe centered inside */
    body.auth-page .auth-side {
        display: flex !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 0 !important;
        height: 100% !important;
        width: 100% !important;
        min-height: 100dvh !important;
        padding: 0 !important;
        border-right: 0 !important;
    }
    body.auth-page .auth-side .auth-brand,
    body.auth-page .auth-side .auth-quote {
        display: none !important;
    }
    body.auth-page .auth-side .auth-globe-wrap {
        align-items: center !important;
        justify-content: center !important;
    }
    /* Kill the gradient overlay on mobile — was dimming the globe */
    body.auth-page .auth-side::before {
        display: none !important;
    }

    /* Form layer sits on top, transparent so the globe shows through */
    body.auth-page .auth-main {
        position: relative !important;
        z-index: 1 !important;
        padding: 32px 24px !important;
    }
    body.auth-page .auth-main::before { display: none !important; }

    /* Translucent card — globe behind shows through directly */
    body.auth-page .auth-col {
        background: rgba(10, 10, 12, 0.35) !important;
        border: 1px solid rgba(255, 255, 255, 0.10) !important;
        border-radius: 22px !important;
        padding: 28px 24px !important;
        box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.7) !important;
    }

    /* Bigger logo, no name text */
    body.auth-page .auth-col .auth-brand-mobile {
        justify-content: center !important;
        gap: 0 !important;
        margin-bottom: 6px !important;
    }
    body.auth-page .auth-col .auth-brand-mobile img {
        width: auto !important;
        height: 40px !important;
        max-width: 220px !important;
    }
    body.auth-page .auth-col .auth-brand-mobile .name {
        display: none !important;
    }
}
