.onboarding-shell {
  width: min(1120px, 100%);
  grid-template-columns: minmax(0, 1fr) minmax(460px, 1fr);
}
.ob-steps { display:flex; align-items:center; justify-content:center; gap:8px; margin:0 0 28px; }
.ob-step-dot { display:flex; flex-direction:column; align-items:center; gap:7px; min-width:64px; }
.ob-step-circle { width:32px; height:32px; border-radius:50%; background:var(--cream-100); border:1px solid var(--color-border); color:var(--slate-400); font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.ob-step-circle.active { background:var(--navy-900); border-color:var(--navy-900); color:#fff; }
.ob-step-circle.done { background:var(--arctic-100); border-color:var(--arctic-300); color:var(--navy-900); }
.ob-step-label { font-size:11px; font-weight:700; color:var(--slate-400); text-transform:uppercase; letter-spacing:.06em; }
.ob-step-label.active { color:var(--navy-900); }
.ob-step-line { flex:0 1 48px; height:1px; background:var(--color-border); margin-bottom:21px; }
.ob-step-line.done { background:var(--navy-900); }
.ob-panel { display:none; }
.ob-panel.active { display:block; }
.ob-panel-title { font-size:15px; font-weight:700; color:var(--navy-900); margin:0 0 18px; }
.ob-path-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:22px; }
.ob-path-tab { font:inherit; text-align:left; border:1px solid var(--color-border); border-radius:12px; padding:16px 14px; cursor:pointer; background:var(--cream-50); transition:border-color .15s, background .15s; }
.ob-path-tab:hover { border-color:var(--arctic-400); }
.ob-path-tab:focus-visible { outline:3px solid var(--arctic-300); outline-offset:3px; }
.ob-path-tab.selected { border-color:var(--navy-900); background:#fff; box-shadow:0 0 0 1px var(--navy-900); }
.ob-pt-title { display:block; font-size:13px; font-weight:800; color:var(--navy-900); margin-bottom:5px; }
.ob-pt-sub { display:block; font-size:12px; color:var(--slate-400); }
.ob-panel .field .field-error { display:none; }
.ob-panel .field.has-error .field-error { display:block; }
.ob-panel .field.has-error input { border-color:var(--red-500); box-shadow:0 0 0 3px rgba(214,64,69,.12); }
.ob-info { background:var(--cream-50); border:1px solid var(--color-border); border-radius:10px; padding:14px 16px; margin-bottom:16px; }
.ob-info-label { font-size:12px; color:var(--slate-400); }
.ob-info-value { font-size:14px; font-weight:700; color:var(--navy-900); margin-top:3px; overflow-wrap:anywhere; }
.ob-review-row { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:12px 0; border-bottom:1px solid var(--cream-200); }
.ob-review-row:last-child { border-bottom:none; }
.ob-review-label { font-size:11px; font-weight:700; color:var(--slate-400); text-transform:uppercase; letter-spacing:.06em; }
.ob-review-val { min-width:0; font-size:13px; font-weight:600; color:var(--navy-900); text-align:right; overflow-wrap:anywhere; }
.ob-btn-row { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:24px; }
.ob-btn-row .btn { min-height:44px; min-width:90px; justify-content:center; }
.ob-spacer { flex:1; }
.ob-error { margin-bottom:18px; padding:12px 14px; border-radius:8px; background:rgba(214,64,69,.08); }
.ob-error[hidden] { display:none; }
.ob-address-autocomplete { position:relative; }
.ob-address-results { position:absolute; z-index:30; bottom:calc(100% + 4px); left:0; right:0; max-height:240px; overflow:auto; border:1px solid var(--color-border); border-radius:10px; background:#fff; box-shadow:0 12px 30px rgba(18,43,63,.15); }
.ob-address-results[hidden] { display:none; }
.ob-address-result { display:block; width:100%; padding:12px; border:0; border-bottom:1px solid var(--cream-200); background:#fff; color:var(--navy-900); text-align:left; font:inherit; font-size:13px; cursor:pointer; }
.ob-address-result:last-child { border-bottom:0; }
.ob-address-result:hover, .ob-address-result[aria-selected="true"] { background:var(--arctic-100); }
.ob-address-result small, #company_address_help { display:block; margin-top:4px; color:var(--slate-400); font-size:12px; }
@media (max-width:850px) { .onboarding-shell { grid-template-columns:1fr; max-width:520px; } }
@media (max-width:480px) { .ob-path-tabs { grid-template-columns:1fr; gap:10px; } .ob-step-line { flex-basis:24px; } }
