/* Shared auth portal: exact Sảnh Chính auth modal visual rules, scoped to #sonMonGate. */
#sonMonGate.jlpt180-auth-portal[hidden]{display:none}
#sonMonGate.jlpt180-auth-portal{
  position:fixed;
  inset:0;
  z-index:9500;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(42,28,69,.44);
  backdrop-filter:blur(7px);
  box-sizing:border-box;
}
#sonMonGate.jlpt180-auth-portal .ov-box{
  position:relative;
  width:min(430px,100%);
  padding:25px;
  border:1px solid #d7c8eb;
  border-radius:28px;
  background:linear-gradient(180deg,#fff,#f7f0ff);
  box-shadow:0 30px 70px rgba(42,28,69,.28);
  box-sizing:border-box;
}
#sonMonGate.jlpt180-auth-portal .ov-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:0;border-radius:999px;background:#f05d82;color:#fff;font-size:23px;cursor:pointer}
#sonMonGate.jlpt180-auth-portal .ov-title{color:#4a3b67;font-size:26px;font-weight:950;text-align:center}
#sonMonGate.jlpt180-auth-portal .ov-sub{margin:7px 0 16px;color:#7e7396;font-size:11px;text-align:center}
#sonMonGate.jlpt180-auth-portal .jlpt180-auth-form{display:grid;gap:10px}
#sonMonGate.jlpt180-auth-portal .jlpt180-auth-form input{width:100%;min-height:48px;padding:0 14px;border:1px solid #ddd1ec;border-radius:15px;background:#fff;color:#493c66;outline:none;box-sizing:border-box;font:inherit}
#sonMonGate.jlpt180-auth-portal .jlpt180-auth-form input:focus{border-color:#9c7ee3;box-shadow:0 0 0 3px rgba(156,126,227,.14)}
#sonMonGate.jlpt180-auth-portal .ov-login{min-height:47px;border:0;border-radius:15px;background:linear-gradient(180deg,#8e70e4,#6e50ca);color:#fff;font-weight:900;cursor:pointer;font:inherit}
#sonMonGate.jlpt180-auth-portal .jlpt180-google-login{background:linear-gradient(180deg,#f07191,#db4b72)}
#sonMonGate.jlpt180-auth-portal .jlpt180-auth-link{border:0;background:none;color:#7459c4;font-weight:800;cursor:pointer;font:inherit}
#sonMonGate.jlpt180-auth-portal .jlpt-shell-auth-hidden{display:none}

/* Sảnh Chính keeps a distinct original mobile auth skin; mirror those exact rules on shared surfaces. */
@media (max-width:899px){
  #sonMonGate.jlpt180-auth-portal{z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(5,26,45,.72);backdrop-filter:none}
  #sonMonGate.jlpt180-auth-portal .ov-box{width:min(380px,100%);position:relative;padding:30px 22px 24px;border:2px solid rgba(255,184,213,.76);border-radius:16px;background:linear-gradient(180deg,rgba(238,255,255,.96),rgba(185,255,229,.92));text-align:center;box-shadow:0 16px 36px rgba(156,104,134,.14),inset 0 0 0 1px rgba(255,255,255,.76)}
  #sonMonGate.jlpt180-auth-portal .ov-close{right:12px;top:10px;width:30px;height:30px;border:0;border-radius:50%;background:rgba(7,52,81,.12);color:#073451;font-size:22px;line-height:1}
  #sonMonGate.jlpt180-auth-portal .ov-mark{width:88px;height:88px;margin:0 auto 10px;background:url('../ChatGPT_Image_16_25_25_6_thg_5__2026-removebg-preview.webp') center/contain no-repeat}
  #sonMonGate.jlpt180-auth-portal .ov-title{color:#073451;font-size:22px;font-weight:900}
  #sonMonGate.jlpt180-auth-portal .ov-sub{margin:8px 0 18px;color:rgba(7,52,81,.72);font-size:13px;font-weight:700}
  #sonMonGate.jlpt180-auth-portal .ov-login{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 22px;border-radius:999px;background:linear-gradient(135deg,#32dfff,#376dff);color:#fff;font-weight:900;text-decoration:none;box-shadow:0 8px 18px rgba(40,111,255,.26)}
  #sonMonGate.jlpt180-auth-portal .jlpt180-auth-form{flex-direction:column;gap:10px;width:100%;margin-top:10px}
  #sonMonGate.jlpt180-auth-portal .jlpt180-auth-form input{width:100%;min-height:44px;border:1px solid rgba(7,52,81,.18);border-radius:12px;background:rgba(255,255,255,.88);color:#073451;font-size:15px;font-weight:700;padding:0 14px;box-sizing:border-box;outline:none;pointer-events:auto;user-select:text;-webkit-user-select:text}
  #sonMonGate.jlpt180-auth-portal .jlpt180-auth-form input:focus{border-color:#32dfff;box-shadow:0 0 0 3px rgba(50,223,255,.18)}
  #sonMonGate.jlpt180-auth-portal .jlpt180-auth-form .ov-login{width:100%;border:0;cursor:pointer}
  #sonMonGate.jlpt180-auth-portal .jlpt180-auth-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:0;background:transparent;color:#0f6a88;font-size:13px;font-weight:900;text-decoration:none;cursor:pointer}
  #sonMonGate.jlpt180-auth-portal .jlpt180-google-login{background:linear-gradient(135deg,#fff,#e8f0fe);color:#123b5a;box-shadow:0 4px 0 rgba(15,76,117,.22)}
}
