@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css";

@layer base {
    * {
        @apply border-border outline-ring/50;
    }

    body {
        @apply bg-background text-foreground;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale
    }
}

@layer base {
    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) {
        h1 {
            font-size: var(--text-2xl);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        h2 {
            font-size: var(--text-xl);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        h3 {
            font-size: var(--text-lg);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        h4 {
            font-size: var(--text-base);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        p {
            font-size: var(--text-base);
            font-weight: var(--font-weight-normal);
            line-height: 1.5
        }

        label,
        button {
            font-size: var(--text-base);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        input {
            font-size: var(--text-base);
            font-weight: var(--font-weight-normal);
            line-height: 1.5
        }
    }
}

/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */
@layer properties {
    @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {

        *,
        :before,
        :after,
        ::backdrop {
            --tw-rotate-x: rotateX(0);
            --tw-rotate-y: rotateY(0);
            --tw-rotate-z: rotateZ(0);
            --tw-skew-x: skewX(0);
            --tw-skew-y: skewY(0);
            --tw-ease: initial
        }
    }
}

@layer theme {

    :root,
    :host {
        --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
        --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        --text-base: 1rem;
        --text-lg: 1.125rem;
        --text-xl: 1.25rem;
        --text-2xl: 1.5rem;
        --font-weight-normal: 400;
        --font-weight-medium: 500;
        --ease-out: cubic-bezier(0, 0, .2, 1);
        --default-transition-duration: .15s;
        --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
        --default-font-family: var(--font-sans);
        --default-font-feature-settings: var(--font-sans--font-feature-settings);
        --default-font-variation-settings: var(--font-sans--font-variation-settings);
        --default-mono-font-family: var(--font-mono);
        --default-mono-font-feature-settings: var(--font-mono--font-feature-settings);
        --default-mono-font-variation-settings: var(--font-mono--font-variation-settings)
    }
}

@layer base {

    *,
    :after,
    :before,
    ::backdrop {
        box-sizing: border-box;
        border: 0 solid;
        margin: 0;
        padding: 0
    }

    ::file-selector-button {
        box-sizing: border-box;
        border: 0 solid;
        margin: 0;
        padding: 0
    }

    html,
    :host {
        -webkit-text-size-adjust: 100%;
        tab-size: 4;
        line-height: 1.5;
        font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
        font-feature-settings: var(--default-font-feature-settings, normal);
        font-variation-settings: var(--default-font-variation-settings, normal);
        -webkit-tap-highlight-color: transparent
    }

    body {
        line-height: inherit
    }

    hr {
        height: 0;
        color: inherit;
        border-top-width: 1px
    }

    abbr:where([title]) {
        -webkit-text-decoration: underline dotted;
        text-decoration: underline dotted
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        font-size: inherit;
        font-weight: inherit
    }

    a {
        color: inherit;
        -webkit-text-decoration: inherit;
        text-decoration: inherit
    }

    b,
    strong {
        font-weight: bolder
    }

    code,
    kbd,
    samp,
    pre {
        font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
        font-feature-settings: var(--default-mono-font-feature-settings, normal);
        font-variation-settings: var(--default-mono-font-variation-settings, normal);
        font-size: 1em
    }

    small {
        font-size: 80%
    }

    sub,
    sup {
        vertical-align: baseline;
        font-size: 75%;
        line-height: 0;
        position: relative
    }

    sub {
        bottom: -.25em
    }

    sup {
        top: -.5em
    }

    table {
        text-indent: 0;
        border-color: inherit;
        border-collapse: collapse
    }

    :-moz-focusring {
        outline: auto
    }

    progress {
        vertical-align: baseline
    }

    summary {
        display: list-item
    }

    ol,
    ul,
    menu {
        list-style: none
    }

    img,
    svg,
    video,
    canvas,
    audio,
    iframe,
    embed,
    object {
        vertical-align: middle;
        display: block
    }

    img,
    video {
        max-width: 100%;
        height: auto
    }

    button,
    input,
    select,
    optgroup,
    textarea {
        font: inherit;
        font-feature-settings: inherit;
        font-variation-settings: inherit;
        letter-spacing: inherit;
        color: inherit;
        opacity: 1;
        background-color: #0000;
        border-radius: 0
    }

    ::file-selector-button {
        font: inherit;
        font-feature-settings: inherit;
        font-variation-settings: inherit;
        letter-spacing: inherit;
        color: inherit;
        opacity: 1;
        background-color: #0000;
        border-radius: 0
    }

    :where(select:is([multiple], [size])) optgroup {
        font-weight: bolder
    }

    :where(select:is([multiple], [size])) optgroup option {
        padding-inline-start: 20px
    }

    ::file-selector-button {
        margin-inline-end: 4px
    }

    ::placeholder {
        opacity: 1;
        color: currentColor
    }

    @supports (color: color-mix(in lab, red, red)) {
        ::placeholder {
            color: color-mix(in oklab, currentColor 50%, transparent)
        }
    }

    textarea {
        resize: vertical
    }

    ::-webkit-search-decoration {
        -webkit-appearance: none
    }

    ::-webkit-date-and-time-value {
        min-height: 1lh;
        text-align: inherit
    }

    ::-webkit-datetime-edit {
        display: inline-flex
    }

    ::-webkit-datetime-edit-fields-wrapper {
        padding: 0
    }

    ::-webkit-datetime-edit {
        padding-block: 0
    }

    ::-webkit-datetime-edit-year-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-month-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-day-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-hour-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-minute-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-second-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-millisecond-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-meridiem-field {
        padding-block: 0
    }

    :-moz-ui-invalid {
        box-shadow: none
    }

    button,
    input:where([type=button], [type=reset], [type=submit]) {
        appearance: button
    }

    ::file-selector-button {
        appearance: button
    }

    ::-webkit-inner-spin-button {
        height: auto
    }

    ::-webkit-outer-spin-button {
        height: auto
    }

    [hidden]:where(:not([hidden=until-found])) {
        display: none !important
    }

    body {
        background-color: var(--background);
        color: var(--foreground)
    }

    * {
        border-color: var(--border);
        outline-color: var(--ring)
    }

    @supports (color: color-mix(in lab, red, red)) {
        * {
            outline-color: color-mix(in oklab, var(--ring) 50%, transparent)
        }
    }

    body {
        background-color: var(--background);
        color: var(--foreground);
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale
    }

    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) h1 {
        font-size: var(--text-2xl);
        font-weight: var(--font-weight-medium);
        line-height: 1.5
    }

    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) h2 {
        font-size: var(--text-xl);
        font-weight: var(--font-weight-medium);
        line-height: 1.5
    }

    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) h3 {
        font-size: var(--text-lg);
        font-weight: var(--font-weight-medium);
        line-height: 1.5
    }

    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) h4 {
        font-size: var(--text-base);
        font-weight: var(--font-weight-medium);
        line-height: 1.5
    }

    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) p {
        font-size: var(--text-base);
        font-weight: var(--font-weight-normal);
        line-height: 1.5
    }

    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) label,
    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) button {
        font-size: var(--text-base);
        font-weight: var(--font-weight-medium);
        line-height: 1.5
    }

    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) input {
        font-size: var(--text-base);
        font-weight: var(--font-weight-normal);
        line-height: 1.5
    }
}

@layer utilities {
    .transform {
        transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y)
    }

    .transition {
        transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
        transition-duration: var(--tw-duration, var(--default-transition-duration))
    }

    .ease-out {
        --tw-ease: var(--ease-out);
        transition-timing-function: var(--ease-out)
    }
}

:root {
    --font-size: 16px;
    --background: #fff;
    --foreground: oklch(.145 0 0);
    --card: #fff;
    --card-foreground: oklch(.145 0 0);
    --popover: oklch(1 0 0);
    --popover-foreground: oklch(.145 0 0);
    --primary: #030213;
    --primary-foreground: oklch(1 0 0);
    --secondary: oklch(.95 .0058 264.53);
    --secondary-foreground: #030213;
    --muted: #ececf0;
    --muted-foreground: #717182;
    --accent: #e9ebef;
    --accent-foreground: #030213;
    --destructive: #d4183d;
    --destructive-foreground: #fff;
    --border: #0000001a;
    --input: transparent;
    --input-background: #f3f3f5;
    --switch-background: #cbced4;
    --font-weight-medium: 500;
    --font-weight-normal: 400;
    --ring: oklch(.708 0 0);
    --chart-1: oklch(.646 .222 41.116);
    --chart-2: oklch(.6 .118 184.704);
    --chart-3: oklch(.398 .07 227.392);
    --chart-4: oklch(.828 .189 84.429);
    --chart-5: oklch(.769 .188 70.08);
    --radius: .625rem;
    --sidebar: oklch(.985 0 0);
    --sidebar-foreground: oklch(.145 0 0);
    --sidebar-primary: #030213;
    --sidebar-primary-foreground: oklch(.985 0 0);
    --sidebar-accent: oklch(.97 0 0);
    --sidebar-accent-foreground: oklch(.205 0 0);
    --sidebar-border: oklch(.922 0 0);
    --sidebar-ring: oklch(.708 0 0)
}

body {
    margin: 0;
    padding: 0;
    font-family: Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif
}

.login-page {
    grid-template-columns: repeat(12, 1fr);
    column-gap: 20px;
    width: 100%;
    min-height: 100vh;
    display: grid
}

.banner-section {
    background: #001858;
    grid-column: span 7;
    justify-content: center;
    align-items: center;
    padding: 60px 0;
    display: flex
}

.banner-content {
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: calc(58.3333% - 20px);
    padding: 0 10px;
    display: flex
}

.banner-title {
    color: #fff;
    text-align: center;
    margin: 0;
    font-size: 32px;
    font-weight: 600;
    line-height: 1.4
}

.banner-text {
    color: #fff;
    text-align: center;
    margin: 8px 0 0;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.4
}

.banner-button {
    color: #fff;
    cursor: pointer;
    background: none;
    border: 1px solid #fff;
    border-radius: 8px;
    justify-content: center;
    align-items: center;
    height: 48px;
    margin-top: 24px;
    padding: 0 16px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    transition: all .2s;
    display: flex
}

.banner-image-container {
    -webkit-user-select: none;
    user-select: none;
    width: calc(41.6667vw - 11.6667px);
    margin-top: 48px;
    position: relative;
    overflow: hidden
}

.banner-image-slider {
    width: 100%;
    display: flex
}

.banner-image {
    aspect-ratio: 5 / 3;
    object-fit: cover;
    pointer-events: none;
    border-radius: 12px;
    flex-shrink: 0;
    width: 100%;
    height: auto
}

.indicator-container {
    gap: 12px;
    margin-top: 48px;
    display: flex
}

.indicator {
    cursor: pointer;
    background: #ffffff4d;
    border: none;
    border-radius: 999px;
    width: 10px;
    height: 10px;
    padding: 0;
    transition: background .3s
}

.login-section {
    background: #fff;
    grid-column: span 5;
    justify-content: center;
    align-items: center;
    padding: 60px 0;
    display: flex
}

.login-content {
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 0 40px;
    display: flex
}

.login-logo {
    text-align: center;
    justify-content: center;
    align-items: center;
    margin-bottom: 12px;
    display: flex
}

.logo-image {
    width: auto;
    height: 28px
}

.login-subtitle {
    text-align: center;
    color: #333;
    margin: 0 0 40px;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.5
}

.login-form {
    flex-direction: column;
    width: 380px;
    margin: 0 auto;
    display: flex
}

.form-label {
    color: #333;
    margin-bottom: 8px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    display: block
}

.form-input {
    color: #333;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    width: 100%;
    height: 48px;
    padding: 0 16px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    transition: border-color .2s
}

.form-input:focus {
    border-color: #2563eb;
    outline: none
}

.form-checkbox {
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
    display: flex
}

.form-checkbox input[type=checkbox] {
    cursor: pointer;
    appearance: none;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 3px;
    width: 18px;
    height: 18px;
    margin: 0;
    position: relative
}

.form-checkbox input[type=checkbox]:checked:after {
    content: "";
    border: 2px solid #fff;
    border-width: 0 2px 2px 0;
    width: 4px;
    height: 8px;
    position: absolute;
    top: 2px;
    left: 5px;
    transform: rotate(45deg)
}

.form-checkbox label {
    color: #666;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4
}

.login-button {
    color: #fff;
    cursor: pointer;
    background: #0954ef;
    border: none;
    border-radius: 8px;
    width: 100%;
    height: 48px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    transition: background .2s
}

@media(width<=1024px) {
    .login-page {
        grid-template-columns: 1fr
    }

    .banner-section,
    .login-section {
        grid-column: span 1;
        min-height: 50vh
    }

    .banner-content {
        max-width: 90%
    }

    .banner-image-container {
        width: 80%
    }

    .banner-image {
        aspect-ratio: 5 / 3.45;
        height: auto
    }
}

@property --tw-rotate-x {
    syntax: "*";
    inherits: false;
    initial-value: rotateX(0);
}

@property --tw-rotate-y {
    syntax: "*";
    inherits: false;
    initial-value: rotateY(0);
}

@property --tw-rotate-z {
    syntax: "*";
    inherits: false;
    initial-value: rotateZ(0);
}

@property --tw-skew-x {
    syntax: "*";
    inherits: false;
    initial-value: skewX(0);
}

@property --tw-skew-y {
    syntax: "*";
    inherits: false;
    initial-value: skewY(0);
}

@property --tw-ease {
    syntax: "*";
    inherits: false
}

@custom-variant dark (&:is(.dark *));

:root {
    --font-size: 16px;
    --background: #ffffff;
    --foreground: oklch(.145 0 0);
    --card: #ffffff;
    --card-foreground: oklch(.145 0 0);
    --popover: oklch(1 0 0);
    --popover-foreground: oklch(.145 0 0);
    --primary: #030213;
    --primary-foreground: oklch(1 0 0);
    --secondary: oklch(.95 .0058 264.53);
    --secondary-foreground: #030213;
    --muted: #ececf0;
    --muted-foreground: #717182;
    --accent: #e9ebef;
    --accent-foreground: #030213;
    --destructive: #d4183d;
    --destructive-foreground: #ffffff;
    --border: rgba(0, 0, 0, .1);
    --input: transparent;
    --input-background: #f3f3f5;
    --switch-background: #cbced4;
    --font-weight-medium: 500;
    --font-weight-normal: 400;
    --ring: oklch(.708 0 0);
    --chart-1: oklch(.646 .222 41.116);
    --chart-2: oklch(.6 .118 184.704);
    --chart-3: oklch(.398 .07 227.392);
    --chart-4: oklch(.828 .189 84.429);
    --chart-5: oklch(.769 .188 70.08);
    --radius: .625rem;
    --sidebar: oklch(.985 0 0);
    --sidebar-foreground: oklch(.145 0 0);
    --sidebar-primary: #030213;
    --sidebar-primary-foreground: oklch(.985 0 0);
    --sidebar-accent: oklch(.97 0 0);
    --sidebar-accent-foreground: oklch(.205 0 0);
    --sidebar-border: oklch(.922 0 0);
    --sidebar-ring: oklch(.708 0 0)
}

.dark {
    --background: oklch(.145 0 0);
    --foreground: oklch(.985 0 0);
    --card: oklch(.145 0 0);
    --card-foreground: oklch(.985 0 0);
    --popover: oklch(.145 0 0);
    --popover-foreground: oklch(.985 0 0);
    --primary: oklch(.985 0 0);
    --primary-foreground: oklch(.205 0 0);
    --secondary: oklch(.269 0 0);
    --secondary-foreground: oklch(.985 0 0);
    --muted: oklch(.269 0 0);
    --muted-foreground: oklch(.708 0 0);
    --accent: oklch(.269 0 0);
    --accent-foreground: oklch(.985 0 0);
    --destructive: oklch(.396 .141 25.723);
    --destructive-foreground: oklch(.637 .237 25.331);
    --border: oklch(.269 0 0);
    --input: oklch(.269 0 0);
    --ring: oklch(.439 0 0);
    --font-weight-medium: 500;
    --font-weight-normal: 400;
    --chart-1: oklch(.488 .243 264.376);
    --chart-2: oklch(.696 .17 162.48);
    --chart-3: oklch(.769 .188 70.08);
    --chart-4: oklch(.627 .265 303.9);
    --chart-5: oklch(.645 .246 16.439);
    --sidebar: oklch(.205 0 0);
    --sidebar-foreground: oklch(.985 0 0);
    --sidebar-primary: oklch(.488 .243 264.376);
    --sidebar-primary-foreground: oklch(.985 0 0);
    --sidebar-accent: oklch(.269 0 0);
    --sidebar-accent-foreground: oklch(.985 0 0);
    --sidebar-border: oklch(.269 0 0);
    --sidebar-ring: oklch(.439 0 0)
}

@theme inline {
    --color-background: var(--background);
    --color-foreground: var(--foreground);
    --color-card: var(--card);
    --color-card-foreground: var(--card-foreground);
    --color-popover: var(--popover);
    --color-popover-foreground: var(--popover-foreground);
    --color-primary: var(--primary);
    --color-primary-foreground: var(--primary-foreground);
    --color-secondary: var(--secondary);
    --color-secondary-foreground: var(--secondary-foreground);
    --color-muted: var(--muted);
    --color-muted-foreground: var(--muted-foreground);
    --color-accent: var(--accent);
    --color-accent-foreground: var(--accent-foreground);
    --color-destructive: var(--destructive);
    --color-destructive-foreground: var(--destructive-foreground);
    --color-border: var(--border);
    --color-input: var(--input);
    --color-input-background: var(--input-background);
    --color-switch-background: var(--switch-background);
    --color-ring: var(--ring);
    --color-chart-1: var(--chart-1);
    --color-chart-2: var(--chart-2);
    --color-chart-3: var(--chart-3);
    --color-chart-4: var(--chart-4);
    --color-chart-5: var(--chart-5);
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
    --color-sidebar: var(--sidebar);
    --color-sidebar-foreground: var(--sidebar-foreground);
    --color-sidebar-primary: var(--sidebar-primary);
    --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
    --color-sidebar-accent: var(--sidebar-accent);
    --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
    --color-sidebar-border: var(--sidebar-border);
    --color-sidebar-ring: var(--sidebar-ring);
}

@layer base {
    * {
        @apply border-border outline-ring/50;
    }

    body {
        @apply bg-background text-foreground;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale
    }
}

@layer base {
    :where(:not(:has([class*=" text-"]), :not(:has([class^=text-])))) {
        h1 {
            font-size: var(--text-2xl);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        h2 {
            font-size: var(--text-xl);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        h3 {
            font-size: var(--text-lg);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        h4 {
            font-size: var(--text-base);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        p {
            font-size: var(--text-base);
            font-weight: var(--font-weight-normal);
            line-height: 1.5
        }

        label,
        button {
            font-size: var(--text-base);
            font-weight: var(--font-weight-medium);
            line-height: 1.5
        }

        input {
            font-size: var(--text-base);
            font-weight: var(--font-weight-normal);
            line-height: 1.5
        }
    }
}

html {
    font-size: var(--font-size)
}

body {
    font-family: Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif;
    margin: 0;
    padding: 0
}

.login-page {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: 20px;
    min-height: 100vh;
    width: 100%
}

.banner-section {
    grid-column: span 7;
    background: #001858;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 0
}

.banner-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: calc((100% / 12) * 7 - 20px);
    padding: 0 10px
}

.banner-title {
    font-size: 32px;
    font-weight: 600;
    color: #fff;
    text-align: center;
    margin: 0;
    line-height: 1.4
}

.banner-text {
    font-size: 24px;
    font-weight: 400;
    color: #fff;
    text-align: center;
    margin: 8px 0 0;
    line-height: 1.4
}

.banner-button {
    height: 48px;
    padding: 0 16px;
    border-radius: 8px;
    background: transparent;
    border: 1px solid #FFFFFF;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    margin-top: 24px;
    transition: all .2s;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center
}

.banner-button:hover {
    background: #ffffff1a
}

.banner-image-container {
    width: calc(((100vw - 220px) / 12) * 5 + 80px);
    margin-top: 48px;
    position: relative;
    overflow: hidden;
    user-select: none
}

.banner-image-slider {
    display: flex;
    width: 100%
}

.banner-image {
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 3;
    object-fit: cover;
    border-radius: 12px;
    flex-shrink: 0;
    pointer-events: none
}

.indicator-container {
    display: flex;
    gap: 12px;
    margin-top: 48px
}

.indicator {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #ffffff4d;
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background .3s
}

.indicator:hover {
    background: #ffffff80
}

.indicator.active {
    background: #fff
}

.login-section {
    grid-column: span 5;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 0
}

.login-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 40px
}

.login-logo {
    text-align: center;
    margin-bottom: 12px;
    display: flex;
    justify-content: center;
    align-items: center
}

.logo-image {
    height: 28px;
    width: auto
}

.login-subtitle {
    text-align: center;
    font-size: 24px;
    font-weight: 600;
    color: #333;
    margin: 0 0 40px;
    line-height: 1.5
}

.login-form {
    display: flex;
    flex-direction: column;
    width: 380px;
    margin: 0 auto
}

.form-group {
    margin-bottom: 20px
}

.form-label {
    display: block;
    font-size: 16px;
    font-weight: 500;
    color: #333;
    margin-bottom: 8px;
    line-height: 1.4
}

.form-input {
    width: 100%;
    height: 48px;
    padding: 0 16px;
    border: 1px solid #D1D5DB;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 400;
    color: #333;
    background: #fff;
    box-sizing: border-box;
    transition: border-color .2s;
    line-height: 1.5
}

.form-input::placeholder {
    color: #9ca3af
}

.form-input:focus {
    outline: none;
    border-color: #2563eb
}

.form-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px
}

.form-checkbox input[type=checkbox] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    margin: 0;
    background: #fff;
    border: 1px solid #D1D5DB;
    border-radius: 3px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    position: relative
}

.form-checkbox input[type=checkbox]:checked {
    background: #0954ef;
    border-color: #0954ef
}

.form-checkbox input[type=checkbox]:checked:after {
    content: "";
    position: absolute;
    left: 5px;
    top: 2px;
    width: 4px;
    height: 8px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg)
}

.form-checkbox label {
    font-size: 14px;
    font-weight: 400;
    color: #666;
    cursor: pointer;
    user-select: none;
    line-height: 1.4
}

.login-button {
    width: 100%;
    height: 48px;
    background: #0954ef;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: background .2s;
    line-height: 1
}

.login-button:hover {
    background: #0743c6
}

@media(max-width:1024px) {
    .login-page {
        grid-template-columns: 1fr
    }

    .banner-section,
    .login-section {
        grid-column: span 1;
        min-height: 50vh
    }

    .banner-content {
        max-width: 90%
    }

    .banner-image-container {
        width: 80%
    }

    .banner-image {
        height: auto;
        aspect-ratio: 5 / 3.45
    }
}

/* User overrides */
.banner-image {
    border-radius: 0 !important;
}

.banner-image-container {
    border-radius: 20px !important;
}

.banner-content {
    max-width: none !important;
}
