@charset "utf-8";
/* Use the same theme tokens and persisted preference as the site navigation. */
body:has(.royal-login) { background: var(--site-bg, #f6f8fc); color: var(--site-text, #202838); }
#mb_login.royal-login { width: calc(100% - 32px); max-width: 460px; margin: clamp(24px, 7vh, 72px) auto 36px; text-align: left; font-size: 14px; line-height: 1.6; color: var(--site-text); }
#mb_login.royal-login::before, #mb_login.royal-login::after { display: none; }
#mb_login .royal-login-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; }
#mb_login .royal-home { display:inline-flex; gap:8px; align-items:center; min-height:44px; color:var(--site-muted); font-weight:700; }
#mb_login .mbskin_box { padding:36px; border:1px solid var(--site-border); border-radius:20px; background:var(--site-surface); box-shadow:var(--site-shadow); overflow:hidden; }
#mb_login .royal-login-heading { text-align:center; margin-bottom:30px; }
#mb_login .royal-login-brand { display:inline-block; max-width:100%; }
#mb_login .royal-login-brand img { display:block; width:240px; max-width:100%; height:auto; object-fit:contain; }
#mb_login h1 { position:static; width:auto; height:auto; overflow:visible; margin:26px 0 6px; font-size:28px; font-weight:800; color:var(--site-text); letter-spacing:-1px; }
#mb_login .royal-login-heading p { margin:0; color:var(--site-muted); font-size:14px; }
#mb_login #login_fs { padding:0; margin:0; border:0; }
#mb_login .royal-login-field { margin-bottom:18px; }
#mb_login .royal-login-field > label { display:block; margin:0 0 8px; font-weight:700; color:var(--site-text); }
#mb_login #login_fs .frm_input { display:block; width:100%; height:52px; margin:0; padding:0 15px; border:1px solid var(--site-border); border-radius:10px; background:var(--site-surface-soft); color:var(--site-text); box-shadow:none; font:inherit; font-size:16px; transition:border-color .15s, box-shadow .15s; }
#mb_login #login_fs .frm_input::placeholder { color:var(--site-muted); opacity:1; font-size:14px; }
#mb_login #login_fs .frm_input:focus { outline:none; border-color:var(--site-primary); box-shadow:0 0 0 3px rgba(26,115,252,.16); }
#mb_login .royal-password-wrap { position:relative; }
#mb_login #login_fs #login_pw { padding-right:52px; }
#mb_login .royal-password-toggle { position:absolute; right:4px; top:4px; width:44px; height:44px; border:0; border-radius:8px; background:transparent; color:var(--site-muted); font-size:18px; cursor:pointer; }
#mb_login #login_info { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; margin:2px 0 18px; font-size:13px; }
#mb_login #login_info::after { display:none; }
#mb_login .royal-auto { display:inline-flex; align-items:center; gap:8px; min-height:36px; margin:0; cursor:pointer; color:var(--site-text); }
#mb_login .royal-auto input { width:18px; height:18px; margin:0; accent-color:#1a73fc; }
#mb_login #login_info a { display:inline-flex; align-items:center; min-height:36px; color:var(--site-muted); }
#mb_login #login_fs .btn_submit { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; height:52px; margin:0; padding:0 16px; border:0; border-radius:10px; background:#1466e4; color:#fff; font:inherit; font-size:16px; font-weight:800; cursor:pointer; }
#mb_login #login_fs .btn_submit:hover { background:#1058ca; }
#mb_login .royal-login-note { margin:12px 0 0; text-align:center; color:var(--site-muted); font-size:12px; }
#mb_login .royal-login-join { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 16px; border-top:1px solid var(--site-border); margin-top:26px; padding-top:20px; color:var(--site-muted); font-size:13px; }
#mb_login .royal-login-join a { display:inline-flex; align-items:center; gap:8px; min-height:36px; color:var(--site-primary); font-weight:800; }
#mb_login .royal-login-footer { text-align:center; margin:20px 0 0; color:var(--site-muted); font-size:12px; }
#mb_login #sns_login { padding:20px 0 0; margin:22px 0 0; border-top:1px solid var(--site-border); background:transparent; }
#mb_login #sns_login h3 { color:var(--site-muted); }
#mb_login a:focus-visible, #mb_login button:focus-visible, #mb_login input[type="checkbox"]:focus-visible { outline:3px solid var(--site-primary); outline-offset:3px; }
#mb_login input:-webkit-autofill { -webkit-text-fill-color:var(--site-text); -webkit-box-shadow:0 0 0 1000px var(--site-surface-soft) inset; }
@media (max-width:480px) {
    #mb_login.royal-login { margin-top:20px; }
    #mb_login .mbskin_box { padding:28px 22px; border-radius:16px; }
    #mb_login .royal-login-brand img { width:214px; }
    #mb_login .royal-login-heading { margin-bottom:26px; }
}
#mb_login h1 { line-height:1.4; }
/* Keep the shared chat launcher reachable without covering login fields. */
body:has(.royal-login) .aidex-launcher-wrap { position:relative; top:auto; bottom:auto; left:auto; right:auto; transform:none; margin:24px 24px 30px auto; }

/* Phone and tablet login: comfortable touch targets and compact vertical rhythm. */
@media (max-width:767.98px) {
    #mb_login.royal-login { margin-top:12px; margin-bottom:max(24px, env(safe-area-inset-bottom)); }
    #mb_login .royal-login-toolbar { margin-bottom:12px; }
    #mb_login .site-theme-toggle { min-height:44px; }
    #mb_login .mbskin_box { padding:24px 20px; border-radius:16px; }
    #mb_login .royal-login-brand img { width:210px; }
    #mb_login h1 { margin-top:20px; font-size:26px; }
    #mb_login .royal-login-heading { margin-bottom:24px; }
    #mb_login .royal-login-field { margin-bottom:16px; }
    #mb_login .royal-auto, #mb_login #login_info a, #mb_login .royal-login-join a { min-height:44px; }
    #mb_login .royal-login-join { margin-top:20px; padding-top:14px; }
    #mb_login .royal-login-footer { margin-top:16px; }
}
@media (max-width:359.98px) {
    #mb_login .mbskin_box { padding:22px 16px; }
    #mb_login #login_info { gap:0 8px; font-size:12px; }
    #mb_login .royal-login-heading p { font-size:13px; }
}

/* Square login panels and controls on desktop and mobile. */
#mb_login,#mb_login *,#mb_login *::before,#mb_login *::after,
#mb_login_notmb,#mb_login_notmb *,#mb_login_od_wr,#mb_login_od_wr *{border-radius:0!important}
