/* UPrep portal sign-in. Rules copied from the approved demo
   (02 Website/uprep-cinematic-demo/assets/style.css), which the live
   site's pruned style.css no longer carries. Loaded after /assets/style.css.
   Background: Unsplash G68iZaqtmYc, Jo Anaya, Unsplash License (checked
   2026-09-27, pixel-identical to the demo file). */
.login-card.shake{animation:shake .45s cubic-bezier(.36,.07,.19,.97)}
.topbar{position:fixed;inset:0 0 auto;z-index:50;height:var(--nav-h);color:#fff}
.topbar .nav-in{grid-template-columns:1fr auto 1fr}
.topbar .pill:first-child{justify-self:start}
.topbar .pill:last-child{justify-self:end}
.login-scene{--img:url(/images/portal-bg.jpg);--fade:0px;min-height:100svh;display:grid;place-items:center;padding:calc(var(--nav-h) + 36px) 16px 48px}
.login-scene .bg,.login-scene::before{-webkit-mask-image:none;mask-image:none}
.login-scene::before{display:none}
.login-scene .bg::before{animation:breathe 26s ease-in-out infinite alternate}
.login-scene .bg::after{background:radial-gradient(ellipse 60% 60% at 50% 50%, rgba(8,27,58,.72), rgba(8,27,58,.86))}
.login-wrap{width:100%;max-width:460px;margin:0 auto}
.login-card{margin-top:1.2rem;padding:34px 32px 26px;border-radius:24px;background:#fff;box-shadow:0 40px 100px rgba(0,0,0,.35);text-align:left}
.login-card h1{font-family:var(--serif);font-weight:700;font-size:2.2rem;color:var(--navy);line-height:1.1}
.login-card h1::after{content:"";display:block;width:40px;height:3px;border-radius:3px;background:var(--blue2);margin-top:.7rem}
.login-card .lead{margin:.9rem 0 1.4rem;color:var(--muted);font-size:.95rem}
.login-card .field{margin-bottom:14px}
.login-card .ctl .lead-ic{position:absolute;left:14px;top:50%;width:18px;height:18px;margin-top:-9px;color:#8a97ad;pointer-events:none;transition:color .25s}
.login-card .ctl input{padding-left:42px}
.login-card .ctl:focus-within .lead-ic{color:var(--blue)}
.login-card .field[data-rule="password"] .ok{display:none}
.eye{position:absolute;right:8px;top:50%;width:36px;height:36px;margin-top:-18px;border:0;border-radius:10px;background:none;color:#6b7890;cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s}
.eye:hover{background:var(--mist);color:var(--navy)}
.eye svg{width:20px;height:20px;overflow:visible}
.eye .slash{stroke-dasharray:24;stroke-dashoffset:0;transition:stroke-dashoffset .35s cubic-bezier(.2,.8,.2,1)}
.eye[aria-pressed="true"] .slash{stroke-dashoffset:24}
.caps{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s}
.caps span{overflow:hidden;font-size:.8rem;color:#a86b00}
.caps.on{grid-template-rows:1fr}
.caps.on span{padding-top:4px}
.login-card .submit{width:100%;margin-top:6px}
.login-card .alt{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.linkish{border:0;background:none;font:inherit;font-size:.88rem;font-weight:600;color:var(--blue);cursor:pointer;padding:8px 2px;text-decoration:none;position:relative}
.linkish::after{content:"";position:absolute;left:2px;right:2px;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.linkish:hover::after{transform:scaleX(1)}
.roles{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:1.4rem;list-style:none}
.roles li{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:.82rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.roles svg{width:15px;height:15px;opacity:.85}
.login-foot{margin-top:1rem;font-size:.76rem;color:rgba(255,255,255,.6);text-align:center}
@media (max-width:600px){
  .field input,.field select,.login-card input{font-size:16px}
  .login-card{padding:26px 20px 20px}
  .login-card h1{font-size:1.9rem}
  .topbar .pill span.t{display:none}
  .roles li{font-size:.78rem}
}
