/* Register page. Shared input and motion styles are inlined here so the page has no dependency on login.css. */
.lg{--ease:cubic-bezier(.2,.7,.2,1);background:radial-gradient(60% 45% at 15% 0%,color-mix(in srgb,var(--primary) 14%,transparent),transparent 70%),radial-gradient(50% 40% at 90% 8%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 70%),linear-gradient(180deg,var(--tint-soft),transparent 55%)}
.lg-grid{display:grid;gap:18px;width:100%;max-width:520px;margin-inline:auto;align-items:start;animation:lgIn .65s var(--ease) backwards}
.lg-card{order:1;gap:14px;grid-template-columns:minmax(0,1fr);transition:background-color .35s,border-color .35s,box-shadow .35s}
.lg-card>*{animation:lgUp .55s var(--ease) backwards}
.lg-card>:nth-child(2){animation-delay:.08s}.lg-card>:nth-child(3){animation-delay:.14s}.lg-card>:nth-child(4){animation-delay:.2s}.lg-card>:nth-child(5){animation-delay:.26s}.lg-card>:nth-child(6){animation-delay:.32s}
.lg-form>*{animation:lgUp .5s var(--ease) backwards}
.lg-form>:nth-child(1){animation-delay:.2s}.lg-form>:nth-child(2){animation-delay:.28s}.lg-form>:nth-child(3){animation-delay:.34s}.lg-form>:nth-child(4){animation-delay:.4s}
@keyframes lgIn{from{opacity:0;transform:translateY(18px) scale(.985)}}
@keyframes lgUp{from{opacity:0;transform:translateY(12px)}}
.lg-head{display:grid;gap:8px}
.lg-head h1{margin:0}
.lg-head .auth-sub{margin:0}

/* Form */
.lg-form{gap:6px}
.lg .fld{gap:7px}
.lg .fld>label{transition:color .2s}
.lg .fld:focus-within>label{color:var(--primary)}
.ico{position:relative;display:grid}
.ico>svg:first-child{position:absolute;left:15px;top:50%;width:20px;height:20px;margin-top:-10px;color:var(--muted);pointer-events:none;transition:color .25s,transform .25s var(--ease)}
.fld:focus-within .ico>svg:first-child{color:var(--primary);transform:scale(1.08)}
.lg .fld .ico input{padding-left:46px;transition:border-color .25s,box-shadow .3s,background-color .3s}
.lg .fld .ico input::placeholder{transition:opacity .25s,transform .25s}
.lg .fld .ico input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 20%,transparent),0 8px 22px -12px color-mix(in srgb,var(--primary) 60%,transparent)}
.lg .fld .ico input:focus::placeholder{opacity:.45;transform:translateX(4px)}
.lg .fld.bad .ico input{border-color:var(--coral);box-shadow:0 0 0 4px color-mix(in srgb,var(--coral) 16%,transparent)}
.lg .fld.bad .ico>svg:first-child{color:var(--coral)}
.lg .pw input{padding-right:58px!important}
.lg .pw-t{top:4px;bottom:4px;right:4px;min-width:46px;width:46px;padding:0;display:grid;place-items:center;background:transparent;color:var(--muted);transition:background-color .2s,color .2s}
.lg .pw-t:hover{background:var(--tint);color:var(--primary)}
.lg .pw-t:focus-visible{outline:3px solid var(--primary);outline-offset:-2px}
.lg .pw-t svg{width:22px;height:22px}
.lg .pw-t .slash{stroke-dasharray:23;stroke-dashoffset:23;transition:stroke-dashoffset .3s var(--ease)}
.lg .pw-t[aria-pressed=true]{color:var(--primary)}
.lg .pw-t[aria-pressed=true] .slash{stroke-dashoffset:0}
/* reserve room for the error line so nothing jumps */
.lg .err{min-height:1.5em;margin-top:-1px}
.lg .err[hidden]{display:block;visibility:hidden}
.lg .err:not([hidden]){animation:lgErr .32s var(--ease)}
@keyframes lgErr{from{opacity:0;transform:translateY(-6px)}}
.lg-form.shake .fld.bad{animation:lgShake .42s cubic-bezier(.36,.07,.19,.97)}
@keyframes lgShake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.lg .chk{margin-top:-2px}

/* Primary button */
.lg-go{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0;transition:transform .15s var(--ease),box-shadow .25s,background-color .25s,opacity .2s}
.lg-go:hover{transform:translateY(-1px)}
.lg-go:active{transform:translateY(1px) scale(.99)}
.lg-spin{width:0;height:20px;opacity:0;border-radius:50%;border:0 solid rgba(255,255,255,.4);border-top-color:#fff;transition:width .25s,opacity .2s,margin .25s,border-width .25s}
.lg-go.loading{pointer-events:none;opacity:.92}
.lg-go.loading .lg-spin{width:20px;opacity:1;margin-right:10px;border-width:3px;animation:lgSpin .7s linear infinite}
@keyframes lgSpin{to{transform:rotate(360deg)}}
.lg .notice{animation:lgUp .4s var(--ease)}
.lg .notice[hidden]{display:none}
@media(prefers-reduced-motion:reduce){
  .lg *,.lg *::before,.lg *::after{animation:none!important;transition:none!important}
}

/* Register wizard. Builds on styles.css tokens, auth.css and ui.css. */
.rg-card{scroll-margin-top:68px;--rg:var(--primary);--rg-bg:var(--tint-soft)}
.rg-card.rg-t{--rg:var(--accent);--rg-bg:var(--tint-warm)}
.rg-card[data-step=done] h1,.rg-card[data-step=done] .auth-sub{display:none}
.rg [hidden]:not(.err){display:none!important}
.rg .err[hidden]{display:block;visibility:hidden}
.rg .fld[hidden]{display:none!important}
.rg .chipset .chip[hidden]{display:none!important}
.rg-card{overflow-x:clip}
.rg-step{display:grid;gap:16px;min-width:0;animation:rgF .38s var(--ease) both}
.rg-card[data-dir=b] .rg-step{animation-name:rgB}
@keyframes rgF{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
@keyframes rgB{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}
@media(min-width:960px){.rg-card{min-width:0}}
.rg-h{font-size:clamp(1.25rem,1.05rem + 1vw,1.55rem);line-height:1.25;outline:0}
.rg-h:focus-visible{outline:3px solid var(--primary);outline-offset:4px;border-radius:8px}
.rg-lead{color:var(--text-soft2);line-height:1.6;margin-top:-8px}
.rg-center{justify-items:center;text-align:center}
.rg-center img{width:min(140px,40vw);height:auto}

/* progress */
.rg-prog{display:grid;gap:8px}
.rg-prog-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:.92rem}
.rg-prog-top b{color:var(--rg);font-family:var(--font-head);font-size:1rem}
.rg-prog-top span{color:var(--muted);font-weight:600}
.rg-bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.rg-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--teal-light));transition:width .55s var(--ease)}
.rg-t .rg-prog .rg-bar i{background:linear-gradient(90deg,#F59E0B,#FBBF24)}
.rg-bar-t i{background:linear-gradient(90deg,#F59E0B,#14B8A6)!important}
.rg-dots{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;gap:4px}
.rg-dots li{flex:1;display:grid;justify-items:center;gap:3px;min-width:0;color:var(--muted);font-size:.78rem;font-weight:600}
.rg-dots .n{transition:background-color .35s,border-color .35s,color .3s,transform .35s cubic-bezier(.3,1.5,.5,1),box-shadow .3s;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--line-field);background:var(--card);font-size:.8rem;color:var(--muted)}
.rg-dots .l{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rg-dots li:nth-child(2) .n{transition-delay:.06s}.rg-dots li:nth-child(3) .n{transition-delay:.12s}.rg-dots li:nth-child(4) .n{transition-delay:.18s}.rg-dots li:nth-child(5) .n{transition-delay:.24s}
.rg-dots .done .n{background:var(--rg);border-color:var(--rg);color:#fff}
.rg-t .rg-dots .done .n{color:#2A1700}
.rg-dots .cur .n{transform:scale(1.12);border-color:var(--rg);color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--rg) 25%,transparent)}
.rg-dots .cur,.rg-dots .done{color:var(--ink)}
@media(max-width:479px){.rg-dots .l{display:none}}

/* strength meter */
.rg-meter{display:grid;gap:6px;padding:12px 14px;border-radius:16px;background:var(--tint-warm);border:1px solid var(--line-card);animation:lgUp .4s var(--ease) both}
.rg-meter-top{display:flex;justify-content:space-between;align-items:baseline;font-size:.92rem}
.rg-meter-top span{font-family:var(--font-head);font-weight:700;color:var(--ink)}
.rg-meter .hint{color:var(--text-soft2)}
.rg-draft{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--tint);font-size:.9rem;line-height:1.5}
.rg-link{border:0;background:none;color:var(--primary);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px;padding:0 4px;font-size:.92rem}
.rg-more{justify-self:start;min-height:40px}

/* role cards */
.rg .roles{grid-template-columns:1fr;gap:12px}
.rg .role-in{grid-template-columns:auto 1fr;justify-items:stretch;align-content:center;height:auto;gap:2px 14px;padding:14px 16px;position:relative}
.rg .role-ic{grid-row:span 3;margin:0;width:48px;height:48px}
.rg .role-in .rg-pill{grid-column:2;justify-self:start;margin-top:6px}
.rg-pill{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.78rem;font-weight:700;background:var(--tint);color:var(--primary);border:1px solid var(--btn-line)}
.rg-pill-t{background:var(--tag-bg);color:var(--tag-fg);border-color:transparent}
.rg .role-in{transition:transform .3s cubic-bezier(.3,1.4,.5,1),border-color .25s,box-shadow .3s,background-color .3s}
.rg .role:hover .role-in{transform:translateY(-2px)}
.rg .role input:checked+.role-in{transform:scale(1.015)}
.rg .role-ic{transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.rg .role input:checked+.role-in .role-ic{transform:rotate(-8deg) scale(1.1)}
.rg .role input:checked+.role-in::after{animation:rgPop .4s cubic-bezier(.3,1.6,.5,1)}
@keyframes rgPop{from{transform:scale(0)}}
.rg .role input:focus-visible+.role-in{outline:3px solid var(--primary);outline-offset:3px}
.rg .role input:checked+.role-in::after{content:"";position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:50%;background:var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 12.500 4 4L18 8' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.rg .role-t input:checked+.role-in::after{background-color:var(--accent)}

/* fields */
.rg .fld input[type=number],.rg .fld textarea{width:100%;min-height:52px;padding:0 14px 0 46px;border-radius:14px;border:1.5px solid var(--line-field);background:var(--field-bg);color:var(--ink);font-size:1rem;min-width:0;font-family:inherit}
.rg .fld textarea{padding:12px 14px!important;line-height:1.6;resize:vertical;min-height:120px}
.rg .fld input[type=number]:focus,.rg .fld textarea:focus{outline:3px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:0;border-color:var(--primary)}
.rg .fld.bad input,.rg .fld.bad textarea,.rg .fld.bad select{border-color:var(--coral)}
.rg .fld.bad .tbs{border-color:var(--coral);box-shadow:0 0 0 4px color-mix(in srgb,var(--coral) 16%,transparent)}
.rg .fld.bad .chip span{border-color:var(--coral)}
.rg .fld[hidden]{display:none}
.rg .fld>.lbl{display:block}
.rg-chips{min-width:0}
.rg .fld>.err{margin-top:2px}
.rg-count{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}
.rg-str{display:flex;gap:4px;align-items:center}
.rg-str[hidden]{display:none}
.rg-str i{flex:0 0 36px;height:5px;border-radius:9px;background:var(--line-field)}
.rg-str[data-s="0"] i:nth-child(1){background:var(--coral)}
.rg-str[data-s="1"] i:nth-child(-n+1){background:var(--accent)}
.rg-str[data-s="2"] i:nth-child(-n+2),.rg-str[data-s="3"] i{background:var(--primary)}
.rg-str span{margin-left:6px;font-size:.82rem;font-weight:700;color:var(--text-soft2)}
.rg-pre{display:flex;flex-wrap:wrap;gap:8px}
.rg-presb{min-height:40px;padding:0 14px;border-radius:99px;border:1.5px dashed var(--line-field);background:transparent;color:var(--primary);font-weight:700;cursor:pointer;font-size:.9rem}
.rg-presb:hover{border-color:var(--primary);background:var(--tint-soft)}
.rg-two{display:grid;gap:14px}
@media(min-width:480px){.rg-two{grid-template-columns:1fr 1fr}}

/* education rows */
.edu-row{display:grid;gap:12px;padding:14px;border-radius:18px;border:1.5px solid var(--line-card);background:var(--tint-soft);margin-bottom:12px}
.edu-hd{display:flex;justify-content:space-between;align-items:center;gap:8px}
.edu-hd b{font-family:var(--font-head);font-size:1.02rem}
.rg-add{background:var(--card);border:1.5px dashed var(--btn-line);color:var(--primary);gap:8px;width:100%;margin-bottom:4px}
.rg-add:hover{border-color:var(--primary)}
.rg-add[hidden]{display:none}

/* avatars and uploads */
.rg-avs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:360px}
@media(min-width:480px){.rg-avs{grid-template-columns:repeat(6,1fr);max-width:none}}
.rg-av{position:relative;display:block;cursor:pointer;border-radius:50%;aspect-ratio:1}
.rg-av input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.rg-av img{display:block;width:100%;height:100%;border-radius:50%;border:3px solid transparent;transition:transform .15s,border-color .15s;background:var(--tint)}
.rg-av:hover img{transform:scale(1.05)}
.rg-av input:checked+img{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}
.rg-av input:focus-visible+img{outline:3px solid var(--primary);outline-offset:2px}
.rg-docs{display:grid;gap:10px}
.rg-up{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px dashed var(--line-field);border-radius:16px;background:var(--card);cursor:pointer;min-height:64px;transition:border-color .2s,background .2s}
.rg-up:hover,.rg-up:focus-within{border-color:var(--primary);background:var(--tint-soft)}
.rg-up input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}
.rg-up:focus-within{outline:3px solid var(--primary);outline-offset:2px}
.rg-up img{flex:none;width:44px;height:44px;border-radius:12px;object-fit:cover}
.rg-up img[hidden]{display:none}
.rg-upt{display:grid;gap:2px;min-width:0}
.rg-upt b{font-size:.95rem;line-height:1.35}
.rg-upt small{color:var(--text-soft2);font-size:.85rem;line-height:1.4;overflow-wrap:anywhere}
.rg-up-photo{margin-top:6px}
.rg-fee{display:flex;gap:14px;align-items:center;padding:14px;border-radius:18px;background:var(--tint-warm);border:1.5px solid color-mix(in srgb,var(--accent) 45%,transparent)}
.rg-fee[hidden]{display:none} /* "Going live" stays hidden on sign-up until the payment step is built */
.rg-fee img{flex:none;width:88px;height:66px}
.rg-fee b:first-child{font-family:var(--font-head);font-size:1.05rem}
.rg-fee p{font-size:.92rem;line-height:1.55;color:var(--text-soft);margin-top:2px}

/* otp and done */
.rg-otp{display:grid;justify-items:center;gap:8px;width:100%}
.rg-demo{text-align:center;font-size:.9rem}
.rg-center .err{text-align:center}
.rg-cta{display:grid;gap:10px;width:100%;margin-top:6px}
@media(min-width:480px){.rg-cta{grid-template-columns:1fr 1fr}}
.rg-ghost,.rg-back{background:var(--card);color:var(--primary);border:1.5px solid var(--btn-line)}
.rg-ghost:hover,.rg-back:hover{border-color:var(--primary);background:var(--tint-soft)}
.rg-done{display:grid;gap:14px;justify-items:center;width:100%}
.rg-next{list-style:none;margin:0;padding:0;display:grid;gap:10px;width:100%;text-align:left}
.rg-next li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:var(--tint-soft);border:1px solid var(--line-card)}
.rg-next i{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--card);border:2px solid var(--line-field);font-style:normal;font-weight:700;font-size:.9rem;color:var(--muted)}
.rg-next .ok i{background:var(--primary);border-color:var(--primary);color:#fff}
.rg-next i svg{width:16px;height:16px}
.rg-next li>span{display:grid;gap:2px;min-width:0}
.rg-next b{line-height:1.35}
.rg-next small{color:var(--text-soft2);font-size:.88rem;line-height:1.45}

/* nav */
.rg-nav{display:flex;gap:10px;align-items:stretch;margin-top:4px}
.rg-nav .btn{flex:1;width:auto;gap:8px}
.rg-nav .rg-back{flex:0 0 auto;min-width:104px}
.rg-nav[hidden]{display:none}
.rg-t .rg-nav .btn-primary{background:linear-gradient(135deg,#FBBF24,#F59E0B);color:#2A1700;border-color:transparent}
@media(max-width:350px){.rg-nav .rg-back{min-width:0;padding-inline:14px}.rg-avs{gap:6px}}
@media(prefers-reduced-motion:reduce){.rg-step{animation:none}.rg-bar i,.rg-av img,.rg .role-in,.rg-up{transition:none}.rg .role:hover .role-in,.rg-av:hover img{transform:none}}
@media(max-width:479px){.rg-card h1{margin-top:0}}

/* single centred card */
.rg .lg-grid{max-width:600px}
.rg .lg-form{gap:14px}
.rg-win{position:relative;width:96px;height:96px;margin:4px auto 0}
.rg-win svg{width:96px;height:96px;overflow:visible}
.rg-ring{fill:none;stroke:var(--primary);stroke-width:2;opacity:0;transform-origin:48px 48px;animation:rgRing 1.2s .1s ease-out both}
.rg-disc{fill:var(--primary);transform-origin:48px 48px;animation:rgPopD .55s cubic-bezier(.3,1.5,.5,1) both}
.rg-t .rg-disc{fill:var(--accent)}
.rg-tick{fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:50;stroke-dashoffset:50;animation:rgDraw .45s .35s ease-out forwards}
.rg-t .rg-tick{stroke:#2A1700}
.rg-win i{position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4px;border-radius:2px;background:var(--c);opacity:0;animation:rgConf 1.1s var(--d) ease-out both}
.rg-win i:nth-of-type(even){border-radius:50%;width:7px;height:7px}
@keyframes rgPopD{from{transform:scale(0)}}
@keyframes rgDraw{to{stroke-dashoffset:0}}
@keyframes rgRing{0%{opacity:.7;transform:scale(.7)}100%{opacity:0;transform:scale(1.5)}}
@keyframes rgConf{0%{opacity:0;transform:translate(0,0) scale(.3)}25%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(200deg) scale(1)}}
.rg-next li{animation:lgUp .5s var(--ease) both}
.rg-next li:nth-child(1){animation-delay:.5s}.rg-next li:nth-child(2){animation-delay:.62s}.rg-next li:nth-child(3){animation-delay:.74s}.rg-next li:nth-child(4){animation-delay:.86s}
.rg-cta{animation:lgUp .5s .95s var(--ease) both}
.rg .lg-go{min-height:52px}
.rg-back{transition:transform .15s var(--ease),border-color .2s,background-color .2s}
.rg-back:hover{transform:translateX(-2px)}
.rg-back:active{transform:scale(.97)}
.rg-more,.rg-link{min-height:44px}
.rg-presb,.rg-del{min-height:44px}
.rg .chk input{accent-color:var(--primary)}
@media(prefers-reduced-motion:reduce){.rg-tick{stroke-dashoffset:0}}
.rg{padding-block:clamp(20px,5vw,56px) clamp(32px,6vw,72px)}
.rg .lg-card{border-radius:28px;padding:clamp(18px,5vw,36px);box-shadow:0 1px 2px rgba(11,19,36,.04),0 22px 50px -28px rgba(15,118,110,.38);border:1px solid var(--line-card)}
.rg-brand{display:flex;align-items:center;gap:10px;justify-self:center;min-height:44px;font-family:var(--font-head);font-weight:800;font-size:1.2rem;color:var(--ink);text-decoration:none}
.rg-brand i{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#0F766E,#14B8A6);color:#fff;box-shadow:0 8px 18px -8px rgba(15,118,110,.7)}
.rg-brand svg{width:22px;height:22px}
.rg-brand b{color:var(--accent)}
.rg .lg-head{justify-items:center;text-align:center;gap:6px}

/* location step: popular chips, map button, chosen areas */
.rg-pop{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.rg-pop .hint{flex:1 1 100%}
.rg-pc{display:inline-flex;align-items:center;gap:6px;min-height:44px;max-width:100%;padding:0 16px;border-radius:99px;border:1.5px solid var(--line-field);background:var(--card);color:var(--ink);font:inherit;font-weight:500;font-size:.95rem;line-height:1.3;cursor:pointer;overflow-wrap:anywhere;text-align:left;transition:background-color .15s,border-color .15s,color .15s,transform .15s var(--ease)}
.rg-pc:hover{border-color:var(--primary)}
.rg-pc:active{transform:scale(.97)}
.rg-pc[aria-pressed=true]{background:var(--tint-soft);border-color:var(--primary);color:var(--primary);font-weight:600;box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent)}
.rg-pc[aria-pressed=true]::before{content:"";flex:none;width:.5em;height:.9em;border:solid currentColor;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px);margin-right:2px}
.rg-pc:focus-visible,.rg-x:focus-visible,.rg-mapb:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.rg-pc:disabled{opacity:.45;cursor:not-allowed}
.rg-pc[hidden]{display:none}
.rg-addrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;margin-top:4px}
.rg-addrow .btn{width:auto;min-width:88px}
.rg-addrow[hidden]{display:none}
.rg-skel{height:52px;border-radius:14px;border:1.5px solid var(--line-field);background:linear-gradient(100deg,var(--tint-soft) 30%,var(--tint) 50%,var(--tint-soft) 70%) 0 0/220% 100%;animation:rgSk 1.3s linear infinite}
.rg-skel[hidden]{display:none}
@keyframes rgSk{to{background-position:-220% 0}}
.rg-retry{justify-self:start}
.rg-map{display:grid;gap:8px;padding:12px;border-radius:18px;background:var(--tint-soft);border:1.5px dashed var(--btn-line)}
.rg .rg-mapb{gap:10px;width:100%;font-weight:700}
.rg-mapb svg{flex:none;color:var(--primary)}
.rg-mapnote{color:var(--text-soft2);font-weight:600}
.rg-mapnote[hidden]{display:none}
.rg-sel{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:52px;padding:8px;border-radius:14px;border:1.5px solid var(--line-field);background:var(--field-bg);min-width:0;outline:0}
.rg-sel:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.fld.bad .rg-sel{border-color:var(--coral);box-shadow:0 0 0 4px color-mix(in srgb,var(--coral) 16%,transparent)}
.rg-none{color:var(--muted);font-size:.92rem;padding:0 6px}
.rg-tag{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:38px;padding:0 4px 0 12px;border-radius:99px;background:var(--tint-soft);border:1.5px solid var(--primary);color:var(--primary);font-weight:600;font-size:.92rem;animation:rgTag .3s cubic-bezier(.3,1.5,.5,1) both}
.rg-tag svg{flex:none;width:15px;height:15px;margin-left:-2px}
.rg-tag-m{background:var(--tint-warm);border-color:var(--accent);color:var(--tag-fg)}
.rg-tag-t{min-width:0;overflow-wrap:anywhere;line-height:1.25;padding-block:4px}
.rg-x{flex:none;display:grid;place-items:center;width:32px;height:32px;margin:3px 0;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer;transition:background-color .15s}
.rg-x:hover{background:color-mix(in srgb,currentColor 15%,transparent)}
@keyframes rgTag{from{opacity:0;transform:scale(.7)}}
@media(prefers-reduced-motion:reduce){.rg-skel,.rg-tag{animation:none}.rg-pc{transition:none}}
.rg .rg-mapb:disabled{opacity:.55;cursor:not-allowed}
.rg-need{color:var(--muted)}

/* Input limits notice and counters */
.rg-lim{margin:0 0 16px;padding:12px 14px;border-radius:16px;border:1.5px solid color-mix(in srgb,var(--rg) 35%,transparent);background:var(--rg-bg);animation:rgLim .3s var(--ease) both}
.rg-lim-h{display:flex;align-items:center;gap:8px;color:var(--rg);font-size:.92rem}
.rg-lim-h svg{flex:none;width:18px;height:18px;fill:currentColor}
.rg-lim-h b{flex:1}
.rg-lim-x{flex:none;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--rg);font-size:1.3rem;line-height:1;cursor:pointer}
.rg-lim-x:hover{background:var(--card)}
.rg-lim ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.rg-lim li{display:flex;justify-content:space-between;gap:12px;font-size:.86rem;color:var(--text-soft2);line-height:1.4}
.rg-lim li b{font-weight:600;color:var(--ink)}
.rg-lim li span{text-align:right}
@keyframes rgLim{from{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}
.rg-cc{display:block;text-align:right;margin-top:4px;font-size:.78rem;color:var(--muted)}
.rg-cc.near{color:var(--coral);font-weight:600}
@media(prefers-reduced-motion:reduce){.rg-lim{animation:none}}

/* Search box above long choice lists */
.rg-find{position:relative;display:flex;align-items:center;margin:2px 0 8px}
.rg-find>svg{position:absolute;left:14px;width:18px;height:18px;color:var(--muted);fill:none;stroke:currentColor;stroke-width:2;pointer-events:none}
.rg-find input{width:100%;min-height:46px;padding:0 44px 0 42px;border-radius:14px;border:1.5px solid var(--line-field);background:var(--field-bg);color:var(--ink);font:inherit;font-size:.96rem;-webkit-appearance:none;appearance:none}
.rg-find input::-webkit-search-cancel-button{display:none}
.rg-find input:focus{outline:3px solid color-mix(in srgb,var(--rg) 30%,transparent);outline-offset:0;border-color:var(--rg)}
.rg-find-x{position:absolute;right:6px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:10px;background:var(--tint);color:var(--ink);font-size:1.2rem;line-height:1;cursor:pointer}
.rg-find-x:hover{background:var(--rg-bg)}
.rg-find-st{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 2px 8px;font-size:.84rem;color:var(--muted)}
.rg-find-m.none{color:var(--coral)}
.rg-find-s{margin-left:auto;padding:2px 10px;border-radius:99px;background:var(--rg-bg);color:var(--rg);font-weight:700}
.rg .rg-find input[type=search]{padding:0 44px 0 44px;box-sizing:border-box}
.rg .rg-find>svg{left:15px;top:50%;transform:translateY(-50%);width:18px;height:18px}
.rg .fld>.rg-find-st{margin-top:-4px}

.rg-lim-l{justify-content:space-between;align-items:baseline;flex-wrap:nowrap;margin:2px 2px 0}
.rg-lim-l .hint{margin:0}
.rg-lim-l .rg-cc{flex:none;margin:0;font-variant-numeric:tabular-nums}

/* two location buttons, travel distance chips, View all dialog */
.rg-map .rg-mapb[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.rg .rg-mapb.busy svg{animation:rgSpin 1.1s linear infinite}
@keyframes rgSpin{to{transform:rotate(360deg)}}
.rg-lfmore{min-height:38px;padding:0 14px;border-radius:999px;border:1.5px dashed var(--primary);background:transparent;color:var(--primary);font:inherit;font-size:.9rem;font-weight:700;cursor:pointer}
.rg-lfmore:hover{background:var(--tint)}
.rg-lfmore:focus-visible,.rg-mx:focus-visible,.rg-mclear:focus-visible,.rg-mdone:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.rg-modal{position:fixed;inset:0;z-index:240;display:grid;place-items:center;padding:16px}
.rg-modal[hidden]{display:none}
.rg-mb{position:absolute;inset:0;background:var(--backdrop,rgba(0,0,0,.5))}
.rg-md{position:relative;display:flex;flex-direction:column;width:min(560px,100%);max-height:min(80dvh,640px);border-radius:22px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg);overflow:hidden;animation:rgIn .22s ease both}
.rg-md:focus{outline:none}
@keyframes rgIn{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.rg-mh{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 10px 18px;border-bottom:1px solid var(--line)}
.rg-mh h2{margin:0;font-size:1.05rem}
.rg-mx{width:44px;height:44px;border:0;border-radius:12px;background:var(--tint);color:var(--primary);font-size:1.4rem;cursor:pointer}
.rg-ml{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;padding:14px 16px}
.rg-mf{flex:none;display:flex;gap:10px;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--line)}
.rg-mclear,.rg-mdone{min-height:44px;padding:0 20px;border-radius:14px;font:inherit;font-weight:700;cursor:pointer}
.rg-mclear{border:1.5px solid var(--line-field);background:var(--card);color:var(--ink)}
.rg-mdone{border:0;background:var(--btn-bg);color:#fff}
.rg-lock{overflow:hidden}
@media (max-width:560px){.rg-modal{place-items:end center;padding:0}.rg-md{width:100%;border-radius:22px 22px 0 0;max-height:82dvh}}
@media (prefers-reduced-motion:reduce){.rg-md,.rg .rg-mapb.busy svg{animation:none}}

/* optional photo and certificates on the done screen */
.rg-opt{display:grid;gap:12px;width:100%;text-align:left;padding:16px;border-radius:20px;background:var(--tint-soft);border:1.5px dashed var(--btn-line,var(--line-field))}
.rg-opt-h{margin:0;font-size:1.1rem;line-height:1.35}
.rg-opt-p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}
.rg-opt-card{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border-radius:16px;background:var(--card);border:1px solid var(--line-card)}
.rg-opt-col{display:grid;gap:10px}
.rg-opt-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.rg-opt-pv{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--tint);color:var(--primary);font:800 1.4rem/1 var(--font-head)}
.rg-opt-pv img{display:block;width:100%;height:100%;object-fit:cover}
.rg-opt-ic{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--tint);color:var(--primary)}
.rg-opt-tx{flex:1 1 200px;min-width:0;display:grid;gap:3px}
.rg-opt-tx small{color:var(--muted);line-height:1.45}
.rg-opt-msg{margin:0;font-size:.88rem;font-weight:600;color:var(--text-soft2,var(--muted))}
.rg-opt-msg:empty{display:none}
.rg-opt-b{flex:none;min-height:48px;gap:8px}
.rg-opt-b svg{width:18px;height:18px}
.rg-opt-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rg-opt-list li{display:flex;align-items:center;gap:10px;min-width:0}
.rg-opt-list img{flex:none;width:44px;height:44px;border-radius:10px;object-fit:cover;border:1px solid var(--line)}
.rg-opt-list span{min-width:0;overflow-wrap:anywhere;font-weight:600}
.rg-opt-skip{justify-self:start;min-height:48px}
.rg-opt[hidden]{display:none}
@media(max-width:420px){.rg-opt-b{width:100%}}

.rg-fn.bad{color:#BE123C;font-weight:600}
:root[data-theme="dark"] .rg-fn.bad{color:#FDA4AF}
.rg-docmsg{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:var(--tint-soft);font-size:.9rem;font-weight:600;line-height:1.45;text-align:left}
.rg-docmsg.bad{color:#BE123C}
:root[data-theme="dark"] .rg-docmsg.bad{color:#FDA4AF}
button.rg-up{width:100%;text-align:left;font:inherit;color:inherit}
.rg-up img{object-fit:contain}

/* Continue with Google / Facebook */
.rg-soc{display:grid;gap:14px;margin-bottom:6px}
.rg-soc[hidden],.rg-soc .btn[hidden],.rg-socnote[hidden],.rg-soc-err[hidden]{display:none}
.rg-soc-b{display:grid;gap:10px}
.rg-soc .btn{min-height:50px;font-size:1rem;border-radius:14px}
.rg-soc .btn:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.rg-socnote{margin-bottom:6px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.rg-socnote .lnk{min-height:36px;background:none;border:0;cursor:pointer;font:inherit;font-weight:700}
.rg-soc-err{margin-bottom:8px}
