/**
 * Auth CSS — Login / Registration page (shadcn/ui aligned)
 *
 * Includes:
 *   - Two-column layout with hero (desktop)
 *   - Auth card container
 *   - Tabs (login / register toggle)
 *   - Inline form field styles (inputs, labels, password rules)
 *   - Form actions, status messages
 *   - Fallback collapsible
 *
 * Tokens reference:
 *   --radius, --border-color, --muted, --muted-foreground,
 *   --ring, --ring-offset, --transition-base, --tracking-tight
 *
 * @package ClimaZona
 * @version 5.0.0
 */

/* ========================================
   AUTH LAYOUT — Two-column on desktop
   ======================================== */

.climazona-auth-layout {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--spacing-xl, 2rem) 1rem;
}

@media (min-width: 1024px) {
    .climazona-auth-layout {
        display: grid;
        grid-template-columns: 28rem 1fr;
        gap: 2rem;
        align-items: start;
        padding: 0 2rem;
    }
}

/* ========================================
   AUTH CARD — Centered container (shadcn Card)
   ======================================== */

.climazona-auth-card {
    max-width: 28rem;
    margin: 0 auto;
    padding: 2rem;
    background: var(--card, #fff);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-lg, 0.75rem);
    box-shadow: var(--shadow-sm);
}

@media (min-width: 1024px) {
    .climazona-auth-card {
        margin: 0;
        max-width: none;
    }
}

/* ========================================
   AUTH HERO — Benefits panel
   Mobile: below the card, compact surface
   Desktop: sidebar, vertically centered
   ======================================== */

.climazona-auth-hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: var(--border-radius-lg, 0.75rem);
    border: 1px solid var(--border-color, #e4e4e7);
    background: var(--card, #fff);
    margin-top: 1rem;
    max-width: 28rem;
    margin-left: auto;
    margin-right: auto;
}

.climazona-auth-hero__content {
    padding: var(--spacing-lg, 1.5rem);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg, 1.5rem);
}

/* ── Intro ── */

.climazona-auth-hero__intro {
    margin: 0;
}

.climazona-auth-hero__title {
    font-size: var(--font-size-xl, 1.25rem);
    font-weight: var(--font-weight-bold, 700);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
    line-height: var(--line-height-tight, 1.25);
    margin: 0 0 var(--spacing-sm, 0.5rem);
}

.climazona-auth-hero__subtitle {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--muted-foreground, #71717a);
    line-height: var(--line-height-relaxed, 1.625);
    margin: 0;
}

/* ── Store pills ── */

.climazona-auth-hero__stores {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm, 0.5rem);
    list-style: none;
    padding: 0;
    margin: 0;
}

.climazona-auth-hero__store-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs, 0.25rem);
    padding: var(--spacing-xs, 0.25rem) var(--spacing-sm, 0.5rem);
    background: var(--muted, #f4f4f5);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-full, 9999px);
    font-size: var(--font-size-xs, 0.75rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--foreground, #09090b);
    white-space: nowrap;
}

.climazona-auth-hero__store-dot {
    flex-shrink: 0;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
}

.climazona-auth-hero__store-dot--aire       { background: #2563eb; }
.climazona-auth-hero__store-dot--electro    { background: #dc2626; }
.climazona-auth-hero__store-dot--hostelero  { background: #ea580c; }

/* ── Benefits ── */

.climazona-auth-hero__benefits {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm, 0.5rem);
}

.climazona-auth-hero__benefit {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm, 0.5rem);
}

.climazona-auth-hero__benefit-icon {
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--muted, #f4f4f5);
    border-radius: var(--border-radius-sm, 0.375rem);
    color: var(--muted-foreground, #71717a);
}

.climazona-auth-hero__benefit-icon svg {
    width: 0.875rem;
    height: 0.875rem;
}

.climazona-auth-hero__benefit-text {
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--foreground, #09090b);
    line-height: var(--line-height-normal, 1.5);
}

/* ── "Próximamente" badge ── */

.climazona-auth-hero__badge-soon {
    display: inline-flex;
    align-items: center;
    margin-left: var(--spacing-xs, 0.25rem);
    padding: 0.0625rem var(--spacing-xs, 0.25rem);
    font-size: 0.625rem;
    font-weight: var(--font-weight-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--theme-primary, #2563eb);
    background: var(--theme-primary-light, #dbeafe);
    border-radius: var(--border-radius-full, 9999px);
    line-height: 1.6;
}

/* ── Desktop ── */

@media (min-width: 1024px) {
    .climazona-auth-hero {
        margin: 0;
        max-width: none;
    }

    .climazona-auth-hero__content {
        padding: var(--spacing-xl, 2rem);
    }
}

/* ========================================
   AUTH HEADER
   ======================================== */

.climazona-auth-header {
    text-align: center;
    margin-bottom: 1.5rem;
}

.climazona-auth-header h2 {
    font-size: var(--font-size-xl, 1.5rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
    margin: 0 0 0.5rem;
    border: none;
    padding: 0;
}

.climazona-auth-header p {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--muted-foreground, #71717a);
    margin: 0;
    line-height: var(--line-height-normal, 1.5);
}

/* ========================================
   AUTH ACTIONS — Redirect-based Login / Register buttons
   ======================================== */

.climazona-auth-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.climazona-auth-footnote {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--muted-foreground, #71717a);
    text-align: center;
    margin: 0;
    line-height: var(--line-height-normal, 1.5);
}

.climazona-auth-footnote a {
    color: var(--theme-primary, #2563eb);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--border-color, #e4e4e7);
    transition: color var(--transition-base, 0.2s ease),
                text-decoration-color var(--transition-base, 0.2s ease);
}

.climazona-auth-footnote a:hover {
    color: var(--theme-primary-dark, #1d4ed8);
    text-decoration-color: var(--theme-primary, #2563eb);
}

/* Legacy inline-form styles removed: the inline login/register modal-style
   form was replaced by Authorization Code redirect buttons during the Logto
   migration. Form rendering now happens on the IdP itself. */

/* ========================================
   AUTH BUTTONS — Full-width CTA buttons (used by the redirect-based auth UI)
   ======================================== */

.climazona-auth-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.625rem 1.25rem;
    min-height: 2.75rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    text-align: center;
    text-decoration: none;
    border-radius: var(--border-radius-md, 0.5rem);
    cursor: pointer;
    border: 1px solid transparent;
    transition: background-color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease),
                color var(--transition-base, 0.2s ease),
                box-shadow var(--transition-base, 0.2s ease);
    line-height: var(--line-height-normal, 1.5);
}

.climazona-auth-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--card, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

.climazona-auth-btn:active {
    transform: scale(0.99);
}

/* Primary variant */
.climazona-auth-btn--primary {
    background-color: var(--theme-primary, #2563eb);
    color: #fff;
    border-color: var(--theme-primary, #2563eb);
}

.climazona-auth-btn--primary:hover {
    background-color: var(--theme-primary-dark, #1d4ed8);
    border-color: var(--theme-primary-dark, #1d4ed8);
    color: #fff;
    text-decoration: none;
}

/* Outline variant */
.climazona-auth-btn--outline {
    background-color: transparent;
    color: var(--foreground, #09090b);
    border-color: var(--border-color, #e4e4e7);
}

.climazona-auth-btn--outline:hover {
    background-color: var(--accent, #f4f4f5);
    border-color: var(--border-color, #e4e4e7);
    text-decoration: none;
}

/* ========================================
   AUTH FALLBACK — Native login (collapsible, only when OIDC is disabled)
   ======================================== */

.climazona-auth-fallback {
    margin-top: 1.5rem;
    border-top: 1px solid var(--border-color, #e4e4e7);
    padding-top: 1rem;
}

.climazona-auth-fallback summary {
    display: block;
    text-align: center;
    cursor: pointer;
    list-style: none;
    color: var(--muted-foreground, #71717a);
    font-size: var(--font-size-sm, 0.875rem);
}

.climazona-auth-fallback summary::-webkit-details-marker {
    display: none;
}

.climazona-auth-fallback summary span {
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--border-color, #e4e4e7);
    transition: color var(--transition-base, 0.2s ease),
                text-decoration-color var(--transition-base, 0.2s ease);
}

.climazona-auth-fallback summary:hover span {
    color: var(--foreground, #09090b);
    text-decoration-color: var(--muted-foreground, #71717a);
}

.climazona-auth-fallback > div {
    margin-top: 1rem;
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 480px) {
    .climazona-auth-layout {
        padding: 0;
    }

    .climazona-auth-card {
        margin: 1rem;
        padding: 1.5rem;
    }
}
