.login-page{min-height:100vh;min-height:100dvh;background:linear-gradient(180deg,#8fd6fb,#d3f3ff 48%,#9fe2f0 49%,#4bb6dc)}.login-shell{width:min(420px,100%);margin:0 auto;padding:max(28px,env(safe-area-inset-top)) 18px max(32px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:stretch}.login-art{display:flex;justify-content:center}.login-ball{width:170px;height:auto;font-family:var(--font)}.login-title{margin:6px 0 2px;text-align:center;font-size:clamp(32px,9vw,42px);font-weight:900;letter-spacing:-.01em;color:var(--ink)}.login-tagline{margin:0 0 22px;text-align:center;color:var(--ink-soft);font-size:17px}.login-card{background:#fffffff0;border-radius:24px;padding:22px 20px 24px;box-shadow:0 18px 40px #0d5f9938;display:flex;flex-direction:column;gap:16px}.field label{display:block;font-weight:800;font-size:15px;margin-bottom:6px}.field input{width:100%;min-height:52px;padding:12px 14px;font-size:17px;color:var(--ink);background:#fff;border:2px solid var(--line);border-radius:14px;outline:none;transition:border-color .12s}.field input:focus{border-color:var(--teal)}.field input[aria-invalid=true]{border-color:var(--error)}.password-wrap{position:relative}.password-wrap input{padding-right:78px}.toggle-password{position:absolute;top:50%;right:8px;transform:translateY(-50%);min-height:38px;min-width:60px;border:0;border-radius:10px;background:#eef7fb;color:var(--ink);font-weight:700;font-size:15px}.form-error{margin:-4px 0 0;min-height:1.3em;color:var(--error);font-size:15px;font-weight:600}.form-error:empty{min-height:0;margin:0}.login-submit{width:100%;margin-top:4px}
