/* Flat report surfaces, restrained glass actions; shared by both login routes. */
.hnp-login *, .hnp-login *::before, .hnp-login *::after { box-sizing:border-box; }
html[data-wms-ui="compact"] body.hnp-login {
  min-height:100vh; min-height:100svh; display:flex; flex-direction:column;
  background:#f6f8fa!important; padding:0;
}
.login-header { min-height:64px; padding:0 28px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--erp-line); background:#f0f3f7; }
.login-brand { display:inline-flex; align-items:center; gap:9px; color:var(--erp-ink); text-decoration:none; font-size:22px; font-weight:700; white-space:nowrap; }
.login-brand img { width:26px; height:26px; }
.login-header-caption { color:var(--erp-muted); font-size:15px; }
.login-main { flex:1; display:grid; place-items:center; padding:48px 24px 64px; }
.login-sheet { width:100%; max-width:456px; background:#fff; border:1px solid var(--erp-line); border-radius:3px; overflow:hidden; }
.login-sheet-bar { min-height:40px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 18px; background:#f0f3f8; border-bottom:1px solid var(--erp-line); font-size:14px; color:#4c607c; }
.login-environment { display:inline-flex; align-items:center; gap:6px; color:#356663; }
.login-environment::before { content:""; width:6px; height:6px; border-radius:50%; background:#5e9991; }
.login-sheet-content { padding:32px 38px 28px; }
.login-heading { text-align:center; margin-bottom:30px; }
.login-heading h1 { margin:0 0 9px; font-size:30px; line-height:1.4; font-weight:700; letter-spacing:-.5px; color:var(--erp-ink); }
.login-company { margin:0; color:#52657f; font-size:16px; overflow-wrap:anywhere; }
.login-form { display:grid; gap:20px; }
.login-field { min-width:0; }
html[data-wms-ui="compact"] body.hnp-login .login-field label { display:block; margin-bottom:8px; color:#334965; font-size:16px; }
html[data-wms-ui="compact"] body.hnp-login .login-field input { width:100%; height:46px!important; min-height:46px!important; padding:9px 11px!important; font-size:17px!important; }
.login-password { position:relative; }
html[data-wms-ui="compact"] body.hnp-login .login-password:has(.login-reveal:not([hidden])) input { padding-right:76px!important; }
html[data-wms-ui="compact"] body.hnp-login .login-reveal { position:absolute; right:0; top:0; height:46px!important; min-height:46px!important; min-width:64px; padding:3px 9px; border-radius:6px!important; font-size:14px; }
.hnp-login .login-reveal[hidden] { display:none!important; }
html[data-wms-ui="compact"] body.hnp-login .login-submit { width:100%; height:46px!important; min-height:46px!important; margin-top:5px; font-size:18px; border-radius:8px!important; }
.login-help { margin:24px 0 0; color:#61718a; font-size:14px; line-height:1.7; text-align:center; }
.login-sheet-footer { padding:13px 16px; border-top:1px solid #e0e6ef; color:#61718a; font-size:14px; text-align:center; letter-spacing:.3px; }
.login-page-footer { display:flex; justify-content:center; flex-wrap:wrap; gap:9px; padding:16px 20px 22px; color:#63728a; font-size:13px; text-align:center; }
.login-error { margin:0 0 20px; padding:11px 13px; color:#923b42; background:#fff5f5; border:1px solid #e8c9cc; border-radius:3px; font-size:15px; overflow-wrap:anywhere; }
@media (max-width:600px) {
  .login-header { min-height:58px; padding:0 18px; gap:10px; }
  .login-header-caption { font-size:12px; }
  .login-brand { font-size:20px; }
  .login-main { padding:30px 18px; }
  .login-sheet-content { padding:28px 24px 25px; }
  .login-heading { margin-bottom:27px; }
  .login-heading h1 { font-size:28px; }
  .login-company { font-size:15px; }
  .login-page-footer { padding-bottom:max(20px,env(safe-area-inset-bottom)); }
}
@media (max-width:350px) {
  .login-header-caption { display:none; }
  .login-sheet-content { padding-left:18px; padding-right:18px; }
  .login-main { padding-left:12px; padding-right:12px; }
}
@media (prefers-reduced-motion:reduce) {
  html[data-wms-ui="compact"] body.hnp-login button { transition:none; }
}
