/* Set 27: public login options and sign-in forms. Authentication stays unchanged.
   Match the Employer Login card without importing Sync-specific layout rules. */
.account-login-page {
  padding:clamp(24px,4vw,52px) 0;
  background:linear-gradient(145deg,#f2f7fb,#fff);
}
.account-login-shell {
  width:calc(100% - 32px); max-width:560px; min-width:0; margin:0 auto;
  border:1px solid #cedbe5; border-radius:20px; background:#fff;
  box-shadow:0 14px 36px rgba(12,40,64,.10);
}
.account-login-shell-wide { max-width:920px; }
.account-login-header {
  padding:clamp(24px,4vw,36px); border-radius:20px 20px 0 0;
  background:#f2f7fb; border-bottom:1px solid #dce6ed; text-align:center;
}
.account-login-header .eyebrow { margin:0 0 12px; color:#9c5410; line-height:1.5; }
.account-login-header h1 {
  font-size:clamp(1.65rem,1.3rem + 1.4vw,2.25rem); color:#0b315d;
  line-height:1.2; letter-spacing:-.025em; margin:0 0 16px;
  overflow-wrap:break-word; text-wrap:balance;
}
.account-login-header > p:last-child { margin:0; color:#425769; line-height:1.65; }
.account-login-body { padding:clamp(22px,4vw,36px); min-width:0; }
.account-login-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.account-login-option {
  display:flex; flex-direction:column; align-items:center; min-width:0;
  padding:24px; border:1px solid #dce6ed; border-radius:16px; text-align:center;
}
.account-login-icon {
  display:grid; place-items:center; width:46px; height:46px; flex:none;
  margin:0 0 16px; border-radius:14px; background:#082744; color:#fff;
  font-size:1.3rem; font-weight:800;
}
.account-login-icon-rep { background:#386f98; }
.account-login-option h2 {
  width:100%; margin:0 0 14px; color:#0b315d;
  font-size:clamp(1.25rem,1.1rem + .45vw,1.55rem); line-height:1.3;
  overflow-wrap:break-word; text-wrap:balance;
}
.account-login-option > p { margin:0 0 22px; color:#425769; line-height:1.65; }
.account-login-page .button {
  display:flex; justify-content:center; align-items:center;
  width:100%; max-width:100%; min-height:50px; padding:12px 16px;
  white-space:normal; text-align:center; line-height:1.4; overflow-wrap:break-word;
}
.account-login-option > .button { margin-top:auto; }
.account-login-note {
  border-top:1px solid #dce6ed; padding:22px 0 0; margin:24px 0 0;
  text-align:center; color:#526576; line-height:1.65; font-size:.93rem;
}
.account-login-form { display:grid; gap:22px; min-width:0; }
.account-login-form h2 { margin:0; text-align:center; font-size:1.3rem; color:#0b315d; }
.account-login-form .form-group { margin:0; min-width:0; }
.account-login-form label { display:block; margin:0 0 8px; font-weight:700; }
.account-login-form input:not([type=hidden]) {
  box-sizing:border-box; width:100%; min-width:0; min-height:50px;
  font-size:16px; padding:12px 14px; border-radius:10px;
}
.account-login-form > .button { margin:2px 0 0; }
.account-login-page :is(input,a,button):focus-visible { outline:3px solid #bd761b; outline-offset:3px; }
.account-login-support { border-top:1px solid #dce6ed; margin-top:28px; padding-top:24px; text-align:center; }
.account-login-support h2 { margin:0 0 12px; font-size:1.3rem; line-height:1.3; color:#0b315d; }
.account-login-support p { color:#425769; line-height:1.65; margin:0 0 18px; overflow-wrap:anywhere; }
.account-login-support p:last-child { margin:18px 0 0; }
.account-login-return { margin:24px 0 0; text-align:center; line-height:1.5; }
.account-login-return a { display:inline-block; padding:6px 2px; font-weight:600; }
@media(max-width:720px) {
  .account-login-options { grid-template-columns:minmax(0,1fr); gap:20px; }
  .account-login-option { padding:22px 18px; }
}
@media(max-width:360px) {
  .account-login-shell { width:calc(100% - 24px); }
  .account-login-body { padding:22px 18px; }
  .account-login-option { padding:20px 14px; }
}

/* Set 28: simplified portal chooser only. Member/representative sign-in forms
   keep their Set 27 layout, descriptions, fields and security controls. */
.account-login-choice .account-login-header { padding:24px; }
.account-login-choice .account-login-header h1 {
  margin:0; font-size:clamp(1.4rem,1.2rem + .8vw,1.8rem); line-height:1.3;
}
.account-login-choice .account-login-option {
  display:grid; grid-template-rows:1fr auto; gap:18px;
}
.account-login-choice .account-login-option h2 { margin:0; }
.account-login-choice .account-login-option > .button { margin-top:0; }
