/* The store-opening journey: neutral surfaces, a single clear next action. */
html[aria-busy="true"]::before { content:''; position:fixed; top:0; left:0; z-index:1000; width:35%; height:2px; background:var(--c-ink); transform-origin:left; animation:sh-navigation 1s ease-in-out infinite alternate; pointer-events:none; }
@keyframes sh-navigation { from { transform:translateX(-50%); } to { transform:translateX(280%); } }
@media(prefers-reduced-motion:reduce) { html[aria-busy="true"]::before { animation:none; width:100%; } }
html[data-motion="reduce"][aria-busy="true"]::before { animation:none; width:100%; }
.sh-start-public, .sh-customer-workspace { background:var(--c-base); color:var(--c-ink); }
.sh-start-public .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
[data-display-theme-toggle] .sh-theme-sun, html.dark [data-display-theme-toggle] .sh-theme-moon { display:none; }
html.dark [data-display-theme-toggle] .sh-theme-sun { display:block; }
:is(.sh-start-public,.sh-workspace-body) :is(h1,h2,h3,h4,.title) { font-family:var(--sh-font); font-weight:600; }
:is(.sh-start-public,.sh-workspace-body) :is(.btn-primary,.sh-button) {
  background:var(--c-punch); color:var(--c-onaccent); border:1px solid var(--c-punch);
  box-shadow:none; font-weight:500; text-decoration:none;
}
:is(.sh-start-public,.sh-workspace-body) :is(.btn-primary,.sh-button):hover { background:color-mix(in srgb,var(--c-punch),var(--c-base) 12%); color:var(--c-onaccent); }
:is(.sh-start-public,.sh-customer-workspace) .link { color:var(--c-ink); font-weight:500; text-underline-offset:4px; }
:is(.sh-start-public,.sh-customer-workspace) .link:hover { text-decoration:underline; }

/* Public header and a compact, text-led home page. */
.sh-start-public { min-height:100dvh; display:flex; flex-direction:column; }
.sh-start-public #pphp-main { flex:1; width:100%; }
.sh-start-header { background:var(--c-base); border-bottom:1px solid var(--c-line); }
.sh-start-header .sh-header-inner { min-height:76px; max-width:1160px; padding-inline:0; }
.sh-start-header .sh-brand .sh-logo-pair { width:8.75rem; }
.sh-start-header .sh-header-actions { margin-left:auto; gap:.65rem; }
.sh-start-header .sh-desktop-nav { margin-left:auto; }
.sh-start-header :is(.sh-desktop-nav,.sh-login-link) { font-size:.9375rem; }
.sh-start-header :is(.sh-theme-button,.sh-menu-button) { min-width:44px; min-height:44px; color:var(--c-ink); }
.sh-start-header .sh-button-small { font-size:.875rem; min-height:44px; padding:.6rem 1rem; border-radius:8px; }
.sh-start-mobile-menu { padding:.5rem 1rem 1rem; border-top:1px solid var(--c-line); background:var(--c-panel); }
.sh-start-mobile-menu a { display:flex; align-items:center; min-height:48px; padding:.5rem .75rem; border-radius:6px; }
.sh-start-mobile-menu a:hover { background:var(--c-panel2); }
.sh-start-mobile-menu .sh-mobile-start { font-weight:600; }
.sh-start { max-width:960px; margin-inline:auto; padding:0 2rem; }
.sh-start-hero { text-align:center; padding:5rem 0 4rem; }
.sh-start-eyebrow { font-size:.875rem; color:var(--c-muted); margin:0 0 1rem!important; }
.sh-start-hero h1 { font-size:clamp(2rem,4.5vw,3.5rem); line-height:1.4; letter-spacing:-.035em; font-weight:600; }
.sh-start-intro { font-size:1.0625rem; color:var(--c-muted); line-height:1.8; margin:1.25rem auto 1.75rem!important; max-width:34rem; }
.sh-start .sh-start-cta { display:inline-flex; min-height:52px; min-width:184px; justify-content:center; gap:1.5rem; padding:.8rem 1.4rem; font-size:1rem; border-radius:9px; }
.sh-start-note { margin:1rem 0 0!important; font-size:.8125rem; color:var(--c-muted); }
.sh-start-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; list-style:none; padding:2rem 0; margin:0; border-block:1px solid var(--c-line); }
.sh-start-benefits li { display:grid; grid-template-columns:24px 1fr; gap:.2rem .85rem; align-content:start; }
.sh-start-benefits svg { grid-row:span 2; margin-top:.2rem; }
.sh-start-benefits strong { font-size:.9375rem; font-weight:500; }
.sh-start-benefits span { font-size:.8125rem; color:var(--c-muted); }
.sh-start-how { padding:3.25rem 0; }
.sh-start :is(h2,.sh-start-section-heading h2) { font-size:1.375rem; font-weight:600; letter-spacing:-.02em; }
.sh-start-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; list-style:none; padding:0; margin:1.5rem 0 0; }
.sh-start-steps li { display:flex; align-items:flex-start; gap:.85rem; }
.sh-start-steps li>span { width:32px; height:32px; flex-shrink:0; display:grid; place-items:center; border:1px solid var(--c-line); border-radius:50%; font-size:.875rem; background:var(--c-panel); }
.sh-start-steps h3 { font-size:.9375rem; font-weight:500; }
.sh-start-steps p { font-size:.8125rem; color:var(--c-muted); margin-top:.3rem!important; }
.sh-start-plan { display:flex; gap:2rem; align-items:center; justify-content:space-between; background:var(--c-panel2); border-radius:12px; padding:1.75rem 2rem; }
.sh-start-plan p { max-width:33rem; font-size:.875rem; color:var(--c-muted); margin-top:.5rem!important; }
.sh-start-price { display:flex; gap:.7rem; align-items:baseline; flex-shrink:0; font-size:2.5rem; font-weight:500; letter-spacing:-.04em; }
.sh-start-price span { font-size:.875rem; font-weight:400; letter-spacing:0; color:var(--c-muted); }
.sh-start-faq { padding:3.25rem 0 4rem; }
.sh-start-section-heading { display:flex; gap:1rem; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.sh-start-section-heading a { font-size:.875rem; min-height:44px; display:flex; align-items:center; gap:.35rem; white-space:nowrap; }
.sh-start-faq details { border-bottom:1px solid var(--c-line); }
.sh-start-faq summary { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; font-size:.9375rem; list-style:none; }
.sh-start-faq summary::-webkit-details-marker { display:none; }
.sh-start-faq summary::after { content:'+'; font-size:1.2rem; color:var(--c-muted); }
.sh-start-faq details[open] summary::after { content:'−'; }
.sh-start-faq details>p { max-width:48rem; margin:0 0 1rem!important; color:var(--c-muted); font-size:.875rem; line-height:1.85; }
.sh-start-footer { border-top:1px solid var(--c-line); padding:1rem 0; }
.sh-start-footer-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; max-width:1160px; }
.sh-start-footer nav { display:flex; flex-wrap:wrap; gap:1.5rem; font-size:.8125rem; color:var(--c-muted); }
.sh-start-footer nav a { display:inline-flex; align-items:center; min-height:44px; }
.sh-public-auth .sh-start-footer-inner { justify-content:center; }

/* Customer workspace: four destinations, without an operator-style sidebar. */
.sh-customer-workspace .admin-shell { display:block; }
.sh-customer-workspace .admin-shell>div { min-height:100dvh; }
.sh-customer-workspace .admin-header { padding-inline:max(1.5rem,calc((100vw - 1120px)/2)); gap:2.5rem; min-height:76px; flex-wrap:nowrap; }
.sh-customer-brand { display:flex; align-items:center; flex-shrink:0; min-height:44px; }
.sh-customer-brand .sh-logo-pair { width:8.5rem; }
.sh-customer-nav { display:flex; gap:.35rem; align-items:center; }
.sh-customer-workspace .sh-customer-nav [data-portal-nav] { padding:.55rem .8rem; border-radius:7px; font-size:.875rem; white-space:nowrap; }
.sh-customer-workspace .sh-header-context { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.sh-customer-workspace .admin-header-actions { flex-wrap:nowrap; gap:.35rem; }
.sh-customer-workspace .admin-header-actions>.btn, .sh-customer-workspace .admin-header-actions summary, .sh-customer-logout .btn { border:1px solid transparent; width:44px; padding:.5rem; background:transparent; }
.sh-customer-workspace .admin-header-actions :is(.btn,summary):hover { background:var(--c-panel2); border-color:var(--c-line); }
.sh-customer-workspace .admin-workspace { max-width:1120px; padding:2.75rem 1.5rem 3rem; }
.sh-customer-workspace .sh-workspace-footer { max-width:1072px; width:calc(100% - 3rem); margin-inline:auto; }

/* Shared forms for account creation, store naming and confirmation. */
.sh-onboard { max-width:34rem; margin:1rem auto 2rem; color:var(--c-ink); }
.sh-onboard-auth { max-width:27rem; margin:3rem auto 4rem; padding:0 1rem; }
.sh-onboard-header { margin-bottom:1.75rem; }
.sh-onboard-header :is(h1,h2) { font-size:1.875rem; line-height:1.5; letter-spacing:-.025em; font-weight:600; margin:0; }
.sh-onboard-header>p { color:var(--c-muted); font-size:.9375rem; margin:.5rem 0 0!important; }
.sh-onboard-steps { list-style:none; display:flex; justify-content:space-between; align-items:center; gap:.65rem; padding:0 0 1.75rem; margin:0 0 1.75rem; border-bottom:1px solid var(--c-line); }
.sh-onboard-steps li { display:flex; gap:.4rem; align-items:center; font-size:.8125rem; white-space:nowrap; color:var(--c-muted); }
.sh-onboard-steps li>span { display:grid; place-items:center; width:24px; height:24px; flex-shrink:0; background:var(--c-panel2); border:1px solid var(--c-line); border-radius:50%; font-size:.75rem; }
.sh-onboard-steps .is-current { font-weight:600; color:var(--c-ink); }
.sh-onboard-steps .is-current>span { background:var(--c-punch); color:var(--c-onaccent); border-color:var(--c-punch); }
.sh-onboard-steps .is-complete>span { background:var(--c-panel); color:var(--c-ink); border-color:var(--c-muted); }
.sh-onboard-form { display:grid; gap:1.25rem; }
.sh-onboard-field { min-width:0; }
.sh-onboard-field .label { display:block; margin-bottom:.5rem; color:var(--c-ink); font-size:.875rem; font-weight:500; line-height:1.6; }
.sh-onboard .input { display:block; width:100%; min-width:0; min-height:48px; padding:.65rem .85rem; background:var(--c-panel); color:var(--c-ink); border:1px solid var(--c-line); border-radius:8px; box-shadow:none; font-size:1rem; font-family:var(--sh-font); line-height:1.6; }
.sh-onboard .input::placeholder { color:var(--c-muted); opacity:1; }
.sh-onboard .input:focus { border-color:var(--c-ink); outline:2px solid var(--c-ink); outline-offset:2px; box-shadow:none; }
.sh-onboard .input[readonly] { background:var(--c-panel2); color:var(--c-muted); }
.sh-onboard .input:disabled { opacity:.65; }
.sh-onboard-label-row { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; }
.sh-onboard-label-row .link { font-size:.8125rem; }
.sh-onboard-note { font-size:.8125rem; color:var(--c-muted); line-height:1.75; margin:.5rem 0 0!important; }
.sh-onboard-switch { text-align:center; padding-top:1.5rem; font-size:.875rem; color:var(--c-muted); }
.sh-onboard-switch .link { margin-left:.3rem; }
.sh-onboard .sh-onboard-submit { width:100%; display:flex; align-items:center; justify-content:center; min-height:50px; font-size:.9375rem; border-radius:8px; padding:.75rem 1rem; }
.sh-onboard .sh-onboard-submit:disabled { opacity:.55; cursor:not-allowed; }
.sh-onboard-name { display:grid; grid-template-columns:1.25fr 1fr; gap:.75rem; }
.sh-onboard-domain { display:flex; flex-wrap:wrap; gap:.25rem .75rem; padding:1rem 0; margin:.5rem 0 0!important; border-bottom:1px solid var(--c-line); font-size:.875rem; }
.sh-onboard-domain>span { color:var(--c-muted); }
.sh-onboard-domain>strong { font-weight:500; overflow-wrap:anywhere; }
.sh-onboard-packages { min-width:0; padding:0; margin:0; border:0; }
.sh-onboard-packages legend { margin-bottom:.6rem; font-size:.875rem; font-weight:500; }
.sh-onboard-plan { display:flex; align-items:flex-start; gap:.75rem; border:1px solid var(--c-line); background:var(--c-panel); border-radius:9px; padding:1rem; cursor:pointer; }
.sh-onboard-plan:has(input:checked) { border-color:var(--c-ink); box-shadow:inset 0 0 0 1px var(--c-ink); }
.sh-onboard-plan:has(input:disabled) { color:var(--c-muted); cursor:not-allowed; }
.sh-onboard-plan input { margin-top:.25rem; width:18px; height:18px; flex-shrink:0; accent-color:var(--c-ink); }
.sh-onboard-plan-body { display:grid; flex:1; min-width:0; }
.sh-onboard-plan-heading { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; font-size:.9375rem; }
.sh-onboard-plan-heading strong { font-weight:500; }
.sh-onboard-plan-body .sh-onboard-note { margin-top:.3rem!important; }
.sh-onboard-plan-status { margin-top:.35rem; font-size:.8125rem; color:var(--c-warn); }
.sh-onboard-plan-list { display:grid; gap:.65rem; margin-top:.5rem; }
.sh-onboard :is(.sh-onboard-plans,.sh-onboard-details)>summary { min-height:44px; padding:.65rem 0; font-size:.8125rem; color:var(--c-muted); }
.sh-onboard :is(.sh-onboard-plans,.sh-onboard-details)>summary:hover { color:var(--c-ink); }
.sh-onboard-details .sh-onboard-field { margin-top:.5rem; }
.sh-onboard-summary { border:1px solid var(--c-line); background:var(--c-panel); padding:1.25rem 1.5rem; border-radius:10px; margin-bottom:1.75rem; }
.sh-onboard-summary-heading { display:flex; align-items:baseline; gap:1rem; justify-content:space-between; padding-bottom:1rem; border-bottom:1px solid var(--c-line); }
.sh-onboard-store-address { min-width:0; overflow-wrap:anywhere; font-size:1.0625rem; font-weight:500; }
.sh-onboard-summary-heading .link { flex-shrink:0; font-size:.8125rem; }
.sh-onboard-facts { display:grid; gap:.5rem; margin:1rem 0 0; font-size:.875rem; }
.sh-onboard-facts>div { display:flex; justify-content:space-between; gap:1rem; }
.sh-onboard-facts dt { color:var(--c-muted); }
.sh-onboard-facts dd { margin:0; text-align:right; }
.sh-onboard-total { margin-top:.5rem; padding-top:.75rem; border-top:1px solid var(--c-line); font-weight:500; }
.sh-onboard-total dd { font-size:1.125rem; }
.sh-onboard-summary>.sh-onboard-note { border-top:1px solid var(--c-line); padding-top:.75rem; }
.sh-onboard-back { display:flex; align-items:center; justify-content:center; min-height:44px; font-size:.8125rem; color:var(--c-muted); margin-top:1rem; }
.sh-onboard .form-error { border:1px solid var(--c-danger); border-radius:8px; padding:.75rem 1rem; color:var(--c-danger); background:color-mix(in srgb,var(--c-danger),var(--c-panel) 95%); font-size:.875rem; }
.sh-onboard .sh-password-field .input { padding-right:3.25rem; }

/* Stores are a short actionable list, with secondary links in each row's menu. */
.sh-shops { width:100%; }
.sh-shops-header { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-bottom:2rem; }
.sh-shops-greeting { color:var(--c-muted); font-size:.8125rem; margin:0 0 .4rem; }
.sh-shops-header h2 { display:inline; font-size:1.875rem; letter-spacing:-.025em; line-height:1.5; }
.sh-shops-header h2>span { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:28px; padding:.1rem .5rem; border:1px solid var(--c-line); border-radius:7px; font-size:.875rem; color:var(--c-muted); margin-left:.5rem; vertical-align:middle; font-weight:400; letter-spacing:0; }
.sh-shops-header>.btn { flex-shrink:0; }
.sh-shops-toolbar { display:flex; align-items:center; gap:1rem; justify-content:space-between; margin-bottom:1rem; }
.sh-shops-toolbar .sh-store-search { width:100%; max-width:23rem; background:var(--c-panel); margin:0; }
.sh-shops-toolbar [data-store-results] { color:var(--c-muted); font-size:.8125rem; white-space:nowrap; }
.sh-shop-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--c-line); }
.sh-shop-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:1.5rem; border-bottom:1px solid var(--c-line); padding:1.4rem .25rem; }
.sh-shop-identity { display:flex; gap:1rem; min-width:0; align-items:center; }
.sh-shop-symbol { display:grid; place-items:center; width:48px; height:48px; flex-shrink:0; border:1px solid var(--c-line); border-radius:10px; background:var(--c-panel); }
.sh-shop-symbol .icon { width:22px; height:22px; }
.sh-shop-identity>div { min-width:0; }
.sh-shop-identity a { color:var(--c-ink); font-size:1rem; font-weight:500; overflow-wrap:anywhere; text-decoration:none; }
.sh-shop-identity a:hover { text-decoration:underline; text-underline-offset:4px; }
.sh-shop-identity p { color:var(--c-muted); font-size:.8125rem; margin:.2rem 0 0; }
.admin-shell .sh-shops .sh-shop-row>.status { justify-self:start; border:0; background:transparent; padding:.4rem 0; font-size:.8125rem; }
.sh-shop-actions { display:flex; align-items:center; gap:.5rem; }
.sh-shop-actions>.btn { min-width:100px; white-space:nowrap; }
.sh-shop-more { position:relative; }
.sh-shop-more>summary { list-style:none; }
.sh-shop-more>summary::-webkit-details-marker { display:none; }
.sh-shop-more>div { display:grid; position:absolute; right:0; top:calc(100% + .5rem); z-index:15; min-width:11rem; padding:.35rem; border:1px solid var(--c-line); border-radius:10px; background:var(--c-panel); box-shadow:0 8px 24px var(--c-shadow); }
.sh-shop-more>div>a { display:flex; min-height:44px; padding:.6rem .8rem; align-items:center; font-size:.875rem; border-radius:6px; white-space:nowrap; }
.sh-shop-more>div>a:hover { background:var(--c-panel2); }
.sh-shop-empty { display:flex; flex-direction:column; align-items:center; text-align:center; padding:4rem 1.5rem; border:1px solid var(--c-line); border-radius:12px; background:var(--c-panel); }
.sh-shop-empty-icon { display:grid; place-items:center; width:64px; height:64px; border:1px solid var(--c-line); border-radius:14px; margin-bottom:1.5rem; color:var(--c-muted); }
.sh-shop-empty-icon>.icon { width:28px; height:28px; }
.sh-shop-empty h3 { font-size:1.375rem; }
.sh-shop-empty p { font-size:.9375rem; color:var(--c-muted); margin:.6rem 0 1.5rem; max-width:32rem; }
.sh-shop-empty small { font-size:.8125rem; color:var(--c-muted); margin-top:1rem; }
.sh-shop-support { max-width:34rem; margin-top:1.5rem; }
.sh-shop-support>summary { font-size:.875rem; color:var(--c-muted); padding:.65rem 0; min-height:44px; }
.sh-shop-support>form { padding-top:1rem; }

@media(min-width:981px) { .sh-start-header .sh-menu-button { display:none; } }
@media(max-width:980px) {
  .sh-start-header :is(.sh-header-cta,.sh-desktop-nav,.sh-login-link) { display:none; }
  .sh-start-header .sh-menu-button { display:grid; }
}
@media(max-width:1000px) {
  .sh-customer-workspace .admin-header { gap:1rem; }
  .sh-customer-workspace .sh-customer-nav [data-portal-nav] { padding-inline:.55rem; }
  .sh-shop-row { gap:1rem; }
}
@media(max-width:56rem) {
  .sh-customer-nav { display:none; }
  .sh-customer-workspace { padding-bottom:calc(4.5rem + env(safe-area-inset-bottom)); }
  .sh-customer-workspace .admin-shell>div { min-height:calc(100dvh - 4.5rem); }
  .sh-customer-workspace .sh-mobile-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; inset:auto 0 0; z-index:35; padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom)); gap:.3rem; background:var(--c-panel); border-top:1px solid var(--c-line); }
  .sh-customer-workspace .sh-mobile-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2rem; min-height:52px; border-radius:8px; font-size:.75rem; text-decoration:none; color:var(--c-muted); }
  .sh-customer-workspace .sh-mobile-nav a[aria-current] { background:var(--c-panel2); color:var(--c-ink); font-weight:500; }
}
@media(max-width:720px) {
  .sh-start-header .sh-header-inner { min-height:68px; }
  .sh-start-header .sh-header-actions { gap:.25rem; }
  .sh-start-header .sh-brand .sh-logo-pair { width:7.5rem; }
  .sh-start-header :is(.sh-header-cta,.sh-desktop-nav,.sh-login-link) { display:none; }
  .sh-start { padding:0 1.25rem; }
  .sh-start-hero { padding:3rem 0 2.5rem; }
  .sh-start-hero h1 { font-size:2.25rem; line-height:1.45; }
  .sh-start-intro { font-size:1rem; max-width:24rem; margin-top:1rem!important; }
  .sh-start-benefits { grid-template-columns:1fr; gap:1.5rem; padding-block:1.75rem; }
  .sh-start-benefits li { grid-template-columns:24px 1fr; }
  .sh-start-how { padding:2.5rem 0; }
  .sh-start-steps { grid-template-columns:1fr; gap:1.25rem; }
  .sh-start-plan { padding:1.25rem; flex-wrap:wrap; gap:1rem; }
  .sh-start-plan h2 { font-size:1.25rem; }
  .sh-start-price { font-size:2rem; }
  .sh-start-faq { padding:2.5rem 0; }
  .sh-start-section-heading h2 { font-size:1.25rem; }
  .sh-start-footer-inner { justify-content:center; gap:.3rem; }
  .sh-start-footer nav { justify-content:center; gap:1rem; }
  .sh-onboard { margin-top:.5rem; }
  .sh-onboard-auth { margin:2rem auto 2.5rem; padding-inline:1.25rem; }
  .sh-onboard-header :is(h1,h2) { font-size:1.625rem; }
  .sh-onboard-steps { padding-bottom:1.25rem; margin-bottom:1.5rem; }
  .sh-onboard-summary { padding:1rem; }
  .sh-customer-workspace .admin-header { min-height:68px; padding-inline:1rem; gap:.5rem; }
  .sh-customer-brand .sh-logo-pair { width:7.5rem; }
  .sh-customer-workspace .admin-header-actions { gap:0; }
  .sh-customer-workspace .admin-workspace { padding:1.75rem 1rem 2rem; }
  .sh-shops-header { gap:1rem; margin-bottom:1.5rem; }
  .sh-shops-header h2 { font-size:1.5rem; }
  .sh-shops-header>.btn { font-size:.875rem; padding:.6rem .85rem; }
  .sh-shops-toolbar { gap:.75rem; }
  .sh-shop-row { grid-template-columns:1fr auto; gap:1rem .5rem; padding:1.25rem 0; }
  .sh-shop-identity { grid-column:1/-1; gap:.75rem; }
  .sh-shop-symbol { width:42px; height:42px; border-radius:8px; }
  .sh-shop-identity a { font-size:.9375rem; }
  .sh-shop-actions { gap:.35rem; }
  .sh-shop-actions .btn { font-size:.8125rem; padding:.5rem .65rem; }
  .sh-shop-actions>.btn { min-width:92px; }
  .sh-shop-row>.status { font-size:.75rem; max-width:7.5rem; }
  .sh-shop-empty { padding:3rem 1rem; }
}
@media(max-width:480px) {
  .sh-onboard-name { grid-template-columns:1fr; gap:1rem; }
  .sh-onboard-steps li { font-size:.75rem; }
}
@media(max-width:360px) {
  .sh-start-header .sh-brand .sh-logo-pair, .sh-customer-brand .sh-logo-pair { width:104px; }
  .sh-start-header .sh-header-inner { gap:.25rem; }
  .sh-start-hero h1 { font-size:2rem; }
  .sh-onboard-steps { gap:.4rem; }
  .sh-onboard-steps li { gap:.3rem; font-size:.6875rem; }
  .sh-onboard-steps li>span { width:21px; height:21px; }
  .sh-onboard-name { grid-template-columns:1fr; gap:1rem; }
  .sh-start-section-heading { align-items:flex-start; flex-direction:column; gap:0; }
}

/* Password feedback is the only green state in the neutral account-creation UI. */
[data-component="password-strength"] { --password-state:var(--c-muted); }
[data-component="password-strength"][data-strength="1"] { --password-state:#b91c1c; }
[data-component="password-strength"][data-strength="2"] { --password-state:#9a3412; }
[data-component="password-strength"][data-strength="3"] { --password-state:#166534; }
html.dark [data-component="password-strength"][data-strength="1"] { --password-state:#fca5a5; }
html.dark [data-component="password-strength"][data-strength="2"] { --password-state:#fdba74; }
html.dark [data-component="password-strength"][data-strength="3"] { --password-state:#86efac; }
.sh-password-strength { display:grid; grid-template-columns:repeat(3,1fr); gap:.35rem; margin-top:.85rem; }
.sh-password-strength>span { height:4px; border-radius:2px; background:var(--c-line); transition:background-color .18s ease; }
[data-strength="1"] .sh-password-strength>span:first-child,
[data-strength="2"] .sh-password-strength>span:nth-child(-n+2),
[data-strength="3"] .sh-password-strength>span { background:var(--password-state); }
.sh-password-status { font-size:.8125rem; line-height:1.6; margin:.4rem 0 0!important; color:var(--password-state); font-weight:500; }
[data-strength="0"] .sh-password-status { display:none; }
.sh-password-rules { display:flex; flex-wrap:wrap; gap:.3rem .85rem; padding:0; margin:.4rem 0 0; list-style:none; font-size:.75rem; color:var(--c-muted); }
.sh-password-rules li::before { content:'○'; display:inline-block; width:1rem; font-size:.7rem; }
.sh-password-rules [data-met="true"] { color:var(--c-ink); }
.sh-password-rules [data-met="true"]::before { content:'✓'; }
.sh-login-mfa { width:calc(100% - 2rem); max-width:27rem; max-height:calc(100dvh - 2rem); overflow:auto; padding:2rem; border:1px solid var(--c-line); border-radius:14px; background:var(--c-panel); color:var(--c-ink); box-shadow:0 24px 80px #00000040; font-family:var(--sh-font); }
.sh-login-mfa::backdrop { background:#00000080; }
.sh-login-mfa h2 { font-size:1.5rem; font-weight:600; margin:0; }
.sh-login-mfa>p { margin:.6rem 0 1.5rem; font-size:.9375rem; color:var(--c-muted); line-height:1.8; }
.sh-login-mfa .label { display:block; margin-bottom:.5rem; font-size:.875rem; font-weight:500; }
.sh-login-mfa .input { width:100%; min-height:50px; border:1px solid var(--c-line); border-radius:8px; background:var(--c-base); color:var(--c-ink); padding:.75rem; font:inherit; }
.sh-login-mfa>.btn { display:flex; width:100%; min-height:48px; align-items:center; justify-content:center; margin-top:1rem; border-radius:8px; font-size:.9375rem; }
.sh-login-mfa>.btn-ghost { margin-top:.5rem; background:transparent; color:var(--c-muted); border:1px solid transparent; }
.sh-login-mfa .form-error { margin:0 0 1rem; color:var(--c-danger); font-size:.875rem; line-height:1.8; }
.sh-start-title-line { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:center; gap:0 .15em; }
.sh-start-title-main { flex-wrap:nowrap; }
.sh-typewriter { display:inline-grid; position:relative; white-space:nowrap; text-align:left; padding-inline:.1em; }
.sh-typewriter-space { visibility:hidden; grid-area:1/1; display:grid; pointer-events:none; }
.sh-typewriter-space>span { grid-area:1/1; }
[data-typewriter-output] { grid-area:1/1; justify-self:start; position:relative; }
.sh-typewriter[data-animating="true"] [data-typewriter-output]::after { content:''; position:absolute; left:calc(100% + .06em); bottom:.22em; height:.8em; border-right:2px solid currentColor; animation:sh-cursor 1s step-end infinite; }
.sh-typewriter-controls { min-height:44px; margin-top:.4rem; }
.sh-typewriter-toggle { display:inline-flex; align-items:center; justify-content:center; gap:.3rem; min-height:44px; padding:.4rem .65rem; margin:0; border:0; border-radius:6px; color:var(--c-muted); background:transparent; font:inherit; font-size:.75rem; }
.sh-typewriter-toggle:hover { background:var(--c-panel2); color:var(--c-ink); }
@keyframes sh-cursor { 50% { opacity:0; } }
.sh-start-payments { padding:2.75rem 0 3rem; }
.sh-start-payments header { margin-bottom:1.5rem; }
.sh-start-payments header .sh-start-eyebrow { font-size:.75rem; margin-bottom:.4rem!important; }
.sh-start-payments header>p:last-child { font-size:.9375rem; color:var(--c-muted); margin:.6rem 0 0!important; }
.sh-payment-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.sh-payment-options article { min-width:0; display:flex; flex-direction:column; padding:1.5rem; border:1px solid var(--c-line); border-radius:12px; background:var(--c-panel); }
.sh-payment-logo { display:flex; align-items:center; justify-content:center; height:96px; padding:.5rem; margin-bottom:1.25rem; background:#f4f4f4; border-radius:7px; }
.sh-payment-logo img { max-width:100%; max-height:80px; width:160px; height:auto; object-fit:contain; }
.sh-payment-brand-stripe img { width:100px; }
.sh-payment-brand-paypal img { width:130px; }
.sh-payment-symbol { display:flex; align-items:center; justify-content:center; gap:.65rem; height:96px; margin-bottom:1.25rem; background:var(--c-panel2); border-radius:7px; font-size:1.125rem; font-weight:500; }
.sh-payment-crypto { gap:0; }
.sh-crypto-coin { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:54px; height:54px; border:3px solid var(--c-panel2); border-radius:50%; font-family:Arial,sans-serif; font-size:2rem; font-weight:600; }
.sh-crypto-coin+.sh-crypto-coin { margin-left:-10px; }
.sh-crypto-bitcoin { background:#f5a623; color:#181818; }
.sh-crypto-ethereum { background:#d8dcf0; color:#343b60; }
.sh-crypto-stable { background:var(--c-ink); color:var(--c-base); font-size:1.7rem; }
.sh-payment-options h3 { font-size:.9375rem; font-weight:500; line-height:1.7; }
.sh-payment-options p { flex:1; margin:.65rem 0 1rem!important; font-size:.8125rem; color:var(--c-muted); line-height:1.85; }
.sh-payment-caption { font-size:.75rem; color:var(--c-muted); border-top:1px solid var(--c-line); display:flex; padding-top:.75rem; }
.sh-payment-status { display:inline-flex; align-items:center; gap:.45rem; line-height:1.7; }
.sh-payment-status::before { content:''; width:6px; height:6px; flex-shrink:0; border-radius:50%; background:currentColor; }
[data-payment-status="planned"] .sh-payment-status::before { background:transparent; border:1px solid currentColor; }
.sh-payment-note { max-width:76ch; margin:1.25rem 0 0!important; color:var(--c-muted); font-size:.75rem; line-height:1.8; }
@media(min-width:721px) and (max-width:960px) { .sh-payment-options { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:720px) {
  .sh-start-title-main { flex-direction:column; align-items:center; }
  .sh-typewriter { text-align:center; }
  .sh-typewriter [data-typewriter-output] { justify-self:center; }
  .sh-start-payments { padding:2rem 0; }
  .sh-payment-options { grid-template-columns:1fr; }
  .sh-payment-options article { display:grid; grid-template-columns:80px minmax(0,1fr); gap:.25rem 1rem; padding:1rem; }
  .sh-payment-logo,.sh-payment-symbol { grid-row:span 3; margin:0; min-height:80px; height:100%; padding:.5rem; }
  .sh-payment-api { flex-direction:column; gap:.35rem; font-size:.875rem; }
  .sh-payment-crypto { flex-direction:column; padding-block:.75rem; }
  .sh-crypto-coin { width:34px; height:34px; border-width:2px; font-size:1.25rem; }
  .sh-crypto-coin+.sh-crypto-coin { margin-left:0; margin-top:-8px; }
  .sh-crypto-ethereum svg { width:14px; height:23px; }
  .sh-crypto-stable { font-size:1.125rem; }
  .sh-payment-options h3 { font-size:.875rem; }
  .sh-payment-options p { margin:.3rem 0!important; }
  .sh-payment-caption { padding-top:.5rem; margin-top:.5rem; }
  .sh-login-mfa { padding:1.5rem; }
}
@media(prefers-reduced-motion:reduce) { .sh-typewriter [data-typewriter-output]::after { animation:none; } .sh-password-strength>span { transition:none; } }
.sh-directory-switch{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-weight:600}
.sh-directory-switch input{appearance:none;position:relative;width:46px;height:26px;flex-shrink:0;background:var(--c-panel2);border:1px solid var(--c-muted);border-radius:20px;cursor:pointer}
.sh-directory-switch input::before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--c-muted)}
.sh-directory-switch input:checked{background:var(--c-punch);border-color:var(--c-punch)}
.sh-directory-switch input:checked::before{background:var(--c-onaccent);transform:translateX(20px)}
.sh-directory-switch input:focus-visible{outline:2px solid var(--c-punch);outline-offset:4px}
