.reg-screen { min-height: 100vh; background: linear-gradient(135deg, #eef6ff 0%, #f8fafc 45%, #fff 100%); }
.reg-wrap { max-width: 72rem; margin: 0 auto; min-height: 100vh; padding: 2.5rem 1rem; display: flex; flex-direction: column; justify-content: center; }
.reg-shell { display: grid; overflow: hidden; border-radius: .75rem; border: 1px solid #e2e8f0; background: #fff; box-shadow: 0 20px 25px -5px rgb(15 23 42 / .08), 0 8px 10px -6px rgb(15 23 42 / .08); }
@media (min-width: 1024px) { .reg-shell { grid-template-columns: 2fr 3fr; } }

.reg-aside { display: flex; flex-direction: column; gap: 2rem; padding: 2.5rem 2rem; color: #fff; background: linear-gradient(180deg, #104281 0%, #0d366b 100%); }
.reg-emblem { display: flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; border-radius: 9999px; background: rgb(255 255 255 / .1); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2); }
.reg-eyebrow { margin: 0; font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #b7d3f6; }
.reg-aside h2 { margin: .25rem 0 0; font-size: 1.5rem; color: #fff; }
.reg-aside p.reg-lead { margin: .5rem 0 0; font-size: .875rem; line-height: 1.6; color: #cde2fb; }
.reg-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 1rem; }
.reg-list li { display: flex; gap: .75rem; }
.reg-dot { margin-top: .45rem; width: .375rem; height: .375rem; flex-shrink: 0; border-radius: 9999px; background: #9ec5f4; }
.reg-list strong { display: block; font-size: .875rem; color: #fff; }
.reg-list span.reg-text { display: block; margin-top: .125rem; font-size: .8125rem; line-height: 1.55; color: #cde2fb; }
.reg-steps { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .75rem; font-size: .8125rem; line-height: 1.55; color: #cde2fb; }
.reg-steps li { display: flex; gap: .75rem; }
.reg-num { display: flex; width: 1.25rem; height: 1.25rem; flex-shrink: 0; align-items: center; justify-content: center; border-radius: 9999px; background: rgb(255 255 255 / .1); font-size: .7rem; font-weight: 600; color: #fff; }
.reg-note { margin-top: auto; padding-top: 1.25rem; border-top: 1px solid rgb(255 255 255 / .1); font-size: .75rem; color: #b7d3f6; }

.reg-main { padding: 2.5rem 2rem; }
.reg-main h1 { margin: 0; font-size: 1.25rem; }
.reg-sub { margin: .25rem 0 0; font-size: .875rem; color: #64748b; }
.reg-sub a { font-weight: 600; color: #184f95; text-decoration: underline; }
.reg-form { margin-top: 1.75rem; display: grid; gap: 1.75rem; }
.reg-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px) {
  .reg-grid { grid-template-columns: 1fr 1fr; }
  .reg-span { grid-column: span 2 / span 2; }
  .reg-roles { grid-template-columns: repeat(3, 1fr); }
}

.reg-roles { display: grid; gap: .75rem; }
.reg-role { position: relative; display: flex; flex-direction: column; cursor: pointer; padding: .75rem .875rem; border: 1px solid #e2e8f0; border-radius: .5rem; transition: border-color .15s, background-color .15s, box-shadow .15s; }
.reg-role:hover { border-color: #6da7ec; }
.reg-role:has(input:checked) { border-color: #2a78d6; background: #eef6ff; box-shadow: 0 0 0 1px #2a78d6; }
.reg-role:has(input:focus-visible) { outline: 2px solid #2a78d6; outline-offset: 2px; }
.reg-role-title { font-size: .875rem; font-weight: 600; color: #0f172a; }
.reg-role-desc { margin-top: .125rem; font-size: .75rem; line-height: 1.35; color: #64748b; }
.reg-access-fields { margin-top: 1rem; }
.reg-hint { margin: .75rem 0 0; font-size: .75rem; color: #64748b; }
.reg-field[hidden] { display: none; }

.reg-actions { display: flex; flex-direction: column-reverse; gap: .75rem; padding-top: 1.5rem; border-top: 1px solid #f1f5f9; }
@media (min-width: 640px) { .reg-actions { flex-direction: row; justify-content: flex-end; align-items: center; } }
.reg-credit { margin: 1.5rem 0 0; text-align: center; font-size: .75rem; color: #94a3b8; }
@media (min-width: 640px) { .reg-aside, .reg-main { padding: 2.5rem; } }
.reg-req { color: #d03b3b; font-weight: 600; }
