/* ==========================================================================
   App shell: one navigation, three shapes.

     phone   (< 700)      bottom bar, Home in the centre (calmer than before)
     tablet  (700–1099)   compact rail down the left, icons over short labels
     desktop (≥ 1100)     sidebar with the brand, labelled rows, groups

   The desktop rail used to be an 88px floating capsule centred down the side
   with a permanently glowing Home button, which competed with the active tab
   and with Gaia herself. Here the rail is part of the page: a flat surface
   with a hairline edge, one quiet active state, and Gaia (the avatar) left as
   the only thing that glows. Loaded last; scoped to body.gaia-v2.
   ========================================================================== */

body.gaia-v2 {
  --shell-rail: 0px;
  --shell-surface: #0b1410;
  --shell-line: rgba(160, 255, 185, 0.10);
  --shell-active-bg: rgba(157, 225, 119, 0.10);
}

/* Desktop-only pieces stay out of the phone bar. */
body.gaia-v2 .gaia-rail__brand,
body.gaia-v2 .gaia-rail__home-icon,
body.gaia-v2 .gaia-rail__home-label { display: none; }
body.gaia-v2 .gaia-rail__practice[hidden] { display: none !important; }

/* —— Phone: the centre Home button glows less, and only when it is the page —— */
@media (max-width: 699px) {
  body.gaia-v2 .gaia-rail__practice { display: none !important; }   /* reached from You on phones */
  /* Every item gets an equal share of the bar: at least 44px to tap. */
  body.gaia-v2 .gaia-tabbar__group { flex: 3 1 0; display: flex; }
  body.gaia-v2 .gaia-tabbar__group .gaia-tabbar__link { flex: 1 0 auto; min-width: 44px; padding-inline: 2px; }
  /* Labels never ellipsise: "Community" is the longest and must read whole. */
  body.gaia-v2 .gaia-tabbar .gaia-tabbar__inner .gaia-tabbar__label { overflow: visible !important; text-overflow: clip !important; max-width: none !important; letter-spacing: -0.01em; }
  body.gaia-v2 .gaia-tabbar__home .gaia-tabbar__assist-pulse { opacity: 0.35; animation-duration: 6s; }
  body.gaia-v2 .gaia-tabbar__home:not(.is-active) { box-shadow: none !important; }
  body.gaia-v2 .gaia-tabbar__home:not(.is-active) .gaia-tabbar__assist-pulse { display: none; }
}

/* Very narrow phones: a little smaller, still whole words. */
@media (max-width: 374px) {
  body.gaia-v2 .gaia-tabbar__group .gaia-tabbar__link { min-width: 36px; padding-inline: 1px; }
  body.gaia-v2 .gaia-tabbar .gaia-tabbar__inner .gaia-tabbar__label { font-size: 9.5px !important; letter-spacing: -0.02em; }
  body.gaia-v2 .gaia-tabbar__home { width: 42px !important; height: 42px !important; flex: 0 0 42px !important; }
  body.gaia-v2 .gaia-tabbar__inner { gap: 2px !important; padding-inline: 4px !important; }
}

/* —— Tablet and desktop: the rail is part of the page ————————————————————— */
@media (min-width: 700px) {
  body.gaia-v2.gaia-has-tabbar { padding-left: var(--shell-rail) !important; padding-bottom: 0 !important; }
  body.gaia-v2 .gaia-tabbar {
    inset: 0 auto 0 0 !important;
    width: var(--shell-rail) !important;
    height: 100vh; height: 100dvh;
    padding: 0 !important;
    transform: none !important;
    display: block !important;
    background: var(--shell-surface);
    border-right: 1px solid var(--shell-line);
    z-index: 60;
  }
  body.gaia-v2 .gaia-tabbar::before { content: none !important; }
  body.gaia-v2 .gaia-tabbar__inner {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 2px !important;
    padding: 16px 10px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    overflow-y: auto;
  }
  body.gaia-v2 .gaia-tabbar__group { display: contents !important; }

  /* Order: brand, Home, Today, Energy, Academy, | Community, Shop, You, Practice */
  body.gaia-v2 .gaia-rail__brand { order: 0; }
  body.gaia-v2 .gaia-tabbar__home { order: 1 !important; }
  body.gaia-v2 .gaia-tabbar__group--left .gaia-tabbar__link:nth-child(1) { order: 2 !important; }
  body.gaia-v2 .gaia-tabbar__group--left .gaia-tabbar__link:nth-child(2) { order: 3 !important; }
  body.gaia-v2 .gaia-tabbar__group--left .gaia-tabbar__link:nth-child(3) { order: 4 !important; }
  body.gaia-v2 .gaia-tabbar__group--right .gaia-tabbar__link:nth-child(1) { order: 6 !important; margin-top: 14px; position: relative; }
  body.gaia-v2 .gaia-tabbar__group--right .gaia-tabbar__link:nth-child(2) { order: 7 !important; }
  body.gaia-v2 .gaia-tabbar__group--right .gaia-tabbar__link:nth-child(3) { order: 8 !important; }
  body.gaia-v2 .gaia-rail__practice { order: 9 !important; }
  /* the hairline between "your day" and "your world" */
  body.gaia-v2 .gaia-tabbar__group--right .gaia-tabbar__link:nth-child(1)::after {
    content: "";
    position: absolute;
    left: 12px; right: 12px; top: -8px;
    height: 1px;
    background: var(--shell-line);
  }

  /* Every item, Home included, is the same kind of row. */
  body.gaia-v2 .gaia-tabbar__link,
  body.gaia-v2 .gaia-tabbar__home {
    appearance: none;
    position: relative;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    flex: none !important;
    display: flex !important;
    align-items: center;
    border: 0 !important;
    border-radius: 12px !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--v3-text-2) !important;
    font: inherit;
    text-decoration: none;
    cursor: pointer;
    transform: none !important;
    transition: background-color 0.18s ease, color 0.18s ease;
  }
  body.gaia-v2 .gaia-tabbar__link::before { content: none !important; }
  body.gaia-v2 .gaia-tabbar__home .gaia-tabbar__assist-pulse,
  body.gaia-v2 .gaia-tabbar__home .gaia-tabbar__assist-mark { display: none !important; }
  body.gaia-v2 .gaia-rail__home-icon { display: inline-block; }
  body.gaia-v2 .gaia-tabbar__icon { font-size: 22px; transform: none !important; color: inherit !important; }
  body.gaia-v2 .gaia-tabbar__link:hover,
  body.gaia-v2 .gaia-tabbar__home:hover { background: rgba(255, 255, 255, 0.04) !important; color: var(--v3-text) !important; }
  body.gaia-v2 .gaia-tabbar__link:focus-visible,
  body.gaia-v2 .gaia-tabbar__home:focus-visible,
  body.gaia-v2 .gaia-rail__brand:focus-visible { outline: none; box-shadow: var(--g-focus) !important; }
  body.gaia-v2 .gaia-tabbar__link.is-active,
  body.gaia-v2 .gaia-tabbar__home.is-active { background: var(--shell-active-bg) !important; color: var(--v3-green-hi) !important; }
  body.gaia-v2 .gaia-tabbar__badge { top: 6px !important; }

  body.gaia-v2 .gaia-rail__brand {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--v3-text);
    border-radius: 12px;
  }
  body.gaia-v2 .gaia-rail__brand img { width: 32px; height: 32px; flex: none; }

  /* The header no longer repeats the brand: the rail carries it. */
  body.gaia-v2 .g-topbar__brand { visibility: hidden; }
  .gaia-assist-nudge { left: calc(var(--shell-rail) + 20px) !important; }
}

/* —— Tablet: compact rail, icon over a short label ———————————————————————— */
@media (min-width: 700px) and (max-width: 1099px) {
  body.gaia-v2 { --shell-rail: 88px; }
  body.gaia-v2 .gaia-rail__brand { justify-content: center; padding: 4px 0 14px; }
  body.gaia-v2 .gaia-rail__brand span { display: none; }
  body.gaia-v2 .gaia-tabbar__link,
  body.gaia-v2 .gaia-tabbar__home {
    flex-direction: column !important;
    justify-content: center;
    gap: 4px;
    padding: 9px 2px !important;
  }
  body.gaia-v2 .gaia-tabbar .gaia-tabbar__inner .gaia-tabbar__label,
  body.gaia-v2 .gaia-tabbar .gaia-tabbar__inner .gaia-rail__home-label { display: block !important; font-size: 10px !important; font-weight: 600; line-height: 1.1; letter-spacing: -0.01em; max-width: none !important; overflow: visible !important; text-overflow: clip !important; white-space: nowrap; }
}

/* —— Desktop: sidebar with labelled rows ———————————————————————————————— */
@media (min-width: 1100px) {
  body.gaia-v2 { --shell-rail: 232px; }
  body.gaia-v2 .gaia-tabbar__inner { padding: 20px 14px !important; }
  body.gaia-v2 .gaia-tabbar .gaia-rail__brand { padding: 4px 10px 22px; }
  body.gaia-v2 .gaia-tabbar .gaia-rail__brand span { font-size: 16px; font-weight: 650; letter-spacing: -0.01em; }
  body.gaia-v2 .gaia-tabbar__link,
  body.gaia-v2 .gaia-tabbar__home {
    flex-direction: row !important;
    justify-content: flex-start;
    gap: 12px;
    padding: 10px 12px !important;
  }
  body.gaia-v2 .gaia-tabbar .gaia-tabbar__inner .gaia-tabbar__label,
  body.gaia-v2 .gaia-tabbar .gaia-tabbar__inner .gaia-rail__home-label { display: block !important; font-size: 14.5px !important; font-weight: 550; letter-spacing: 0; line-height: 1.2; }
  body.gaia-v2 .gaia-tabbar__icon { font-size: 21px; }
  body.gaia-v2 .gaia-tabbar__group--right .gaia-tabbar__link:nth-child(1) { margin-top: 18px; }
  body.gaia-v2 .gaia-tabbar__group--right .gaia-tabbar__link:nth-child(1)::after { top: -10px; }
}

@media (prefers-reduced-motion: reduce) {
  body.gaia-v2 .gaia-tabbar__link, body.gaia-v2 .gaia-tabbar__home { transition: none; }
}

/* ==========================================================================
   Member Home hierarchy: my state → for me → my places → book → plan.
   The state is the one large surface on the page; everything after it is
   flatter (fewer borders, quieter fills), so importance reads from scale and
   order rather than from every block being the same outlined card.
   ========================================================================== */
body.gaia-v2 .g-home2__greet { margin-bottom: 18px; }
body.gaia-v2 .g-home2__state {
  position: relative;
  padding: clamp(22px, 3vw, 34px);
  border-radius: 26px;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(157, 225, 119, 0.14), transparent 55%),
    radial-gradient(90% 120% at 0% 100%, rgba(88, 199, 232, 0.08), transparent 60%),
    var(--v3-card-2);
  border: 1px solid rgba(157, 225, 119, 0.22);
  overflow: hidden;
}
body.gaia-v2 .g-home2__state h2 { margin: 6px 0 0; font-size: clamp(24px, 3vw, 32px); font-weight: 600; letter-spacing: -0.015em; color: var(--v3-text); }
body.gaia-v2 .g-home2__state-line { margin: 10px 0 0; color: var(--v3-text-2); font-size: 15px; line-height: 1.5; max-width: 60ch; }
body.gaia-v2 .g-home2__nums { display: flex; gap: clamp(28px, 6vw, 64px); margin-top: 10px; }
body.gaia-v2 .g-home2__num { display: grid; gap: 2px; }
body.gaia-v2 .g-home2__num strong { font-size: clamp(44px, 7vw, 64px); font-weight: 600; letter-spacing: -0.03em; line-height: 1; color: var(--v3-text); font-variant-numeric: tabular-nums; }
body.gaia-v2 .g-home2__num span { color: var(--v3-text-2); font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.gaia-v2 .g-home2__state .g-home2__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
body.gaia-v2 .g-home2__state .g-home2__actions .g-btn { min-height: 44px; padding-inline: 18px; width: auto; }

body.gaia-v2 .g-home2__for { margin-top: 28px; }
body.gaia-v2 .g-home2__for > .g-super-kicker { margin: 0 2px 10px; }
body.gaia-v2 .g-home2__for-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
body.gaia-v2 .g-home2__tile {
  appearance: none;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 0;
  border-radius: 18px;
  background: var(--v3-card);
  color: var(--v3-text);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.18s ease;
}
body.gaia-v2 .g-home2__tile:hover { background: var(--v3-card-2); }
body.gaia-v2 .g-home2__tile:focus-visible { outline: none; box-shadow: var(--g-focus); }
body.gaia-v2 .g-home2__tile-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: rgba(157, 225, 119, 0.10); color: var(--v3-green); font-size: 21px; }
body.gaia-v2 .g-home2__tile-copy { display: grid; gap: 3px; min-width: 0; }
body.gaia-v2 .g-home2__tile-copy small { color: var(--v3-label, #8fc39c); font-size: 11.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.gaia-v2 .g-home2__tile-copy strong { font-size: 15.5px; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
body.gaia-v2 .g-home2__tile-copy em { font-style: normal; color: var(--v3-text-2); font-size: 13px; }
/* The gathering, in the same row, without its own heavy frame. */
body.gaia-v2 .g-home2__for-grid > .g-home2__event { border: 0; background: var(--v3-card); border-radius: 18px; }

@media (min-width: 760px) {
  body.gaia-v2 .g-home2__for-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}
/* "Your Gaia" and "Book a session": flatter rows, no outline. */
body.gaia-v2 .g-home2 :is(.g-home2__rows .g-super-service, .g-home2__action) { border-color: transparent !important; background: var(--v3-card) !important; }
body.gaia-v2 .g-home2 :is(.g-home2__rows .g-super-service, .g-home2__action):hover { background: var(--v3-card-2) !important; }

/* For you: tiles keep their own height; the gathering is compact here. */
body.gaia-v2 .g-home2__for-grid { align-items: start; }
body.gaia-v2 .g-home2__for .g-home2__event { grid-template-columns: 72px minmax(0, 1fr) !important; gap: 14px; padding: 16px 18px; }
body.gaia-v2 .g-home2__for .g-home2__event-art { width: 72px !important; height: 72px !important; border-radius: 14px; }
body.gaia-v2 .g-home2__for .g-home2__event h2 { font-size: 16px !important; line-height: 1.3; margin-top: 4px; }
body.gaia-v2 .g-home2__for .g-home2__event-body > p:not(.g-super-kicker) { font-size: 13px; margin-top: 4px; }
body.gaia-v2 .g-home2__for .g-home2__event .g-super-kicker { font-size: 11px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
body.gaia-v2 .g-home2__for .g-home2__actions { margin-top: 10px; gap: 8px; flex-wrap: wrap; }
body.gaia-v2 .g-home2__for .g-home2__actions .g-btn { min-height: 36px; padding: 6px 14px; font-size: 13px; width: auto; }

/* —— You: at a glance ———————————————————————————————————————————————————— */
body.gaia-v2 .g-glance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
body.gaia-v2 .g-glance__tile {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 18px;
  background: var(--v3-card);
  color: var(--v3-text);
  text-decoration: none;
  transition: background-color 0.18s ease;
}
body.gaia-v2 .g-glance__tile:hover { background: var(--v3-card-2); }
body.gaia-v2 .g-glance__tile:focus-visible { outline: none; box-shadow: var(--g-focus); }
body.gaia-v2 .g-glance__tile i { grid-row: 1 / span 2; font-size: 22px; color: var(--v3-green); }
body.gaia-v2 .g-glance__tile strong { font-size: 19px; font-weight: 600; line-height: 1.15; }
body.gaia-v2 .g-glance__tile span { font-size: 12.5px; color: var(--v3-text-2); }
@media (min-width: 760px) { body.gaia-v2 .g-glance { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* —— Energy: the chosen experience leads; the toolkit is quieter ————————— */
body.gaia-v2 [data-screen="wellness"] .g-energy-more { margin-top: 12px; }
body.gaia-v2 [data-screen="wellness"] .g-energy-intro h2 { font-size: clamp(19px, 2.2vw, 22px) !important; }
body.gaia-v2 [data-screen="wellness"] .g-tk { border-color: transparent !important; background: var(--v3-card) !important; box-shadow: none !important; }
body.gaia-v2 [data-screen="wellness"] .g-tk.is-open { border-color: var(--v3-border) !important; }
body.gaia-v2 [data-screen="wellness"] .g-tk__head { padding-block: 10px !important; }
body.gaia-v2 [data-screen="wellness"] .g-tk__icon { width: 36px !important; height: 36px !important; }

/* —— Academy shelves ——————————————————————————————————————————————————— */
body.gaia-v2 .g-shelf__lead { margin: -4px 2px 14px; color: var(--v3-text-2); font-size: 14px; }
body.gaia-v2 .g-shelf__more { margin-top: 12px; }
body.gaia-v2 .g-shelf__more > summary { cursor: pointer; color: var(--v3-green); font-weight: 600; font-size: 14px; padding: 6px 2px; list-style: none; }
body.gaia-v2 .g-shelf__more > summary::-webkit-details-marker { display: none; }
body.gaia-v2 .g-shelf__more[open] > summary { margin-bottom: 12px; }
body.gaia-v2 [data-screen="academy"] .g-access--link { border-color: transparent !important; background: var(--v3-card) !important; }
body.gaia-v2 [data-screen="academy"] .g-access--link:hover { background: var(--v3-card-2) !important; }

/* —— Shop: fewer, larger products per row ———————————————————————————————— */
@media (min-width: 700px) {
  body.gaia-v2 [data-screen="store"] .g-store-rail { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 18px !important; }
}
@media (min-width: 1280px) {
  body.gaia-v2 [data-screen="store"] .g-store-rail { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
body.gaia-v2 [data-screen="store"] .g-store-tile { border-color: transparent !important; background: var(--v3-card) !important; }
body.gaia-v2 [data-screen="store"] .g-store-tile .g-tile__title { font-size: 15px; line-height: 1.35; }
body.gaia-v2 [data-screen="store"] .g-store-tile .g-tile__price { font-size: 16px; font-weight: 650; color: var(--v3-text); }
body.gaia-v2 #member-me > .g-glance { grid-column: 1 / -1; width: 100%; }
body.gaia-v2 .g-glance__tile strong { white-space: nowrap; }
body.gaia-v2 .g-home2__state-hint { font-size: 13.5px; color: var(--v3-text-2); }
body.gaia-v2 .g-linkbtn { appearance: none; background: none; border: 0; padding: 0; color: var(--v3-green); font: inherit; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
body.gaia-v2 .g-readings-nudge__hint { display: block; margin-top: 2px; color: var(--v3-text-2); font-size: 12.5px; }

/* ==========================================================================
   Fewer frames. A page title is a heading, not a card; a section is a heading
   and its items, not a box around more boxes. Only the things a person taps
   (tiles, rows, products) keep a surface. Applies on every screen.
   ========================================================================== */
body.gaia-v2 .gaia-main :is(.g-page__head, .g-super-page-head, .g-store__head) {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 6px 2px 6px !important;
  min-height: 0 !important;
  border-radius: 0 !important;
}
body.gaia-v2 .gaia-main :is(.g-page__head, .g-super-page-head, .g-store__head)::before,
body.gaia-v2 .gaia-main :is(.g-page__head, .g-super-page-head, .g-store__head)::after { content: none !important; }
body.gaia-v2 .gaia-main :is(.g-page__title, .g-store__title, .g-super-page-head h1) { font-size: clamp(30px, 4vw, 42px) !important; letter-spacing: -0.02em; }

body.gaia-v2 :is([data-screen="community"], [data-screen="bookings"], [data-screen="events"], [data-screen="inbox"], [data-screen="academy"]) .gaia-main > .g-super-list,
body.gaia-v2 :is([data-screen="community"], [data-screen="bookings"], [data-screen="events"], [data-screen="inbox"], [data-screen="academy"]) .gaia-main > section.g-super-list {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
body.gaia-v2 :is([data-screen="community"], [data-screen="bookings"], [data-screen="events"], [data-screen="inbox"], [data-screen="academy"]) .gaia-main > .g-super-list > .g-super-section-head { padding-inline: 2px !important; }
body.gaia-v2 .gaia-main > .g-super-list + .g-super-list { margin-top: 30px !important; }
/* the circle counts are facts, not cards */
body.gaia-v2 [data-screen="community"] .g-stats .g-stat { background: none !important; border: 0 !important; padding: 0 18px 0 0 !important; }
body.gaia-v2 [data-screen="academy"] [data-acad-sync] > .g-card--feature { background: none !important; border: 0 !important; box-shadow: none !important; padding: 8px 2px 4px !important; }
body.gaia-v2 [data-screen="academy"] [data-acad-sync] > .g-card--feature::before, body.gaia-v2 [data-screen="academy"] [data-acad-sync] > .g-card--feature::after { content: none !important; }
body.gaia-v2 #member-glance[hidden], body.gaia-v2 #member-glance.is-on-practice-tab { display: none !important; }
body.gaia-v2 [data-screen="profile"] #member-glance { max-width: 1180px; margin-inline: auto; }

/* Tablet: two plans across, so the four read as a set rather than a long list. */
@media (min-width: 700px) and (max-width: 1099px) {
  body.gaia-v2 [data-screen="store"] #store-memberships:has(> .g-tier) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: stretch; }
  body.gaia-v2 [data-screen="store"] #store-memberships:has(> .g-tier) > :not(.g-tier) { grid-column: 1 / -1; }
  body.gaia-v2 [data-screen="store"] #store-memberships > .g-tier { margin: 0; display: flex; flex-direction: column; }
  body.gaia-v2 [data-screen="store"] #store-memberships > .g-tier .g-card__actions { margin-top: auto; }
  /* the event card can use the width */
  body.gaia-v2 [data-screen="events"] .g-event-grid > .g-event-card:only-child { grid-column: 1 / -1; }
}
body.gaia-v2 .g-home2__upcoming { margin-top: 26px; }
body.gaia-v2 .g-home2__upcoming > .g-super-kicker { margin: 0 2px 10px; }
body.gaia-v2 .g-home2__upcoming > .g-home2__event { border: 0; background: var(--v3-card); border-radius: 18px; }
