.login-hero {padding: 42px 0;background:linear-gradient(135deg,#f4f8fd 0%,#ffffff 55%,#f7faff 100%);border-bottom: 1px solid #e5ebf2;}
.login-hero-content {max-width: 760px;}
.login-kicker,
.login-small-label {display: inline-block;margin-bottom: 3px;color: #164d84;font-size: 12px;font-weight: 800;letter-spacing: 1.1px;text-transform: uppercase;}
.login-hero h1 {margin: 0 0 10px;color: #11233b;font-size: clamp(34px, 4vw, 46px);line-height: 1.15;}
.login-hero p {max-width: 680px;margin: 0;color: #637084;font-size: 16px;line-height: 1.7;}
.login-section {padding: 48px 0 65px;background: #ffffff;}
.login-layout {display: grid;grid-template-columns:minmax(0, 1fr)minmax(360px, 455px);gap: 55px;align-items: center;}
.login-info {max-width: 610px;}
.login-info h2 {margin: 0 0 12px;color: #15263e;font-size: 32px;line-height: 1.25;}
.login-info > p {margin: 0;color: #697689;font-size: 15px;line-height: 1.7;}
.login-feature-list {display: grid;gap: 15px;margin-top: 26px;}
.login-feature {display: flex;align-items: flex-start;gap: 12px;}
.login-feature-icon {display: grid;place-items: center;width: 32px;height: 32px;flex: 0 0 32px;border-radius: 9px;background: #e9f3fd;color: #0d4c87;font-size: 14px;font-weight: 800;}
.login-feature strong {display: block;margin: 0 0 2px;color: #1c2d44;font-size: 14px;}
.login-feature small {display: block;color: #738094;font-size: 12px;line-height: 1.5;}
.login-card {padding: 26px 30px 28px;background: #ffffff;border: 1px solid #dfe6ee;border-radius: 20px;box-shadow:0 16px 45px rgba(16, 47, 82, 0.08);}
.login-card-header {display: flex;align-items: center;gap: 13px;margin-bottom: 18px;}
.login-card-icon {display: grid;place-items: center;width: 46px;height: 46px;flex: 0 0 46px;border-radius: 12px;background: #0d3f73;color: #ffffff;font-size: 20px;font-weight: 700;}
.login-card-header h2 {margin: 0;color: #17283f;font-size: 24px;line-height: 1.2;}
.login-form {display: grid;gap: 14px;}
.login-form-group {display: grid;gap: 4px;margin: 0;}
.login-form-group label {margin: 0 0 3px;color: #26384d;font-size: 14px;font-weight: 700;line-height: 1.35;}
.login-form-group label span {color: #c0392b;}
.login-form-group select,
.login-form-group input {width: 100%;min-height: 46px;padding: 0 13px;border: 1px solid #cfd8e3;border-radius: 10px;background: #ffffff;color: #1d2d42;font-size: 14px;outline: none;box-sizing: border-box;transition:border-color 0.2s ease,box-shadow 0.2s ease,background-color 0.2s ease;}
.login-form-group select:hover,
.login-form-group input:hover {border-color: #b8c5d4;}
.login-form-group select:focus,
.login-form-group input:focus {border-color: #0d548f;box-shadow:0 0 0 3px rgba(13, 84, 143, 0.10);}
.login-input-wrap {position: relative;width: 100%;}
.login-input-wrap input {padding-left: 42px;padding-right: 44px;}
.login-input-icon {position: absolute;top: 50%;left: 13px;transform: translateY(-50%);color: #7b8899;font-size: 14px;line-height: 1;pointer-events: none;}
.password-toggle {position: absolute;top: 50%;right: 6px;display: grid;place-items: center;width: 34px;height: 34px;padding: 0;transform: translateY(-50%);border: 0;border-radius: 7px;background: transparent;cursor: pointer;transition:background-color 0.2s ease,transform 0.2s ease;}
.password-toggle:hover {background: #f2f6fa;}
.password-toggle:focus-visible {outline: 2px solid #0d548f;outline-offset: 2px;}
.login-extra-links {display: flex;align-items: center;justify-content: space-between;gap: 12px;margin-top: -1px;margin-bottom: 0;}
.login-extra-links a {color: #0d5799;font-size: 13px;font-weight: 700;text-decoration: none;transition:color 0.2s ease;}
.login-extra-links a:hover {color: #083f72;text-decoration: underline;text-underline-offset: 3px;}
.login-submit-btn {display: flex;align-items: center;justify-content: center;gap: 7px;width: 100%;min-height: 47px;margin-top: 2px;padding: 0 18px;border: 0;border-radius: 10px;background: #0d3f73;color: #ffffff;font-size: 15px;font-weight: 800;cursor: pointer;transition:transform 0.2s ease,background-color 0.2s ease,box-shadow 0.2s ease;}
.login-submit-btn:hover {background: #0a335f;box-shadow:0 8px 20px rgba(13, 63, 115, 0.18);transform: translateY(-1px);}
.login-submit-btn:active {transform: translateY(0);}
.login-submit-btn:disabled {opacity: 0.65;cursor: not-allowed;transform: none;box-shadow: none;}
.login-security-note {margin: -2px 0 0;text-align: center;color: #8591a1;font-size: 12px;line-height: 1.45;}
.login-message {margin-bottom: 14px;padding: 11px 13px;border-radius: 9px;font-size: 13px;line-height: 1.5;}
.login-message.is-error {border: 1px solid #f0c6c6;background: #fff5f5;color: #9d2626;}
.login-message.is-success {border: 1px solid #bce4c9;background: #f2fff6;color: #206e3b;}
.is-hidden {display: none !important;}
.login-processing-overlay {position: fixed;z-index: 99999;inset: 0;display: grid;place-items: center;padding: 20px;background:rgba(6, 20, 37, 0.45);backdrop-filter: blur(3px);}
.login-processing-box {display: flex;align-items: center;gap: 12px;padding: 16px 20px;border-radius: 12px;background: #ffffff;color: #1d2b3d;box-shadow:0 18px 50px rgba(0, 0, 0, 0.18);font-size: 14px;font-weight: 700;}
.login-spinner {width: 20px;height: 20px;border: 3px solid #dce5ee;border-top-color: #0d3f73;border-radius: 50%;animation:loginSpin 0.7s linear infinite;}
@keyframes loginSpin {to {transform: rotate(360deg);}}
.login-info,
.login-card {opacity: 0;transform: translateY(16px);transition:opacity 0.5s ease,transform 0.5s ease;}
.login-info.is-visible,
.login-card.is-visible {opacity: 1;transform: translateY(0);}
.login-form-group select:focus-visible,
.login-form-group input:focus-visible,
.login-extra-links a:focus-visible,
.login-submit-btn:focus-visible {outline: 2px solid #0d548f;outline-offset: 2px;}
@media (max-width: 1024px) {.login-layout {gap: 40px;}.login-card {padding: 24px 26px 26px;}}
@media (max-width: 900px) {.login-layout {grid-template-columns: 1fr;gap: 34px;}.login-info {max-width: none;}.login-card {max-width: 560px;width: 100%;margin: 0 auto;}}
@media (max-width: 600px) {.login-hero {padding: 32px 0;}.login-hero h1 {font-size: 31px;}.login-hero p {font-size: 15px;}.login-section {padding: 34px 0 50px;}.login-info h2 {font-size: 26px;}.login-feature-list {margin-top: 22px;}.login-card {padding: 21px 16px 23px;border-radius: 15px;}.login-card-header {gap: 11px;margin-bottom: 16px;}.login-card-icon {width: 42px;height: 42px;flex-basis: 42px;border-radius: 11px;}.login-card-header h2 {font-size: 22px;}.login-form {gap: 13px;}.login-form-group {gap: 3px;}.login-form-group label {margin-bottom: 2px;}.login-form-group select,.login-form-group input {min-height: 45px;font-size: 14px;}.login-extra-links {align-items: flex-start;flex-direction: column;gap: 7px;}.login-submit-btn {min-height: 46px;}}
@media (prefers-reduced-motion: reduce) {.login-info,.login-card,.login-submit-btn,.login-spinner,.password-toggle {opacity: 1;transform: none;transition: none;animation: none;}}