body.is-public-onboarding { overflow: hidden; }
body.is-public-onboarding .app-shell {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: #003b95;
}
body.is-public-onboarding .app-header { min-height: calc(4.25rem + var(--safe-top)); box-shadow: none; }
body.is-public-onboarding .app-main { width: 100%; max-width: none; min-height: 0; height: 100%; margin: 0; padding: 0; }
body.is-public-onboarding .notification-bell { display: none; }

.onboarding-screen {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    color: #fff;
    background: #003b95 url('../assets/brand/header.jpg') 75% bottom / auto 85% no-repeat;
}
.onboarding-stage { display: flex; flex: 1 1 auto; flex-direction: column; justify-content: flex-start; gap: clamp(.8rem, 2.5vh, 1.3rem); width: min(100%, 36rem); min-height: 0; margin: 0 auto; padding: clamp(.75rem, 2.5vh, 1.5rem) max(1rem,var(--safe-right)) .55rem max(1rem,var(--safe-left)); }
.onboarding-copy { flex: 0 1 auto; min-height: 0; }
.onboarding-eyebrow { margin: 0 0 .45rem; color: #b8e5fb; font-size: .7rem; font-weight: 900; letter-spacing: .11em; line-height: 1.2; text-transform: uppercase; }
.onboarding-copy h2 { margin: 0; color: #fff; font-size: clamp(1.45rem, 5.9vw, 2.3rem); font-weight: 900; line-height: 1.08; text-wrap: balance; }
.onboarding-copy > p:last-child { margin: .7rem 0 0; color: #fff; font-size: clamp(1.02rem, 4vw, 1.16rem); line-height: 1.43; }
.onboarding-choices { display: grid; flex: 0 1 auto; gap: .7rem; }
.onboarding-choice { display: grid; grid-template-columns: 2.75rem minmax(0,1fr) auto; align-items: center; gap: .75rem; min-height: 6.7rem; padding: .9rem; color: #17212b; background: #fff; border: 3px solid #80bcda; border-radius: .9rem; box-shadow: 0 .4rem 1rem rgb(0 20 60 / 16%); text-decoration: none; }
.onboarding-choice__icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; color: #0066c5; background: #eaf5fb; border-radius: 50%; font-size: 1.2rem; }
.onboarding-choice > span:nth-child(2) { min-width: 0; }
.onboarding-choice strong, .onboarding-choice small { display: block; }
.onboarding-choice strong { color: #003b95; font-size: .94rem; font-weight: 900; line-height: 1.2; }
.onboarding-choice small { margin-top: .3rem; color: #586b7a; font-size: .79rem; line-height: 1.3; }
.onboarding-choice > i { color: #0066c5; }
.onboarding-welcome__foot { display: flex; align-items: center; justify-content: space-between; gap: .5rem; width: min(100%, 36rem); margin: 0 auto; padding: .45rem max(1rem,var(--safe-right)) calc(.85rem + var(--safe-bottom)) max(1rem,var(--safe-left)); color: #dceefa; font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }

.onboarding-final-actions { display: grid; gap: .65rem; }
.onboarding-register, .onboarding-login { display: flex; align-items: center; justify-content: center; min-height: 3.2rem; padding: .55rem .85rem; border-radius: .55rem; font-size: .9rem; font-weight: 900; text-align: center; text-decoration: none; }
.onboarding-register { color: #fff; background: #0066c5; }
.onboarding-login { color: #003b95; background: #fff; border: 2px solid #80bcda; }

.onboarding-footer { flex: 0 0 auto; width: min(100%,36rem); margin: 0 auto; padding: .35rem max(1rem,var(--safe-right)) calc(.75rem + var(--safe-bottom)) max(1rem,var(--safe-left)); }
.onboarding-dots { display: flex; align-items: center; justify-content: center; gap: .45rem; height: 1.1rem; margin-bottom: .55rem; }
.onboarding-dots span { width: .5rem; height: .5rem; background: rgb(255 255 255 / 50%); border-radius: 999px; }
.onboarding-dots span.is-active { width: 1.4rem; background: #fff; }
.onboarding-controls { display: grid; grid-template-columns: 3.1rem minmax(0,1fr) auto; align-items: stretch; gap: .55rem; }
.onboarding-controls button { min-height: 3.25rem; border-radius: .6rem; font-weight: 900; cursor: pointer; }
.onboarding-back { color: #fff; background: rgb(255 255 255 / 13%); border: 1px solid #baddeb; }
.onboarding-skip { color: #003b95; background: #fff; border: 2px solid #fff; font-size: .96rem; letter-spacing: .04em; }
.onboarding-next { display: flex; align-items: center; justify-content: center; gap: .4rem; padding: 0 .9rem; color: #fff; background: #0066c5; border: 2px solid #80bcda; font-size: .76rem; }
.onboarding-footer__spacer { grid-column: 2 / -1; }

@media (max-height: 760px) {
    body.is-public-onboarding .app-header { min-height: calc(3.8rem + var(--safe-top)); padding-top: calc(.35rem + var(--safe-top)); padding-bottom: .35rem; }
    body.is-public-onboarding .app-brand img { height: 2.25rem; }
    .onboarding-stage { gap: .65rem; padding-top: .55rem; padding-bottom: .3rem; }
    .onboarding-copy h2 { font-size: clamp(1.32rem,5.5vw,1.8rem); }
    .onboarding-copy > p:last-child { margin-top: .55rem; font-size: 1rem; line-height: 1.35; }
    .onboarding-choice { min-height: 5.8rem; padding: .7rem; }
    .onboarding-footer { padding-bottom: calc(.45rem + var(--safe-bottom)); }
    .onboarding-dots { margin-bottom: .35rem; }
    .onboarding-controls button { min-height: 3rem; }
}

@media (max-height: 640px) {
    .onboarding-stage { gap: .4rem; }
    .onboarding-copy h2 { font-size: 1.2rem; }
    .onboarding-copy > p:last-child { font-size: .9rem; line-height: 1.28; }
}

@media (min-width: 48rem) {
    .onboarding-screen { background-position: 75% bottom; background-size: cover; }
    .onboarding-copy h2 { font-size: 2.15rem; }
    .onboarding-copy > p:last-child { font-size: 1.1rem; }
}
