.apn-login-roles{display:grid;gap:9px;padding:0;border:0;background:transparent}
.login-card .kicker:empty{display:none}
.login-card h2{font-weight:800}.login-card h2+ p{font-size:16px;font-weight:400;line-height:1.5}
.apn-login-roles>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.apn-login-roles button{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px;border:1px solid #d8cce4;border-radius:12px;background:#fff;color:#3d3247;font:inherit;font-size:14px;font-weight:500;cursor:pointer}
.apn-login-roles button.is-active{border-color:#7c3aed;background:linear-gradient(135deg,#7c3aed,#5420a3);color:#fff;box-shadow:0 7px 18px rgba(92,36,166,.2)}
.apn-employee-login-help{margin:0!important;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--brand-primary,#7c3aed) 9%,#fff);color:#40364a!important;font-size:12px!important;line-height:1.4!important}.apn-employee-login-help strong{font-weight:900}.apn-employee-login-help[hidden]{display:none!important}
.apn-confirmation-expired{display:grid!important;gap:7px;padding:11px;border:1px solid #efb6ae;border-radius:12px;background:#fff0ee;color:#9f2f24}
.apn-confirmation-expired[hidden]{display:none!important}
.apn-confirmation-expired strong{font-size:12px}.apn-confirmation-expired small{font-size:11px;line-height:1.4}
.apn-confirmation-expired button{min-height:38px;border-color:#b63b2d!important;background:#b63b2d!important;color:#fff!important}
.apn-confirmation-expired span{font-size:11px;font-weight:700;line-height:1.4}
.apn-login-precheck{display:grid;gap:8px;padding:12px 14px;border-radius:12px;font-size:13px;font-weight:750;line-height:1.4}
.apn-login-precheck[hidden]{display:none!important}.apn-login-precheck.checking{background:#f3eff8;color:#62566e}.apn-login-precheck.success{background:#eaf8ef;color:#176b37}.apn-login-precheck.blocked{background:#fff0f2;color:#922033}
.apn-login-precheck a{display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:10px;background:linear-gradient(135deg,#7c3aed,#5420a3);color:#fff!important;text-decoration:none;font-weight:900}
html[data-theme="dark"] .apn-login-roles button{color:#f6f0fa}
html[data-theme="dark"] .apn-login-roles button{border-color:#493b56;background:#211929}
html[data-theme="dark"] .apn-login-roles button.is-active{background:linear-gradient(135deg,#8b3df1,#5b21b6)}
html[data-theme="dark"] .apn-employee-login-help{background:color-mix(in srgb,var(--brand-primary,#8b3df1) 14%,#17121d);color:#f6f0fa!important}
html[data-theme="dark"] .apn-confirmation-expired{border-color:#8f443b;background:#2d1717;color:#ffc7c0}
html[data-theme="dark"] .apn-login-precheck.checking{background:#241c2b;color:#ddd2e7}html[data-theme="dark"] .apn-login-precheck.success{background:#163423;color:#baf2cf}html[data-theme="dark"] .apn-login-precheck.blocked{background:#35191e;color:#ffc2ca}
@media(max-width:360px){.apn-login-roles>div{gap:5px}.apn-login-roles button{padding-inline:4px;font-size:12px}}

/* APN V37 — autenticação móvel sem transbordamento e estado real do exame. */
.login-page,.login-panel,.login-card,.login-card *{box-sizing:border-box}
.login-card{max-width:420px;min-width:0}
.login-card label,.login-card input,.login-card button,.apn-login-roles{min-width:0;max-width:100%}
.login-card input{display:block;width:100%;overflow:hidden;text-overflow:ellipsis}
.login-card .mobile-logo{object-fit:contain}
.lab-exam-save-button.is-saved:disabled{cursor:default!important;opacity:.82}
.lab-exam-save-button.is-saving:disabled{cursor:wait!important;opacity:.68}
@media(max-width:760px){
  .login-page{width:100%;min-width:0;padding:14px;overflow-x:hidden}
  .login-panel{width:100%;min-width:0;place-items:start center;min-height:calc(100dvh - 28px)}
  .login-card{width:100%;max-width:430px;padding:26px 20px;border-radius:22px;gap:18px;overflow:hidden}
  .login-card h2{font-size:clamp(30px,9vw,38px);line-height:1.05;letter-spacing:-1.2px}
  .login-card>div>p:not(.kicker){font-size:16px;line-height:1.45}
  .login-card input{font-size:16px!important;min-height:54px;padding:13px 14px}
  .login-card input::placeholder{font-size:16px!important}
  .login-card .mobile-logo{width:56px;height:56px}
  .apn-login-roles>div{gap:8px}
  .apn-login-roles button{min-height:50px;padding:10px 8px;font-size:14px}
}
@media(max-width:380px){
  .login-page{padding:9px}
  .login-card{padding:22px 16px;border-radius:19px}
}
