/* Shared portal + admin login card (matches /accounts/login/) */
* {
    box-sizing: border-box;
}

body.portal-login-page {
    font-family: Arial, sans-serif;
    margin: 0;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background: radial-gradient(circle at top, #1f2937 0%, #0b1220 50%, #020617 100%) !important;
    padding: 20px;
}

.login-container {
    position: relative;
    width: 380px;
    max-width: 100%;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(18, 44, 81, 0.18);
    background: #ffffff !important;
    border: 1px solid rgba(31, 58, 107, 0.16);
}

.card-top {
    height: 140px;
    background: linear-gradient(180deg, #eef5ff 0%, #dcecff 100%) !important;
}

.card-body {
    background: #ffffff !important;
    padding: 80px 36px 34px;
}

.profile-avatar {
    position: absolute;
    left: 50%;
    top: 140px;
    transform: translate(-50%, -50%);
    width: 108px;
    height: 108px;
    border-radius: 50%;
    background: #ffffff;
    border: 10px solid rgba(255, 255, 255, 0.45);
    box-shadow: 0 0 24px rgba(255, 255, 255, 0.7), 0 10px 22px rgba(13, 39, 75, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

.profile-avatar svg {
    width: 70px;
    height: 70px;
}

.portal-login-page h2 {
    text-align: center;
    margin: 0 0 24px;
    color: #1f3553;
    font-size: 1.35rem;
    letter-spacing: 0.2px;
}

.portal-login-page .admin-login-subtitle {
    text-align: center;
    margin: -12px 0 22px;
    color: #5c6f89;
    font-size: 0.9rem;
    font-style: italic;
    line-height: 1.35;
}

.form-group {
    margin-bottom: 16px;
}

.input-wrap {
    position: relative;
}

.input-wrap svg {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    fill: #8ea3bf;
    pointer-events: none;
}

.portal-login-page input[type="text"],
.portal-login-page input[type="password"] {
    width: 100%;
    height: 46px;
    border: 1px solid #d7dfe9;
    border-radius: 12px;
    padding: 0 14px 0 40px;
    font-size: 0.95rem;
    color: #1f3553;
    outline: none;
    background: #fff;
}

.portal-login-page input[type="text"]:focus,
.portal-login-page input[type="password"]:focus {
    border-color: #8ec5ff;
    box-shadow: 0 0 0 3px rgba(142, 197, 255, 0.25);
}

.form-actions {
    text-align: center;
    margin-top: 8px;
}

.portal-login-page button[type="submit"],
.portal-login-page .submit-row input[type="submit"] {
    width: 100%;
    height: 46px;
    border: none;
    border-radius: 12px;
    color: #fff;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    background: linear-gradient(90deg, #1f3a6b 0%, #02d0ff 100%);
    box-shadow: 0 0 18px rgba(2, 208, 255, 0.45), 0 10px 18px rgba(31, 58, 107, 0.28);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.portal-login-page button[type="submit"]:hover,
.portal-login-page .submit-row input[type="submit"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 0 22px rgba(2, 208, 255, 0.55), 0 12px 20px rgba(31, 58, 107, 0.32);
}

.portal-login-page .error,
.portal-login-page .errornote {
    color: #d12626;
    margin: 0 0 14px;
    text-align: center;
    font-size: 0.9rem;
    list-style: none;
    padding: 0;
}

.portal-login-page ul.errorlist {
    color: #d12626;
    margin: 0 0 10px;
    padding-left: 0;
    list-style: none;
    font-size: 0.85rem;
    text-align: center;
}

.login-footer-link {
    text-align: center;
    margin-top: 18px;
    font-size: 0.875rem;
}

.login-footer-link--before-submit {
    margin-top: 0;
    margin-bottom: 14px;
}

.login-footer-link a {
    color: #1f3a6b;
    text-decoration: none;
}

.login-footer-link a:hover {
    text-decoration: underline;
}

.portal-login-page .submit-row {
    padding: 0;
    margin: 0;
    text-align: center;
}

.portal-login-page .submit-row input[type="submit"] {
    margin: 0;
}

/* Admin login only: no avatar / no top banner — compact card, equal top & bottom padding */
.portal-login--admin .login-container--admin {
    border-radius: 20px;
}

.portal-login--admin .login-container--admin .card-body {
    padding: 28px 36px 28px;
}

.portal-login--admin .login-container--admin h2 {
    margin: 0 0 20px;
}

.portal-login--admin .login-container--admin .admin-login-subtitle {
    margin: -8px 0 18px;
}

.portal-login--admin .login-container--admin .form-actions {
    margin-top: 8px;
    margin-bottom: 0;
}
