.eos-auth { margin:0; min-height:100vh; min-height:100svh; display:grid; place-items:center; padding:24px 16px; background:radial-gradient(ellipse at 15% 10%,#d1f0ff,transparent 65%),linear-gradient(145deg,#eff8ff,#fff 55%,#e1f2fb); color:#173a4a; font-family:'Segoe UI',system-ui,sans-serif; }
.eos-auth *, .eos-auth *::before, .eos-auth *::after { box-sizing:border-box; }
.eos-auth { box-sizing:border-box; }
.auth-card { width:100%; max-width:460px; padding:clamp(22px,5vw,38px); border:1px solid #fff; border-radius:26px; background:rgba(255,255,255,.86); box-shadow:0 22px 70px #007bb81c,inset 0 1px 0 #fff; backdrop-filter:blur(16px); }
.auth-logo { display:block; max-width:80%; height:auto; margin:0 auto 30px; }
.auth-card h1 { font-size:clamp(1.45rem,5vw,1.8rem); line-height:1.2; letter-spacing:-.035em; text-align:center; margin:0 0 16px; color:#10344b; }
.auth-card p { line-height:1.55; }
.auth-card > p { text-align:center; }
.auth-card label { display:block; font-size:.94rem; font-weight:650; margin:18px 0 8px; }
.auth-card input { width:100%; min-width:0; min-height:48px; padding:12px 14px; border:1px solid #b7ccd8; border-radius:12px; font:inherit; font-size:16px; background:#fff; color:#173a4a; }
.auth-card input[aria-invalid=true] { border-color:#b42332; }
.auth-card :focus-visible { outline:3px solid #007bb8; outline-offset:3px; }
.password-field { position:relative; }
.password-field input { padding-right:76px; }
.password-toggle { position:absolute; right:4px; top:4px; min-width:64px; min-height:40px; border:0; border-radius:9px; background:#edf7fc; color:#006493; font:inherit; font-size:.85rem; font-weight:650; cursor:pointer; }
.auth-button { display:block; width:100%; margin-top:24px; min-height:48px; padding:14px 18px; border:1px solid #006b9d; border-radius:13px; background:linear-gradient(135deg,#007bb8,#006596); box-shadow:0 6px 16px #007bb824; color:white; text-align:center; text-decoration:none; font:inherit; font-weight:700; cursor:pointer; }
.auth-button:hover { background:#005e8d; }
.auth-button:disabled { opacity:.7; cursor:wait; }
.auth-hint { color:#496674; font-size:.9rem; }
.auth-error { color:#a01c2d; font-size:.9rem; }
.field-feedback { font-size:.85rem; margin:6px 0 0; }
.field-feedback:empty { display:none; }
.field-feedback.match { color:#176441; }
.auth-back { display:block; width:fit-content; margin:24px auto 0; color:#006493; text-underline-offset:4px; padding:10px; }
.auth-symbol { width:56px; height:56px; display:grid; place-items:center; margin:0 auto 20px; border-radius:50%; background:#dcf2ff; color:#006493; font-size:28px; font-weight:700; }
@media(max-width:360px) { .eos-auth { padding:12px; } .auth-card { padding:22px 18px; } }
@media(prefers-reduced-motion:reduce) { .eos-auth * { scroll-behavior:auto; } }
.auth-login .login-card { max-width:460px; width:100%; padding:clamp(22px,5vw,38px); border-radius:26px; border:1px solid white; background:rgba(255,255,255,.86); box-shadow:0 22px 70px #007bb81c; }
.auth-login .login-submit { border:1px solid #006b9d; border-radius:13px; background:linear-gradient(135deg,#007bb8,#006596); letter-spacing:normal; text-transform:none; min-height:48px; }
.auth-login :focus-visible { outline:3px solid #007bb8; outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .auth-login .login-card.shake { animation:none; } }
