:root {
    color-scheme: dark;
    --ob-bg: #01040a;
    --ob-panel: #06101c;
    --ob-panel-soft: #091525;
    --ob-field: #142034;
    --ob-field-text: #f5f8ff;
    --ob-blue: #0875ee;
    --ob-blue-bright: #52a0ff;
    --ob-text: #f5f8ff;
    --ob-muted: #8fa3bc;
    --ob-line: rgba(157, 187, 224, .14);
}

* { box-sizing: border-box; }

html, body { min-height: 100%; }

body.onboarding-body {
    min-width: 320px;
    margin: 0;
    background: var(--ob-bg);
    color: var(--ob-text);
    font-family: "Inter Tight", sans-serif;
}

.onboarding-body button,
.onboarding-body input,
.onboarding-body select { font: inherit; }

.onboarding-layout {
    min-height: 100vh;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    background: var(--ob-bg);
}

.onboarding-story {
    position: sticky;
    top: 0;
    min-height: 100vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: clamp(28px, 4vw, 68px);
    background: #000;
    border-right: 1px solid rgba(255, 255, 255, .08);
}

.onboarding-story::after {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    background: #000;
    opacity: .76;
    pointer-events: none;
}

.onboarding-story__media,
.onboarding-story__media picture,
.onboarding-story__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}

.onboarding-story__media img {
    object-fit: cover;
    object-position: 73% center;
    filter: none;
    image-rendering: auto;
}

.onboarding-brand {
    position: relative;
    z-index: 1;
    display: inline-flex;
    width: 220px;
}

.onboarding-brand img { width: 100%; height: auto; display: block; }

.onboarding-story__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    max-width: 590px;
    padding: 70px 0 56px;
    text-shadow: 0 2px 24px rgba(0, 0, 0, .78);
}

.onboarding-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
    color: rgba(255, 255, 255, .72);
    font: 500 11px/1.4 "IBM Plex Mono", monospace;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.onboarding-eyebrow span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #009bff;
}

.onboarding-aside-step[hidden] { display: none !important; }

.onboarding-story h1,
.onboarding-story h2 {
    max-width: 570px;
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-size: clamp(42px, 4.4vw, 74px);
    font-weight: 400;
    line-height: 1.04;
    letter-spacing: -.045em;
}

.onboarding-story h1 em,
.onboarding-story h2 em {
    color: inherit;
    font-family: inherit;
    font-weight: inherit;
    font-style: normal;
}

.onboarding-story__lead {
    max-width: 525px;
    margin: 25px 0 0;
    color: rgba(225, 237, 255, .7);
    font-size: 17px;
    line-height: 1.65;
}

.onboarding-benefits {
    display: grid;
    gap: 13px;
    margin: 30px 0 0;
    padding: 0;
    list-style: none;
}

.onboarding-benefits li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(235, 243, 255, .86);
    font-size: 14px;
}

.onboarding-benefits li::before {
    content: "";
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #009bff;
}

.onboarding-story__footer {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.onboarding-platforms {
    display: flex;
    padding-left: 8px;
}

.onboarding-platforms img {
    width: 42px;
    height: 42px;
    margin-left: -10px;
    border: 2px solid #030812;
    border-radius: 50%;
    object-fit: cover;
}

.onboarding-platforms img:last-child {
    position: relative;
    z-index: 2;
}

.onboarding-platform-copy {
    display: grid;
    gap: 3px;
}

.onboarding-platform-copy strong {
    color: rgba(255, 255, 255, .88);
    font-size: 12px;
    font-weight: 500;
}

.onboarding-platform-copy span {
    color: rgba(255, 255, 255, .48);
    font-size: 11px;
}

.onboarding-main {
    min-width: 0;
    min-height: 100vh;
    display: block;
    background: var(--ob-bg);
}

.onboarding-page-shell {
    width: min(100%, 980px);
    min-height: 100vh;
    margin: 0 auto;
    padding: 56px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
}

.onboarding-shell {
    width: 100%;
    overflow: hidden;
    border-radius: 22px;
    background: var(--ob-panel);
    box-shadow: none;
}

.onboarding-guidance {
    padding: 34px clamp(24px, 5vw, 48px) 30px;
    border-bottom: 1px solid rgba(99, 130, 167, .16);
}

.onboarding-guidance h1,
.onboarding-guidance h2 {
    max-width: 760px;
    margin: 0;
    color: #f6f9ff;
    font: 500 clamp(27px, 4vw, 38px)/1.12 "Manrope", sans-serif;
    letter-spacing: -.04em;
}

.onboarding-guidance h1 em,
.onboarding-guidance h2 em { color: inherit; font-style: normal; }

.onboarding-guidance .onboarding-story__lead {
    max-width: 760px;
    margin-top: 14px;
    color: var(--ob-muted);
    font-size: 14px;
    line-height: 1.6;
}

.onboarding-guidance .onboarding-benefits {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-top: 20px;
}

.onboarding-guidance .onboarding-benefits li {
    color: #aabbd0;
    font-size: 12px;
}

.onboarding-brand {
    width: 220px;
    display: block;
}

.onboarding-page-actions {
    min-height: 42px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px 22px;
}

.onboarding-page-actions form { margin: 0; }
.onboarding-page-action,
.onboarding-page-action-copy {
    color: #8397b0;
    font-size: 13px;
    text-decoration: none;
}
.onboarding-page-action { min-height: 40px; padding: 0 14px; display: inline-flex; align-items: center; border-radius: 10px; background: var(--ob-field); }
.onboarding-page-action:hover,
.onboarding-page-action-copy a:hover { color: #fff; }
.onboarding-page-action-copy a { margin-left: 3px; color: #91b8ff; text-decoration: none; }
.onboarding-page-action--button { border: 0; cursor: pointer; }

.onboarding-topbar {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    padding: 20px clamp(24px, 5vw, 72px);
}

.onboarding-topbar form { margin: 0; }
.onboarding-topbar__muted { color: #6f829a; font-size: 13px; }
.onboarding-topbar__link {
    color: #9eb2c9;
    font-size: 13px;
    text-decoration: none;
    transition: color .2s ease;
}
.onboarding-topbar__link:hover { color: #fff; }
.onboarding-topbar__link--accent { color: #dbeaff; }
.onboarding-topbar__button { padding: 0; border: 0; background: transparent; cursor: pointer; }

.onboarding-main__inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 32px clamp(24px, 5vw, 48px) 42px;
}

.onboarding-card { width: 100%; }

.onboarding-progress {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 42px;
}

.onboarding-progress__step { min-width: 0; }
.onboarding-progress__bar {
    height: 3px;
    overflow: hidden;
    border-radius: 99px;
    background: #122137;
}
.onboarding-progress__bar::after {
    content: "";
    display: block;
    width: 0;
    height: 100%;
    background: var(--ob-blue);
    transition: width .3s ease;
}
.onboarding-progress__step.is-active .onboarding-progress__bar::after,
.onboarding-progress__step.is-complete .onboarding-progress__bar::after { width: 100%; }
.onboarding-progress__label {
    display: block;
    overflow: hidden;
    margin-top: 9px;
    color: #52677f;
    font-size: 11px;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.onboarding-progress__step.is-active .onboarding-progress__label { color: #d6e6fb; }
.onboarding-progress__step.is-complete .onboarding-progress__label { color: #8298b2; }

.onboarding-form-header { margin-bottom: 30px; }
.onboarding-step-count {
    margin: 0 0 11px;
    color: var(--ob-blue-bright);
    font: 500 11px/1.4 "IBM Plex Mono", monospace;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.onboarding-form-header h1,
.onboarding-form-header h2 {
    margin: 0;
    color: #f6f9ff;
    font: 500 clamp(30px, 4vw, 46px)/1.08 "Manrope", sans-serif;
    letter-spacing: -.045em;
}
.onboarding-form-header p {
    max-width: 650px;
    margin: 13px 0 0;
    color: var(--ob-muted);
    font-size: 15px;
    line-height: 1.6;
}

.onboarding-step-panel[hidden] { display: none !important; }
.onboarding-fields { display: grid; gap: 19px; }
.onboarding-fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.onboarding-field { min-width: 0; }
.onboarding-field--full { grid-column: 1 / -1; }

.onboarding-field label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
    color: #d9e5f4;
    font-size: 13px;
    font-weight: 500;
}
.onboarding-field label small { color: #667d98; font-size: 11px; font-weight: 400; }
.onboarding-input,
.onboarding-select {
    width: 100%;
    min-height: 52px;
    border: 0;
    border-radius: 11px;
    outline: 0;
    background: var(--ob-field);
    color: var(--ob-field-text);
    padding: 13px 16px;
    font-size: 15px;
    line-height: 24px;
    box-shadow: 0 0 0 0 rgba(56, 143, 255, 0);
    transition: box-shadow .2s ease, background .2s ease;
}
.onboarding-input::placeholder { color: #71849e; opacity: 1; }
.onboarding-input:focus,
.onboarding-select:focus { background: #1b2d45; box-shadow: 0 0 0 2px rgba(79, 140, 255, .48); }
.onboarding-select { appearance: none; padding-right: 44px; background-image: none; }

.onboarding-field .select2-container {
    width: 100% !important;
}

.onboarding-field .select2-container--default .select2-selection--single {
    height: 52px;
    border: 0;
    border-radius: 11px;
    outline: 0;
    background: var(--ob-field);
    box-shadow: 0 0 0 0 rgba(56, 143, 255, 0);
    transition: box-shadow .2s ease, background .2s ease;
}

.onboarding-field .select2-container--default .select2-selection--single .select2-selection__rendered {
    height: 52px;
    display: flex;
    align-items: center;
    padding: 0 46px 0 16px;
    color: var(--ob-field-text);
    font-size: 15px;
    line-height: 52px;
}

.onboarding-field .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: rgba(97, 112, 134, .72);
}

.onboarding-field .select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 0;
    right: 13px;
    width: 28px;
    height: 52px;
}

.onboarding-field .select2-container--default.select2-container--focus .select2-selection--single,
.onboarding-field .select2-container--default.select2-container--open .select2-selection--single {
    background: #1b2d45;
    box-shadow: 0 0 0 2px rgba(79, 140, 255, .48);
}

.onboarding-field .input-validation-error + .select2-container .select2-selection--single {
    box-shadow: 0 0 0 3px rgba(255, 72, 100, .28);
}

.onboarding-select2-option {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.onboarding-select2-flag {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    border-radius: 50%;
    object-fit: cover;
}

.select2-container--open { z-index: 1100; }

.onboarding-select2-dropdown.select2-dropdown {
    overflow: hidden;
    border: 0;
    border-radius: 11px;
    background: #101e31;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .36);
    color: #e8f1ff;
}

.onboarding-select2-dropdown .select2-search--dropdown {
    padding: 10px;
}

.onboarding-select2-dropdown .select2-search--dropdown .select2-search__field {
    min-height: 42px;
    border: 0;
    border-radius: 10px;
    outline: 0;
    background: #17263b;
    color: #f5f8ff;
    padding: 9px 12px;
}

.onboarding-select2-dropdown .select2-results__options {
    max-height: 260px;
    padding: 5px;
}

.onboarding-select2-dropdown .select2-results__option {
    min-height: 42px;
    display: flex;
    align-items: center;
    border-radius: 10px;
    padding: 8px 11px;
}

.onboarding-select2-dropdown .select2-results__option[aria-selected="true"] {
    background: #172a42;
    color: #e8f1ff;
}

.onboarding-select2-dropdown .select2-results__option--highlighted[aria-selected] {
    background: #1677ff;
    color: #fff;
}

.field-validation-error,
.onboarding-field-validation {
    display: block;
    margin-top: 7px;
    color: #ff8e9e;
    font-size: 12px;
}
.field-validation-valid { display: none; }
.input-validation-error { box-shadow: 0 0 0 3px rgba(255, 72, 100, .28); }

.onboarding-validation-summary {
    margin-bottom: 22px;
    border-radius: 14px;
    background: rgba(178, 39, 67, .13);
    color: #ffb6c2;
    padding: 13px 16px;
    font-size: 13px;
}
.onboarding-validation-summary.validation-summary-valid { display: none; }
.onboarding-validation-summary ul { margin: 0; padding-left: 18px; }

.onboarding-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 34px;
}
.onboarding-actions--end { justify-content: flex-end; }
.onboarding-button {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    border-radius: 14px;
    padding: 13px 22px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: transform .2s ease, background .2s ease, color .2s ease;
}
.onboarding-button:hover { transform: translateY(-1px); }
.onboarding-button--primary { background: var(--ob-blue); color: #fff; box-shadow: none; }
.onboarding-button--primary:hover { background: #1689ff; }
.onboarding-button--secondary { background: #0d1929; color: #a9bcd2; }
.onboarding-button--secondary:hover { color: #fff; background: #122238; }
.onboarding-button__arrow { font-size: 18px; line-height: 1; }

.onboarding-plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.onboarding-plan {
    min-width: 0;
    min-height: 185px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    border: 0;
    border-radius: 18px;
    background: #0b1727;
    color: var(--ob-text);
    padding: 18px;
    text-align: left;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px transparent;
    transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.onboarding-plan:hover { transform: translateY(-2px); background: #0e1d31; }
.onboarding-plan.is-selected { background: #0d2039; box-shadow: inset 0 0 0 2px #338cff, 0 12px 34px rgba(8, 91, 207, .16); }
.onboarding-plan__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.onboarding-plan__name { color: #fff; font-size: 17px; font-weight: 600; }
.onboarding-plan__check { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; background: #14253a; color: transparent; font-size: 12px; }
.onboarding-plan.is-selected .onboarding-plan__check { background: var(--ob-blue); color: #fff; }
.onboarding-plan__price { margin-top: 18px; color: #fff; font: 500 26px/1 "Manrope", sans-serif; letter-spacing: -.04em; }
.onboarding-plan__price small { color: #7389a3; font: 400 11px "Inter Tight", sans-serif; letter-spacing: 0; }
.onboarding-plan__limits { display: grid; gap: 6px; margin-top: auto; padding-top: 18px; color: #8298b2; font-size: 11px; line-height: 1.35; }

.onboarding-trial-note {
    display: flex;
    gap: 11px;
    margin-top: 16px;
    border-radius: 14px;
    background: rgba(20, 112, 255, .08);
    color: #9db7d6;
    padding: 14px 16px;
    font-size: 12px;
    line-height: 1.5;
}
.onboarding-trial-note strong { color: #dceaff; }

.onboarding-summary { display: grid; gap: 10px; margin-top: 24px; }
.onboarding-summary__item { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-radius: 13px; background: #091422; padding: 13px 16px; }
.onboarding-summary__item span { color: #7288a2; font-size: 12px; }
.onboarding-summary__item strong { overflow: hidden; color: #dfeafa; font-size: 13px; text-align: right; text-overflow: ellipsis; white-space: nowrap; }

.onboarding-social { display: grid; gap: 11px; margin-top: 25px; }
.onboarding-social--first { margin: 0 0 26px; }
.onboarding-social--first form { display: grid; gap: 10px; }
.onboarding-social__divider { display: flex; align-items: center; gap: 12px; color: #546a84; font-size: 11px; }
.onboarding-social__divider::before,
.onboarding-social__divider::after { content: ""; flex: 1; height: 1px; background: var(--ob-line); }
.onboarding-social-button { width: 100%; min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 14px; background: var(--ob-field); color: #cedced; cursor: pointer; font-size: 13px; }
.onboarding-social-button:hover { background: #18263c; color: #fff; }
.onboarding-social-button img { width: 19px; height: 19px; object-fit: contain; }
.onboarding-login-note { margin: 24px 0 0; color: #71859d; font-size: 12px; text-align: center; }
.onboarding-login-note a { color: #d3e4fa; text-decoration: underline; text-underline-offset: 3px; }

.onboarding-complete-icon { display: grid; width: 68px; height: 68px; margin-bottom: 25px; place-items: center; border-radius: 22px; background: #3478f6; color: #fff; font-size: 30px; box-shadow: 0 18px 48px rgba(15, 120, 255, .24); }
.onboarding-next-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin-top: 30px; }
.onboarding-next-card { border-radius: 16px; background: #0a1625; padding: 17px; }
.onboarding-next-card span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; background: #102745; color: #67a9ff; font: 500 11px "IBM Plex Mono", monospace; }
.onboarding-next-card strong { display: block; margin-top: 15px; color: #edf5ff; font-size: 13px; }
.onboarding-next-card p { margin: 6px 0 0; color: #7288a2; font-size: 11px; line-height: 1.45; }

.onboarding-legal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px clamp(24px, 5vw, 72px);
    color: #43566c;
    font-size: 10px;
}

@media (max-width: 1120px) {
    .onboarding-plan-grid { grid-template-columns: 1fr; }
    .onboarding-plan { min-height: auto; }
}

@media (max-width: 820px) {
    .onboarding-page-shell { padding: 40px 18px; gap: 20px; }
    .onboarding-brand { width: 190px; }
    .onboarding-shell { border-radius: 18px; }
    .onboarding-guidance { padding: 28px 24px 25px; }
    .onboarding-guidance h1,
    .onboarding-guidance h2 { font-size: clamp(25px, 6vw, 34px); }
    .onboarding-main__inner { padding: 28px 24px 34px; }
}

@media (max-width: 620px) {
    .onboarding-page-shell { justify-content: flex-start; padding: 28px 14px; }
    .onboarding-brand { width: 174px; }
    .onboarding-guidance { padding: 24px 20px 22px; }
    .onboarding-guidance .onboarding-benefits { display: grid; gap: 9px; }
    .onboarding-main__inner { padding: 25px 20px 28px; }
    .onboarding-fields--two { grid-template-columns: 1fr; }
    .onboarding-field--full { grid-column: auto; }
    .onboarding-progress__label { display: none; }
    .onboarding-progress { margin-bottom: 30px; }
    .onboarding-form-header h1, .onboarding-form-header h2 { font-size: 31px; }
    .onboarding-actions { align-items: stretch; flex-direction: column-reverse; }
    .onboarding-actions .onboarding-button { width: 100%; }
    .onboarding-actions--end { flex-direction: column; }
    .onboarding-next-grid { grid-template-columns: 1fr; }
    .onboarding-summary__item { align-items: flex-start; flex-direction: column; gap: 4px; }
    .onboarding-summary__item strong { text-align: left; }
    .onboarding-page-actions { flex-direction: column; gap: 8px; }
}

