/* Large, calm Vietnamese retail login; original authentication form and handlers. */
body[data-path="login"] {background:linear-gradient(145deg,#edf5ff,#f6f9fc 60%,#eaf5f4)}
body .for-login,body .for-forgot,body .for-signup,body .for-login-with-email-link {padding:48px 16px}
body .page-card {width:100%;max-width:460px!important;border-radius:18px;border:1px solid #dce5ef;box-shadow:0 12px 40px #183c6912;padding:32px!important;background:#fff}
body .page-card-head {margin-bottom:28px}
body .page-card-head .app-logo {width:220px!important;max-width:100%!important;height:auto!important;max-height:none!important;margin-bottom:22px;background:#102f50;border-radius:10px;padding:12px;object-fit:contain}
body .page-card-head h4 {font-size:24px!important;font-weight:700;line-height:1.4;color:#163b60}
body .page-card-subtitle {font-size:16px;line-height:1.6;color:#62758b}
body .page-card .form-label {font-size:16px;font-weight:600;color:#344e69;margin-bottom:8px}
body .page-card .form-control {height:50px!important;min-height:50px;font-size:17px;border-radius:9px;border:1px solid #ccd9e8;padding-left:40px!important;background:#fff}
body .page-card .form-control:focus {border-color:#0869c9;box-shadow:0 0 0 3px #0869c920}
/* Center icons against the input wrapper, independent of field height. */
body[data-path="login"] .page-card .email-field,
body[data-path="login"] .page-card .password-field {position:relative}
body[data-path="login"] .page-card .field-icon,
body[data-path="login"] .page-card .toggle-password {top:50%!important;transform:translateY(-50%);margin:0}
body[data-path="login"] .page-card .field-icon {left:12px}
body[data-path="login"] .page-card .toggle-password {right:12px}
body[data-path="login"] .page-card .form-control {box-sizing:border-box;line-height:24px;padding-top:12px;padding-bottom:12px}
body[data-path="login"] .page-card .password-field .form-control {padding-right:44px}
body .page-card .form-group {margin-bottom:22px}
body .page-card .btn {min-height:48px!important;font-size:16px;border-radius:9px;font-weight:600}
body .page-card .btn-login {background:#0869c9!important;color:#fff!important;border-color:#0869c9}
body .page-card .forgot-password-message {font-size:15px;margin-top:12px}
body .page-card .forgot-password-message a {color:#0869c9}
img[src*="joola-tqk"] {background:#102f50;border-radius:8px;padding:8px;object-fit:contain}
@media(max-width:520px){body .page-card {padding:24px!important}body .for-login,body .for-forgot,body .for-signup {padding:24px 12px}body .page-card-head h4 {font-size:22px!important}}
body .page-card .form-label {font-size:16px!important;font-weight:600!important}
body .page-card .form-control {font-size:17px!important}
body .page-card .btn {font-size:16px!important}
body .page-card .page-card-subtitle {font-size:16px!important}
/* TQK entrance, visually shared with the retail workspace. */
body[data-path="login"] {background:#f0f2f5;color:#263445}
body[data-path="login"] .page-card {background:#ffffff;border:1px solid #dfe4ea;border-radius:8px 28px 8px 28px;box-shadow:0 18px 60px #0057b810;border-top:5px solid #0070f4}
body[data-path="login"] .page-card-head .app-logo {background:#0061c7;border-radius:8px;padding:18px;width:240px!important}
body[data-path="login"] .page-card-head h4 {color:#0057b8}
body[data-path="login"] .page-card .btn-login {background:#006bd6!important;border-color:#006bd6}
body[data-path="login"] .page-card .form-control {background:#ffffff;border-color:#dfe4ea}
body[data-path="login"] .page-card .form-control:focus {border-color:#006bd6;box-shadow:0 0 0 3px #006bd61a}
body[data-path="login"] .page-card .forgot-password-message a {color:#006bd6}
/* Ô đăng nhập ở giữa màn hình, không có dải slogan (chủ dự án chọn 26/09).
   Trang đăng nhập không có thanh menu: bỏ khoảng 60px chừa cho thanh menu, khung cao đúng bằng màn hình (dvh: trừ thanh địa chỉ
   trên điện thoại) nên không cuộn lên xuống được (chủ dự án báo 28/09). */
body[data-path="login"] .page-content-wrapper {padding-top:0!important}
body[data-path="login"] .web-footer {display:none}
body[data-path="login"] .for-login,body[data-path="login"] .for-forgot,body[data-path="login"] .for-signup,body[data-path="login"] .for-login-with-email-link {display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;margin:0;padding:24px 16px;box-sizing:border-box}
body[data-path="login"] .page-card {margin:0 auto}
}
body[data-path="login"] .page-card {border-radius:8px}
@media(max-height:780px){body[data-path="login"] .page-card {padding:22px 28px!important}body[data-path="login"] .page-card-head {margin-bottom:16px}body[data-path="login"] .page-card-head .app-logo {margin-bottom:12px;padding:12px;width:200px!important}body[data-path="login"] .page-card .form-group {margin-bottom:14px}}
/* Màn thấp (máy POS 1024×600) và điện thoại: thẻ đăng nhập gọn lại, không cao hơn màn; Frappe để thẻ min-height 100vh trên điện thoại */
@media(max-height:640px){body[data-path="login"] .for-login,body[data-path="login"] .for-forgot,body[data-path="login"] .for-signup,body[data-path="login"] .for-login-with-email-link {padding:12px 16px}body[data-path="login"] .page-card {padding:16px 28px!important}body[data-path="login"] .page-card-head {margin-bottom:10px}body[data-path="login"] .page-card-head .app-logo {margin-bottom:8px;padding:8px;width:160px!important}body[data-path="login"] .page-card-head p {margin-bottom:0}body[data-path="login"] .page-card .form-group {margin-bottom:10px}}
@media(max-width:576px){body[data-path="login"] .page-card {min-height:0;width:100%;max-width:none}body[data-path="login"] .for-login,body[data-path="login"] .for-forgot,body[data-path="login"] .for-signup,body[data-path="login"] .for-login-with-email-link {padding:16px 12px}}
