/* Login238: intrinsic rows never collapse into the form. Shared student/teacher sizing. */
.access-page {
  --login-safe-top:var(--safe-top201,var(--eac-safe-top,env(safe-area-inset-top,0px)));
  --login-safe-bottom:var(--safe-bottom201,var(--eac-safe-bottom,env(safe-area-inset-bottom,0px)));
  --login-safe-left:var(--safe-left201,var(--eac-safe-left,env(safe-area-inset-left,0px)));
  --login-safe-right:var(--safe-right201,var(--eac-safe-right,env(safe-area-inset-right,0px)));
  box-sizing:border-box;
  height:auto;
  min-height:100dvh;
  max-height:none;
  display:grid;
  grid-template-rows:minmax(min-content,1fr) auto;
  grid-template-columns:minmax(0,1fr);
  min-width:0;
  overflow:visible;
  padding:0;
}
.access-page .access-hero {
  box-sizing:border-box;
  height:auto;
  min-height:min-content;
  min-width:0;
  flex:none;
  padding:calc(16px + var(--login-safe-top)) max(22px,var(--login-safe-right)) 28px max(22px,var(--login-safe-left));
  justify-content:center;
  gap:clamp(12px,2.5dvh,28px);
}
.access-page .access-brand {
  display:flex;
  flex-direction:column;
  flex:none;
  gap:5px;
  transform:scale(.66);
  transform-origin:center;
}
.access-page .access-brand img { width:clamp(37px,6.8dvh,58px); height:auto; }
.access-page .access-brand>span { font-size:clamp(43px,8.7dvh,72px); letter-spacing:8px; text-indent:8px; line-height:.9; }
.access-page .access-brand small { font-size:10px; letter-spacing:3px; text-indent:3px; line-height:2; }
.access-page .access-welcome { width:100%; min-width:0; flex:none; container-type:inline-size; }
.access-page .access-welcome h1 {
  font-size:clamp(32px,6.5dvh,56px);
  line-height:1.07;
  letter-spacing:normal;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  margin:0 0 6px;
}
.access-page .access-welcome p { font-size:clamp(13px,2.2dvh,18px); line-height:1.35; margin:0; }
.access-page .access-form-area {
  container-type:inline-size;
  min-width:0;
  margin:0;
  padding:0 max(clamp(22px,7vw,42px),var(--login-safe-right)) calc(18px + var(--login-safe-bottom)) max(clamp(22px,7vw,42px),var(--login-safe-left));
}
.access-page .access-gold-rule { display:block; margin:0 auto 14px; width:58px; }
.access-page .access-form-area h2 { display:block; font-size:10px; margin:0 0 17px; }
.access-page .access-footer { display:block; margin:15px 0 0; }
.access-page .access-field { min-width:0; height:auto; min-height:48px; }
.access-page .access-field input { min-height:46px; height:auto; font-size:16px; }
.access-page .access-field button,
.access-page .access-recovery,
.access-page .access-biometry { min-height:44px; }
.access-page .access-submit { min-width:0; max-width:100%; min-height:50px; font-size:clamp(18px,9cqi,25px); padding:12px clamp(8px,4cqi,20px); gap:12px; }
.access-page .access-privacy,
.access-page .login-legal { overflow-wrap:anywhere; }
.access-page :is(input,button,a) { scroll-margin-block:20px; }
html #login-view:not([hidden]) { height:auto; max-height:none; min-height:100dvh; overflow:visible; }
html #login-view .access-page { height:auto; min-height:100dvh; padding-bottom:0; }
@media(max-height:740px) {
  .access-page .access-hero { padding-top:calc(12px + var(--login-safe-top)); padding-bottom:22px; gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
  .access-page .home-scenery video { display:none; }
}
/* Explicit inline-size steps also reflow correctly under WebKit page zoom. */
@container (max-width:340px) { .access-page .access-welcome h1 { font-size:50px; } }
@container (max-width:300px) { .access-page .access-welcome h1 { font-size:44px; } }
@container (max-width:260px) { .access-page .access-welcome h1 { font-size:38px; } }
@container (max-width:220px) { .access-page .access-welcome h1 { font-size:32px; } }
@container (max-width:180px) { .access-page .access-welcome h1 { font-size:26px; } }
@container (max-width:140px) { .access-page .access-welcome h1 { font-size:20px; } }
@container (max-width:100px) { .access-page .access-welcome h1 { font-size:14px; } }
