:root{
    --ksbc-student-blue:#1767d9;
    --ksbc-student-blue-2:#0f63df;
    --ksbc-student-deep:#0f1f3d;
    --ksbc-student-muted:#536783;
    --ksbc-student-line:#cbd9eb;
    --ksbc-student-field:#ffffff;
    --ksbc-student-field-border:#c9d7e8;
    --ksbc-student-bg:#eef6ff;
}
html.ksbc-student-login-ui-active,
body.ksbc-student-login-ui-active{
    overflow:hidden!important;
    width:100%!important;
    min-height:100%!important;
    margin:0!important;
    padding:0!important;
}
.ksbc-student-login-shell{
    position:fixed;
    inset:0;
    z-index:2147482000;
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100vw;
    min-height:100vh;
    overflow:auto;
    background:
        radial-gradient(circle at 74% 43%,rgba(182,213,250,.27) 0,rgba(182,213,250,0) 34%),
        linear-gradient(118deg,#f9fcff 0%,#eef6ff 46%,#f8fbff 100%);
    color:var(--ksbc-student-deep);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    box-sizing:border-box;
}
.ksbc-student-login-shell *{box-sizing:border-box}

/* LEFT BRAND PANEL — exact approved composition */
.ksbc-student-brand-panel{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:100vh;
    padding:48px 52px;
    overflow:hidden;
}
.ksbc-student-brand-panel:after{
    content:"";
    position:absolute;
    left:-18%;
    bottom:-184px;
    width:108%;
    height:340px;
    border-radius:54% 54% 0 0;
    background:linear-gradient(180deg,rgba(74,145,238,.13),rgba(74,145,238,.025));
    transform:rotate(-3.8deg);
    pointer-events:none;
}
.ksbc-student-brand-copy{
    position:relative;
    z-index:1;
    width:376px;
    max-width:100%;
    text-align:left;
    transform:translate(20px,-15px);
}
.ksbc-student-brand-copy h1,
.ksbc-student-card-heading{
    margin:0!important;
    font-size:28px!important;
    line-height:1.2!important;
    font-weight:760!important;
    letter-spacing:-.017em!important;
    color:#101f3c!important;
}
.ksbc-student-brand-copy h1 span{color:inherit!important}
.ksbc-student-brand-copy h2{
    margin:17px 0 0!important;
    font-size:19px!important;
    line-height:1.35!important;
    font-weight:500!important;
    color:#526684!important;
}
.ksbc-student-divider{
    display:flex;
    align-items:center;
    gap:15px;
    width:100%;
    margin:31px 0 24px!important;
}
.ksbc-student-divider:before,
.ksbc-student-divider:after{
    content:"";
    height:1px;
    flex:1;
    background:#c7d8ec;
}
.ksbc-student-divider span{
    display:grid;
    place-items:center;
    flex:0 0 54px;
    width:54px;
    height:54px;
    border:1px solid #c7d8ec;
    border-radius:50%;
    background:#f9fcff;
    font-size:22px;
    line-height:1;
}
.ksbc-student-brand-note{
    margin:0!important;
    max-width:376px;
    font-size:15px!important;
    line-height:1.55!important;
    color:#415673!important;
}
.ksbc-student-brand-note strong{
    color:#243a58;
    font-weight:700;
}
.ksbc-student-home-link{
    display:inline-flex!important;
    align-items:center!important;
    gap:9px!important;
    margin:18px 0 0!important;
    padding:2px 0!important;
    color:#0f63df!important;
    font-size:14px!important;
    line-height:1.35!important;
    font-weight:700!important;
    text-decoration:none!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    transition:color .18s ease, transform .18s ease!important;
}
.ksbc-student-home-link:hover,
.ksbc-student-home-link:focus-visible{
    color:#0b52bd!important;
    text-decoration:underline!important;
}
.ksbc-student-home-link:focus-visible{
    outline:2px solid #1767d9!important;
    outline-offset:4px!important;
    border-radius:3px!important;
}
.ksbc-student-home-link-arrow{
    display:inline-block!important;
    font-size:20px!important;
    line-height:1!important;
    font-weight:500!important;
    transform:translateY(-1px);
}

/* RIGHT LOGIN PANEL */
.ksbc-student-login-panel{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    min-height:100vh;
    padding:34px 0 34px 43px;
}
.ksbc-student-login-card{
    width:min(100%,460px);
    min-height:590px!important;
    margin:0!important;
    padding:40px 38px 30px!important;
    border:1px solid #d9e3ef!important;
    border-radius:24px!important;
    background:#fff!important;
    box-shadow:0 20px 58px rgba(25,64,115,.10)!important;
    transform:translateY(-15px);
}
.ksbc-student-login-icon{
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    margin:0 auto 16px!important;
}
.ksbc-student-login-icon svg{
    display:block;
    width:42px;
    height:42px;
}
.ksbc-student-card-heading{
    text-align:center!important;
}
.ksbc-student-login-subtitle{
    width:100%;
    max-width:330px;
    margin:9px auto 24px!important;
    text-align:center!important;
    font-size:15px!important;
    line-height:1.5!important;
    color:#5b6f8a!important;
}

/* Tutor wrapper is transport only; it must never become a second card. */
.ksbc-student-form-host,
.ksbc-student-tutor-wrapper,
.ksbc-student-tutor-wrapper[class],
.ksbc-student-tutor-wrapper[style],
.ksbc-student-form-host .tutor-login-form-wrapper,
.ksbc-student-form-host .tutor-login-form-wrapper[class],
.ksbc-student-form-host .tutor-login-form-wrapper[style]{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    outline:0!important;
}
.ksbc-student-tutor-wrapper #tutor-login-form{
    display:block!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
}
.ksbc-student-original-heading,
.ksbc-student-tutor-wrapper .tutor-fs-4,
.ksbc-student-tutor-wrapper .tutor-fs-5,
.ksbc-student-form-host .tutor-login-form-wrapper .tutor-fs-4,
.ksbc-student-form-host .tutor-login-form-wrapper .tutor-fs-5,
.ksbc-student-tutor-wrapper>h1,
.ksbc-student-tutor-wrapper>h2,
.ksbc-student-tutor-wrapper>h3{
    display:none!important;
}
/* Legacy Tutor/theme headings are never part of the approved KSBC card. */
.ksbc-student-tutor-wrapper .ksbc-student-original-heading{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
}

/* FIELD STACK */
.ksbc-student-field-group{
    position:relative!important;
    display:block!important;
    width:100%!important;
    margin:0 0 18px!important;
    padding:0!important;
}
.ksbc-student-field-label{
    display:block!important;
    margin:0 0 10px!important;
    padding:0!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.35!important;
    color:#243854!important;
}
.ksbc-student-input-wrap{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:52px!important;
    min-height:52px!important;
    max-height:52px!important;
    margin:0!important;
    padding:0!important;
}
.ksbc-student-input-wrap input[type=text],
.ksbc-student-input-wrap input[type=email],
.ksbc-student-input-wrap input[type=password],
.ksbc-student-input-wrap input[type=text][data-ksbc-password-enhanced="yes"]{
    display:block!important;
    width:100%!important;
    height:52px!important;
    min-height:52px!important;
    max-height:52px!important;
    margin:0!important;
    padding:0 44px 0 48px!important;
    border:1px solid var(--ksbc-student-field-border)!important;
    border-radius:12px!important;
    background:var(--ksbc-student-field)!important;
    color:#182842!important;
    font-size:14px!important;
    font-weight:400!important;
    line-height:52px!important;
    box-shadow:none!important;
    outline:none!important;
    transition:border-color .16s ease,box-shadow .16s ease!important;
}
.ksbc-student-input-wrap.ksbc-student-has-trailing input[type=password],
.ksbc-student-input-wrap.ksbc-student-has-trailing input[type=text][data-ksbc-password-enhanced="yes"]{
    padding-right:44px!important;
}
.ksbc-student-input-wrap input:focus{
    border-color:#337be0!important;
    box-shadow:0 0 0 3px rgba(51,123,224,.11)!important;
}
.ksbc-student-input-wrap input::placeholder{
    color:#6d7f98!important;
    opacity:1!important;
}
.ksbc-student-leading-icon{
    position:absolute!important;
    left:16px!important;
    top:50%!important;
    z-index:5!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:18px!important;
    height:18px!important;
    margin:0!important;
    padding:0!important;
    transform:translateY(-50%)!important;
    color:#71839b!important;
    pointer-events:none!important;
}
.ksbc-student-leading-icon svg{
    display:block!important;
    width:100%!important;
    height:100%!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
    overflow:visible!important;
}

/* Remove legacy decorative input icons so there is exactly one leading icon. */
.ksbc-student-input-wrap>.tutor-icon-envelope-line,
.ksbc-student-input-wrap>.tutor-icon-envelope,
.ksbc-student-input-wrap>.tutor-icon-user,
.ksbc-student-input-wrap>.tutor-icon-user-bold,
.ksbc-student-input-wrap>.tutor-icon-lock-line,
.ksbc-student-input-wrap>.tutor-icon-lock,
.ksbc-student-input-wrap>.tutor-form-icon,
.ksbc-student-input-wrap>.ksbc-auth-field-icon:not(.ksbc-student-leading-icon),
.ksbc-student-field-group .tutor-icon-envelope-line,
.ksbc-student-field-group .tutor-icon-envelope,
.ksbc-student-field-group .tutor-icon-user,
.ksbc-student-field-group .tutor-icon-user-bold,
.ksbc-student-field-group .tutor-icon-lock-line,
.ksbc-student-field-group .tutor-icon-lock,
.ksbc-student-field-group .tutor-form-icon,
.ksbc-student-field-group .ksbc-auth-field-icon:not(.ksbc-student-leading-icon){
    display:none!important;
}
.ksbc-student-input-wrap:before,
.ksbc-student-input-wrap:after{
    content:none!important;
    display:none!important;
}

/* Exactly one password visibility control, aligned with the field. */
.ksbc-student-password-viewer{
    position:absolute!important;
    z-index:6!important;
    right:16px!important;
    top:50%!important;
    bottom:auto!important;
    left:auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:24px!important;
    height:24px!important;
    margin:0!important;
    padding:2px!important;
    border:0!important;
    background:transparent!important;
    color:#627691!important;
    box-shadow:none!important;
    transform:translateY(-50%)!important;
    cursor:pointer!important;
}
.ksbc-student-password-viewer svg{
    display:block!important;
    width:20px!important;
    height:20px!important;
}

/* REMEMBER / FORGOT ROW */
.ksbc-student-tutor-wrapper .tutor-d-flex,
.ksbc-student-tutor-wrapper .tutor-login-form-remember,
.ksbc-student-tutor-wrapper .ksbc-student-login-meta{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    gap:12px!important;
    margin:14px 0 0!important;
    padding:0!important;
}
.ksbc-student-tutor-wrapper .ksbc-student-remember{
    display:inline-flex!important;
    align-items:center!important;
    gap:8px!important;
    margin:0!important;
    padding:0!important;
    font-size:12px!important;
    line-height:1.3!important;
    color:#273b57!important;
}
.ksbc-student-tutor-wrapper input[type=checkbox]{
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    margin:0!important;
}
.ksbc-student-tutor-wrapper .ksbc-student-forgot-link{
    color:#0d63df!important;
    font-size:12.5px!important;
    font-weight:600!important;
    line-height:1.3!important;
    text-decoration:none!important;
    white-space:nowrap!important;
}
.ksbc-student-tutor-wrapper .ksbc-student-forgot-link:hover{text-decoration:underline!important}

/* SIGN IN BUTTON */
.ksbc-student-tutor-wrapper .ksbc-student-signin-button,
.ksbc-student-tutor-wrapper #tutor-login-form button[type=submit],
.ksbc-student-tutor-wrapper #tutor-login-form input[type=submit]{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    width:100%!important;
    height:52px!important;
    min-height:52px!important;
    margin:18px 0 0!important;
    padding:0 20px!important;
    border:0!important;
    border-radius:12px!important;
    background:linear-gradient(180deg,#176fe9 0%,#0f62db 100%)!important;
    color:#fff!important;
    font-size:16px!important;
    font-weight:750!important;
    line-height:1!important;
    box-shadow:0 7px 17px rgba(23,103,217,.18)!important;
    cursor:pointer!important;
    text-align:center!important;
}
.ksbc-student-tutor-wrapper button.ksbc-student-signin-button:before{
    content:"";
    display:block!important;
    width:15px!important;
    height:17px!important;
    flex:0 0 15px!important;
    background-repeat:no-repeat!important;
    background-position:center!important;
    background-size:15px 17px!important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M17 9h-1V7a4 4 0 0 0-8 0v2H7a2 2 0 0 0-2 2v9h14v-9a2 2 0 0 0-2-2Zm-7-2a2 2 0 1 1 4 0v2h-4V7Zm2 6a2 2 0 0 1 1 3.73V19h-2v-2.27A2 2 0 0 1 12 13Z'/%3E%3C/svg%3E")!important;
}

/* REGISTER ROW */
.ksbc-student-register-row{
    display:block!important;
    width:100%!important;
    margin:22px 0 0!important;
    padding:16px 0 0!important;
    border-top:1px solid #e6edf5!important;
    text-align:center!important;
    color:#586b84!important;
    font-size:12px!important;
    line-height:1.45!important;
}
.ksbc-student-register-link{
    color:#0d63df!important;
    font-weight:700!important;
    text-decoration:none!important;
}
.ksbc-student-register-link:hover{text-decoration:underline!important}

.ksbc-student-tutor-wrapper .tutor-alert,
.ksbc-student-login-alert{
    width:100%!important;
    margin:0 0 15px!important;
    padding:13px 15px!important;
    border-radius:9px!important;
    font-size:12.5px!important;
    line-height:1.45!important;
}

/* Failed-login state: keep the approved card compact even when Tutor adds
 * a validation notice. The form remains fully visible and aligned. */
.ksbc-student-login-card--error{
    min-height:0!important;
    padding-top:22px!important;
    padding-bottom:20px!important;
}
.ksbc-student-login-card--error .ksbc-student-login-icon{
    margin-bottom:12px!important;
}
.ksbc-student-login-card--error .ksbc-student-login-subtitle{
    margin-top:7px!important;
    margin-bottom:17px!important;
}
.ksbc-student-login-card--error .ksbc-student-field-group{
    margin-bottom:13px!important;
}
.ksbc-student-login-card--error .ksbc-student-tutor-wrapper .ksbc-student-signin-button,
.ksbc-student-login-card--error .ksbc-student-tutor-wrapper #tutor-login-form button[type=submit],
.ksbc-student-login-card--error .ksbc-student-tutor-wrapper #tutor-login-form input[type=submit]{
    margin-top:18px!important;
}
.ksbc-student-login-card--error .ksbc-student-register-row{
    margin-top:18px!important;
    padding-top:14px!important;
}
.ksbc-student-tutor-wrapper .tutor-form-feedback{font-size:12px!important}
.ksbc-sal-honeypot{
    position:absolute!important;
    left:-10000px!important;
    top:auto!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
}
.ksbc-student-login-ui-active #ksbc-auth-toast{z-index:2147483646!important}

/* RESPONSIVE */
@media(max-width:1100px){
    .ksbc-student-brand-panel{padding:44px 32px}
    .ksbc-student-brand-copy{transform:translate(8px,-8px)}
    .ksbc-student-login-panel{justify-content:center;padding:30px 32px}
    .ksbc-student-login-card{width:min(100%,460px);min-height:590px!important;padding:40px 38px 30px!important;transform:translateY(-8px)}
}
@media(max-width:820px){
    html.ksbc-student-login-ui-active,
    body.ksbc-student-login-ui-active{overflow:auto!important}
    .ksbc-student-login-shell{position:absolute;grid-template-columns:1fr;min-height:100%;overflow:visible}
    .ksbc-student-brand-panel{min-height:auto;padding:38px 26px 23px;text-align:center}
    .ksbc-student-brand-copy{width:min(100%,430px);text-align:center;transform:none}
    .ksbc-student-brand-note{margin-inline:auto!important}
    .ksbc-student-home-link{justify-content:center!important;margin-top:15px!important}
    .ksbc-student-brand-panel:after{display:none}
    .ksbc-student-divider{margin:24px 0 18px!important}
    .ksbc-student-login-panel{min-height:auto;padding:12px 20px 40px}
    .ksbc-student-login-card{width:min(100%,460px);min-height:0!important;padding:30px 28px 26px!important;transform:none}
}
@media(max-width:520px){
    .ksbc-student-brand-panel{padding:30px 18px 19px}
    .ksbc-student-brand-copy h1,.ksbc-student-card-heading{font-size:23px!important}
    .ksbc-student-brand-copy h2{font-size:16px!important}
    .ksbc-student-brand-note{font-size:13.5px!important}
    .ksbc-student-login-panel{padding:10px 12px 30px}
    .ksbc-student-login-card{padding:23px 20px 21px!important;border-radius:15px!important}
    .ksbc-student-login-subtitle{font-size:13.5px!important;margin-bottom:18px!important}
    .ksbc-student-input-wrap input[type=text],
    .ksbc-student-input-wrap input[type=email],
    .ksbc-student-input-wrap input[type=password],
    .ksbc-student-input-wrap input[type=text][data-ksbc-password-enhanced="yes"]{
        height:50px!important;min-height:50px!important;max-height:50px!important;line-height:50px!important
    }
    .ksbc-student-tutor-wrapper .tutor-d-flex{gap:8px!important;flex-wrap:wrap!important}
}

@media (min-width:821px) and (max-height:720px){.ksbc-student-login-shell{overflow:auto}.ksbc-student-brand-panel,.ksbc-student-login-panel{min-height:720px}.ksbc-student-login-card{min-height:0!important;transform:none}.ksbc-student-brand-copy{transform:translate(20px,0)}}


/* v1.0.11: KSBC owns field chrome completely. Tutor/theme labels and
   decorative icons are not permitted to share the controlled input wrapper. */
.ksbc-student-field-group > label,
.ksbc-student-field-group > .tutor-form-label,
.ksbc-student-field-group > [class*="tutor-icon"],
.ksbc-student-field-group > [class*="form-icon"],
.ksbc-student-field-group > [class*="auth-field-icon"],
.ksbc-student-field-group > i[class*="icon"],
.ksbc-student-field-group > span[class*="icon"]:not(.ksbc-student-field-label):not(.ksbc-student-leading-icon),
.ksbc-student-field-group > button[class*="password"]:not(.ksbc-student-password-viewer){
    display:none!important;
}

.ksbc-student-field-group:before,
.ksbc-student-field-group:after,
.ksbc-student-input-wrap:before,
.ksbc-student-input-wrap:after{
    content:none!important;
    display:none!important;
}

.ksbc-student-input-wrap{
    overflow:visible!important;
    isolation:isolate!important;
}

.ksbc-student-input-wrap input{
    position:relative!important;
    z-index:1!important;
    background-image:none!important;
    text-indent:0!important;
}

.ksbc-student-leading-icon,
.ksbc-student-password-viewer{
    top:26px!important;
    transform:translateY(-50%)!important;
}

.ksbc-student-leading-icon{
    left:16px!important;
}

.ksbc-student-password-viewer{
    right:16px!important;
}

/* v1.0.12: one semantic label and one icon layer per credential field. */
.ksbc-student-field-group > label:not(.ksbc-student-field-label),
.ksbc-student-field-group > .tutor-form-label:not(.ksbc-student-field-label),
.ksbc-student-field-group > [class*="form-label"]:not(.ksbc-student-field-label){
    display:none!important;
}
.ksbc-student-input-wrap > i:not(.ksbc-student-leading-icon),
.ksbc-student-input-wrap > svg,
.ksbc-student-input-wrap > span:not(.ksbc-student-leading-icon),
.ksbc-student-input-wrap > button:not(.ksbc-student-password-viewer){
    display:none!important;
}
.ksbc-student-field-group:before,
.ksbc-student-field-group:after,
.ksbc-student-input-wrap input:before,
.ksbc-student-input-wrap input:after{
    content:none!important;
    display:none!important;
}


/* v1.0.13: fully isolate credential visuals from Tutor/theme field chrome. */
.ksbc-student-source-field-retired{
    display:none!important;
    visibility:hidden!important;
    position:absolute!important;
    width:0!important;
    height:0!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    overflow:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
}

.ksbc-student-fresh-field,
.ksbc-student-fresh-field *{
    background-image:none!important;
}

.ksbc-student-fresh-field::before,
.ksbc-student-fresh-field::after,
.ksbc-student-fresh-field *::before,
.ksbc-student-fresh-field *::after{
    content:none!important;
    display:none!important;
    background:none!important;
    background-image:none!important;
    box-shadow:none!important;
}

/* Our approved icons use real SVG children, not pseudo-elements, so the
 * pseudo-element reset above cannot remove them. */
.ksbc-student-fresh-field .ksbc-student-leading-icon,
.ksbc-student-fresh-field .ksbc-student-password-viewer{
    display:flex!important;
}

.ksbc-student-fresh-field .ksbc-student-leading-icon svg,
.ksbc-student-fresh-field .ksbc-student-password-viewer svg{
    display:block!important;
    background:none!important;
}

.ksbc-student-fresh-field input[type="text"],
.ksbc-student-fresh-field input[type="email"],
.ksbc-student-fresh-field input[type="password"]{
    -webkit-appearance:none!important;
    appearance:none!important;
    background-image:none!important;
}

.ksbc-student-fresh-field input::-ms-clear,
.ksbc-student-fresh-field input::-ms-reveal{
    display:none!important;
    width:0!important;
    height:0!important;
}


/* v1.0.15: Tutor Login credential fields intentionally have NO left-side
   icons. This removes the final source of visual overlap across Tutor/theme
   variants. The password visibility eye remains on the right. */
.ksbc-student-login-card .ksbc-student-leading-icon,
.ksbc-student-login-card .ksbc-auth-field-icon,
.ksbc-student-login-card [class*="tutor-icon-envelope"],
.ksbc-student-login-card [class*="tutor-icon-user"],
.ksbc-student-login-card [class*="tutor-icon-lock"],
.ksbc-student-login-card [class*="form-icon"],
.ksbc-student-login-card i[class*="icon"] {
    display:none!important;
    visibility:hidden!important;
    width:0!important;
    height:0!important;
    opacity:0!important;
    pointer-events:none!important;
}
.ksbc-student-login-card .ksbc-student-input-wrap input[type="text"],
.ksbc-student-login-card .ksbc-student-input-wrap input[type="email"],
.ksbc-student-login-card .ksbc-student-input-wrap input[type="password"],
.ksbc-student-login-card .ksbc-student-input-wrap input[data-ksbc-password-enhanced="yes"] {
    padding-left:16px!important;
    background-image:none!important;
    text-indent:0!important;
}
.ksbc-student-login-card .ksbc-student-input-wrap::before,
.ksbc-student-login-card .ksbc-student-input-wrap::after,
.ksbc-student-login-card .ksbc-student-input-wrap input::before,
.ksbc-student-login-card .ksbc-student-input-wrap input::after {
    content:none!important;
    display:none!important;
    background:none!important;
}
/* Keep the approved eye control visible and centred. */
.ksbc-student-login-card .ksbc-student-password-viewer {
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    width:24px!important;
    height:24px!important;
}


/* v1.0.16: compact approved Tutor login refinement.
   The welcome heading is intentionally smaller than the previous build and
   the account-actions row sits directly beneath the password field. */
.ksbc-student-card-heading{
    font-size:22px!important;
    line-height:1.2!important;
}
.ksbc-student-field-group[data-ksbc-field-type="lock"]{
    margin-bottom:0!important;
}
.ksbc-student-login-meta-controlled,
.ksbc-student-tutor-wrapper .ksbc-student-login-meta-controlled{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    gap:12px!important;
    margin:8px 0 0!important;
    padding:0!important;
    min-height:24px!important;
}
.ksbc-student-login-meta-controlled .ksbc-student-remember{
    margin:0!important;
}
.ksbc-student-login-meta-controlled .ksbc-student-forgot-link{
    margin:0!important;
}


/* v1.0.17: further compacting of the approved Tutor login card.
   Reduce unused vertical space while preserving the v1.0.16 field and
   authentication structure. */
.ksbc-student-login-card{
    min-height:560px!important;
    padding-top:32px!important;
    padding-bottom:24px!important;
}
.ksbc-student-login-icon{
    margin-bottom:11px!important;
}
.ksbc-student-login-subtitle{
    margin-top:7px!important;
    margin-bottom:18px!important;
}
.ksbc-student-field-group{
    margin-bottom:14px!important;
}
.ksbc-student-field-group[data-ksbc-field-type="lock"]{
    margin-bottom:0!important;
}
.ksbc-student-login-meta-controlled,
.ksbc-student-tutor-wrapper .ksbc-student-login-meta-controlled{
    margin-top:5px!important;
    min-height:22px!important;
}
.ksbc-student-tutor-wrapper .ksbc-student-signin-button,
.ksbc-student-tutor-wrapper #tutor-login-form button[type=submit],
.ksbc-student-tutor-wrapper #tutor-login-form input[type=submit]{
    margin-top:14px!important;
}
.ksbc-student-register-row{
    margin-top:17px!important;
    padding-top:12px!important;
}
.ksbc-student-login-card--error{
    padding-top:20px!important;
    padding-bottom:18px!important;
}
.ksbc-student-login-card--error .ksbc-student-login-subtitle{
    margin-bottom:14px!important;
}
.ksbc-student-login-card--error .ksbc-student-field-group{
    margin-bottom:11px!important;
}
.ksbc-student-login-card--error .ksbc-student-tutor-wrapper .ksbc-student-signin-button,
.ksbc-student-login-card--error .ksbc-student-tutor-wrapper #tutor-login-form button[type=submit],
.ksbc-student-login-card--error .ksbc-student-tutor-wrapper #tutor-login-form input[type=submit]{
    margin-top:14px!important;
}
.ksbc-student-login-card--error .ksbc-student-register-row{
    margin-top:15px!important;
    padding-top:11px!important;
}


/* v1.0.20: auxiliary Tutor login text sizing.
   Keep the small account-action and registration texts at exactly 12px. */
.ksbc-student-login-meta-controlled .ksbc-student-remember,
.ksbc-student-tutor-wrapper .ksbc-student-login-meta-controlled .ksbc-student-remember,
.ksbc-student-login-meta-controlled .ksbc-student-forgot-link,
.ksbc-student-tutor-wrapper .ksbc-student-login-meta-controlled .ksbc-student-forgot-link,
.ksbc-student-register-row,
.ksbc-student-register-row .ksbc-student-register-link {
    font-size:12px!important;
}

/* v1.0.24: Tutor Pro active-session-limit action remains an interactive
   native Tutor control after the alert is moved into the KSBC card. */
.ksbc-student-tutor-wrapper #tutor-remove-active-logins{
    pointer-events:auto!important;
    cursor:pointer!important;
    position:relative!important;
    z-index:2!important;
}

/* =========================================================
   v1.0.25 — Tutor Sign In progress state
   Mirrors the approved "Signing you in..." transition while
   leaving Tutor/WordPress authentication fully native.
   ========================================================= */
.ksbc-student-login-card{
    position:relative!important;
    overflow:hidden!important;
}
.ksbc-student-signin-progress{
    position:absolute!important;
    inset:0!important;
    z-index:100!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:32px!important;
    border-radius:inherit!important;
    background:rgba(255,255,255,.94)!important;
    -webkit-backdrop-filter:blur(2px)!important;
    backdrop-filter:blur(2px)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:opacity .15s ease,visibility .15s ease!important;
}
.ksbc-student-login-card--signing .ksbc-student-signin-progress{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
}
.ksbc-student-signin-progress-inner{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    max-width:330px!important;
    margin:0 auto!important;
    text-align:center!important;
}
.ksbc-student-signin-spinner{
    display:block!important;
    width:44px!important;
    height:44px!important;
    margin:0 0 27px!important;
    border:4px solid #dbe8f8!important;
    border-right-color:#1769df!important;
    border-radius:50%!important;
    animation:ksbc-student-signin-spin .8s linear infinite!important;
}
.ksbc-student-signin-progress-title{
    display:block!important;
    margin:0!important;
    color:#111b31!important;
    font-size:20px!important;
    font-weight:750!important;
    line-height:1.3!important;
    letter-spacing:-.01em!important;
}
.ksbc-student-signin-progress-copy{
    display:block!important;
    margin:11px 0 0!important;
    color:#687a94!important;
    font-size:15px!important;
    font-weight:400!important;
    line-height:1.5!important;
}
.ksbc-student-login-card--signing .ksbc-student-login-icon,
.ksbc-student-login-card--signing .ksbc-student-card-heading,
.ksbc-student-login-card--signing .ksbc-student-login-subtitle,
.ksbc-student-login-card--signing .ksbc-student-form-host{
    filter:blur(2px)!important;
    opacity:.08!important;
    transition:opacity .12s ease,filter .12s ease!important;
}
@keyframes ksbc-student-signin-spin{
    to{transform:rotate(360deg)}
}
@media (prefers-reduced-motion:reduce){
    .ksbc-student-signin-spinner{
        animation-duration:1.8s!important;
    }
    .ksbc-student-signin-progress{
        transition:none!important;
    }
}



/* ==========================================================
   v1.0.29 — COURSE LOGIN ARCHITECTURE LOCK
   The protected-course login must be visually identical to the
   approved /tutor-login/ shell. These rules deliberately use
   !important to prevent Tutor/theme course-template CSS from
   changing the full-screen shell after it is mounted.
   ========================================================== */
body.ksbc-sal-render-tutor-course-login.ksbc-student-login-ui-active .ksbc-student-login-shell{
    position:fixed!important;
    inset:0!important;
    z-index:2147482000!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    width:100vw!important;
    min-width:100vw!important;
    height:100vh!important;
    min-height:100vh!important;
    margin:0!important;
    padding:0!important;
    overflow:auto!important;
}
body.ksbc-sal-render-tutor-course-login.ksbc-student-login-ui-active .ksbc-student-brand-panel,
body.ksbc-sal-render-tutor-course-login.ksbc-student-login-ui-active .ksbc-student-login-panel{
    display:flex!important;
    min-height:100vh!important;
}
body.ksbc-sal-render-tutor-course-login.ksbc-student-login-ui-active .ksbc-student-login-card{
    width:460px!important;
    max-width:calc(100vw - 48px)!important;
    min-height:590px!important;
    margin:0!important;
    padding:40px 38px 30px!important;
    border:1px solid #d9e3ef!important;
    border-radius:24px!important;
    background:#fff!important;
    box-shadow:0 20px 58px rgba(25,64,115,.10)!important;
}
body.ksbc-sal-render-tutor-course-login.ksbc-student-login-ui-active #tutor-login-form,
body.ksbc-sal-render-tutor-course-login.ksbc-student-login-ui-active .ksbc-student-form-host,
body.ksbc-sal-render-tutor-course-login.ksbc-student-login-ui-active .ksbc-student-tutor-wrapper{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
}
@media (max-width:900px){
    body.ksbc-sal-render-tutor-course-login.ksbc-student-login-ui-active .ksbc-student-login-shell{
        grid-template-columns:1fr!important;
        height:auto!important;
        min-height:100vh!important;
    }
}


/* ==========================================================
   v1.0.30 — ACCOUNT ACTIONS / SIGN-IN SPACING
   Keep an exact 20px visual gap beneath the Remember Me /
   Forgot Password row before the Sign In button.
   ========================================================== */
.ksbc-student-login-meta-controlled,
.ksbc-student-tutor-wrapper .ksbc-student-login-meta-controlled{
    margin:5px 0 20px!important;
}
.ksbc-student-tutor-wrapper .ksbc-student-signin-button,
.ksbc-student-tutor-wrapper #tutor-login-form button[type=submit],
.ksbc-student-tutor-wrapper #tutor-login-form input[type=submit]{
    margin-top:0!important;
}
