#bg-login-screen{
  width: 100%;
  height: 100vh;
  position: relative;;
}
.bgls-img-area{
  width: 100%;
  height: -moz-calc(100% - 250px);
  height: -webkit-calc(100% - 250px);
  height: calc(100% - 250px);

  position: relative;
}
.bgls-img-area:before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background-image: url("../images/csu_bg.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    -webkit-filter: blur(2px);
    -moz-filter: blur(2px);
    -o-filter: blur(2px);
    -ms-filter: blur(2px);
    filter: blur(2px);


}
.bgls-login-box {
    width: 520px;
    height: 240px;
    background-color: #ffffff;
    border-radius: 4px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -260px;
    margin-top: -120px;
    text-align: center;
    padding-top: 22px;
}
.bgls-footer-area{
  width: 100%;
  height: 250px;
  position: absolute;
  bottom: 0;
  border-bottom: 12px solid #2196F3;
  background-image: url(../images/ache-images/csPoweredLogo.png);
  background-repeat: no-repeat;
  background-position: center center;
}
.bgls-login-logo {
    width: 100%;
    height: 104px;
    background-image: url(../images/ache-images/ache-logo.png);
    background-repeat: no-repeat;
    background-position: center center;
    margin-bottom: 14px;
}





#top-nav-bar {
    width: 100%;
    height: 51px;
    background-color: #2196F3;
    padding: 16px 8px;
}
#top-nav-bar h2 {
    margin: 0;
    color: #ffffff;
    font-weight: 400;
    font-size: 20px;
}
#login-box {
    width: 460px;
    height: auto;
    min-height: 560px;
    border: none;
    border-radius: 12px;
    position: absolute;
    left: calc(50% - 230px);
    top: 20%;
    padding: 0;
    background-color: #ffffff;
    box-shadow: 0 2px 18px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
}
.login-box-logo {
    width: 100%;
    height: auto;
    margin: 28px 0 36px 0;
    text-align: center;
    display: block;
}
.login-box-logo img {
    max-width: 320px;
    max-height: 120px;
    width: auto;
    height: auto;
    object-fit: contain;
}
.login-box-content {
    padding: 0 32px 28px 32px;
    text-align: center;
    margin: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.login-box-content p {
    font-size: 14px;
    line-height: 1.4;
    margin-bottom: 23px;
}
.login-msg {
    margin: 0;
    position: absolute;
    top: -52px;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 22px;
    font-weight: 300;
    color: #5f6368;
}
.login-box-footer {
    padding: 0 25px;
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 16px;
}
.login-box-footer a {
    text-decoration: none;
}
#developer-logo {
    width: 100%;
    height: auto;
    margin: 20px 0 28px 0;
    text-align: center;
    display: block;
    position: static;
}

#developer-logo img {
    max-width: 132px;
    width: 100%;
    height: auto;
}

.no-access {
    font-size: 20px;
    padding-top: 38px;
    font-weight: 300;
}
.no-access i {
    color: #d82e08;
    font-size: 20px;
}
.fab {
    border-radius: 50%;
    width: 50px;
    height: 50px;
    margin: auto;
    -webkit-box-shadow: 2px 3px 3px 0px rgba(41, 41, 41, .3);
       -moz-box-shadow: 2px 3px 3px 0px rgba(41, 41, 41, .3);
            box-shadow: 2px 3px 3px 0px rgba(41, 41, 41, .3);+
            float: right;
            margin-right: 10px;
    margin-top: 10px;
    float: right;
    cursor: pointer;
        text-align: center
}
.fab.red{
  background-color: #ff4081;
}
.fab.blue{
  background-color: #40b0ff;
}
.fab i {
    color: #ffffff;
    font-size: 34px;
    line-height: 1.5;
}

.login-help{/*
    width: 460px;*/
    height: 37px;
    position: absolute;
    top: calc(100% - 21px);
    padding: 10px 15px;
    border-radius: 3px;
}

.login-help-txt {
    font-size: 1rem;
    font-weight: 400;
    margin: 1.33em 0;
}

.warningmessage{
  padding: 10px 15px;
  border:solid 2px #f49841 !important;
  width: 100%;
  font-size: 14px;
  color: #000 !important;
  background-color: #fffac4 !important;
  text-align: center;
}

.login-msg--display{
  display: none;
}

/* Media query */
@media screen and (max-width: 1024px) {
    #login-box {
       top: 8%;
    }
}

@media screen and (max-width: 767px) {
  #login-box{
    width: 100%;
    height: auto;
    position: absolute;
    min-width: 320px;
    top: 0;
    left: 0;
    bottom: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .login-box-content {
    padding: 0 20px 24px 20px;
  }

.warningmessage{/*
  display: none;*/
  margin-bottom: 0;
}

.login-help--display{
  display: none;
}

.login-msg--display--none{
  display: none;
}

.login-msg--display{
    display: inline-block;
    width: 100%;
    text-align: center;
    font-size: 16px;
    font-weight: 400;
    color: #5f6368;
    margin: 0 0 8px 0;
  }

  .login-msg{
    top: 15px;
    font-size: 16px;
  }

.login-help{
  bottom: 
}

  .login-box-logo img {
    width: 100%;
    object-fit: contain;
  }
  #developer-logo{
    /* position: static;
    background-size: 40%; */
  }
  div#button-holder {
    position: absolute;
    bottom: 10px;
    right: 10px;
  }
  body{
    min-height: 100% !important;
  }
}
/* Media query END */

h4.login-error-msg {
    color: #dc3545;
    font-weight: 500;
    font-size: 16px;
    text-align: center;
    margin: 8px 0 16px 0;
    line-height: 1.4;
}

/* === REDESIGNED LOGIN STYLES === */

body {
    background-color: #e8eaf0;
}

/* Error alert box */
.login-error-alert {
    background-color: #fde8e8;
    border: 1px solid #f5c6cb;
    border-radius: 6px;
    color: #842029;
    font-size: 13px;
    padding: 10px 14px;
    margin-bottom: 16px;
    text-align: left;
    line-height: 1.4;
}

/* Field labels */
.login-input-label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #3c4043;
    margin-bottom: 4px;
    text-align: left;
}

/* Input field wrapper */
.login-input-wrapper {
    display: flex;
    align-items: center;
    border: 1px solid #dadce0;
    border-radius: 6px;
    padding: 10px 14px;
    margin-bottom: 12px;
    background: #ffffff;
    transition: border-color 0.2s, box-shadow 0.2s;
    text-align: left;
}

.login-input-wrapper:focus-within {
    border-color: #1a73e8;
    box-shadow: 0 0 0 1px #1a73e8;
}

.login-input-wrapper--error {
    border-color: #d93025 !important;
    box-shadow: 0 0 0 1px #d93025 !important;
}

.login-input-icon {
    color: #1a73e8;
    margin-right: 10px;
    font-size: 15px;
    width: 18px;
    text-align: center;
    flex-shrink: 0;
}

.login-input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 15px;
    color: #202124;
    background: transparent;
    min-width: 0;
    padding: 0;
}

.login-input::placeholder {
    color: #80868b;
}

.login-input-toggle {
    background: none;
    border: none;
    color: #80868b;
    cursor: pointer;
    padding: 0;
    font-size: 15px;
    flex-shrink: 0;
    line-height: 1;
}

.login-input-toggle:hover {
    color: #1a73e8;
}

/* Primary Sign In button */
.login-btn-primary {
    width: 100%;
    height: 46px;
    background-color: #1a73e8;
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    cursor: pointer;
    margin-top: 4px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background-color 0.2s;
}

.login-btn-primary:disabled {
    background-color: #8ab4f8;
}

.login-btn-primary:hover:not(:disabled) {
    background-color: #1558b0;
}

/* Forgot password text */
.login-forgot-pw {
    font-size: 13px;
    color: #5f6368;
    text-align: center;
    margin-bottom: 4px;
}

.login-forgot-pw-highlight {
    color: #1a73e8;
}

/* OR divider */
.login-or-divider {
    display: flex;
    align-items: center;
    margin: 16px 0;
    color: #80868b;
    font-size: 12px;
    font-weight: 500;
}

.login-or-divider::before,
.login-or-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: #dadce0;
}

.login-or-divider::before {
    margin-right: 10px;
}

.login-or-divider::after {
    margin-left: 10px;
}

/* Social login provider buttons */
.login-provider-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 46px;
    border: 1px solid #dadce0;
    border-radius: 6px;
    background-color: #ffffff;
    color: #3c4043;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    margin-bottom: 10px;
    transition: background-color 0.2s, border-color 0.2s;
    gap: 10px;
}

.login-provider-btn:last-child {
    margin-bottom: 0;
}

.login-provider-btn:hover {
    background-color: #f8f9fa;
    border-color: #bdc1c6;
    text-decoration: none;
    color: #3c4043;
}

.login-provider-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

/* Info icon inside input wrapper (change password page) */
.login-input-info {
    color: #7c9fe0;
    font-size: 14px;
    cursor: pointer;
    margin-left: 6px;
    flex-shrink: 0;
}

/* Password strength meter */
.login-pw-strength {
    margin-top: 4px;
    margin-bottom: 10px;
    font-size: 12px;
    min-height: 24px;
    overflow: hidden;
    max-width: 100%;
}

/* Password requirements checklist */
.login-pw-checklist {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 12px;
    margin-top: 6px;
    margin-bottom: 12px;
    padding: 4px 2px;
}

.login-pw-check {
    font-size: 12px;
    color: #b0b8c1;
    display: flex;
    align-items: center;
    gap: 5px;
    line-height: 1.4;
}

.login-pw-check i {
    font-size: 11px;
    color: #b0b8c1;
    flex-shrink: 0;
}

.login-pw-check--satisfied {
    color: #137333;
}

.login-pw-check--satisfied i {
    color: #137333;
}

/* Success (matching) border on input wrapper */
.login-input-wrapper--success {
    border-color: #137333 !important;
    box-shadow: 0 0 0 1px #137333 !important;
}

/* Inline field-level error text */
.login-field-error {
    font-size: 12px;
    color: #d93025;
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: -6px;
    margin-bottom: 10px;
    line-height: 1.4;
}

/* Success alert box */
.login-success-alert {
    background-color: #e6f4ea;
    border: 1px solid #a8d5b5;
    border-radius: 6px;
    color: #1e6e35;
    font-size: 13px;
    padding: 10px 14px;
    margin-bottom: 16px;
    text-align: center;
    line-height: 1.4;
}

/* Reset forgot-pw-field positioning when used on new design elements */
.login-input-wrapper.forgot-pw-field,
.login-btn-primary.forgot-pw-field,
.login-pw-hint.forgot-pw-field,
.login-pw-strength.forgot-pw-field,
.login-pw-checklist.forgot-pw-field,
.login-field-error.forgot-pw-field,
label.forgot-pw-field {
    margin-left: 0;
    width: 100%;
}

/* Remove bottom margin on password input wrapper when hint/strength follows */
.login-input-wrapper.forgot-pw-field:has(+ .login-pw-hint),
.login-input-wrapper.forgot-pw-field:has(+ .login-pw-strength) {
    margin-bottom: 0;
}

/* classic sign in */
.sign-in-form{
    margin-top: -40px;
    position: relative;
    margin-bottom: 35px;
}
.sign-in-field{
    margin-left: 25%;
    width: 52%;
}
.sign-in-filed-input{
    height: auto;
    font-size: 15px;
}

.forgot-pw-field {
  margin-left: 13%;
  width: 75%;
}

h2.sign-in-option-err {
    color: #0055ff;
}


.sign-in-error-message {
  margin-left: 25%;
  width: 52%;
  margin-bottom: 12px;
  padding: 8px 12px;
  border: 1px solid #f1b0b7;
  border-radius: 4px;
  background-color: #fdf3f4;
  color: #a94442;
  font-size: 13px;
  line-height: 1.4;
  text-align: left;
}

.forgot-pw-link {
  margin-left: 25%;
}

.forgot-pw-link a{
  text-decoration: none;
}

.goback-login-link {
  margin-left: 13%;
  font-size: 10px;
}

.goback-login-link a{
  text-decoration: none;
}

.my-account-details {
  display: grid;
  grid-template-columns: auto auto;
  grid-column-gap: 10px;
  height: 66px;
  margin-right: 13%;
  margin-left: 13%
}

.my-account-profile-pic {
  width: 60px;
  height: 60px;
  border-radius: 50%;
}

#errToast {
    visibility: hidden; /* Hidden by default. Visible on click */
    min-width: 250px; /* Set a default minimum width */
    margin-left: -125px; /* Divide value of min-width by 2 */
    background-color: #904242;
    font-size: medium;
    color: #fff; /* White text color */
    text-align: center; /* Centered text */
    border-radius: 2px; /* Rounded borders */
    padding: 16px; /* Padding */
    position: fixed; /* Sit on top of the screen */
    z-index: 1; /* Add a z-index if needed */
    left: 50%; /* Center the snackbar */
    bottom: 30px; /* 30px from the bottom */
}

/* Show the snackbar when clicking on a button (class added with JavaScript) */
#errToast.show {
    visibility: visible; /* Show the snackbar */
    /* Add animation: Take 0.5 seconds to fade in and out the snackbar.
    However, delay the fade out process for 2.5 seconds */
    -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
    animation: fadein 0.5s, fadeout 0.5s 2.5s;
}

#successToast {
  visibility: hidden; /* Hidden by default. Visible on click */
  min-width: 250px; /* Set a default minimum width */
  margin-left: -125px; /* Divide value of min-width by 2 */
  background-color: #3867d6;
  font-size: medium;
  color: #fff; /* White text color */
  text-align: center; /* Centered text */
  border-radius: 2px; /* Rounded borders */
  padding: 16px; /* Padding */
  position: fixed; /* Sit on top of the screen */
  z-index: 1; /* Add a z-index if needed */
  left: 50%; /* Center the snackbar */
  bottom: 30px; /* 30px from the bottom */
}

/* Show the snackbar when clicking on a button (class added with JavaScript) */
#successToast.show {
  visibility: visible; /* Show the snackbar */
  /* Add animation: Take 0.5 seconds to fade in and out the snackbar.
  However, delay the fade out process for 2.5 seconds */
  -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
  animation: fadein 0.5s, fadeout 0.5s 2.5s;
}

/* Animations to fade the snackbar in and out */
@-webkit-keyframes fadein {
    from {bottom: 0; opacity: 0;}
    to {bottom: 30px; opacity: 1;}
}

@keyframes fadein {
    from {bottom: 0; opacity: 0;}
    to {bottom: 30px; opacity: 1;}
}

@-webkit-keyframes fadeout {
    from {bottom: 30px; opacity: 1;}
    to {bottom: 0; opacity: 0;}
}

@keyframes fadeout {
    from {bottom: 30px; opacity: 1;}
    to {bottom: 0; opacity: 0;}
}

/* === MODULE SELECTION PAGE === */

/* Developer logo at top of selection card */
.selection-header {
    text-align: center;
    padding: 22px 24px 18px;
}

.selection-header img {
    max-width: 160px;
    height: auto;
}

/* Horizontal rule dividing logo from content */
.selection-divider {
    border: none;
    border-top: 1px solid #e8eaed;
    margin: 0;
}

/* Content area */
.selection-content {
    padding-top: 20px !important;
}

/* Profile picture */
.selection-profile {
    text-align: center;
    margin-bottom: 12px;
}

.selection-profile-pic {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    background-color: #e8eaf0;
}

/* Greeting */
.selection-greeting {
    font-size: 20px;
    font-weight: 400;
    color: #202124;
    margin: 0 0 24px 0;
    text-align: center;
}

.selection-greeting-hello {
    color: #1a73e8;
}

/* Subtitle */
.selection-subtitle {
    font-size: 14px;
    color: #5f6368;
    text-align: center;
    margin: 0 0 16px 0;
}

/* Branch dropdown */
.selection-branch-wrapper {
    margin-bottom: 16px;
    text-align: left;
}

.selection-branch-label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.selection-branch-select {
    width: 100%;
    height: 44px;
    border: 1px solid #dadce0;
    border-radius: 6px;
    padding: 0 14px;
    font-size: 14px;
    color: #202124;
    background-color: #ffffff;
    cursor: pointer;
    outline: none;
}

.selection-branch-select:focus {
    border-color: #1a73e8;
    box-shadow: 0 0 0 1px #1a73e8;
}

/* Module grid */
.selection-modules {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

/* Module card */
.selection-module-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 18px 12px 14px;
    border: 1px solid #dadce0;
    border-radius: 10px;
    background-color: #ffffff;
    text-decoration: none;
    color: #3c4043;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
    min-height: 90px;
}

.selection-module-card:hover {
    border-color: #1a73e8;
    background-color: #f0f4ff;
    color: #1a73e8;
    text-decoration: none;
}

/* Module icon — standalone versions of the scoped sprite classes */
.selection-module-icon {
    display: block;
    width: 48px;
    height: 48px;
    background-size: 44px;
    background-repeat: no-repeat;
    background-position: center;
    margin-bottom: 8px;
}

.selection-module-icon.slider-item__img--admin {
    background-image: url("../images/module_icons/icon-dashboard-admin.svg");
}

.selection-module-icon.slider-item__img--teacher {
    background-image: url("../images/module_icons/icon-dashboard-teacher.svg");
}

.selection-module-icon.slider-item__img--leads {
    background-image: url("../images/module_icons/icon-dashboard-leads.svg");
}

.selection-module-icon.slider-item__img--student {
    background-image: url("../images/module_icons/icon-dashboard-student.svg");
}

.selection-module-icon.slider-item__img--timetable {
    background-image: url("../images/module_icons/icon-dashboard-timetable.svg");
}

.selection-module-icon.slider-item__img--analytics {
    background-image: url("../images/module_icons/icon-dashboard-survey.svg");
}

/* Module name */
.selection-module-name {
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    line-height: 1.3;
}

/* Module carousel footer — override negative margin so it fits inside the card */
.selection-footer.login-page__footer {
    margin: 0;
    border-radius: 0;
    padding: 12px 0;
}

/* Sign out wrapper */
.selection-signout-wrapper {
    background-color: #E3F2FD;
    text-align: center;
    padding: 10px 16px 18px;
    border-radius: 0 0 12px 12px;
}

/* Sign out link */
.selection-signout {
    display: inline-block;
    text-align: center;
    color: #1a73e8;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
}

.selection-signout:hover {
    text-decoration: underline;
    color: #1558b0;
}
