:root {
    --auth-blue: #2563eb;
    --auth-blue-dark: #1849bc;
    --auth-navy: #0c1837;
    --auth-text: #132342;
    --auth-muted: #74829a;
    --auth-border: #dce4ef;
    --auth-error: #dc3545;
}

* { box-sizing: border-box; }

.auth-body {
    margin: 0;
    min-height: 100vh;
    color: var(--auth-text);
    background: #fff;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

.auth-main, .auth-shell { min-height: 100vh; }
.auth-shell { display: grid; grid-template-columns: minmax(460px, 1fr) minmax(600px, 1fr); }

.auth-form-panel {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 58px clamp(40px, 6vw, 100px);
    background: #fff;
}

.auth-form-wrap { width: 100%; max-width: 500px; }
.back-link { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 42px; color: #718097; font-size: 14px; font-weight: 550; text-decoration: none; transition: color .2s ease; }
.back-link:hover { color: var(--auth-blue); }
.back-link i { font-size: 12px; }
.mobile-brand { display: none; }
.auth-form-wrap h1 { margin: 0 0 11px; color: #0e1b38; font-size: clamp(38px, 4vw, 48px); font-weight: 900; line-height: 1.08; letter-spacing: -.055em; }
.auth-form-sub { margin: 0 0 37px; color: var(--auth-muted); font-size: 16px; line-height: 1.7; }
.auth-alert { display: flex; align-items: center; gap: 9px; margin-bottom: 22px; border: 0; border-radius: 10px; font-size: 13px; }

.auth-field { margin-bottom: 22px; }
.auth-field label { display: block; margin: 0 0 8px; color: #263b64; font-size: 13px; font-weight: 700; }
.field-label-row { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.helper-text { margin-bottom: 8px; color: #9aa5b6; font-size: 10px; }
.field-control { min-height: 58px; display: flex; align-items: center; overflow: hidden; border: 1px solid var(--auth-border); border-radius: 11px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.field-control:focus-within { border-color: var(--auth-blue); box-shadow: 0 0 0 4px rgba(37, 99, 235, .09); }
.field-control.has-error { border-color: var(--auth-error); }
.field-control > i { flex: 0 0 auto; margin-left: 18px; color: #9aa6b8; font-size: 16px; }
.field-control input { min-width: 0; flex: 1; height: 56px; padding: 0 15px; border: 0; outline: 0; color: var(--auth-text); background: transparent; font-size: 14px; }
.field-control input::placeholder { color: #a2adbe; }
.field-control button { flex: 0 0 auto; height: 56px; width: 52px; border: 0; color: #8693a8; background: transparent; cursor: pointer; }
.field-control button:hover { color: var(--auth-blue); }
.field-error { margin-top: 6px; color: var(--auth-error); font-size: 11px; }

.remember-check { width: max-content; display: flex; align-items: center; gap: 8px; margin: 4px 0 25px; color: #56647a; font-size: 12px; cursor: pointer; }
.remember-check input { width: 15px; height: 15px; margin: 0; accent-color: var(--auth-blue); }
.auth-submit { width: 100%; min-height: 57px; display: flex; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 11px; color: #fff; background: var(--auth-blue); box-shadow: 0 12px 25px rgba(37,99,235,.22); font-size: 14px; font-weight: 750; cursor: pointer; transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.auth-submit:hover { transform: translateY(-1px); background: var(--auth-blue-dark); box-shadow: 0 16px 28px rgba(37,99,235,.28); }
.auth-submit span { font-size: 18px; }
.auth-help { display: flex; justify-content: center; gap: 5px; margin-top: 25px; color: #7f8b9e; font-size: 12px; }
.auth-help a { color: var(--auth-blue); font-weight: 700; text-decoration: none; }
.auth-help a:hover { text-decoration: underline; }
.auth-legal { max-width: 410px; margin: 38px auto 0; color: #a2acbb; font-size: 10px; line-height: 1.65; text-align: center; }

.auth-showcase { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 100vh; padding: 30px clamp(38px, 4vw, 68px) 0; color: #fff; background: radial-gradient(circle at 55% 28%, #203f94 0, #102359 29%, #091735 67%, #071128 100%); }
.showcase-pattern { position: absolute; inset: 0; opacity: .15; pointer-events: none; background-image: radial-gradient(rgba(132,171,255,.8) 1px, transparent 1px); background-size: 25px 25px; mask-image: linear-gradient(135deg, transparent 5%, #000 50%, transparent 94%); }
.auth-showcase::before { content: ""; position: absolute; width: 520px; height: 520px; top: -270px; right: -220px; border: 1px solid rgba(133,166,255,.1); border-radius: 50%; box-shadow: 0 0 0 90px rgba(111,148,255,.025), 0 0 0 180px rgba(111,148,255,.018); }
.showcase-brand { position: relative; display: flex; justify-content: center; align-items: center; gap: 10px; font-size: 19px; font-weight: 800; letter-spacing: -.4px; }
.showcase-brand > span:last-child > span { color: #83a9ff; }
.auth-brand-mark { display: inline-flex; align-items: flex-end; justify-content: center; gap: 2px; width: 35px; height: 35px; padding: 8px; border-radius: 10px; color: #fff; background: var(--auth-blue); box-shadow: 0 10px 22px rgba(32,91,229,.35); }
.auth-brand-mark > span { width: 3px; border-radius: 3px; background: currentColor; transform: rotate(28deg); }
.auth-brand-mark > span:nth-child(1) { height: 6px; }.auth-brand-mark > span:nth-child(2) { height: 11px; }.auth-brand-mark > span:nth-child(3) { height: 17px; }
.showcase-heading { position: relative; max-width: 630px; margin: 40px auto 30px; text-align: center; }
.showcase-kicker { color: #7fa8ff; font-size: 9px; font-weight: 800; letter-spacing: .18em; }
.showcase-heading h2 { margin: 13px 0 10px; font-size: clamp(34px, 3.1vw, 52px); font-weight: 900; line-height: 1.08; letter-spacing: -.055em; }
.showcase-heading h2 span { color: #a9c3ff; }
.showcase-heading p { max-width: 510px; margin: 0 auto; color: #aabbdc; font-size: 13px; line-height: 1.65; }

.showcase-window { position: relative; z-index: 2; width: min(960px, 118%); min-height: 480px; margin: 10px auto -20px; overflow: hidden; border: 1px solid rgba(255,255,255,.5); border-radius: 16px 16px 0 0; color: var(--auth-text); background: #fff; box-shadow: 0 35px 70px rgba(0,0,0,.42); }
.window-top { height: 37px; display: flex; align-items: center; gap: 5px; padding: 0 13px; border-bottom: 1px solid #e8edf4; color: #8793a5; font-size: 7px; }
.window-top > i { width: 6px; height: 6px; border-radius: 50%; background: #ff7165; }.window-top > i:nth-child(2) { background: #ffbf4a; }.window-top > i:nth-child(3) { background: #4fc875; }
.window-top > span { flex: 1; text-align: center; }.window-top > b { letter-spacing: 2px; }
.window-body { min-height: 443px; display: grid; grid-template-columns: 145px 1fr; }
.mock-sidebar { padding: 20px 12px; border-right: 1px solid #e7edf5; background: #fbfcfe; }
.mock-logo { display: flex; align-items: center; gap: 6px; margin: 0 7px 23px; font-size: 8px; font-weight: 800; }.mock-logo .auth-brand-mark { width: 21px; height: 21px; padding: 5px; border-radius: 6px; }.mock-logo .auth-brand-mark > span { width: 2px; }.mock-logo .auth-brand-mark > span:nth-child(1) { height: 4px; }.mock-logo .auth-brand-mark > span:nth-child(2) { height: 7px; }.mock-logo .auth-brand-mark > span:nth-child(3) { height: 10px; }
.mock-sidebar > small { display: block; margin: 12px 10px 6px; color: #a0abba; font-size: 5px; font-weight: 800; letter-spacing: .14em; }
.mock-sidebar > span { display: flex; align-items: center; gap: 7px; margin: 2px 0; padding: 7px 9px; border-radius: 6px; color: #718097; font-size: 7px; font-weight: 600; }.mock-sidebar > span i { width: 12px; color: #8e9bad; font-size: 9px; font-style: normal; text-align: center; }.mock-sidebar > span.active { color: var(--auth-blue); background: #eaf1ff; }.mock-sidebar > span.active i { color: var(--auth-blue); }
.mock-content { padding: 24px; background: #f7f9fc; }
.mock-head { display: flex; justify-content: space-between; align-items: center; }.mock-head small, .mock-head strong { display: block; }.mock-head small { color: #8692a6; font-size: 6px; }.mock-head strong { margin-top: 2px; font-size: 15px; letter-spacing: -.03em; }.mock-head button { padding: 8px 10px; border: 0; border-radius: 6px; color: #fff; background: var(--auth-blue); font-size: 6px; font-weight: 700; }
.mock-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 16px; }.mock-metrics article { position: relative; padding: 14px; border: 1px solid #e5eaf2; border-radius: 8px; background: #fff; }.mock-metrics span, .mock-metrics strong { display: block; }.mock-metrics span { color: #8894a7; font-size: 6px; }.mock-metrics strong { margin-top: 3px; font-size: 12px; }.mock-metrics em { position: absolute; right: 12px; bottom: 14px; color: #0da778; font-size: 5px; font-style: normal; }.mock-metrics em.neutral { color: #8490a2; }
.mock-chart-card { min-height: 235px; margin-top: 10px; padding: 16px; border: 1px solid #e5eaf2; border-radius: 8px; background: #fff; }.chart-title { display: flex; justify-content: space-between; align-items: flex-start; }.chart-title span, .chart-title strong { display: block; }.chart-title span { color: #8995a8; font-size: 6px; }.chart-title strong { margin-top: 2px; font-size: 8px; }.chart-title small { color: #8995a8; font-size: 5px; }.chart-title small i { display: inline-block; width: 5px; height: 5px; margin-right: 2px; border-radius: 50%; background: var(--auth-blue); }.chart-title small i:nth-child(2) { background: #d3ddeb; }
.mock-chart { position: relative; height: 170px; margin-top: 10px; }.grid-lines { position: absolute; inset: 0 0 17px; display: flex; flex-direction: column; justify-content: space-between; }.grid-lines i { border-top: 1px dashed #e8edf4; }.mock-bars { position: absolute; inset: 0; display: flex; justify-content: space-around; align-items: flex-end; gap: 12px; }.mock-bars > span { position: relative; width: 35px; height: calc(100% - 17px); display: flex; justify-content: center; align-items: flex-end; gap: 3px; }.mock-bars i, .mock-bars b { width: 9px; border-radius: 4px 4px 1px 1px; background: var(--auth-blue); }.mock-bars b { background: #d6dfec; }.mock-bars small { position: absolute; bottom: -15px; color: #8c97a8; font-size: 5px; }
.showcase-badge { position: absolute; z-index: 3; right: 34px; bottom: 26px; display: flex; align-items: center; gap: 9px; padding: 12px 15px; border: 1px solid rgba(255,255,255,.55); border-radius: 12px; color: var(--auth-text); background: rgba(255,255,255,.94); box-shadow: 0 17px 35px rgba(0,0,0,.23); backdrop-filter: blur(12px); }.showcase-badge > i { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 8px; color: #0b9b70; background: #e1f8ef; }.showcase-badge b, .showcase-badge small { display: block; }.showcase-badge b { font-size: 8px; }.showcase-badge small { color: #8792a4; font-size: 6px; }

@media (max-width: 1180px) {
    .auth-shell { grid-template-columns: minmax(430px, .85fr) minmax(560px, 1.15fr); }
    .auth-form-panel { padding-inline: 48px; }
    .showcase-window { width: 112%; }
}

@media (max-width: 900px) {
    .auth-shell { display: block; }.auth-showcase { display: none; }
    .auth-form-panel { min-height: 100vh; padding: 38px 24px; }
    .auth-form-wrap { max-width: 480px; }
    .back-link { margin-bottom: 32px; }.mobile-brand { display: flex; align-items: center; gap: 9px; margin-bottom: 38px; font-size: 18px; font-weight: 800; }.mobile-brand > span:last-child > span { color: var(--auth-blue); }.mobile-brand .auth-brand-mark { width: 31px; height: 31px; padding: 7px; }
}

@media (max-width: 520px) {
    .auth-form-panel { align-items: flex-start; padding: 27px 20px 35px; }
    .back-link { margin-bottom: 24px; }.mobile-brand { margin-bottom: 30px; }
    .auth-form-wrap h1 { font-size: 36px; }.auth-form-sub { margin-bottom: 29px; font-size: 14px; }
    .field-label-row { display: block; }.helper-text { display: none; }.field-control { min-height: 55px; }.field-control input, .field-control button { height: 53px; }
    .auth-help { flex-direction: column; align-items: center; gap: 1px; }.auth-legal { margin-top: 27px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition-duration: .01ms !important; }
}
