body:has(.access-page) { background: #f5f9fa; }
.access-form .forgot-password { justify-self: end; padding: 4px 0; border: 0; background: transparent; color: #116f68; font-size: 13px; cursor: pointer; margin: 0 0 10px; }
.registration-consent { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; }
body:has(.access-page) .registration-consent input { appearance: auto; width: 16px; height: 16px; min-height: 16px; flex: 0 0 16px; padding: 0; margin: 3px 0 0; accent-color: #148c85; }
body:has(.access-page) .registration-consent label { display: block; margin: 0; font-size: 13px; line-height: 1.7; font-weight: 400; color: #506471; }
.registration-consent a, .access-footer a { color: #116f68; text-decoration: underline; text-underline-offset: 3px; }
body:has(.access-page) .access-page { width: min(1280px, calc(100% - 64px)); }
body:has(.access-page) .access-layout { grid-template-columns: minmax(0, 1fr) minmax(460px, 1.1fr); gap: 48px; align-items: start; padding: 32px 0; }
body:has(.access-page) .access-story { align-self: start; }
body:has(.access-page) .access-story h1 { font-size: 44px; line-height: 1.2; letter-spacing: 0; margin: 0 0 20px; }
body:has(.access-page) .access-story h1 span { font-size: 32px; color: #116f68; font-weight: 600; }
body:has(.access-page) .access-description { font-size: 16px; line-height: 1.9; }
body:has(.access-page) .access-story-copy { margin-bottom: 22px; }
.student-benefits { list-style: none; padding: 24px 0 0; border-top: 1px solid #dce7ea; margin: 28px 0 0; display: grid; gap: 24px; }
.student-benefits li { display: flex; gap: 13px; align-items: start; }
.student-benefits li > svg { color: #148c85; margin-top: 3px; }
.student-benefits li:nth-child(2) > svg { color: #3478b8; }
.student-benefits li:nth-child(3) > svg { color: #b17a20; }
.student-benefits strong { display: block; font-size: 15px; line-height: 1.6; }
.student-benefits span { display: block; color: #647784; font-size: 13px; line-height: 1.8; margin-top: 3px; }
body:has(.access-page) .access-photo { height: 150px; border-radius: 8px; margin: 0; }
body:has(.access-page) .access-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; filter: none; }
body:has(.access-page) .access-form-panel { width: 100%; max-width: 620px; min-width: 0; box-sizing: border-box; border-radius: 8px; padding: 28px 32px; }
body:has(.access-page) .access-form-heading h2 { font-size: 26px; letter-spacing: 0; }
body:has(.access-page) .access-form-heading { display: grid; grid-template-columns: 48px minmax(0,1fr); column-gap: 16px; row-gap: 6px; margin-bottom: 18px; }
body:has(.access-page) .access-emblem { grid-column: 1; grid-row: 1 / 3; margin: 0; align-self: center; border-radius: 8px; }
body:has(.access-page) .access-role { grid-column: 2; margin: 0; }
body:has(.access-page) .access-form-heading h2 { grid-column: 2; margin: 0; }
body:has(.access-page) .access-form-heading > p:last-child { grid-column: 1 / -1; margin: 6px 0 0; }
body:has(.access-page) .access-tabs { margin: 0 0 18px; }
body:has(.access-page) .access-help { margin: 16px 0 0; }
.access-form.access-form-register { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 18px; }
.access-field { display: grid; gap: 8px; min-width: 0; margin-bottom: 6px; }
.access-field label { font-size: 12px; font-weight: 600; }
.access-form-register > label, .access-form-register > .captcha-row, .access-form-register > .email-code-row, .access-form-register > .access-feedback, .access-form-register > .access-submit { grid-column: 1 / -1; }
.access-form-register > .captcha-row, .access-form-register > .email-code-row { margin-bottom: 0; }
body:has(.access-page) .access-form-register > label { margin-top: 2px; }
.access-form-register > .access-submit { margin-top: 8px; }
body:has(.access-page) .access-form input { font-size: 15px; }
.captcha-row { display: grid; grid-template-columns: minmax(0, 1fr) 156px; gap: 10px; margin-bottom: 16px; align-items: center; }
.access-form .captcha-row input { width: 100%; min-width: 0; margin: 0; box-sizing: border-box; height: 52px; }
.access-page .captcha-image { padding: 0; height: 52px; width: 156px; border: 1px solid #c7dfda; background: #eef7f6; border-radius: 6px; overflow: hidden; }
.captcha-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.email-code-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; margin-bottom: 14px; }
.email-code-row input { width: 100%; min-width: 0; box-sizing: border-box; margin: 0 !important; }
.email-code-row button { white-space: nowrap; min-width: 112px; min-height: 44px; }
.access-page button:disabled { cursor: not-allowed; opacity: .6; }
body:has(.access-page) .access-footer { gap: 16px; flex-wrap: wrap; font-size: 12px; line-height: 1.8; }
@media (max-width: 900px) {
  body:has(.access-page) .access-layout { grid-template-columns: 1fr; gap: 28px; }
  body:has(.access-page) .access-form-panel { grid-row: 1; width: 100%; max-width: 620px; justify-self: center; box-sizing: border-box; }
  body:has(.access-page) .access-story { display: block; max-width: 560px; justify-self: center; }
}
@media (max-width: 520px) {
  .access-form.access-form-register { grid-template-columns: minmax(0,1fr); }
  body:has(.access-page) .access-page { width: calc(100% - 32px); }
  body:has(.access-page) .access-layout { padding: 24px 0; }
  body:has(.access-page) .access-form-panel { padding: 24px 20px; }
  body:has(.access-page) .access-story h1 { font-size: 36px; }
  body:has(.access-page) .access-story h1 span { font-size: 24px; }
  .captcha-row { grid-template-columns: minmax(0,1fr) 130px; }
  .access-page .captcha-image { width: 130px; }
  body:has(.access-page) .access-header { gap: 12px; }
  body:has(.access-page) .access-brand span { display: none; }
}

