/* ===== Flydroid Travel CRM — Auth (Login) ===== */

:root {
    --brand-blue: #2f80ed;
    --brand-blue-2: #4aa3ff;
    --brand-blue-dark: #1e5fbf;
    --navy: #0f2c5c;
    --ink: #1a2233;
    --muted: #6b7280;
    --field-bg: #eef3fb;
    --field-border: #e3e9f3;
    --radius: 14px;
    font-family: "Lexend Deca", "Segoe UI", sans-serif;
}

* {
    box-sizing: border-box;
}

html,
body.auth-body {
    height: 100%;
    margin: 0;
}

body.auth-body {
    font-family: "Lexend Deca", "Segoe UI", sans-serif;
    color: var(--ink);
    background: #eef3fb;
    overflow-x: hidden;
}

.auth-shell {
    min-height: 100vh;
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
    display: flex;
    position: relative;
    background: linear-gradient(115deg, #eef1fb 0%, #f1f0f8 46%, #f8f1ea 100%);
}

.auth-shell > section {
    min-width: 0;
}

/* ---------------------------------------------------------------------------
   Left — product showcase (light)
   Logo + tagline, two-tone headline, and a 4x2 grid of feature cards.
   The agency artwork at wwwroot/images/login-hero.png bleeds in faintly
   from the right edge as a soft travel accent.
   --------------------------------------------------------------------------- */
.auth-showcase {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.5rem;
    padding: 3rem 3.25rem;
    color: var(--ink);
    /* Deeper blue wash that fades out before the card panel — gives the
       left content its own contrasting, focused surface with no hard seam. */
    background:
        linear-gradient(100deg,
            rgba(14, 36, 84, 0.44) 0%,
            rgba(26, 55, 114, 0.36) 30%,
            rgba(60, 95, 165, 0.22) 52%,
            rgba(120, 150, 205, 0.09) 70%,
            transparent 86%);
}

.auth-showcase::after {
    content: "";
    position: absolute;
    inset: 0;
    background: url("/images/login-hero.png") center center / cover no-repeat;
    opacity: 0.16;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 34%, rgba(0, 0, 0, 0.85) 78%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0%, transparent 34%, rgba(0, 0, 0, 0.85) 78%, #000 100%);
    pointer-events: none;
    z-index: 0;
}

.showcase-inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
    width: 100%;
    max-width: 640px;
}

/* Brand */
.sc-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
}

.sc-brand .sc-logo {
    display: block;
    width: auto;
    height: 40px;
    flex: 0 0 auto;
    padding: 8px 14px;
    background: rgba(255, 255, 255, 0.94);
    border-radius: 12px;
    box-shadow: 0 14px 32px -16px rgba(9, 24, 54, 0.5);
    box-sizing: content-box;
}

.sc-tagline {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #5c6880;
}

/* Headline + subcopy */
.showcase-copy h1 {
    font-family: "Lexend Deca", sans-serif;
    font-weight: 800;
    font-size: 2.6rem;
    line-height: 1.12;
    letter-spacing: -0.02em;
    margin: 0 0 0.7rem;
}

.showcase-copy h1 .sc-line1 {
    display: block;
    color: var(--navy);
    font-weight: 700;
    font-size: 0.7em;
    letter-spacing: -0.01em;
}

.showcase-copy h1 .sc-line2 {
    display: block;
    color: var(--brand-blue);
}

.showcase-copy p {
    font-size: 1rem;
    line-height: 1.6;
    color: #3c4658;
    margin: 0;
    max-width: 430px;
}

/* Feature card grid */
.sc-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 0.35rem;
}

.sc-card {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.95rem 0.9rem 1rem;
    background: #fff;
    border: 1px solid rgba(26, 45, 82, 0.07);
    border-radius: 16px;
    box-shadow: 0 10px 24px -14px rgba(24, 44, 84, 0.26);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.sc-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 34px -16px rgba(24, 44, 84, 0.32);
}

.sc-tile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    font-size: 1.15rem;
}

.sc-card-title {
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--ink);
    min-height: 2.4em;
}

.sc-card-sub {
    font-size: 0.72rem;
    line-height: 1.3;
    color: #8a93a6;
    min-height: 2.6em;
}

/* Tile palettes — pale fill, coloured glyph */
.sc-tile-indigo { background: #eef0ff; color: #5b6ef5; }
.sc-tile-violet { background: #f4ecfe; color: #9b5de5; }
.sc-tile-teal   { background: #e3f6f3; color: #12b5a5; }
.sc-tile-amber  { background: #fdefe2; color: #f2833e; }
.sc-tile-green  { background: #e6f6ed; color: #22a366; }
.sc-tile-blue   { background: #e8f1ff; color: #3f80f2; }
.sc-tile-sky    { background: #e3f4fd; color: #22a6de; }
.sc-tile-rose   { background: #fdecec; color: #ef4d5a; }

/* ---------------------------------------------------------------------------
   Right — floating sign-in card
   --------------------------------------------------------------------------- */
.auth-panel {
    flex: 0 1 560px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.75rem 2.5rem;
    background: transparent;
    overflow-y: auto;
}

.auth-card {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 400px;
    background: #fff;
    border: 1px solid rgba(26, 45, 82, 0.08);
    border-radius: 22px;
    padding: 1.9rem 1.9rem;
    box-shadow: 0 30px 60px -30px rgba(24, 44, 84, 0.3), 0 8px 22px -14px rgba(24, 44, 84, 0.14);
}

.auth-card-brand {
    display: flex;
    justify-content: center;
    margin-bottom: 0.9rem;
}

.auth-card-brand .brand-logo {
    height: 34px;
    max-width: 180px;
}

.auth-card h2 {
    font-family: "Lexend Deca", sans-serif;
    font-weight: 800;
    font-size: 1.45rem;
    letter-spacing: -0.01em;
    margin: 0 0 0.3rem;
    color: var(--ink);
}

.auth-subtitle {
    color: var(--muted);
    margin: 0 0 1.2rem;
    font-size: 0.85rem;
    line-height: 1.45;
}

.auth-error:empty {
    display: none;
}

.auth-error {
    background: #fef3f2;
    border: 1px solid #fda29b;
    color: #b42318;
    border-radius: var(--radius);
    padding: 0.7rem 1rem;
    font-size: 0.85rem;
    margin-bottom: 1.1rem;
}

.auth-error ul {
    margin: 0;
    padding-left: 1.1rem;
}

.form-field {
    margin-bottom: 0.85rem;
}

.form-field label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
    color: var(--ink);
}

.field-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.forgot-link {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--brand-blue);
    text-decoration: none;
    white-space: nowrap;
}

.forgot-link:hover {
    text-decoration: underline;
}

.input-with-icon {
    position: relative;
    display: flex;
    align-items: center;
}

.input-with-icon > i {
    position: absolute;
    left: 14px;
    color: #98a2b3;
    font-size: 1rem;
    pointer-events: none;
}

.input-with-icon .form-control {
    width: 100%;
    padding: 0.62rem 1rem 0.62rem 2.5rem;
    border-radius: var(--radius);
    border: 1.5px solid var(--field-border);
    background: var(--field-bg);
    font-size: 0.9rem;
    height: auto;
    color: var(--ink);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.input-with-icon .form-control::placeholder {
    color: #9aa5b6;
}

.input-with-icon .form-control:focus {
    outline: none;
    background: #fff;
    border-color: var(--brand-blue);
    box-shadow: 0 0 0 4px rgba(47, 128, 237, 0.14);
}

.input-with-icon .toggle-visibility {
    position: absolute;
    right: 10px;
    border: none;
    background: transparent;
    color: #98a2b3;
    padding: 6px;
    display: inline-flex;
    cursor: pointer;
}

.input-with-icon .toggle-visibility:hover {
    color: var(--ink);
}

.field-error {
    display: block;
    color: #d92d20;
    font-size: 0.76rem;
    margin-top: 0.3rem;
}

.form-check-row {
    display: flex;
    align-items: center;
    margin-top: 0.1rem;
    margin-bottom: 1.1rem;
}

.form-check-input {
    cursor: pointer;
}

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

.form-check-input:focus {
    border-color: var(--brand-blue);
    box-shadow: 0 0 0 3px rgba(47, 128, 237, 0.18);
}

.form-check-label {
    font-size: 0.86rem;
    color: var(--muted);
    cursor: pointer;
}

.btn-signin {
    width: 100%;
    border: none;
    border-radius: var(--radius);
    padding: 0.72rem 1rem;
    font-family: "Lexend Deca", sans-serif;
    font-weight: 700;
    font-size: 0.94rem;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-blue), var(--brand-blue-2));
    box-shadow: 0 12px 26px -12px rgba(47, 128, 237, 0.6);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.btn-signin:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -10px rgba(47, 128, 237, 0.7);
    color: #fff;
}

.btn-signin:active {
    transform: translateY(0);
}

.auth-footnote {
    text-align: center;
    font-size: 0.82rem;
    color: var(--muted);
    margin: 1.1rem 0 0;
}

.auth-footnote a {
    color: var(--brand-blue);
    font-weight: 600;
    text-decoration: none;
}

.auth-footnote a:hover {
    text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
    .sc-card,
    .btn-signin {
        transition: none;
    }
}

/* ---------------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------------- */
@media (max-width: 1280px) {
    .auth-showcase {
        padding: 2.5rem 2.25rem;
    }

    .auth-panel {
        flex-basis: 460px;
    }

    .showcase-copy h1 {
        font-size: 2.15rem;
    }

    .sc-grid {
        gap: 0.6rem;
    }

    .sc-card {
        padding: 0.8rem 0.7rem 0.85rem;
        border-radius: 14px;
    }

    .sc-tile {
        width: 34px;
        height: 34px;
        font-size: 1rem;
        border-radius: 10px;
    }

    .sc-card-title {
        font-size: 0.78rem;
    }

    .sc-card-sub {
        font-size: 0.68rem;
    }
}

@media (max-width: 991.98px) {
    .auth-showcase {
        display: none;
    }

    .auth-panel {
        flex: 1 1 100%;
        max-width: 100%;
        padding: 1.75rem 1rem;
        background: transparent;
    }

    .auth-card {
        max-width: 430px;
        padding: 2rem 1.5rem;
    }
}
