html, body { height: 100%; margin: 0; } /* remove default margins */
.left-side {
    background-color: #002d72; /* Blue */
    color: #ffffff;
    text-align: center;
    padding: 40px 0;
}
.right-side {
    background-color: #002d72; /* Green */
    color: #FFFFFF;
    text-align: center;
    padding: 40px 0;
}
.logo-img {
    max-height: 80px;     /* controls logo height */
    object-fit: contain;  /* keeps proportions */
}
.culogo {
    background: linear-gradient(to right, #002d72 50%, #004f43 50%);"
}
/* Brand logo wrapper */
.brand-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 16px;
    margin: 0 auto 1rem auto;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.92);     /* gives contrast if logo is transparent */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    /* size constraints so it never overwhelms the form */
    max-width: 320px;              /* container cap */
    min-width: 160px;
}

/* The image itself: maintain aspect ratio and keep it tidy */
.brand-logo img {
    max-height: 72px;              /* tune this to taste */
    width: auto;
    object-fit: contain;
    image-rendering: auto;
    filter: drop-shadow(0 1px 0 rgba(0,0,0,.05));
}

/* Respect dark mode on the right pane */
@media (prefers-color-scheme: dark) {
    .brand-logo {
        background: rgba(255, 255, 255, 0.08);
        box-shadow: 0 8px 24px rgba(0,0,0,0.35);
        backdrop-filter: blur(2px);
    }
}

.modal-header {
    background: #004f43;
}

.form {
    border: #064e44 0.5px solid;
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0,
        0, 0.12);
    background: transparent;
    padding: 32px;
}

.spinner-border {
    transition: opacity 0.2s ease-in-out;
}

.error {
    color: #a94442;
    font-weight: 500;
    font-size: 0.9rem;
    display: block;
}

/* Container with border */
.login-box {
    position: relative;
    border: 2px solid #fff;
    border-radius: 10px;
    padding: 2.5rem 2rem 2rem 2rem;     /* top padding leaves space for label */
    background: transparent;
    box-shadow: 0 0 10px rgba(0,0,0,0.08);
}

/* Label floating on the border */
.login-label {
    position: absolute;
    top: 0;
    left: 1.5rem;
    transform: translateY(-50%);
    background: #002d72;                /* label background */
    color: #fff;
    font-weight: 600;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 1rem;
    letter-spacing: 0.5px;
}

/* Optional: Add subtle hover glow for style */
.login-box:hover {
    box-shadow: 0 0 15px rgba(0, 76, 151, 0.2);
}
#toggle-password:hover {
    color: var(--bs-success);
}


/* If your right panel has a dark background, ensure links stay readable */
.right-side a.link-light { text-decoration: none; }
.right-side a.link-light:hover { text-decoration: underline; }

#login-btn {
    background-color: #002d72 !important;
    border-color: #fff !important;
    color: #fff !important;

    --bs-btn-bg: #fff;
    --bs-btn-border-color: #fff;
    --bs-btn-color: #002d72;
}

#login-btn:hover,
#login-btn:focus {
    background-color: #fff !important;
    border-color: #fff !important;
    color: #002d72 !important;

    --bs-btn-hover-bg: #002d72;
    --bs-btn-hover-color: #fff;
}

/* Make icon follow text color */
#login-btn .bi { color: currentColor !important; }


.btn-outline-secondary,
.btn-outline-success {
  --bs-btn-color: #fff !important;
  --bs-btn-border-color: #fff !important;

  --bs-btn-hover-bg: #fff !important;
  --bs-btn-hover-color: #002d72 !important;
  --bs-btn-hover-border-color: #fff !important;

  --bs-btn-active-bg: #fff !important;
  --bs-btn-active-color: #002d72 !important;
  --bs-btn-active-border-color: #fff !important;
}

.btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.btn-success:focus-visible { outline-color:#002d72; }

.clarkson-login-btn {
    width: 100%;
    display: block;
}

.other-login-info {
    text-align: left;
    font-weight: 600;
    font-size: 0.95rem;
}