/**
 * LicitaYa Front - Estilos Centralizados
 * Consolidated styles for landing, login y register pages
 * Based on modern SaaS design patterns
 */

/* ==================== VARIABLES ==================== */
:root {
    --ly-ink: #0f172a;
    --ly-muted: #475569;
    --ly-accent: #2563eb;
    --ly-accent-2: #0ea5e9;
    --ly-accent-3: #10b981;
    --ly-warm: #f97316;
    --ly-surface: rgba(255, 255, 255, 0.92);
    --ly-line: rgba(15, 23, 42, 0.10);
}

/* ==================== SHELL BASES ==================== */
.auth-shell,
.landing-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 30%),
        radial-gradient(circle at top right, rgba(16, 185, 129, 0.14), transparent 28%),
        linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.auth-topbar,
.landing-nav {
    backdrop-filter: blur(18px);
    background: rgba(255, 255, 255, 0.72);
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.auth-hero,
.hero-panel {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 2rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96) 0%, rgba(248, 250, 252, 0.92) 100%);
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.12);
}

.auth-hero::after,
.hero-panel::after {
    content: '';
    position: absolute;
    inset: auto -8% -30% auto;
    width: 18rem;
    height: 18rem;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.18), rgba(37, 99, 235, 0));
    pointer-events: none;
}

/* ==================== BADGES & CHIPS ==================== */
.auth-badge,
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    border-radius: 999px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    background: rgba(37, 99, 235, 0.06);
    color: var(--ly-accent);
    padding: .45rem .85rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.auth-chip,
.nav-pill {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    padding: .4rem .95rem;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
}

/* ==================== CARDS ==================== */
.auth-card,
.section-card,
.stat-card,
.pricing-card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.6rem;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.06);
    transition: all 0.25s ease;
}

.stat-card {
    border-radius: 1.5rem;
    padding: 1.4rem;
    background: #fff;
}

.auth-card {
    border-radius: 1.75rem;
    background: var(--ly-surface);
}

/* ==================== FORM ELEMENTS ==================== */
.auth-form-label {
    font-size: 12px;
    font-weight: 700;
    color: #334155;
    margin-bottom: 8px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.auth-form-input,
.form-control {
    border-width: 1px;
    border-color: #CBD5E1;
    border-radius: 14px;
    padding: 14px 14px;
    font-size: 15px;
    background-color: #F8FAFC;
    color: #0F172A;
    transition: all 0.2s ease;
}

.form-control:focus {
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
    border-color: var(--ly-accent);
}

.auth-support {
    color: var(--ly-muted);
}

/* Accessibility contrast improvements for landing/auth templates */
.landing-shell .text-muted,
.auth-shell .text-muted {
    color: #475569 !important;
}

.landing-shell .lead,
.auth-shell .lead,
.landing-shell .auth-support,
.auth-shell .auth-support {
    color: #334155 !important;
}

.landing-nav .nav-link {
    color: #1e293b;
    font-weight: 600;
}

.landing-nav .nav-link:hover,
.landing-nav .nav-link:focus {
    color: #0f172a;
}

.landing-nav .nav-pill.text-muted,
.auth-topbar .auth-chip,
.landing-shell .auth-chip,
.auth-shell .auth-chip {
    color: #334155 !important;
}

.auth-shell .form-floating > label,
.landing-shell .form-floating > label {
    color: #334155;
}

.auth-shell .form-control::placeholder,
.landing-shell .form-control::placeholder {
    color: #475569;
    opacity: 1;
}

/* Hide placeholder inside form-floating so only the label shows */
.auth-shell .form-floating > .form-control::placeholder,
.landing-shell .form-floating > .form-control::placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

/* Preserve contrast on dark featured cards */
.landing-shell .pricing-card.featured .text-muted,
.landing-shell .pricing-card.featured .muted,
.landing-shell .pricing-card.featured li {
    color: rgba(255, 255, 255, 0.82) !important;
}

/* ==================== BUTTONS ==================== */
.btn {
    transition: all 0.2s ease;
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-primary:hover {
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.35);
}

.btn-outline-dark:hover,
.btn-outline-primary:hover {
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.15);
}

/* Shimmer effect for primary buttons */
.btn-primary {
    position: relative;
    overflow: hidden;
}

.btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: left 0.5s ease;
}

.btn-primary:hover::before {
    left: 100%;
}

/* ==================== CARDS HOVER EFFECTS ==================== */
.section-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.10);
}

.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.auth-card:hover {
    box-shadow: 0 22px 55px rgba(15, 23, 42, 0.10);
}

/* ==================== NAV LINKS ==================== */
.nav-link {
    position: relative;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--ly-accent);
    transition: all 0.2s ease;
    transform: translateX(-50%);
    border-radius: 2px;
}

.nav-link:hover::after {
    width: 60%;
}

/* ==================== FEATURES ==================== */
.feature-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(14, 165, 233, 0.12));
    color: var(--ly-accent);
    transition: all 0.2s ease;
}

.feature-icon:hover {
    transform: scale(1.05);
}

/* ==================== PRICING ==================== */
.pricing-card {
    height: 100%;
    border-radius: 1.7rem;
    overflow: hidden;
    background: #fff;
}

.pricing-card.featured {
    background: linear-gradient(180deg, #0f172a 0%, #111827 100%);
    color: #fff;
    transform: translateY(-8px);
}

.pricing-card.featured .h4,
.pricing-card.featured .display-6 {
    color: #fff;
}

.pricing-card.featured .text-muted,
.pricing-card.featured .muted,
.pricing-card.featured li {
    color: rgba(255, 255, 255, 0.76) !important;
}

.pricing-card.featured .check-list i {
    color: #a7f3d0 !important;
}

.pricing-card.featured .btn-light {
    background: #ffffff !important;
    color: #0f172a !important;
    border: 0 !important;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18);
}

.pricing-card.featured .btn-light:hover {
    background: #f8fafc !important;
    color: #0f172a !important;
}

/* Featured glow effect */
.pricing-card.featured {
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.06), 0 0 0 1px rgba(37, 99, 235, 0.1);
}

/* ==================== ACCORDION ==================== */
.faq-item {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.25rem;
    overflow: hidden;
    background: #fff;
}

.accordion-button {
    display: flex;
    align-items: center;
    width: 100%;
    justify-content: space-between;
    text-align: left;
    gap: 1rem;
    border: 0;
    box-shadow: none;
    padding-right: 1.25rem;
    transition: all 0.2s ease;
}

.accordion-button::after {
    position: static;
    margin-left: auto;
    flex-shrink: 0;
}

.accordion-button:not(.collapsed) {
    color: var(--ly-ink);
    background: #fff;
    box-shadow: none;
}

.accordion-button:hover {
    background: rgba(248, 250, 252, 0.5);
}

/* ==================== AI DOT PULSE ==================== */
.hero-ai-strip .ai-dot {
    width: .75rem;
    height: .75rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--ly-accent), var(--ly-accent-3));
    box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.08);
    flex-shrink: 0;
    animation: pulse-dot 2s ease-in-out infinite;
}

@keyframes pulse-dot {
    0%, 100% {
        box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.08);
    }
    50% {
        box-shadow: 0 0 0 10px rgba(37, 99, 235, 0.04);
    }
}

/* ==================== TRUST BADGES ==================== */
.trust-badges img {
    opacity: .95;
    filter: grayscale(1);
    transition: transform .2s ease, opacity .2s ease;
}

.trust-badges img:hover {
    transform: translateY(-2px);
    opacity: 1;
    filter: grayscale(0);
}

.trust-badges .section-card {
    cursor: default;
}

/* ==================== LINK EFFECTS ==================== */
a {
    transition: color 0.2s ease;
}

a:not(.btn):hover {
    color: var(--ly-accent);
}

/* Link with underline animation */
.hover {
    position: relative;
    text-decoration: none;
}

.hover::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width 0.2s ease;
}

.hover:hover::after {
    width: 100%;
}

footer a:not(.btn):hover {
    color: #fff !important;
}

/* ==================== PASSWORD TOGGLE ==================== */
.password-toggle {
    transition: all 0.2s ease;
    cursor: pointer;
}

.password-toggle:hover {
    color: var(--ly-accent);
}

/* ==================== LOGO ==================== */
.navbar-brand {
    transition: opacity 0.2s ease;
}

.navbar-brand:hover {
    opacity: 0.85;
}

/* ==================== CHECKBOX ==================== */
.form-check-input {
    transition: all 0.2s ease;
}

.form-check-input:focus {
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.form-check-input:checked {
    background-color: var(--ly-accent);
    border-color: var(--ly-accent);
}

/* ==================== SPINNER ==================== */
.spinner-border {
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ==================== DIVIDER ==================== */
.soft-divider {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

/* ==================== TRUST METRICS ==================== */
.trust-metric-title {
    font-size: clamp(1rem, 1.1vw, 1.3rem);
    line-height: 1.24;
    font-weight: 650;
    color: #243b60;
    letter-spacing: -0.005em;
    text-wrap: balance;
    margin: 0;
}

/* ==================== CHECK LIST ==================== */
.check-list li {
    margin-bottom: .8rem;
}

/* ==================== LANDING SPECIFIC STYLES ==================== */

/* Hero AI Strip - Landing variant */
.hero-ai-strip {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .65rem 1rem;
    border-radius: .85rem;
    border: 1px solid rgba(37, 99, 235, 0.12);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.04), rgba(16, 185, 129, 0.04));
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.04);
    backdrop-filter: blur(8px);
}

.hero-ai-strip .ai-dot {
    width: .6rem;
    height: .6rem;
    flex-shrink: 0;
}

.hero-ai-strip .ai-label {
    font-size: .84rem;
    font-weight: 500;
    color: var(--ly-ink);
    line-height: 1.35;
}

.hero-ai-strip .ai-copy {
    font-size: .92rem;
    color: var(--ly-ink);
    line-height: 1.25;
}

/* Landing overrides */
.landing-shell {
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, 0.14), transparent 32%),
        radial-gradient(circle at top right, rgba(16, 185, 129, 0.14), transparent 28%),
        linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    color: var(--ly-ink);
}

.landing-nav {
    background: rgba(255, 255, 255, 0.76);
}

.hero-panel {
    border-radius: 2rem;
}

.hero-panel::after {
    width: 22rem;
    height: 22rem;
    inset: auto -10% -35% auto;
}

/* Media Queries - Landing */
@media (max-width: 991.98px) {
    .landing-nav {
        background: rgba(255, 255, 255, 0.98) !important;
    }

    .landing-nav .navbar-toggler {
        width: 3rem;
        height: 2.6rem;
        border: 1px solid #3b475c;
        border-radius: 10px;
        padding: 0;
        background: #fff !important;
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.07);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        z-index: 9999;
        position: relative;
    }

    .landing-nav .navbar-toggler:focus {
        box-shadow: none;
    }

    .landing-nav .navbar-toggler-icon {
        width: 1.15rem;
        height: 1.5px;
        background-image: none;
        background-color: #3b475c !important;
        border-radius: 99px;
        position: relative;
    }

    .landing-nav .navbar-toggler-icon::before,
    .landing-nav .navbar-toggler-icon::after {
        content: '';
        position: absolute;
        left: 0;
        width: 1.15rem;
        height: 1.5px;
        background: #3b475c !important;
        border-radius: 99px;
    }

    .landing-nav .navbar-toggler-icon::before {
        top: -7px;
    }

    .landing-nav .navbar-toggler-icon::after {
        top: 7px;
    }

    #landingNav,
    #landingNav-clone {
        margin-top: .95rem;
        padding: .9rem;
        border-radius: 1rem;
        border: 1px solid rgba(15, 23, 42, 0.12);
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 18px 42px rgba(15, 23, 42, 0.10);
        z-index: 9998;
    }

    #landingNav .navbar-nav,
    #landingNav-clone .navbar-nav {
        gap: .45rem !important;
        align-items: stretch !important;
    }

    #landingNav .nav-link,
    #landingNav-clone .nav-link {
        padding: .72rem .85rem;
        border-radius: .8rem;
        font-weight: 700;
        background: rgba(148, 163, 184, 0.12);
        color: #1e2a3b !important;
    }

    #landingNav .nav-link:hover,
    #landingNav .nav-link:focus,
    #landingNav-clone .nav-link:hover,
    #landingNav-clone .nav-link:focus {
        color: #0f172a !important;
        background: rgba(37, 99, 235, 0.10);
    }

    #landingNav .d-flex,
    #landingNav-clone .d-flex {
        margin-top: .8rem !important;
        align-items: stretch !important;
        gap: .6rem !important;
    }

    #landingNav .nav-pill,
    #landingNav-clone .nav-pill {
        justify-content: center;
        color: #334155;
        background: rgba(248, 250, 252, 0.98);
    }

    #landingNav .btn,
    #landingNav-clone .btn {
        width: 100%;
    }
}

@media (max-width: 991.98px) {
    .navbar-clone .navbar-toggler {
        width: 3rem !important;
        height: 2.6rem !important;
        border: 1px solid #3b475c !important;
        border-radius: 10px;
        padding: 0;
        background: #fff !important;
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.07);
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        z-index: 9999;
        position: relative;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .navbar-clone {
        background: rgba(255, 255, 255, 0.98) !important;
    }

    .navbar-clone .navbar-toggler-icon {
        width: 1.15rem;
        height: 1.5px;
        background-image: none !important;
        background-color: #3b475c !important;
        border-radius: 99px;
        position: relative;
    }

    .navbar-clone .navbar-toggler-icon::before,
    .navbar-clone .navbar-toggler-icon::after {
        content: '';
        position: absolute;
        left: 0;
        width: 1.15rem;
        height: 1.5px;
        background: #3b475c !important;
        border-radius: 99px;
    }

    .navbar-clone .navbar-toggler-icon::before {
        top: -7px;
    }

    .navbar-clone .navbar-toggler-icon::after {
        top: 7px;
    }

    .navbar-clone .landing-nav .navbar-toggler,
    .landing-nav.navbar-clone .navbar-toggler {
        display: inline-flex !important;
        visibility: visible !important;
    }
}

@media (max-width: 767.98px) {
    .hero-panel {
        border-radius: 1.5rem;
    }

    .hero-panel .display-2 {
        font-size: clamp(2.2rem, 10.8vw, 2.9rem);
        line-height: 1.03 !important;
        letter-spacing: -0.02em !important;
        overflow-wrap: anywhere;
    }

    .hero-panel .lead {
        font-size: 1.02rem;
        line-height: 1.5;
    }

    .eyebrow {
        white-space: normal;
        text-align: left;
        line-height: 1.35;
        font-size: .72rem;
        padding: .5rem .8rem;
    }

    .hero-ai-strip {
        width: 100%;
        align-items: flex-start;
        padding: .6rem .8rem;
    }

    .hero-ai-strip .ai-label {
        font-size: .78rem;
    }

    .section-card,
    .stat-card,
    .pricing-card,
    .faq-item {
        border-radius: 1.2rem;
    }

    .trust-badges .section-card {
        padding: .9rem .75rem !important;
        min-height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .trust-metric-title {
        font-size: clamp(.95rem, 4.7vw, 1.12rem);
        line-height: 1.22;
        letter-spacing: 0;
        overflow-wrap: break-word;
        word-break: normal;
        text-wrap: balance;
    }

    .trust-badges .small {
        font-size: .68rem;
    }

    .stat-card h3,
    .section-card h3,
    .pricing-card h3 {
        overflow-wrap: anywhere;
    }
}

.accordion-wrapper .card-header button:before {
    position: inherit !important;
}

.accordion-button {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
}

.font-size-08 {
    font-size: .8rem !important;
}

.text-justify {
    text-align: justify !important;
}