/* ══════════════════════════════════════════════════════════════════
   GymSaaS — Design layer (DS v2)
   Loaded LAST on every platform page. Brings every plugin screen to the
   language of the platform home page: dark glass surfaces, 'Geist' /
   'Geist', pill buttons, generous radii, one accent (customizer).
   Structure:  1 tokens · 2 base · 3 shell (site + app) · 4 components ·
               5 owner dashboard · 6 page families · 7 responsive
   ══════════════════════════════════════════════════════════════════ */

/* ── 1. Tokens ─────────────────────────────────────────────────────
   Set on body so they win over the customizer's :root values while
   keeping its accent (--ds-accent is printed from the customizer).    */
html body {
  --ds-accent: #C5F04A;
  --ds-accent-2: color-mix(in srgb, var(--ds-accent) 80%, #fff);
  --ds-bg: #0A0A0B;
  --ds-bg2: #0F0F11;
  --ds-surface: #141416;
  --ds-surface2: #1D1D20;
  --ds-ink: #F5F5F6;
  --ds-ink2: rgba(244, 244, 247, .72);
  --ds-mute: rgba(244, 244, 247, .5);
  --ds-line: rgba(255, 255, 255, .08);
  --ds-line2: rgba(255, 255, 255, .14);
  --ds-glass: rgba(255, 255, 255, .035);
  --ds-ok: #4CD98F;
  --ds-warn: #F6B94F;
  --ds-err: #FF6B5E;
  --ds-info: #7AA7FF;
  --ds-e: cubic-bezier(.32, .72, 0, 1);
  --ds-body: 'Geist', system-ui, -apple-system, "Segoe UI", sans-serif;
  --ds-display: 'Geist', 'Geist', system-ui, sans-serif;
  --ds-r-sm: 12px;
  --ds-r: 18px;
  --ds-r-lg: 26px;
  --ds-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 24px 60px -30px rgba(0,0,0,.85);

  /* legacy plugin tokens → DS v2 values */
  --void: var(--ds-bg); --abyss: var(--ds-bg2); --obs: var(--ds-bg2); --obsidian: var(--ds-bg2); --pit: var(--ds-bg2);
  --g-bg: rgba(52,211,153,.1); --g-bd: rgba(52,211,153,.28); --a-bg: rgba(251,191,36,.1);
  --carbon: var(--ds-surface); --iron: var(--ds-surface2); --steel: #2A2A2F;
  --ash: rgba(244,244,247,.42); --smoke: rgba(244,244,247,.58); --mist: rgba(244,244,247,.72);
  --fog: rgba(244,244,247,.72); --snow: var(--ds-ink); --white: #fff;
  --red: var(--ds-accent); --red-dk: color-mix(in srgb, var(--ds-accent) 75%, #000); --red-lt: color-mix(in srgb, var(--ds-accent) 70%, #fff);
  --red-dim: color-mix(in srgb, var(--ds-accent) 12%, transparent); --red-bd: color-mix(in srgb, var(--ds-accent) 32%, transparent);
  --red-ring: color-mix(in srgb, var(--ds-accent) 24%, transparent); --red-glow: color-mix(in srgb, var(--ds-accent) 40%, transparent);
  --red-halo: color-mix(in srgb, var(--ds-accent) 35%, transparent);
  --bd: var(--ds-line); --bd2: rgba(255,255,255,.05); --bd-hover: var(--ds-line2);
  --r: var(--ds-r-sm); --rl: var(--ds-r); --rxl: var(--ds-r-lg);
  --font: var(--ds-body); --disp: var(--ds-display); --hero: var(--ds-display); --mono: var(--ds-body);
  --sh-card: var(--ds-shadow); --sh-md: 0 18px 50px -24px rgba(0,0,0,.9); --sh-lg: 0 40px 100px -40px rgba(0,0,0,.95);
  --g-txt: #6ee7b7; --a-txt: #fcd34d; --b-txt: #7AA7FF; --v-txt: #c4b5fd;
  /* aliases used by some screens */
  --gsmk: var(--smoke); --gsnow: var(--ds-ink); --gwht: #fff; --gf: var(--ds-bg2); --gi: var(--ds-surface2);
}

/* ── 2. Base ───────────────────────────────────────────────────── */
body.gsx { margin: 0; background: var(--ds-bg) !important; color: var(--ds-ink); font-family: var(--ds-body); -webkit-font-smoothing: antialiased; }
html:has(body.gsx) { background: var(--ds-bg); overflow-x: clip; }
body.gsx { overflow-x: clip; } /* decorative scaled layers must never create a sideways scroll */
body.gsx *, body.gsx *::before, body.gsx *::after { box-sizing: border-box; }
body.gsx .gsx-content [hidden] { display: none !important; }
body.gsx ::selection { background: color-mix(in srgb, var(--ds-accent) 45%, transparent); color: var(--ds-accent-ink, #12160A); }
body.gsx :focus-visible { outline: 2px solid var(--ds-accent); outline-offset: 2px; }

/* ambient background (fixed, non-interactive) */
.gsx-bg { position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(55vw 45vw at 90% -10%, color-mix(in srgb, var(--ds-accent) 16%, transparent), transparent 62%),
    radial-gradient(45vw 40vw at -10% 35%, rgba(197,240,74, .07), transparent 65%),
    var(--ds-bg); }
.gsx-bg::after { content: ""; position: absolute; inset: 0; opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* typography inside plugin output */
body.gsx .gsx-content, body.gsx .gsx-content [class*="gsm-"],
body .gph-page [class*="gsm-"] { font-family: var(--ds-body); }
body.gsx .gsx-content h1, body.gsx .gsx-content h2 { font-family: var(--ds-display) !important; text-transform: none; letter-spacing: -.02em; line-height: 1; font-weight: 600; }
body.gsx .gsx-content h3, body.gsx .gsx-content h4 { font-family: var(--ds-body); letter-spacing: 0; }
body.gsx .gsx-content p { line-height: 1.6; }
body.gsx .gsx-content a { transition: color .4s var(--ds-e), opacity .4s var(--ds-e); }
/* fonts hard-coded in inline styles → the platform fonts */
body.gsx [style*="Syne"], body.gsx [style*="Bebas"], body.gsx [style*='Geist'] { font-family: var(--ds-display) !important; }
body.gsx [style*='Geist Mono'], body.gsx [style*="DM Sans"], body.gsx [style*="monospace"], body.gsx [style*="Arial"] { font-family: var(--ds-body) !important; }
body.gsx [style*='Geist Mono'] { font-variant-numeric: tabular-nums; }
body.gsx .gsx-content code, body.gsx .gsx-content kbd { font-family: ui-monospace, "Cascadia Code", monospace !important; }

/* ── 3. Shell ──────────────────────────────────────────────────── */
/* site pages: platform header/footer parts reuse the home page styles */
.gph.gph--part { min-height: 0; background: transparent; position: relative; z-index: 3; }
.gph.gph--part::before, .gph.gph--part::after { display: none; }
.gph-nav a.is-current { color: var(--gph-ink); background: rgba(255,255,255,.07); }
.gsx-site { position: relative; z-index: 2; min-height: 70vh; padding: 132px 0 96px; }
.gsx-site__inner { width: min(1200px, 100% - 48px); margin-inline: auto; }
body.admin-bar .gsx-site { padding-top: 164px; }
/* plugin wrappers that painted their own full-bleed black background */
body.gsx .gsx-content > [class*="-wrap"], body.gsx .gsm-coaches-dir-wrap, body.gsx .gsm-ch-home, body.gsx .gsm-cel-wrap,
body.gsx .gsm-dir-wrap, body.gsx .gsm-dir-layout, body.gsx .gsm-dir-grid, body.gsx .gsm-pricing-wrap, body.gsx .gsm-login-wrap { background: transparent !important; min-height: 0 !important; }

/* app pages */
.gsx-app { position: relative; z-index: 2; display: grid; grid-template-columns: 272px minmax(0, 1fr); min-height: 100dvh; }
.gsx-side {
  position: sticky; top: 0; height: 100dvh; display: flex; flex-direction: column; gap: 6px;
  padding: 18px 14px; overflow-y: auto; scrollbar-width: none;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)), rgba(10,10,14,.86);
  border-right: 1px solid var(--ds-line);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
body.admin-bar .gsx-side { top: 32px; height: calc(100dvh - 32px); }
.gsx-side::-webkit-scrollbar { display: none; }
.gsx-side__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 6px 12px; }
.gsx-brand { display: inline-flex; align-items: center; gap: 11px; color: var(--ds-ink); text-decoration: none; }
.gsx-brand__mark {
  display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 12px; flex: none;
  font-family: var(--ds-display); font-weight: 800; font-size: 20px; color: var(--ds-accent-ink, #12160A);
  background: linear-gradient(145deg, var(--ds-accent-2), var(--ds-accent) 55%, color-mix(in srgb, var(--ds-accent) 60%, #000));
  box-shadow: inset 0 1px 1px rgba(255,255,255,.35), 0 10px 24px -12px color-mix(in srgb, var(--ds-accent) 15%, transparent);
}
.gsx-brand__txt { display: grid; line-height: 1.1; }
.gsx-brand__txt b { font-family: var(--ds-display); font-size: 21px; font-weight: 600; text-transform: none; letter-spacing: -.02em; }
.gsx-brand__txt small { font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--ds-mute); }
.gsx-gym { display: flex; align-items: center; gap: 10px; margin: 0 2px 6px; padding: 10px 12px; border-radius: 14px; background: var(--ds-glass); border: 1px solid var(--ds-line); }
.gsx-gym__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ds-ok); box-shadow: 0 0 0 4px rgba(52,211,153,.15); flex: none; }
.gsx-gym__txt { display: grid; min-width: 0; line-height: 1.25; }
.gsx-gym__txt small { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-mute); }
.gsx-gym__txt b { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gsx-nav { display: grid; gap: 14px; padding: 6px 0; flex: 1; }
.gsx-nav__group { display: grid; gap: 2px; }
.gsx-nav__label { padding: 4px 12px 6px; font-size: 10.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--ds-mute); }
.gsx-nav__item {
  position: relative; display: flex; align-items: center; gap: 11px; min-height: 40px; padding: 6px 10px; border-radius: 12px;
  color: var(--ds-ink2); text-decoration: none; font-size: 14.5px; font-weight: 500;
  transition: background-color .4s var(--ds-e), color .4s var(--ds-e);
}
.gsx-nav__item:hover { color: var(--ds-ink); background: rgba(255,255,255,.05); }
.gsx-nav__ico { display: inline-flex; width: 28px; height: 28px; padding: 6px; border-radius: 9px; background: rgba(255,255,255,.04); flex: none; }
.gsx-nav__ico svg { width: 100%; height: 100%; display: block; }
.gsx-nav__item.is-current { color: var(--ds-accent-ink, #12160A); background: color-mix(in srgb, var(--ds-accent) 14%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ds-accent) 8%, transparent); }
.gsx-nav__item.is-current .gsx-nav__ico { background: var(--ds-accent); color: var(--ds-accent-ink, #12160A); }
.gsx-user { display: flex; align-items: center; gap: 10px; margin-top: 6px; padding: 10px; border-radius: 16px; background: var(--ds-glass); border: 1px solid var(--ds-line); }
.gsx-user__av { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: none; font-weight: 700; background: rgba(255,255,255,.08); }
.gsx-user__txt { display: grid; flex: 1; min-width: 0; line-height: 1.25; }
.gsx-user__txt b { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gsx-user__txt small { font-size: 12px; color: var(--ds-mute); }
.gsx-iconbtn {
  display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 9px; flex: none;
  border-radius: 50%; border: 1px solid var(--ds-line); background: rgba(255,255,255,.03); color: var(--ds-ink2); cursor: pointer;
  transition: background-color .4s var(--ds-e), color .4s var(--ds-e), border-color .4s var(--ds-e);
}
.gsx-iconbtn:hover { color: #fff; background: rgba(255,255,255,.08); border-color: var(--ds-line2); }
.gsx-iconbtn svg { width: 100%; height: 100%; display: block; }
.gsx-side__close, .gsx-top__menu { display: none; }

.gsx-main { min-width: 0; display: flex; flex-direction: column; }
.gsx-top {
  position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 16px; padding: 18px 36px;
  background: rgba(7,7,10,.72); border-bottom: 1px solid var(--ds-line);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
}
body.admin-bar .gsx-top { top: 32px; }
.gsx-top__title { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; }
.gsx-top__title h1 { margin: 0; font-family: var(--ds-body); font-weight: 600; font-size: 15px; line-height: 1.2; color: var(--ds-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gsx-top__title .gsx-crumb::after { content: "/"; content: "/" / ""; margin-left: 8px; color: rgba(255,255,255,.22); }
.gsx-crumb { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--ds-mute); text-decoration: none; }
.gsx-crumb svg { width: 14px; height: 14px; }
.gsx-crumb:hover { color: var(--ds-ink); }
.gsx-top__actions { display: flex; gap: 10px; }
.gsx-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--ds-line2); background: rgba(255,255,255,.03); color: var(--ds-ink); font-size: 14px; font-weight: 600; text-decoration: none; transition: background-color .4s var(--ds-e); }
.gsx-pill:hover { background: rgba(255,255,255,.08); }
.gsx-pill svg { width: 16px; height: 16px; }
.gsx-page { padding: 32px 36px 72px; }
.gsx-page > :first-child { margin-top: 0 !important; }
/* plugin wrappers centre themselves with max-width; in the workspace they may use the room */
.gsx-page > [class*="-wrap"] { margin-inline: auto; }
.gsx-scrim { position: fixed; inset: 0; z-index: 40; background: rgba(0,0,0,.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.gsx-scrim[hidden] { display: none; }

/* bare app pages (dashboards with their own sidebar) */
.gsx-bare { position: relative; z-index: 2; min-height: 100dvh; }

/* ── 4. Components ─────────────────────────────────────────────── */
/* Buttons */
html body .gsm-btn, html body .gsm-mb-btn, html body .gsm-lp-btn, html body .gsm-dir-join-btn, html body .gsm-contact-btn,
html body .gsm-pricing-cta-primary, html body .gsm-pricing-cta, html body .gsm-login-btn, html body .gsm-reg-btn, html body .gsm-submit,
html body .gsx-content button[type="submit"], html body .gsx-content input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 22px !important; border-radius: 999px !important;
  font-family: var(--ds-body) !important; font-size: 15px !important; font-weight: 600 !important; letter-spacing: .01em;
  line-height: 1.1; text-decoration: none; cursor: pointer;
  transition: transform .5s var(--ds-e), background-color .5s var(--ds-e), box-shadow .5s var(--ds-e), border-color .5s var(--ds-e), color .5s var(--ds-e) !important;
}
html body .gsm-btn:active, html body .gsm-mb-btn:active, html body .gsx-content button[type="submit"]:active { transform: scale(.98); }
html body .gsm-btn-primary, html body .gsm-mb-btn-primary, html body .gsm-lp-btn-primary, html body .gsm-dir-join-btn,
html body .gsm-contact-btn, html body .gsm-pricing-cta-primary, html body .gsm-login-btn, html body .gsm-reg-btn,
html body .gsx-content button[type="submit"]:not([class*="ghost"]):not([class*="secondary"]):not([class*="outline"]), html body .gsx-content input[type="submit"] {
  background: var(--ds-accent) !important; color: var(--ds-accent-ink, #12160A) !important; border: 1px solid transparent !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 14px 30px -16px color-mix(in srgb, var(--ds-accent) 21%, transparent) !important;
}
html body .gsm-btn-primary:hover, html body .gsm-mb-btn-primary:hover, html body .gsm-lp-btn-primary:hover, html body .gsm-dir-join-btn:hover,
html body .gsm-contact-btn:hover, html body .gsm-pricing-cta-primary:hover, html body .gsm-login-btn:hover, html body .gsm-reg-btn:hover,
html body .gsx-content button[type="submit"]:not([class*="ghost"]):not([class*="secondary"]):not([class*="outline"]):hover {
  background: color-mix(in srgb, var(--ds-accent) 88%, #fff) !important; transform: translateY(-1px) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 18px 38px -16px color-mix(in srgb, var(--ds-accent) 24%, transparent) !important;
}
html body .gsm-btn:not(.gsm-btn-primary):not(.gsm-btn-danger):not(.gsm-btn-success),
html body .gsm-btn-secondary, html body .gsm-btn-ghost, html body .gsm-btn-outline, html body .gsm-lp-btn-outline {
  background: rgba(255,255,255,.04) !important; color: var(--ds-ink) !important; border: 1px solid var(--ds-line2) !important; box-shadow: none !important;
}
html body .gsm-btn:not(.gsm-btn-primary):not(.gsm-btn-danger):not(.gsm-btn-success):hover,
html body .gsm-btn-secondary:hover, html body .gsm-btn-ghost:hover, html body .gsm-btn-outline:hover { background: rgba(255,255,255,.09) !important; border-color: rgba(255,255,255,.24) !important; }
html body .gsm-btn-danger { background: rgba(251,113,133,.12) !important; color: #DDF59A !important; border: 1px solid rgba(251,113,133,.35) !important; }
html body .gsm-btn-success { background: rgba(52,211,153,.12) !important; color: #6ee7b7 !important; border: 1px solid rgba(52,211,153,.35) !important; }
/* screen-specific buttons named by role */
html body .gsx-content :is([class*="-add-btn"], [class*="-submit-btn"], [class*="-save-btn"], [class*="-primary-btn"], [class*="-btn-primary"], [class*="-cta-btn"]):not(.gsm-btn):not(.gsm-mb-btn):not([class*="cx-"]) {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 22px !important; border-radius: 999px !important;
  font-family: var(--ds-body) !important; font-size: 15px !important; font-weight: 600 !important; letter-spacing: .01em !important; text-transform: none !important; cursor: pointer;
  background: var(--ds-accent) !important; color: var(--ds-accent-ink, #12160A) !important; border: 1px solid transparent !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 14px 30px -16px color-mix(in srgb, var(--ds-accent) 21%, transparent) !important;
  transition: transform .5s var(--ds-e), background-color .5s var(--ds-e) !important;
}
html body .gsx-content :is([class*="-add-btn"], [class*="-submit-btn"], [class*="-save-btn"], [class*="-primary-btn"], [class*="-btn-primary"], [class*="-cta-btn"]):not(.gsm-btn):not(.gsm-mb-btn):not([class*="cx-"]):hover { background: color-mix(in srgb, var(--ds-accent) 88%, #fff) !important; transform: translateY(-1px); }
html body .gsx-content :is([class*="-cancel-btn"], [class*="-btn-ghost"], [class*="-btn-secondary"], [class*="-btn-outline"], [class*="-secondary-btn"], [class*="-ghost-btn"]):not(.gsm-btn):not(.gsm-mb-btn) {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 22px !important; border-radius: 999px !important;
  font-family: var(--ds-body) !important; font-size: 15px !important; font-weight: 600 !important; text-transform: none !important; cursor: pointer;
  background: rgba(255,255,255,.04) !important; color: var(--ds-ink) !important; border: 1px solid var(--ds-line2) !important; box-shadow: none !important;
}
html body .gsx-content :is([class*="-cancel-btn"], [class*="-btn-ghost"], [class*="-btn-secondary"], [class*="-btn-outline"], [class*="-secondary-btn"], [class*="-ghost-btn"]):not(.gsm-btn):not(.gsm-mb-btn):hover { background: rgba(255,255,255,.09) !important; }
html body .gsm-btn-sm { min-height: 36px; padding: 0 16px !important; font-size: 13.5px !important; }
html body .gsm-btn-lg { min-height: 52px; padding: 0 28px !important; font-size: 16px !important; }

/* Form fields */
html body .gsx-content input:not([type]), html body .gsx-content input[type="text"], html body .gsx-content input[type="email"], html body .gsx-content input[type="tel"],
html body .gsx-content input[type="password"], html body .gsx-content input[type="number"], html body .gsx-content input[type="search"],
html body .gsx-content input[type="url"], html body .gsx-content input[type="date"], html body .gsx-content input[type="time"],
html body .gsx-content input[type="datetime-local"], html body .gsx-content select, html body .gsx-content textarea,
html body .gsm-input, html body .gsm-select, html body .gsm-textarea {
  min-height: 48px; padding: 12px 16px !important; border-radius: 14px !important;
  background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink) !important;
  font-family: var(--ds-body) !important; font-size: 15px !important; line-height: 1.4; box-shadow: none !important; outline: none;
  transition: border-color .4s var(--ds-e), background-color .4s var(--ds-e), box-shadow .4s var(--ds-e) !important;
}
html body .gsx-content textarea, html body .gsm-textarea { min-height: 110px; }
/* fields drawn with a leading icon / trailing button keep room for them */
html body .gsx-content :is([class*="-icon"], [class*="-ico"]) + input, html body .gsx-content svg + input { padding-left: 44px !important; }
html body .gsx-content input:has(+ :is(button, [class*="-eye"], [class*="-toggle"])) { padding-right: 48px !important; }
html body .gsx-content [class*="input-wrap"]:has(> [class*="-icon"] + input) { position: relative; }
html body .gsx-content input::placeholder, html body .gsx-content textarea::placeholder { color: rgba(244,244,247,.36) !important; }
html body .gsx-content input:hover, html body .gsx-content select:hover, html body .gsx-content textarea:hover { border-color: rgba(255,255,255,.22) !important; }
html body .gsx-content input:focus, html body .gsx-content select:focus, html body .gsx-content textarea:focus,
html body .gsm-input:focus, html body .gsm-select:focus, html body .gsm-textarea:focus {
  background: rgba(255,255,255,.055) !important; border-color: color-mix(in srgb, var(--ds-accent) 70%, transparent) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ds-accent) 4%, transparent) !important;
}
html body .gsx-content select { -webkit-appearance: none; appearance: none; padding-right: 44px !important; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 16px center !important; background-size: 16px !important; }
html body .gsx-content select option { background: #141416; color: var(--ds-ink); }
/* search bars built as wrapper + input: the wrapper is the field */
html body .gsx-content [class*="search-wrap"], html body .gsx-content [class*="search-bar"], html body .gsx-content [class*="search-box"] {
  display: flex; align-items: center; gap: 4px; padding-left: 14px !important; border-radius: 14px !important;
  background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line2) !important; box-shadow: none !important;
  transition: border-color .4s var(--ds-e), box-shadow .4s var(--ds-e);
}
/* a wrapper that holds its own search bar: only the bar is the field */
html body .gsx-content [class*="search-wrap"]:has([class*="search-bar"], [class*="search-box"]) {
  display: block; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important;
}
html body .gsx-content [class*="search-wrap"] > :is([class*="search-bar"], [class*="search-box"]) { width: 100%; max-width: none; }
html body .gsx-content [class*="search-wrap"]:focus-within, html body .gsx-content [class*="search-bar"]:focus-within, html body .gsx-content [class*="search-box"]:focus-within {
  border-color: color-mix(in srgb, var(--ds-accent) 70%, transparent) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--ds-accent) 4%, transparent) !important;
}
html body .gsx-content [class*="search-wrap"]:has([class*="search-bar"], [class*="search-box"]):focus-within { box-shadow: none !important; }
html body .gsx-content [class*="search-wrap"] input, html body .gsx-content [class*="search-bar"] input, html body .gsx-content [class*="search-box"] input {
  border: 0 !important; background: transparent !important; box-shadow: none !important; padding-left: 6px !important; flex: 1; min-width: 0;
}
html body .gsx-content [class*="search-wrap"] svg, html body .gsx-content [class*="search-bar"] svg { position: static !important; transform: none !important; padding: 0 !important; box-sizing: content-box !important; width: 18px !important; height: 18px !important; color: var(--ds-ink2) !important; opacity: .7; flex: none; }
/* checkboxes & radios */
html body .gsx-content input[type="checkbox"], html body .gsx-content input[type="radio"] {
  -webkit-appearance: none; appearance: none; flex: none; width: 20px !important; height: 20px !important; min-height: 0 !important; margin: 0; padding: 0 !important;
  border: 1.5px solid rgba(255,255,255,.28) !important; background: rgba(255,255,255,.04) !important; border-radius: 6px !important; cursor: pointer;
  display: inline-grid; place-content: center; transition: background-color .3s var(--ds-e), border-color .3s var(--ds-e);
}
html body .gsx-content input[type="radio"] { border-radius: 50% !important; }
html body .gsx-content input[type="checkbox"]::before { content: ""; width: 10px; height: 10px; transform: scale(0); transition: transform .3s var(--ds-e);
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); background: #fff; }
html body .gsx-content input[type="radio"]::before { content: ""; width: 8px; height: 8px; border-radius: 50%; transform: scale(0); transition: transform .3s var(--ds-e); background: #fff; }
html body .gsx-content input[type="checkbox"]:checked, html body .gsx-content input[type="radio"]:checked { background: var(--ds-accent) !important; border-color: var(--ds-accent) !important; }
html body .gsx-content input[type="checkbox"]:checked::before, html body .gsx-content input[type="radio"]:checked::before { transform: scale(1); }
/* screens that draw their own box/switch keep the native input hidden */
html body .gsx-content input:is([type="checkbox"], [type="radio"]):is(:has(+ [class*="-box"]), :has(+ [class*="-check"]), :has(+ [class*="slider"]), :has(+ [class*="knob"]), :has(+ [class*="switch"]), :has(+ [class*="toggle"])),
html body .gsx-content [class*="toggle-switch"] > input, html body .gsx-content [class*="-switch"] > input[type="checkbox"] {
  position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important; pointer-events: none; margin: 0 !important;
}
html body .gsx-content input[type="checkbox"]:focus-visible, html body .gsx-content input[type="radio"]:focus-visible { box-shadow: 0 0 0 4px color-mix(in srgb, var(--ds-accent) 6%, transparent) !important; }
html body .gsx-content label { color: var(--ds-ink2); font-weight: 500; }
/* field labels (a label that names a text field) share one quiet style */
html body .gsx-content label:is([for], :has(+ input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])), :has(+ select), :has(+ textarea)):not(:has(input[type="checkbox"], input[type="radio"])):not([class*="btn"]):not([class*="toggle"]):not([class*="file"]):not([class*="upload"]):not(.gsm-sr-only) {
  font-family: var(--ds-body) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: .12em !important;
  text-transform: uppercase !important; color: var(--ds-mute) !important; line-height: 1.3 !important;
}

/* Cards / panels */
html body .gsx-content .gsm-card, html body .gsx-content .gsm-stat-card, html body .gsx-content .gsm-kpi,
html body .gsx-content .gsm-panel, html body .gsx-content .gsm-section-card, html body .gsx-content .gsm-box,
html body .gsx-content [class$="-card"]:not([class*="mini"]):not(img), html body .gsx-content [class*="-card "]:not(img) {
  border-radius: var(--ds-r) !important; border-color: var(--ds-line) !important;
  background-image: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012)) !important;
  background-color: var(--ds-surface) !important;
  box-shadow: var(--ds-shadow) !important;
}
html body .gsx-content a[class$="-card"]:hover, html body .gsx-content a[class*="-card "]:hover { border-color: var(--ds-line2) !important; transform: translateY(-2px); }

/* Tables */
html body .gsx-content table { width: 100%; border-collapse: separate !important; border-spacing: 0; border: 1px solid var(--ds-line); border-radius: var(--ds-r); overflow: hidden; background: rgba(255,255,255,.02); }
html body .gsx-content table th { padding: 13px 16px !important; background: rgba(255,255,255,.035) !important; color: var(--ds-mute) !important; font-family: var(--ds-body) !important; font-size: 11.5px !important; font-weight: 600 !important; letter-spacing: .14em; text-transform: uppercase; text-align: left; border-bottom: 1px solid var(--ds-line) !important; }
html body .gsx-content table td { padding: 14px 16px !important; border-bottom: 1px solid rgba(255,255,255,.05) !important; color: var(--ds-ink2); font-size: 14.5px; }
html body .gsx-content table tr:last-child td { border-bottom: 0 !important; }
html body .gsx-content table tbody tr { transition: background-color .3s var(--ds-e); }
html body .gsx-content table tbody tr:hover td { background: rgba(255,255,255,.025); }

/* Badges / status pills */
html body .gsx-content [class*="-badge"]:not([class*="-badge-wrap"]), html body .gsx-content [class*="gsm-pill"], html body .gsx-content [class*="-status-pill"], html body .gsx-content .gsm-tag {
  border-radius: 999px !important; font-family: var(--ds-body) !important; font-weight: 600 !important; letter-spacing: .02em;
}

/* Notices */
html body .gsx-content [class*="gsm-notice"], html body .gsx-content [class*="gsm-alert"] { border-radius: var(--ds-r) !important; border: 1px solid var(--ds-line2) !important; background-color: rgba(255,255,255,.035) !important; }

/* Modals */
html body [class*="gsm-modal"] > [class*="-box"], html body [class*="gsm-modal"] > [class*="-content"], html body .gsm-modal-inner, html body .gsm-modal-dialog {
  border-radius: var(--ds-r-lg) !important; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)), #101016 !important;
  border: 1px solid var(--ds-line2) !important; box-shadow: 0 40px 120px -30px rgba(0,0,0,.95) !important;
}

/* Eyebrows / section labels used across screens */
html body .gsx-content .gsm-section-title-label, html body .gsx-content [class*="-eyebrow"], html body .gsx-content [class*="-section-label"] {
  font-family: var(--ds-body) !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: .18em !important; text-transform: uppercase; color: var(--ds-mute) !important;
}

/* ── 5. Owner dashboard (own sidebar) ──────────────────────────── */
body.gsx--bare .gsm-saas-layout, body.gsx--bare .gsm-saas-layout .gsm-main { background: transparent !important; }
/* A later rule turned the fixed sidebar into a flow item while the content kept
   its fixed-sidebar margin → the offset was applied twice (empty strip). */
@media (min-width: 769px) {
  body.gsx .gsm-saas-layout { align-items: flex-start; }
  body.gsx .gsm-sidebar { position: sticky !important; top: 0; height: 100dvh; align-self: flex-start; }
  body.gsx.admin-bar .gsm-sidebar { top: 32px; height: calc(100dvh - 32px); }
  body.gsx .gsm-main { margin-left: 0 !important; flex: 1 1 auto; min-width: 0; }
}
body.gsx.admin-bar .gsm-topbar { top: 32px !important; }
@media (max-width: 782px) { body.gsx.admin-bar .gsm-topbar { top: 46px !important; } }
body.gsx .gsm-sidebar, body.gsx .gsm-sidebar-nav { scrollbar-width: none; }
body.gsx .gsm-sidebar::-webkit-scrollbar, body.gsx .gsm-sidebar-nav::-webkit-scrollbar { display: none; }
body.gsx .gsm-sidebar {
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)), rgba(10,10,14,.9) !important;
  border-right: 1px solid var(--ds-line) !important; -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
body.gsx .gsm-sidebar-brand { background: none !important; border-bottom-color: var(--ds-line) !important; padding: 20px 18px 16px !important; }
body.gsx .gsm-sidebar-brand::after { display: none !important; }
body.gsx .gsm-sidebar-logo-wrap { width: 36px !important; height: 36px !important; border-radius: 12px !important; background: linear-gradient(145deg, var(--ds-accent-2), var(--ds-accent) 55%, color-mix(in srgb, var(--ds-accent) 60%, #000)) !important; }
body.gsx .gsm-sidebar-name { font-family: var(--ds-display) !important; font-size: 21px !important; text-transform: none; letter-spacing: -.02em !important; }
body.gsx .gsm-sidebar-tagline, body.gsx .gsm-sidebar-section-label, body.gsx .gsm-nav-section-label { font-family: var(--ds-body) !important; font-size: 10.5px !important; letter-spacing: .18em !important; color: var(--ds-mute) !important; }
body.gsx .gsm-nav-item { min-height: 40px; border-radius: 12px !important; font-size: 14.5px !important; color: var(--ds-ink2) !important; }
body.gsx .gsm-nav-item:hover { background: rgba(255,255,255,.05) !important; border-color: transparent !important; color: var(--ds-ink) !important; }
body.gsx .gsm-nav-active, body.gsx .gsm-nav-item.active { background: color-mix(in srgb, var(--ds-accent) 14%, transparent) !important; border-color: color-mix(in srgb, var(--ds-accent) 30%, transparent) !important; color: var(--ds-accent-ink, #12160A) !important; }
body.gsx .gsm-nav-active::before, body.gsx .gsm-nav-item.active::before { display: none !important; }
body.gsx .gsm-nav-icon-box { border-radius: 9px !important; }
body.gsx .gsm-nav-active .gsm-nav-icon-box, body.gsx .gsm-nav-item.active .gsm-nav-icon-box { background: var(--ds-accent) !important; color: var(--ds-accent-ink, #12160A) !important; box-shadow: none !important; }
body.gsx .gsm-nav-active .gsm-nav-icon-box svg, body.gsx .gsm-nav-item.active .gsm-nav-icon-box svg { color: #fff !important; stroke: #fff !important; }
body.gsx .gsm-topbar { background: rgba(7,7,10,.72) !important; border-bottom: 1px solid var(--ds-line) !important; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
body.gsx .gsm-topbar-title { font-family: var(--ds-display) !important; font-size: 28px !important; font-weight: 600 !important; text-transform: none; letter-spacing: -.02em !important; }
body.gsx .gsm-topbar-icon-btn, body.gsx .gsm-menu-toggle { border-radius: 50% !important; }
body.gsx .gsm-sidebar-footer .gsm-sidebar-user { border-radius: 16px !important; background: var(--ds-glass) !important; border: 1px solid var(--ds-line) !important; }
body.gsx .gsm-stat-card, body.gsx [class*="gsm-kpi"] { border-radius: var(--ds-r) !important; }
body.gsx .gsm-stat-value, body.gsx [class*="gsm-kpi-value"], body.gsx [class*="-stat-num"], body.gsx [class*="-stat-value"] { font-family: var(--ds-display) !important; font-weight: 700 !important; letter-spacing: 0 !important; font-variant-numeric: tabular-nums; }

/* ── 6. Page families ──────────────────────────────────────────── */
/* login / register / reset: centred glass card */
body.gsx .gsm-login-card, body.gsx .gsm-reg-card, body.gsx .gsm-reset-card, body.gsx .gsm-reg-wrap > div:first-child {
  border-radius: var(--ds-r-lg) !important;
}
/* register: wider card, account type tiles, consent box */
body.gsx .gsm-reg-wrap { max-width: 640px !important; margin: 0 auto !important; }
body.gsx .gsm-reg-card { max-width: none !important; padding: 36px 40px !important; border: 1px solid var(--ds-line) !important; background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.012)), var(--ds-surface) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 40px 100px -40px rgba(0,0,0,.9) !important; }
body.gsx .gsm-reg-header, body.gsx .gsm-reset-header, html body #gsm-login .gsm-login-header { background: none !important; border: 0 !important; box-shadow: none !important; }
body.gsx .gsm-reg-header, body.gsx .gsm-reset-header { padding: 0 0 8px !important; }
html body #gsm-login .gsm-login-header::after, html body #gsm-login .gsm-login-header::before { display: none !important; }
body.gsx .gsm-reg-header h2, body.gsx .gsm-reg-header h1, body.gsx .gsm-reset-header h2 { font-family: var(--ds-display) !important; font-size: 40px !important; font-weight: 600 !important; text-transform: none; line-height: .95; letter-spacing: -.02em; }
body.gsx .gsm-reg-member-banner { border-radius: 18px !important; background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line2) !important; }
body.gsx .gsm-reg-member-banner a[style*="background"] { display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px !important; border-radius: 999px !important; background: rgba(255,255,255,.06) !important; border: 1px solid var(--ds-line2); color: var(--ds-ink) !important; font-size: 13px !important; font-weight: 600 !important; }
body.gsx .gsm-reg-type-toggle { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px !important; }
body.gsx .gsm-reg-type-opt { position: relative; display: flex !important; align-items: center; gap: 14px; padding: 18px !important; border-radius: 18px !important; border: 1px solid var(--ds-line2) !important; background: rgba(255,255,255,.03) !important; cursor: pointer; transition: border-color .4s var(--ds-e), background-color .4s var(--ds-e) !important; }
body.gsx .gsm-reg-type-opt input[type="radio"] { position: absolute !important; opacity: 0 !important; pointer-events: none; }
body.gsx .gsm-reg-type-opt:has(input:focus-visible) { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
body.gsx .gsm-reg-type-opt.active { border-color: color-mix(in srgb, var(--ds-accent) 60%, transparent) !important; background: color-mix(in srgb, var(--ds-accent) 10%, transparent) !important; }
body.gsx .gsm-reg-type-icon { flex: none; display: grid !important; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: rgba(255,255,255,.05); color: var(--ds-ink2); font-size: 22px; }
body.gsx .gsm-reg-type-icon svg { width: 22px !important; height: 22px !important; }
body.gsx .gsm-reg-type-opt.active .gsm-reg-type-icon { background: var(--ds-accent); color: var(--ds-accent-ink, #12160A); }
body.gsx .gsm-reg-type-text { display: grid; gap: 3px; min-width: 0; }
body.gsx .gsm-reg-type-text strong { font-size: 15.5px !important; font-weight: 600 !important; color: var(--ds-ink) !important; }
body.gsx .gsm-reg-type-text small { font-size: 12.5px !important; line-height: 1.4; color: var(--ds-mute) !important; }
body.gsx .gsm-reg-privacy-label { display: flex !important; align-items: flex-start; gap: 12px; cursor: pointer; font-size: 13.5px; color: var(--ds-ink2); }
body.gsx .gsm-reg-privacy-box { flex: none; width: 20px !important; height: 20px !important; margin-top: 1px; border-radius: 6px !important; border: 1.5px solid rgba(255,255,255,.3) !important; background: rgba(255,255,255,.04) !important; transition: background-color .3s var(--ds-e); }
body.gsx .gsm-reg-privacy-label input:checked + .gsm-reg-privacy-box {
  background: var(--ds-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat !important; border-color: var(--ds-accent) !important;
}
body.gsx .gsm-reg-privacy-label input:focus-visible + .gsm-reg-privacy-box { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
body.gsx .gsm-reg-privacy-link { padding: 0 !important; min-height: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; color: var(--ds-accent-2) !important; font: inherit !important; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
@media (max-width: 560px) {
  body.gsx .gsm-reg-card { padding: 26px 20px !important; }
  body.gsx .gsm-reg-type-toggle { grid-template-columns: 1fr; }
}

/* ── Login "Flow": liquid orb, glowing glass card, wipe-in rows, melting button ── */
html body .gsm-login-wrap { position: relative; isolation: isolate; overflow: visible !important; max-width: 520px !important; margin: 0 auto !important; padding: 140px 0 40px !important; background: none !important; }
html body .gsm-login-wrap::before { /* light bloom behind the card */
  content: ""; position: absolute; z-index: -1; left: 50%; top: 40%; width: 760px; height: 760px; transform: translate(-50%, -50%); pointer-events: none;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--ds-accent) 26%, transparent), color-mix(in srgb, var(--ds-accent) 8%, transparent) 55%, transparent 75%);
  filter: blur(10px); animation: gsmFlowBreathe 7s ease-in-out infinite;
}
html body #gsm-login .gsm-login-card {
  position: relative; overflow: visible !important; padding: 34px 40px 36px !important; border-radius: 30px !important;
  border: 1px solid color-mix(in srgb, var(--ds-accent) 30%, rgba(255,255,255,.1)) !important;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--ds-accent) 9%, transparent), transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.012)),
    rgba(14,14,20,.78) !important;
  -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 0 1px rgba(0,0,0,.3), 0 0 70px -12px color-mix(in srgb, var(--ds-accent) 11%, transparent), 0 60px 120px -50px rgba(0,0,0,.95) !important;
  animation: gsmFlowRise .9s var(--ds-e) both !important;
}
html body #gsm-login .gsm-login-header { padding: 0 0 6px !important; text-align: center; }
/* the orb rises out of the card */
html body .gsm-login-logo.gsm-flow-orb {
  width: 140px !important; height: 140px !important; margin: -168px auto 18px !important; padding: 0 !important; display: block !important;
  background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; overflow: visible;
  filter: drop-shadow(0 18px 36px color-mix(in srgb, var(--ds-accent) 14%, transparent)) drop-shadow(0 0 22px color-mix(in srgb, var(--ds-accent) 9%, transparent));
}
html body .gsm-flow-orb svg { width: 100%; height: 100%; overflow: visible; display: block; }
html body .gsm-flow-s0 { stop-color: #fff; stop-opacity: .95; }
html body .gsm-flow-s1 { stop-color: var(--ds-accent-2); }
html body .gsm-flow-s2 { stop-color: color-mix(in srgb, var(--ds-accent) 70%, #000); }
html body .gsm-flow-core { fill: color-mix(in srgb, var(--ds-accent) 55%, #000); opacity: .55; mix-blend-mode: multiply; }
html body .gsm-flow-shine { fill: #fff; opacity: .75; }
html body .gsm-flow-dot { fill: #fff; opacity: .9; animation: gsmFlowTwinkle 3.4s ease-in-out infinite; }
html body #gsm-login .gsm-login-header h2 {
  margin: 4px 0 6px !important; font-family: var(--ds-display) !important; font-size: 46px !important; font-weight: 600 !important; letter-spacing: -.02em !important; line-height: 1 !important; text-transform: none; ; -webkit-text-fill-color: var(--ds-accent, #C5F04A); color: var(--ds-ink, #F5F5F6) !important;
}
html body .gsm-login-header p { font-size: 15px !important; color: var(--ds-mute) !important; }
html body .gsm-login-body { padding: 18px 0 0 !important; }
/* rows wipe in one after another */
html body .gsm-login-header > *, html body .gsm-login-form > :not(input[type="hidden"]) { animation: gsmFlowWipe .8s var(--ds-e) both; }
html body .gsm-login-header > :nth-child(1) { animation-delay: .1s; }
html body .gsm-login-header > :nth-child(2) { animation-delay: .18s; }
html body .gsm-login-header > :nth-child(3) { animation-delay: .24s; }
html body .gsm-login-form > :nth-child(2) { animation-delay: .32s; }
html body .gsm-login-form > :nth-child(3) { animation-delay: .4s; }
html body .gsm-login-form > :nth-child(4) { animation-delay: .48s; }
html body .gsm-login-form > :nth-child(5) { animation-delay: .56s; }
html body .gsm-login-form > :nth-child(6) { animation-delay: .64s; }
html body #gsm-login .gsm-lf-input { min-height: 54px !important; border-radius: 16px !important; background: rgba(255,255,255,.04) !important; }
html body #gsm-login .gsm-lf-input:focus { background: rgba(255,255,255,.065) !important; }
html body #gsm-login .gsm-lf-forgot { color: var(--ds-accent-2) !important; letter-spacing: .04em !important; text-transform: none !important; font-size: 13px !important; font-weight: 600 !important; }
html body .gsm-login-wrap label[for="gsm_pwd"] { display: flex !important; justify-content: space-between; align-items: center; }
/* the liquid button */
html body .gsm-lf-submit-wrap { position: relative; margin-top: 8px; }
html body .gsm-lf-submit-wrap::after { /* light pool reflected on the card */
  content: ""; position: absolute; left: 12%; right: 12%; top: 70%; height: 46px; pointer-events: none; z-index: 0;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--ds-accent) 45%, transparent), transparent); filter: blur(12px); opacity: .8;
}
html body #gsm-login .gsm-lf-submit {
  position: relative; z-index: 2; width: 100%; min-height: 58px; padding: 0 26px !important; border: 0 !important; border-radius: 999px !important; overflow: hidden;
  display: flex !important; align-items: center; justify-content: center; gap: 10px; cursor: pointer;
  font-family: var(--ds-body) !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: .01em; color: var(--ds-accent-ink, #12160A) !important;
  background: linear-gradient(180deg, var(--ds-accent-2), var(--ds-accent) 55%, color-mix(in srgb, var(--ds-accent) 78%, #000)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -10px 20px -10px rgba(0,0,0,.35), 0 18px 40px -16px color-mix(in srgb, var(--ds-accent) 15%, transparent) !important;
  transition: transform .5s var(--ds-e), box-shadow .5s var(--ds-e), filter .5s var(--ds-e) !important;
}
html body #gsm-login .gsm-lf-submit::before { /* travelling sheen */
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.28) 50%, transparent 65%); transform: translateX(-120%);
}
html body #gsm-login .gsm-lf-submit:hover:not(:disabled) { transform: translateY(-1px); filter: brightness(1.06); }
html body #gsm-login .gsm-lf-submit:hover:not(:disabled)::before { transform: translateX(120%); transition: transform 1.1s var(--ds-e); }
html body #gsm-login .gsm-lf-submit:active:not(:disabled) { transform: scale(.985); }
html body #gsm-login .gsm-lf-submit:disabled { opacity: 1 !important; cursor: progress; }
html body #gsm-login .gsm-lf-arrow { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.18); font-size: 15px; transition: transform .5s var(--ds-e); }
html body #gsm-login .gsm-lf-submit:hover .gsm-lf-arrow { transform: translateX(3px); }
html body .gsm-lf-done { position: absolute; inset: 0; display: grid; place-items: center; opacity: 0; transform: scale(.4); transition: opacity .35s var(--ds-e), transform .6s var(--ds-e); }
html body .gsm-lf-drips { position: absolute; z-index: 1; left: 9%; right: 9%; top: 46px; height: 140px; pointer-events: none; filter: url(#gsm-flow-goo); opacity: 0; transition: opacity .3s; }
html body .gsm-lf-drips b { position: absolute; left: 0; right: 0; top: 0; height: 16px; border-radius: 999px; background: color-mix(in srgb, var(--ds-accent) 82%, #000); }
html body .gsm-lf-drips i { position: absolute; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: color-mix(in srgb, var(--ds-accent) 82%, #000); }
html body .gsm-lf-drips i:nth-of-type(1) { left: 16%; }
html body .gsm-lf-drips i:nth-of-type(2) { left: 41%; width: 20px; height: 20px; }
html body .gsm-lf-drips i:nth-of-type(3) { left: 63%; }
html body .gsm-lf-drips i:nth-of-type(4) { left: 84%; width: 12px; height: 12px; }
/* melting: label blurs away, liquid drips off the bottom edge */
html body #gsm-login.is-melting .gsm-lf-drips { opacity: 1; }
html body #gsm-login.is-melting .gsm-lf-drips i { animation: gsmFlowDrip 1.5s cubic-bezier(.5, 0, .75, .4) infinite; }
html body #gsm-login.is-melting .gsm-lf-drips i:nth-of-type(2) { animation-delay: .35s; animation-duration: 1.8s; }
html body #gsm-login.is-melting .gsm-lf-drips i:nth-of-type(3) { animation-delay: .7s; }
html body #gsm-login.is-melting .gsm-lf-drips i:nth-of-type(4) { animation-delay: .15s; animation-duration: 1.3s; }
html body #gsm-login.is-melting .gsm-lf-submit { animation: gsmFlowWobble 1.2s ease-in-out infinite; }
html body #gsm-login.is-melting .gsm-lf-arrow { transform: translateY(6px); opacity: .3; }
/* done: the button settles and shows a check */
html body #gsm-login.is-done .gsm-lf-submit > :not(.gsm-lf-done) { opacity: 0; filter: blur(6px); transition: opacity .3s, filter .3s; }
html body #gsm-login.is-done .gsm-lf-done { opacity: 1; transform: scale(1); }
html body #gsm-login.is-done .gsm-lf-drips { opacity: 0; }
html body #gsm-login.is-done .gsm-lf-submit { box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 0 0 6px color-mix(in srgb, var(--ds-accent) 6%, transparent), 0 18px 40px -16px color-mix(in srgb, var(--ds-accent) 15%, transparent) !important; }
html body #gsm-login.is-shake .gsm-login-card { animation: gsmFlowShake .5s cubic-bezier(.36, .07, .19, .97) both !important; }
html body .gsm-login-error { border-radius: 16px !important; }
@keyframes gsmFlowRise { from { opacity: 0; transform: translateY(28px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes gsmFlowWipe { from { clip-path: inset(-10% 100% -10% -10%); transform: translateY(14px); opacity: .2; } to { clip-path: inset(-60% -60% -60% -60%); transform: none; opacity: 1; } }
@keyframes gsmFlowBreathe { 0%, 100% { opacity: .75; transform: translate(-50%, -50%) scale(.96); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.04); } }
@keyframes gsmFlowTwinkle { 0%, 100% { opacity: .9; } 50% { opacity: .35; } }
@keyframes gsmFlowDrip { 0% { transform: translateY(0) scale(1, 1); } 45% { transform: translateY(18px) scale(.85, 1.5); } 85% { opacity: 1; } 100% { transform: translateY(104px) scale(.6, .8); opacity: 0; } }
@keyframes gsmFlowWobble { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.012, .97); } }
@keyframes gsmFlowShake { 10%, 90% { transform: translateX(-2px); } 20%, 80% { transform: translateX(4px); } 30%, 50%, 70% { transform: translateX(-7px); } 40%, 60% { transform: translateX(7px); } }
@media (max-width: 560px) {
  html body .gsm-login-wrap { padding-top: 120px !important; }
  html body #gsm-login .gsm-login-card { padding: 28px 22px 30px !important; border-radius: 26px !important; }
  html body .gsm-login-logo.gsm-flow-orb { width: 118px !important; height: 118px !important; margin-top: -146px !important; }
  html body #gsm-login .gsm-login-header h2 { font-size: 38px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html body .gsm-login-wrap *, html body .gsm-login-wrap::before { animation: none !important; }
}

/* community: its own app, retuned to the platform palette and type */
html body .gsm-community-wrap {
  --gsm-c-void: var(--ds-bg); --gsm-c-carbon: var(--ds-bg2); --gsm-c-surface: var(--ds-surface); --gsm-c-elevated: var(--ds-surface2);
  --gsm-c-bd: var(--ds-line); --gsm-c-bd-hover: var(--ds-line2); --gsm-c-snow: var(--ds-ink);
  --gsm-c-accent: var(--ds-accent); --gsm-c-accent-2: var(--ds-accent-2); --gsm-c-accent-glow: color-mix(in srgb, var(--ds-accent) 18%, transparent);
  --gsm-font-sans: var(--ds-body);
  --gsm-shadow-glow: 0 0 0 1px var(--ds-line), 0 8px 32px color-mix(in srgb, var(--ds-accent) 12%, transparent);
  background: transparent !important;
}
html body .gsm-community-wrap ~ *, html body [class*="gsm-comm"] { --gsm-c-accent: var(--ds-accent); --gsm-c-accent-2: var(--ds-accent-2); --gsm-c-accent-glow: color-mix(in srgb, var(--ds-accent) 18%, transparent); }
body.gsx--bare .gsm-comm-topbar { background: rgba(7,7,10,.82) !important; }

/* public gym profile */
body.gsx .gsm-profile-wrap { max-width: 1040px !important; margin: 0 auto !important; display: grid; gap: 16px; background: none !important; border: 0 !important; padding: 0 !important; }
body.gsx .gsm-profile-topbar {
  position: relative; display: flex !important; align-items: flex-end !important; min-height: 220px; padding: 34px 36px !important; margin: 0 !important;
  border-radius: var(--ds-r-lg) !important; border: 1px solid var(--ds-line) !important; overflow: hidden;
}
body.gsx .gsm-profile-topbar:not([style*="background"]) {
  background: radial-gradient(80% 140% at 0% 0%, color-mix(in srgb, var(--ds-accent) 30%, transparent), transparent 60%), radial-gradient(60% 120% at 100% 100%, rgba(197,240,74,.12), transparent 60%), var(--ds-surface) !important;
}
body.gsx .gsm-profile-topbar[style*="background"]::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,7,10,.1), rgba(7,7,10,.85)); }
body.gsx .gsm-profile-topbar-left { position: relative; display: flex !important; align-items: center; gap: 22px; }
body.gsx .gsm-profile-topbar-logo {
  flex: none; width: 92px !important; height: 92px !important; border-radius: 26px !important; overflow: hidden; display: grid !important; place-items: center;
  font-family: var(--ds-display) !important; font-size: 42px !important; font-weight: 800 !important; color: var(--ds-accent-ink, #12160A) !important;
  background: linear-gradient(145deg, var(--ds-accent-2), var(--ds-accent) 60%) !important; box-shadow: 0 0 0 1px rgba(255,255,255,.18), 0 0 0 7px rgba(255,255,255,.04), 0 20px 40px -18px color-mix(in srgb, var(--ds-accent) 15%, transparent) !important;
}
body.gsx .gsm-profile-topbar-logo img { width: 100%; height: 100%; object-fit: cover; }
body.gsx .gsm-profile-topbar-name { margin: 0 !important; font-family: var(--ds-display) !important; font-size: clamp(36px, 5vw, 60px) !important; font-weight: 600 !important; line-height: .95 !important; text-transform: none; letter-spacing: -.02em; color: #fff !important; }
body.gsx .gsm-profile-infobar { display: flex !important; flex-wrap: wrap; gap: 8px; padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; }
body.gsx .gsm-profile-infobar > * { display: inline-flex !important; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px !important; border-radius: 999px; font-size: 13.5px !important; color: var(--ds-ink2) !important; background: rgba(255,255,255,.04); border: 1px solid var(--ds-line2); }
body.gsx .gsm-profile-section { margin: 0 !important; padding: 28px !important; border-radius: var(--ds-r-lg) !important; border: 1px solid var(--ds-line) !important; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012)), var(--ds-surface) !important; }
body.gsx .gsm-profile-section-title { margin: 0 0 18px !important; font-family: var(--ds-display) !important; font-size: 26px !important; font-weight: 700 !important; text-transform: none; letter-spacing: -.02em; color: var(--ds-ink) !important; }
body.gsx .gsm-plans-row { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important; gap: 12px !important; }
body.gsx .gsm-profile-topbar-logo * { font-size: inherit !important; color: inherit !important; }
body.gsx .gsm-plan-card { padding: 22px 16px !important; border-radius: 20px !important; border: 1px solid var(--ds-line) !important; background: rgba(255,255,255,.03) !important; transition: transform .5s var(--ds-e), border-color .5s var(--ds-e); }
body.gsx .gsm-plan-card:hover { transform: translateY(-2px); border-color: var(--ds-line2) !important; }
body.gsx .gsm-plan-pop { border-color: color-mix(in srgb, var(--ds-accent) 55%, transparent) !important; background: color-mix(in srgb, var(--ds-accent) 8%, transparent) !important; }
body.gsx .gsm-profile-cta-bar { display: flex !important; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin: 0 !important; padding: 22px 26px !important; border-radius: var(--ds-r-lg) !important; border: 1px solid color-mix(in srgb, var(--ds-accent) 30%, transparent) !important; background: color-mix(in srgb, var(--ds-accent) 8%, var(--ds-surface)) !important; }
body.gsx .gsm-profile-cta-bar p { margin: 0 !important; font-size: 16px; color: var(--ds-ink2); }
body.gsx .gsm-profile-cta-btn { border-radius: 999px !important; min-height: 48px; padding: 0 22px !important; font-weight: 600 !important; }
@media (max-width: 640px) {
  body.gsx .gsm-profile-topbar { min-height: 180px; padding: 24px 20px !important; }
  body.gsx .gsm-profile-topbar-left { flex-direction: column; align-items: flex-start; gap: 14px; }
  body.gsx .gsm-profile-topbar-logo { width: 72px !important; height: 72px !important; font-size: 32px !important; }
}

/* public page heroes: same rounded glass block as the rest of the platform */
body.gsx .gsx-site [class$="-hero"]:not(.gsm-dir-hero) { border-radius: var(--ds-r-lg) !important; overflow: hidden; border: 1px solid var(--ds-line) !important; }
body.gsx .gsx-site [class$="-hero"] h1, body.gsx .gsx-site [class$="-hero"] h2 { font-family: var(--ds-display) !important; text-transform: none; font-weight: 600 !important; letter-spacing: -.02em; }

/* directory */
body.gsx .gsm-dir-hero { background: transparent !important; border: 0 !important; }
body.gsx .gsm-dir-hero-title { font-family: var(--ds-display) !important; text-transform: none; font-weight: 600 !important; letter-spacing: -.02em !important; }
body.gsx .gsm-dir-search-bar { border-radius: 999px !important; background: rgba(255,255,255,.04) !important; }
body.gsx .gsm-dir-filter-btn { border-radius: 999px !important; }
body.gsx .gsm-dir-card { border-radius: var(--ds-r) !important; overflow: hidden; }
body.gsx .gsm-dir-filters { display: flex !important; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 28px 0 !important; }
body.gsx .gsm-dir-filter-label { font-size: 12px !important; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-mute) !important; margin-right: 4px; }
body.gsx .gsm-dir-filter-btn {
  display: inline-flex !important; align-items: center; min-height: 36px; padding: 0 16px !important; text-decoration: none !important;
  font-size: 14px !important; font-weight: 600 !important; color: var(--ds-ink2) !important; background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line2) !important;
}
body.gsx .gsm-dir-filter-btn:hover { color: var(--ds-ink) !important; background: rgba(255,255,255,.08) !important; }
body.gsx .gsm-dir-filter-active { background: var(--ds-accent) !important; border-color: transparent !important; color: var(--ds-accent-ink, #12160A) !important; }
body.gsx .gsm-dir-card-img { aspect-ratio: 16 / 10; overflow: hidden; background: radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--ds-accent) 30%, transparent), transparent 60%), #15151c !important; }
body.gsx .gsm-dir-card-placeholder { position: relative; display: grid !important; place-items: center; width: 100%; height: 100%; background: none !important; }
body.gsx .gsm-dir-card-placeholder svg { display: none !important; }
body.gsx .gsm-dir-card-placeholder-text { font-family: var(--ds-display) !important; font-size: 72px !important; font-weight: 800 !important; line-height: 1; color: rgba(255,255,255,.9) !important; }
body.gsx .gsm-dir-card-body { padding: 18px 20px 20px !important; }
body.gsx .gsm-dir-card-name { font-family: var(--ds-display) !important; font-size: 22px !important; font-weight: 700 !important; text-transform: none; letter-spacing: -.02em; }
body.gsx .gsm-dir-card-footer { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
body.gsx .gsm-dir-stat-item { display: inline-flex; align-items: center; gap: 6px; font-size: 13px !important; color: var(--ds-mute) !important; }
body.gsx .gsm-dir-stat-item svg { width: 14px; height: 14px; }

/* member form: identity header */
body.gsx .gsm-mb-form-identity {
  display: flex !important; flex-direction: row !important; align-items: center !important; gap: 22px !important;
  padding: 26px 28px !important; border-radius: var(--ds-r) var(--ds-r) 0 0 !important; border: 0 !important; border-bottom: 1px solid var(--ds-line) !important;
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--ds-accent) 16%, transparent), transparent 60%), rgba(255,255,255,.02) !important;
}
body.gsx .gsm-mb-form-avatar-wrap { position: relative; flex: none; padding-bottom: 10px; }
body.gsx .gsm-mb-form-avatar { width: 76px !important; height: 76px !important; border: 1px solid rgba(255,255,255,.18) !important; box-shadow: 0 0 0 6px rgba(255,255,255,.04), 0 18px 40px -18px color-mix(in srgb, var(--ds-accent) 22%, transparent); background: linear-gradient(145deg, var(--ds-accent-2), var(--ds-accent) 60%) !important; }
body.gsx .gsm-mb-form-avatar-init { font-family: var(--ds-display) !important; font-size: 30px !important; font-weight: 700 !important; }
body.gsx .gsm-mb-photo-upload-btn {
  position: absolute !important; left: 50% !important; right: auto !important; bottom: -2px !important; transform: translateX(-50%);
  padding: 4px 10px !important; border-radius: 999px !important; font-size: 11px !important; font-weight: 600 !important;
  background: #16161d !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink2) !important; white-space: nowrap;
}
body.gsx .gsm-mb-photo-upload-btn:hover { color: #fff !important; border-color: color-mix(in srgb, var(--ds-accent) 60%, transparent) !important; }
body.gsx .gsm-mb-form-identity-info { display: grid; gap: 4px; }
body.gsx .gsm-mb-form-identity-name { font-family: var(--ds-display) !important; font-size: 28px !important; font-weight: 700 !important; text-transform: none; letter-spacing: -.02em !important; color: var(--ds-ink) !important; line-height: 1; }
body.gsx .gsm-mb-form-identity-gym { font-size: 13px !important; color: var(--ds-mute) !important; }

/* shared page hero: every app screen opens with the same header card */
html body .gsx-content .gsm-members-topbar, html body .gsx-content .gsm-checkin-header, html body .gsx-content .gsm-ana-header,
html body .gsx-content .gsm-staff-header, html body .gsx-content .gsm-eg-page-header, html body .gsx-content .gsm-billing-header {
  display: flex !important; align-items: center !important; justify-content: space-between !important; flex-wrap: wrap; gap: 18px 24px !important;
  padding: 30px 32px !important; margin: 0 0 20px !important; border-radius: var(--ds-r-lg) !important;
  border: 1px solid var(--ds-line) !important; position: relative; overflow: hidden;
  background: radial-gradient(90% 170% at 0% 0%, color-mix(in srgb, var(--ds-accent) 16%, transparent), transparent 62%), linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012)), var(--ds-surface) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), var(--ds-shadow) !important;
}
html body .gsx-content .gsm-members-topbar::before, html body .gsx-content .gsm-checkin-header::before, html body .gsx-content .gsm-ana-header::before,
html body .gsx-content .gsm-staff-header::before, html body .gsx-content .gsm-eg-page-header::before, html body .gsx-content .gsm-billing-header::before,
html body .gsx-content .gsm-members-topbar::after, html body .gsx-content .gsm-ana-header::after, html body .gsx-content .gsm-billing-header::after { display: none !important; }
html body .gsx-content .gsm-checkin-header *, html body .gsx-content .gsm-checkin-header { font-size: inherit !important; color: inherit !important; }
html body .gsx-content .gsm-members-heading, html body .gsx-content .gsm-checkin-title, html body .gsx-content .gsm-ana-title,
html body .gsx-content .gsm-staff-title, html body .gsx-content .gsm-eg-page-title, html body .gsx-content .gsm-billing-title {
  display: flex; align-items: center; gap: 12px; margin: 0 0 8px !important; padding: 0 !important;
  font-family: var(--ds-display) !important; font-size: clamp(30px, 3vw, 42px) !important; font-weight: 600 !important;
  text-transform: none; letter-spacing: -.02em !important; line-height: .95 !important; color: var(--ds-ink) !important; background: none !important; border: 0 !important;
}
html body .gsx-content .gsm-members-heading svg, html body .gsx-content .gsm-ana-title svg, html body .gsx-content .gsm-staff-title svg,
html body .gsx-content .gsm-members-heading .gsm-icon, html body .gsx-content .gsm-ana-title .gsm-icon, html body .gsx-content .gsm-staff-title .gsm-icon { display: none !important; }
html body .gsx-content .gsm-members-gym-name, html body .gsx-content .gsm-checkin-gym, html body .gsx-content .gsm-ana-gym,
html body .gsx-content .gsm-staff-gym, html body .gsx-content .gsm-billing-gym {
  margin: 0 !important; font-family: var(--ds-body) !important; font-size: 14.5px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--ds-mute) !important;
}
html body .gsx-content .gsm-checkin-gym span { color: var(--ds-ink2) !important; }
html body .gsx-content .gsm-eg-page-header { flex-direction: column; align-items: flex-start !important; gap: 14px !important; }
html body .gsx-content .gsm-eg-page-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
html body .gsx-content .gsm-eg-page-title { margin: 0 !important; }
html body .gsx-content .gsm-eg-back-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px !important; color: var(--ds-mute) !important; text-decoration: none; }
html body .gsx-content .gsm-eg-back-link:hover { color: var(--ds-ink) !important; }
html body .gsx-content .gsm-eg-gym-name-badge, html body .gsx-content .gsm-ana-date {
  display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px !important; border-radius: 999px !important;
  font-size: 13px !important; font-weight: 600 !important; color: var(--ds-ink2) !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important;
}
html body .gsx-content .gsm-checkin-count-badge {
  display: grid !important; justify-items: center; gap: 2px; min-width: 132px; padding: 14px 22px !important; border-radius: 20px !important;
  background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line2) !important;
}
html body .gsx-content .gsm-checkin-count-badge > span { font-family: var(--ds-display) !important; font-size: 44px !important; font-weight: 700 !important; line-height: 1; color: var(--ds-ink) !important; font-variant-numeric: tabular-nums; }
html body .gsx-content .gsm-checkin-count-badge small { font-size: 11px !important; letter-spacing: .16em; text-transform: uppercase; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-checkin-count-badge::before { display: none !important; }
html body .gsx-content .gsm-checkin-search-section { padding: 0 !important; margin-bottom: 18px !important; background: none !important; border: 0 !important; box-shadow: none !important; position: relative; }
html body .gsx-content .gsm-checkin-search-wrap { min-height: 62px; padding-left: 20px !important; border-radius: 18px !important; }
html body .gsx-content .gsm-checkin-search-input { font-size: 17px !important; min-height: 60px !important; }
html body .gsx-content .gsm-checkin-dropdown { margin-top: 8px; border-radius: 18px !important; border: 1px solid var(--ds-line2) !important; background: #121219 !important; box-shadow: 0 30px 80px -30px rgba(0,0,0,.9) !important; overflow: hidden; }
html body .gsx-content .gsm-checkin-log-section, html body .gsx-content .gsm-checkin-result {
  border-radius: var(--ds-r-lg) !important; border: 1px solid var(--ds-line) !important; overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)), var(--ds-surface) !important;
}
html body .gsx-content .gsm-checkin-log-header { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px !important; border-bottom: 1px solid var(--ds-line) !important; background: none !important; }
html body .gsx-content .gsm-checkin-log-header h3 { margin: 0 !important; font-family: var(--ds-body) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: .18em; text-transform: uppercase; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-checkin-refresh-btn {
  min-height: 38px; padding: 0 16px !important; border-radius: 999px !important; font-family: var(--ds-body) !important; font-size: 13.5px !important; font-weight: 600 !important;
  background: rgba(255,255,255,.04) !important; color: var(--ds-ink) !important; border: 1px solid var(--ds-line2) !important; box-shadow: none !important; cursor: pointer;
  transition: background-color .4s var(--ds-e), border-color .4s var(--ds-e);
}
html body .gsx-content .gsm-checkin-refresh-btn:hover { background: rgba(255,255,255,.09) !important; }
html body .gsx-content .gsm-checkin-log-empty { padding: 56px 24px !important; text-align: center; color: var(--ds-mute) !important; font-size: 14.5px !important; }
html body .gsx-content .gsm-checkin-log-item { display: flex; align-items: center; gap: 14px; padding: 14px 22px !important; border-bottom: 1px solid rgba(255,255,255,.05) !important; background: none !important; }
html body .gsx-content .gsm-ci-avatar { width: 40px !important; height: 40px !important; border-radius: 50% !important; }
html body .gsx-content .gsm-ci-time { margin-left: auto; font-size: 13px; color: var(--ds-mute) !important; font-variant-numeric: tabular-nums; }

/* Listing plans [gym_listing_pricing]: same language as the home page plans */
body.gsx .gsm-lp-header { text-align: center; margin-bottom: 40px !important; }
body.gsx .gsm-lp-eyebrow { display: inline-flex !important; align-items: center; gap: 8px; padding: 6px 14px !important; border-radius: 999px; border: 1px solid var(--ds-line2); background: rgba(255,255,255,.035); font-family: var(--ds-body) !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: .2em !important; color: var(--ds-ink2) !important; }
body.gsx .gsm-lp-eyebrow::before, body.gsx .gsm-lp-eyebrow::after { display: none !important; }
body.gsx .gsm-lp-title { font-family: var(--ds-display) !important; font-size: clamp(40px, 5vw, 68px) !important; font-weight: 600 !important; text-transform: none; line-height: .95 !important; letter-spacing: -.02em !important; }
body.gsx .gsm-lp-title span, body.gsx .gsm-lp-title em { color: var(--ds-accent-2) !important; font-style: normal; }
body.gsx .gsm-lp-sub { font-size: 17px !important; color: var(--ds-mute) !important; }
body.gsx .gsm-lp-grid { gap: 16px !important; align-items: stretch; }
body.gsx .gsm-lp-card {
  position: relative; display: flex !important; flex-direction: column; padding: 30px 26px 26px !important; border-radius: var(--ds-r-lg) !important; overflow: hidden;
  border: 1px solid var(--ds-line) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.06) !important;
  background: radial-gradient(120% 60% at 50% 0%, color-mix(in srgb, var(--plan-color, var(--ds-accent)) 10%, transparent), transparent 70%), linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012)), var(--ds-surface) !important;
  transition: transform .6s var(--ds-e), border-color .6s var(--ds-e) !important;
}
body.gsx .gsm-lp-card:hover { transform: translateY(-3px); border-color: var(--ds-line2) !important; }
body.gsx .gsm-lp-popular { border-color: color-mix(in srgb, var(--ds-accent) 55%, transparent) !important; background: radial-gradient(120% 60% at 50% 0%, color-mix(in srgb, var(--ds-accent) 20%, transparent), transparent 70%), linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)), var(--ds-surface) !important; }
body.gsx .gsm-lp-badge {
  position: absolute !important; top: 16px !important; right: 16px !important; left: auto !important; width: auto !important; margin: 0 !important;
  display: inline-flex !important; align-items: center; gap: 6px; padding: 5px 12px !important; border-radius: 999px !important;
  font-family: var(--ds-body) !important; font-size: 10.5px !important; font-weight: 700 !important; letter-spacing: .14em !important; text-transform: uppercase;
  background: rgba(255,255,255,.06) !important; color: var(--ds-ink) !important; border: 1px solid var(--ds-line2) !important;
}
body.gsx .gsm-lp-badge > span[aria-hidden] { display: none !important; }
body.gsx .gsm-lp-badge-popular { background: var(--ds-accent) !important; border-color: transparent !important; color: var(--ds-accent-ink, #12160A) !important; }
body.gsx .gsm-lp-badge-urgent { color: #fcd34d !important; border-color: rgba(251,191,36,.35) !important; background: rgba(251,191,36,.08) !important; }
body.gsx .gsm-lp-card-head { padding: 0 0 18px !important; margin: 0 0 18px !important; border-bottom: 1px solid var(--ds-line) !important; }
body.gsx .gsm-lp-card { padding-top: 58px !important; }
body.gsx .gsm-lp-feature { margin: 0 !important; padding: 0 !important; }
body.gsx .gsm-lp-features { align-content: start; }
body.gsx .gsm-lp-badge { left: 26px !important; right: auto !important; }
body.gsx .gsm-lp-plan-name { margin: 0 0 6px !important; font-family: var(--ds-display) !important; font-size: 28px !important; font-weight: 700 !important; text-transform: none; letter-spacing: -.02em; color: var(--ds-ink) !important; }
body.gsx .gsm-lp-plan-desc { font-size: 14px !important; color: var(--ds-mute) !important; }
body.gsx .gsm-lp-price-block { margin-bottom: 18px !important; }
body.gsx .gsm-lp-price-main { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
body.gsx .gsm-lp-price-currency { font-size: 13px !important; color: var(--ds-mute) !important; }
body.gsx .gsm-lp-price-amount { font-family: var(--ds-display) !important; font-size: clamp(30px, 2.4vw, 38px) !important; font-weight: 700 !important; line-height: 1 !important; letter-spacing: 0 !important; color: var(--ds-ink) !important; }
body.gsx .gsm-lp-price-period, body.gsx .gsm-lp-price-after { margin-top: 6px; font-size: 13.5px !important; color: var(--ds-mute) !important; }
body.gsx .gsm-lp-price-after strong { color: var(--ds-ink) !important; }
body.gsx .gsm-lp-free-tag { display: inline-flex !important; padding: 5px 12px !important; border-radius: 999px !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .06em; text-transform: uppercase; color: #6ee7b7 !important; background: rgba(52,211,153,.1) !important; border: 1px solid rgba(52,211,153,.3) !important; }
body.gsx .gsm-lp-limits { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px !important; }
body.gsx .gsm-lp-limit-pill { padding: 5px 10px !important; border-radius: 999px !important; font-family: var(--ds-body) !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: .06em !important; color: var(--ds-ink2) !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line) !important; }
body.gsx .gsm-lp-features { list-style: none; margin: 0 0 24px !important; padding: 0 !important; display: grid; gap: 10px; }
body.gsx .gsm-lp-feature { display: flex !important; align-items: flex-start; gap: 10px; font-size: 14px !important; line-height: 1.45; color: var(--ds-ink2) !important; }
body.gsx .gsm-lp-check { flex: none; display: grid !important; place-items: center; width: 20px; height: 20px; margin-top: 1px; border-radius: 50%; color: var(--ds-accent-ink, #12160A) !important; background: color-mix(in srgb, var(--ds-accent) 22%, transparent) !important; }
body.gsx .gsm-lp-check svg { width: 11px; height: 11px; }
body.gsx .gsm-lp-cta { margin-top: auto !important; }
body.gsx .gsm-lp-btn { width: 100%; min-height: 50px; }
body.gsx .gsm-lp-btn-outline, body.gsx a.gsm-lp-btn-outline { background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink) !important; }
body.gsx .gsm-lp-btn-outline:hover { background: rgba(255,255,255,.09) !important; }
body.gsx .gsm-lp-btn-primary, body.gsx a.gsm-lp-btn-primary { background: var(--ds-accent) !important; border-color: transparent !important; color: var(--ds-accent-ink, #12160A) !important; }
body.gsx .gsm-lp-sold-out, body.gsx .gsm-lp-no-url { padding: 14px 16px !important; border-radius: 16px !important; text-align: center; font-size: 13.5px !important; color: var(--ds-mute) !important; background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line) !important; }
body.gsx .gsm-lp-addons { margin-top: 72px !important; }
body.gsx .gsm-lp-addons-title { margin: 0 0 20px !important; font-family: var(--ds-display) !important; font-size: 32px !important; font-weight: 600 !important; text-transform: none; letter-spacing: -.02em; color: var(--ds-ink) !important; }
body.gsx .gsm-lp-addons-grid { gap: 14px !important; }
body.gsx .gsm-lp-addon-card { display: flex !important; align-items: center; gap: 16px; padding: 18px 22px !important; border-radius: var(--ds-r) !important; border: 1px solid var(--ds-line) !important; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012)), var(--ds-surface) !important; }
body.gsx .gsm-lp-addon-icon { flex: none; display: grid !important; place-items: center; width: 48px !important; height: 48px !important; border-radius: 14px !important; font-size: 22px !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; filter: grayscale(1) brightness(1.25); }
body.gsx .gsm-lp-addon-info { flex: 1; min-width: 0; }
body.gsx .gsm-lp-addon-name { font-size: 15.5px !important; font-weight: 600 !important; color: var(--ds-ink) !important; }
body.gsx .gsm-lp-addon-desc { font-size: 13px !important; color: var(--ds-mute) !important; }
body.gsx .gsm-lp-addon-price { text-align: right; display: grid; }
body.gsx .gsm-lp-addon-amount { font-family: var(--ds-display) !important; font-size: 26px !important; font-weight: 700 !important; color: var(--ds-ink) !important; }
body.gsx .gsm-lp-addon-amount small { font-family: var(--ds-body); font-size: 12px; color: var(--ds-mute); }
body.gsx .gsm-lp-addon-unit { font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--ds-mute) !important; }

/* Coach dashboard */
html body .gsx-content .gsm-coach-wrap {
  max-width: 1200px !important; margin: 0 auto !important; padding: 32px 36px 72px !important;
  display: grid !important; grid-template-columns: 248px minmax(0, 1fr) !important; gap: 20px 24px !important;
  grid-template-areas: "back back" "head head" "side main" !important; align-items: start;
}
html body .gsx-content .gsm-coach-nav-btns { grid-area: back; margin: 0 !important; }
html body .gsx-content .gsm-coach-header { grid-area: head; }
html body .gsx-content .gsm-coach-sidebar-nav { grid-area: side; }
html body .gsx-content .gsm-coach-panels { grid-area: main; min-width: 0; }
html body .gsx-content .gsm-coach-nav-btn {
  display: inline-flex !important; align-items: center; gap: 8px; min-height: 38px; padding: 0 16px !important; border-radius: 999px !important;
  font-size: 13.5px !important; font-weight: 600 !important; color: var(--ds-ink2) !important; background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line2) !important; text-decoration: none;
}
html body .gsx-content .gsm-coach-nav-btn::before { content: "←"; opacity: .7; }
html body .gsx-content .gsm-coach-header {
  display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "av name stats" "av gym stats";
  align-items: center; column-gap: 22px; row-gap: 4px; padding: 28px 30px !important; margin: 0 !important; text-align: left !important;
  border-radius: var(--ds-r-lg) !important; border: 1px solid var(--ds-line) !important; overflow: hidden;
  background: radial-gradient(90% 170% at 0% 0%, color-mix(in srgb, var(--ds-accent) 16%, transparent), transparent 62%), linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012)), var(--ds-surface) !important;
}
html body .gsx-content .gsm-coach-header::before, html body .gsx-content .gsm-coach-header::after { display: none !important; }
html body .gsx-content .gsm-coach-avatar { grid-area: av; margin: 0 !important; width: 84px !important; height: 84px !important; box-shadow: 0 0 0 1px rgba(255,255,255,.18), 0 0 0 7px rgba(255,255,255,.04) !important; border: 0 !important; }
html body .gsx-content .gsm-coach-name { grid-area: name; align-self: end; font-family: var(--ds-display) !important; font-size: clamp(30px, 3vw, 40px) !important; font-weight: 600 !important; text-transform: none; line-height: .95 !important; margin: 0 !important; color: var(--ds-ink) !important; letter-spacing: -.02em; }
html body .gsx-content .gsm-coach-gym { grid-area: gym; align-self: start; margin: 0 !important; font-size: 14.5px !important; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-coach-stats-row { grid-area: stats; display: grid !important; grid-template-columns: repeat(3, minmax(104px, auto)) !important; gap: 10px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
html body .gsx-content .gsm-coach-stat { padding: 14px 16px !important; border-radius: 16px !important; text-align: center; background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line) !important; }
html body .gsx-content .gsm-coach-stat > :first-child { font-family: var(--ds-display) !important; font-size: 30px !important; font-weight: 700 !important; line-height: 1; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-coach-stat > :last-child { margin-top: 6px; font-size: 10.5px !important; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-coach-sidebar-nav {
  position: sticky !important; top: 24px; flex-direction: column; gap: 4px !important; padding: 10px !important; border-radius: var(--ds-r-lg) !important;
  border: 1px solid var(--ds-line) !important; background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)), var(--ds-surface) !important;
}
body.admin-bar .gsx-content .gsm-coach-sidebar-nav { top: 56px; }
html body .gsx-content .gsm-coach-nav-item {
  display: flex !important; align-items: center; gap: 12px; width: 100%; min-height: 44px; padding: 0 14px !important; border-radius: 12px !important; cursor: pointer;
  font-family: var(--ds-body) !important; font-size: 15px !important; font-weight: 500 !important; color: var(--ds-ink2) !important; background: transparent !important; border: 1px solid transparent !important; box-shadow: none !important; text-align: left;
  transition: background-color .4s var(--ds-e), color .4s var(--ds-e) !important;
}
html body .gsx-content .gsm-coach-nav-item:hover { background: rgba(255,255,255,.05) !important; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-coach-nav-item.active { background: color-mix(in srgb, var(--ds-accent) 14%, transparent) !important; border-color: color-mix(in srgb, var(--ds-accent) 30%, transparent) !important; color: var(--ds-accent-ink, #12160A) !important; }
html body .gsx-content .gsm-coach-nav-item.active::before { display: none !important; }
html body .gsx-content .gsm-coach-nav-item.active .gsm-coach-nav-ico { color: var(--ds-accent-2) !important; }
html body .gsx-content .gsm-coach-panel > div, html body .gsx-content .gsm-coach-checkin-card { border-radius: var(--ds-r-lg) !important; }
@media (max-width: 900px) {
  html body .gsx-content .gsm-coach-wrap { grid-template-columns: minmax(0, 1fr) !important; grid-template-areas: "back" "head" "side" "main" !important; padding: 20px 16px 64px !important; }
  html body .gsx-content .gsm-coach-header { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "av name" "av gym" "stats stats"; row-gap: 16px; padding: 22px 20px !important; }
  html body .gsx-content .gsm-coach-stats-row { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  html body .gsx-content .gsm-coach-sidebar-nav { position: static !important; flex-direction: row !important; overflow-x: auto; scrollbar-width: none; }
  html body .gsx-content .gsm-coach-nav-item { width: auto; flex: none; }
}

/* Gym settings (modifier ma salle) */
body.gsx--app .gsx-content .gsm-eg-back-link { display: none !important; } /* the shell breadcrumb already links back */
html body .gsx-content .gsm-plan-input-group .gsm-input, html body .gsx-content .gsm-plan-row input[type="number"] { padding: 0 12px !important; min-width: 0; }
html body .gsx-content .gsm-plan-input-group input[type="number"] { width: 112px !important; }
html body .gsx-content .gsm-social-input-wrap {
  min-height: 48px; padding: 0 0 0 6px !important; gap: 4px; border-radius: 14px !important; overflow: hidden;
  background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line2) !important;
  transition: border-color .4s var(--ds-e), box-shadow .4s var(--ds-e);
}
html body .gsx-content .gsm-social-input-wrap:focus-within { border-color: color-mix(in srgb, var(--ds-accent) 70%, transparent) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--ds-accent) 4%, transparent) !important; }
html body .gsx-content .gsm-social-icon { width: 34px !important; height: 34px !important; border-radius: 10px !important; }
html body .gsx-content input.gsm-social-input { min-height: 46px !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
html body .gsx-content .gsm-eg-file-label {
  display: inline-flex !important; align-items: center; gap: 8px; min-height: 42px; padding: 0 18px !important; border-radius: 999px !important; cursor: pointer;
  font-family: var(--ds-body) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important;
  background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink) !important;
}
html body .gsx-content .gsm-eg-file-label:hover { background: rgba(255,255,255,.09) !important; }
/* rows printed after the form: align them with the form column */
@media (min-width: 1024px) {
  html body .gsx-content .gsm-edit-gym-wrap > .gsm-toggle-row, html body .gsx-content .gsm-edit-gym-wrap > div[style*="flex-wrap:wrap"] { max-width: calc(100% - 300px); }
}
html body .gsx-content .gsm-edit-gym-wrap > .gsm-toggle-row, html body .gsx-content .gsm-edit-gym-wrap > div[style*="flex-wrap:wrap"] {
  margin-top: 16px !important; padding: 20px 24px !important; border-radius: var(--ds-r-lg) !important; border: 1px solid var(--ds-line) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)), var(--ds-surface) !important;
}

/* Subscription / billing */
html body .gsx-content .gsm-billing-wrap { max-width: 1120px !important; }
html body .gsx-content .gsm-billing-header, html body .gsx-content .gsm-billing-header * { text-align: left !important; }
html body .gsx-content .gsm-billing-status-card, html body .gsx-content .gsm-plan-limits-bar, html body .gsx-content .gsm-billing-section, html body .gsx-content .gsm-billing-payment-card {
  margin: 0 0 18px !important; padding: 24px 26px !important; border-radius: var(--ds-r-lg) !important; border: 1px solid var(--ds-line) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012)), var(--ds-surface) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.06) !important;
}
html body .gsx-content .gsm-billing-status-card { display: flex !important; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
html body .gsx-content .gsm-bsc-left { display: flex; align-items: center; gap: 18px; }
html body .gsx-content .gsm-bsc-plan-badge { display: grid; place-items: center; min-width: 64px; height: 64px; padding: 0 14px !important; border-radius: 18px !important; background: linear-gradient(145deg, var(--ds-accent-2), var(--ds-accent) 60%) !important; font-family: var(--ds-display) !important; font-size: 22px !important; font-weight: 700 !important; text-transform: none; color: var(--ds-accent-ink, #12160A) !important; letter-spacing: -.02em; }
html body .gsx-content .gsm-bsc-info { display: grid; gap: 3px; }
html body .gsx-content .gsm-bsc-status { font-size: 13px !important; font-weight: 700 !important; letter-spacing: .08em; text-transform: uppercase; }
html body .gsx-content .gsm-bsc-expiry { font-size: 15px !important; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-bsc-desc { font-size: 13px !important; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-bsc-price-amount, html body .gsx-content .gsm-bpp-amount { font-family: var(--ds-display) !important; font-size: 44px !important; font-weight: 700 !important; line-height: 1; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-bsc-price-cur, html body .gsx-content .gsm-bpp-cur { font-size: 13px !important; color: var(--ds-mute) !important; margin-left: 4px; }
html body .gsx-content .gsm-plb-header { margin-bottom: 16px !important; }
html body .gsx-content .gsm-plb-title, html body .gsx-content .gsm-billing-section-title {
  display: flex !important; align-items: center; gap: 10px; margin: 0 0 18px !important; font-family: var(--ds-body) !important; font-size: 16px !important; font-weight: 600 !important;
  letter-spacing: 0 !important; text-transform: none !important; color: var(--ds-ink) !important;
}
html body .gsx-content .gsm-plb-title { margin: 0 !important; }
html body .gsx-content .gsm-plb-rows { display: grid; gap: 14px; }
html body .gsx-content .gsm-plb-row-meta { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 13.5px; color: var(--ds-ink2); }
html body .gsx-content .gsm-plb-row [class*="track"], html body .gsx-content .gsm-plb-row [class*="bar"]:not([class*="fill"]) { height: 8px !important; border-radius: 999px !important; background: rgba(255,255,255,.06) !important; overflow: hidden; }
html body .gsx-content .gsm-plb-row [class*="fill"] { border-radius: 999px !important; }
html body .gsx-content .gsm-billing-plans { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important; gap: 16px !important; align-items: stretch; }
html body .gsx-content .gsm-billing-plan-card {
  position: relative; display: flex !important; flex-direction: column; padding: 24px !important; border-radius: var(--ds-r-lg) !important;
  border: 1px solid var(--ds-line) !important; background: rgba(255,255,255,.025) !important; overflow: visible !important; box-shadow: none !important;
  transition: border-color .5s var(--ds-e), transform .5s var(--ds-e);
}
html body .gsx-content .gsm-billing-plan-card:hover { border-color: var(--ds-line2) !important; transform: translateY(-2px); }
html body .gsx-content .gsm-billing-plan-popular { border-color: color-mix(in srgb, var(--ds-accent) 55%, transparent) !important; background: radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--ds-accent) 14%, transparent), transparent 70%), rgba(255,255,255,.03) !important; }
html body .gsx-content .gsm-billing-plan-badge, html body .gsx-content .gsm-billing-plan-current-badge {
  position: static !important; display: inline-flex !important; align-self: flex-start; align-items: center; margin: 0 6px 10px 0 !important; padding: 5px 12px !important; border-radius: 999px !important;
  font-size: 11px !important; font-weight: 700 !important; letter-spacing: .12em !important; text-transform: uppercase; width: auto !important;
}
html body .gsx-content .gsm-billing-plan-badge { background: var(--ds-accent) !important; color: var(--ds-accent-ink, #12160A) !important; border: 0 !important; }
html body .gsx-content .gsm-billing-plan-current-badge { background: rgba(52,211,153,.1) !important; color: #6ee7b7 !important; border: 1px solid rgba(52,211,153,.3) !important; }
html body .gsx-content .gsm-billing-plan-header { display: grid !important; gap: 8px; padding: 6px 0 18px !important; margin: 0 0 18px !important; background: none !important; border-bottom: 1px solid var(--ds-line) !important; border-radius: 0 !important; text-align: left !important; }
html body .gsx-content .gsm-billing-plan-name { font-family: var(--ds-display) !important; font-size: 26px !important; font-weight: 700 !important; text-transform: none; letter-spacing: -.02em; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-billing-plan-price { display: flex; align-items: baseline; }
html body .gsx-content .gsm-billing-plan-body { display: flex; flex-direction: column; flex: 1; padding: 0 !important; text-align: left !important; }
html body .gsx-content .gsm-billing-plan-desc { margin: 0 0 16px !important; font-size: 14px !important; color: var(--ds-mute) !important; text-align: left !important; }
html body .gsx-content .gsm-billing-plan-feature { position: relative; padding: 7px 0 7px 28px !important; font-size: 14px !important; color: var(--ds-ink2) !important; }
html body .gsx-content .gsm-billing-plan-feature::before {
  content: "" !important; position: absolute; left: 0; top: 9px; width: 18px; height: 18px; border-radius: 50%;
  background: color-mix(in srgb, var(--ds-accent) 16%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / 10px no-repeat !important;
}
html body .gsx-content .gsm-billing-select-plan {
  display: flex !important; align-items: center; justify-content: center; text-align: center !important;
  margin-top: auto !important; align-self: stretch; min-height: 46px; border-radius: 999px !important; font-family: var(--ds-body) !important; font-size: 15px !important; font-weight: 600 !important; cursor: pointer;
  background: rgba(255,255,255,.04) !important; color: var(--ds-ink) !important; border: 1px solid var(--ds-line2) !important; transition: background-color .4s var(--ds-e) !important;
}
html body .gsx-content .gsm-billing-plan-body .gsm-billing-select-plan { margin-top: 22px !important; }
html body .gsx-content .gsm-billing-plan-popular .gsm-billing-select-plan, html body .gsx-content .gsm-billing-select-plan.active, html body .gsx-content .gsm-billing-select-plan.selected { background: var(--ds-accent) !important; color: var(--ds-accent-ink, #12160A) !important; border-color: transparent !important; }
html body .gsx-content .gsm-billing-select-plan:hover { background: rgba(255,255,255,.09) !important; }
html body .gsx-content .gsm-billing-plan-popular .gsm-billing-select-plan:hover { background: color-mix(in srgb, var(--ds-accent) 88%, #fff) !important; }

/* "Mon abonnement" on listing plans */
body.gsx .gsm-lp-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important; gap: 16px !important; }
body.gsx .gsm-billing-listing .gsm-billing-section { padding: 26px !important; }
body.gsx .gsm-billing-listing .gsm-lp-card { padding-top: 54px !important; }
body.gsx .gsm-lp-current { border-color: rgba(52,211,153,.45) !important; }
body.gsx .gsm-lp-badge-current { background: rgba(52,211,153,.12) !important; color: #6ee7b7 !important; border-color: rgba(52,211,153,.35) !important; }
body.gsx .gsm-lp-selected { border-color: var(--ds-accent) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--ds-accent) 5%, transparent), inset 0 1px 0 rgba(255,255,255,.06) !important; transform: translateY(-3px); }
body.gsx .gsm-lp-cta button.gsm-lp-btn { width: 100%; min-height: 50px; }
body.gsx .gsm-bsc-plan-badge { min-width: 64px; }
body.gsx .gsm-bsc-perks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
body.gsx .gsm-bsc-perk { padding: 4px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; color: var(--ds-ink2); background: rgba(255,255,255,.04); border: 1px solid var(--ds-line2); }
body.gsx .gsm-bsc-perk.is-on { color: #6ee7b7; background: rgba(52,211,153,.08); border-color: rgba(52,211,153,.3); }
body.gsx .gsm-bsc-days-warn { color: #fcd34d; margin-left: 4px; }
body.gsx :is(.gsm-billing-warning-banner, .gsm-billing-expired-banner, .gsm-billing-pending-notice) {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 18px !important; padding: 16px 20px !important; border-radius: 18px !important; font-size: 14.5px; line-height: 1.5;
  border: 1px solid rgba(251,191,36,.3) !important; background: rgba(251,191,36,.07) !important; color: #fde68a !important;
}
body.gsx .gsm-billing-expired-banner { border-color: rgba(251,113,133,.35) !important; background: rgba(251,113,133,.08) !important; color: #fecdd3 !important; }
body.gsx .gsm-billing-pending-notice { border-color: rgba(147,197,253,.3) !important; background: rgba(147,197,253,.07) !important; color: #dbeafe !important; }
body.gsx :is(.gsm-billing-warning-banner, .gsm-billing-expired-banner) a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
body.gsx .gsm-billing-payment-section { margin-top: 4px; }
body.gsx .gsm-billing-payment-card { display: grid; gap: 22px; }
body.gsx .gsm-payment-summary { padding: 18px 20px; border-radius: 18px; background: color-mix(in srgb, var(--ds-accent) 8%, transparent); border: 1px solid color-mix(in srgb, var(--ds-accent) 28%, transparent); }
body.gsx .gsm-pay-sum-plan { font-family: var(--ds-display); font-size: 22px; font-weight: 700; text-transform: none; color: var(--ds-ink); letter-spacing: -.02em; }
body.gsx .gsm-pay-sum-disc { margin-top: 4px; font-size: 13.5px; color: #6ee7b7; }
body.gsx .gsm-billing-label { display: block; margin-bottom: 10px; font-size: 12px !important; font-weight: 600 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--ds-mute) !important; }
body.gsx .gsm-payment-months { display: flex; flex-wrap: wrap; gap: 8px; }
body.gsx .gsm-months-btn {
  min-height: 42px; padding: 0 18px !important; border-radius: 999px !important; cursor: pointer; font-family: var(--ds-body) !important; font-size: 14px !important; font-weight: 600 !important;
  color: var(--ds-ink2) !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; transition: background-color .4s var(--ds-e), border-color .4s var(--ds-e) !important;
}
body.gsx .gsm-months-btn small { margin-left: 4px; padding: 2px 7px; border-radius: 999px; font-size: 11px; color: #6ee7b7; background: rgba(52,211,153,.1); }
body.gsx .gsm-months-btn:hover { background: rgba(255,255,255,.08) !important; color: #fff !important; }
body.gsx .gsm-months-active { background: color-mix(in srgb, var(--ds-accent) 16%, transparent) !important; border-color: color-mix(in srgb, var(--ds-accent) 55%, transparent) !important; color: var(--ds-accent-ink, #12160A) !important; }
body.gsx .gsm-payment-total-row { display: flex; align-items: baseline; justify-content: space-between; padding: 16px 0; border-top: 1px solid var(--ds-line); border-bottom: 1px solid var(--ds-line); font-size: 14px; color: var(--ds-mute); }
body.gsx .gsm-payment-total-row strong { font-family: var(--ds-display); font-size: 36px; font-weight: 700; color: var(--ds-ink); font-variant-numeric: tabular-nums; }
body.gsx .gsm-methods-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
body.gsx .gsm-method-card { position: relative; display: flex !important; align-items: center; gap: 14px; padding: 16px !important; border-radius: 16px !important; cursor: pointer; border: 1px solid var(--ds-line2) !important; background: rgba(255,255,255,.03) !important; transition: border-color .4s var(--ds-e), background-color .4s var(--ds-e); }
body.gsx .gsm-method-card input { position: absolute !important; opacity: 0 !important; pointer-events: none; }
body.gsx .gsm-method-card:has(input:focus-visible) { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
body.gsx .gsm-method-active { border-color: color-mix(in srgb, var(--ds-accent) 60%, transparent) !important; background: color-mix(in srgb, var(--ds-accent) 9%, transparent) !important; }
body.gsx .gsm-method-icon { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(255,255,255,.05); color: var(--ds-ink2); font-size: 0 !important; }
body.gsx .gsm-method-active .gsm-method-icon { background: var(--ds-accent); color: var(--ds-accent-ink, #12160A); }
body.gsx .gsm-method-info { display: grid; gap: 2px; }
body.gsx .gsm-method-info strong { font-size: 15px; font-weight: 600; color: var(--ds-ink); }
body.gsx .gsm-method-info small { font-size: 12.5px; color: var(--ds-mute); }
body.gsx .gsm-bank-info-card { padding: 18px 20px !important; border-radius: 16px !important; background: rgba(255,255,255,.03) !important; border: 1px solid var(--ds-line) !important; }
body.gsx .gsm-bank-info-title { margin-bottom: 10px; font-weight: 600; color: var(--ds-ink); }
body.gsx .gsm-bank-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid rgba(255,255,255,.05); font-size: 14px; color: var(--ds-mute); }
body.gsx .gsm-bank-row strong { color: var(--ds-ink); }
body.gsx .gsm-bank-hint { margin-top: 10px; font-size: 13px; color: var(--ds-mute); }
body.gsx .gsm-receipt-upload { margin-top: 16px; }
body.gsx .gsm-receipt-drop { position: relative; padding: 26px !important; border-radius: 16px !important; text-align: center; border: 1.5px dashed var(--ds-line2) !important; background: rgba(255,255,255,.02) !important; color: var(--ds-mute); }
body.gsx .gsm-receipt-drop.gsm-drop-hover { border-color: var(--ds-accent) !important; }
body.gsx .gsm-receipt-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
body.gsx .gsm-receipt-preview { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
body.gsx .gsm-receipt-preview[hidden] { display: none; }
body.gsx .gsm-receipt-preview img { max-height: 90px; border-radius: 12px; }
body.gsx .gsm-cash-info { padding: 16px 20px !important; border-radius: 16px !important; background: rgba(255,255,255,.03) !important; border: 1px solid var(--ds-line) !important; color: var(--ds-ink2); }
body.gsx .gsm-cash-info p { margin: 4px 0 0; font-size: 14px; color: var(--ds-mute); }
body.gsx .gsm-billing-submit-btn { min-height: 54px !important; font-size: 16px !important; }
body.gsx .gsm-payment-result { padding: 14px 18px; border-radius: 14px; font-size: 14.5px; }
body.gsx .gsm-pr-success { background: rgba(52,211,153,.1); border: 1px solid rgba(52,211,153,.3); color: #a7f3d0; }
body.gsx .gsm-pr-error { background: rgba(251,113,133,.1); border: 1px solid rgba(251,113,133,.3); color: #fecdd3; }
body.gsx .gsm-billing-invoices { display: grid; gap: 0; }
body.gsx .gsm-billing-invoice-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.05); font-size: 14px; color: var(--ds-ink2); }
body.gsx .gsm-billing-invoice-row:last-child { border-bottom: 0; }
body.gsx .gsm-inv-plan { flex: 1; min-width: 180px; color: var(--ds-ink); font-weight: 600; }
body.gsx .gsm-inv-amount { font-variant-numeric: tabular-nums; color: var(--ds-ink); }
body.gsx .gsm-inv-receipt-link { padding: 5px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 600; color: var(--ds-ink2); background: rgba(255,255,255,.04); border: 1px solid var(--ds-line2); text-decoration: none; }
body.gsx .gsm-inv-receipt-link:hover { color: #fff; }

/* Empty states: emoji glyphs become one quiet monochrome tile */
html body .gsx-content [class*="-empty-icon"], html body .gsx-content .gsm-empty-state-icon {
  display: grid !important; place-items: center; width: 72px !important; height: 72px !important; margin: 0 auto 18px !important;
  border-radius: 22px !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important;
  font-size: 30px !important; line-height: 1; filter: grayscale(1) brightness(1.2); opacity: .85;
}
html body .gsx-content .gsm-mb-empty, html body .gsx-content [class$="-empty"]:not(.gsm-ana-empty):not(.gsm-checkin-log-empty) { padding: 64px 24px !important; text-align: center; }
html body .gsx-content .gsm-mb-empty h3, html body .gsx-content [class$="-empty"] h3 { font-family: var(--ds-display) !important; font-size: 26px !important; font-weight: 700 !important; text-transform: none; letter-spacing: -.02em; margin: 0 0 8px !important; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-mb-empty p, html body .gsx-content [class$="-empty"] p { font-size: 15px !important; color: var(--ds-mute) !important; margin: 0 auto !important; max-width: 46ch; }

/* Analytics */
html body .gsx-content .gsm-ana-wrap { max-width: 1240px !important; }
html body .gsx-content .gsm-ana-kpis { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px !important; margin-bottom: 20px !important; }
@media (min-width: 1500px) { html body .gsx-content .gsm-ana-kpis { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; } }
html body .gsx-content .gsm-ana-kpi { padding: 22px !important; border-radius: var(--ds-r) !important; border: 1px solid var(--ds-line) !important; background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.012)), var(--ds-surface) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.06) !important; }
html body .gsx-content .gsm-ana-kpi-icon { width: 40px !important; height: 40px !important; border-radius: 12px !important; margin-bottom: 18px !important; border: 1px solid rgba(255,255,255,.06); }
html body .gsx-content .gsm-ana-kpi-body > :first-child { font-family: var(--ds-display) !important; font-size: 34px !important; font-weight: 700 !important; line-height: 1 !important; color: var(--ds-ink) !important; font-variant-numeric: tabular-nums; }
html body .gsx-content .gsm-ana-kpi-body > :nth-child(2) { margin-top: 8px !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: .16em !important; text-transform: uppercase; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-ana-kpi-body > :nth-child(3) { margin-top: 4px !important; font-size: 13px !important; color: var(--ds-ink2) !important; }
html body .gsx-content .gsm-ana-grid { grid-auto-flow: row dense; gap: 16px !important; align-items: start; }
html body .gsx-content .gsm-ana-card { margin: 0 !important; padding: 0 !important; overflow: hidden; border-radius: var(--ds-r-lg) !important; }
html body .gsx-content .gsm-ana-card-header { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; margin: 0 !important; padding: 20px 24px !important; border-bottom: 1px solid var(--ds-line) !important; }
html body .gsx-content .gsm-ana-card-header h3, html body .gsx-content .gsm-ana-card-title {
  display: flex !important; align-items: center; gap: 10px !important; margin: 0 !important;
  font-family: var(--ds-body) !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--ds-ink) !important;
}
html body .gsx-content .gsm-ana-card-header h3 svg { color: var(--ds-ink, #F5F5F6); flex: none; }
html body .gsx-content .gsm-ana-card-badge {
  display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px !important; border-radius: 999px !important;
  font-size: 11.5px !important; font-weight: 600 !important; letter-spacing: .04em !important; text-transform: none !important;
  background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink2) !important; white-space: nowrap;
}
html body .gsx-content .gsm-ana-badge-warn { color: #fcd34d !important; border-color: rgba(251,191,36,.3) !important; background: rgba(251,191,36,.08) !important; }
html body .gsx-content .gsm-ana-empty { padding: 48px 28px !important; text-align: center; font-size: 14.5px !important; line-height: 1.55; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-ana-chart-wrap { padding: 20px 24px 24px !important; }
html body .gsx-content .gsm-ana-donut-wrap { position: relative; width: 180px !important; height: 180px !important; margin: 26px auto 8px !important; display: block !important; }
html body .gsx-content .gsm-ana-donut-wrap canvas { width: 180px !important; height: 180px !important; }
html body .gsx-content .gsm-ana-donut-center { position: absolute !important; inset: 0 !important; width: auto !important; height: auto !important; transform: none !important; display: grid !important; place-content: center; text-align: center; }
html body .gsx-content .gsm-ana-donut-val { font-family: var(--ds-display) !important; font-size: 40px !important; font-weight: 700 !important; line-height: 1; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-ana-donut-lbl { font-size: 11px !important; letter-spacing: .16em; text-transform: uppercase; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-ana-legend { padding: 8px 24px 24px !important; }
html body .gsx-content .gsm-ana-leg-item { font-size: 13px !important; color: var(--ds-ink2) !important; }
html body .gsx-content .gsm-ana-heatmap-wrap { padding: 22px 24px 24px !important; overflow-x: auto; }
html body .gsx-content .gsm-ana-heatmap-hours, html body .gsx-content .gsm-ana-heatmap-row { display: grid !important; grid-template-columns: 44px repeat(17, minmax(22px, 1fr)) !important; gap: 5px !important; margin-bottom: 5px !important; min-width: 560px; }
html body .gsx-content .gsm-ana-hm-hour { font-size: 10.5px !important; color: var(--ds-mute) !important; text-align: center; width: auto !important; }
html body .gsx-content .gsm-ana-hm-day { font-size: 12px !important; color: var(--ds-ink2) !important; display: flex; align-items: center; width: auto !important; }
html body .gsx-content .gsm-ana-hm-cell { width: auto !important; height: 26px !important; border-radius: 6px !important; border: 1px solid rgba(255,255,255,.04) !important; opacity: 1 !important; }
html body .gsx-content .gsm-ana-hm-cell[data-v="0"] { background: rgba(255,255,255,.03) !important; }
html body .gsx-content .gsm-ana-hm-legend { display: flex; align-items: center; gap: 10px; margin-top: 14px !important; font-size: 12px; color: var(--ds-mute); }
html body .gsx-content .gsm-ana-hm-gradient { width: 120px; height: 8px; border-radius: 999px; }
html body .gsx-content .gsm-ana-health-list { display: grid; gap: 0 !important; padding: 8px 24px 12px !important; }
html body .gsx-content .gsm-ana-health-item { padding: 14px 0 !important; border-bottom: 1px solid rgba(255,255,255,.05); }
html body .gsx-content .gsm-ana-health-item:last-child { border-bottom: 0; }
html body .gsx-content .gsm-ana-health-label { display: block; font-size: 14.5px !important; font-weight: 500 !important; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-ana-health-desc { display: block; margin-top: 2px; font-size: 12.5px !important; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-ana-health-val { font-family: var(--ds-display) !important; font-size: 26px !important; font-weight: 700 !important; font-variant-numeric: tabular-nums; }
html body .gsx-content .gsm-ana-card [style*="border-bottom:1px solid var(--bd)"] { padding: 14px 24px !important; }
html body .gsx-content .gsm-ana-card [style*="font-size:13px;font-weight:700"] { font-size: 14.5px !important; font-weight: 600 !important; }
html body .gsx-content .gsm-ana-card .gsm-notif-manual-send:not(.gsm-ana-send-btn) {
  display: inline-flex !important; align-items: center; gap: 6px; min-height: 30px; padding: 0 12px !important; border-radius: 999px !important; font-size: 12px !important; font-weight: 600 !important;
  background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink2) !important;
}
html body .gsx-content .gsm-ana-expiring-list, html body .gsx-content .gsm-ana-ci-list { list-style: none; margin: 0 !important; padding: 8px 24px 12px !important; }
html body .gsx-content .gsm-ana-exp-item, html body .gsx-content .gsm-ana-ci-item { display: flex !important; align-items: center; gap: 14px !important; padding: 12px 0 !important; border-bottom: 1px solid rgba(255,255,255,.05) !important; background: none !important; }
html body .gsx-content .gsm-ana-exp-item:last-child, html body .gsx-content .gsm-ana-ci-item:last-child { border-bottom: 0 !important; }
html body .gsx-content .gsm-ana-exp-avatar { flex: none; width: 38px !important; height: 38px !important; border-radius: 50% !important; display: grid; place-items: center; font-family: var(--ds-display); font-weight: 700; font-size: 17px; color: var(--ds-accent-ink, #12160A); background: linear-gradient(145deg, var(--ds-accent-2), var(--ds-accent) 60%) !important; }
html body .gsx-content .gsm-ana-exp-info { display: grid !important; flex: 1; min-width: 0; gap: 2px; }
html body .gsx-content .gsm-ana-exp-info strong { font-size: 14.5px !important; font-weight: 600 !important; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-ana-exp-info small { font-size: 12.5px !important; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-ana-exp-days { min-width: 40px; padding: 4px 10px !important; border-radius: 999px !important; text-align: center; font-size: 12px !important; font-weight: 700 !important; }
html body .gsx-content .gsm-ana-send-btn { flex: none; width: 36px !important; height: 36px !important; padding: 0 !important; display: grid !important; place-items: center; border-radius: 50% !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink2) !important; cursor: pointer; }
html body .gsx-content .gsm-ana-send-btn:hover { color: #fff !important; border-color: color-mix(in srgb, var(--ds-accent) 60%, transparent) !important; }

/* POS (caisse): a framed workstation inside the app shell */
html body .gsx-content .gsm-pos-wrap {
  min-height: 0 !important; max-width: none !important; padding: 0 !important; margin: 0 !important;
  border-radius: var(--ds-r-lg) !important; border: 1px solid var(--ds-line) !important; overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.008)), var(--ds-surface) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), var(--ds-shadow) !important;
}
html body .gsx-content .gsm-pos-body { height: calc(100dvh - 250px) !important; min-height: 580px; grid-template-columns: minmax(0, 1fr) 400px !important; }
html body .gsx-content .gsm-pos-topbar { height: 68px !important; padding: 0 22px !important; background: rgba(255,255,255,.02) !important; border-bottom: 1px solid var(--ds-line) !important; }
html body .gsx-content .gsm-pos-brand-icon { width: 38px !important; height: 38px !important; border-radius: 12px !important; background: linear-gradient(145deg, var(--ds-accent-2), var(--ds-accent) 60%) !important; box-shadow: 0 10px 24px -12px color-mix(in srgb, var(--ds-accent) 15%, transparent); }
html body .gsx-content .gsm-pos-brand-name, html body .gsx-content .gsm-pos-cart-title, html body .gsx-content .gsm-pos-modal-title, html body .gsx-content .gsm-pos-member-fullname {
  font-family: var(--ds-display) !important; font-weight: 700 !important; text-transform: none; letter-spacing: -.02em !important;
}
html body .gsx-content .gsm-pos-brand-name { font-size: 24px !important; }
html body .gsx-content .gsm-pos-cart-title { font-size: 20px !important; }
html body .gsx-content .gsm-pos-gym-name { font-size: 13px !important; color: var(--ds-mute) !important; border-left-color: var(--ds-line2) !important; }
html body .gsx-content .gsm-pos-stat-chip, html body .gsx-content .gsm-pos-clock {
  min-height: 34px; padding: 0 14px !important; border-radius: 999px !important; font-size: 13px !important; font-family: var(--ds-body) !important;
  background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line) !important; color: var(--ds-mute) !important; font-variant-numeric: tabular-nums;
}
html body .gsx-content .gsm-pos-stat-chip strong, html body .gsx-content .gsm-pos-clock { font-family: var(--ds-body) !important; font-weight: 700 !important; color: var(--ds-ink) !important; }
html body .gsx-content .gsm-pos-icon-btn { width: 38px !important; height: 38px !important; border-radius: 50% !important; background: rgba(255,255,255,.035) !important; border: 1px solid var(--ds-line) !important; }
html body .gsx-content .gsm-pos-icon-btn:hover { background: rgba(255,255,255,.08) !important; }
html body .gsx-content .gsm-pos-left { border-right: 1px solid var(--ds-line) !important; }
html body .gsx-content .gsm-pos-right { background: rgba(0,0,0,.18) !important; }
html body .gsx-content .gsm-pos-search-zone { padding: 18px 22px 16px !important; border-bottom-color: var(--ds-line) !important; }
html body .gsx-content .gsm-pos-search-row { gap: 10px !important; }
html body .gsx-content .gsm-pos-search-btn, html body .gsx-content .gsm-pos-guest-btn {
  min-height: 48px; padding: 0 22px !important; border-radius: 999px !important; font-family: var(--ds-body) !important; font-size: 14.5px !important; font-weight: 600 !important; cursor: pointer;
  transition: background-color .4s var(--ds-e), transform .4s var(--ds-e) !important;
}
html body .gsx-content .gsm-pos-search-btn { background: var(--ds-accent) !important; color: var(--ds-accent-ink, #12160A) !important; border: 0 !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 14px 30px -16px color-mix(in srgb, var(--ds-accent) 15%, transparent) !important; }
html body .gsx-content .gsm-pos-search-btn:hover { background: color-mix(in srgb, var(--ds-accent) 88%, #fff) !important; }
html body .gsx-content .gsm-pos-guest-btn { background: rgba(255,255,255,.04) !important; color: var(--ds-ink) !important; border: 1px solid var(--ds-line2) !important; }
html body .gsx-content .gsm-pos-guest-btn:hover { background: rgba(255,255,255,.09) !important; }
html body .gsx-content .gsm-pos-result-item, html body .gsx-content .gsm-pos-info-chip, html body .gsx-content .gsm-pos-held-chip, html body .gsx-content .gsm-pos-change-row { border-radius: 14px !important; border-color: var(--ds-line) !important; }
html body .gsx-content .gsm-pos-result-avatar, html body .gsx-content .gsm-pos-member-avatar-lg { background: linear-gradient(145deg, var(--ds-accent-2), var(--ds-accent) 60%) !important; font-family: var(--ds-display) !important; font-weight: 700; }
html body .gsx-content .gsm-pos-member-panel { background: color-mix(in srgb, var(--ds-accent) 5%, transparent) !important; border-bottom-color: var(--ds-line) !important; }
html body .gsx-content .gsm-pos-checkin-quick { border-radius: 999px !important; padding: 8px 14px !important; }
html body .gsx-content .gsm-pos-products-area { padding: 18px 22px !important; }
html body .gsx-content .gsm-pos-section-hd { border-bottom-color: var(--ds-line) !important; padding-bottom: 10px !important; margin-bottom: 14px !important; }
html body .gsx-content .gsm-pos-section-label, html body .gsx-content .gsm-pos-discount-label-txt { font-size: 11px !important; font-weight: 600 !important; letter-spacing: .18em !important; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-pos-section-add { width: 30px; height: 30px; border-radius: 50% !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink2) !important; font-size: 18px !important; }
html body .gsx-content .gsm-pos-products-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important; gap: 12px !important; }
html body .gsx-content .gsm-pos-product-tile {
  padding: 20px 14px !important; border-radius: 18px !important; border: 1px solid var(--ds-line) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  transition: transform .5s var(--ds-e), border-color .5s var(--ds-e), background-color .5s var(--ds-e) !important;
}
html body .gsx-content .gsm-pos-product-tile:hover { border-color: color-mix(in srgb, var(--ds-accent) 55%, transparent) !important; transform: translateY(-2px); }
html body .gsx-content .gsm-pos-product-name { font-size: 14px !important; font-weight: 600 !important; color: var(--ds-ink) !important; margin-bottom: 4px !important; }
html body .gsx-content .gsm-pos-product-price { font-family: var(--ds-display) !important; font-size: 20px !important; font-weight: 700 !important; color: var(--ds-accent-2) !important; }
html body .gsx-content .gsm-pos-product-dur { font-size: 11.5px !important; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-pos-cart-header { padding: 18px 20px !important; border-bottom-color: var(--ds-line) !important; }
html body .gsx-content .gsm-pos-brand-icon, html body .gsx-content .gsm-pos-brand-icon svg { color: #fff; }
html body .gsx-content .gsm-pos-stat-chip svg { opacity: .7; }
html body .gsx-content .gsm-pos-icon-btn { color: var(--ds-ink2) !important; }
html body .gsx-content .gsm-pos-pay-btn span { display: flex !important; justify-content: center; margin-bottom: 6px !important; }
html body .gsx-content .gsm-pos-cart-empty-state span { display: flex !important; justify-content: center; margin-bottom: 12px !important; opacity: .35; }
html body .gsx-content .gsm-pos-product-emoji {
  display: inline-grid !important; place-items: center; width: 44px; height: 44px; margin: 0 auto 12px !important; border-radius: 14px;
  font-size: 20px !important; color: var(--ds-accent-2); background: color-mix(in srgb, var(--ds-accent) 12%, transparent); border: 1px solid color-mix(in srgb, var(--ds-accent) 25%, transparent);
}
html body .gsx-content .gsm-pos-cart-header button { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 12px !important; border-radius: 999px !important; font-size: 12.5px !important; font-weight: 600 !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink2) !important; }
html body .gsx-content .gsm-pos-cart-scroll { padding: 10px 20px !important; }
html body .gsx-content .gsm-pos-cart-empty-state { padding: 48px 10px !important; color: var(--ds-mute) !important; font-size: 15px; }
html body .gsx-content .gsm-pos-cart-row { padding: 12px 0 !important; border-bottom-color: var(--ds-line) !important; }
html body .gsx-content .gsm-pos-cart-item-name { font-size: 14px !important; font-weight: 600 !important; }
html body .gsx-content .gsm-pos-cart-item-sub { font-size: 12px !important; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-pos-qty-btn { width: 26px !important; height: 26px !important; border-radius: 50% !important; background: rgba(255,255,255,.06) !important; }
html body .gsx-content .gsm-pos-qty-num, html body .gsx-content .gsm-pos-cart-item-price, html body .gsx-content .gsm-pos-total-val,
html body .gsx-content .gsm-pos-discount-input, html body .gsx-content .gsm-pos-cash-given-input, html body .gsx-content .gsm-pos-change-amount, html body .gsx-content .gsm-pos-shortcut-hint {
  font-family: var(--ds-body) !important; font-variant-numeric: tabular-nums; font-weight: 600;
}
html body .gsx-content .gsm-pos-qty-num, html body .gsx-content .gsm-pos-cart-item-price { font-size: 14px !important; }
html body .gsx-content .gsm-pos-discount-bar, html body .gsx-content .gsm-pos-totals, html body .gsx-content .gsm-pos-pay-zone { padding: 14px 20px !important; border-top-color: var(--ds-line) !important; }
html body .gsx-content .gsm-pos-discount-row { gap: 8px !important; }
html body .gsx-content .gsm-pos-clock { display: inline-flex !important; align-items: center; }
html body .gsx-content input.gsm-pos-discount-input, html body .gsx-content input.gsm-pos-cash-given-input { min-height: 40px !important; width: 96px !important; padding: 0 14px !important; border-radius: 999px !important; font-size: 14px !important; }
html body .gsx-content .gsm-pos-disc-type-btn { min-height: 34px; min-width: 44px; padding: 0 12px !important; border-radius: 999px !important; font-size: 12.5px !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line2) !important; color: var(--ds-ink2) !important; }
html body .gsx-content .gsm-pos-disc-type-btn.active { background: color-mix(in srgb, var(--ds-accent) 16%, transparent) !important; border-color: color-mix(in srgb, var(--ds-accent) 50%, transparent) !important; color: var(--ds-accent-ink, #12160A) !important; }
html body .gsx-content .gsm-pos-total-lbl { font-size: 13px !important; color: var(--ds-mute) !important; }
html body .gsx-content .gsm-pos-total-val { font-size: 14px !important; color: var(--ds-ink2) !important; }
html body .gsx-content .gsm-pos-total-big { font-family: var(--ds-display) !important; font-size: 40px !important; font-weight: 700 !important; font-variant-numeric: tabular-nums; }
html body .gsx-content .gsm-pos-pay-grid { gap: 8px !important; }
html body .gsx-content .gsm-pos-pay-btn {
  padding: 12px 6px !important; border-radius: 14px !important; font-size: 12px !important; font-weight: 600 !important; color: var(--ds-mute) !important;
  background: rgba(255,255,255,.03) !important; border: 1px solid var(--ds-line) !important; transition: border-color .4s var(--ds-e), background-color .4s var(--ds-e), color .4s var(--ds-e) !important;
}
html body .gsx-content .gsm-pos-pay-btn:hover { color: var(--ds-ink) !important; border-color: var(--ds-line2) !important; }
html body .gsx-content .gsm-pos-pay-btn.active { color: var(--ds-accent-ink, #12160A) !important; background: color-mix(in srgb, var(--ds-accent) 14%, transparent) !important; border-color: color-mix(in srgb, var(--ds-accent) 60%, transparent) !important; }
html body .gsx-content .gsm-pos-checkout-zone { padding: 10px 20px 20px !important; }
html body .gsx-content .gsm-pos-checkout-btn {
  min-height: 58px; border-radius: 999px !important; font-family: var(--ds-display) !important; font-size: 22px !important; font-weight: 700 !important; letter-spacing: -.02em !important; text-transform: none;
  background: var(--ds-accent) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 18px 40px -18px color-mix(in srgb, var(--ds-accent) 15%, transparent) !important;
}
html body .gsx-content .gsm-pos-checkout-btn:disabled { opacity: 1 !important; background: rgba(255,255,255,.05) !important; color: var(--ds-mute) !important; box-shadow: none !important; border: 1px solid var(--ds-line) !important; }
html body .gsx-content .gsm-pos-shortcut-hint { color: var(--ds-mute) !important; font-size: 11px !important; margin-top: 8px !important; }
html body .gsm-pos-modal { border-radius: var(--ds-r-lg) !important; border: 1px solid var(--ds-line2) !important; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)), #101016 !important; box-shadow: 0 40px 120px -30px rgba(0,0,0,.95) !important; }
html body .gsm-pos-modal-hd { padding: 20px 24px !important; border-bottom-color: var(--ds-line) !important; }
html body .gsm-pos-modal-backdrop { background: rgba(4,4,7,.72) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }

/* ── 7. Responsive ─────────────────────────────────────────────── */
@media (max-width: 1023px) {
  .gsx-app { grid-template-columns: minmax(0, 1fr); }
  .gsx-side {
    position: fixed; z-index: 50; top: 0; left: 0; bottom: 0; width: min(300px, 86vw); height: auto;
    transform: translateX(-104%); transition: transform .6s var(--ds-e); box-shadow: 30px 0 80px -30px rgba(0,0,0,.9);
  }
  body.admin-bar .gsx-side { top: 46px; height: auto; }
  body.gsx-side-open .gsx-side { transform: none; }
  .gsx-side__close, .gsx-top__menu { display: inline-flex; }
  .gsx-top { padding: 14px 18px; }
  .gsx-page { padding: 24px 18px 64px; }
}
@media (max-width: 782px) {
  body.admin-bar .gsx-top { top: 46px; }
  body.admin-bar .gsx-site { padding-top: 150px; }
}
@media (max-width: 767px) {
  .gsx-site { padding: 112px 0 72px; }
  .gsx-site__inner { width: calc(100% - 32px); }
  .gsx-crumb span { display: none; }
  html body .gsx-content .gsm-pos-body { grid-template-columns: minmax(0, 1fr) !important; height: auto !important; min-height: 0; }
  html body .gsx-content .gsm-pos-left { border-right: 0 !important; border-bottom: 1px solid var(--ds-line) !important; }
  html body .gsx-content .gsm-pos-right { max-height: none !important; }
  html body .gsx-content .gsm-pos-topbar-center { display: none !important; }
  html body .gsx-content .gsm-pos-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  html body .gsx-content .gsm-members-topbar, html body .gsx-content .gsm-checkin-header, html body .gsx-content .gsm-ana-header,
  html body .gsx-content .gsm-staff-header, html body .gsx-content .gsm-eg-page-header, html body .gsx-content .gsm-billing-header { padding: 22px 20px !important; border-radius: var(--ds-r) !important; }
  .gsx-pill span { display: none; }
  .gsx-pill { width: 40px; padding: 0; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  body.gsx *, body.gsx *::before, body.gsx *::after { transition: none !important; animation: none !important; }
}

/* ── v9.17 — icon buttons ──────────────────────────────────────────────────
   Legacy rules give icon-only buttons text padding (6px 12px) inside a fixed
   32px box; as flex items the SVGs then shrank to ~6px and looked empty.
   Icons never shrink, and fixed-size action buttons drop their padding. */
html body :is(button, a, label, span)[class*="gsm"] > svg,
html body :is(button, a)[class*="gsm"] > .gsm-icon { flex-shrink: 0; }
html body .gsm-mb-action-btn,
html body .gsm-edit-class, html body .gsm-delete-class {
  padding: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 34px !important; min-width: 34px !important; height: 34px !important; border-radius: 50% !important;
  background: rgba(255,255,255,.04) !important; border: 1px solid var(--ds-line) !important; color: var(--ds-ink2) !important;
  transition: background .3s var(--ds-e), color .3s var(--ds-e), transform .3s var(--ds-e) !important;
}
html body .gsm-mb-action-btn:hover, html body .gsm-edit-class:hover { background: rgba(255,255,255,.09) !important; color: var(--ds-ink) !important; }
html body .gsm-mb-action-delete:hover, html body .gsm-delete-class:hover { background: rgba(197,240,74,.14) !important; border-color: rgba(197,240,74,.35) !important; color: #FF6B5E !important; }
html body .gsm-mb-action-btn:active { transform: scale(.94); }
html body .gsm-mb-td-actions { display: inline-flex; gap: 8px; }

/* ── v9.17 — notification bell ─────────────────────────────────────────── */
.gsm-nb { position: fixed; right: 22px; bottom: 22px; z-index: 60; font-family: var(--ds-font, 'Geist', system-ui, sans-serif); }
html body .gsm-nb .gsm-nb__btn {
  position: relative; width: 54px; height: 54px; padding: 0 !important; border-radius: 50% !important;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  color: var(--ds-accent-ink, #12160A) !important; background: linear-gradient(145deg, var(--ds-accent), color-mix(in srgb, var(--ds-accent) 70%, #000)) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  box-shadow: 0 18px 40px -14px color-mix(in srgb, var(--ds-accent) 19%, transparent), inset 0 1px 0 rgba(255,255,255,.22) !important;
  transition: transform .5s var(--ds-e), box-shadow .5s var(--ds-e) !important;
}
html body .gsm-nb .gsm-nb__btn:hover { transform: translateY(-2px) scale(1.03); }
html body .gsm-nb .gsm-nb__btn:active { transform: scale(.95); }
html body .gsm-nb .gsm-nb__btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.gsm-nb.is-open .gsm-nb__btn svg { transform: rotate(-12deg); }
.gsm-nb__btn svg { transition: transform .5s var(--ds-e); }
.gsm-nb__badge {
  position: absolute; top: -3px; right: -3px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; color: var(--ds-accent); font-size: 11px; font-weight: 800; line-height: 1; box-shadow: 0 0 0 3px var(--ds-bg, #09090b);
}
.gsm-nb__badge[hidden] { display: none !important; }
.gsm-nb__panel {
  position: absolute; right: 0; bottom: 68px; width: min(360px, calc(100vw - 32px)); max-height: min(480px, 70vh);
  display: flex; flex-direction: column; overflow: hidden;
  background: rgba(16,16,20,.92); -webkit-backdrop-filter: blur(22px) saturate(1.3); backdrop-filter: blur(22px) saturate(1.3);
  border: 1px solid rgba(255,255,255,.1); border-radius: 22px;
  box-shadow: 0 40px 90px -30px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.06);
  transform-origin: bottom right; animation: gsmNbIn .45s var(--ds-e) both;
}
.gsm-nb__panel[hidden] { display: none !important; }
@keyframes gsmNbIn { from { opacity: 0; transform: translateY(10px) scale(.96); } to { opacity: 1; transform: none; } }
.gsm-nb__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px 12px; border-bottom: 1px solid var(--ds-line); }
.gsm-nb__title { font-family: var(--ds-display, 'Geist', sans-serif); font-size: 17px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--ds-ink); }
html body .gsm-nb .gsm-nb__link { background: none !important; border: 0 !important; padding: 4px 0 !important; box-shadow: none !important; color: var(--ds-ink2) !important; font-size: 12px !important; font-weight: 600 !important; cursor: pointer; }
html body .gsm-nb .gsm-nb__link:hover { color: var(--ds-ink) !important; }
.gsm-nb__list { overflow-y: auto; padding: 6px; overscroll-behavior: contain; }
html body .gsm-nb .gsm-nb__item {
  width: 100%; display: flex !important; align-items: flex-start; gap: 12px; text-align: left; cursor: pointer;
  padding: 12px !important; border-radius: 14px !important; background: transparent !important; border: 0 !important; box-shadow: none !important;
  color: var(--ds-ink) !important; transition: background .3s var(--ds-e) !important;
}
html body .gsm-nb .gsm-nb__item:hover { background: rgba(255,255,255,.05) !important; }
.gsm-nb__ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.06); color: var(--ds-ink2); }
.gsm-nb__ic--checkin { background: rgba(16,185,129,.14); color: #4CD98F; }
.gsm-nb__ic--expiry  { background: rgba(245,158,11,.14); color: #F6B94F; }
.gsm-nb__ic--manual  { background: color-mix(in srgb, var(--ds-accent) 16%, transparent); color: var(--ds-accent); }
.gsm-nb__txt { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.gsm-nb__txt strong { font-size: 13.5px; font-weight: 700; color: var(--ds-ink); line-height: 1.3; }
.gsm-nb__txt span { font-size: 12.5px; color: var(--ds-ink2); line-height: 1.45; }
.gsm-nb__txt time { font-size: 11px; color: rgba(244,244,247,.45); }
.gsm-nb__empty { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 36px 16px; text-align: center; }
.gsm-nb__empty strong { color: var(--ds-ink); font-size: 14px; }
.gsm-nb__empty span { color: var(--ds-ink2); font-size: 12.5px; }
html body .gsm-nb .gsm-nb__push {
  margin: 4px 12px 12px; padding: 10px 14px !important; border-radius: 999px !important; cursor: pointer;
  background: rgba(255,255,255,.05) !important; border: 1px solid var(--ds-line) !important; color: var(--ds-ink) !important; font-size: 12.5px !important; font-weight: 600 !important;
}
html body .gsm-nb .gsm-nb__push[hidden] { display: none !important; }
@media (max-width: 767px) { .gsm-nb { right: 16px; bottom: 16px; } }
@media (prefers-reduced-motion: reduce) { .gsm-nb__panel { animation: none; } }

/* ── v9.17 — member booking ([gym_book_class]) ─────────────────────────── */
.gsm-bk { --bk-card: rgba(255,255,255,.035); max-width: 1080px; margin: 0 auto; color: var(--ds-ink); }
.gsm-bk-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin: 0 0 34px; }
.gsm-bk-eyebrow { display: inline-flex; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--ds-line); background: rgba(255,255,255,.04); font-size: 10.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--ds-ink2); }
html body .gsm-bk .gsm-bk-title { margin: 14px 0 6px !important; font-family: var(--ds-display, 'Geist', sans-serif) !important; font-size: clamp(34px, 5vw, 54px) !important; line-height: .95 !important; font-weight: 800 !important; text-transform: uppercase; letter-spacing: -.01em; color: var(--ds-ink) !important; }
.gsm-bk-sub { margin: 0; color: var(--ds-ink2); font-size: 15px; }
.gsm-bk-nav { display: flex; gap: 10px; flex-wrap: wrap; }
html body .gsm-bk .gsm-bk-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 0 18px !important;
  border-radius: 999px !important; border: 1px solid var(--ds-line) !important; background: rgba(255,255,255,.04) !important;
  color: var(--ds-ink) !important; font-size: 13.5px !important; font-weight: 600 !important; text-decoration: none !important; cursor: pointer; white-space: nowrap;
  box-shadow: none !important; transition: background .4s var(--ds-e), transform .4s var(--ds-e), border-color .4s var(--ds-e) !important;
}
html body .gsm-bk .gsm-bk-btn:hover { background: rgba(255,255,255,.09) !important; }
html body .gsm-bk .gsm-bk-btn:active { transform: scale(.97); }
html body .gsm-bk .gsm-bk-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
html body .gsm-bk .gsm-bk-btn--primary { background: var(--ds-accent) !important; border-color: transparent !important; color: var(--ds-accent-ink, #12160A) !important; box-shadow: 0 14px 30px -14px color-mix(in srgb, var(--ds-accent) 20%, transparent), inset 0 1px 0 rgba(255,255,255,.2) !important; }
html body .gsm-bk .gsm-bk-btn--primary:hover { background: color-mix(in srgb, var(--ds-accent) 88%, #fff) !important; }
html body .gsm-bk .gsm-bk-btn--wait { border-color: rgba(251,191,36,.35) !important; color: #F6B94F !important; }
.gsm-bk-alert { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 16px 20px; margin: 0 0 28px; border-radius: 18px; background: rgba(245,158,11,.08); border: 1px solid rgba(245,158,11,.25); }
.gsm-bk-alert strong { color: #F6B94F; font-size: 14px; }
.gsm-bk-alert span { flex: 1 1 260px; color: var(--ds-ink2); font-size: 13.5px; }
.gsm-bk-day { margin: 0 0 34px; }
html body .gsm-bk .gsm-bk-day__h { display: flex; align-items: baseline; gap: 12px; margin: 0 0 14px !important; padding: 0 0 12px; border-bottom: 1px solid var(--ds-line); font-family: var(--ds-display, 'Geist', sans-serif) !important; font-size: 22px !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .02em; color: var(--ds-ink) !important; }
.gsm-bk-day__h em { font-style: normal; font-family: var(--ds-font, 'Geist', sans-serif); font-size: 13px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ds-ink2); }
.gsm-bk-grid { display: grid; gap: 12px; }
.gsm-bk-card {
  display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; align-items: center; gap: 22px; padding: 18px 20px;
  border-radius: 22px; background: var(--bk-card); border: 1px solid var(--ds-line);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04); transition: border-color .4s var(--ds-e), background .4s var(--ds-e), transform .4s var(--ds-e);
}
.gsm-bk-card:hover { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.05); }
.gsm-bk-card.is-booked { border-color: rgba(16,185,129,.35); background: linear-gradient(90deg, rgba(16,185,129,.08), rgba(255,255,255,.03) 45%); }
.gsm-bk-card.is-muted { opacity: .55; }
.gsm-bk-card__time { display: flex; flex-direction: column; gap: 2px; padding-right: 20px; border-right: 1px solid var(--ds-line); }
.gsm-bk-card__time strong { font-family: var(--ds-display, 'Geist', sans-serif); font-size: 30px; line-height: 1; font-weight: 800; color: var(--ds-ink); font-variant-numeric: tabular-nums; }
.gsm-bk-card__time span { font-size: 12px; color: var(--ds-ink2); }
.gsm-bk-card__body { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
html body .gsm-bk .gsm-bk-card__body h3 { margin: 2px 0 0 !important; font-family: var(--ds-font, 'Geist', sans-serif) !important; font-size: 18px !important; font-weight: 700 !important; color: var(--ds-ink) !important; text-transform: none !important; }
.gsm-bk-meta { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--ds-ink2); }
.gsm-bk-desc { margin: 0; font-size: 13px; color: rgba(244,244,247,.55); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gsm-bk-pill { display: inline-flex; padding: 3px 10px; border-radius: 999px; font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.gsm-bk-pill--open { background: rgba(59,130,246,.12); color: #7AA7FF; }
.gsm-bk-pill--low  { background: rgba(245,158,11,.12); color: #F6B94F; }
.gsm-bk-pill--full { background: color-mix(in srgb, var(--ds-accent) 14%, transparent); color: color-mix(in srgb, var(--ds-accent) 60%, #fff); }
.gsm-bk-pill--ok   { background: rgba(16,185,129,.14); color: #4CD98F; }
.gsm-bk-pill--past { background: rgba(255,255,255,.06); color: var(--ds-ink2); }
.gsm-bk-cap { display: flex; align-items: center; gap: 10px; width: min(260px, 100%); margin-top: 4px; }
.gsm-bk-cap__bar { flex: 1; height: 5px; border-radius: 99px; background: rgba(255,255,255,.07); overflow: hidden; }
.gsm-bk-cap__bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ds-accent), color-mix(in srgb, var(--ds-accent) 55%, #F6B94F)); }
.gsm-bk-cap__txt { font-size: 12px; color: var(--ds-ink2); font-variant-numeric: tabular-nums; }
.gsm-bk-card__cta { display: flex; }
.gsm-bk-gate, .gsm-bk-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 64px 24px; border-radius: 28px; background: var(--bk-card); border: 1px solid var(--ds-line); }
.gsm-bk-gate__ic { width: 58px; height: 58px; border-radius: 18px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.05); border: 1px solid var(--ds-line); color: var(--ds-ink); }
html body .gsm-bk .gsm-bk-gate h2, html body .gsm-bk .gsm-bk-empty h3 { margin: 8px 0 0 !important; font-family: var(--ds-display, 'Geist', sans-serif) !important; font-size: 26px !important; text-transform: uppercase; color: var(--ds-ink) !important; }
.gsm-bk-gate p, .gsm-bk-empty p { margin: 0; max-width: 420px; color: var(--ds-ink2); font-size: 14.5px; line-height: 1.55; }
.gsm-bk-gate__cta { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 10px; }
.gsm-bk-toast { position: fixed; left: 50%; bottom: 28px; z-index: 70; transform: translateX(-50%); padding: 12px 20px; border-radius: 999px; font-size: 13.5px; font-weight: 600; color: #fff; background: rgba(20,20,24,.94); border: 1px solid rgba(255,255,255,.12); box-shadow: 0 24px 50px -20px rgba(0,0,0,.8); animation: gsmNbIn .4s var(--ds-e) both; }
.gsm-bk-toast[hidden] { display: none; }
.gsm-bk-toast.is-ok { border-color: rgba(16,185,129,.45); }
.gsm-bk-toast.is-err { border-color: rgba(197,240,74,.5); }
@media (max-width: 680px) {
  .gsm-bk-card { grid-template-columns: 74px minmax(0, 1fr); gap: 16px; padding: 16px; }
  .gsm-bk-card__time { padding-right: 14px; }
  .gsm-bk-card__time strong { font-size: 24px; }
  .gsm-bk-card__cta { grid-column: 1 / -1; }
  html body .gsm-bk .gsm-bk-card__cta .gsm-bk-btn { width: 100%; }
}

/* ── v9.17 — emoji replaced by line icons (platform-shell.js) ──────────── */
svg.gsx-emo { display: inline-block; width: .95em; height: .95em; vertical-align: -.14em; flex-shrink: 0; stroke-width: 1.7; }
[data-gsx-emo] { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }

/* ── v9.17 — welcome guide ([gym_welcome_guide]) ───────────────────────── */
html body .gsm-guide-wrap { max-width: 860px; margin: 0 auto; }
html body .gsm-guide-wrap .gsm-guide-header {
  position: relative; overflow: hidden; padding: 30px 30px 26px !important; margin-bottom: 26px; border-radius: 26px !important; color: var(--ds-ink);
  background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--ds-accent) 34%, transparent), transparent 55%), rgba(255,255,255,.035) !important;
  border: 1px solid rgba(255,255,255,.09); box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 30px 70px -40px color-mix(in srgb, var(--ds-accent) 15%, transparent);
}
html body .gsm-guide-wrap .gsm-guide-header::before { opacity: .5; }
html body .gsm-guide-wrap .gsm-guide-header::after { background: color-mix(in srgb, var(--ds-accent) 22%, transparent); filter: blur(30px); }
html body .gsm-guide-wrap .gsm-guide-hi { display: flex; align-items: center; gap: 16px; position: relative; z-index: 1; }
html body .gsm-guide-wrap .gsm-guide-av-img { width: 56px !important; height: 56px !important; border-radius: 50% !important; box-shadow: 0 0 0 3px rgba(255,255,255,.08); }
html body .gsm-guide-wrap .gsm-guide-name { font-family: var(--ds-display, 'Geist', sans-serif); font-size: clamp(26px, 3.4vw, 34px); font-weight: 800; line-height: 1; text-transform: uppercase; letter-spacing: -.005em; display: flex; align-items: center; gap: 10px; }
html body .gsm-guide-wrap .gsm-guide-sub { margin-top: 6px; color: var(--ds-ink2); font-size: 14px; }
html body .gsm-guide-wrap .gsm-guide-prog-row { position: relative; z-index: 1; display: flex; align-items: center; gap: 14px; margin-top: 22px; }
html body .gsm-guide-wrap .gsm-guide-prog-bar { flex: 1; height: 8px; border-radius: 99px; background: rgba(255,255,255,.08); overflow: hidden; }
html body .gsm-guide-wrap .gsm-guide-prog-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ds-accent), color-mix(in srgb, var(--ds-accent) 50%, #F6B94F)); box-shadow: 0 0 18px color-mix(in srgb, var(--ds-accent) 15%, transparent); transition: width 1s var(--ds-e); }
html body .gsm-guide-wrap .gsm-guide-prog-pct { font-family: var(--ds-display, 'Geist', sans-serif); font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
html body .gsm-guide-wrap .gsm-guide-steps { display: flex; flex-direction: column; gap: 12px; }
html body .gsm-guide-wrap .gsm-guide-step {
  display: flex !important; align-items: stretch; overflow: hidden; border-radius: 22px !important;
  background: rgba(255,255,255,.03) !important; border: 1px solid var(--ds-line) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
  transition: border-color .4s var(--ds-e), background .4s var(--ds-e) !important;
}
html body .gsm-guide-wrap .gsm-guide-step:hover { border-color: rgba(255,255,255,.15) !important; background: rgba(255,255,255,.045) !important; }
html body .gsm-guide-wrap .gsm-guide-step.is-done { border-color: rgba(16,185,129,.28) !important; background: linear-gradient(90deg, rgba(16,185,129,.07), rgba(255,255,255,.025) 40%) !important; }
html body .gsm-guide-wrap .gsm-guide-step-track { display: flex; flex-direction: column; align-items: center; padding: 20px 0 20px 20px; flex-shrink: 0; }
html body .gsm-guide-wrap .gsm-guide-num {
  width: 40px !important; height: 40px; min-height: 0 !important; border-radius: 50% !important; border: 1px solid var(--ds-line) !important;
  background: rgba(255,255,255,.04) !important; color: var(--ds-ink2) !important;
  font-family: var(--ds-display, 'Geist', sans-serif) !important; font-size: 18px !important; font-weight: 800 !important;
}
html body .gsm-guide-wrap .gsm-guide-num.is-done { background: rgba(16,185,129,.16) !important; border-color: rgba(16,185,129,.4) !important; color: #4CD98F !important; }
html body .gsm-guide-wrap .gsm-guide-step-body { flex: 1; min-width: 0; padding: 20px 22px !important; }
html body .gsm-guide-wrap .gsm-guide-step-head { gap: 10px; margin-bottom: 6px; }
html body .gsm-guide-wrap .gsm-guide-step-ico { display: inline-flex; color: var(--ds-ink2); font-size: 17px; }
html body .gsm-guide-wrap .gsm-guide-step-title { font-family: var(--ds-font, 'Geist', sans-serif) !important; font-size: 17px !important; font-weight: 700 !important; color: var(--ds-ink) !important; }
html body .gsm-guide-wrap .gsm-guide-done-pill { padding: 3px 10px; border-radius: 999px; background: rgba(16,185,129,.14); color: #4CD98F; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
html body .gsm-guide-wrap .gsm-guide-step-desc { color: var(--ds-ink2) !important; font-size: 14px !important; line-height: 1.55; margin: 0 0 14px !important; }
html body .gsm-guide-wrap .gsm-guide-step.is-done .gsm-guide-step-desc { margin-bottom: 12px !important; }
html body .gsm-guide-wrap .gsm-guide-btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 18px !important; border-radius: 999px !important;
  font-size: 13.5px !important; font-weight: 600 !important; text-decoration: none !important; box-shadow: none !important;
  transition: background .4s var(--ds-e), transform .4s var(--ds-e) !important;
}
html body .gsm-guide-wrap .gsm-guide-btn:active { transform: scale(.97); }
html body .gsm-guide-wrap .gsm-guide-btn-p { background: var(--ds-accent) !important; color: var(--ds-accent-ink, #12160A) !important; border: 1px solid transparent !important; box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--ds-accent) 21%, transparent) !important; }
html body .gsm-guide-wrap .gsm-guide-btn-g { background: rgba(255,255,255,.05) !important; color: var(--ds-ink) !important; border: 1px solid var(--ds-line) !important; }
html body .gsm-guide-wrap .gsm-guide-btn-g:hover { background: rgba(255,255,255,.1) !important; }
html body .gsm-guide-wrap .gsm-guide-ql { margin-top: 30px; }
html body .gsm-guide-wrap .gsm-guide-ql-title { margin-bottom: 12px; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--ds-ink2); }
html body .gsm-guide-wrap .gsm-guide-ql-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
html body .gsm-guide-wrap .gsm-guide-ql-item {
  display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px; border-radius: 18px; text-decoration: none !important;
  background: rgba(255,255,255,.03); border: 1px solid var(--ds-line); color: var(--ds-ink) !important; transition: transform .4s var(--ds-e), border-color .4s var(--ds-e), background .4s var(--ds-e);
}
html body .gsm-guide-wrap .gsm-guide-ql-item:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.055); }
html body .gsm-guide-wrap .gsm-guide-ql-ico { width: 38px; height: 38px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--ds-accent) 14%, transparent); color: color-mix(in srgb, var(--ds-accent) 70%, #fff); }
html body .gsm-guide-wrap .gsm-guide-ql-lbl { font-size: 13.5px; font-weight: 600; }
html body .gsm-guide-wrap .gsm-guide-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--ds-line); }
html body .gsm-guide-wrap .gsm-guide-back { gap: 8px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--ds-line); color: var(--ds-ink) !important; text-decoration: none !important; font-size: 13.5px; font-weight: 600; }
html body .gsm-guide-wrap .gsm-guide-footer-note { color: var(--ds-ink2); font-size: 12.5px; }
@media (max-width: 600px) {
  html body .gsm-guide-wrap .gsm-guide-step-track { padding: 18px 0 18px 14px; }
  html body .gsm-guide-wrap .gsm-guide-step-body { padding: 18px 16px !important; }
  html body .gsm-guide-wrap .gsm-guide-header { padding: 24px 20px 22px !important; }
}

/* ── v9.17 — Caisse Desktop section (dashboard) ────────────────────────── */
.gsm-pd { --pd-line: rgba(255,255,255,.08); max-width: 1040px; color: var(--ds-ink, #F5F5F6); font-family: var(--ds-font, 'Geist', system-ui, sans-serif); }
.gsm-pd-hero {
  position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 32px; align-items: center;
  padding: 40px; border-radius: 30px; border: 1px solid rgba(255,255,255,.09);
  background: radial-gradient(90% 120% at 100% 0%, color-mix(in srgb, var(--ds-accent, #C5F04A) 26%, transparent), transparent 60%), radial-gradient(60% 80% at 0% 100%, rgba(197,240,74,.12), transparent 60%), rgba(255,255,255,.03);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 40px 90px -50px color-mix(in srgb, var(--ds-accent, #C5F04A) 18%, transparent);
}
.gsm-pd-eyebrow { display: inline-flex; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--pd-line); background: rgba(255,255,255,.05); font-size: 10.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(244,244,247,.7); }
html body .gsm-pd .gsm-pd-title { margin: 16px 0 12px !important; font-family: var(--ds-display, 'Geist', sans-serif) !important; font-size: clamp(34px, 4.2vw, 52px) !important; line-height: .95 !important; font-weight: 800 !important; text-transform: uppercase; letter-spacing: -.01em; color: var(--ds-ink, #F5F5F6) !important; }
.gsm-pd-lead { margin: 0 0 26px; max-width: 470px; font-size: 15.5px; line-height: 1.6; color: rgba(244,244,247,.72); }
.gsm-pd-cta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.gsm-pd-req { font-size: 12.5px; color: rgba(244,244,247,.5); }
html body .gsm-pd .gsm-pd-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 0 22px !important; border-radius: 999px !important;
  font-size: 14px !important; font-weight: 600 !important; text-decoration: none !important; cursor: pointer; white-space: nowrap; box-shadow: none !important;
  border: 1px solid var(--pd-line) !important; background: rgba(255,255,255,.05) !important; color: var(--ds-ink, #F5F5F6) !important;
  transition: transform .5s cubic-bezier(.32,.72,0,1), background .4s, box-shadow .5s !important;
}
html body .gsm-pd .gsm-pd-btn:hover { background: rgba(255,255,255,.1) !important; }
html body .gsm-pd .gsm-pd-btn:active { transform: scale(.97); }
html body .gsm-pd .gsm-pd-btn:disabled { opacity: .55; cursor: wait; }
html body .gsm-pd .gsm-pd-btn--primary { border-color: transparent !important; color: var(--ds-accent-ink, #12160A) !important; background: var(--ds-accent, #C5F04A) !important; box-shadow: 0 18px 40px -18px color-mix(in srgb, var(--ds-accent, #C5F04A) 22%, transparent), inset 0 1px 0 rgba(255,255,255,.22) !important; }
html body .gsm-pd .gsm-pd-btn--primary:hover { transform: translateY(-1px); background: color-mix(in srgb, var(--ds-accent, #C5F04A) 88%, #fff) !important; }
html body .gsm-pd .gsm-pd-btn--muted { cursor: default; color: rgba(244,244,247,.5) !important; }
html body .gsm-pd .gsm-pd-btn--ghost { background: transparent !important; }
.gsm-pd-btn__meta { padding-left: 12px; margin-left: 2px; border-left: 1px solid rgba(255,255,255,.3); font-size: 12px; font-weight: 500; opacity: .85; }
.gsm-pd-hero__art { display: flex; justify-content: center; perspective: 1200px; }
.gsm-pd-mock { width: min(360px, 100%); border-radius: 18px; overflow: hidden; background: #0d0d11; border: 1px solid rgba(255,255,255,.1); box-shadow: 0 40px 80px -30px rgba(0,0,0,.9), 0 0 0 6px rgba(255,255,255,.025); transform: rotateY(-14deg) rotateX(6deg); transition: transform 1s cubic-bezier(.32,.72,0,1); }
.gsm-pd-hero:hover .gsm-pd-mock { transform: rotateY(-6deg) rotateX(2deg); }
.gsm-pd-mock__bar { display: flex; align-items: center; gap: 6px; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.06); }
.gsm-pd-mock__bar i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.14); }
.gsm-pd-mock__bar span { margin-left: 6px; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.45); }
.gsm-pd-mock__body { display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; padding: 12px; }
.gsm-pd-mock__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.gsm-pd-mock__grid b { height: 46px; border-radius: 10px; background: linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); border: 1px solid rgba(255,255,255,.05); }
.gsm-pd-mock__grid b:nth-child(2) { background: linear-gradient(160deg, color-mix(in srgb, var(--ds-accent, #C5F04A) 45%, transparent), rgba(255,255,255,.02)); }
.gsm-pd-mock__cart { display: flex; flex-direction: column; gap: 6px; padding: 9px; border-radius: 12px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.05); }
.gsm-pd-mock__cart em { height: 9px; border-radius: 4px; background: rgba(255,255,255,.09); }
.gsm-pd-mock__cart em:nth-child(2) { width: 70%; }
.gsm-pd-mock__cart strong { margin-top: auto; font-family: var(--ds-display, 'Geist', sans-serif); font-size: 17px; font-weight: 800; color: #fff; }
.gsm-pd-mock__cart u { text-decoration: none; text-align: center; padding: 6px 0; border-radius: 8px; font-size: 10px; font-weight: 700; color: var(--ds-accent-ink, #12160A); background: var(--ds-accent, #C5F04A); }
.gsm-pd-steps { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 12px; }
.gsm-pd-step { display: flex; gap: 18px; padding: 24px; border-radius: 24px; background: rgba(255,255,255,.03); border: 1px solid var(--pd-line); box-shadow: inset 0 1px 0 rgba(255,255,255,.04); }
.gsm-pd-step__n { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--ds-display, 'Geist', sans-serif); font-size: 19px; font-weight: 800; background: rgba(255,255,255,.05); border: 1px solid var(--pd-line); color: var(--ds-ink, #F5F5F6); }
.gsm-pd-step > div { min-width: 0; flex: 1; }
html body .gsm-pd .gsm-pd-step h3 { margin: 6px 0 6px !important; font-family: var(--ds-font, 'Geist', sans-serif) !important; font-size: 17px !important; font-weight: 700 !important; color: var(--ds-ink, #F5F5F6) !important; text-transform: none !important; }
.gsm-pd-step p { margin: 0; color: rgba(244,244,247,.68); font-size: 14px; line-height: 1.6; }
.gsm-pd-key { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.gsm-pd-note { margin-top: 10px !important; font-size: 12.5px !important; color: rgba(244,244,247,.5) !important; }
.gsm-pd-result { margin-top: 16px; padding: 18px; border-radius: 18px; background: rgba(0,0,0,.25); border: 1px solid var(--pd-line); }
.gsm-pd-result[hidden], .gsm-pd-err[hidden] { display: none !important; }
.gsm-pd-result__row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.gsm-pd-label { display: block; margin-bottom: 6px; font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(244,244,247,.5); }
html body .gsm-pd .gsm-pd-code { width: 100%; padding: 12px 14px !important; border-radius: 12px !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--pd-line) !important; color: var(--ds-ink, #F5F5F6) !important; font: 12px/1.4 ui-monospace, 'Cascadia Code', Consolas, monospace !important; }
.gsm-pd-warn { margin-top: 10px !important; font-size: 12.5px !important; color: #F6B94F !important; }
.gsm-pd-err { margin-top: 12px; color: #FF6B5E; font-size: 13.5px; }
.gsm-pd-notes { margin-top: 12px; padding: 22px 24px; border-radius: 22px; border: 1px dashed rgba(255,255,255,.12); }
html body .gsm-pd .gsm-pd-notes h3 { margin: 0 0 8px !important; font-size: 14px !important; font-weight: 700 !important; letter-spacing: .04em; color: var(--ds-ink, #F5F5F6) !important; }
.gsm-pd-notes p { margin: 0; color: rgba(244,244,247,.68); font-size: 13.5px; line-height: 1.6; }
@media (max-width: 860px) {
  .gsm-pd-hero { grid-template-columns: 1fr; padding: 28px 22px; }
  .gsm-pd-hero__art { display: none; }
  .gsm-pd-step { padding: 20px 18px; gap: 14px; }
}

/* ══════════════════════════════════════════════════════════════════
   v9.19 components — photos, member documents, data rights, online
   payment, staff permissions, language switch, RTL, mobile-first
   member screens. Double-bezel surfaces, one accent, light line icons.
   ══════════════════════════════════════════════════════════════════ */
html body .gsm-ph, html body .gsm-md, html body .gsm-op, html body .gsm-op-panel, html body .gsm-pr {
  --c-line: rgba(255,255,255,.08); --c-line2: rgba(255,255,255,.14);
  position: relative; margin-top: 16px; padding: 6px; border-radius: 28px;
  background: rgba(255,255,255,.025); border: 1px solid var(--c-line);
  color: var(--ds-ink, #F5F5F6); font-family: var(--ds-body);
}
html body .gsm-ph > *, html body .gsm-md > *, html body .gsm-op > *, html body .gsm-op-panel > * { margin-left: 18px; margin-right: 18px; }
html body .gsm-ph::before, html body .gsm-md::before, html body .gsm-op::before, html body .gsm-op-panel::before {
  content: ""; position: absolute; inset: 6px; z-index: -1; border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)), var(--ds-surface, #141416);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07);
}
html body .gsm-ph, html body .gsm-md, html body .gsm-op, html body .gsm-op-panel { isolation: isolate; padding-top: 22px; padding-bottom: 22px; }
.gsm-ph__head, .gsm-md__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
html body .gsm-ph__eyebrow { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ds-accent-2); background: color-mix(in srgb, var(--ds-accent) 12%, transparent); margin-bottom: 10px; }
html body .gsm-ph__title { margin: 0 0 4px !important; font: 700 22px/1.15 var(--ds-display) !important; letter-spacing: .01em; color: var(--ds-ink) !important; text-transform: none !important; }
html body .gsm-ph__sub { margin: 0 !important; font-size: 13px !important; line-height: 1.6 !important; color: var(--ds-mute) !important; }
html body .gsm-ph__add, html body .gsm-ph__send {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 20px !important; border-radius: 999px !important;
  border: 0 !important; background: var(--ds-accent) !important; color: var(--ds-accent-ink, #12160A) !important; font: 600 13.5px/1 var(--ds-body) !important; cursor: pointer;
  box-shadow: 0 10px 30px -14px color-mix(in srgb, var(--ds-accent) 15%, transparent); transition: transform .5s var(--ds-e), filter .3s var(--ds-e);
}
html body .gsm-ph__add:hover, html body .gsm-ph__send:hover { filter: brightness(1.08); transform: translateY(-1px); }
html body .gsm-ph__add:active, html body .gsm-ph__send:active { transform: scale(.98); }
html body .gsm-ph__send:disabled { opacity: .55; cursor: progress; }
html body .gsm-ph__send--ghost { background: rgba(255,255,255,.05) !important; box-shadow: inset 0 0 0 1px var(--c-line2) !important; }
html body .gsm-ph__send--danger { background: rgba(251,113,133,.12) !important; color: #DDF59A !important; box-shadow: inset 0 0 0 1px rgba(251,113,133,.35) !important; }
.gsm-ph__form, .gsm-md__form { display: grid; gap: 14px; padding: 18px; margin-bottom: 18px; border-radius: 20px; background: rgba(0,0,0,.22); border: 1px solid var(--c-line); }
.gsm-ph__form[hidden] { display: none; }
.gsm-ph__seg { display: inline-flex; padding: 4px; gap: 4px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid var(--c-line); justify-self: start; }
.gsm-ph__segbtn input { position: absolute; opacity: 0; pointer-events: none; }
.gsm-ph__segbtn span { display: block; padding: 8px 16px; border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--ds-mute); cursor: pointer; transition: background .4s var(--ds-e), color .4s var(--ds-e); }
.gsm-ph__segbtn input:checked + span { background: var(--ds-ink); color: #0b0b10; }
.gsm-ph__segbtn input:focus-visible + span { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
.gsm-ph__field { display: grid; gap: 6px; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ds-mute); }
html body .gsm-ph__field input, html body .gsm-ph__field select {
  width: 100%; min-height: 44px; padding: 10px 14px !important; border-radius: 14px !important; font: 400 15px/1.3 var(--ds-body) !important; text-transform: none; letter-spacing: 0;
  background: rgba(255,255,255,.04) !important; border: 1px solid var(--c-line2) !important; color: var(--ds-ink) !important;
}
.gsm-ph__drop { position: relative; display: grid; justify-items: center; gap: 6px; padding: 26px 16px; border-radius: 18px; border: 1.5px dashed var(--c-line2); color: var(--ds-mute); text-align: center; cursor: pointer; transition: border-color .4s var(--ds-e), background .4s var(--ds-e); }
.gsm-ph__drop:hover { border-color: var(--ds-accent); background: color-mix(in srgb, var(--ds-accent) 6%, transparent); }
.gsm-ph__drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.gsm-ph__dropt { font-weight: 600; color: var(--ds-ink); font-size: 14px; }
.gsm-ph__drop small { font-size: 12px; }
.gsm-ph__actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.gsm-ph__msg { margin: 0; font-size: 13px; min-height: 1em; }
.gsm-ph__msg[data-state="ok"] { color: var(--ds-ok); } .gsm-ph__msg[data-state="err"] { color: var(--ds-err); }
.gsm-ph__filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
html body .gsm-ph__filters button { min-height: 36px; padding: 6px 14px !important; border-radius: 999px !important; border: 1px solid var(--c-line) !important; background: transparent !important; color: var(--ds-mute) !important; font: 600 12.5px/1 var(--ds-body) !important; cursor: pointer; }
html body .gsm-ph__filters button.is-on { background: rgba(255,255,255,.08) !important; color: var(--ds-ink) !important; border-color: var(--c-line2) !important; }
.gsm-ph__filters em { font-style: normal; opacity: .55; margin-inline-start: 4px; }
.gsm-ph__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.gsm-ph__grid[hidden], .gsm-ph__empty[hidden], .gsm-ph__item[hidden] { display: none; }
.gsm-ph__item { position: relative; margin: 0; aspect-ratio: 3/4; border-radius: 18px; overflow: hidden; background: #0b0b10; box-shadow: 0 0 0 1px var(--c-line); animation: gsmPhIn .8s var(--ds-e) both; }
.gsm-ph__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--ds-e); }
.gsm-ph__item:hover img { transform: scale(1.04); }
.gsm-ph__item figcaption { position: absolute; inset: auto 0 0 0; display: grid; gap: 3px; padding: 26px 12px 10px; background: linear-gradient(transparent, rgba(0,0,0,.82)); font-size: 12px; color: #fff; }
.gsm-ph__item figcaption b { font-weight: 600; } .gsm-ph__item time { font-size: 11px; opacity: .6; }
.gsm-ph__tag { justify-self: start; padding: 3px 9px; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; background: rgba(255,255,255,.16); backdrop-filter: blur(8px); }
.gsm-ph__tag--before { background: rgba(251,113,133,.28); } .gsm-ph__tag--after { background: rgba(52,211,153,.28); }
html body .gsm-ph__del { position: absolute; top: 8px; inset-inline-end: 8px; display: grid; place-items: center; width: 32px; height: 32px; padding: 0 !important; border-radius: 50% !important; border: 0 !important; background: rgba(0,0,0,.55) !important; color: #fff !important; cursor: pointer; opacity: 0; transition: opacity .3s var(--ds-e); }
.gsm-ph__item:hover .gsm-ph__del, .gsm-ph__del:focus-visible { opacity: 1; }
@media (hover: none) { html body .gsm-ph__del { opacity: 1; } }
.gsm-ph__empty { display: grid; justify-items: center; gap: 6px; padding: 34px 16px; text-align: center; color: var(--ds-mute); border-radius: 20px; border: 1px dashed var(--c-line); }
.gsm-ph__empty strong { color: var(--ds-ink); font-size: 15px; } .gsm-ph__empty span { font-size: 13px; max-width: 36ch; }
@keyframes gsmPhIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* Member documents */
.gsm-md__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; margin-bottom: 18px; }
.gsm-md__card { display: grid; gap: 10px; padding: 10px; border-radius: 20px; background: rgba(255,255,255,.03); border: 1px solid var(--c-line); }
.gsm-md__card--warn { border-color: rgba(251,191,36,.35); } .gsm-md__card--bad { border-color: rgba(251,113,133,.4); }
.gsm-md__thumb { display: grid; place-items: center; height: 110px; border-radius: 14px; overflow: hidden; background: rgba(0,0,0,.3); color: var(--ds-mute); text-decoration: none; }
.gsm-md__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gsm-md__thumb--file { gap: 4px; font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.gsm-md__body { display: grid; gap: 3px; padding: 0 4px; } .gsm-md__body strong { font-size: 14px; }
.gsm-md__exp { font-size: 12px; color: var(--ds-ink2); } .gsm-md__card--warn .gsm-md__exp { color: var(--ds-warn); } .gsm-md__card--bad .gsm-md__exp { color: var(--ds-err); }
.gsm-md__body small { font-size: 11px; color: var(--ds-mute); }
html body .gsm-md__del { justify-self: start; margin: 0 4px 4px; padding: 6px 12px !important; border-radius: 999px !important; background: transparent !important; border: 1px solid var(--c-line) !important; color: var(--ds-mute) !important; font: 600 12px/1 var(--ds-body) !important; cursor: pointer; }
html body .gsm-md__del:hover { color: var(--ds-err) !important; border-color: rgba(251,113,133,.4) !important; }
.gsm-md__form { grid-template-columns: 1fr 1fr; } .gsm-md__form .gsm-ph__actions, .gsm-md__form .gsm-ph__field:nth-child(3) { grid-column: 1 / -1; }

/* Data rights panel (member fiche) */
html body .gsm-pr { display: grid; gap: 10px; padding: 0; background: none; border: 0; }
.gsm-pr__card { padding: 20px 22px; border-radius: 22px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }
.gsm-pr__card .gsm-ph__sub { margin-bottom: 14px !important; }
.gsm-pr__card--danger { border-color: rgba(251,113,133,.25); background: rgba(251,113,133,.04); }
.gsm-pr__check { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--ds-ink2); cursor: pointer; }
.gsm-pr__check input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--ds-accent); }

/* Online renewal (portal) */
.gsm-op__offers { display: grid; gap: 8px; margin: 16px 0 14px; }
.gsm-op__offer { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 18px; border: 1px solid var(--c-line); background: rgba(255,255,255,.02); cursor: pointer; transition: border-color .4s var(--ds-e), background .4s var(--ds-e); }
.gsm-op__offer input { position: absolute; opacity: 0; }
.gsm-op__offer span { display: grid; gap: 2px; } .gsm-op__offer b { font-size: 15px; } .gsm-op__offer small { font-size: 12px; color: var(--ds-mute); }
.gsm-op__offer em { font: 700 18px/1 var(--ds-display); font-style: normal; }
.gsm-op__offer:has(input:checked) { border-color: var(--ds-accent); background: color-mix(in srgb, var(--ds-accent) 8%, transparent); }
.gsm-op__offer:has(input:focus-visible) { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
.gsm-op__row { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.gsm-op__row .gsm-ph__field { width: 110px; }
.gsm-op__total { font-weight: 600; opacity: .85; }
.gsm-op__safe { display: block; margin-top: 10px; font-size: 11.5px; color: var(--ds-mute); }
.gsm-op__note { margin-bottom: 14px; padding: 12px 14px; border-radius: 14px; font-size: 13px; }
.gsm-op__note--ok { background: rgba(52,211,153,.1); color: #6ee7b7; } .gsm-op__note--err { background: rgba(251,113,133,.1); color: #DDF59A; }

/* Staff permissions */
.gsm-staff-card { flex-wrap: wrap; }
.gsm-staff-perms { flex-basis: 100%; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-top: 12px; margin-top: 4px; border-top: 1px solid rgba(255,255,255,.06); }
.gsm-staff-perms__lbl { font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ds-mute); }
.gsm-sp { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.gsm-sp__chip input { position: absolute; opacity: 0; }
.gsm-sp__chip span { display: inline-block; padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; color: var(--ds-mute); border: 1px solid rgba(255,255,255,.1); cursor: pointer; transition: all .35s var(--ds-e); }
.gsm-sp__chip input:checked + span { color: #0b0b10; background: var(--ds-ink); border-color: var(--ds-ink); }
.gsm-sp__chip input:focus-visible + span { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
.gsm-sp__msg { font-size: 12px; color: var(--ds-ok); }

/* Language switch */
html body .gsm-lang { display: flex; justify-content: flex-end; gap: 4px; margin: 0 0 14px; }
html body .gsm-lang a { padding: 6px 14px; border-radius: 999px; font: 600 12.5px/1 var(--ds-body); color: var(--ds-mute) !important; text-decoration: none !important; border: 1px solid rgba(255,255,255,.1); transition: all .35s var(--ds-e); }
html body .gsm-lang a.is-on { background: var(--ds-ink); color: #0b0b10 !important; border-color: var(--ds-ink); }
html body .gsm-lang a[lang="ar"] { font-family: "IBM Plex Sans Arabic", var(--ds-body); }

/* RTL (Arabic) */
html[dir="rtl"] body, .gsm-i18n[dir="rtl"] { --ds-body: "IBM Plex Sans Arabic", 'Geist', system-ui, sans-serif; --ds-display: "IBM Plex Sans Arabic", 'Geist', system-ui, sans-serif; }
.gsm-i18n[dir="rtl"], .gsm-i18n[dir="rtl"] * { letter-spacing: 0 !important; }
.gsm-i18n[dir="rtl"] { font-family: var(--ds-body); text-align: start; }
.gsm-i18n[dir="rtl"] .gsm-lang { justify-content: flex-start; }
.gsm-i18n[dir="rtl"] input[type="tel"], .gsm-i18n[dir="rtl"] input[type="email"], .gsm-i18n[dir="rtl"] .gsm-memcard-member-no, .gsm-i18n[dir="rtl"] code { direction: ltr; unicode-bidi: plaintext; }
.gsm-i18n[dir="rtl"] .gsm-memcard-front, .gsm-i18n[dir="rtl"] .gsm-memcard-back { text-align: right; }
.gsm-i18n[dir="rtl"] svg[style*="margin-right"] { margin-right: 0 !important; margin-left: 6px; }
.gsm-i18n[dir="rtl"] .gsm-ph__item figcaption, .gsm-i18n[dir="rtl"] .gsm-op__offer { text-align: right; }
.gsm-i18n[dir="rtl"] .gsm-portal-info-row, .gsm-i18n[dir="rtl"] .gsm-portal-actions-bar { direction: rtl; }

/* Mobile-first member screens */
@media (max-width: 640px) {
  html body .gsm-portal-wrap { padding-inline: 14px !important; }
  html body .gsm-portal-actions-bar { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px !important; }
  html body .gsm-portal-action-btn { justify-content: center; min-height: 48px; font-size: 13px !important; }
  html body .gsm-portal-quick-stats { gap: 6px !important; }
  html body .gsm-ph > *, html body .gsm-md > *, html body .gsm-op > *, html body .gsm-op-panel > * { margin-left: 14px; margin-right: 14px; }
  .gsm-ph__head { flex-direction: column; } .gsm-ph__add { width: 100%; justify-content: center; }
  .gsm-ph__grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .gsm-md__form { grid-template-columns: 1fr; }
  .gsm-op__row .gsm-ph__send { flex: 1; justify-content: center; }
  html body .gsm-ph__title { font-size: 20px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .gsm-ph__item, .gsm-ph__item img { animation: none; transition: none; }
}

/* Member card on phones: the 220px card clipped name, status and expiry, and
   the QR side (code + share buttons) needs more room once flipped. */
@media (max-width: 640px) {
  html body .gsm-memcard { aspect-ratio: auto !important; height: 300px !important; transition: height .6s var(--ds-e); }
  html body .gsm-memcard:has(.gsm-memcard-inner.is-flipped) { height: 470px !important; }
  html body .gsm-memcard-inner { height: 100% !important; }
  html body .gsm-memcard-front { padding: 18px 18px 16px !important; }
}
@media (max-width: 640px) {
  html body .gsm-portal-quick-stats { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; padding: 14px 8px !important; }
  html body .gsm-portal-quick-stats .gsm-portal-qs-divider { display: none !important; }
  html body .gsm-portal-qs { padding: 0 !important; border: 0 !important; }
  html body .gsm-portal-qs-val { font-size: 22px !important; }
  html body .gsm-portal-qs-lbl { font-size: 11px !important; }
}

/* ══ v9.20 Partner program page [gsm_partner_program] ══════════════ */
html body .gsm-pp { --c-line: rgba(255,255,255,.08); --c-line2: rgba(255,255,255,.14); max-width: 1120px; margin: 0 auto; padding: 32px 20px 80px; color: var(--ds-ink); font-family: var(--ds-body); }
.gsm-pp__hero { padding: 56px 0 36px; max-width: 820px; }
html body .gsm-pp__h1 { margin: 6px 0 18px !important; font: 700 clamp(34px, 5.4vw, 64px)/1.02 var(--ds-display) !important; letter-spacing: -.01em; color: var(--ds-ink) !important; text-transform: none !important; }
html body .gsm-pp__h1 em { font-style: normal; color: var(--ds-accent); }
html body .gsm-pp__h1--sm { font-size: clamp(28px, 4vw, 44px) !important; margin-bottom: 6px !important; }
.gsm-pp__lead { margin: 0; max-width: 60ch; font-size: 17px; line-height: 1.65; color: var(--ds-ink2); }
.gsm-pp__alert { margin-top: 18px; padding: 12px 16px; border-radius: 14px; background: rgba(251,113,133,.1); color: #DDF59A; font-size: 14px; }
.gsm-pp__steps { list-style: none; margin: 0 0 36px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; counter-reset: none; }
.gsm-pp__steps li { display: grid; gap: 6px; padding: 22px; border-radius: 22px; background: rgba(255,255,255,.03); border: 1px solid var(--c-line); box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }
.gsm-pp__steps b { font: 700 12px/1 var(--ds-body); letter-spacing: .2em; color: var(--ds-accent); }
.gsm-pp__steps strong { font-size: 17px; }
.gsm-pp__steps span { font-size: 14px; line-height: 1.55; color: var(--ds-mute); }
.gsm-pp__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; align-items: start; }
.gsm-pp__card { display: grid; gap: 14px; padding: 26px; border-radius: 26px; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015)), var(--ds-surface); border: 1px solid var(--c-line); box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 30px 60px -40px rgba(0,0,0,.9); min-width: 0; }
.gsm-pp__card--quiet { background: rgba(255,255,255,.02); }
html body .gsm-pp__card textarea { width: 100%; padding: 10px 14px !important; border-radius: 14px !important; background: rgba(255,255,255,.04) !important; border: 1px solid var(--c-line2) !important; color: var(--ds-ink) !important; font: 400 15px/1.5 var(--ds-body) !important; text-transform: none; letter-spacing: 0; resize: vertical; }
.gsm-pp__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.gsm-pp__terms { margin-top: 18px; padding: 18px 22px; border-radius: 18px; border: 1px dashed var(--c-line2); color: var(--ds-mute); font-size: 14px; line-height: 1.6; }
.gsm-pp__terms summary { cursor: pointer; color: var(--ds-ink); font-weight: 600; }
.gsm-pp__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 30px 0 22px; }
html body .gsm-pp__logout { padding: 8px 16px; border-radius: 999px; border: 1px solid var(--c-line2); color: var(--ds-mute) !important; text-decoration: none !important; font-size: 13px; white-space: nowrap; }
.gsm-pp__tag { display: inline-block; padding: 2px 10px; border-radius: 999px; background: rgba(251,191,36,.12); color: #fcd34d; font-size: 12px; }
.gsm-pp__link { display: grid; gap: 12px; padding: 24px; margin-bottom: 14px; border-radius: 26px; background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--ds-accent) 20%, transparent), transparent 60%), var(--ds-surface); border: 1px solid color-mix(in srgb, var(--ds-accent) 30%, transparent); }
.gsm-pp__copy { display: flex; gap: 8px; }
html body .gsm-pp__copy input { flex: 1; min-width: 0; min-height: 48px; padding: 10px 14px !important; border-radius: 14px !important; background: rgba(0,0,0,.35) !important; border: 1px solid var(--c-line2) !important; color: var(--ds-ink) !important; font: 500 14px/1 ui-monospace, Consolas, monospace !important; text-transform: none; letter-spacing: 0; }
.gsm-pp__share { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 14px; color: var(--ds-ink2); }
.gsm-pp__code { padding: 4px 12px; border-radius: 10px; background: rgba(255,255,255,.08); color: var(--ds-ink); letter-spacing: .12em; font-family: ui-monospace, Consolas, monospace; }
.gsm-pp__kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 14px; }
.gsm-pp__kpis div { display: grid; gap: 4px; padding: 18px; border-radius: 20px; background: rgba(255,255,255,.03); border: 1px solid var(--c-line); }
.gsm-pp__kpis b { font: 700 24px/1.1 var(--ds-display); }
.gsm-pp__kpis span { font-size: 12px; color: var(--ds-mute); }
.gsm-pp__kpis .is-accent { background: color-mix(in srgb, var(--ds-accent) 12%, transparent); border-color: color-mix(in srgb, var(--ds-accent) 35%, transparent); }
.gsm-pp__list { list-style: none; margin: 0; padding: 0; display: grid; }
.gsm-pp__list li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--c-line); }
.gsm-pp__list li:last-child { border-bottom: 0; }
.gsm-pp__list span { display: grid; gap: 2px; min-width: 0; } .gsm-pp__list b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .gsm-pp__list small { font-size: 12px; color: var(--ds-mute); }
.gsm-pp__st { flex: none; font-style: normal; padding: 4px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: rgba(255,255,255,.06); color: var(--ds-ink2); }
.gsm-pp__st--paying, .gsm-pp__st--approved { background: rgba(52,211,153,.12); color: #6ee7b7; }
.gsm-pp__st--signed_up, .gsm-pp__st--pending { background: rgba(251,191,36,.12); color: #fcd34d; }
.gsm-pp__st--paid { background: rgba(147,197,253,.12); color: #7AA7FF; }
.gsm-pp__st--rejected, .gsm-pp__st--ineligible { background: rgba(251,113,133,.1); color: #DDF59A; }
.gsm-pp__note { padding: 40px 0; color: var(--ds-mute); }
@media (max-width: 960px) { .gsm-pp__kpis { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) {
  .gsm-pp__steps, .gsm-pp__grid { grid-template-columns: 1fr; }
  .gsm-pp__kpis { grid-template-columns: 1fr 1fr; }
  .gsm-pp__hero { padding-top: 28px; }
  .gsm-pp__copy { flex-direction: column; }
  .gsm-pp__top { flex-direction: column; }
}
