/* Ponto Certo Mercado — tema de acesso TSplus. Mantém a autenticação nativa. */
html.n3-login { margin:0; min-height:100%; height:auto; background:#070707; color:#fff; font-family:"Segoe UI",Arial,sans-serif; font-size:14px; }
html.n3-login * { box-sizing:border-box; }
.n3-login body { margin:0; min-height:100vh; padding:clamp(55px,19vh,180px) 6.5vw 40px; display:flex; flex-direction:column; align-items:flex-end; position:relative; isolation:isolate; background:#070707; }
.n3-login body::before { content:""; position:absolute; inset:0; z-index:-2; background:url('ponto-certo-login.png') left center / cover no-repeat; pointer-events:none; }
.n3-login body::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.02) 0%,rgba(0,0,0,.08) 38%,rgba(0,0,0,.40) 55%,rgba(0,0,0,.82) 73%,#000 100%); pointer-events:none; }
#n3-shell { width:320px; max-width:100%; position:relative; }
.n3-login #divcenter { position:relative; left:auto; top:auto; width:100%; margin:0; padding:29px; background:#050505; border:1px solid transparent; border-radius:15px; box-shadow:none; }
.n3-login #divcenter::before { content:""; position:absolute; inset:-2px -1px -1px; padding:2px 1px 1px; border-radius:inherit; background:linear-gradient(180deg,#ff3b43 0%,#e71922 18%,rgba(224,19,28,.68) 48%,rgba(197,15,23,.28) 74%,rgba(146,9,15,.10) 100%); -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask-composite:exclude; pointer-events:none; }
.n3-heading { margin:0 0 25px; }
.n3-logo { display:block; width:159px; height:auto; margin:0; filter:brightness(0) invert(1); }
.n3-login #divcenter .n3-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.n3-login #divcenter input:not([type=radio]):not([type=button]),.n3-login #select-server { width:100%; height:43px; margin:0; padding:11px 12px; border:1px solid #716a67; border-radius:6px; background:rgba(15,14,14,.88); color:#fff; font:13px "Segoe UI",Arial,sans-serif; line-height:normal; }
.n3-login #divcenter input::placeholder { color:#e5dfdc; opacity:1; }
.n3-login #divcenter input:focus { outline:2px solid #f04b51; outline-offset:2px; }
.n3-password-wrap { position:relative; }
.n3-login #tr-password { margin-top:15px; }
.n3-login #tr-password[style*="table-row"],.n3-login #tr-domain[style*="table-row"] { display:block !important; }
.n3-login #tr-domain input { margin-bottom:15px !important; }
.n3-login #divcenter #Editbox2 { padding-right:70px; }
.n3-toggle { position:absolute; top:0; right:3px; height:43px; padding:0 9px; border:0; background:transparent; color:#f5e9e7; font:500 10px "Segoe UI",Arial,sans-serif; cursor:pointer; }
.n3-toggle:focus-visible { outline:2px solid #f04b51; outline-offset:-4px; border-radius:6px; }
.n3-login #divcenter #buttonLogOn { width:100%; height:43px; margin:20px 0 0; padding:0 16px; line-height:normal; border:1px solid #d71920; border-radius:6px; background:#c9171d; color:#fff; font:600 13px "Segoe UI",Arial,sans-serif; cursor:pointer; }
.n3-login #divcenter #buttonLogOn:hover { background:#a81117; }
.n3-login #divcenter #buttonLogOn:disabled { opacity:.6; cursor:wait; }
.n3-login #accesstypeuserpanel { display:none !important; }
.n3-login #select-server { margin-top:14px; }
.n3-login #span-credentials-ko { color:#ffe1e1; background:#762d2d; padding:10px; border-radius:6px; font-size:12px; line-height:1.5; }
.n3-caps { font-size:11px; color:#ffd393; margin:8px 0 0; }
.n3-caps[hidden] { display:none; }
#logonformid { position:relative; }
#span-login-ok,#span-login-ko,#span-password-ok,#span-password-ko { position:absolute; right:-24px; }
.n3-login #accesstypeuserpanel label { font-size:11px; margin:8px 5px 0; }
.n3-login .twofa-popin { z-index:10; }
.n3-login .twofa-popin .sp-body { min-width:0; width:min(560px,calc(100% - 24px)); max-height:calc(100vh - 32px); overflow:auto; border-radius:14px; }
@media (max-width:700px) {
  .n3-login body { align-items:center; justify-content:center; padding:150px 20px 40px; background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.9)),url('ponto-certo-login.png') 30% top / auto 100% no-repeat; }
  .n3-login body::before,.n3-login body::after { display:none; }
  #n3-shell { width:350px; }
  .n3-login #divcenter { padding:27px; }
  .n3-login #divcenter input:not([type=radio]):not([type=button]) { font-size:16px; height:46px; }
  .n3-toggle { height:46px; }
}
@media (max-height:520px) and (min-width:701px) { .n3-login body { padding-top:35px; } }
