/* CampusShield public landing and dedicated account-access routes.
   The account form remains the existing Supabase-backed form; only its entry route changes. */
html:not(.access-page) #login-screen.login-screen{
  display:grid;
  grid-template-columns:minmax(0,1fr)!important;
  align-items:stretch;
  min-height:100vh;
  min-height:100svh;
  overflow:visible;
  background:#f5faf7;
}
html:not(.access-page) #login-screen .login-intro{
  grid-column:1;
  width:100%;
  min-width:0;
  min-height:100vh;
  min-height:100svh;
  height:auto;
  justify-content:space-between;
  gap:clamp(20px,3vw,38px);
  padding:clamp(28px,5vw,76px);
  overflow:hidden;
}
html:not(.access-page) #login-screen .login-form-wrap{
  display:none!important;
}
html:not(.access-page) #login-screen .cs-home-experience{
  grid-column:1/-1;
  width:100%;
  min-width:0;
}
html:not(.access-page) #login-screen .login-landing-footer{
  grid-column:1/-1;
  width:100%;
  padding:24px clamp(22px,5vw,76px) 30px;
  background:#061d25;
  color:#b6d4ce;
}
html:not(.access-page) #login-screen .login-footer-links a,
html:not(.access-page) #login-screen .login-social-links a{
  color:#d4eee7;
}
.cs-home-cta-actions .cs-get-started-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:50px;
  padding:13px 24px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:14px;
  background:linear-gradient(110deg,#078b75 0%,#10b88e 55%,#087b68 100%);
  color:#fff!important;
  font-weight:900;
  letter-spacing:.01em;
  text-decoration:none;
  box-shadow:0 10px 26px rgba(0,75,61,.24);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.cs-home-cta-actions .cs-get-started-cta:hover{
  transform:translateY(-2px);
  filter:saturate(1.08);
  box-shadow:0 15px 32px rgba(0,75,61,.3);
}
.cs-home-cta-actions .cs-get-started-cta:focus-visible,
html.access-page .login-back-home:focus-visible{
  outline:3px solid #20c5a1;
  outline-offset:4px;
}
html.access-page #login-screen.login-screen{
  display:grid;
  grid-template-columns:minmax(0,1fr)!important;
  align-items:start;
  min-height:100vh;
  min-height:100svh;
  overflow:visible;
  background:#eff8f4;
}
html.access-page #login-screen .login-intro,
html.access-page #login-screen .cs-home-experience,
html.access-page #login-screen .login-landing-footer,
html.access-page #pip-companion,
html.access-page #pip-scroll-progress{
  display:none!important;
}
html.access-page #login-screen .login-form-wrap::after{
  display:none!important;
}
html.access-page #login-screen .login-form-wrap,
html.access-page #login-screen .login-right-top,
html.access-page #login-screen .auth-panel,
html.access-page #login-screen .auth-form{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
html.access-page #login-screen .auth-role-picker{
  width:100%;
  min-width:0;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
html.access-page #login-screen .auth-role-option{
  min-width:0;
  overflow-wrap:anywhere;
}
html.access-page #login-screen .login-form-wrap{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  width:100%;
  min-width:0;
  min-height:100vh;
  min-height:100svh;
  padding:clamp(18px,3vw,44px) clamp(14px,4vw,56px) calc(28px + env(safe-area-inset-bottom));
  overflow:visible;
  border-radius:0;
}
html.access-page #login-screen .login-right-top{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
  width:min(100%,760px);
  margin:0 auto 6px;
}
html.access-page #login-screen .login-back-home{
  margin-right:auto;
}
html.access-page #login-screen .auth-panel{
  width:min(100%,760px);
  max-width:760px;
  margin:0 auto;
}
html.access-page #login-screen .login-official-link{
  white-space:nowrap;
}
@media(max-width:650px){
  html:not(.access-page) #login-screen .login-intro{
    min-height:auto;
    padding:25px 17px 30px;
  }
  html:not(.access-page) #login-screen .login-landing-footer{
    padding:22px 18px calc(30px + env(safe-area-inset-bottom));
  }
  html.access-page #login-screen .login-form-wrap{
    padding:14px 12px calc(24px + env(safe-area-inset-bottom));
  }
  html.access-page #login-screen .login-right-top{
    justify-content:space-between;
    gap:8px;
  }
  html.access-page #login-screen .login-back-home{
    flex-basis:100%;
    margin:0 0 4px;
  }
}
@media(prefers-reduced-motion:reduce){
  .cs-home-cta-actions .cs-get-started-cta{transition:none!important}
}
