.auth-body { min-width: 320px; background: #eef0ea; }
.auth-shell { min-height: 100vh; padding: 26px 20px 54px; display: grid; align-content: start; justify-items: center; gap: 28px; background: radial-gradient(circle at 10% 0, #fff 0, transparent 30%), #eef0ea; }
.auth-shell-compact { align-content: center; }
.auth-brand { justify-self: start; }
.auth-card { width: min(100%, 720px); padding: 30px 22px; border: 1px solid rgba(70,83,63,.13); border-radius: 20px; background: rgba(255,255,255,.96); box-shadow: 0 24px 70px rgba(24,26,24,.1); }
.auth-card h1, .launch-card h1 { margin-bottom: 14px; font-size: clamp(2rem, 7vw, 3.35rem); }
.wizard-aside h1 { margin-bottom: 14px; font-size: clamp(2rem, 6vw, 2.6rem); overflow-wrap: anywhere; }
.auth-lead, .panel-lead { color: var(--text-muted); }
.auth-lead { margin-bottom: 28px; }
.auth-form { display: grid; gap: 18px; }
.form-grid { display: grid; gap: 16px; }
.form-grid.compact { grid-template-columns: repeat(2, minmax(0,1fr)); }
.field { min-width: 0; display: grid; gap: 7px; }
.field label, .upload-field > span { font-size: .875rem; font-weight: 800; }
.field label small, .upload-field em { color: var(--text-muted); font-size: .68rem; font-style: normal; font-weight: 500; }
.field input, .field textarea, .slug-input, .upload-field { width: 100%; border: 1px solid #d8dcd4; border-radius: 10px; color: var(--graphite); background: #fbfcf9; font: inherit; font-size: 16px; transition: border-color .2s, box-shadow .2s; }
.field input, .slug-input { min-height: 52px; }
.field input, .field textarea { padding: 13px 14px; }
.field textarea { resize: vertical; }
.field input:focus, .field textarea:focus, .slug-input:focus-within { outline: none; border-color: var(--olive); box-shadow: 0 0 0 4px rgba(101,116,91,.12); }
.slug-input { padding-left: 13px; display: flex; align-items: center; overflow: hidden; }
.slug-input span { flex: 0 0 auto; color: var(--text-muted); font-size: .82rem; font-weight: 700; }
.slug-input input { min-width: 0; border: 0; background: transparent; box-shadow: none; }
.slug-input input:focus { box-shadow: none; }
.check-field { display: flex; align-items: flex-start; gap: 10px; color: #4c514c; font-size: .78rem; cursor: pointer; }
.check-field input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--olive); flex: 0 0 auto; }
.check-field.prominent { padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: #f8f9f5; }
.check-field.prominent span, .check-field.prominent small { display: block; }
.check-field.prominent small { margin-top: 3px; color: var(--text-muted); }
.field-error { color: #a64236; font-size: .72rem; font-weight: 700; }
.field-error-block { display: block; margin-top: 8px; }
.form-alert, .form-success { margin-bottom: 22px; padding: 14px 16px; border-radius: 10px; display: grid; gap: 2px; font-size: .8rem; }
.form-alert { border: 1px solid #e6c1bc; color: #76352d; background: #fff2f0; }
.form-success { border: 1px solid #bdcbb5; color: #3c5134; background: #f0f5ed; }
.auth-switch { margin: 24px 0 0; color: var(--text-muted); font-size: .82rem; text-align: center; }
.auth-switch a { color: var(--olive); font-weight: 800; }

.onboarding-shell { min-height: 100vh; }
.wizard-header, .launch-header { width: min(calc(100% - 40px), 1180px); min-height: 76px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.wizard-account { max-width: 43vw; overflow: hidden; color: var(--text-muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.wizard-layout { width: min(calc(100% - 32px), 1180px); margin: 8px auto 50px; display: grid; gap: 18px; }
.wizard-aside { padding: 28px 22px; border-radius: 18px; color: white; background: linear-gradient(145deg,#1a1d1a,#45533f); }
.wizard-aside > p:not(.eyebrow) { color: #c8cec5; font-size: .84rem; }
.wizard-aside .eyebrow { color: #b7c6ae; }
.stepper { margin: 24px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 5px; }
.stepper li { min-width: 0; display: grid; justify-items: center; gap: 4px; color: #9da69a; }
.stepper span { width: 25px; height: 25px; border: 1px solid #6c7768; border-radius: 50%; display: grid; place-items: center; font-size: .65rem; font-weight: 800; }
.stepper b { max-width: 100%; font-size: .68rem; line-height: 1.2; text-align: center; }
.stepper li.active, .stepper li.done { color: white; }
.stepper li.active span, .stepper li.done span { border-color: #dce6d6; color: var(--graphite); background: #dce6d6; }
.wizard-card { min-width: 0; padding: 28px 20px; border: 1px solid rgba(70,83,63,.13); border-radius: 18px; background: white; box-shadow: var(--shadow-soft); }
.wizard-panel { min-width: 0; margin: 0; padding: 0; border: 0; display: none; }
.wizard-panel.active { display: block; }
.wizard-panel legend { width: 100%; margin-bottom: 9px; font-size: clamp(1.65rem, 6vw, 2.45rem); font-weight: 800; letter-spacing: -.045em; line-height: 1.08; }
.panel-lead { margin-bottom: 27px; font-size: .88rem; }
.choice-grid, .plan-choice-grid { display: grid; gap: 13px; }
.choice-card, .plan-choice { min-width: 0; padding: 20px; border: 1px solid var(--border); border-radius: 14px; background: #fafaf7; cursor: pointer; transition: border-color .2s, transform .2s, box-shadow .2s; }
.choice-card { min-height: 170px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.choice-card:has(input:checked), .plan-choice:has(input:checked) { border-color: var(--olive); box-shadow: 0 0 0 3px rgba(101,116,91,.12); transform: translateY(-2px); }
.choice-card input, .plan-choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice-icon { width: 42px; height: 42px; margin-bottom: 24px; border-radius: 10px; color: white; background: var(--olive); display: grid; place-items: center; }
.choice-card strong, .choice-card small { display: block; }
.choice-card strong { margin-bottom: 6px; }
.choice-card small { color: var(--text-muted); }
.plan-choice { display: block; }
.plan-choice[hidden] { display: none; }
.plan-choice-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.plan-choice-head > strong { font-size: .88rem; text-transform: uppercase; }
.plan-choice-head b { font-size: 1.7rem; }
.plan-choice-head small { color: var(--text-muted); font-size: .65rem; }
.plan-choice ul { margin: 18px 0 0; padding: 0; list-style: none; color: var(--text-muted); font-size: .72rem; display: grid; gap: 7px; }
.billing-period-choice { margin-bottom: 18px; padding: 4px; border: 1px solid var(--border); border-radius: 12px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px; background: #f2f4ef; }
.billing-period-choice label { min-width: 0; cursor: pointer; }
.billing-period-choice input { position: absolute; opacity: 0; pointer-events: none; }
.billing-period-choice span { min-height: 48px; padding: 7px 6px; border-radius: 8px; display: grid; place-content: center; color: var(--text-muted); font-size: .72rem; font-weight: 800; text-align: center; }
.billing-period-choice small { display: block; font-size: .55rem; font-weight: 600; }
.billing-period-choice input:checked + span { color: var(--graphite); background: white; box-shadow: 0 3px 12px rgba(24,26,24,.08); }
.commercial-options { margin-top: 16px; display: grid; gap: 13px; }
[data-studio-fields][hidden], [data-individual-fields][hidden] { display: none !important; }
.commercial-options > .field, .commercial-options > .check-field, .promo-entry, .commercial-quote { padding: 15px; border: 1px solid var(--border); border-radius: 12px; background: #fafaf7; }
.commercial-options .field > small { color: var(--text-muted); font-size: .68rem; }
.promo-entry { display: grid; gap: 10px; }
.promo-entry .button { min-height: 48px; }
.commercial-quote { color: #43513d; background: #edf2e9; display: grid; gap: 3px; }
.commercial-quote.error { border-color: #e6c1bc; color: #76352d; background: #fff2f0; }
.commercial-quote span { font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.commercial-quote small { color: var(--text-muted); font-size: .7rem; }
.upload-grid { margin-top: 16px; display: grid; gap: 14px; }
.upload-field { min-height: 95px; padding: 14px; display: grid; align-content: center; gap: 7px; border-style: dashed; cursor: pointer; }
.upload-field input { max-width: 100%; font-size: .72rem; }
.upload-field small { color: var(--text-muted); font-size: .66rem; }
.service-editor { display: grid; gap: 14px; }
.service-edit-card, .schedule-card, .location-card, .review-card { padding: 17px; border: 1px solid var(--border); border-radius: 14px; background: #fafaf7; }
.service-edit-head { margin-bottom: 14px; display: flex; justify-content: space-between; align-items: center; }
.service-edit-head button { width: 35px; height: 35px; border: 0; border-radius: 50%; color: var(--text-muted); background: #eceee9; font-size: 1.25rem; cursor: pointer; }
.service-edit-card .field + .field, .service-edit-card .form-grid + .field, .service-edit-card .field + .form-grid { margin-top: 12px; }
.service-edit-card .check-field { margin-top: 14px; }
.add-button { width: 100%; min-height: 48px; margin-top: 13px; border: 1px dashed var(--olive); border-radius: 10px; color: var(--olive); background: transparent; font-weight: 800; cursor: pointer; }
.studio-professional { margin-bottom: 18px; }
.initial-professional { margin-top: 13px; padding: 17px; border-left: 3px solid var(--olive); display: grid; gap: 14px; background: #f8f9f5; }
.schedule-card h2, .location-card h2 { margin-bottom: 15px; font-size: 1rem; letter-spacing: -.02em; }
.schedule-row { min-width: 0; padding: 10px 0; border-bottom: 1px solid var(--border); display: grid; gap: 9px; }
.schedule-row:last-child { border-bottom: 0; }
.day-toggle { display: flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 800; }
.day-toggle input { width: 18px; height: 18px; accent-color: var(--olive); }
.time-range { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 7px; }
.time-range input { min-width: 0; min-height: 43px; padding: 7px; border: 1px solid #d8dcd4; border-radius: 8px; background: white; font: inherit; font-size: 16px; }
.location-card { margin-top: 17px; display: grid; gap: 14px; }
.location-advanced { padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: white; }
.location-advanced summary { color: var(--olive); font-size: .78rem; font-weight: 800; cursor: pointer; }
.location-advanced summary small { color: var(--text-muted); font-weight: 500; }
.location-advanced[open] summary { margin-bottom: 14px; }
.review-card { display: grid; gap: 0; }
.review-row { padding: 14px 0; border-bottom: 1px solid var(--border); display: grid; gap: 3px; }
.review-row:last-child { border-bottom: 0; }
.review-row span { color: var(--text-muted); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.review-row strong { overflow-wrap: anywhere; }
.trial-note { margin-top: 15px; padding: 15px; border-radius: 11px; color: #43513d; background: #e9eee5; display: grid; gap: 2px; font-size: .76rem; }
.wizard-actions { margin-top: 28px; padding-top: 19px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; gap: 10px; }
.wizard-actions .button { min-width: 0; padding-inline: 16px; }

.launch-shell { min-height: 100vh; padding-bottom: 50px; }
.launch-header { border-bottom: 1px solid rgba(70,83,63,.12); }
.launch-card { width: min(calc(100% - 32px), 850px); margin: 42px auto; padding: 30px 22px; border: 1px solid var(--border); border-radius: 20px; background: white; box-shadow: var(--shadow); }
.summary-grid { margin: 28px 0; display: grid; gap: 10px; }
.summary-grid > div { padding: 17px; border-radius: 11px; background: #f3f4ef; display: grid; gap: 4px; }
.summary-grid span { color: var(--text-muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.launch-note { padding: 15px; border-radius: 10px; color: var(--text-muted); background: #f3f4ef; font-size: .8rem; }

@media (min-width: 620px) {
    .auth-shell { padding-inline: 32px; }
    .auth-brand { width: min(100%, 720px); justify-self: center; }
    .auth-card { padding: 46px; }
    .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .plan-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .upload-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .schedule-row { grid-template-columns: 135px minmax(0,1fr); align-items: center; }
    .summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .stepper { grid-template-columns: repeat(6,1fr); }
    .promo-entry { grid-template-columns: minmax(0,1fr) auto; align-items: end; }
}

@media (min-width: 920px) {
    .wizard-layout { grid-template-columns: 300px minmax(0,1fr); align-items: start; gap: 24px; }
    .wizard-aside { min-height: 650px; padding: 42px 32px; position: sticky; top: 20px; }
    .stepper { grid-template-columns: 1fr; gap: 17px; }
    .stepper li { grid-template-columns: 29px 1fr; justify-items: start; align-items: center; }
    .stepper b { font-size: .8rem; text-align: left; }
    .wizard-card { min-height: 650px; padding: 46px; }
    .plan-choice-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
