/* Robocard merchant signup.
   Quiet form on the left, the merchant's real card + a live "setup receipt" on the right.
   The receipt is the one loud element: it prints what Robocard is about to create. */
:root{
  --ink:#19142d;--ink-2:#5a5470;--ink-3:#8a8499;
  --base:#eeebf5;--paper:#ffffff;--field:#fbfaff;
  --line:rgba(25,20,45,.13);--line-2:rgba(25,20,45,.22);
  --violet:#6d4aff;--violet-deep:#4a2cd8;--violet-soft:#efebff;
  --coral:#ff785a;--mint:#1f9d6b;--mint-soft:#e5f6ee;--danger:#c0283f;--danger-soft:#fdecef;--amber:#9a6700;--amber-soft:#fff5dc;
  --night:#19142d;--night-2:#231c3d;
  --display:'Bricolage Grotesque',ui-sans-serif,system-ui,sans-serif;
  --body:'Hanken Grotesk',ui-sans-serif,system-ui,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  --r-s:10px;--r-m:14px;--r-l:20px;
  --top:64px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.ob{margin:0;min-width:320px;background:var(--base);color:var(--ink);font:16px/1.5 var(--body);-webkit-font-smoothing:antialiased}
.ob button,.ob input,.ob select,.ob textarea{font:inherit;color:inherit}
.ob button{cursor:pointer;touch-action:manipulation}
.ob button:disabled{cursor:not-allowed}
.ob svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ob-sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
[hidden]{display:none!important}
.ob-honeypot{position:fixed!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}
.ob :focus-visible{outline:3px solid rgba(109,74,255,.45);outline-offset:2px}
.ob-skip{position:fixed;left:16px;top:12px;transform:translateY(-200%);z-index:300;padding:10px 14px;border-radius:var(--r-s);background:var(--ink);color:#fff;text-decoration:none}
.ob-skip:focus{transform:none}

/* ------------------------------------------------------------------ top bar */
.ob-top{position:fixed;inset:0 0 auto;z-index:50;height:var(--top);display:flex;align-items:center;gap:16px;padding:0 24px;background:rgba(238,235,245,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.ob-logo{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:700 19px/1 var(--display);letter-spacing:-.02em}
.ob-logo-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--violet);color:#fff;font:800 17px/1 var(--display)}
.ob-top-signin{margin:0 0 0 auto;color:var(--ink-2);font-size:14px}
.ob-top-signin a{color:var(--violet-deep);font-weight:700;text-decoration:none}
.ob-top-signin a:hover{text-decoration:underline}
.ob-peek{display:none;margin-left:auto;align-items:center;gap:6px;height:36px;padding:0 12px;border:1px solid var(--line-2);border-radius:999px;background:var(--paper);font-size:14px;font-weight:600}
.ob-peek svg{width:18px;height:18px}

/* ------------------------------------------------------------------ boot */
.ob-boot{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:10px;padding:24px;text-align:center;color:var(--ink-2)}
.ob-boot p{margin:0}
.ob-spinner{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(109,74,255,.2);border-top-color:var(--violet);border-radius:50%;animation:obSpin .8s linear infinite;vertical-align:-3px}
.ob-spinner.lg{width:44px;height:44px;border-width:3.5px}
@keyframes obSpin{to{transform:rotate(360deg)}}

/* ------------------------------------------------------------------ shell */
.ob-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,460px);min-height:100vh;padding-top:var(--top)}
.ob-main{padding:32px 40px 0;display:flex;flex-direction:column;align-items:center}
.ob-main>*{width:100%;max-width:640px}
#ob-form{display:flex;flex-direction:column;flex:1}

/* progress */
.ob-steps ol{list-style:none;display:flex;gap:6px;margin:0 0 28px;padding:0}
.ob-steps li{flex:1;min-width:0}
.ob-steps button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:0;border:0;background:none;text-align:left;color:var(--ink-3)}
.ob-steps button::before{content:"";display:block;width:100%;height:4px;border-radius:4px;background:var(--line)}
.ob-steps .is-done button::before{background:var(--violet)}
.ob-steps .is-current button::before{background:linear-gradient(90deg,var(--violet) 55%,var(--line) 55%)}
.ob-steps button:disabled{opacity:1}
.ob-steps button:not(:disabled):hover .ob-step-name{color:var(--ink)}
.ob-step-dot{display:none}
.ob-step-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ob-steps .is-current .ob-step-name{color:var(--ink)}
.ob-steps .is-done .ob-step-name{color:var(--ink-2)}

.ob-resume{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;padding:12px 16px;border-radius:var(--r-m);background:var(--violet-soft);color:var(--violet-deep);font-size:14px}
.ob-resume p{margin:0}

/* heading */
.ob-head{margin-bottom:28px}
.ob-head h1{margin:0 0 8px;font:700 clamp(30px,4vw,40px)/1.08 var(--display);letter-spacing:-.03em;color:var(--ink);outline:none}
.ob-head p{margin:0;max-width:52ch;color:var(--ink-2);font-size:17px}

.ob-alert{margin-bottom:20px;padding:14px 16px;border-radius:var(--r-m);background:var(--danger-soft);color:var(--danger);font-weight:600;outline:none}

/* ------------------------------------------------------------------ fields */
.ob-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}
.span-2{grid-column:1/-1}
.ob-field{min-width:0}
.ob-field>label,.ob-mini-label,.ob-fieldset legend{display:block;margin-bottom:7px;font-size:14px;font-weight:700;color:var(--ink)}
.ob-optional{margin-left:6px;font-weight:500;color:var(--ink-3);font-size:13px}
.ob-control{position:relative;display:flex;align-items:center}
.ob-control input,.ob-control select{width:100%;height:50px;padding:0 14px;border:1.5px solid var(--line-2);border-radius:var(--r-m);background:var(--field);transition:border-color .15s,box-shadow .15s;appearance:none;-webkit-appearance:none}
.ob-control input::placeholder{color:#a7a2b5}
.ob-control input:hover,.ob-control select:hover{border-color:rgba(25,20,45,.35)}
.ob-control input:focus,.ob-control select:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 4px rgba(109,74,255,.14);background:#fff}
.ob-select::after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;margin-top:-6px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg);pointer-events:none}
.ob-select select{padding-right:40px}
.ob-status{position:absolute;right:14px;width:20px;height:20px;border-radius:50%;pointer-events:none}
.ob-field.is-ok .ob-status{background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4L18 8'/%3E%3C/svg%3E") center/14px no-repeat}
.ob-field.is-ok input{padding-right:44px}
.ob-hint{margin:6px 0 0;color:var(--ink-3);font-size:13px}
.ob-error{margin:0;color:var(--danger);font-size:13.5px;font-weight:600}
.ob-error:not(:empty){margin-top:6px}
.ob-field.is-invalid .ob-control input,.ob-field.is-invalid .ob-control select{border-color:var(--danger);background:#fff}
.ob-field.is-invalid .ob-control input:focus{box-shadow:0 0 0 4px rgba(192,40,63,.14)}
.ob-field.is-invalid>.ob-hint{display:none}

.ob-phone .ob-dial{position:absolute;left:1.5px;top:1.5px;bottom:1.5px;display:grid;place-items:center;min-width:64px;padding:0 10px;border-right:1.5px solid var(--line);border-radius:12px 0 0 12px;background:#f3f1f9;color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}
.ob-phone input{padding-left:78px;font-variant-numeric:tabular-nums}

.ob-password input{padding-right:52px}
.ob-icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:var(--r-s);background:transparent;color:var(--ink-2)}
.ob-icon-btn:hover{background:rgba(25,20,45,.06);color:var(--ink)}
.ob-password .ob-icon-btn{position:absolute;right:5px}
.ob-rules{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0 0;padding:0;font-size:13px;color:var(--ink-3)}
.ob-rules li{display:inline-flex;align-items:center;gap:6px}
.ob-rules li::before{content:"";width:14px;height:14px;border-radius:50%;border:1.5px solid var(--line-2);transition:background .15s,border-color .15s}
.ob-rules li.is-met{color:var(--mint)}
.ob-rules li.is-met::before{border-color:var(--mint);background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4L18 8'/%3E%3C/svg%3E") center/10px no-repeat}

.ob-fieldset{margin:0 0 30px;padding:0;border:0;min-width:0}
.ob-fieldset legend{padding:0;font:700 18px/1.3 var(--display);letter-spacing:-.01em;margin-bottom:12px}
.ob-fieldset legend .ob-optional{font-family:var(--body)}

/* business types */
.ob-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:8px}
.ob-cat{display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-m);background:var(--paper);text-align:left;font-size:14px;font-weight:600;line-height:1.25;transition:border-color .15s,background .15s}
.ob-cat svg{width:22px;height:22px;color:var(--violet)}
.ob-cat:hover{border-color:var(--violet)}
.ob-cat[aria-checked="true"]{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-deep)}
.ob-field.is-invalid .ob-cat{border-color:rgba(192,40,63,.45)}
.ob-subs{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line-2)}
.ob-types{display:grid;gap:14px}
.ob-type-group-name{display:block;margin-bottom:8px;color:var(--ink-3);font-size:13px;font-weight:600}
.ob-type-row{display:flex;flex-wrap:wrap;gap:8px}
.ob-type{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px 0 11px;border:1.5px solid var(--line-2);border-radius:999px;background:var(--paper);font-size:14.5px;font-weight:600;transition:border-color .15s,background .15s,color .15s}
.ob-type svg{width:19px;height:19px;color:var(--ink-2)}
.ob-type:hover{border-color:var(--violet)}
.ob-type[aria-checked="true"]{border-color:var(--violet);background:var(--violet);color:#fff}
.ob-type[aria-checked="true"] svg{color:#fff}
.ob-field.is-invalid .ob-type{border-color:rgba(192,40,63,.45)}

/* brand */
.ob-brand-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.ob-drop{position:relative}
.ob-drop-target{display:flex;align-items:center;gap:14px;min-height:88px;padding:14px;border:1.5px dashed var(--line-2);border-radius:var(--r-l);background:var(--paper);cursor:pointer;transition:border-color .15s,background .15s}
.ob-drop-target:hover,.ob-drop.is-drag .ob-drop-target{border-color:var(--violet);background:var(--violet-soft)}
.ob-drop input:focus-visible+.ob-drop-target{outline:3px solid rgba(109,74,255,.45);outline-offset:2px}
.ob-drop.has-image .ob-drop-target{border-style:solid}
.ob-drop-preview{width:58px;height:58px;flex:none;display:grid;place-items:center;border-radius:var(--r-m);background:#f3f1f9;color:var(--ink-3);overflow:hidden}
.ob-drop-preview img{width:100%;height:100%;object-fit:contain;background:#fff}
.ob-drop-copy{display:grid;gap:2px;min-width:0}
.ob-drop-copy b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-drop-copy small{color:var(--ink-3);font-size:13px}
.ob-drop-clear{position:absolute;top:8px;right:8px;width:32px;height:32px}
.ob-swatches{display:flex;flex-wrap:wrap;gap:10px}
.ob-swatch{position:relative;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);transition:transform .15s}
.ob-swatch:hover{transform:scale(1.08)}
.ob-swatch[aria-checked="true"],.ob-swatch-custom.is-custom{box-shadow:0 0 0 3px var(--base),0 0 0 5px var(--sw)}
.ob-swatch.from-logo::after{content:"";position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236d4aff'%3E%3Cpath d='M12 3l1.8 5.6L19.5 10l-5.7 1.5L12 17l-1.8-5.5L4.5 10l5.7-1.4z'/%3E%3C/svg%3E") center/9px no-repeat;box-shadow:0 0 0 1px var(--line)}
.ob-swatch-custom{display:grid;place-items:center;cursor:pointer;background:conic-gradient(from 90deg,#ff5a5a,#ffcf4a,#4ad97a,#4ab8ff,#8a5aff,#ff5ad0,#ff5a5a)}
.ob-swatch-custom.is-custom{background:var(--sw)}
.ob-swatch-custom svg{width:16px;height:16px;color:#fff;stroke-width:2.6;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.ob-swatch-custom input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}
.ob-swatch-custom:focus-within{outline:3px solid rgba(109,74,255,.45);outline-offset:3px}

/* disclosure */
.ob-more{margin-top:14px;border-top:1px solid var(--line)}
.ob-more>summary{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;padding:14px 0 4px;cursor:pointer;list-style:none;font-weight:700;font-size:15px;color:var(--violet-deep)}
.ob-more>summary::-webkit-details-marker{display:none}
.ob-more>summary::after{content:"";width:7px;height:7px;margin-left:2px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.ob-more[open]>summary::after{transform:rotate(-135deg) translateY(-1px)}
.ob-more>summary svg{width:18px;height:18px}
.ob-more>summary .ob-optional{margin-left:0;order:3;flex-basis:100%}
.ob-more[open]>summary{margin-bottom:12px}
.ob-map-wrap{border:1.5px solid var(--line-2);border-radius:var(--r-l);overflow:hidden;background:var(--paper)}
.ob-map{height:260px;background:#e4e1ec}
.ob-map-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 12px;font-size:13.5px;color:var(--ink-2)}
.ob-map-bar>span:last-child{display:inline-flex;gap:10px;align-items:center}
.brn-picker-marker .marker{width:32px;height:32px;display:grid;place-items:center;transform:rotate(-45deg);border:3px solid #fff;border-radius:50% 50% 50% 0;color:#fff;background:var(--violet);box-shadow:0 8px 18px rgba(39,25,83,.35)}
.brn-picker-marker .marker span{transform:rotate(45deg);font-weight:800}

/* chips + links */
.ob-chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1.5px solid var(--line-2);border-radius:999px;background:var(--paper);font-size:13.5px;font-weight:600;color:var(--ink)}
.ob-chip svg{width:16px;height:16px}
.ob-chip:hover{border-color:var(--violet)}
.ob-chip.is-on{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-deep)}
.ob-link{padding:0;border:0;background:none;color:var(--violet-deep);font-weight:700;font-size:inherit;text-decoration:underline;text-underline-offset:3px}
.ob-suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* ------------------------------------------------------------------ program */
.ob-models{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}
.ob-model{position:relative;display:flex;align-items:flex-start;gap:12px;padding:18px;border:1.5px solid var(--line-2);border-radius:var(--r-l);background:var(--paper);text-align:left;transition:border-color .15s,box-shadow .15s}
.ob-model>svg{width:28px;height:28px;color:var(--violet)}
.ob-model b{display:block;font:700 19px/1.2 var(--display);margin-bottom:4px}
.ob-model small{display:block;color:var(--ink-2);font-size:14px;line-height:1.4}
.ob-model:hover{border-color:var(--violet)}
.ob-model[aria-checked="true"]{border-color:var(--violet);box-shadow:0 0 0 3px rgba(109,74,255,.18);background:linear-gradient(180deg,#fff,var(--violet-soft))}
.ob-reco{position:absolute;top:-10px;right:14px;padding:2px 9px;border-radius:999px;background:var(--coral);color:#fff;font-style:normal;font-size:12px;font-weight:700}
.ob-model-panel{display:grid;gap:26px}
.ob-stamps{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.ob-seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:var(--r-m);background:rgba(25,20,45,.06)}
.ob-seg button{min-width:48px;height:40px;padding:0 14px;border:0;border-radius:10px;background:transparent;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums}
.ob-seg button:hover{color:var(--ink)}
.ob-seg button[aria-pressed="true"],.ob-seg button[aria-checked="true"]{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px rgba(25,20,45,.18)}
.ob-stepper{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1.5px solid var(--line-2);border-radius:var(--r-m);background:var(--paper)}
.ob-stepper input{width:52px;height:40px;border:0;background:transparent;text-align:center;font-weight:700;font-size:17px;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.ob-stepper input::-webkit-inner-spin-button,.ob-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.ob-stepper input:focus{outline:none}
.ob-stepper:focus-within{border-color:var(--violet)}
.ob-stepper.sm{padding:1px}
.ob-stepper.sm .ob-icon-btn{width:30px;height:30px}
.ob-stepper.sm b{min-width:22px;text-align:center}

.ob-rates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ob-rate{display:grid;gap:2px;padding:12px;border:1.5px solid var(--line-2);border-radius:var(--r-m);background:var(--paper);text-align:left}
.ob-rate b{font-size:15px}
.ob-rate small{color:var(--ink-3);font-size:13px}
.ob-rate:hover{border-color:var(--violet)}
.ob-rate[aria-checked="true"]{border-color:var(--violet);background:var(--violet-soft)}
.ob-rate[aria-checked="true"] small{color:var(--violet-deep)}
.ob-custom-rate{display:grid;gap:10px;margin-top:12px;padding:14px;border-radius:var(--r-m);background:rgba(25,20,45,.04)}
.ob-eq{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.ob-eq label{min-width:64px;font-weight:700;font-size:14px}
.ob-eq-sign{color:var(--ink-3);font-size:14px}
.ob-suffix{position:relative;display:inline-flex;align-items:center}
.ob-suffix input{width:120px;height:44px;padding:0 48px 0 12px;border:1.5px solid var(--line-2);border-radius:var(--r-s);background:var(--paper);font-variant-numeric:tabular-nums}
.ob-control.ob-suffix input{width:100%;height:50px;border-radius:var(--r-m)}
.ob-suffix input:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 4px rgba(109,74,255,.14)}
.ob-suffix b{position:absolute;right:12px;color:var(--ink-3);font-size:13px;font-weight:600;pointer-events:none}
.ob-example{margin:12px 0 0;color:var(--ink-2);font-size:14.5px}
.ob-example b{color:var(--ink)}
.ob-switch,.ob-field>label.ob-switch{position:relative;display:flex;align-items:flex-start;gap:12px;margin:0;cursor:pointer;font-weight:400}
.ob-switch input{position:absolute;opacity:0;width:1px;height:1px}
.ob-switch-ui{position:relative;width:42px;height:24px;flex:none;margin-top:1px;border-radius:999px;background:rgba(25,20,45,.2);transition:background .15s}
.ob-switch-ui::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s var(--ease)}
.ob-switch input:checked+.ob-switch-ui{background:var(--violet)}
.ob-switch input:checked+.ob-switch-ui::after{transform:translateX(18px)}
.ob-switch input:focus-visible+.ob-switch-ui{outline:3px solid rgba(109,74,255,.45);outline-offset:2px}
.ob-switch b{display:block;font-size:15px}
.ob-switch small{display:block;color:var(--ink-3);font-size:13px}
.ob-reward-fields{margin-top:14px}
.ob-names{padding-bottom:6px}

/* ------------------------------------------------------------------ plan */
.ob-durations{margin-bottom:18px}
.ob-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.ob-plan{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px;border:1.5px solid var(--line-2);border-radius:var(--r-l);background:var(--paper);text-align:left;transition:border-color .15s,box-shadow .15s}
.ob-plan:hover:not(:disabled){border-color:var(--violet)}
.ob-plan:disabled{opacity:.55}
.ob-plan[aria-checked="true"]{border-color:var(--violet);box-shadow:0 0 0 3px rgba(109,74,255,.18)}
.ob-plan-top{display:flex;align-items:center;gap:8px;padding-right:30px}
.ob-plan-top b{font:700 20px/1.2 var(--display)}
.ob-plan-top em{padding:2px 8px;border-radius:999px;background:var(--coral);color:#fff;font-style:normal;font-size:12px;font-weight:700}
.ob-plan-price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.ob-plan-price strong{font:700 24px/1.1 var(--display);font-variant-numeric:tabular-nums}
.ob-plan-price strong.muted{font:600 14px/1.3 var(--body);color:var(--ink-3)}
.ob-plan-price small{color:var(--ink-3);font-size:13.5px}
.ob-plan-desc{color:var(--ink-2);font-size:14px}
.ob-plan-specs{display:grid;gap:5px;margin:0;padding:10px 0 0;border-top:1px solid var(--line);list-style:none;font-size:14px;color:var(--ink-2)}
.ob-plan-specs li{position:relative;padding-left:20px}
.ob-plan-specs li::before{content:"";position:absolute;left:2px;top:.5em;width:9px;height:5px;border-left:2px solid var(--violet);border-bottom:2px solid var(--violet);transform:rotate(-45deg)}
.ob-plan-warn{color:var(--amber);font-size:13px;font-weight:700}
.ob-plan-radio{position:absolute;top:18px;right:18px;width:24px;height:24px;display:grid;place-items:center;border:1.5px solid var(--line-2);border-radius:50%;color:transparent}
.ob-plan-radio svg{width:15px;height:15px;stroke-width:3}
.ob-plan[aria-checked="true"] .ob-plan-radio{border-color:var(--violet);background:var(--violet);color:#fff}
.ob-note{margin:14px 0 0;padding:12px 14px;border-radius:var(--r-m);background:var(--amber-soft);color:var(--amber);font-size:14px;font-weight:600}
.ob-empty,.ob-muted{margin:0;padding:22px;border:1.5px dashed var(--line-2);border-radius:var(--r-l);color:var(--ink-2);text-align:center}
.ob-muted{padding:14px;border:0;text-align:left}
.ob-addons{display:grid;gap:8px}
.ob-addon{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:14px;border:1.5px solid var(--line);border-radius:var(--r-m);background:var(--paper)}
.ob-addon .ob-switch{flex:1 1 240px}
.ob-addon.is-on{border-color:var(--violet)}
.ob-addon.is-needed:not(.is-on){border-color:rgba(154,103,0,.45);background:var(--amber-soft)}
.ob-addon-price{display:grid;justify-items:end;font-weight:700;font-variant-numeric:tabular-nums}
.ob-addon-price small{color:var(--ink-3);font-weight:500;font-size:12.5px}

/* ------------------------------------------------------------------ launch */
.ob-review dl{margin:0;border:1.5px solid var(--line);border-radius:var(--r-l);background:var(--paper)}
.ob-review dl>div{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:14px 18px}
.ob-review dl>div+div{border-top:1px solid var(--line)}
.ob-review dt{color:var(--ink-3);font-size:14px}
.ob-review dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.ob-review .ob-link{font-size:14px}
.ob-total{display:grid;gap:8px;margin-top:16px;padding:16px 18px;border-radius:var(--r-l);background:rgba(25,20,45,.05)}
.ob-total>div{display:flex;justify-content:space-between;gap:12px;font-size:15px;font-variant-numeric:tabular-nums}
.ob-total>div span{color:var(--ink-2)}
.ob-total .ob-total-sum{margin-top:4px;padding-top:10px;border-top:1px solid var(--line-2);font-size:18px}
.ob-total .ob-total-sum span{color:var(--ink);font-weight:700}
.ob-total .ob-total-sum b{font:700 22px/1 var(--display)}
.ob-total .ob-note,.ob-total .ob-muted{margin:0;background:none;padding:0}
.ob-pay-note{display:flex;gap:10px;margin:18px 0;color:var(--ink-2);font-size:14px}
.ob-pay-note svg{width:18px;height:18px;margin-top:2px;color:var(--mint)}
.ob-check,.ob-field>label.ob-check{position:relative;display:flex;margin:0;align-items:flex-start;gap:12px;padding:14px 16px;border:1.5px solid var(--line-2);border-radius:var(--r-m);background:var(--paper);cursor:pointer;font-weight:600}
.ob-check input{position:absolute;opacity:0;width:1px;height:1px}
.ob-check-ui{width:22px;height:22px;flex:none;display:grid;place-items:center;border:1.5px solid var(--line-2);border-radius:6px;color:transparent;transition:background .15s,border-color .15s}
.ob-check-ui svg{width:15px;height:15px;stroke-width:3}
.ob-check input:checked+.ob-check-ui{background:var(--violet);border-color:var(--violet);color:#fff}
.ob-check input:focus-visible+.ob-check-ui{outline:3px solid rgba(109,74,255,.45);outline-offset:2px}
.ob-field.is-invalid .ob-check{border-color:var(--danger)}

/* ------------------------------------------------------------------ actions */
.ob-actions{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:12px;margin-top:auto;padding:18px 0 22px;background:linear-gradient(180deg,rgba(238,235,245,0),var(--base) 32%)}
.ob-step{padding-bottom:28px}
.ob-draft{flex:1;color:var(--ink-3);font-size:13px;text-align:center}
.ob-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 22px;border:0;border-radius:var(--r-m);font-weight:700;font-size:16px;text-decoration:none;transition:background .15s,transform .1s,box-shadow .15s}
.ob-btn:active:not(:disabled){transform:translateY(1px)}
.ob-btn.primary{margin-left:auto;background:var(--violet);color:#fff;box-shadow:0 10px 24px rgba(109,74,255,.28)}
.ob-btn.primary:hover:not(:disabled){background:var(--violet-deep)}
.ob-btn.ghost{background:transparent;color:var(--ink-2);padding:0 14px}
.ob-btn.ghost:hover{background:rgba(25,20,45,.06);color:var(--ink)}
.ob-btn.wide{width:100%}
.ob-btn.is-loading{color:transparent!important;pointer-events:none}
.ob-btn.is-loading::after{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:obSpin .8s linear infinite}
.ob-btn:disabled:not(.is-loading){opacity:.6}

/* ------------------------------------------------------------------ stage (preview) */
.ob-stage{position:sticky;top:var(--top);height:calc(100vh - var(--top));background:var(--night);color:#fff;overflow:auto;overscroll-behavior:contain}
.ob-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(420px 320px at 70% 8%,rgba(109,74,255,.45),transparent 70%),radial-gradient(360px 280px at 10% 90%,rgba(255,120,90,.18),transparent 70%);pointer-events:none}
.ob-stage-inner{position:relative;display:flex;flex-direction:column;gap:26px;min-height:100%;padding:40px 36px}
.ob-stage-close{display:none;position:absolute;top:14px;right:14px;color:#fff}
.ob-stage-close:hover{background:rgba(255,255,255,.1);color:#fff}
.ob-card-frame{width:100%;max-width:380px;margin:0 auto;filter:drop-shadow(0 28px 50px rgba(0,0,0,.45))}
.ob-card-frame>*{margin:0!important}
.ob-card-fallback{display:grid;align-content:space-between;aspect-ratio:1.6;padding:22px;border-radius:22px;background:linear-gradient(145deg,var(--c),#19142d)}
.ob-card-fallback b{font:700 22px/1.2 var(--display)}

.ob-receipt{position:relative;width:100%;max-width:380px;margin:0 auto;padding:20px 20px 26px;background:#fff;color:var(--ink);border-radius:14px 14px 0 0;
  -webkit-mask:linear-gradient(#000,#000) top/100% calc(100% - 10px) no-repeat,radial-gradient(circle 7px at 50% 100%,transparent 6.5px,#000 7px) bottom/16px 10px repeat-x;
  mask:linear-gradient(#000,#000) top/100% calc(100% - 10px) no-repeat,radial-gradient(circle 7px at 50% 100%,transparent 6.5px,#000 7px) bottom/16px 10px repeat-x}
.ob-receipt-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1.5px dashed var(--line-2)}
.ob-receipt-logo{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:12px;color:#fff;font:800 18px/1 var(--display);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.ob-receipt-logo img{width:100%;height:100%;object-fit:contain}
.ob-receipt-head b{display:block;font:700 17px/1.2 var(--display);overflow-wrap:anywhere}
.ob-receipt-head small{color:var(--ink-3);font-size:13px}
.ob-receipt-lines{list-style:none;margin:0;padding:10px 0 0}
.ob-receipt-lines li{display:grid;grid-template-columns:20px auto minmax(0,1fr);gap:10px;align-items:baseline;padding:8px 0;font-size:14px}
.ob-receipt-lines li>span:nth-child(2){color:var(--ink-3);white-space:nowrap}
.ob-receipt-lines b{text-align:right;font-weight:600;overflow-wrap:anywhere;color:var(--ink-3)}
.ob-receipt-lines .is-set b{color:var(--ink)}
.ob-tick{width:18px;height:18px;display:grid;place-items:center;align-self:center;border-radius:50%;border:1.5px solid var(--line-2);color:transparent;transition:background .25s var(--ease),border-color .25s}
.ob-tick svg{width:12px;height:12px;stroke-width:3.2}
.ob-receipt-lines .is-set .ob-tick{background:var(--mint);border-color:var(--mint);color:#fff}
.ob-receipt-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;padding-top:12px;border-top:1.5px dashed var(--line-2)}
.ob-receipt-total span{font-weight:700}
.ob-receipt-total b{font:700 20px/1 var(--display);font-variant-numeric:tabular-nums}

/* ------------------------------------------------------------------ dialog */
.ob-dialog{width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:32px;border:0;border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 40px 100px rgba(25,20,45,.35);text-align:center}
.ob-dialog::backdrop{background:rgba(25,20,45,.55);backdrop-filter:blur(4px)}
.ob-dialog h2{margin:18px 0 6px;font:700 26px/1.15 var(--display);letter-spacing:-.02em;outline:none}
.ob-dialog p{margin:0;color:var(--ink-2)}
.ob-stages{list-style:none;display:grid;gap:4px;margin:22px 0 0;padding:0;text-align:left}
.ob-stages li{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;color:var(--ink-3);font-size:14.5px}
.ob-stages li>span:first-child{width:20px;height:20px;flex:none;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--line-2)}
.ob-stages li>span:first-child svg{width:12px;height:12px;stroke-width:3.2}
.ob-stages .is-active{color:var(--ink);font-weight:600;background:var(--violet-soft)}
.ob-stages .is-active>span:first-child{border-color:var(--violet);border-top-color:transparent;animation:obSpin .8s linear infinite}
.ob-stages .is-complete{color:var(--ink)}
.ob-stages .is-complete>span:first-child{background:var(--mint);border-color:var(--mint);color:#fff}
.ob-stages .is-failed{color:var(--danger)}
.ob-pv-error{margin-top:20px;padding:16px;border-radius:var(--r-m);background:var(--danger-soft);text-align:left}
.ob-pv-error p{color:var(--danger);font-weight:600}
.ob-pv-actions{display:flex;justify-content:flex-end;gap:8px;margin:14px 0 8px}
.ob-pv-actions .ob-btn{height:44px;margin:0}
.ob-pv-error small{color:var(--ink-2)}
.ob-done-mark{width:68px;height:68px;margin:0 auto;display:grid;place-items:center;border-radius:50%;background:var(--mint);color:#fff;animation:obPop .5s var(--ease) both}
.ob-done-mark svg{width:34px;height:34px;stroke-width:2.8}
@keyframes obPop{from{transform:scale(.4);opacity:0}}
.ob-done-list{list-style:none;display:grid;gap:8px;margin:20px 0 0;padding:0;text-align:left}
.ob-done-list li{display:flex;gap:10px;font-size:14.5px}
.ob-done-list svg{width:18px;height:18px;margin-top:2px;color:var(--mint);stroke-width:2.6}
.ob-warn{margin-top:14px!important;padding:10px 12px;border-radius:var(--r-s);background:var(--amber-soft);color:var(--amber)!important;font-size:14px;text-align:left}
.ob-login-box{display:grid;gap:2px;margin:20px 0;padding:12px;border-radius:var(--r-m);background:rgba(25,20,45,.05)}
.ob-login-box small{color:var(--ink-3)}
.ob-login-box b{overflow-wrap:anywhere}

/* ------------------------------------------------------------------ responsive */
@media (max-width:1080px){
  .ob-shell{grid-template-columns:1fr}
  .ob-peek{display:inline-flex}
  .ob-top-signin{margin-left:0}
  .ob-stage{position:fixed;inset:0;z-index:120;height:auto;transform:translateY(100%);visibility:hidden;transition:transform .35s var(--ease),visibility 0s .35s}
  .show-stage .ob-stage{transform:none;visibility:visible;transition:transform .35s var(--ease)}
  .show-stage{overflow:hidden}
  .ob-stage-close{display:inline-grid}
  .ob-stage-inner{justify-content:center;padding:56px 20px 32px}
}
@media (max-width:640px){
  .ob-top{padding:0 16px;gap:10px}
  .ob-top-signin{display:none}
  .ob-main{padding:22px 16px 0}
  .ob-grid,.ob-brand-row,.ob-models{grid-template-columns:1fr}
  .ob-rates{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ob-step-name{font-size:12px}
  .ob-head{margin-bottom:22px}
  .ob-head p{font-size:16px}
  .ob-review dl>div{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}
  .ob-review dt{grid-column:1}
  .ob-review dd{grid-column:1}
  .ob-review .ob-link{grid-row:1/span 2;grid-column:2;align-self:center}
  .ob-draft{display:none}
  .ob-btn.primary{flex:1}
  .ob-actions{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .ob-dialog{padding:26px 20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
