@font-face{font-family:BeVietnam;src:url('be-vietnam-pro-latin-400-normal.woff2');font-weight:400;font-display:swap}@font-face{font-family:BeVietnam;src:url('be-vietnam-pro-vietnamese-400-normal.woff2');font-weight:400;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9}@font-face{font-family:BeVietnam;src:url('be-vietnam-pro-latin-700-normal.woff2');font-weight:700;font-display:swap}@font-face{font-family:BeVietnam;src:url('be-vietnam-pro-vietnamese-700-normal.woff2');font-weight:700;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9}@font-face{font-family:LoginIcons;src:url('icons.woff2')}
:root{--ink:#172733;--muted:#58707e;--teal:#167987;--line:#cddce3}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#f9fcfc;font-family:BeVietnam,'Segoe UI',sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}.login-topbar{height:116px;position:absolute;inset:0 0 auto;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:0 4.3%}.login-brand{display:flex;align-items:center;gap:14px}.login-brand-mark{color:var(--teal);font-size:38px;font-weight:700;letter-spacing:-5px;padding-right:5px}.login-brand strong{font-size:23px}.login-back{display:flex;align-items:center;gap:10px;font-size:15px;min-height:44px}.login-back img{width:20px;height:20px}.login-back:hover{color:var(--teal)}.login-shell{display:grid;grid-template-columns:60% 40%;min-height:100vh}.login-scene{background:#edf5f5;padding:175px 7% 35px;display:flex;flex-direction:column;justify-content:center;min-width:0}.scene-copy h2{font-size:clamp(36px,4.1vw,62px);line-height:1.25;letter-spacing:-1.9px;font-weight:700;margin:0 0 15px}.scene-copy p{font-size:clamp(15px,1.7vw,23px);color:var(--muted);margin:0;line-height:1.6}.learning-art{display:block;width:100%;max-height:450px;object-fit:contain;margin:22px auto 0}.login-panel{display:flex;align-items:center;justify-content:center;padding:145px 8% 70px;min-width:0}.login-form-wrap{width:100%;max-width:450px}.login-form-wrap h1{text-align:center;font-size:clamp(24px,2.5vw,35px);font-weight:700;line-height:1.4;letter-spacing:-.8px;margin:0}.login-intro{color:var(--muted);font-size:16px;text-align:center;margin:8px 0 32px}.role-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:26px}.role-switch input{position:absolute;opacity:0;width:1px;height:1px}.role-switch label{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:15px;font-weight:700}.role-switch input:checked+label{border-color:var(--teal);background:#e8f2f3;color:#126d79;box-shadow:inset 0 0 0 .5px var(--teal)}.role-switch input:focus-visible+label{outline:3px solid #77b5c2;outline-offset:3px}.li{font-family:LoginIcons;font-style:normal;font-weight:900}.li-user:before{content:'\f007'}.li-case:before{content:'\f0b1'}.li-mail:before{content:'\f0e0'}.li-lock:before{content:'\f023'}.li-arrow:before{content:'\f061'}.role-switch .li{font-size:18px}.field{display:block;margin-bottom:20px}.field-label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}.field-wrap{display:block;position:relative}.field-icon{position:absolute;left:16px;top:17px;color:#607e8b;font-size:18px;pointer-events:none}.field-input{display:block;width:100%;height:52px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:0 14px 0 44px;font-size:14px;color:var(--ink);outline:none}.field-input::placeholder{color:#8296a3}.field-input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1679871a}.field-input.has-toggle{padding-right:48px}.field-help{display:block;color:#637d8a;font-size:11px;line-height:1.5;margin-top:7px}.password-toggle{position:absolute;right:5px;top:5px;width:42px;height:42px;display:grid;place-items:center;border:0;background:transparent;border-radius:6px;cursor:pointer}.password-toggle:hover{background:#edf5f5}.password-toggle img{width:22px;height:22px}.password-toggle-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.login-options{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 28px;font-size:12px}.remember{display:flex;align-items:center;gap:8px;cursor:pointer}.remember input{width:18px;height:18px;accent-color:var(--teal);margin:0}.forgot{color:#126d79}.forgot:hover{text-decoration:underline}.login-submit{width:100%;min-height:54px;border:0;border-radius:8px;background:var(--teal);color:#fff;font-size:17px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:15px}.login-submit:hover{background:#106774}.login-submit:focus-visible,.password-toggle:focus-visible,a:focus-visible{outline:3px solid #77b5c2;outline-offset:3px}.login-alert{background:#fff0ed;border:1px solid #e8b6ac;border-radius:8px;padding:12px 14px;margin:16px 0;color:#913528;font-size:13px;line-height:1.5}.login-alert p{margin:0}.login-alert p+p{margin-top:5px}
@media(max-width:1050px) and (min-width:768px){.login-shell{grid-template-columns:55% 45%}.login-panel{padding:130px 6% 40px}.login-scene{padding:155px 7% 35px}.scene-copy h2{font-size:38px}.scene-copy p{font-size:16px}.login-form-wrap h1{font-size:25px}.login-intro{font-size:13px}.role-switch label{font-size:13px}.login-options{font-size:11px}}
@media(max-width:767px){.login-topbar{position:relative;height:78px;padding:0 20px;background:#fafcfc}.login-brand{gap:10px}.login-brand-mark{font-size:30px;letter-spacing:-4px}.login-brand strong{font-size:16px}.login-back{font-size:11px;gap:7px}.login-back img{width:17px;height:17px}.login-shell{display:flex;flex-direction:column;min-height:calc(100vh - 78px)}.login-scene{padding:0 22px;background:#eff6f6;height:215px;display:block}.scene-copy{display:none}.learning-art{height:100%;width:100%;margin:0;max-height:none;object-fit:contain}.login-panel{padding:22px 20px 32px;align-items:flex-start}.login-form-wrap{max-width:440px}.login-form-wrap h1{font-size:24px;letter-spacing:-.8px;white-space:nowrap}.login-intro{font-size:13px;margin:6px 0 25px}.role-switch{gap:9px;margin-bottom:22px}.role-switch label{min-height:47px;font-size:13px;gap:8px}.role-switch .li{font-size:17px}.field{margin-bottom:18px}.field-label{font-size:13px;margin-bottom:6px}.field-input{height:47px;font-size:12px}.field-icon{top:15px;font-size:16px}.password-toggle{top:2px}.field-help{font-size:10px}.login-options{font-size:11px;margin:3px 0 23px}.login-submit{min-height:49px;font-size:15px}}
@media(max-width:359px){.login-topbar{padding:0 14px}.login-brand strong{font-size:14px}.login-back{font-size:10px}.login-panel{padding:20px 14px 28px}.login-form-wrap h1{font-size:21px}.login-options{font-size:10px}.login-scene{height:190px}}
@font-face{font-family:BeVietnam;src:url('be-vietnam-pro-latin-500-normal.woff2');font-weight:500;font-display:swap}
@font-face{font-family:BeVietnam;src:url('be-vietnam-pro-vietnamese-500-normal.woff2');font-weight:500;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9}
@font-face{font-family:BeVietnam;src:url('be-vietnam-pro-latin-600-normal.woff2');font-weight:600;font-display:swap}
@font-face{font-family:BeVietnam;src:url('be-vietnam-pro-vietnamese-600-normal.woff2');font-weight:600;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9}
.login-brand strong,.role-switch label,.login-submit{font-weight:600}
.field-label,.forgot,.login-back{font-weight:500}
.login-form-wrap h1{font-weight:600;letter-spacing:-.6px}
.field-input{border-color:#c8d8de;box-shadow:0 1px 2px #163b4b04}
.field-input::placeholder{color:#748994}
.role-switch label{transition:background .15s,border-color .15s}
.role-switch label:hover{background:#f0f6f7;border-color:#89b4bd}
.role-switch input:checked+label{background:#e7f2f3;border-color:#478c98;box-shadow:none}
.login-submit{box-shadow:0 4px 12px #16798718}
.role-icon{width:22px;height:22px}
.login-shell{background:#f9fcfc}.login-scene{margin:0}.remember input{appearance:auto;border:1px solid #8399a5;border-radius:3px}
.scene-copy p span{white-space:nowrap}
@media(min-width:768px){.login-scene .scene-copy h2{font-size:clamp(28px,3.6vw,57px);line-height:1.25;letter-spacing:-1.5px}.login-scene .scene-copy p{font-size:clamp(12px,1.25vw,19px);line-height:1.8;margin-top:14px}.scene-copy{flex-shrink:0}.login-scene .learning-art{min-height:0;flex-shrink:1}}
/* Desktop is a single, self-contained screen. The mobile flow is deliberately
   unaffected so shorter phones can still scroll naturally. */
@media(min-width:768px){
html,body{height:100%;overflow:hidden}.login-shell{height:100vh;min-height:0!important;overflow:hidden}.login-scene{height:100%;min-height:0;margin:0!important;padding:clamp(104px,19vh,155px) 7% clamp(20px,4vh,35px);overflow:hidden}.login-panel{height:100%;min-height:0;padding:clamp(100px,18vh,145px) 8% clamp(28px,8vh,70px);overflow:hidden}.learning-art{max-height:min(380px,calc(100vh - 320px));margin-top:clamp(12px,2.8vh,22px)}}
@media(min-width:768px) and (max-height:700px){.login-topbar{height:78px}.login-brand-mark{font-size:31px}.login-brand strong{font-size:19px}.login-scene{padding-top:92px}.scene-copy h2{font-size:clamp(32px,3.7vw,45px);margin-bottom:7px}.scene-copy p{font-size:16px}.learning-art{max-height:calc(100vh - 255px)}.login-panel{padding-top:84px;padding-bottom:18px}.login-form-wrap h1{font-size:27px;line-height:1.2}.login-intro{font-size:13px;margin:5px 0 16px}.role-switch{margin-bottom:14px}.role-switch label{min-height:46px;font-size:13px}.field{margin-bottom:12px}.field-label{font-size:12px;margin-bottom:5px}.field-input{height:44px;font-size:12px}.field-icon{top:13px}.password-toggle{top:1px}.field-help{font-size:9px;margin-top:4px}.login-options{font-size:11px;margin:2px 0 14px}.login-submit{min-height:46px;font-size:14px}}
