:root {
    color-scheme: light;
    --ink: #172b4d;
    --muted: #6f8099;
    --blue: #315eea;
    --blue-dark: #2349c9;
}

body {
    min-width: 320px;
    min-height: 100vh;
    margin: 0;
    background: #f3f6fb;
    color: var(--ink);
    font-family: Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
}

.login-shell {
    display: grid;
    grid-template-columns: minmax(360px, 0.88fr) minmax(420px, 1.12fr);
    width: min(1100px, calc(100% - 48px));
    min-height: min(700px, calc(100vh - 80px));
    margin: 40px auto;
    overflow: hidden;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 24px 70px rgb(27 48 86 / 12%);
}

.login-panel {
    align-self: center;
    width: min(100%, 440px);
    margin: auto;
    padding: 64px 56px;
}

.brand-mark {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    margin-bottom: 27px;
    border-radius: 14px;
    background: #e9efff;
    color: var(--blue);
    font-size: 22px;
    font-weight: 800;
}

.eyebrow {
    margin: 0 0 8px;
    color: var(--blue);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .13em;
}

h1, h2 { color: var(--ink); font-weight: 720; letter-spacing: -.035em; }
.login-panel h1 { margin-bottom: 8px; font-size: 34px; }
.intro { margin-bottom: 34px; color: var(--muted); }
.form-label { color: #344563; font-size: 13px; font-weight: 650; }
.form-control { border-color: #dce3ef; border-radius: 10px; }
.form-control:focus, .form-select:focus { border-color: #87a0ff; box-shadow: 0 0 0 .22rem rgb(49 94 234 / 12%); }
.btn-primary { --bs-btn-bg: var(--blue); --bs-btn-border-color: var(--blue); --bs-btn-hover-bg: var(--blue-dark); --bs-btn-hover-border-color: var(--blue-dark); border-radius: 10px; font-weight: 650; }
.security-note { margin: 22px 0 0; color: #8795aa; font-size: 12px; text-align: center; }

.login-aside {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 100%;
    padding: 64px;
    overflow: hidden;
    background: radial-gradient(ellipse at 82% 17%, rgb(91 133 255 / 75%), transparent 37%), linear-gradient(145deg, #172b58 0%, #2448a2 58%, #315eea 100%);
    color: #fff;
}

.login-aside::before, .login-aside::after { position: absolute; content: ""; border: 1px solid rgb(255 255 255 / 13%); border-radius: 50%; }
.login-aside::before { width: 460px; height: 460px; right: -185px; bottom: -200px; }
.login-aside::after { width: 330px; height: 330px; right: -115px; bottom: -132px; }
.aside-content, .aside-footer { position: relative; z-index: 1; }
.aside-tag { display: inline-block; margin-bottom: 24px; color: #c9d7ff; font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.login-aside h2 { margin-bottom: 18px; color: #fff; font-size: clamp(34px, 4vw, 48px); line-height: 1.12; }
.login-aside p { max-width: 340px; margin: 0; color: #d6e0ff; line-height: 1.7; }
.aside-footer { position: absolute; bottom: 35px; color: #d6e0ff; font-size: 12px; }
.modal-content { border: 0; border-radius: 18px; box-shadow: 0 20px 60px rgb(27 48 86 / 18%); }
.modal-header, .modal-body, .modal-footer { padding-right: 26px; padding-left: 26px; }
.modal-header { padding-top: 26px; }
.modal-footer { padding-bottom: 24px; }

@media (max-width: 760px) {
    .login-shell { display: block; width: min(500px, calc(100% - 28px)); min-height: auto; margin: 14px auto; border-radius: 18px; }
    .login-panel { padding: 36px 28px 30px; }
    .brand-mark { margin-bottom: 20px; }
    .login-aside { min-height: 190px; padding: 28px; }
    .login-aside h2 { margin-bottom: 8px; font-size: 26px; }
    .login-aside p { font-size: 13px; }
    .aside-tag { margin-bottom: 12px; }
    .aside-footer { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
