:root { font-family: "Segoe UI", system-ui, sans-serif; color: #172943; }
* { box-sizing: border-box; }
body { margin: 0; }
.login-page { min-height: 100dvh; display: grid; place-items: center; padding: 24px; background: linear-gradient(135deg,#edf5ff 0%,#f8fbff 56%,#e7f1ff 100%); }
.login-card { width: min(100%,420px); padding: 42px 36px; border-radius: 24px; background: #fff; box-shadow: 0 16px 48px #9f9f9f55; }
.login-brand { display: flex; justify-content: center; align-items: center; width: 100%; margin-bottom: 26px; }
.login-brand img { display: block; width: min(100%, 310px); max-height: 135px; height: auto; object-fit: contain; }
.login-brand span { color: #132b50; }
.login-card h1 { margin: 0; font-size: 30px; }
.login-subtitle { margin: 9px 0 30px; color: #69788e; font-size: 14px; }
.login-field { margin-bottom: 20px; }
.login-field label { display: block; margin-bottom: 9px; font-weight: 600; font-size: 13px; }
.login-field input { display: block; width: 100%; height: 47px; border: 1px solid #cfd9e8; border-radius: 11px; padding: 0 14px; font: inherit; font-size: 14px; outline: none; transition: border-color .15s,box-shadow .15s; }
.login-field input:focus { border-color: #2773db; box-shadow: 0 0 0 3px #2773db1a; }
.login-password { position: relative; }
.login-password input { padding-right: 52px; }
.login-password input::-ms-reveal,.login-password input::-ms-clear { display: none; }
.login-password input::-webkit-credentials-auto-fill-button { visibility: hidden; }
.login-eye { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: #71819a; width: 38px; height: 38px; display: grid; place-items: center; cursor: pointer; }
.login-eye svg { width: 20px; height: 20px; }
.eye-closed { display: none; }
.login-eye.is-visible .eye-open { display: none; }
.login-eye.is-visible .eye-closed { display: block; }
.login-submit { width: 100%; height: 48px; border: 0; border-radius: 11px; background: #1768d1; color: #fff; font: inherit; font-weight: 700; cursor: pointer; margin-top: 8px; }
.login-submit:hover { background: #0c55b5; }
.login-submit.is-processing { pointer-events: none; cursor: not-allowed; opacity: .7; }
.login-errors { display: none; color: #b42318; background: #fff2f0; border-radius: 9px; padding: 11px 13px; margin-bottom: 17px; font-size: 13px; }
.login-errors.is-visible { display: block; }
.login-loading { position: fixed; inset: 0; z-index: 1000; background: #f5f9ffed; display: none; place-items: center; text-align: center; }
.login-loading.is-visible { display: grid; }
.login-loading-content { padding: 30px; }
.login-loading-content strong { display: block; font-size: 17px; }
.login-loading-content p { color: #69788e; font-size: 13px; }
.login-spinner { width: 42px; height: 42px; border: 3px solid #d6e6ff; border-top-color: #1768d1; border-radius: 50%; margin: 0 auto 20px; animation: login-spin .8s linear infinite; }
@keyframes login-spin { to { transform: rotate(360deg); } }
@media (max-width: 480px) { .login-card { padding: 34px 24px; border-radius: 20px; } }
@media (prefers-reduced-motion: reduce) { .login-spinner { animation-duration: 1.8s; } }
