*{box-sizing:border-box}.eplms-portal,.eplms-login{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#271a20}.eplms-portal{background:#f7f5f6;min-height:100vh;margin:0 calc(50% - 50vw);padding-bottom:30px}.eplms-topbar{height:76px;background:#fff;border-bottom:1px solid #eee7eb;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px)}.eplms-brand{display:flex;align-items:center;gap:11px}.eplms-brand-mark{width:38px;height:38px;display:grid;place-items:center;background:#64172f;color:#fff;font-weight:800;border-radius:10px;font-size:20px}.eplms-brand strong{display:block;letter-spacing:1.5px;font-size:14px;color:#64172f}.eplms-brand small{display:block;font-size:9px;letter-spacing:1.5px;color:#83747b;margin-top:3px}.eplms-user{font-size:13px;color:#5d4c54}.eplms-user a{color:#64172f;text-decoration:none;font-weight:700;margin-left:10px}.eplms-main{max-width:1180px;margin:0 auto;padding:44px 24px}.eplms-welcome{display:flex;align-items:center;justify-content:space-between;padding:34px;border-radius:18px;background:linear-gradient(120deg,#2a1720,#64172f);color:white;margin-bottom:34px}.eplms-eyebrow{font-size:10px;letter-spacing:2px;color:#eacbd7}.eplms-welcome h1{font-size:30px;line-height:1.2;margin:10px 0;color:white}.eplms-welcome p{margin:0;color:#eadde2}.eplms-progress{background:#ffffff18;border:1px solid #ffffff33;border-radius:12px;padding:14px 20px;text-align:center;min-width:130px}.eplms-progress strong{display:block;font-size:28px}.eplms-progress span{font-size:11px;color:#eadde2}.eplms-topic{margin:34px 0}.eplms-topic-head{margin-bottom:16px}.eplms-topic-head>span{font-size:11px;color:#8b6b78;text-transform:uppercase;letter-spacing:1px}.eplms-topic-head h2{font-size:23px;margin:5px 0;color:#351c28}.eplms-lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.eplms-lesson{background:#fff;border:1px solid #eee7eb;border-radius:14px;overflow:hidden;box-shadow:0 7px 22px #2a17200a}.eplms-video{position:relative;background:#160e12;aspect-ratio:16/9}.eplms-video video{width:100%;height:100%;display:block;object-fit:contain}.eplms-play-label{position:absolute;top:12px;left:12px;background:#64172f;color:white;border-radius:4px;padding:5px 8px;font-size:9px;letter-spacing:1px;pointer-events:none}.eplms-lesson-info{padding:19px}.eplms-lesson-info h3{font-size:17px;margin:0 0 7px;color:#321b26}.eplms-lesson-info p{font-size:13px;color:#796c72;line-height:1.55;margin:0}.eplms-resources{border-top:1px solid #eee7eb;margin-top:16px;padding-top:13px}.eplms-resources>strong{display:block;font-size:11px;color:#76636c;margin-bottom:8px}.eplms-resource-link{display:flex;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:7px;background:#faf7f8;color:#3b2630;text-decoration:none;font-size:12px;margin-top:6px}.eplms-resource-link span{color:#64172f;font-weight:700}.eplms-empty,.eplms-message{background:white;border:1px solid #eee;border-radius:14px;padding:36px;text-align:center}.eplms-footer{text-align:center;color:#95868d;font-size:11px;padding:20px}.eplms-login{min-height:600px;display:grid;place-items:center;background:#f7f5f6;padding:28px}.eplms-login-card{background:#fff;border:1px solid #eee7eb;border-radius:18px;padding:38px;width:min(100%,440px);box-shadow:0 18px 50px #2a172014}.eplms-login-card h1{font-size:27px;margin:30px 0 7px;color:#2c1821}.eplms-login-card>p{font-size:13px;color:#82747a;margin:0 0 25px}.eplms-login-card label{display:block;font-size:12px;font-weight:700;margin:15px 0 7px}.eplms-login-card input{width:100%;height:46px;border:1px solid #ded5da;border-radius:8px;padding:0 12px;font-size:14px}.eplms-login-card button{width:100%;border:0;border-radius:8px;background:#64172f;color:#fff;font-weight:700;padding:14px;margin-top:22px;cursor:pointer}.eplms-login-card>small{display:block;text-align:center;color:#94858c;font-size:11px;margin-top:20px}.eplms-login-error{background:#fff0f0;color:#a3222b;padding:11px;border-radius:7px;font-size:12px}@media(max-width:760px){.eplms-main{padding:25px 15px}.eplms-welcome{padding:23px;display:block}.eplms-welcome h1{font-size:24px}.eplms-progress{display:inline-block;margin-top:18px}.eplms-lesson-grid{grid-template-columns:1fr}.eplms-topbar{padding:0 15px}.eplms-user{font-size:11px}.eplms-login-card{padding:27px}}

/* Refined Edupract student sign-in */
.eplms-login-page{width:100%;min-height:calc(100vh - 40px);display:flex;align-items:center;justify-content:center;padding:46px 22px;background:radial-gradient(circle at 12% 12%,#f1e6eb 0,transparent 30%),#f7f5f6}
.eplms-login-shell{width:min(100%,1080px);min-height:650px;display:grid;grid-template-columns:1.02fr .98fr;background:#fff;border:1px solid #eee5e9;border-radius:24px;overflow:hidden;box-shadow:0 24px 75px rgba(49,19,34,.12)}
.eplms-login-visual{position:relative;overflow:hidden;background:linear-gradient(145deg,#27131e 0%,#4a1a30 54%,#701d3c 100%);padding:42px;color:#fff;display:flex}
.eplms-login-visual:before,.eplms-login-visual:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.10);border-radius:50%;pointer-events:none}
.eplms-login-visual:before{width:520px;height:520px;right:-245px;bottom:-235px}
.eplms-login-visual:after{width:360px;height:360px;right:-165px;bottom:-155px}
.eplms-login-visual-inner{position:relative;z-index:1;display:flex;flex-direction:column;width:100%}
.eplms-login-brand{display:flex;align-items:center;gap:12px}
.eplms-login-brand .eplms-brand-mark{background:#fff;color:#64172f;width:43px;height:43px;border-radius:12px;font-size:22px}
.eplms-login-brand strong{display:block;color:#fff;letter-spacing:2px;font-size:15px}
.eplms-login-brand small{display:block;color:#e5cbd5;font-size:9px;letter-spacing:1.7px;margin-top:4px}
.eplms-login-message{margin:auto 0;padding:70px 0 55px;max-width:440px}
.eplms-login-overline{font-size:10px;letter-spacing:2.4px;font-weight:700;color:#e9c5d3}
.eplms-login-message h1{font-size:clamp(34px,4vw,52px);line-height:1.12;letter-spacing:-1.7px;font-weight:750;color:#fff;margin:20px 0 18px}
.eplms-login-message h1 em{font-style:normal;color:#e8b9cb}
.eplms-login-message>p{font-size:15px;line-height:1.8;color:#e8d9df;max-width:370px;margin:0}
.eplms-login-points{display:grid;gap:16px;margin-top:38px}
.eplms-login-points span{font-size:13px;color:#f6eaf0;display:flex;align-items:center;gap:13px}
.eplms-login-points b{font-size:10px;color:#e8b9cb;letter-spacing:1px}
.eplms-login-visual-foot{font-size:9px;letter-spacing:2px;color:#d8b9c6}
.eplms-login-content{display:flex;align-items:center;justify-content:center;padding:56px 48px;background:#fff}
.eplms-login-card{width:100%;max-width:380px;border:0;border-radius:0;padding:0;box-shadow:none;background:transparent}
.eplms-login-mobile-brand{display:none}
.eplms-login-welcome{font-size:10px;letter-spacing:2px;font-weight:800;color:#8d526a}
.eplms-login-card h2{font-size:34px;line-height:1.2;letter-spacing:-1px;color:#2c1821;margin:12px 0 9px}
.eplms-login-card .eplms-login-subtitle{font-size:13px;line-height:1.65;color:#81737a;margin:0 0 30px}
.eplms-login-form label{display:block;font-size:12px;font-weight:700;color:#3b2931;margin:19px 0 8px}
.eplms-login-input-wrap{height:51px;display:flex;align-items:center;border:1px solid #e5dce1;border-radius:9px;background:#fff;transition:border-color .2s,box-shadow .2s}
.eplms-login-input-wrap:focus-within{border-color:#8b3a5a;box-shadow:0 0 0 3px rgba(100,23,47,.08)}
.eplms-login-input-wrap .eplms-input-icon{width:43px;text-align:center;color:#956d7e;font-size:18px;flex:none}
.eplms-login-input-wrap input{height:49px!important;min-width:0;width:100%;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0 13px 0 0!important;font-size:13px!important;color:#2b1c23!important}
.eplms-login-input-wrap input::placeholder{color:#b2a6ac}
.eplms-login-form button{height:51px;width:100%;display:flex;align-items:center;justify-content:center;gap:14px;margin-top:27px;border:0;border-radius:9px;background:#64172f;color:#fff;font-size:13px;font-weight:750;letter-spacing:.2px;cursor:pointer;transition:background .2s,transform .2s}
.eplms-login-form button:hover{background:#4e1025;transform:translateY(-1px)}
.eplms-login-form button span{font-size:18px;font-weight:400}
.eplms-login-help{display:flex;align-items:center;gap:12px;margin-top:29px;padding:15px 14px;background:#faf7f8;border:1px solid #f0e8ec;border-radius:10px}
.eplms-login-help-icon{width:25px;height:25px;display:grid;place-items:center;flex:none;border-radius:50%;background:#f0e2e8;color:#64172f;font-size:13px;font-weight:800}
.eplms-login-help strong{display:block;font-size:11px;color:#44313a}
.eplms-login-help small{display:block;font-size:10px;color:#8b7c83;margin-top:3px}
.eplms-login-privacy{text-align:center;font-size:10px;color:#9a8b92;margin-top:23px}
.eplms-login-privacy span{margin-right:5px}
.eplms-login-error{display:flex;flex-direction:column;gap:4px;margin:0 0 18px;padding:13px 14px;border:1px solid #f2d4d5;border-radius:9px;background:#fff7f7;color:#9e252c;font-size:11px;line-height:1.55}
.eplms-login-error strong{font-size:12px}
@media(max-width:760px){
 .eplms-login-page{min-height:calc(100vh - 20px);padding:22px 13px}
 .eplms-login-shell{grid-template-columns:1fr;min-height:0;max-width:470px;border-radius:17px}
 .eplms-login-visual{display:none}
 .eplms-login-content{padding:34px 25px 29px}
 .eplms-login-mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:34px}
 .eplms-login-mobile-brand .eplms-brand-mark{width:37px;height:37px;font-size:19px}
 .eplms-login-mobile-brand strong{display:block;color:#64172f;font-size:13px;letter-spacing:1.6px}
 .eplms-login-mobile-brand small{display:block;color:#8d7e85;font-size:8px;letter-spacing:1.3px;margin-top:3px}
 .eplms-login-card h2{font-size:29px}
}

/* Login page refinements for WordPress + Divi */
.eplms-login-page{position:relative;z-index:1;width:100%;max-width:none!important;margin:0!important;padding:clamp(22px,4vw,54px) 18px!important;min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f6f2f4}
.eplms-login-page *{box-sizing:border-box}
.eplms-login-shell{width:min(1120px,100%);min-height:650px;margin:0 auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:22px;overflow:hidden}
.eplms-login-visual{padding:clamp(28px,4vw,52px)}
.eplms-login-message h1{font-size:clamp(34px,4.2vw,54px);max-width:460px}
.eplms-login-content{padding:clamp(28px,5vw,64px)}
.eplms-login-card{max-width:410px}
.eplms-login-form-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px}
.eplms-login-form-meta .eplms-remember{display:flex;align-items:center;gap:7px;margin:0;font-size:11px;font-weight:500;color:#74666d}
.eplms-remember input{accent-color:#64172f;width:14px;height:14px;margin:0}
.eplms-forgot-note{font-size:10px;color:#8b5269;text-align:right}
.eplms-login-input-wrap{position:relative}
.eplms-login-input-wrap input{padding-right:62px!important}
.eplms-password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#7d4058;font-size:11px;font-weight:700;padding:7px;cursor:pointer}
.eplms-password-toggle:hover{color:#4d1026}
.eplms-login-form button[type=submit]{font-size:13px;letter-spacing:.1px}
.eplms-login-form button[type=submit]:focus-visible,.eplms-password-toggle:focus-visible,.eplms-login-input-wrap input:focus-visible{outline:3px solid rgba(100,23,47,.22);outline-offset:2px}
.eplms-login-help{margin-top:25px}
.eplms-login-privacy{padding-top:2px}
.eplms-login-page a{color:#64172f}
@media(max-width:850px){
 .eplms-login-page{min-height:100vh;padding:18px 12px!important}
 .eplms-login-shell{max-width:500px;min-height:0;grid-template-columns:1fr;border-radius:18px}
 .eplms-login-visual{display:none}
 .eplms-login-content{padding:34px 28px}
 .eplms-login-mobile-brand{display:flex}
}
@media(max-width:420px){
 .eplms-login-content{padding:27px 19px}
 .eplms-login-card h2{font-size:28px}
 .eplms-login-form-meta{align-items:flex-start;flex-direction:column}
 .eplms-forgot-note{text-align:left}
}

/* Exact-fit, no-scroll login canvas for the supplied 1672 x 941 reference.
   The fixed canvas also bypasses Divi section/row padding and theme headers. */
html:has(.eplms-login-page),body:has(.eplms-login-page){height:100%;overflow:hidden!important}
body:has(.eplms-login-page) #page-container,
body:has(.eplms-login-page) #et-main-area,
body:has(.eplms-login-page) #main-content,
body:has(.eplms-login-page) .et_builder_inner_content,
body:has(.eplms-login-page) .et_pb_section,
body:has(.eplms-login-page) .et_pb_row,
body:has(.eplms-login-page) .et_pb_column,
body:has(.eplms-login-page) .et_pb_module{margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}
.eplms-login-page{position:fixed!important;inset:0!important;z-index:999999!important;width:100vw!important;height:100vh!important;height:100dvh!important;min-height:0!important;max-height:100vh!important;overflow:hidden!important;margin:0!important;padding:0!important;display:block!important;background:#f7f6f7!important}
.eplms-login-shell{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-width:none!important;margin:0!important;display:grid!important;grid-template-columns:46% 54%!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:hidden!important}
.eplms-login-visual{min-width:0;min-height:0;height:100%;padding:4.4vh 7.1vw 3.5vh 7.1vw!important}
.eplms-login-visual:before{width:125%;height:30%;right:-8%;bottom:-12%;border:0;border-radius:55% 45% 0 0;background:linear-gradient(110deg,#9f174c 0%,#c22d62 55%,#e8a5bd 100%);transform:rotate(-5deg);opacity:.95}
.eplms-login-visual:after{width:130%;height:22%;right:-12%;bottom:-15%;border:0;border-radius:50% 50% 0 0;background:linear-gradient(110deg,#d34c7d,#f5dce5);transform:rotate(-4deg);opacity:.95}
.eplms-login-message{padding:0;margin:auto 0;max-width:540px}
.eplms-login-message h1{font-size:clamp(36px,3.5vw,60px);line-height:1.13;letter-spacing:-1.6px;margin:4vh 0 2.5vh}
.eplms-login-message>p{font-size:clamp(14px,1.35vw,21px);line-height:1.45;max-width:440px}
.eplms-login-points{gap:2.15vh;margin-top:4.3vh}
.eplms-login-points span{font-size:clamp(12px,1.05vw,17px);gap:14px}
.eplms-login-points b{font-size:10px}
.eplms-login-visual-foot{font-size:9px;position:relative;z-index:2}
.eplms-login-content{height:100%;min-height:0;min-width:0;padding:4vh 4vw!important;display:flex;align-items:center;justify-content:center;background:#f7f6f7}
.eplms-login-card{width:min(100%,810px)!important;max-width:810px!important;padding:clamp(26px,3.2vw,58px)!important;border:1px solid #eee9ec!important;border-radius:22px!important;background:#fff!important;box-shadow:0 14px 42px rgba(40,15,27,.12)!important}
.eplms-login-card h2{font-size:clamp(26px,2.1vw,36px);margin:1.2vh 0 .8vh;text-align:center}
.eplms-login-welcome{display:block;text-align:center}
.eplms-login-card .eplms-login-subtitle{text-align:center;margin-bottom:2.6vh;font-size:clamp(12px,.95vw,15px)}
.eplms-login-form label{font-size:clamp(12px,.95vw,15px);margin:1.5vh 0 .7vh}
.eplms-login-input-wrap{height:clamp(44px,5.6vh,58px)}
.eplms-login-input-wrap input{height:100%!important;font-size:clamp(13px,1vw,16px)!important}
.eplms-login-form button[type=submit]{height:clamp(48px,7vh,66px);margin-top:2.5vh;font-size:clamp(14px,1.1vw,18px)}
.eplms-login-help{margin-top:2.4vh;padding:12px 14px}
.eplms-login-privacy{margin-top:1.8vh}
.eplms-login-form-meta{margin-top:1vh}
.eplms-login-mobile-brand{display:none!important}
@media(max-width:900px){
 .eplms-login-shell{grid-template-columns:40% 60%!important}
 .eplms-login-visual{padding:28px 4vw!important}
 .eplms-login-message h1{font-size:clamp(29px,4vw,40px)}
 .eplms-login-points{gap:1.5vh}
 .eplms-login-card{padding:26px!important}
}
@media(max-width:650px){
 .eplms-login-page{overflow:hidden!important}
 .eplms-login-shell{grid-template-columns:1fr!important}
 .eplms-login-visual{display:none!important}
 .eplms-login-content{padding:14px!important}
 .eplms-login-card{max-width:460px!important;padding:clamp(20px,5vw,30px)!important;border-radius:17px!important}
 .eplms-login-mobile-brand{display:flex!important;margin-bottom:2vh}
 .eplms-login-card h2{font-size:27px}
 .eplms-login-card .eplms-login-subtitle{margin-bottom:2vh}
 .eplms-login-form label{margin:1.2vh 0 .6vh}
 .eplms-login-help{margin-top:1.8vh}
 .eplms-login-privacy{margin-top:1.3vh}
}
@media(max-height:700px) and (min-width:651px){
 .eplms-login-visual{padding-top:3vh!important;padding-bottom:2vh!important}
 .eplms-login-message h1{font-size:clamp(30px,3vw,43px);margin:2vh 0 1.5vh}
 .eplms-login-points{gap:1.2vh;margin-top:2.5vh}
 .eplms-login-card{padding:22px 34px!important}
 .eplms-login-card .eplms-login-subtitle{margin-bottom:1.5vh}
 .eplms-login-form label{margin:1vh 0 .5vh}
 .eplms-login-form button[type=submit]{margin-top:1.6vh;height:48px}
 .eplms-login-help{margin-top:1.5vh}
}

/* v1.0.4: make password visibility control explicit and mobile layout usable */
.eplms-login-input-wrap .eplms-password-toggle{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  position:absolute!important;right:10px!important;top:50%!important;left:auto!important;
  transform:translateY(-50%)!important;width:auto!important;min-width:48px!important;
  height:34px!important;margin:0!important;padding:6px 8px!important;
  border:0!important;border-radius:6px!important;background:#f7eef2!important;
  color:#64172f!important;font-size:12px!important;font-weight:700!important;
  line-height:1!important;box-shadow:none!important;z-index:5!important;cursor:pointer!important;
}
.eplms-login-input-wrap .eplms-password-toggle:hover{background:#f0dfe7!important;color:#4d1026!important}
.eplms-login-input-wrap .eplms-password-toggle:focus-visible{outline:2px solid #8b3a5a!important;outline-offset:2px!important}
.eplms-login-input-wrap input{padding-right:78px!important}
@media(max-width:650px){
  html:has(.eplms-login-page),body:has(.eplms-login-page){height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important}
  body:has(.eplms-login-page) #page-container,
  body:has(.eplms-login-page) #et-main-area,
  body:has(.eplms-login-page) #main-content,
  body:has(.eplms-login-page) .et_builder_inner_content,
  body:has(.eplms-login-page) .et_pb_section,
  body:has(.eplms-login-page) .et_pb_row,
  body:has(.eplms-login-page) .et_pb_column,
  body:has(.eplms-login-page) .et_pb_module{height:auto!important;min-height:0!important;overflow:visible!important}
  .eplms-login-page{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:100svh!important;max-height:none!important;overflow:visible!important;padding:18px 12px!important;display:flex!important;align-items:center!important;justify-content:center!important}
  .eplms-login-shell{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:0!important;max-width:480px!important;margin:auto!important;display:block!important;overflow:visible!important;border-radius:18px!important;box-shadow:0 12px 38px rgba(40,15,27,.12)!important}
  .eplms-login-content{height:auto!important;min-height:0!important;padding:24px 19px!important;display:flex!important}
  .eplms-login-card{width:100%!important;max-width:none!important;padding:22px 18px!important}
  .eplms-login-mobile-brand{display:flex!important;margin-bottom:20px!important}
  .eplms-login-welcome{font-size:10px!important}
  .eplms-login-card h2{font-size:27px!important;margin:8px 0 6px!important}
  .eplms-login-card .eplms-login-subtitle{font-size:13px!important;line-height:1.5!important;margin:0 0 19px!important}
  .eplms-login-form label{font-size:13px!important;margin:15px 0 7px!important}
  .eplms-login-input-wrap{height:50px!important}
  .eplms-login-input-wrap input{height:48px!important;font-size:16px!important;padding-left:8px!important;padding-right:76px!important}
  .eplms-login-input-wrap .eplms-input-icon{width:34px!important;font-size:15px!important}
  .eplms-login-form-meta{margin-top:12px!important;flex-direction:row!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}
  .eplms-login-form-meta .eplms-remember{font-size:11px!important}
  .eplms-forgot-note{font-size:10px!important;text-align:right!important}
  .eplms-login-form button[type=submit]{height:51px!important;margin-top:20px!important;font-size:14px!important}
  .eplms-login-help{margin-top:17px!important;padding:12px!important}
  .eplms-login-help strong{font-size:11px!important}
  .eplms-login-help small{font-size:10px!important;line-height:1.4!important}
  .eplms-login-privacy{font-size:10px!important;margin-top:15px!important}
}
@media(max-width:360px){
  .eplms-login-page{padding:10px 8px!important}
  .eplms-login-content{padding:18px 12px!important}
  .eplms-login-card{padding:19px 14px!important}
  .eplms-login-form-meta{align-items:flex-start!important;flex-direction:column!important}
  .eplms-forgot-note{text-align:left!important}
}
