body.auth-mode { background: #f6f8fc; }
.auth-shell { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: 24px; background: linear-gradient(135deg, #f8fbff 0%, #f2f7ff 58%, #eefbf9 100%); }
.auth-panel { width: min(420px, 100%); padding: 38px; border: 1px solid #e4eaf2; border-radius: 8px; background: #fff; box-shadow: 0 22px 70px rgba(33, 61, 95, .12); animation: auth-in .32s ease both; }
.auth-panel h1 { margin: 0 0 8px; color: #14213d; font-size: 28px; font-weight: 780; }
.auth-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 34px; color: #14213d; font-size: 18px; font-weight: 780; }
.auth-brand img { width: 48px; height: 48px; object-fit: contain; }
.auth-product { display: block; margin-top: 3px; color: #8290a4; font-size: 12px; font-weight: 600; }
.auth-caption { margin: 0 0 26px; color: #79869a; font-size: 14px; }
.auth-form { display: grid; gap: 17px; }
.auth-form label { display: grid; gap: 8px; color: #526176; font-size: 13px; font-weight: 700; }
.auth-form input { min-height: 47px; background: #fbfcfe; }
.auth-form input:focus { background: #fff; }
.auth-form .button { width: 100%; margin-top: 5px; }
.auth-options { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.check-label { display: flex !important; grid-auto-flow: column; grid-auto-columns: max-content; align-items: center; gap: 7px !important; color: #7b8799 !important; font-weight: 600 !important; }
.check-label input { width: 15px; min-height: 15px; accent-color: #2f6bff; }
.text-button { padding: 0; border: 0; color: #2463df; background: transparent; font-size: 13px; cursor: pointer; }
.text-button:hover { color: #124bc0; text-decoration: underline; }
.auth-footnote { margin: 25px 0 0; color: #9ba6b6; text-align: center; font-size: 11px; }
.form-error { padding: 10px 12px; border: 1px solid #f4cccc; border-radius: 6px; color: #b23e4b; background: #fff5f5; font-size: 13px; line-height: 1.5; }
.form-error.success { border-color: #c5e8d6; color: #237553; background: #f1fbf6; }
.recovery-help { margin-top: 22px; color: #758197; font-size: 12px; line-height: 1.7; }
.recovery-help summary { cursor: pointer; color: #3567c4; }
.recovery-help code { display: block; padding: 10px; overflow-wrap: anywhere; color: #47566d; background: #f5f7fb; }
.boot-state { display: none; }
@keyframes auth-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 520px) { .auth-shell { padding: 16px; } .auth-panel { padding: 28px 22px; } }
