/* Scoped refinements for the sign-in page. */
.signin-page.login-block {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100svh;
    margin: 0;
    padding: 36px 20px;
    background: transparent;
}
.signin-shell { width: 100%; max-width: 440px; }
.signin-brand { margin-bottom: 24px; text-align: center; }
.signin-brand img { display: inline-block; width: 112px; height: 112px; object-fit: contain; }
.signin-page .signin-card {
    width: 100%;
    max-width: none;
    margin: 0;
    border-radius: 20px !important;
}
.signin-page .signin-card .card-block { padding: 36px 36px 30px !important; }
.signin-heading { margin-bottom: 30px; text-align: center; }
.signin-heading h1 {
    margin: 0 0 10px;
    color: #170d46;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.7px;
}
.signin-heading p { margin: 0; color: #737082; font-size: 14px; line-height: 1.6; }
.signin-page .signin-field { margin-bottom: 22px; }
.signin-field > label {
    display: block;
    margin-bottom: 9px;
    color: #353044;
    font-size: 13px;
    font-weight: 700;
}
.signin-input { position: relative; }
.signin-input > .feather {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 16px;
    color: #8b859c;
    font-size: 17px;
    transform: translateY(-50%);
    pointer-events: none;
}
.signin-page .signin-input .form-control {
    height: 50px;
    padding: 12px 15px 12px 44px !important;
    border: 1px solid #e1deea !important;
    border-radius: 10px !important;
    background-color: #fcfbfe !important;
    color: #292237;
    font-size: 14px;
    line-height: 24px;
    box-shadow: none !important;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}
.signin-input .form-control::placeholder { color: #9690a2; opacity: 1; }
.signin-page .signin-input .form-control:focus {
    border-color: #7e65b3 !important;
    background-color: #fff !important;
    box-shadow: 0 0 0 3px rgba(93, 62, 158, 0.12) !important;
}
.signin-page .signin-input .form-control.is-invalid,
.signin-page .signin-input .form-control.error { border-color: #d54343 !important; }
.signin-page .signin-input-password .form-control { padding-right: 52px !important; background-image: none; }
.signin-password-toggle {
    position: absolute;
    top: 3px;
    right: 4px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #81788f;
    font-size: 18px;
    cursor: pointer;
}
.signin-password-toggle:hover { background: #efebf6; color: #352078; }
.signin-password-toggle:focus-visible,
.signin-register a:focus-visible { outline: 2px solid #7e65b3; outline-offset: 2px; }
.signin-page .signin-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 50px;
    margin-top: 28px;
    margin-bottom: 0;
    border: 0 !important;
    border-radius: 10px !important;
    background: #ff4b43 !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 700;
    letter-spacing: 0.5px;
    box-shadow: 0 7px 18px rgba(255, 75, 67, 0.2) !important;
    transition: background 160ms ease, box-shadow 160ms ease;
}
.signin-page .signin-submit:hover {
    background: #ed3e37 !important;
    box-shadow: 0 9px 22px rgba(255, 75, 67, 0.28) !important;
}
.signin-page .signin-submit:focus-visible { outline: 3px solid #7e65b3; outline-offset: 3px; }
.signin-register {
    margin: 26px 0 0;
    padding-top: 22px;
    border-top: 1px solid #efedf4;
    color: #777080;
    font-size: 13px;
    line-height: 1.8;
    text-align: center;
}
.signin-register a { display: inline-block; color: #573797; font-weight: 700; }
.signin-register a:hover { color: #352078; text-decoration: underline; }
.signin-page .error,
.signin-page .invalid-feedback {
    display: block;
    margin: 7px 0 0;
    color: #bc303b;
    font-size: 12px;
    line-height: 1.5;
}
.signin-page .alert { font-size: 13px; line-height: 1.6; }
@media (max-width: 480px) {
    .signin-page.login-block { padding: 24px 16px; }
    .signin-brand { margin-bottom: 20px; }
    .signin-brand img { width: 90px; height: 90px; }
    .signin-page .signin-card .card-block { padding: 30px 24px 26px !important; }
    .signin-page .signin-input .form-control { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .signin-page * { transition: none !important; }
}
