/* Login page: brand panel on the left, form on the right; one column on phones */
.auth-page { margin: 0; min-height: 100vh; background: #fff; color: var(--text); }
.auth { display: flex; min-height: 100vh; }

/* Brand panel */
.auth-brand {
    position: relative; overflow: hidden; flex: 0 0 46%; display: flex; flex-direction: column; justify-content: flex-start;
    padding: 40px 48px; color: #fff; align-items: center;
    background: radial-gradient(1200px 600px at -10% -10%, rgba(236, 72, 153, .35), transparent 60%),
                radial-gradient(900px 500px at 110% 110%, rgba(6, 182, 212, .30), transparent 60%),
                linear-gradient(160deg, #1e1b4b 0%, #312e81 45%, #0b1120 100%);
}
.auth-brand::before { /* faint grid */
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
    background-size: 40px 40px;
    -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%); mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
}
.auth-brand > * { position: relative; width: 100%; max-width: 440px; } /* content block centered in the panel, text left aligned */
.auth-logo { font-size: 22px; }
.auth-brand > .auth-logo { width: auto; max-width: none; align-self: flex-start; } /* top left corner of the panel */
.auth-brand > .auth-copy { max-width: none; text-align: center; margin-top: auto; }
.auth-headline { max-width: 440px; text-align: center; margin: auto 0 36px; } /* headline + charts form one block, vertically centered */
.auth-headline h2 { font-size: 34px; line-height: 1.2; font-weight: 700; letter-spacing: -.8px; margin-bottom: 14px; color: #fff; }
.auth-headline p { color: rgba(255, 255, 255, .65); font-size: 14px; margin-bottom: 0; }
.auth-features { list-style: none; padding: 0; margin: 0; }
.auth-features li { display: flex; align-items: center; margin-bottom: 12px; color: rgba(255, 255, 255, .85); font-size: 14px; }
.auth-features i { width: 30px; height: 30px; border-radius: 9px; margin-right: 12px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .1); font-size: 13px; }

/* Small glass cards with decorative charts (not real data) */
.auth-brand > .auth-previews { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 340px; }
.auth-preview {
    padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .08); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    box-shadow: 0 20px 40px -24px rgba(0, 0, 0, .5);
}
.auth-preview-wide { grid-column: 1 / -1; }
.auth-preview svg { display: block; width: 100%; height: 64px; }
.auth-copy { font-size: 12px; color: rgba(255, 255, 255, .45); }

/* Form side */
.auth-main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 24px; background: #fff; }
.auth-form { width: 100%; max-width: 350px; }
.auth-logo-mobile { display: none; color: var(--ink) !important; font-size: 20px; margin-bottom: 32px; }
.auth-title { font-size: 25px; font-weight: 700; letter-spacing: -.6px; color: var(--ink); margin-bottom: 6px; }
.auth-subtitle { color: #64748b; font-size: 14px; margin-bottom: 24px; }
.auth-form label { font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 6px; }

.auth-field { position: relative; }
.auth-field > .auth-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; transition: color .15s; }
.auth-field .form-control {
    height: 44px; padding-left: 40px; border-radius: 12px; border: 1px solid #e2e8f0; background: #f8fafc;
    font-size: 14px; color: var(--ink); transition: border-color .15s, box-shadow .15s, background .15s;
}
.auth-field .form-control::placeholder { color: #94a3b8; }
.auth-field .form-control:focus { background: #fff; border-color: #a5b4fc; box-shadow: 0 0 0 4px rgba(79, 70, 229, .12); }
.auth-field:focus-within > .auth-icon { color: var(--primary); }
.auth-field .form-control.has-toggle { padding-right: 46px; }
.auth-toggle {
    position: absolute; right: 5px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border: 0; border-radius: 9px;
    background: transparent; color: var(--muted); cursor: pointer;
}
.auth-toggle:hover, .auth-toggle:focus { color: var(--primary); background: var(--primary-soft); outline: none; }

.auth-error {
    display: flex; align-items: flex-start; padding: 10px 12px; margin-bottom: 20px; border-radius: 12px;
    background: var(--red-soft); color: #b91c1c; border: 1px solid #fecaca; font-size: 13px;
}
.auth-error i { margin: 2px 8px 0 0; }

.auth-submit {
    width: 100%; height: 44px; border: 0; border-radius: 12px; margin-top: 8px; font-weight: 600; font-size: 14px; color: #fff;
    background: linear-gradient(135deg, #6366f1, var(--primary)); box-shadow: 0 10px 24px -10px rgba(79, 70, 229, .7);
    transition: transform .15s, box-shadow .15s, opacity .15s;
}
.auth-submit:hover { transform: translateY(-1px); box-shadow: 0 14px 28px -12px rgba(79, 70, 229, .8); color: #fff; }
.auth-submit:active { transform: none; }
.auth-submit:disabled { opacity: .75; transform: none; }

@media (max-width: 1199.98px) {
    .auth-brand { flex-basis: 42%; padding: 32px; }
    .auth-headline h2 { font-size: 28px; }
}
@media (max-width: 991.98px) {
    .auth-brand > .auth-previews { display: none; }
}
@media (max-width: 767.98px) {
    .auth-brand { display: none; }
    .auth-main { align-items: flex-start; padding: 48px 16px; }
    .auth-logo-mobile { display: inline-flex; }
    .auth-title { font-size: 24px; }
}
