:root{--tays-red:#d32f2f;--tays-red-dark:#b71c1c;--navy:#0a192f;--ink:#1f2937;--muted:#667085;--line:#cfd4dc;--focus:rgba(211,47,47,.32);--success:#18794e}
*,*::before,*::after{box-sizing:border-box}
html,body{min-height:100%}
body.auth-page{margin:0;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;color:var(--ink);background:var(--navy);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.auth-backdrop{position:fixed;inset:0;z-index:0;overflow:hidden;background:var(--navy);pointer-events:none}
.auth-map{position:absolute;inset:0;background:url('../login/world-map-low-resolution.svg') center/cover no-repeat;filter:invert(1) brightness(.62) sepia(1) hue-rotate(180deg) saturate(3);opacity:.18}
.auth-shade{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(24,66,108,.2),rgba(10,25,47,.9))}
#bg-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.9}
.auth-node{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--tays-red);box-shadow:0 0 9px rgba(211,47,47,.75);opacity:.64;transform:translate(-50%,-50%)}
.auth-node::before,.auth-node::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);animation:authPulse 4s infinite ease-out}
.auth-node::before{background:var(--tays-red)}.auth-node::after{border:1px solid var(--tays-red);animation-delay:1.3s}
.auth-node:nth-of-type(4){left:59.7%;top:28.3%}.auth-node:nth-of-type(5){left:63%;top:27.7%}.auth-node:nth-of-type(6){left:66.3%;top:28.3%}.auth-node:nth-of-type(7){left:68.8%;top:23.3%}
@keyframes authPulse{from{width:10px;height:10px;opacity:.7}to{width:44px;height:44px;opacity:0}}
.auth-card{position:relative;z-index:5;width:min(440px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:34px 38px 28px;border-top:5px solid var(--tays-red);border-radius:12px;background:rgba(255,255,255,.95);box-shadow:0 22px 55px rgba(0,0,0,.42);backdrop-filter:blur(14px)}
.auth-card.auth-wide{width:min(880px,100%)}
.auth-header{text-align:center;margin-bottom:24px}.auth-mark{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 13px;border:2px solid var(--tays-red);border-radius:50%;color:#fff;background:var(--navy);box-shadow:0 4px 15px rgba(211,47,47,.28)}
.auth-mark svg{width:30px;height:30px;fill:currentColor}.auth-title{margin:0 0 4px;color:var(--navy);font-size:1.45rem;font-weight:800;letter-spacing:.4px}.auth-subtitle{margin:0;color:var(--tays-red);font-size:.9rem;font-weight:750;letter-spacing:.9px;text-transform:uppercase}
.auth-description{margin:0 0 22px;color:var(--muted);font-size:.91rem;line-height:1.55;text-align:center}
.auth-alert{margin:0 0 18px;padding:11px 12px;border:1px solid;border-radius:7px;font-size:.88rem;line-height:1.45}.auth-alert[role=alert]{border-color:#efb4b4;color:#842029;background:#fff1f1}.auth-alert.success{border-color:#a9d9be;color:#146c43;background:#effaf3}
.auth-group{margin-bottom:18px}.auth-label{display:block;margin-bottom:7px;color:var(--navy);font-size:.875rem;font-weight:700}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input{width:100%;min-height:50px;padding:12px 14px;border:2px solid var(--line);border-radius:8px;outline:none;color:var(--ink);background:#f9fafb;font:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s,background .2s}.auth-input.has-icon{padding-left:46px}.auth-input.has-toggle{padding-right:48px}.auth-input:focus{border-color:var(--tays-red);background:#fff;box-shadow:0 0 0 4px var(--focus)}
.auth-icon{position:absolute;left:15px;width:20px;height:20px;color:var(--muted);pointer-events:none}.auth-toggle{position:absolute;right:3px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:6px;color:var(--muted);background:transparent;cursor:pointer}.auth-toggle svg{width:20px;height:20px}.auth-toggle:hover{color:var(--navy);background:rgba(10,25,47,.05)}
.auth-button{width:100%;min-height:52px;border:0;border-radius:8px;color:#fff;background:var(--tays-red);box-shadow:0 4px 15px rgba(211,47,47,.3);cursor:pointer;font:inherit;font-weight:750;transition:transform .15s,background .2s,box-shadow .2s}.auth-button:hover:not(:disabled){transform:translateY(-1px);background:var(--tays-red-dark);box-shadow:0 6px 18px rgba(211,47,47,.4)}.auth-button:disabled{cursor:wait;opacity:.62}
.auth-link-row{display:flex;justify-content:center;gap:18px;margin-top:22px;padding-top:18px;border-top:1px solid #e5e7eb}.auth-link{display:inline-flex;align-items:center;min-height:44px;color:var(--navy);font-size:.88rem;font-weight:650;text-decoration:none}.auth-link:hover{color:var(--tays-red);text-decoration:underline}.auth-security{margin:10px 0 0;color:#737b88;font-size:.72rem;line-height:1.4;text-align:center}
.auth-button-link{display:flex;justify-content:center;text-decoration:none}
.password-meter{height:5px;margin-top:7px;border-radius:9px;background:#e5e7eb;overflow:hidden}.password-meter>span{display:block;width:0;height:100%;background:#b42318;transition:width .2s,background .2s}.password-rules{margin:0 0 18px;padding:12px 14px;border:1px solid #e1e5ea;border-radius:8px;color:var(--muted);background:#f8fafc;font-size:.82rem}.password-rules ul{margin:7px 0 0;padding-left:19px}.user-context{margin-bottom:18px;padding:10px 12px;border:1px solid #e1e5ea;border-radius:8px;color:var(--navy);background:#f8fafc;text-align:center;font-size:.88rem}
.auth-toggle:focus-visible,.auth-button:focus-visible,.auth-link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}[hidden]{display:none!important}
@media(max-width:520px){body.auth-page{padding:16px}.auth-card{padding:28px 22px 23px}.auth-link-row{flex-direction:column;align-items:center;gap:0}}
@media(prefers-reduced-motion:reduce){.auth-node::before,.auth-node::after{animation-duration:7s}.auth-button,.auth-input{transition-duration:.01ms}}
