/* BHM auth screens (vendor/nova/auth/layout). All motion sits in the no-preference blocks. */
body.bhm-auth{--auth-ease:cubic-bezier(.23,1,.32,1);background:linear-gradient(160deg,var(--bhm-navy-800),var(--bhm-navy-900) 70%)}
.bhm-auth-bg{position:fixed;inset:0;overflow:hidden}
.bhm-auth-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(#ffffff12 1px,transparent 1.5px) 0 0/24px 24px;mask-image:radial-gradient(#000 15%,transparent 75%)}
.bhm-auth-blob{position:absolute;border-radius:50%;background:radial-gradient(closest-side,var(--glow),transparent)}
.bhm-auth-blob--a{top:-14rem;right:-10rem;width:40rem;height:40rem;--glow:rgb(var(--bhm-green-rgb)/.3);--dx:-4rem;--dy:3rem}
.bhm-auth-blob--b{bottom:-18rem;left:-14rem;width:46rem;height:46rem;--glow:rgb(var(--bhm-navy-rgb)/.9);--dx:5rem;--dy:-3rem}
.bhm-auth-blob--c{top:50%;left:6%;width:24rem;height:24rem;--glow:rgb(var(--bhm-green-rgb)/.14);--dx:3rem;--dy:-4rem}
.bhm-auth-shell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:2.5rem 1rem 1.5rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 .07 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/160px 160px repeat}
.bhm-auth-brand{margin-bottom:1.75rem}
.bhm-auth-card{position:relative;width:100%;max-width:400px;padding:2rem;border-radius:12px;background:#fffffff7;box-shadow:0 1px 2px #02141e33,0 24px 60px #02141e73}
.bhm-auth-card::before,.bhm-auth-submit::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none}
.bhm-auth-card::before{box-shadow:0 0 0 1px rgb(var(--bhm-green-rgb)/.45),0 0 28px 2px rgb(var(--bhm-green-rgb)/.35);opacity:.45}
.bhm-auth-title{margin:0;color:var(--bhm-navy);font-size:1.375rem;font-weight:800;text-align:center}
.bhm-auth-sub{margin:.375rem 0 1.5rem;color:var(--bhm-muted);font-size:.875rem;line-height:1.45;text-align:center}
.bhm-auth-footer{margin-top:1.5rem;color:#fff9;font-size:.75rem}
/* 16px text: no iOS focus zoom. */
.bhm-auth-field{margin-bottom:1rem}
.bhm-auth-label{display:block;margin-bottom:.375rem;font-size:.8125rem;font-weight:700}
.bhm-auth-input{display:block;width:100%;height:var(--bhm-control-h-lg);padding:0 .75rem;border:1px solid var(--bhm-border-strong);border-radius:var(--bhm-radius);background:#fff;color:var(--bhm-ink);font-size:1rem;outline:none;transition:border-color 150ms,box-shadow 150ms}
.bhm-auth-input:focus{border-color:var(--bhm-focus-color);box-shadow:var(--bhm-focus)}
.bhm-auth-input[aria-invalid='true']{border-color:var(--bhm-danger)}
.bhm-auth-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.25rem 0 1.25rem;font-size:.8125rem}
.bhm-auth-check{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;cursor:pointer}
.bhm-auth-check input{margin:0;accent-color:var(--bhm-green-600)}
.bhm-auth-link{border-radius:4px;color:var(--bhm-navy);font-weight:700;text-decoration:none;transition:color 150ms}
.bhm-auth-link:hover{color:var(--bhm-green-700)}
.bhm-auth-link:focus-visible,.bhm-auth-submit:focus-visible{outline:none;box-shadow:var(--bhm-focus)}
.bhm-auth-back{display:block;margin-top:1rem;font-size:.8125rem;text-align:center}
/* Hover keeps green-600 for AA contrast; the glow pseudo brightens. */
.bhm-auth-submit{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;height:var(--bhm-control-h-lg);border:0;border-radius:var(--bhm-radius);background:var(--bhm-green-600);color:#fff;font-size:.875rem;font-weight:700;cursor:pointer}
.bhm-auth-submit::before{box-shadow:0 6px 18px -4px rgb(var(--bhm-green-rgb)/.65);opacity:0;transition:opacity 160ms ease}
.bhm-auth-spinner{display:none;width:16px;height:16px;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;animation:bhm-spin 600ms linear infinite}
.is-loading .bhm-auth-spinner{display:block}
.bhm-auth-alert{margin:0 0 1rem;padding:.625rem .75rem;border:1px solid #f5c2c2;border-radius:var(--bhm-radius);background:var(--bhm-danger-bg);color:var(--bhm-danger);font-size:.8125rem;font-weight:600;line-height:1.4}
.bhm-auth-alert--ok{border-color:var(--bhm-green-100);background:var(--bhm-green-50);color:var(--bhm-green-700)}
.bhm-auth-alert--warn{border-color:#f3d9a4;background:#fff8e6;color:#8a5a00}
@media (max-width:420px){
.bhm-auth-card{padding:1.5rem 1.25rem}
.bhm-auth-brand{margin-bottom:1.25rem}
}
@media (hover:hover) and (pointer:fine){
.bhm-auth-submit:hover:not(:disabled)::before{opacity:1}
}
@media (prefers-reduced-motion:no-preference){
.bhm-auth-blob{will-change:transform;animation:bhm-drift 24s cubic-bezier(.45,0,.55,1) infinite alternate}
.bhm-auth-blob--b{animation-duration:30s}
.bhm-auth-blob--c{animation-duration:19s;animation-delay:-7s}
.bhm-auth-card::before{animation:bhm-ring 5s ease-in-out infinite alternate}
.bhm-auth .bhm-logo__mark{animation:bhm-pop 400ms var(--auth-ease) backwards}
.bhm-auth .bhm-logo__word{--rise:8px;animation:bhm-rise 400ms var(--auth-ease) 70ms backwards}
.bhm-auth-card{--rise:12px;animation:bhm-rise 420ms var(--auth-ease) 140ms backwards}
.bhm-auth-item{--rise:6px;animation:bhm-rise 300ms var(--auth-ease) backwards;animation-delay:calc(200ms + var(--i,0) * 40ms)}
.bhm-auth-footer{animation:bhm-fade 400ms ease-out 400ms backwards}
.bhm-auth-alert:not(.bhm-auth-alert--ok):not(.bhm-auth-alert--warn){animation:bhm-shake 250ms var(--auth-ease) 380ms}
.bhm-auth-submit{transition:transform 160ms var(--auth-ease)}
.bhm-auth-submit:active:not(:disabled){transform:scale(.98);transition-duration:100ms}
}
@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
.bhm-auth-submit:hover:not(:disabled):not(:active){transform:translateY(-1px)}
}
@keyframes bhm-spin{to{transform:rotate(360deg)}}
@keyframes bhm-drift{to{transform:translate3d(var(--dx),var(--dy),0) scale(1.08)}}
@keyframes bhm-ring{from{opacity:.35}to{opacity:.6}}
@keyframes bhm-pop{from{opacity:0;transform:scale(.96)}}
@keyframes bhm-rise{from{opacity:0;transform:translate3d(0,var(--rise),0)}}
@keyframes bhm-fade{from{opacity:0}}
@keyframes bhm-shake{20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
