/* ═══════════════════════════════════════════════════════════════════════
   ribbon.css — the Topline "Show Ribbon" look
   ───────────────────────────────────────────────────────────────────────
   One file, read top to bottom:

     1. TOKENS      colours, fonts, sizes. Change the look HERE.
     2. BASE        page, text, links
     3. LAYOUT      containers and grids
     4. HEADER      brand, navigation, dropdowns, wallet, bell, user menu
     5. BUTTONS     .rb-btn
     6. CARDS       .rb-card, headings, empty states
     7. SMALL BITS  pills, tags, status, avatars, progress bars
     8. TABLES      .rb-table
     9. DASHBOARD   stat tiles, show cards, quests, notifications
    10. FOOTER
    11. SMALL SCREENS
   12. FORMS, ALERTS, MODALS, TABS   (reusable)
   13. HORSE PAGE

   Naming: every class starts with "rb-" so this file can sit beside the
   old stylesheets without touching them. Names follow
   block / block__part / block--variant  (e.g. rb-show__name, rb-show--red).

   No !important anywhere. If something won't change, a later rule is
   simply more specific; fix the rule, don't force it.
   ═══════════════════════════════════════════════════════════════════════ */


/* ═══ 1. TOKENS ═════════════════════════════════════════════════════════
   The five ribbon colours:
     Deep Space Blue #1D3557   first place · main buttons · logo
     Steel Blue      #457B9D   second tone of blue · bars
     Sunflower Gold  #F4B942   third place · wins · highlights
     Brick Ember     #C03221   second place · alerts
     Alabaster       #E1DEE3   lines and soft surfaces

   Light is the default. Dark switches on when the visitor's device is set
   to dark, or when the toggle sets data-theme="dark" on <html>.
   "-text" colours are deeper shades used wherever small text must be readable.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
  /* surfaces */
  --rb-bg:         #f6f5f7;
  --rb-surface:    #ffffff;
  --rb-surface-2:  #efedf1;
  --rb-line:       #e1dee3;

  /* text */
  --rb-ink:        #121d33;
  --rb-muted:      #58627a;

  /* main action colour (buttons, active nav, checkmarks) */
  --rb-primary:      #1d3557;
  --rb-on-primary:   #ffffff;
  --rb-primary-soft: #e8eff5;

  /* ribbon accents */
  --rb-gold:       #f4b942;
  --rb-gold-text:  #8a5a00;
  --rb-gold-soft:  #fdf1d6;
  --rb-red:        #c03221;
  --rb-red-soft:   #fae5e1;
  --rb-blue:       #457b9d;
  --rb-blue-text:  #2f6486;
  --rb-blue-soft:  #e4eef5;

  /* type */
  --rb-font:       'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --rb-font-serif: 'Newsreader', Georgia, serif;   /* titles only */

  /* shape + depth */
  --rb-radius:     20px;
  --rb-radius-sm:  12px;
  --rb-pill:       999px;
  --rb-shadow:     0 1px 2px rgba(29, 53, 87, .05), 0 12px 32px rgba(29, 53, 87, .06);
  --rb-shadow-pop: 0 4px 12px rgba(29, 53, 87, .10), 0 24px 48px rgba(29, 53, 87, .14);

  /* layout */
  --rb-max:        1240px;
  --rb-gutter:     24px;
  --rb-header-h:   72px;

  color-scheme: light;
}

/* Dark: used when the device prefers dark (unless the visitor chose light)... */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --rb-bg:         #0e182b;
    --rb-surface:    #16243d;
    --rb-surface-2:  #1d2d49;
    --rb-line:       #2a3d5c;
    --rb-ink:        #e1dee3;
    --rb-muted:      #9fb0c4;
    --rb-primary:      #f4b942;
    --rb-on-primary:   #0e182b;
    --rb-primary-soft: #1f3556;
    --rb-gold-text:  #f4b942;
    --rb-gold-soft:  #3a3016;
    --rb-red:        #ff8f7e;
    --rb-red-soft:   #43211f;
    --rb-blue:       #6aa3c4;
    --rb-blue-text:  #8fbbd8;
    --rb-blue-soft:  #27415b;
    --rb-shadow:     0 1px 2px rgba(0, 0, 0, .40), 0 12px 32px rgba(0, 0, 0, .30);
    --rb-shadow-pop: 0 4px 12px rgba(0, 0, 0, .45), 0 24px 48px rgba(0, 0, 0, .45);
    color-scheme: dark;
  }
}
/* ...or when the toggle forces it. Keep these values identical to the block above. */
:root[data-theme="dark"] {
  --rb-bg:         #0e182b;
  --rb-surface:    #16243d;
  --rb-surface-2:  #1d2d49;
  --rb-line:       #2a3d5c;
  --rb-ink:        #e1dee3;
  --rb-muted:      #9fb0c4;
  --rb-primary:      #f4b942;
  --rb-on-primary:   #0e182b;
  --rb-primary-soft: #1f3556;
  --rb-gold-text:  #f4b942;
  --rb-gold-soft:  #3a3016;
  --rb-red:        #ff8f7e;
  --rb-red-soft:   #43211f;
  --rb-blue:       #6aa3c4;
  --rb-blue-text:  #8fbbd8;
  --rb-blue-soft:  #27415b;
  --rb-shadow:     0 1px 2px rgba(0, 0, 0, .40), 0 12px 32px rgba(0, 0, 0, .30);
  --rb-shadow-pop: 0 4px 12px rgba(0, 0, 0, .45), 0 24px 48px rgba(0, 0, 0, .45);
  color-scheme: dark;
}


/* ═══ 2. BASE ═══════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }

body.rb-body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--rb-bg);
  color: var(--rb-ink);
  font-family: var(--rb-font);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* :where() keeps these resets weak, so any rb- class (e.g. a button's colour) always wins over them */
:where(.rb-body) a { color: inherit; text-decoration: none; }
:where(.rb-body) p { margin: 0; }
:where(.rb-body) h1, :where(.rb-body) h2, :where(.rb-body) h3 { margin: 0; }
:where(.rb-body) img { max-width: 100%; }
.rb-body :focus-visible { outline: 3px solid var(--rb-blue); outline-offset: 2px; }

.rb-muted  { color: var(--rb-muted); }
.rb-link   { color: var(--rb-primary); font-weight: 600; }
.rb-link:hover { text-decoration: none; }
.rb-sr     { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.rb-icon   { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.8;
             stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }


/* ═══ 3. LAYOUT ═════════════════════════════════════════════════════════ */
.rb-wrap {
  width: 100%;
  max-width: var(--rb-max);
  margin: 0 auto;
  padding-inline: var(--rb-gutter);
}

.rb-main {
  flex: 1;
  padding-block: 56px 88px;
}
.rb-stack { display: flex; flex-direction: column; gap: 48px; }   /* big sections down a page */
.rb-stack--sm { gap: 24px; }

/* two columns: wide main + narrow sidebar */
.rb-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 32px;
  align-items: start;
}
.rb-col { display: flex; flex-direction: column; gap: 32px; min-width: 0; }


/* ═══ 4. HEADER ═════════════════════════════════════════════════════════ */
.rb-header {
  position: sticky; top: 0;   /* stays at the top while scrolling */
  z-index: 50;
  background: var(--rb-surface);
  border-bottom: 1px solid var(--rb-line);
}
.rb-header__in {
  max-width: none;              /* header runs the full width of the screen (page content below keeps its own width) */
  padding-inline: 32px;
  display: flex;
  align-items: center;
  gap: 8px 16px;
  min-height: var(--rb-header-h);
}

/* brand */
.rb-brand { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
/* The logo is a transparent shape (assets/img/logo-mark.png) filled with the theme colour:
   navy in light mode, gold in dark mode. Swap the picture and it recolours itself. */
.rb-brand__mark {
  width: 46px; height: 46px;
  background-color: var(--rb-primary);
  -webkit-mask: url('../img/logo-mark.png') center / contain no-repeat;
          mask: url('../img/logo-mark.png') center / contain no-repeat;
}
.rb-brand__name { font-family: var(--rb-font-serif); font-size: 27px; font-weight: 600; letter-spacing: -.01em; }

/* navigation */
.rb-nav { display: flex; flex-wrap: nowrap; gap: 0; flex: 1; }

.rb-menu { position: relative; }
.rb-menu > summary { list-style: none; cursor: pointer; }
.rb-menu > summary::-webkit-details-marker { display: none; }

.rb-navlink {
  display: flex; align-items: center; gap: 5px;
  min-height: 44px;
  padding: 0 10px;
  border-radius: var(--rb-pill);
  color: var(--rb-muted);
  font-weight: 500;
  white-space: nowrap;
}
.rb-navlink:hover,
.rb-menu[open] > .rb-navlink { color: var(--rb-ink); background: var(--rb-surface-2); }
.rb-navlink.is-active { color: var(--rb-primary); background: var(--rb-primary-soft); font-weight: 600; }
.rb-navlink .rb-icon { width: 12px; height: 12px; stroke-width: 2.2; transition: transform .15s; }
.rb-menu[open] > .rb-navlink .rb-icon { transform: rotate(180deg); }

/* dropdown panel */
.rb-menu__panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 60;
  min-width: 280px;
  padding: 8px;
  background: var(--rb-surface);
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  box-shadow: var(--rb-shadow-pop);
}
.rb-menu--end > .rb-menu__panel { left: auto; right: 0; }

.rb-menu__heading {
  padding: 10px 12px 4px;
  font-size: 12px; font-weight: 700; letter-spacing: .02em;
  color: var(--rb-muted);
}
.rb-menu__item {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 0; border-radius: 10px;
  background: none;
  color: inherit; font: inherit; text-align: left;
  cursor: pointer;
}
/* row with an icon on the left: icon | title over small text */
.rb-menu__item { display: grid; grid-template-columns: 22px 1fr; column-gap: 12px; align-items: start; }
.rb-menu__item > i { grid-row: 1 / span 2; margin-top: 3px; color: var(--rb-primary); text-align: center; }
.rb-menu__item > strong, .rb-menu__item > span { grid-column: 2; }
.rb-menu__heading i { margin-right: 4px; }
.rb-menu__item:hover { background: var(--rb-surface-2); }
.rb-menu__item.is-active { background: var(--rb-primary-soft); }
.rb-menu__item strong { display: block; font-weight: 600; }
.rb-menu__item span   { display: block; font-size: 13px; color: var(--rb-muted); line-height: 1.35; }
.rb-menu__rule { border: 0; border-top: 1px solid var(--rb-line); margin: 6px 4px; }

/* right-hand side of the header */
.rb-header__tools { display: flex; align-items: center; gap: 10px; margin-left: auto; }

.rb-iconbtn {
  position: relative;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border: 1px solid var(--rb-line);
  border-radius: 50%;
  background: var(--rb-surface);
  color: var(--rb-ink);
  cursor: pointer;
  font-size: 18px;
}
.rb-iconbtn:hover { background: var(--rb-surface-2); }

/* light/dark toggle: show the moon in light mode, the sun in dark */
.rb-themebtn .rb-sun { display: none; }
:root[data-theme="dark"] .rb-themebtn .rb-sun  { display: block; }
:root[data-theme="dark"] .rb-themebtn .rb-moon { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .rb-themebtn .rb-sun  { display: block; }
  :root:not([data-theme="light"]) .rb-themebtn .rb-moon { display: none; }
}

/* wallet */
.rb-wallet {
  display: flex; align-items: center; gap: 14px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-pill);
  font-weight: 600; font-size: 14px;
}
.rb-wallet:hover { background: var(--rb-surface-2); }
.rb-wallet__item { display: flex; align-items: center; gap: 6px; }
.rb-wallet__item .rb-icon { color: var(--rb-gold-text); }

/* count badge (bell, admin) */
.rb-count {
  position: absolute; top: 0; right: 0;
  min-width: 18px; height: 18px; padding: 0 4px;
  display: grid; place-items: center;
  border-radius: var(--rb-pill);
  background: var(--rb-red);
  color: var(--rb-surface);
  font-size: 10px; font-weight: 700; line-height: 1;
}
.rb-count/* add-a-class panel: three tidy rows */
.rb-adder__grid { display: grid; gap: 14px 16px; align-items: start; }
.rb-adder__grid--top { grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr); }
.rb-adder__grid--mid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.rb-adder__grid--breeds { grid-template-columns: minmax(0, 4fr) auto minmax(0, 8fr); }
.rb-adder__flags { display: contents; }
#inhand-exclusive-field { grid-column: 1 / -1; padding-top: 0; }
#inhand-exclusive-field[hidden] { display: none; }
@media (max-width: 860px) { .rb-adder__grid--top, .rb-adder__grid--breeds { grid-template-columns: 1fr; } .rb-adder__grid--breeds .rb-field--check { padding-top: 0; } }
@media (max-width: 560px) { .rb-adder__grid--mid { grid-template-columns: 1fr 1fr; } }

[hidden] { display: none; }

/* notification dropdown */
.rb-bell > summary { padding: 0; }
.rb-bell .rb-menu__panel { width: 360px; max-width: calc(100vw - 32px); padding: 0; overflow: hidden; }
.rb-notif__head, .rb-notif__foot { display: flex; justify-content: space-between; padding: 14px 16px; font-weight: 700; }
.rb-notif__head { border-bottom: 1px solid var(--rb-line); }
.rb-notif__head a, .rb-notif__foot a { color: var(--rb-primary); font-weight: 600; font-size: 14px; }
.rb-notif__foot { border-top: 1px solid var(--rb-line); }
.rb-notif__list { max-height: 360px; overflow-y: auto; }
.rb-notif__empty { padding: 20px 16px; color: var(--rb-muted); }
.rb-notif__item { display: flex; gap: 10px; align-items: flex-start; padding: 12px 16px; border-bottom: 1px solid var(--rb-line); }
.rb-notif__item:hover { background: var(--rb-surface-2); }
.rb-notif__item.is-read { opacity: .65; }
.rb-notif__item > i { margin-top: 3px; color: var(--rb-primary); }
.rb-notif__text { flex: 1; font-size: 14px; }
.rb-notif__time { display: block; font-size: 12px; color: var(--rb-muted); }
.rb-notif__dot { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: var(--rb-red); flex-shrink: 0; }

/* player menu */
/* the player menu is just the avatar */
.rb-user > summary { display: block; width: 44px; height: 44px; padding: 0; border-radius: 50%; }
.rb-user > summary:hover .rb-avatar, .rb-user[open] > summary .rb-avatar { box-shadow: 0 0 0 3px var(--rb-primary-soft); }
.rb-avatar {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: var(--rb-primary);
  color: var(--rb-on-primary);
  font-size: 14px; font-weight: 700;
}
.rb-avatar img { width: 100%; height: 100%; object-fit: cover; }

.rb-navtoggle { display: none; }


/* ═══ 5. BUTTONS ════════════════════════════════════════════════════════
   <a class="rb-btn rb-btn--primary">   main action
   <a class="rb-btn rb-btn--soft">      quiet action
   <a class="rb-btn">                   outline (default)                    */
.rb-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-pill);
  background: var(--rb-surface);
  color: var(--rb-ink);
  font: inherit; font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.rb-btn:hover { background: var(--rb-surface-2); }
.rb-btn--primary { background: var(--rb-primary); border-color: var(--rb-primary); color: var(--rb-on-primary); }
.rb-btn--primary:hover { background: var(--rb-primary); filter: brightness(1.12); }
.rb-btn--soft { background: var(--rb-primary-soft); border-color: transparent; color: var(--rb-primary); }
.rb-btn--sm { min-height: 36px; padding: 0 14px; font-size: 14px; }


/* ═══ 6. CARDS ══════════════════════════════════════════════════════════ */
.rb-card {
  padding: 28px;
  background: var(--rb-surface);
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius);
  box-shadow: var(--rb-shadow);
}
.rb-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.rb-card__title { font-size: 20px; font-weight: 700; letter-spacing: -.02em; }
.rb-empty { padding: 12px 0; color: var(--rb-muted); }

/* page title block */
.rb-pagehead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; }
.rb-title { font-family: var(--rb-font-serif); font-weight: 500; font-size: clamp(34px, 5vw, 52px); line-height: 1.05; letter-spacing: -.02em; }
.rb-title__sub { color: var(--rb-muted); font-weight: 400; }
.rb-pagehead__text { display: flex; flex-direction: column; gap: 8px; }
.rb-actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* notice bar (e.g. "link your forum account") */
.rb-notice { background: var(--rb-gold-soft); border-bottom: 1px solid var(--rb-line); }
.rb-notice__in { display: flex; align-items: center; gap: 16px; padding-block: 12px; flex-wrap: wrap; }
.rb-notice__text { flex: 1; min-width: 220px; }
.rb-notice__text a { text-decoration: none; }
.rb-notice__close { border: 0; background: none; color: var(--rb-muted); font-size: 22px; line-height: 1; cursor: pointer; min-width: 44px; min-height: 44px; }

/* welcome / alert banner */
.rb-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  padding: 28px 32px;
  background: var(--rb-primary-soft);
  border-radius: var(--rb-radius);
}
.rb-banner__title { font-family: var(--rb-font-serif); font-size: clamp(22px, 2.4vw, 30px); font-weight: 500; }
.rb-banner__text { margin-top: 6px; color: var(--rb-muted); max-width: 640px; }


/* ═══ 7. SMALL BITS ═════════════════════════════════════════════════════ */

/* pill / tag: <span class="rb-pill rb-pill--gold"> */
.rb-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 12px;
  border-radius: var(--rb-pill);
  background: var(--rb-primary-soft);
  color: var(--rb-primary);
  font-size: 12px; font-weight: 600;
  white-space: nowrap;
}
.rb-pill--blue { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-pill--gold { background: var(--rb-gold-soft); color: var(--rb-gold-text); }
.rb-pill--red  { background: var(--rb-red-soft);  color: var(--rb-red); }
.rb-pill--plain{ background: var(--rb-surface-2); color: var(--rb-muted); }

/* horse status (Resting, Training, Injured...) */
.rb-status--resting  { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-status--training { background: var(--rb-primary-soft); color: var(--rb-primary); }
.rb-status--injured,
.rb-status--burnout  { background: var(--rb-red-soft);  color: var(--rb-red); }
.rb-status--foal     { background: var(--rb-gold-soft); color: var(--rb-gold-text); }
.rb-status--retired,
.rb-status--deceased { background: var(--rb-surface-2); color: var(--rb-muted); }

/* discipline tag. The disc-xx class comes from disc_class() in PHP. */
.rb-disc {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 8px;
  background: var(--rb-surface-2);
  color: var(--rb-ink);
  font-size: 12px; font-weight: 600;
  white-space: nowrap;
}

/* ribbon placing: 1st blue, 2nd red, 3rd yellow, as at a real show */
.rb-place { display: inline-block; padding: 3px 12px; border-radius: var(--rb-pill); background: var(--rb-surface-2); color: var(--rb-muted); font-size: 13px; font-weight: 700; }
.rb-place--1 { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-place--2 { background: var(--rb-red-soft);  color: var(--rb-red); }
.rb-place--3 { background: var(--rb-gold-soft); color: var(--rb-gold-text); }

/* title letters after a name (COP, SLV...) */
.rb-titles { margin-left: 5px; font-size: 10.5px; font-weight: 700; letter-spacing: .02em; color: var(--rb-gold-text); }
a.rb-table__name > .rb-titles { margin-left: -4px; }   /* dashboard rows are flex, so the 10px gap is already there */

/* round initial (colour is set per animal from its coat) */
.rb-dot {
  width: 30px; height: 30px;
  display: inline-grid; place-items: center;
  border-radius: 50%;
  background: var(--dot-bg, var(--rb-surface-2));
  color: var(--dot-fg, var(--rb-ink));
  font-size: 13px; font-weight: 700;
  flex-shrink: 0;
}

/* progress bar: <div class="rb-bar" style="--pct:45%"> */
.rb-bar { height: 6px; border-radius: var(--rb-pill); background: var(--rb-surface-2); overflow: hidden; }
.rb-bar::after { content: ''; display: block; width: var(--pct, 0%); height: 100%; border-radius: var(--rb-pill); background: var(--rb-blue); }
.rb-bar__row { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 6px; }

/* stable tier badge: colour comes from --tier set in PHP */
.rb-tier {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 5px 14px 5px 6px;
  border-radius: var(--rb-pill);
  background: color-mix(in srgb, var(--tier, var(--rb-primary)) 14%, transparent);
  color: var(--rb-ink);
  font-weight: 600;
}
.rb-tier__num { padding: 2px 8px; border-radius: var(--rb-pill); background: var(--tier, var(--rb-primary)); color: #fff; font-size: 11px; font-weight: 700; }


/* ═══ 8. TABLES ═════════════════════════════════════════════════════════ */
.rb-tablewrap { overflow-x: auto; }
.rb-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 14px; }
.rb-table th { padding: 10px 6px; text-align: left; font-size: 12px; font-weight: 600; color: var(--rb-muted); }
.rb-table td { padding: 12px 6px; border-top: 1px solid var(--rb-line); vertical-align: middle; }
.rb-table tbody tr:hover { background: var(--rb-surface-2); }
.rb-table__name { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; white-space: nowrap; }
.rb-table__name:hover .rb-table__label { text-decoration: none; }
.rb-table__num { display: inline-flex; align-items: center; gap: 5px; color: var(--rb-muted); }

/* phone version of the animal tables (hidden on desktop) */
.rb-animals { display: none; flex-direction: column; }
.rb-animal { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid var(--rb-line); }
.rb-animal__name { font-weight: 600; }
.rb-animal__meta { font-size: 13px; color: var(--rb-muted); }


/* ═══ 9. DASHBOARD ══════════════════════════════════════════════════════ */

/* stat tiles: plain figure with a rule beside it */
.rb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
.rb-stat { display: block; padding: 4px 0 4px 20px; border-left: 3px solid var(--rb-line); }
.rb-stat--gold { border-left-color: var(--rb-gold); }
.rb-stat__num { display: block; font-size: 40px; font-weight: 500; letter-spacing: -.03em; line-height: 1.15; }
.rb-stat__label { display: block; font-size: 14px; font-weight: 500; color: var(--rb-muted); }
.rb-stat__note { display: block; margin-top: 4px; font-size: 12px; color: var(--rb-muted); }

[data-href] { cursor: pointer; }
.rb-banner > .rb-btn, a.rb-banner { text-decoration: none; }
a.rb-stat:hover .rb-stat__num { color: var(--rb-primary); }
a.rb-stat__note:hover { text-decoration: none; }
.rb-list__item .rb-pill { flex-shrink: 0; }
.rb-footer__in p { margin: 0; }

/* upcoming show cards: a coloured ribbon edge along the top.
   They cycle blue, red, gold, navy: set by the --blue/--red/--gold/--navy variants. */
.rb-shows { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.rb-show {
  --edge: var(--rb-blue);
  display: flex; flex-direction: column; gap: 14px;
  padding: 22px;
  background: var(--rb-primary-soft);
  border-top: 5px solid var(--edge);
  border-radius: var(--rb-radius);
}
.rb-show:hover { filter: brightness(.98); }
.rb-show--blue { --edge: #457b9d; }
.rb-show--red  { --edge: #c03221; }
.rb-show--gold { --edge: #f4b942; }
.rb-show--navy { --edge: var(--rb-primary); }
.rb-show__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.rb-show__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.rb-show__tag { padding: 2px 10px; border-radius: 8px; background: var(--rb-surface); color: var(--rb-primary); font-size: 12px; font-weight: 700; }
.rb-show__count { text-align: right; line-height: 1.1; }
.rb-show__count strong { display: block; font-size: 34px; font-weight: 500; letter-spacing: -.03em; }
.rb-show__count span { font-size: 12px; font-weight: 600; color: var(--rb-muted); }
.rb-show__name { font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
.rb-show__meta { display: block; margin-top: 2px; font-size: 13px; color: var(--rb-muted); }
.rb-show__foot { padding-top: 12px; border-top: 1px solid var(--rb-line); }

/* simple lists: quests, notifications, announcements */
.rb-list { margin: 0; padding: 0; list-style: none; }
.rb-list__item { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid var(--rb-line); }
.rb-list__main { flex: 1; min-width: 0; }
.rb-list__title { font-weight: 600; }
.rb-list__sub { font-size: 13px; color: var(--rb-muted); }
.rb-list__icon { color: var(--rb-primary); font-size: 22px; }
.rb-list__icon--done { opacity: .5; }

.rb-announce { padding: 14px 0; border-top: 1px solid var(--rb-line); }
.rb-announce__title { display: flex; justify-content: space-between; gap: 8px; font-weight: 700; }
.rb-announce__title a:hover { text-decoration: none; }
.rb-announce__meta { font-size: 12px; color: var(--rb-muted); }
.rb-announce__body { margin-top: 6px; color: var(--rb-muted); }
.rb-linkbtn { padding: 0; border: 0; background: none; color: var(--rb-primary); font: inherit; font-weight: 600; cursor: pointer; }

.rb-prestige { display: flex; flex-direction: column; gap: 16px; }
.rb-prestige__top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 12px; }

/* results extras (Working Equitation phase scores) */
.rb-subnote { display: block; font-size: 11px; color: var(--rb-muted); }


/* ═══ 10. FOOTER ════════════════════════════════════════════════════════ */
.rb-footer { margin-top: auto; background: var(--rb-surface); border-top: 1px solid var(--rb-line); color: var(--rb-muted); font-size: 13px; }
.rb-footer__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 28px; padding-block: 24px; }
.rb-footer__links { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.rb-footer__links a:hover { color: var(--rb-ink); text-decoration: none; }
.rb-footer .rb-brand__name { font-size: 20px; color: var(--rb-ink); }


/* ═══ 11. SMALL SCREENS ═════════════════════════════════════════════════ */
@media (max-width: 1080px) {
  .rb-split { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1280px) {
  /* nav folds into the menu button */
  .rb-navtoggle { display: grid; }
  .rb-header__in { flex-wrap: wrap; }
  .rb-nav { display: none; order: 10; flex-basis: 100%; flex-direction: column; padding-bottom: 12px; }
  .rb-nav.is-open { display: flex; max-height: 70vh; overflow-y: auto; }
  .rb-nav .rb-menu__panel { position: static; box-shadow: none; border: 0; padding: 0 0 6px 12px; min-width: 0; background: none; }   /* only the nav's own dropdowns open in place; bell and avatar panels float */
  .rb-navlink { justify-content: space-between; }
}

@media (max-width: 720px) {
  :root { --rb-gutter: 16px; }
  .rb-header__in { padding-inline: 16px; }
  .rb-main { padding-block: 32px 56px; }
  .rb-stack { gap: 32px; }
  .rb-card { padding: 20px; }
  .rb-banner { padding: 22px; }
  .rb-wallet { padding: 0 10px; gap: 10px; }

  /* tables turn into stacked cards */
  .rb-tablewrap--animals { display: none; }
  .rb-animals { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  .rb-navlink .rb-icon { transition: none; }
}


/* ═══ 12. FORMS, ALERTS, MODALS, TABS ═══════════════════════════════════
   Reusable on every page. Added for the horse page.
   ═══════════════════════════════════════════════════════════════════════ */

/* alert bars: <div class="rb-alert rb-alert--success"> */
.rb-alert { padding: 14px 18px; border-radius: var(--rb-radius-sm); background: var(--rb-primary-soft); color: var(--rb-ink); }
.rb-alert--success { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-alert--error   { background: var(--rb-red-soft);  color: var(--rb-red); }
.rb-alert--warn    { background: var(--rb-gold-soft); color: var(--rb-gold-text); }
.rb-alert strong { font-weight: 700; }
.rb-alert--bar { display: flex; align-items: center; gap: 10px; }

/* form fields: label on top, input, small help text */
.rb-form { display: flex; flex-direction: column; gap: 20px; }
.rb-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rb-field label, .rb-label { font-size: 13px; font-weight: 600; }
.rb-label__tag { margin-left: 8px; font-weight: 500; color: var(--rb-muted); font-size: 12px; }
.rb-help { font-size: 12.5px; color: var(--rb-muted); }

.rb-input, .rb-select, .rb-textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  background: var(--rb-surface);
  color: var(--rb-ink);
  font: inherit;
}
.rb-textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
.rb-select { padding-right: 36px; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2358627a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 16px; }
.rb-input:focus, .rb-select:focus, .rb-textarea:focus { outline: 3px solid var(--rb-primary-soft); border-color: var(--rb-blue); }
.rb-input::placeholder { color: var(--rb-muted); opacity: .7; }
.rb-select--sm, .rb-input--sm { min-height: 38px; padding-block: 6px; font-size: 14px; }
.rb-select option { background: var(--rb-surface); color: var(--rb-ink); }

.rb-inline { display: flex; align-items: center; gap: 8px; }
.rb-inline .rb-input { max-width: 160px; }
.rb-check { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.rb-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--rb-primary); flex-shrink: 0; }
.rb-formrow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rb-formactions { display: flex; flex-wrap: wrap; gap: 10px; }
.rb-preview { max-width: 220px; max-height: 160px; border-radius: var(--rb-radius-sm); object-fit: cover; }

/* link-styled button (e.g. "Remove trainer") */
.rb-textbtn { padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--rb-primary); cursor: pointer; }
.rb-textbtn:hover { text-decoration: none; }
.rb-textbtn--danger { color: var(--rb-red); }
.rb-btn--danger { background: var(--rb-red); border-color: var(--rb-red); color: #fff; }
:root[data-theme="dark"] .rb-btn--danger { color: #1c0b09; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .rb-btn--danger { color: #1c0b09; } }
.rb-btn[disabled] { opacity: .5; cursor: not-allowed; }
.rb-btn.is-active { background: var(--rb-primary); border-color: var(--rb-primary); color: var(--rb-on-primary); }

/* collapsible block: <details class="rb-details"><summary>…</summary>…</details> */
.rb-details { margin-top: 14px; }
.rb-details > summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; font-weight: 600; color: var(--rb-primary); }
.rb-details > summary::-webkit-details-marker { display: none; }
.rb-details > summary::before { content: '\203A'; display: inline-block; transition: transform .15s; font-size: 18px; line-height: 1; }
.rb-details[open] > summary::before { transform: rotate(90deg); }
.rb-details__body { margin-top: 12px; }

/* modal: hidden until .is-open is added by ribbon.js */
.rb-modal { position: fixed; inset: 0; z-index: 200; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(10, 18, 34, .55); }
.rb-modal.is-open { display: flex; }
.rb-modal__box { width: 100%; max-width: 560px; max-height: calc(100vh - 40px); overflow: auto; background: var(--rb-surface); border: 1px solid var(--rb-line); border-radius: var(--rb-radius); box-shadow: var(--rb-shadow-pop); }
.rb-modal__box--wide { max-width: 1040px; }
.rb-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px; border-bottom: 1px solid var(--rb-line); }
.rb-modal__title { font-size: 18px; font-weight: 700; }
.rb-modal__close { width: 40px; height: 40px; border: 0; border-radius: 50%; background: none; color: var(--rb-muted); font-size: 24px; cursor: pointer; }
.rb-modal__close:hover { background: var(--rb-surface-2); }
.rb-modal__body { padding: 24px; display: flex; flex-direction: column; gap: 20px; }
.rb-modal__foot { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 24px; border-top: 1px solid var(--rb-line); }

/* warning panel with a bullet list */
.rb-warnbox { display: flex; gap: 14px; padding: 16px 18px; border-radius: var(--rb-radius-sm); background: var(--rb-gold-soft); color: var(--rb-ink); }
.rb-warnbox > i { color: var(--rb-gold-text); margin-top: 3px; }
.rb-warnbox ul { margin: 8px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }

/* "tab" style jump links: <nav class="rb-tabs"><a href="#x">X</a></nav> */
.rb-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.rb-tabs a { padding: 8px 16px; border-radius: var(--rb-pill); color: var(--rb-muted); font-weight: 600; font-size: 14px; }
.rb-tabs a:hover { background: var(--rb-surface-2); color: var(--rb-ink); }
.rb-tabs a.is-active { background: var(--rb-primary-soft); color: var(--rb-primary); }

/* pagination */
.rb-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin-top: 16px; }

/* progress bars with a state colour: <div class="rb-bar rb-bar--good" style="--pct:80%"> */
.rb-bar--good::after { background: var(--rb-blue); }
.rb-bar--fair::after { background: var(--rb-gold); }
.rb-bar--poor::after { background: var(--rb-red); }
.rb-bar--warn::after { background: #e07a2f; }   /* stress 50-74: orange */
.rb-bar--crit::after { background: #a31f12; }   /* stress 75+: deep red */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .rb-bar--crit::after { background: #e5392a; } }
:root[data-theme="dark"] .rb-bar--crit::after { background: #e5392a; }
.rb-bar--peak::after { background: var(--rb-gold); }
.rb-bar--lg { height: 8px; }

/* two equal columns instead of wide + sidebar */
.rb-split--half { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1080px) { .rb-split--half { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 720px)  { .rb-formrow { grid-template-columns: minmax(0, 1fr); } .rb-modal__body { padding: 18px; } }

/* label/value pairs in a grid: <div class="rb-kv"><div class="rb-kv__item"><span class="rb-kv__k">Breed</span><span class="rb-kv__v">…</span></div></div> */
.rb-kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 18px 24px; }
.rb-kv__k { display: block; font-size: 12px; font-weight: 600; color: var(--rb-muted); }
.rb-kv__v { display: block; font-weight: 600; font-size: 16px; }


/* ═══ 13. HORSE PAGE ════════════════════════════════════════════════════ */

.rb-back { display: inline-block; margin-bottom: 8px; color: var(--rb-muted); font-weight: 600; font-size: 14px; }
.rb-back:hover { color: var(--rb-ink); }
/* horse title (e.g. "CH") next to the name: sunflower yellow in dark mode, deep amber in light mode */
.rb-titlechip { display: inline-block; vertical-align: middle; margin-left: 10px; color: var(--rb-gold-text);
  font-family: var(--rb-font); font-size: 18px; font-weight: 700; letter-spacing: 0; }
.rb-ownedby a:hover { text-decoration: none; }

/* "at a glance" tiles */
/* one slim strip of facts, divided by hairlines (not six separate boxes) */
.rb-glance { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: var(--rb-line); border: 1px solid var(--rb-line); border-radius: var(--rb-radius); overflow: hidden; }
.rb-glance__item { display: block; padding: 14px 18px; background: var(--rb-surface); min-width: 0; }
.rb-glance__item > i { display: none; }
.rb-glance__k { display: block; font-size: 11.5px; font-weight: 600; letter-spacing: .02em; color: var(--rb-muted); }
.rb-glance__v { display: block; font-weight: 700; font-size: 15px; margin-top: 2px; }
.rb-glance__s { display: block; font-size: 12px; color: var(--rb-muted); }
@media (max-width: 1100px) { .rb-glance { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px)  { .rb-glance { grid-template-columns: repeat(2, 1fr); } }
/* horse page: tighter rhythm, jump links sit under the strip as a quiet underline bar */
.page-horse .rb-stack { gap: 20px; }
/* horse header banner: name + owner on the left, buttons on the right, all inside one band */
.rb-hero { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 28px 32px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius); background: linear-gradient(135deg, var(--rb-primary-soft), var(--rb-surface) 70%); }
.rb-hero__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rb-hero .rb-ownedby { margin: 0; }
.rb-hero__actions { justify-content: flex-end; }
@media (max-width: 700px) { .rb-hero { padding: 22px 20px; } .rb-hero__actions { justify-content: flex-start; } }
.page-horse .rb-title { margin: 0; }
.page-horse .rb-tabs { gap: 4px; border-bottom: 1px solid var(--rb-line); padding-bottom: 0; }
.page-horse .rb-tabs a { border-radius: 0; padding: 8px 14px; margin-bottom: -1px; border-bottom: 2px solid transparent; }
.page-horse .rb-tabs a:hover { background: none; border-bottom-color: var(--rb-primary); }

/* photo + facts */
.rb-overview { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 32px; align-items: start; }
.rb-photo { width: 100%; aspect-ratio: 4 / 3; border-radius: var(--rb-radius-sm); object-fit: cover; background: var(--rb-surface-2); }
.rb-photo--empty { display: grid; place-items: center; color: var(--rb-muted); font-size: 14px; }
@media (max-width: 800px) { .rb-overview { grid-template-columns: minmax(0, 1fr); } .rb-photo { max-width: 360px; } }

/* genetics */
.rb-genome-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.rb-genome-head__k { color: var(--rb-muted); font-size: 13px; font-weight: 600; }
.rb-genome-head__v { font-size: 18px; font-weight: 700; }
.rb-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.rb-sectionlabel { margin: 18px 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-muted); }
.rb-genome { display: flex; flex-direction: column; }
.rb-genome__row { display: grid; grid-template-columns: minmax(0, 1fr) auto 58px; align-items: center; gap: 14px; padding: 10px 0; border-top: 1px solid var(--rb-line); }
.rb-genome__name { font-weight: 600; font-size: 14px; }
.rb-genome__desc { font-size: 12.5px; color: var(--rb-muted); }
.rb-alleles { display: inline-flex; align-items: center; gap: 4px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; }
.rb-allele { min-width: 26px; padding: 2px 6px; text-align: center; border-radius: 6px; background: var(--rb-surface-2); }
.rb-genome__badge { padding: 3px 0; text-align: center; border-radius: 6px; font-size: 11px; font-weight: 700; background: var(--rb-surface-2); color: var(--rb-muted); }
.rb-genome__badge--perf { background: var(--rb-gold-soft); color: var(--rb-gold-text); }
.rb-genome__badge--coat { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-genome__badge--pattern { background: var(--rb-primary-soft); color: var(--rb-primary); }
.rb-genome__badge--modifier { background: var(--rb-red-soft); color: var(--rb-red); }

/* training + trainer */
.rb-cols2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.rb-cols2__k { font-size: 12px; font-weight: 600; color: var(--rb-muted); margin-bottom: 6px; }
@media (max-width: 720px) { .rb-cols2 { grid-template-columns: minmax(0, 1fr); } }
.rb-boost { margin-bottom: 16px; padding: 12px 16px; border-radius: var(--rb-radius-sm); background: var(--rb-primary-soft); }
.rb-boost__title { font-weight: 700; margin-bottom: 4px; }
.rb-histlist > * { padding: 8px 0; border-top: 1px solid var(--rb-line); font-size: 14px; }

/* lineage + offspring */
.rb-lineage { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; align-items: baseline; }
.rb-lineage__k { font-size: 12px; font-weight: 600; color: var(--rb-muted); }
.rb-lineage__v a { font-weight: 600; color: var(--rb-primary); }
.rb-lineage__v a:hover { text-decoration: none; }
.rb-offspring { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.rb-offspring__card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); }
.rb-offspring__card:hover { background: var(--rb-surface-2); }
.rb-offspring__name { font-weight: 600; }
.rb-offspring__meta { font-size: 12.5px; color: var(--rb-muted); }
.rb-subhead { margin: 22px 0 10px; font-size: 14px; font-weight: 700; }
.rb-infoband { margin-top: 16px; padding: 12px 16px; border-radius: var(--rb-radius-sm); background: var(--rb-gold-soft); color: var(--rb-gold-text); font-weight: 600; }

/* health */
.rb-meters { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
.rb-meter__row { display: flex; justify-content: space-between; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.rb-condition { margin-bottom: 18px; padding: 14px 16px; border-radius: var(--rb-radius-sm); background: var(--rb-red-soft); }
.rb-condition__title { font-weight: 700; color: var(--rb-red); }
.rb-condition a, .rb-prose a { color: var(--rb-primary); font-weight: 600; text-decoration: none; }
.rb-care { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-top: 10px; }
.rb-care__item { padding: 12px 14px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.rb-care__label { font-weight: 600; font-size: 14px; }
.rb-care--care-good     { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-care--care-soon     { background: var(--rb-gold-soft); color: var(--rb-gold-text); }
.rb-care--care-overdue  { background: var(--rb-red-soft);  color: var(--rb-red); }
.rb-care--care-critical { background: var(--rb-red); color: var(--rb-surface); }
.rb-care--care-unknown  { background: var(--rb-surface-2); color: var(--rb-muted); }
.rb-note { margin-top: 12px; font-size: 13px; color: var(--rb-muted); }
.rb-note a { color: var(--rb-primary); font-weight: 600; text-decoration: none; }
.rb-logrow { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 10px; padding: 8px 0; border-top: 1px solid var(--rb-line); font-size: 14px; }
.rb-logrow__day { color: var(--rb-muted); font-size: 12.5px; white-space: nowrap; }
.rb-logrow--condition_onset .rb-logrow__icon { color: var(--rb-red); }
.rb-logrow--condition_resolved .rb-logrow__icon { color: var(--rb-blue-text); }

/* stats */
.rb-conf { display: flex; align-items: center; gap: 18px; margin-bottom: 18px; flex-wrap: wrap; }
.rb-conf__ring { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; border: 4px solid var(--rb-line); font-size: 22px; font-weight: 700; }
.rb-conf__ring--gold { border-color: var(--rb-gold); color: var(--rb-gold-text); }
.rb-conf__ring--sage { border-color: var(--rb-blue); color: var(--rb-blue-text); }
.rb-conf__ring--neutral { border-color: var(--rb-muted); }
.rb-conf__ring--poor { border-color: var(--rb-red); color: var(--rb-red); }
.rb-conf__k { font-size: 12px; font-weight: 600; color: var(--rb-muted); }
.rb-conf__v { font-size: 22px; font-weight: 700; }
.rb-stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; }
@media (max-width: 720px) { .rb-stats-grid { grid-template-columns: minmax(0, 1fr); } }
.rb-statrow__top { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 5px; }
.rb-statrow__top strong { font-weight: 700; }

/* levels */
/* progression path: one row of connected steps, labels under the dots; scrolls sideways when there are many levels */
.rb-ladder { display: flex; overflow-x: auto; margin: 0 -4px 22px; padding: 4px 4px 12px; scrollbar-width: thin; }
.rb-ladder__step { position: relative; flex: 1 0 96px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; padding: 0 4px; color: var(--rb-muted); font-size: 12.5px; font-weight: 600; line-height: 1.25; }
.rb-ladder__step::before { content: ""; position: absolute; top: 13px; left: -50%; width: 100%; height: 3px; background: var(--rb-line); }   /* the line coming in from the previous step */
.rb-ladder__step:first-child::before { display: none; }
.rb-ladder__dot { position: relative; z-index: 1; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--rb-surface); border: 2px solid var(--rb-line); font-size: 11px; font-weight: 700; }
.rb-ladder__step--complete { color: var(--rb-ink); }
.rb-ladder__step--complete::before, .rb-ladder__step--current::before { background: var(--rb-primary); }
.rb-ladder__step--complete .rb-ladder__dot { background: var(--rb-primary); border-color: var(--rb-primary); color: var(--rb-on-primary); }
.rb-ladder__step--current { color: var(--rb-ink); font-weight: 700; }
.rb-ladder__step--current .rb-ladder__dot { background: var(--rb-gold); border-color: var(--rb-gold); color: #121d33; box-shadow: 0 0 0 4px var(--rb-primary-soft); }
.rb-level { padding: 18px 0; border-top: 1px solid var(--rb-line); display: flex; flex-direction: column; gap: 10px; }
.rb-level__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-weight: 700; }
.rb-level__meta { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 13px; margin-bottom: 6px; }
.rb-level__life { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--rb-muted); }
.rb-level--ready { background: var(--rb-gold-soft); margin-inline: -12px; padding-inline: 12px; border-radius: var(--rb-radius-sm); }

/* career */
.rb-career { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 14px; }
.rb-career__item { padding: 16px; background: var(--rb-surface-2); border-radius: var(--rb-radius-sm); }
.rb-career__num { display: block; font-size: 30px; font-weight: 500; letter-spacing: -.02em; line-height: 1.15; }
.rb-career__label { font-size: 13px; color: var(--rb-muted); font-weight: 500; }
.rb-career__by { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 16px; font-size: 14px; color: var(--rb-muted); }
.rb-career__by strong { color: var(--rb-ink); }
.rb-results-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 14px 0 8px; }
.rb-results-controls .rb-input { max-width: 260px; flex: 1; min-width: 160px; }
.rb-results-controls .rb-select { width: auto; }

/* pedigree tree */
.rb-ped { display: grid; grid-template-columns: 1.1fr 1.1fr 1.1fr 1fr; gap: 16px; align-items: stretch; min-width: 760px; }
.rb-ped__col { display: flex; flex-direction: column; justify-content: space-around; gap: 10px; }
.rb-ped__node { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); }
.rb-ped__node--subject { background: var(--rb-primary-soft); }
.rb-ped__node--unknown { opacity: .55; justify-content: center; }
.rb-ped__node--sm { padding: 6px 10px; font-size: 12px; }
.rb-ped__dot { width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0; border: 1px solid var(--rb-line); }
.rb-ped__name { font-weight: 700; font-size: 14px; }
a.rb-ped__name:hover { text-decoration: none; }
.rb-ped__meta { font-size: 12px; color: var(--rb-muted); }
.rb-pedwrap { overflow-x: auto; }

/* rich text (biography) */
.rb-prose { line-height: 1.7; }
.rb-prose p { margin: 0 0 12px; }
.rb-prose img { border-radius: var(--rb-radius-sm); }

/* jump links (#genetics etc.) land below the sticky header, not under it */
html { scroll-padding-top: 88px; }
@media (max-width: 1280px) { html { scroll-padding-top: 112px; } }

/* ═══════════════════════════════════════════════════════════════════════
   14. MY HORSES (list) AND ADD A HORSE
   ═══════════════════════════════════════════════════════════════════════ */
.page-horses .rb-stack { gap: 20px; }

/* list: search box, All/Active/Inactive switch, count */
.rb-listbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 14px; }
.rb-listbar__search { flex: 1 1 260px; max-width: 420px; }
.rb-listbar__count { margin-left: auto; font-size: 13px; }
.rb-seg { display: inline-flex; padding: 3px; gap: 2px; border: 1px solid var(--rb-line); border-radius: var(--rb-pill); background: var(--rb-surface-2); }
.rb-seg__btn { padding: 6px 14px; border: 0; border-radius: var(--rb-pill); background: none; font: inherit; font-size: 13px; font-weight: 600; color: var(--rb-muted); cursor: pointer; }
.rb-seg__btn:hover { color: var(--rb-ink); }
.rb-seg__btn.is-active { background: var(--rb-surface); color: var(--rb-ink); box-shadow: 0 1px 2px rgba(0, 0, 0, .12); }

/* click-to-sort column headings */
.rb-table--sortable th[data-col] { cursor: pointer; user-select: none; white-space: nowrap; }
.rb-table--sortable th[data-col]:hover { color: var(--rb-ink); }
.rb-table--sortable th.is-asc::after  { content: " \2191"; }
.rb-table--sortable th.is-desc::after { content: " \2193"; }
.rb-table--sortable th.is-asc, .rb-table--sortable th.is-desc { color: var(--rb-ink); }
.rb-emptycard { text-align: center; padding-block: 40px; }

/* add a horse: preview on the left, form on the right */
.rb-addgrid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 20px; align-items: start; }
.rb-previewpanel { position: sticky; top: 92px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 28px 20px; }
.rb-previewpanel__name { font-family: var(--rb-font-serif); font-size: 22px; font-weight: 500; overflow-wrap: anywhere; }
.rb-dot--xl { width: 84px; height: 84px; font-size: 34px; font-family: var(--rb-font-serif); --dot-bg: var(--rb-surface-2); }
.rb-addgrid .rb-card__title { margin-bottom: 14px; }
.rb-addgrid .rb-sectionlabel { margin: 18px 0 8px; }
.rb-addgrid .rb-sectionlabel:first-of-type { margin-top: 0; }
.rb-optional { margin-left: 6px; font-size: 11px; font-weight: 600; color: var(--rb-muted); text-transform: none; letter-spacing: 0; }
.rb-formrow--3 { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }

/* pick-one buttons and colour swatches */
.rb-choices { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.rb-choice { padding: 8px 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-pill); background: var(--rb-surface); font: inherit; font-size: 14px; font-weight: 600; color: var(--rb-ink); cursor: pointer; }
.rb-choice:hover { background: var(--rb-surface-2); }
.rb-choice.is-active { background: var(--rb-primary); border-color: var(--rb-primary); color: var(--rb-on-primary); }
.rb-swatch { width: 40px; height: 40px; border-radius: 50%; border: 3px solid var(--rb-surface); background: var(--swatch, #888); box-shadow: 0 0 0 1px var(--rb-line); cursor: pointer; }
.rb-swatch:hover { box-shadow: 0 0 0 2px var(--rb-muted); }
.rb-swatch.is-active { box-shadow: 0 0 0 3px var(--rb-primary); }

@media (max-width: 860px) {
  .rb-addgrid { grid-template-columns: 1fr; }
  .rb-previewpanel { position: static; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; text-align: left; padding: 16px 20px; }
  .rb-dot--xl { width: 56px; height: 56px; font-size: 24px; }
  .rb-listbar__count { margin-left: 0; }
}

/* phones: logo only in the header (no "Topline" word) */
@media (max-width: 700px) { .rb-header .rb-brand__name { display: none; } }

/* phones: the bell and avatar panels span the screen, tucked under the header (they used to run off the edge) */
@media (max-width: 720px) {
  .rb-bell, .rb-user { position: static; }
  .rb-bell .rb-menu__panel, .rb-user .rb-menu__panel {
    position: absolute; top: 100%; left: 12px; right: 12px; width: auto; min-width: 0; max-width: none;
    max-height: calc(100vh - 140px); overflow-y: auto;
  }
}

/* the little count beside "Admin" in the avatar menu: keep it a small pill (the generic menu-item span rule made it a full-width bar) */
.rb-menu__item strong .rb-pill { display: inline-block; margin-left: 6px; font-size: 12px; line-height: 1.4; }
.rb-menu__item strong .rb-pill--red { color: var(--rb-red); background: var(--rb-red-soft); }

/* Rosettes / Laurels, stacked, inside the avatar menu. Phones only. On bigger screens they stay in the header bar. */
.rb-balances { display: none; }
@media (max-width: 720px) {
  .rb-wallet { display: none; }
  .rb-balances { display: block; margin: 4px 8px 10px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface-2); overflow: hidden; }
  .rb-balances__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; }
  .rb-balances__row + .rb-balances__row { border-top: 1px solid var(--rb-line); }
  .rb-balances__k { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rb-muted); }
  .rb-balances__k i { color: var(--rb-gold-text); font-size: 14px; }
  .rb-balances__v { font-weight: 700; font-size: 16px; color: var(--rb-ink); }
}

/* ═══════════════════════════════════════════════════════════════════════
   15. STABLE PAGE
   ═══════════════════════════════════════════════════════════════════════ */
.page-stable .rb-stack { gap: 24px; }

[hidden] { display: none; }
.rb-tabpanel { display: flex; flex-direction: column; gap: 20px; }

/* banner — the owner's colours, picture, layout and position (premium) come in as CSS variables */
.rb-stablehero {
  --showcase-a: var(--rb-primary-soft); --showcase-b: var(--rb-surface); --showcase-pos: 50%;
  border: 1px solid var(--rb-line); border-radius: var(--rb-radius); overflow: hidden;
  background: linear-gradient(135deg, var(--showcase-a), var(--showcase-b) 75%);
}
.rb-stablehero.has-banner {
  background-image: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.62)), var(--showcase-img);
  background-size: cover; background-position: center var(--showcase-pos);
}
.rb-stablehero.is-ondark { color: #fff; }
.rb-stablehero__in { display: flex; align-items: center; gap: 24px; padding: 32px; }
.rb-stablehero.is-premium .rb-stablehero__in { padding-block: 56px 28px; }
.rb-stablehero--minimal .rb-stablehero__in { padding-block: 22px; }
.rb-stablehero--showcase .rb-stablehero__in { padding-block: 80px 32px; }
.rb-stablehero--showcase .rb-stablehero__text, .rb-stablehero--showcase .rb-stablehero__in { text-align: center; }
.rb-stablehero--showcase .rb-stablehero__in { justify-content: center; }
.rb-stablehero--showcase .rb-metarow { justify-content: center; }
.rb-stablehero__logo { width: 96px; height: 96px; flex-shrink: 0; border-radius: var(--rb-radius-sm); object-fit: cover; background: var(--rb-surface); border: 1px solid var(--rb-line); }
.rb-stablehero__logo--empty { display: grid; place-items: center; font-size: 36px; color: var(--rb-muted); }
.rb-stablehero__text { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.rb-stablehero .rb-title { margin: 0; overflow-wrap: anywhere; }
.rb-stablehero__motto { margin: 0; font-style: italic; opacity: .85; }
.rb-stablehero__desc { margin: 4px 0 0; max-width: 70ch; line-height: 1.6; }
.rb-metarow { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; font-size: 14px; color: var(--rb-muted); }
.rb-stablehero.is-ondark .rb-metarow, .rb-stablehero.is-ondark .rb-metarow a { color: rgba(255,255,255,.9); }
.rb-metarow a { color: var(--rb-primary); font-weight: 600; }
.rb-metarow__owner { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--rb-ink); }
.rb-stablehero.is-ondark .rb-metarow__owner { color: #fff; }
.rb-avatar--sm { width: 24px; height: 24px; font-size: 11px; }
.rb-stablehero__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 14px 32px; border-top: 1px solid var(--rb-line); background: var(--rb-surface); color: var(--rb-ink); }
.rb-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rb-badges--gallery { margin-top: 14px; gap: 10px; }
.rb-badges a.rb-pill:hover { filter: brightness(.95); }
.rb-glance--5 { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 800px) { .rb-glance--5 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) {
  .rb-glance--5 { grid-template-columns: repeat(2, 1fr); }
  .rb-stablehero__in { flex-direction: column; align-items: flex-start; padding: 22px 20px; }
  .rb-stablehero--showcase .rb-stablehero__in { align-items: center; }
  .rb-stablehero__bar { padding: 12px 20px; }
}

/* tabs are buttons here */
.page-stable .rb-tabs { gap: 4px; border-bottom: 1px solid var(--rb-line); overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
.page-stable .rb-tabs button { flex-shrink: 0; padding: 10px 14px; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: none; font: inherit; font-size: 14px; font-weight: 600; color: var(--rb-muted); cursor: pointer; white-space: nowrap; }
.page-stable .rb-tabs button:hover { color: var(--rb-ink); border-bottom-color: var(--rb-primary); }
.page-stable .rb-tabs button.is-active { color: var(--rb-primary); border-bottom-color: var(--rb-primary); }
.rb-tabcount { margin-left: 4px; padding: 1px 8px; border-radius: var(--rb-pill); background: var(--rb-surface-2); font-size: 12px; color: var(--rb-muted); }

/* rows: horses, dogs, results */
.rb-rows { display: flex; flex-direction: column; }
.rb-row { display: flex; align-items: center; gap: 14px; padding: 12px 8px; border-top: 1px solid var(--rb-line); color: inherit; }
.rb-rows > .rb-row:first-child { border-top: 0; }
a.rb-row:hover { background: color-mix(in srgb, var(--rb-primary) 5%, var(--rb-surface)); }
.rb-row__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rb-row__name { font-weight: 700; overflow-wrap: anywhere; }
a.rb-row__name { color: var(--rb-ink); }
.rb-row__meta { font-size: 13px; color: var(--rb-muted); }
.rb-row__end { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; align-items: center; font-size: 14px; }
@media (max-width: 560px) { .rb-row { flex-wrap: wrap; } .rb-row__end { flex-basis: 100%; justify-content: flex-start; padding-left: 44px; } }

.rb-sortbar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 8px; font-size: 13px; }
.rb-pager .rb-btn[aria-disabled="true"] { opacity: .4; pointer-events: none; }

/* grouped lists (divisions, kennels) */
.rb-group + .rb-group { margin-top: 22px; }
.rb-group__head { display: flex; align-items: center; gap: 10px; padding-bottom: 8px; border-bottom: 2px solid var(--rb-line); font-weight: 700; }
.rb-group__head i { color: var(--rb-muted); }
.rb-group__name { flex: 1; min-width: 0; }
.rb-group__more { display: inline-block; margin-top: 8px; padding-left: 8px; font-size: 14px; }

/* label / value list */
.rb-dl { margin: 0; }
.rb-dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 0; border-top: 1px solid var(--rb-line); }
.rb-dl > div:first-child { border-top: 0; }
.rb-dl dt { color: var(--rb-muted); font-size: 14px; }
.rb-dl dd { margin: 0; font-weight: 600; text-align: right; overflow-wrap: anywhere; }

.rb-split--wide { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
@media (max-width: 900px) { .rb-split--wide { grid-template-columns: minmax(0, 1fr); } }
.page-stable .rb-col { gap: 20px; }
.rb-timeline { list-style: none; margin: 0; padding: 0; }
.rb-timeline li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--rb-line); font-size: 14px; }
.rb-timeline li:first-child { border-top: 0; }
.rb-timeline a { color: var(--rb-primary); font-weight: 600; }
.rb-timeline li > span:last-child { flex-shrink: 0; font-size: 13px; }

/* legacy: one folded card per horse */
.rb-legacy { padding: 0; }
.rb-legacy > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 16px 20px; cursor: pointer; list-style: none; }
.rb-legacy > summary::-webkit-details-marker { display: none; }
.rb-legacy > summary::before { content: "\25B8"; color: var(--rb-muted); }
.rb-legacy[open] > summary::before { content: "\25BE"; }
.rb-legacy__name { font-weight: 700; }
.rb-legacy > .rb-pedwrap, .rb-legacy > p { margin: 0; padding: 0 20px 16px; }
.rb-ped--3 { grid-template-columns: 1fr 1fr 1fr; min-width: 560px; }

/* first-stable screen */
.rb-onboard { max-width: 640px; margin-inline: auto; display: flex; flex-direction: column; gap: 16px; padding: 36px; }
.rb-onboard .rb-sectionlabel { margin: 0; }
.rb-onboard .rb-title { font-size: clamp(28px, 4vw, 40px); margin: 0; }
.rb-onboard__lead { margin: 0; }
.rb-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rb-steps li { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-radius: var(--rb-radius-sm); background: var(--rb-surface-2); }
.rb-steps span { color: var(--rb-muted); font-size: 14px; }
@media (max-width: 560px) { .rb-onboard { padding: 22px 18px; } }
@media (max-width: 800px) { .rb-glance--5 .rb-glance__item:last-child { grid-column: span 2; } }

/* ═══════════════════════════════════════════════════════════════════════
   16. SHOWS: calendar + dashboard
   ═══════════════════════════════════════════════════════════════════════ */
.page-shows .rb-stack, .page-shows-dashboard .rb-stack { gap: 20px; }
.page-shows .rb-title, .page-shows-dashboard .rb-title { margin: 0; }
.rb-hero__sub { margin: 4px 0 0; }
.rb-inline { margin: 0; }
a.rb-seg__btn { display: inline-flex; align-items: center; gap: 6px; }
a.rb-seg__btn:hover { text-decoration: none; }

.rb-filterbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; border-bottom: 1px solid var(--rb-line); }
.rb-filterbar .rb-tabs { gap: 4px; }
.rb-filterbar .rb-tabs a { border-radius: 0; padding: 10px 14px; margin-bottom: -1px; border-bottom: 2px solid transparent; }
.rb-filterbar .rb-tabs a:hover { background: none; border-bottom-color: var(--rb-primary); }
.rb-filterbar .rb-tabs a.is-active { background: none; border-bottom-color: var(--rb-primary); }
.rb-filterbar__end { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 6px; }

/* "closing tomorrow" strip */
.rb-closing { padding: 16px 20px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius); background: var(--rb-surface); }
.rb-closing__title { margin: 0 0 10px; font-size: 15px; font-weight: 700; color: var(--rb-primary); }
.rb-closing__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.rb-closing__card { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: var(--rb-radius-sm); background: var(--rb-surface); color: var(--rb-ink); border: 1px solid var(--rb-line); border-left: 3px solid var(--rb-primary); }
.rb-closing__card:hover { background: color-mix(in srgb, var(--rb-primary) 5%, var(--rb-surface)); }
.rb-closing__card.is-entered { border-left-color: var(--rb-blue-text); }
.rb-closing__meta { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; font-size: 13px; color: var(--rb-muted); }
.rb-closing .rb-muted { margin: 8px 0 0; }

/* calendar grid */
.rb-calnav { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.rb-calnav__title { flex: 1; margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.rb-cal { border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); overflow: hidden; }
.rb-cal__dow, .rb-cal__week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.rb-cal__dow { background: var(--rb-surface); border-bottom: 1px solid var(--rb-line); }
.rb-cal__dow span { padding: 8px; font-size: 12px; font-weight: 700; color: var(--rb-muted); text-align: center; }
.rb-cal__week { border-top: 1px solid var(--rb-line); }
.rb-cal__day { min-height: 112px; min-width: 0; padding: 6px; border-left: 1px solid var(--rb-line); display: flex; flex-direction: column; gap: 4px; cursor: default; }
.rb-cal__day:first-child { border-left: 0; }
.rb-cal__day.has-shows { cursor: pointer; }
.rb-cal__day.is-other { background: color-mix(in srgb, var(--rb-surface-2) 35%, var(--rb-surface)); }
.rb-cal__day.is-other .rb-cal__num, .rb-cal__day.is-other .rb-calpill { opacity: .5; }
.rb-cal__num { align-self: flex-start; min-width: 24px; height: 24px; display: grid; place-items: center; padding: 0 4px; border-radius: var(--rb-pill); font-size: 13px; font-weight: 600; color: var(--rb-muted); }
.rb-cal__day.is-today .rb-cal__num { background: var(--rb-primary); color: var(--rb-on-primary); }
.rb-cal__pills { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rb-calpill { display: flex; align-items: center; gap: 4px; min-width: 0; padding: 3px 6px; border-radius: 6px; background: var(--rb-surface); border: 1px solid var(--rb-line); color: var(--rb-ink); font-size: 12px; font-weight: 600; line-height: 1.2; }
.rb-calpill:hover { border-color: var(--rb-primary); text-decoration: none; }
.rb-calpill.is-entered { background: var(--rb-blue-soft); border-color: transparent; color: var(--rb-blue-text); }
.rb-calpill.is-complete, .rb-calpill.is-cancelled { opacity: .55; }
.rb-calpill__discs { display: inline-flex; gap: 2px; flex-shrink: 0; }
.rb-calpill__discs .rb-disc { padding: 1px 5px; font-size: 10px; }
.rb-calpill__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rb-calpill__star { color: var(--rb-gold-text); font-size: 10px; }
.rb-calpill__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--rb-blue-text); flex-shrink: 0; margin-left: auto; }
.rb-cal__more { align-self: flex-start; font-size: 12px; }

/* list view */
.rb-showrow.is-entered { background: var(--rb-blue-soft); }
.rb-datebox { width: 52px; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; padding: 6px 0; border-radius: var(--rb-radius-sm); background: var(--rb-surface-2); line-height: 1.1; }
.rb-datebox strong { font-size: 20px; }
.rb-datebox span { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--rb-muted); }
.rb-showrow__when { min-width: 64px; text-align: right; font-size: 13px; color: var(--rb-muted); }
.rb-showrow__when strong { font-size: 18px; color: var(--rb-ink); }
.rb-row__name .rb-pill { vertical-align: middle; margin-left: 4px; }

/* discipline + region chips */
.rb-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--rb-line); border-radius: var(--rb-pill); background: var(--rb-surface); font-size: 13px; font-weight: 600; color: var(--rb-ink); }
.rb-chip:hover { background: color-mix(in srgb, var(--rb-primary) 5%, var(--rb-surface)); text-decoration: none; }
.rb-chip.is-active { background: var(--rb-primary); border-color: var(--rb-primary); color: var(--rb-on-primary); }
.rb-card .rb-sectionlabel:first-child { margin-top: 0; }

/* day popover */
.rb-popover { position: fixed; z-index: 150; width: 320px; max-height: 60vh; overflow-y: auto; background: var(--rb-surface); border: 1px solid var(--rb-line); border-radius: var(--rb-radius); box-shadow: 0 12px 40px rgba(0, 0, 0, .22); }
.rb-popover/* add-a-class panel: three tidy rows */
.rb-adder__grid { display: grid; gap: 14px 16px; align-items: start; }
.rb-adder__grid--top { grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr); }
.rb-adder__grid--mid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.rb-adder__grid--breeds { grid-template-columns: minmax(0, 4fr) auto minmax(0, 8fr); }
.rb-adder__flags { display: contents; }
#inhand-exclusive-field { grid-column: 1 / -1; padding-top: 0; }
#inhand-exclusive-field[hidden] { display: none; }
@media (max-width: 860px) { .rb-adder__grid--top, .rb-adder__grid--breeds { grid-template-columns: 1fr; } .rb-adder__grid--breeds .rb-field--check { padding-top: 0; } }
@media (max-width: 560px) { .rb-adder__grid--mid { grid-template-columns: 1fr 1fr; } }

[hidden] { display: none; }
.rb-popover__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--rb-line); position: sticky; top: 0; background: var(--rb-surface); }
.rb-popover__show { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border-top: 1px solid var(--rb-line); color: var(--rb-ink); }
.rb-popover__head + .rb-popover__body .rb-popover__show:first-child { border-top: 0; }
.rb-popover__show:hover { background: color-mix(in srgb, var(--rb-primary) 5%, var(--rb-surface)); text-decoration: none; }
.rb-popover__show .rb-muted { font-size: 13px; }

@media (max-width: 720px) {
  /* phone calendar: small cells, shows become dots; tap a day to list them */
  .rb-cal__day { min-height: 58px; padding: 4px 2px; align-items: center; }
  .rb-cal__num { align-self: center; }
  .rb-cal__pills { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 3px; pointer-events: none; }
  .rb-calpill { width: 8px; height: 8px; padding: 0; border-radius: 50%; background: var(--rb-primary); overflow: hidden; }
  .rb-calpill.is-entered { background: var(--rb-blue-text); }
  .rb-calpill > * { display: none; }
  .rb-cal__more { display: none; }
  .rb-cal__dow span { padding: 6px 0; font-size: 11px; }
  .rb-popover { left: 0; right: 0; bottom: 0; top: auto; width: auto; max-height: 70vh; border-radius: var(--rb-radius) var(--rb-radius) 0 0; }
  .rb-showrow__when { display: none; }
  .rb-closing { padding: 14px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   17. CREATE / EDIT SHOW
   ═══════════════════════════════════════════════════════════════════════ */
.rb-tips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.rb-tip { display: flex; gap: 12px; padding: 16px; border: 1px solid var(--rb-line); border-left: 3px solid var(--rb-blue); border-radius: var(--rb-radius-sm); background: var(--rb-surface); }
.rb-tip__icon { flex-shrink: 0; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-tip__title { margin: 0 0 4px; font-size: 14px; font-weight: 700; }
.rb-tip__text { margin: 0; font-size: 13px; line-height: 1.5; color: var(--rb-muted); }

.rb-form__split { padding-top: 20px; border-top: 1px solid var(--rb-line); }
.rb-formrow--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rb-choicerow { display: flex; flex-wrap: wrap; gap: 20px; }
.rb-field--check { justify-content: flex-start; padding-top: 25px; }
.rb-field--check .rb-check { align-items: center; min-height: 44px; }
.rb-field--grow { flex: 1 1 220px; }
.rb-flexrow { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-start; }
.rb-flexrow > .rb-field { min-width: 140px; }
.rb-flexrow > .rb-field--grow { min-width: 220px; }
.rb-formactions--end { justify-content: flex-end; }
.rb-formactions--between { justify-content: space-between; align-items: center; }
.rb-inline--wide .rb-select { flex: 1 1 auto; max-width: none; }

.rb-panel { display: flex; flex-direction: column; gap: 14px; padding: 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); }
.rb-panel__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }

.rb-classlist { display: flex; flex-direction: column; gap: 8px; }
.rb-classtag { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); }
.rb-classtag__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rb-classtag__name { font-weight: 700; }
.rb-classtag__meta { font-size: 13px; color: var(--rb-muted); }
.rb-classtag__actions { display: flex; gap: 6px; flex-shrink: 0; }
.rb-iconbtn--danger { color: var(--rb-red); }
.rb-iconbtn--danger:hover { background: var(--rb-red-soft); }

.rb-levelchecklist { display: none; flex-direction: column; gap: 10px; padding: 12px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); }
.rb-levelchecklist.is-open { display: flex; }
.rb-levelchecklist__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rb-levelcheck { display: inline-flex; align-items: center; gap: 8px; margin: 3px 8px 3px 0; padding: 6px 12px; border: 1px solid var(--rb-line); border-radius: var(--rb-pill); font-size: 13px; font-weight: 600; cursor: pointer; }
.rb-levelcheck input { accent-color: var(--rb-primary); }
.rb-levelcheck.is-checked { background: var(--rb-primary-soft); border-color: var(--rb-primary); }

.rb-chip__x { margin-left: 2px; padding: 0 2px; border: 0; background: none; color: var(--rb-muted); font: inherit; font-size: 16px; line-height: 1; cursor: pointer; }
.rb-chip__x:hover { color: var(--rb-red); }

.rb-modal--toggle:not([hidden]) { display: flex; }

@media (max-width: 1100px) { .rb-tips { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rb-formrow--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px)  { .rb-formrow--4 { grid-template-columns: 1fr; } }
@media (max-width: 560px)  { .rb-tips { grid-template-columns: 1fr; } .rb-flexrow > .rb-field { flex: 1 1 100%; } .rb-formactions--between { flex-direction: column; align-items: stretch; } }

/* add-a-class panel: three tidy rows */
.rb-adder__grid { display: grid; gap: 14px 16px; align-items: start; }
.rb-adder__grid--top { grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr); }
.rb-adder__grid--mid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.rb-adder__grid--breeds { grid-template-columns: minmax(0, 4fr) auto minmax(0, 8fr); }
.rb-adder__flags { display: contents; }
#inhand-exclusive-field { grid-column: 1 / -1; padding-top: 0; }
#inhand-exclusive-field[hidden] { display: none; }
@media (max-width: 860px) { .rb-adder__grid--top, .rb-adder__grid--breeds { grid-template-columns: 1fr; } .rb-adder__grid--breeds .rb-field--check { padding-top: 0; } }
@media (max-width: 560px) { .rb-adder__grid--mid { grid-template-columns: 1fr 1fr; } }

[hidden] { display: none; }

/* ═══ 17b. EDIT SHOW extras ═══ */
.rb-alert--info { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-classtag__nameinput { min-height: 36px; padding-block: 4px; font-weight: 700; }
.rb-inhandfilters { display: none; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px 16px; align-items: start; }
.rb-inhandfilters.is-open { display: grid; }
.rb-inhandfilters__wide { grid-column: 1 / -1; }
.rb-classtag__info { flex: 1; }
.rb-classtag__info .rb-classtag__nameinput { width: 100%; max-width: 480px; }

/* ═══ 17c. BULK CREATE extras ═══ */
.rb-showrows { display: flex; flex-direction: column; gap: 12px; }
.rb-showrows__row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; gap: 14px; align-items: end; }
.rb-showrows__remove { margin-bottom: 4px; }
@media (max-width: 700px) { .rb-showrows__row { grid-template-columns: 1fr auto; } .rb-showrows__row .rb-field:first-child { grid-column: 1 / -1; } }

/* ═══════════════════════════════════════════════════════════════════════
   18. SHOW PAGE
   ═══════════════════════════════════════════════════════════════════════ */
.rb-inlineform { display: inline-flex; margin: 0; }
.rb-glance--show { display: flex; flex-wrap: wrap; gap: 0; background: var(--rb-surface); }
.rb-glance--show .rb-glance__item { flex: 1 1 150px; outline: 1px solid var(--rb-line); outline-offset: -.5px; }
.rb-glance__v--warn { color: var(--rb-red); }
.rb-prose { margin: 0; line-height: 1.65; }

.rb-classrows { display: flex; flex-direction: column; }
.rb-classrow { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-top: 1px solid var(--rb-line); }
.rb-classrow:first-child { border-top: 0; }
.rb-classrow__name { font-weight: 700; margin-bottom: 6px; }
.rb-classrow__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13.5px; }
.rb-classrow__right { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-size: 13px; flex-shrink: 0; }
.rb-classrow__none { font-size: 12px; }

.rb-entryrows { list-style: none; margin: 0; padding: 0; }
.rb-entryrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid var(--rb-line); }
.rb-entryrow:first-child { border-top: 0; }
.rb-entryrow__class { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; font-size: 13.5px; }

.rb-resblock { padding: 14px 0; border-top: 1px solid var(--rb-line); }
.rb-resblock:first-of-type { border-top: 0; }
.rb-resblock__label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-weight: 700; margin-bottom: 8px; }
.rb-resrows { display: flex; flex-direction: column; gap: 4px; }
.rb-resrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 8px 12px; border-radius: var(--rb-radius-sm); }
.rb-resrow.is-mine { background: var(--rb-primary-soft); }
.rb-resrow__name { font-weight: 600; }
.rb-resrow__owner { font-size: 13px; margin-right: auto; }
.rb-place { min-width: 38px; padding: 3px 8px; border-radius: var(--rb-pill); text-align: center; font-size: 12px; font-weight: 800; background: var(--rb-surface-2); color: var(--rb-muted); }
.rb-place--1 { background: var(--rb-gold); color: #3a2500; }
.rb-place--2 { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-place--3 { background: var(--rb-red-soft); color: var(--rb-red); }

.rb-entrytools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rb-entrytools .rb-input { max-width: 280px; min-width: 180px; flex: 1; }
.rb-entryblocks { display: flex; flex-direction: column; gap: 10px; }
.rb-entryblock { border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); }
.rb-entryblock__label { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; cursor: pointer; list-style: none; font-weight: 700; }
.rb-entryblock__label::-webkit-details-marker { display: none; }
.rb-entryblock__title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rb-entrygrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; padding: 4px 14px 14px; }
.rb-entrypill { padding: 10px 12px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); }
.rb-entrypill.is-mine { background: var(--rb-primary-soft); border-color: var(--rb-primary); }
.rb-entrypill__name { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-weight: 700; }
.rb-entrypill__sub { font-size: 12.5px; margin-top: 2px; }

.rb-pickgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.rb-pickcard { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); cursor: pointer; }
.rb-pickcard:hover { background: color-mix(in srgb, var(--rb-primary) 5%, var(--rb-surface)); }
.rb-pickcard input { position: absolute; opacity: 0; pointer-events: none; }
.rb-pickcard.is-selected { border-color: var(--rb-primary); background: var(--rb-primary-soft); }
.rb-pickcard.is-disabled { opacity: .55; cursor: not-allowed; }
.rb-pickcard__dot { flex-shrink: 0; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--rb-muted); color: #fff; font-weight: 800; font-size: 14px; }
.rb-pickcard__dot--dog { background: var(--rb-blue); }
.rb-pickcard__info { display: flex; flex-direction: column; min-width: 0; }
.rb-pickcard__name { font-weight: 700; }
.rb-pickcard__meta { font-size: 12.5px; color: var(--rb-muted); }

.rb-bulk { overflow: auto; max-height: 55vh; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); }
.rb-bulkgrid { border-collapse: collapse; width: 100%; font-size: 13.5px; }
.rb-bulkgrid th, .rb-bulkgrid td { padding: 8px 10px; border-bottom: 1px solid var(--rb-line); text-align: center; vertical-align: middle; }
.rb-bulkgrid thead th { position: sticky; top: 0; z-index: 1; background: var(--rb-surface); }
.rb-bulkgrid__animalhead, .rb-bulkgrid__animal { position: sticky; left: 0; background: var(--rb-surface); min-width: 190px; }
.rb-bulkgrid th.rb-bulkgrid__animalhead, .rb-bulkgrid td.rb-bulkgrid__animal { text-align: left; }
.rb-bulkgrid__animal { display: table-cell; }
.rb-bulkgrid__animal > * { vertical-align: middle; }
.rb-bulkgrid__animal .rb-pickcard__dot { display: inline-grid; margin-right: 8px; }
.rb-bulkgrid__animal > span:last-child { display: inline-block; vertical-align: middle; }
.rb-bulkgrid__name { display: block; font-weight: 700; }
.rb-bulkgrid__sub { display: block; font-size: 12px; }
.rb-bulkgrid__class { min-width: 130px; cursor: pointer; }
.rb-bulkgrid__classname { font-weight: 700; }
.rb-bulkgrid__full { color: var(--rb-red); font-weight: 700; font-size: 12px; }
.rb-bulkgrid__cell.is-off { background: var(--rb-surface-2); cursor: help; }
.rb-bulkgrid tr.is-off .rb-bulkgrid__animal { opacity: .6; }
.rb-bulkgrid__check { display: inline-flex; padding: 4px; cursor: pointer; }
.rb-bulkgrid__check input { width: 18px; height: 18px; accent-color: var(--rb-primary); }
.rb-bulkreason { margin-top: 10px; padding: 8px 12px; border-radius: var(--rb-radius-sm); background: var(--rb-gold-soft); color: var(--rb-gold-text); }

@media (max-width: 720px) {
  .rb-classrow { flex-direction: column; align-items: flex-start; }
  .rb-classrow__right { align-items: flex-start; flex-direction: row; gap: 10px; }
  .rb-resrow__owner { margin-right: 0; flex-basis: 100%; order: 5; }
}

/* template picker: on phones the select takes its own line, Load sits below */
@media (max-width: 560px) {
  .rb-inline--stacksm { flex-wrap: wrap; }
  .rb-inline--stacksm .rb-select { flex: 1 1 100%; }
  .rb-inline--stacksm .rb-btn { flex: 1 1 auto; justify-content: center; }
  .rb-inline--stacksm .rb-btn--danger { flex: 0 0 auto; }
}

/* add-a-horse / add-a-dog: space between the rows inside each card */
.rb-addgrid .rb-card > .rb-formrow,
.rb-addgrid .rb-card > .rb-field { margin-top: 14px; }
.rb-addgrid .rb-card > .rb-card__title + .rb-formrow { margin-top: 12px; }

/* ═════════════════════════════════════════════════════════════════
   19. SHOW RESULTS PAGE
   ═════════════════════════════════════════════════════════════════ */
.page-results .rb-table tbody tr.is-mine { background: color-mix(in srgb, var(--rb-primary) 8%, transparent); }
.rb-seg--scroll { max-width: 100%; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
.rb-seg--scroll .rb-seg__btn { white-space: nowrap; }

/* ═════════════════════════════════════════════════════════════════
   20. MY RESULTS PAGE
   ═════════════════════════════════════════════════════════════════ */
.rb-resfilter { display: flex; flex-wrap: wrap; gap: 14px 16px; align-items: flex-end; }
.rb-resfilter .rb-field { flex: 1 1 150px; min-width: 130px; }
.rb-resfilter__actions { display: flex; gap: 8px; align-items: center; }
.rb-resfilter .rb-input[type="date"] { min-height: 44px; }
.rb-table--links th a { color: inherit; }
.rb-table--links th.is-asc a::after  { content: " \2191"; }
.rb-table--links th.is-desc a::after { content: " \2193"; }
.rb-table--links th.is-asc a, .rb-table--links th.is-desc a { color: var(--rb-ink); }
@media (max-width: 560px) { .rb-resfilter .rb-field { flex: 1 1 100%; } .rb-resfilter__actions { width: 100%; } .rb-resfilter__actions .rb-btn { flex: 1; justify-content: center; } }

/* ═════════════════════════════════════════════════════════════════
   21. LEADERBOARD PAGE  (also: .rb-eyebrow, .rb-num, .rb-avatar--lg, .rb-medal — reusable)
   ═════════════════════════════════════════════════════════════════ */
.rb-eyebrow { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rb-muted); }
.rb-num { text-align: right; font-variant-numeric: tabular-nums; }
th.rb-num { text-align: right; }
.rb-avatar--lg { width: 64px; height: 64px; font-size: 22px; }
.rb-medal { font-size: 18px; }
.rb-medal--gold   { color: var(--rb-gold-text); }
.rb-medal--silver { color: var(--rb-muted); }
.rb-medal--bronze { color: var(--rb-red); }

.rb-yourrank { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.rb-yourrank__rank { font-family: var(--rb-font-display, inherit); font-size: 22px; font-weight: 700; }

.rb-podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: end; }
.rb-podium__slot { display: flex; flex-direction: column; }
.rb-podium__who { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 18px 12px 14px; text-align: center; background: var(--rb-surface); border: 1px solid var(--rb-line); border-bottom: 0; border-radius: var(--rb-radius) var(--rb-radius) 0 0; color: inherit; }
.rb-podium__who:hover { background: color-mix(in srgb, var(--rb-primary) 5%, var(--rb-surface)); }
.rb-podium__name { font-weight: 700; }
.rb-podium__pts { font-weight: 700; color: var(--rb-primary); }
.rb-podium__block { display: grid; place-items: center; font-weight: 800; border: 1px solid var(--rb-line); border-radius: 0 0 var(--rb-radius) var(--rb-radius); }
.rb-podium__slot--gold   .rb-podium__block { height: 120px; background: var(--rb-gold-soft); color: var(--rb-gold-text); }
.rb-podium__slot--silver .rb-podium__block { height: 90px;  background: var(--rb-surface-2); color: var(--rb-muted); }
.rb-podium__slot--bronze .rb-podium__block { height: 75px;  background: var(--rb-red-soft);  color: var(--rb-red); }
.rb-podium__slot.is-you .rb-podium__who { box-shadow: inset 0 0 0 2px var(--rb-primary); }
.rb-pointskey { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; }
@media (max-width: 560px) { .rb-podium { gap: 8px; } .rb-podium__who { padding: 12px 6px; font-size: 13px; } .rb-avatar--lg { width: 48px; height: 48px; font-size: 18px; } }

/* ── 22. Champions (boards) ─────────────────────────────────────────── */
.rb-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.rb-toolbar__right { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rb-menu__panel--scroll { max-height: 320px; overflow-y: auto; }
.rb-boards { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
.rb-board { display: flex; flex-direction: column; gap: 8px; padding: 18px; }
.rb-board__top { display: flex; align-items: center; gap: 10px; }
.rb-board__top .rb-card__title { margin: 0; }
.rb-board__rows { display: flex; flex-direction: column; margin-top: 4px; }
.rb-board__row { display: grid; grid-template-columns: 32px 1fr auto; gap: 10px; align-items: center; padding: 8px 6px; border-top: 1px solid var(--rb-border); }
.rb-board__row:first-child { border-top: 0; }
.rb-board__row.is-mine { background: color-mix(in srgb, var(--rb-primary) 8%, transparent); border-radius: 8px; }
.rb-board__rank { text-align: center; font-weight: 600; color: var(--rb-muted); }
.rb-board__name { min-width: 0; overflow-wrap: anywhere; }
.rb-board__name .rb-subnote { display: block; }
.rb-board__score { text-align: right; white-space: nowrap; font-size: 14px; }
@media (max-width: 560px) { .rb-boards { grid-template-columns: 1fr; } }

/* ── 23. Ready to Move Up ───────────────────────────────────────────── */
.rb-lpgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.rb-lpcard { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 18px; }
.rb-lpcard[hidden] { display: none; }
.rb-lpcard__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; width: 100%; }
.rb-lpcard__head .rb-card__title { margin: 0; }
.rb-lpcard__levels { margin: 0; }
.rb-lpcard .rb-bar { width: 100%; }
.rb-lpcard p.rb-pill { max-width: 100%; white-space: normal; border-radius: var(--rb-radius-sm); line-height: 1.35; padding: 6px 12px; margin: 0; }
.rb-lpcard--ready { border-color: var(--rb-primary); }
.rb-lpcard--maxed { opacity: .85; }

/* ── 24. Wallet ─────────────────────────────────────────────────────── */
.rb-glance--3 { grid-template-columns: repeat(3, 1fr); }
.rb-walletbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-bottom: 16px; }
.rb-walletbar .rb-input { width: auto; min-width: 200px; }
.rb-walletbar .rb-select { width: auto; }
.rb-datefield { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--rb-muted); }
.rb-datefield .rb-input { min-width: 0; }
.rb-amt--pos { color: var(--rb-primary); }
.rb-amt--neg { color: var(--rb-red); }
.rb-nowrap { white-space: nowrap; }
.rb-entities { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.rb-entity { display: flex; align-items: center; gap: 14px; padding: 16px; }
.rb-entity__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rb-lookup { position: relative; }
.rb-lookup__list { display: none; position: absolute; z-index: 20; left: 0; right: 0; top: 100%; margin-top: 4px; max-height: 240px; overflow-y: auto; background: var(--rb-surface); border: 1px solid var(--rb-line); border-radius: var(--rb-radius); box-shadow: var(--rb-shadow-pop); }
.rb-lookup__list.is-open { display: block; }
.rb-lookup__item { display: flex; justify-content: space-between; gap: 12px; width: 100%; padding: 10px 14px; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rb-lookup__item:hover { background: color-mix(in srgb, var(--rb-primary) 5%, transparent); }
.rb-lookup__item span { color: var(--rb-muted); font-size: 13px; }
.rb-lookup__empty { padding: 10px 14px; color: var(--rb-muted); }
@media (max-width: 560px) { .rb-glance--3 .rb-glance__item { padding: 12px; } .rb-walletbar .rb-input { width: 100%; } }
.rb-exchange { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.rb-exchange[hidden], .rb-entities[hidden] { display: none; }
.rb-exchange .rb-card { display: flex; flex-direction: column; gap: 10px; padding: 20px; }
.rb-exchange .rb-card > * { margin: 0; }
.rb-exchange .rb-inline { align-items: flex-end; }
.rb-walletbar .rb-input[type="text"] { flex: 1 1 200px; }
@media (max-width: 760px) { .rb-exchange { grid-template-columns: 1fr; } }

/* ── 25. Gifts & Cheers ─────────────────────────────────────────────── */
.rb-glance--4 { grid-template-columns: repeat(4, 1fr); }
.rb-giftgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.rb-gift { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius); background: var(--rb-surface); }
.rb-gift__icon { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--rb-surface-2); font-size: 20px; }
.rb-gift__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rb-gift__note { margin: 4px 0 0; font-style: italic; color: var(--rb-muted); overflow-wrap: anywhere; }
@media (max-width: 700px) { .rb-glance--4 { grid-template-columns: repeat(2, 1fr); } }
.rb-toplist__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--rb-line); }
.rb-toplist__row:first-child { border-top: 0; }

/* ── 26. Theme Shop ─────────────────────────────────────────────────── */
.rb-glance--shop { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.rb-themegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.rb-themecard { display: flex; flex-direction: column; gap: 12px; padding: 14px; }
.rb-themecard.is-active { border-color: var(--rb-primary); }
.rb-themecard__info { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.rb-themecard__name { margin: 0; font-size: 16px; font-weight: 700; }
.rb-themecard__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rb-themecard__foot form { margin: 0; }
.rb-shopprice { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-shopprice form { margin: 0; }
.rb-themeprev { border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); overflow: hidden; }
.rb-themeprev__bar { height: 22px; }
.rb-themeprev__body { display: flex; flex-direction: column; gap: 6px; padding: 12px; }
.rb-themeprev__body i { display: block; height: 6px; border-radius: 3px; }
.rb-themeprev__body b { display: block; width: 44px; height: 14px; margin-top: 4px; border-radius: 7px; }
.rb-shopsec { display: flex; flex-direction: column; gap: 14px; }
.rb-shopsec .rb-sectionlabel { margin: 0; }
.rb-activebar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); }
.rb-activebar form { margin: 0; }

/* ── 27. Stable Shop ────────────────────────────────────────────────── */
.rb-shoprow { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 0; border-top: 1px solid var(--rb-line); }
.rb-shoprow:first-of-type { border-top: 0; }
.rb-shoprow.is-blocked { opacity: .75; }
.rb-shoprow__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rb-shoprow__note { font-size: 13px; color: var(--rb-muted); }
.rb-shoprow__buy { margin: 0; }
.rb-pips { display: inline-flex; gap: 4px; margin-left: 8px; vertical-align: middle; }
.rb-pip { width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--rb-primary); background: transparent; }
.rb-pip.is-filled { background: var(--rb-primary); }
.rb-affixes { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.rb-affix { display: flex; flex-direction: column; gap: 8px; padding: 16px; }
.rb-affix .rb-form { gap: 8px; }
@media (max-width: 560px) { .rb-shoprow { grid-template-columns: 40px minmax(0, 1fr); } .rb-shoprow__buy { grid-column: 1 / -1; } .rb-shoprow__buy .rb-btn { width: 100%; } }
@media (max-width: 560px) { .rb-glance--shop { grid-template-columns: repeat(2, 1fr); } .rb-glance--shop .rb-glance__item:last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* ── 28. Animal Market ──────────────────────────────────────────────── */
.rb-marketfilter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; padding: 16px 20px; }
.rb-marketfilter .rb-field { flex: 1 1 160px; min-width: 140px; }
.rb-listings { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.rb-listing { display: flex; flex-direction: column; gap: 10px; padding: 18px; }
.rb-listing.is-rare { border-color: var(--rb-gold-text); }
.rb-listing__name { margin: 0; font-size: 17px; font-weight: 700; }
.rb-listing__price { margin: 0; font-size: 22px; font-weight: 700; }
.rb-listing__price .rb-muted { font-size: 13px; font-weight: 400; }
.rb-listing__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.rb-listing__actions form { display: contents; }
.rb-listing .rb-pill { align-self: flex-start; }
.rb-tabbtn { padding: 8px 16px; border: 0; border-radius: var(--rb-pill); background: none; color: var(--rb-muted); font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.rb-tabbtn:hover { background: var(--rb-surface-2); color: var(--rb-ink); }
.rb-tabbtn.is-active { background: var(--rb-primary-soft); color: var(--rb-primary); }

/* ── 29. Premium ────────────────────────────────────────────────────── */
.rb-pricecard { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 28px 20px; text-align: center; }
.rb-pricecard > * { margin: 0; }
.rb-pricecard__plan { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rb-muted); }
.rb-pricecard__amount { font-size: 56px; font-weight: 800; line-height: 1; }
.rb-pricecard__amount sup { font-size: 24px; vertical-align: super; margin-right: 2px; }
.rb-pricecard .rb-alert { width: 100%; max-width: 440px; }
.rb-table__section th { background: var(--rb-surface-2); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-muted); text-align: left; }
.rb-table--compare th:not(:first-child), .rb-table--compare td:not(:first-child) { text-align: center; width: 120px; }
.rb-yes { color: var(--rb-primary); font-weight: 700; }
.rb-no { color: var(--rb-muted); }
.rb-bottomcta { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 28px 20px; text-align: center; }
.rb-bottomcta p { margin: 0; }

/* ── 30. Shared list + small-form pieces (kennels, barns, businesses…) ─ */
.rb-narrow { max-width: 640px; }
.rb-rowlist { padding: 4px 20px; }
.rb-rowlist__item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border-top: 1px solid var(--rb-line); }
.rb-rowlist__item:first-child { border-top: 0; }
.rb-rowlist__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rb-rowlist__actions { display: flex; gap: 8px; flex: none; }
.rb-dangerzone { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding-top: 20px; border-top: 1px solid var(--rb-line); }
.rb-dangerzone > * { margin: 0; }
.rb-dangerzone .rb-card__title { color: var(--rb-red); }
.rb-rowlist--flush { padding: 0; }
.rb-rowlist__item > .rb-avatar { flex: none; }
.rb-rowlist__item .rb-rowlist__main { flex: 1; }
.rb-select--sm { padding-top: 6px; padding-bottom: 6px; font-size: 13px; width: auto; }
.rb-picklist { display: flex; flex-direction: column; max-height: 320px; overflow-y: auto; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); }
.rb-picklist__row { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--rb-line); cursor: pointer; }
.rb-picklist__row:first-child { border-top: 0; }
.rb-picklist__row[hidden] { display: none; }
.rb-picklist__row:hover { background: color-mix(in srgb, var(--rb-primary) 5%, transparent); }
.rb-picklist__row .rb-muted { display: block; font-size: 13px; }
.rb-picklist__row input { margin-top: 4px; }
.rb-twocol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
@media (max-width: 860px) { .rb-twocol { grid-template-columns: 1fr; } }
.rb-bignum { margin: 0; font-size: 36px; font-weight: 800; }
.rb-bignum .rb-muted { font-size: 22px; font-weight: 600; }
.rb-capbar { display: flex; flex-direction: column; gap: 8px; padding: 16px 20px; }
.rb-capbar .rb-bar { width: 100%; }
.rb-rowlist__item > .rb-pill { flex: none; }

/* ═════ 31. BARN PAGE — .rb-facts (label/value list), .rb-barnlogo ═════ */
.rb-facts { margin: 0; display: flex; flex-direction: column; }
.rb-facts > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--rb-line); }
.rb-facts > div:first-child { border-top: 0; }
.rb-facts dt { color: var(--rb-muted); font-size: 14px; }
.rb-facts dd { margin: 0; font-weight: 600; text-align: right; }
.rb-barnlogo { max-width: 100%; max-height: 120px; object-fit: contain; align-self: flex-start; border-radius: var(--rb-radius-sm); }

/* ═════ 32. HAVEN — sortable, clickable table rows ═════ */
.rb-table--rows tbody tr[data-href] { cursor: pointer; }
.rb-table--rows tbody tr[data-href]:hover { background: color-mix(in srgb, var(--rb-primary) 5%, transparent); }
.rb-table--rows th a { color: inherit; text-decoration: none; white-space: nowrap; }
.rb-table--rows th a:hover { color: var(--rb-primary); }
.rb-table--rows td form { margin: 0; }
.rb-center { text-align: center; }
.rb-table--narrow { min-width: 0; }
.rb-table--narrow td:last-child { overflow-wrap: anywhere; }
.rb-listbar + .rb-pager { margin-top: 0; margin-bottom: 12px; }

/* ═════ 33. BUSINESSES — .rb-bizgrid / .rb-bizcard ═════ */
.rb-bizgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.rb-bizcard { display: flex; align-items: flex-start; gap: 16px; color: inherit; text-decoration: none; }
.rb-bizcard:hover { box-shadow: var(--rb-shadow-pop); }
.rb-bizcard .rb-avatar { flex: none; color: #fff; }
.rb-bizcard__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.rb-bizcard__name { font-size: 17px; }
@media (max-width: 560px) { .rb-bizgrid { grid-template-columns: 1fr; } }

/* ═════ 34. BUSINESS PROFILE — trainer credential cards ═════ */
.rb-credgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.rb-credcard { display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.rb-credcard__top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.rb-narrowbar { max-width: 260px; }
#ytab-log[hidden], #ytab-services[hidden] { display: none; }
.rb-hero__lead { display: flex; align-items: center; gap: 20px; min-width: 0; }
.rb-hero__lead .rb-avatar { flex: none; }

/* ═════ 35. TRAINING — wrapping rows, inline forms ═════ */
.rb-rowlist__item--wrap { flex-wrap: wrap; }
.rb-inline { display: inline-flex; align-items: center; gap: 8px; margin: 0; flex-wrap: wrap; }
.rb-pricecol { text-align: right; display: flex; flex-direction: column; font-size: 20px; }

/* ═════ 36. TRAINING DASHBOARD ═════ */
.rb-hintgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.rb-hint { display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.rb-bulkbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 14px 20px; }
.rb-bulkbar__group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rb-bulkbar__count { margin-left: auto; }
.rb-block { display: block; }
.rb-minibar { display: flex; align-items: center; gap: 8px; min-width: 110px; }
.rb-minibar .rb-bar { flex: 1; }
.rb-table tbody tr.is-selected { background: color-mix(in srgb, var(--rb-primary) 8%, transparent); }
.rb-table tr[hidden], .rb-table[hidden] { display: none; }
@media (max-width: 560px) { .rb-bulkbar__count { margin-left: 0; } }

/* ═════ 37. HEALTH DASHBOARD ═════ */
.rb-table tbody tr.is-attention td:first-child { box-shadow: inset 3px 0 0 var(--rb-gold); }
.rb-tablewrap[hidden], .rb-card[hidden] { display: none; }
.rb-stack[hidden], .rb-hire[hidden] { display: none; }
.rb-hire { display: flex; flex-direction: column; gap: 14px; }
.rb-hire__list { max-height: 180px; }
.rb-hire__msg[hidden] { display: none; }

/* ═════ 38. FELLOWSHIP — service list + order summary ═════ */
.rb-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.rb-checkout__summary { position: sticky; top: 88px; display: flex; flex-direction: column; gap: 12px; }
.rb-checkout__total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 10px; border-top: 1px solid var(--rb-line); }
.rb-checkout__total.is-over strong { color: var(--rb-red); }
.rb-svc { align-items: center; justify-content: space-between; }
.rb-svc strong { flex: 1; }
.rb-svc.is-disabled { opacity: .55; cursor: not-allowed; }
.rb-picklist--tall { max-height: none; }
.rb-empty[hidden] { display: none; }
@media (max-width: 860px) { .rb-checkout { grid-template-columns: 1fr; } .rb-checkout__summary { position: static; } }

/* ═════ 39. ACHIEVEMENTS ═════ */
.rb-achgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rb-ach__top { display: flex; align-items: center; gap: 12px; }
.rb-unlock__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rb-tierlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rb-tierlist__item { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 14px; color: var(--rb-muted); }
.rb-tierlist__item i { width: 16px; text-align: center; }
.rb-tierlist__item.is-earned { color: var(--rb-ink); }
.rb-tierlist__item.is-earned i { color: var(--rb-green, var(--rb-primary)); }
.rb-tierlist__reward { margin-left: auto; font-size: 12px; color: var(--rb-gold); }
@media (max-width: 760px) { .rb-achgrid, .rb-unlock__grid { grid-template-columns: 1fr; } }
.rb-achgrid .rb-card, .rb-unlock { display: flex; flex-direction: column; gap: 12px; }

/* ═════ 40. SETTINGS ═════ */
.rb-setgrid { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 16px; align-items: start; }
.rb-setnav { position: sticky; top: 88px; display: flex; flex-direction: column; gap: 2px; padding: 8px; background: var(--rb-surface); border: 1px solid var(--rb-line); border-radius: var(--rb-radius); }
.rb-setnav a { padding: 10px 12px; border-radius: 10px; font-size: 14px; font-weight: 600; color: var(--rb-muted); }
.rb-setnav a:hover { background: var(--rb-surface-2); color: var(--rb-ink); }
.rb-setnav a.is-active { background: var(--rb-primary-soft); color: var(--rb-primary); }
.rb-setpanels { min-width: 0; }
.rb-setpanel { display: flex; flex-direction: column; gap: 14px; }
.rb-setpanel[hidden] { display: none; }
.rb-setpanel .rb-sectionlabel { margin: 10px 0 0; }
.rb-setpanel .rb-sectionlabel .rb-pill { margin-left: 8px; text-transform: none; letter-spacing: 0; }
.rb-setpanel p { margin: 0; }
.rb-setbox { display: flex; flex-direction: column; gap: 14px; padding: 16px; border: 1px solid var(--rb-line); border-radius: 12px; background: var(--rb-surface-2); }
.rb-setavatar { display: flex; align-items: flex-start; gap: 16px; }
.rb-setavatar .rb-avatar { flex: none; }
.rb-setlogo { display: flex; align-items: center; gap: 12px; }
.rb-setlogo[hidden] { display: none; }
.rb-setlogo img { width: 80px; height: 80px; object-fit: cover; border-radius: 12px; border: 1px solid var(--rb-line); }
.rb-textarea--code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; min-height: 220px; }
.rb-setthemegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; }
.rb-setthemecard { display: flex; flex-direction: column; gap: 6px; padding: 8px; border: 2px solid var(--rb-line); border-radius: 12px; cursor: pointer; font-size: 13px; font-weight: 600; }
.rb-setthemecard input { position: absolute; opacity: 0; pointer-events: none; }
.rb-setthemecard.is-active { border-color: var(--rb-primary); }
.rb-setthemecard.is-locked { opacity: .55; cursor: not-allowed; }
.rb-setthemecard__preview { position: relative; display: block; height: 76px; border-radius: 8px; overflow: hidden; border: 1px solid var(--rb-line); }
.rb-setthemecard__preview--none { display: flex; align-items: center; justify-content: center; background: var(--rb-surface-2); color: var(--rb-muted); }
.rb-setthemecard__top { display: block; height: 14px; }
.rb-setthemecard__body { display: flex; flex-direction: column; gap: 5px; padding: 8px; }
.rb-setthemecard__body i { display: block; height: 5px; border-radius: 3px; }
.rb-setthemecard__body b { display: block; width: 28px; height: 8px; border-radius: 4px; }
.rb-setthemecard__lock { position: absolute; right: 6px; bottom: 6px; font-size: 12px; color: #fff; background: rgba(0,0,0,.5); border-radius: 50%; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; }
.rb-nptable { display: flex; flex-direction: column; border: 1px solid var(--rb-line); border-radius: 12px; overflow: hidden; }
.rb-nptable__row { display: grid; grid-template-columns: minmax(0, 1fr) 90px 100px; gap: 12px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--rb-line); }
.rb-nptable__row:last-child { border-bottom: 0; }
.rb-nptable__row--head { background: var(--rb-surface-2); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--rb-muted); }
.rb-nptable__row > span:not(:first-child) { text-align: center; }
.rb-nptable input { width: 18px; height: 18px; accent-color: var(--rb-primary); }
.rb-setpanel .note-editor { border-color: var(--rb-line); border-radius: 10px; }
@media (max-width: 860px) {
  .rb-setgrid { grid-template-columns: 1fr; }
  .rb-setnav { position: static; flex-direction: row; overflow-x: auto; }
  .rb-setnav a { white-space: nowrap; }
}
@media (max-width: 560px) { .rb-setavatar { flex-direction: column; } .rb-nptable__row { grid-template-columns: minmax(0, 1fr) 56px 56px; padding: 12px; } }
.rb-setpanel { scroll-margin-top: 96px; }
.rb-btn .rb-label__tag { color: inherit; opacity: .8; }

/* ═════ 41. NOTIFICATIONS ═════ */
.rb-notifrow { transition: opacity .3s, transform .3s; }
.rb-notifrow.is-leaving { opacity: 0; transform: translateX(20px); }
.rb-notifrow { padding-left: 16px; padding-right: 0; }
.rb-notifrow.is-unread { box-shadow: inset 3px 0 0 var(--rb-primary); }
.rb-notifrow__icon { flex: none; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--rb-surface-2); color: var(--rb-muted); }
.rb-notifrow__icon--gold { background: var(--rb-gold-soft); color: var(--rb-gold-text); }
.rb-notifrow__icon--terra { background: var(--rb-red-soft); color: var(--rb-red); }
.rb-notifrow__icon--sage { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-link--strong { font-weight: 600; }
.rb-notifgroup .rb-sectionlabel { margin-top: 0; }
.rb-notifrow .rb-chips { margin-top: 4px; align-items: center; }

/* ═════ 42. MANAGE STABLE ═════ */
.rb-mscard { display: flex; flex-direction: column; gap: 12px; }
.rb-mscard p { margin: 0; }
.rb-mscard .rb-formactions { margin-top: auto; }
.rb-slots { display: flex; flex-direction: column; gap: 8px; }
.rb-slots__nums { display: flex; align-items: baseline; gap: 8px; }
.rb-slots__nums strong { font-size: 32px; line-height: 1; }
.rb-slots__total { display: flex; justify-content: space-between; padding-top: 10px; border-top: 1px solid var(--rb-line); }
.rb-cond { display: flex; flex-direction: column; gap: 6px; }
.rb-cond__row { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.rb-cond__met { color: var(--rb-blue-text); font-weight: 600; }

/* ═════ 43. STABLE APPEARANCE ═════ */
.rb-appear { display: flex; align-items: flex-end; min-height: 260px; padding: 24px; border-radius: var(--rb-radius); color: #fff; background-size: cover; background-position: center; box-shadow: inset 0 -60px 85px #0004; transition: min-height .2s ease; }
.rb-appear[data-layout="showcase"] { min-height: 370px; }
.rb-appear[data-layout="minimal"] { min-height: 200px; }
.rb-appear h2 { margin: 4px 0; font-size: 28px; text-shadow: 0 2px 8px #0007; }
.rb-layoutgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.rb-layoutchoice { display: flex; flex-direction: column; gap: 8px; padding: 10px; border: 2px solid var(--rb-line); border-radius: 14px; background: var(--rb-surface); color: var(--rb-ink); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; text-align: center; }
.rb-layoutchoice[aria-pressed="true"] { border-color: var(--rb-primary); background: var(--rb-primary-soft); }
.rb-layoutchoice__thumb { display: block; height: 50px; border-radius: 8px; background: linear-gradient(120deg, var(--rb-primary), var(--rb-primary-soft)); position: relative; overflow: hidden; }
.rb-layoutchoice__thumb::after { content: ''; position: absolute; left: 9px; bottom: 9px; width: 62%; height: 6px; background: #fff; border-radius: 3px; box-shadow: 0 -10px 0 #ffffff99; }
.rb-layoutchoice__thumb--classic::after { top: 20px; bottom: auto; }
.rb-layoutchoice__thumb--minimal { background: linear-gradient(120deg, var(--rb-surface-2), var(--rb-primary-soft)); }
.rb-layoutchoice__thumb--minimal::after { background: var(--rb-primary); box-shadow: 0 -10px 0 var(--rb-muted); }
.rb-fieldset { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 16px; border: 1px solid var(--rb-line); border-radius: 14px; min-width: 0; }
.rb-fieldset legend { padding: 0 8px; font-weight: 700; font-size: 13px; }
.rb-fieldset .rb-field[hidden] { display: none; }
.rb-colorinput { width: 100%; height: 44px; padding: 3px; border: 1px solid var(--rb-line); border-radius: 10px; background: var(--rb-surface); }
@media (max-width: 560px) { .rb-appear { padding: 18px; } .rb-appear[data-layout="showcase"] { min-height: 300px; } .rb-layoutgrid { gap: 6px; } }

/* ═════ 44. STABLE CALENDAR ═════ */
.rb-sctoolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.rb-filterchip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--rb-line); border-radius: var(--rb-pill); background: var(--rb-surface); color: var(--rb-muted); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.rb-filterchip.is-on { border-color: var(--c); color: var(--rb-ink); box-shadow: inset 0 0 0 1px var(--c); }
.rb-scbadge { display: inline-block; padding: 2px 10px; border-radius: var(--rb-pill); font-size: 12px; font-weight: 700; color: var(--rb-ink); background: color-mix(in srgb, var(--c) 18%, transparent); border: 1px solid color-mix(in srgb, var(--c) 45%, transparent); white-space: nowrap; }
.rb-scoverdue summary { cursor: pointer; }
.rb-scoverdue[open] summary { margin-bottom: 12px; }
.rb-scoverdue__row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.rb-scday { cursor: pointer; }
.rb-scday:focus-visible { outline: 3px solid var(--rb-primary-soft); outline-offset: -3px; }
.rb-scchips { flex-direction: row; flex-wrap: wrap; gap: 4px; }
.rb-scchip { display: inline-flex; align-items: center; gap: 3px; padding: 2px 6px; border-radius: 6px; font-size: 12px; background: color-mix(in srgb, var(--c) 18%, transparent); border: 1px solid color-mix(in srgb, var(--c) 40%, transparent); }
.rb-scchip[hidden] { display: none; }
.rb-scgroup { display: flex; flex-direction: column; gap: 10px; padding-left: 12px; border-left: 3px solid var(--c); }
.rb-scgroup .rb-sectionlabel { margin: 0; }
.rb-scitem { display: flex; flex-direction: column; gap: 2px; }
.rb-sctable th[data-sort] { cursor: pointer; user-select: none; }
.rb-sctable th.is-sorted.asc::after { content: ' ↑'; }
.rb-sctable th.is-sorted.desc::after { content: ' ↓'; }
.rb-sctable tr.is-past { opacity: .65; }
.rb-sctable tr[hidden] { display: none; }
#scGrid[hidden], #scList[hidden] { display: none; }
@media (max-width: 560px) { .rb-scchip { padding: 1px 4px; font-size: 10px; } .rb-scchip b { font-size: 10px; } }
.rb-card > .rb-subnote:last-child { margin-top: 12px; }

/* ═════ 45. QUESTS ═════ */
.rb-quest { padding-left: 16px; padding-right: 16px; }
.rb-quest.is-ready { box-shadow: inset 3px 0 0 var(--rb-gold); background: var(--rb-gold-soft); border-radius: var(--rb-radius-sm); }
.rb-quest.is-claimed { opacity: .65; }
.rb-quest__side { flex-direction: column; align-items: flex-end; gap: 6px; }

/* ═════ 46. ASSOCIATIONS ═════ */
.rb-assocgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.rb-assoc { display: flex; align-items: flex-start; gap: 16px; color: inherit; }
.rb-assoc:hover { border-color: var(--rb-primary); text-decoration: none; }
.rb-assoc .rb-avatar { flex: none; }
.rb-assoc__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rb-assoc__name { margin: 0; font-size: 18px; }
.rb-assoc__body p { margin: 0; }
.rb-emptycard { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.rb-card[hidden] { display: none; }
.rb-tabs .rb-subnote { display: inline; margin-left: 4px; }

/* ═════ 47. REGIONS ═════ */
.rb-map { position: relative; line-height: 0; border-radius: var(--rb-radius-sm); overflow: hidden; }
.rb-map__img { width: 100%; height: auto; display: block; user-select: none; }
.rb-map__hot { position: absolute; padding: 0; border: 2px solid transparent; border-radius: 12px; background: transparent; cursor: pointer; }
.rb-map__hot:hover, .rb-map__hot.is-active, .rb-map__hot:focus-visible { border-color: var(--rb-gold); background: color-mix(in srgb, var(--rb-gold) 18%, transparent); outline: none; }
.rb-map__tip { position: absolute; z-index: 2; padding: 6px 12px; border-radius: 8px; background: var(--rb-ink); color: var(--rb-surface); font-size: 13px; font-weight: 600; line-height: 1.3; pointer-events: none; white-space: nowrap; }
.rb-map__tip[hidden] { display: none; }
.rb-region { transition: box-shadow .25s ease; }
.rb-region.is-flash { box-shadow: 0 0 0 2px var(--rb-gold), var(--rb-shadow-pop); }
.rb-region__tag { margin: 4px 0 0; font-style: italic; }
.rb-region__lore { display: flex; flex-direction: column; gap: 12px; }
.rb-region__lore p { margin: 0; }
.rb-regions { align-items: start; }

/* ═════ 48. SEARCH ═════ */
.rb-hero--stack { flex-direction: column; align-items: stretch; }
.rb-searchform { display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, 220px) auto; gap: 12px; }
.search-result[hidden] { display: none; }
.rb-center[hidden], [data-search-more][hidden] { display: none; }
@media (max-width: 760px) { .rb-searchform { grid-template-columns: minmax(0, 1fr) auto; } .rb-searchform .rb-input { grid-column: 1 / -1; } }
@media (max-width: 400px) { .rb-searchform { grid-template-columns: minmax(0, 1fr); } .rb-searchform > * { grid-column: 1; } }

/* ═════ 49. COMMUNITY ═════ */
.rb-commstats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rb-commgrid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.rb-rankno { flex: none; width: 24px; text-align: center; font-weight: 700; color: var(--rb-muted); }
.rb-rankno--1 { color: var(--rb-gold-text); }
.rb-rankno--2 { color: var(--rb-ink); }
.rb-rankno--3 { color: var(--rb-red); }
.rb-commgrid .rb-card > p { margin: 0 0 12px; }
@media (max-width: 860px) { .rb-commgrid { grid-template-columns: 1fr; } }

/* ── 50  Forum thread ─────────────────────────────────────────────── */
.rb-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 14px; color: var(--rb-muted); }
.rb-crumbs a { color: var(--rb-primary); font-weight: 600; text-decoration: none; }
.rb-tag { display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 700; color: var(--rb-ink); background: var(--rb-surface-2); border: 1px solid var(--tag-color, var(--rb-line)); }
.rb-post { display: grid; grid-template-columns: 168px minmax(0, 1fr); border: 1px solid var(--rb-line); border-radius: var(--rb-radius); background: var(--rb-surface); overflow: hidden; scroll-margin-top: 96px; }
.rb-post--own { border-color: var(--rb-primary); }
.rb-post__side { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 20px 14px; text-align: center; background: var(--rb-surface-2); border-right: 1px solid var(--rb-line); min-width: 0; overflow-wrap: anywhere; }
.rb-post__main { display: flex; flex-direction: column; gap: 14px; padding: 20px 24px; min-width: 0; }
.rb-post__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--rb-line); }
.rb-post__foot .rb-subnote { margin: 0; }
.rb-post__actions { display: flex; align-items: center; gap: 16px; }
.rb-post__actions form { display: inline; margin: 0; }
.rb-linkbtn--danger { color: var(--rb-red); }
.rb-post__edit .rb-formactions { margin-top: 12px; }
.rb-post .rb-prose { overflow-wrap: anywhere; }
.rb-prose blockquote { margin: 0 0 12px; padding: 4px 0 4px 14px; border-left: 3px solid var(--rb-line); color: var(--rb-muted); }
.rb-prose pre { position: relative; margin: 0 0 12px; padding: 14px 16px; overflow: auto; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface-2); font-size: 13px; line-height: 1.5; }
.rb-prose code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; }
.rb-prose :not(pre) > code { padding: 1px 6px; border-radius: 6px; background: var(--rb-surface-2); }
.rb-prose img { max-width: 100%; height: auto; }
.rb-prose table { border-collapse: collapse; max-width: 100%; }
.rb-prose td, .rb-prose th { padding: 6px 10px; border: 1px solid var(--rb-line); }
.rb-prose ul, .rb-prose ol { margin: 0 0 12px; padding-left: 24px; }
.rb-copybtn { position: absolute; top: 8px; right: 8px; min-height: 28px; padding: 0 10px; border: 1px solid var(--rb-line); border-radius: 8px; background: var(--rb-surface); color: var(--rb-ink); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.rb-copybtn:hover { border-color: var(--rb-primary); }
.rb-mention-hl { color: var(--rb-primary); font-weight: 700; }
/* Summernote chrome in Ribbon colours */
.rb-post .note-editor.note-frame, #reply-form .note-editor.note-frame { border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); }
.note-editor.note-frame .note-toolbar { background: var(--rb-surface-2); border-bottom: 1px solid var(--rb-line); }
.note-editor.note-frame .note-editing-area .note-editable { background: var(--rb-surface); color: var(--rb-ink); }
.note-editor.note-frame .note-placeholder { color: var(--rb-muted); }
.note-editor.note-frame .note-btn { background: var(--rb-surface); color: var(--rb-ink); border-color: var(--rb-line); }
.note-editor.note-frame .note-statusbar { background: var(--rb-surface-2); border-top: 1px solid var(--rb-line); }
.note-modal-content, .note-dropdown-menu { background: var(--rb-surface); color: var(--rb-ink); }
.rb-sn-btn .rb-sn-preview { display: inline-block; width: 12px; height: 12px; margin-right: 4px; border-radius: 3px; border: 1px solid var(--rb-line); vertical-align: -1px; }
.rb-sn-pop { position: absolute; z-index: 1200; display: grid; grid-template-columns: repeat(8, 22px); gap: 4px; padding: 8px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); box-shadow: var(--rb-shadow-pop); }
.rb-sn-swatch { width: 22px; height: 22px; border-radius: 5px; border: 1px solid var(--rb-line); cursor: pointer; }
.rb-sn-swatch:hover { outline: 2px solid var(--rb-primary); }
.rb-mention { position: absolute; z-index: 1200; min-width: 200px; max-height: 240px; overflow: auto; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); box-shadow: var(--rb-shadow-pop); }
.rb-mention__item { padding: 8px 12px; cursor: pointer; font-size: 14px; }
.rb-mention__item span { color: var(--rb-muted); font-size: 12px; }
.rb-mention__item:hover { background: var(--rb-primary-soft); }
@media (max-width: 720px) {
  .rb-post { grid-template-columns: minmax(0, 1fr); }
  .rb-post__side { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; text-align: left; border-right: 0; border-bottom: 1px solid var(--rb-line); padding: 12px 16px; }
  .rb-post__side .rb-avatar--lg { width: 40px; height: 40px; font-size: 16px; }
  .rb-post__main { padding: 16px; }
}

/* ── 51  Legal pages (terms, privacy) ─────────────────────────────── */
.rb-doc { max-width: 860px; }
.rb-doc__toc ol { margin: 0; padding-left: 22px; display: grid; gap: 6px; }
.rb-doc__toc a, .rb-doc__sec a { color: var(--rb-primary); font-weight: 600; text-decoration: none; }
.rb-doc__sec { scroll-margin-top: 96px; line-height: 1.65; }
.rb-doc__sec h2 { margin: 0 0 12px; }
.rb-doc__sec ul, .rb-doc__sec ol { margin: 0 0 12px; padding-left: 22px; display: grid; gap: 6px; }
.rb-doc__sec p { margin: 0 0 12px; }
.rb-doc__sec .rb-alert { margin: 0 0 12px; }
.rb-doc__contact { padding: 14px 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface-2); }
.rb-doc__contact p { margin: 0 0 6px; }
.rb-doc__contact p:last-child { margin: 0; }
/* ── 52  Login ────────────────────────────────────────────────────── */
.rb-login { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.rb-login__intro { position: relative; overflow: hidden; align-items: flex-start; flex-direction: column; justify-content: flex-start; min-height: 520px; }
.rb-login__img { position: absolute; left: 24px; bottom: 0; height: 40%; width: auto; max-width: 70%; opacity: .9; pointer-events: none; }
.rb-login__intro .rb-hero__text { position: relative; display: flex; flex-direction: column; gap: 14px; max-width: 520px; }
.rb-login__panel { display: flex; flex-direction: column; gap: 14px; }
.rb-login__panel .rb-form { display: flex; flex-direction: column; gap: 14px; }
.rb-login__panel .rb-form[hidden] { display: none; }
.rb-tabs button { padding: 8px 16px; border: 0; border-radius: var(--rb-pill); background: none; color: var(--rb-muted); font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; }
.rb-tabs button:hover { background: var(--rb-surface-2); color: var(--rb-ink); }
.rb-tabs button.is-active { background: var(--rb-primary-soft); color: var(--rb-primary); }
.rb-login__or { text-align: center; margin: 0; }
.rb-login__links { display: flex; justify-content: center; gap: 18px; margin: 4px 0 0; }
.rb-field__error { font-size: 13px; color: var(--rb-red); }
.rb-input[aria-invalid="true"] { border-color: var(--rb-red); }
@media (max-width: 860px) { .rb-login { grid-template-columns: minmax(0, 1fr); } .rb-login__intro { min-height: 0; padding-bottom: 180px; } .rb-login__img { height: 150px; left: 16px; } }
.rb-doc .rb-rowlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rb-doc .rb-card > p { margin: 0 0 10px; }

/* ── 53  Guides (guide, dog, health, discipline, laurels, breed) ───── */
.rb-guide__main {
  flex: 1;
}
.rb-guide__layout {
  max-width: calc(1240px + 2rem);
  margin: 0 auto;
  padding: 3rem 1.5rem 4rem;
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 3rem;
  align-items: start;
}
.rb-guide__search {
  margin-bottom: var(--gap-sm, 12px);
}
.rb-guide__search-input {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--rb-line);
  border-radius: var(--radius, 8px);
  background: var(--rb-surface);
  color: var(--rb-ink);
  font-family: inherit;
  font-size: 0.9rem;
}
mark.rb-guide__search-hit {
  background: var(--rb-primary-soft);
  color: var(--rb-primary);
  padding: 0 2px;
  border-radius: 2px;
}
.rb-guide__search-input:focus {
  outline: none;
  border-color: var(--rb-primary);
}
.rb-guide__nav-group {
  margin-bottom: var(--gap-sm, 12px);
}
.rb-guide__nav-group-header {
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  padding: 6px 0;
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted, var(--rb-ink));
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.rb-guide__nav-group-icon {
  font-size: 0.8125rem;
  color: var(--muted, var(--rb-ink));
  transition: transform 0.15s ease;
}
.rb-guide__nav-group-header[aria-expanded="false"] .rb-guide__nav-group-icon {
  transform: rotate(-90deg);
}
.rb-guide__nav-group-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 2400px;
  overflow: hidden;
  transition: max-height 0.25s ease;
}
.rb-guide__nav-group-list.collapsed {
  max-height: 0;
}
@media (max-width: 900px) {
  .rb-guide__layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .rb-guide__sidebar { order: -1; }
}
.rb-guide__section {
  margin-bottom: 3.5rem;
  scroll-margin-top: calc(72px + 1rem);
}
.rb-guide__section-head {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--rb-line);
}
.rb-guide__section-num {
  color: var(--rb-primary);
  letter-spacing: 0.15em;
}
.rb-guide__section-title {
  font-size: 2rem;
  font-weight: 300;
  color: var(--rb-ink);
}
.rb-guide__section-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.rb-guide__section-body p {
  font-size: 0.875rem !important;
  line-height: 1.75;
  font-family: inherit;
  color: var(--rb-ink);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.rb-guide__section-body .rb-guide__sub {
  font-size: 0.9rem;
  color: var(--rb-primary) !important;
  margin-top: 20px;
}
.rb-guide__section-body ul {
  margin-left: 20px;
  font-size: 0.8125rem;
  color: var(--rb-ink);
  font-weight: 300;
}
.rb-guide__section-body ul > li {
  line-height: 1.3rem;
}
.rb-guide__section-body ul > li::marker {
  color: var(--rb-muted);
}
.rb-guide__card-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 0.5rem;
}
.rb-guide__feature-card {
  background: var(--rb-surface);
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  padding: 1.25rem;
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
}
.rb-guide__feature-icon {
  font-size: 1.4rem;
  flex-shrink: 0;
  margin-top: 2px;
}
.rb-guide__feature-card strong {
  display: block;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--rb-ink);
  margin-bottom: 0.35rem;
}
.rb-guide__feature-card p {
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
  color: var(--rb-muted) !important;
}
.rb-guide__disc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
  margin-top: 0.5rem;
}
.rb-guide__disc-card {
  background: var(--rb-surface);
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  padding: 1.25rem;
  border-left: 3px solid transparent;
}
.rb-guide__disc-card p {
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
  color: var(--rb-muted) !important;
  margin-top: 0.5rem;
}
.rb-guide__disc-tag {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: var(--rb-radius-sm);
}
.rb-guide__disc-name {
  font-family: var(--rb-font);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--rb-ink);
  white-space: nowrap;
}
.rb-guide__disc-abbr {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  padding: .18rem .5rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.2;
}
.rb-guide__disc-abbr.disc-default { background: var(--rb-blue-soft); color: var(--rb-blue); }
.disc-dr .rb-guide__disc-tag { background: var(--rb-blue-soft); color: var(--rb-blue); }
.disc-sj .rb-guide__disc-tag { background: var(--rb-primary-soft); color: var(--rb-primary); }
.disc-ev .rb-guide__disc-tag { background: var(--rb-blue-soft); color: var(--rb-muted); }
.rb-guide__currency-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 0.5rem;
}
@media (max-width: 700px) {
  .rb-guide__currency-pair { grid-template-columns: 1fr; }
}
.rb-guide__currency-card {
  background: var(--rb-surface);
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  overflow: hidden;
}
.rb-guide__currency-header {
  padding: 1.25rem 1.25rem 1rem;
  border-bottom: 1px solid var(--rb-line);
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.ribbon-card .rb-guide__currency-header { background: var(--rb-primary-soft); }
.rosette-card .rb-guide__currency-header { background: var(--rb-blue-soft); }
.rb-guide__currency-icon { font-size: 1.3rem; }
.rb-guide__currency-header h3 {
  font-size: 1.8rem;
  font-weight: 300;
  color: var(--rb-ink);
  flex: 1;
}
.rb-guide__card-row--2col {
  grid-template-columns: repeat(2, 1fr);
}
.rb-guide__currency-type {
  font-size: 0.8125rem;
  letter-spacing: 0.14em;
  color: var(--rb-muted);
}
.rb-guide__currency-detail {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.rb-guide__currency-section ul {
  list-style: none;
  margin-top: 0.4rem;
}
.rb-guide__currency-section ul li {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--rb-ink);
  font-weight: 300;
  padding-left: 1rem;
  position: relative;
}
.rb-guide__currency-section ul li::before {
  content: '–';
  position: absolute;
  left: 0;
  color: var(--rb-muted);
}
.rb-guide__currency-label {
  font-size: 0.8125rem !important;
  letter-spacing: 0.14em;
  color: var(--rb-muted) !important;
  margin-bottom: 0.4rem !important;
}
.rb-guide__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.rb-guide__table tr {
  border-bottom: 1px solid var(--rb-line);
}
.rb-guide__table tr:last-child { border-bottom: none; }
.rb-guide__table td {
  padding: 5px 0;
  color: var(--rb-ink);
  font-weight: 300;
  line-height: 1.5;
}
.rb-guide__table-val {
  text-align: right;
  font-weight: 500;
  color: var(--rb-primary);
  white-space: nowrap;
}
.rb-guide__member-gate {
  font-size: 0.875rem !important;
  color: var(--rb-muted) !important;
  font-style: italic;
  margin-top: 0.25rem !important;
}
.rb-guide__member-gate a {
  color: var(--rb-primary);
  text-decoration: underline;
}
.rb-guide__welcome-teaser,
.rb-guide__welcome-recap {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--rb-surface);
  border: 1px dashed var(--rb-line);
  border-radius: var(--rb-radius-sm);
  padding: 1.1rem 1.25rem;
  flex-wrap: wrap;
}
.rb-guide__welcome-icon { font-size: 1.5rem; flex-shrink: 0; }
.rb-guide__welcome-teaser p,
.rb-guide__welcome-recap p {
  font-size: 0.875rem !important;
  flex: 1;
  min-width: 180px;
}
.rb-guide__tiers {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  overflow: hidden;
}
.rb-guide__tier {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  padding: 1.1rem 1.25rem;
  background: var(--rb-surface);
  border-bottom: 1px solid var(--rb-line);
  transition: background 0.2s;
  position: relative;
}
.rb-guide__tier:last-child { border-bottom: none; }
.rb-guide__tier.tier-active {
  background: linear-gradient(90deg, var(--rb-primary-soft), var(--rb-surface));
  border-left: 3px solid var(--rb-primary);
}
.rb-guide__tier-num {
  font-size: 0.8125rem;
  letter-spacing: 0.14em;
  color: var(--rb-muted);
  min-width: 24px;
  padding-top: 3px;
}
.rb-guide__tier.tier-active .rb-guide__tier-num { color: var(--rb-primary); }
.rb-guide__tier-body { flex: 1; }
.rb-guide__tier-name {
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--rb-ink);
  display: block;
  margin-bottom: 0.2rem;
}
.rb-guide__tier-req {
  font-size: 0.8125rem;
  margin-bottom: 0.4rem;
}
.rb-guide__tier-unlocks {
  font-size: 0.875rem;
  color: var(--rb-ink);
  margin-bottom: 0.25rem;
}
.rb-guide__tier-unlock-label {
  font-size: 0.8125rem;
  letter-spacing: 0.14em;
  color: var(--rb-blue);
  margin-right: 0.4rem;
}
.rb-guide__tier-perk {
  font-size: 0.8125rem;
  color: var(--rb-muted);
  font-weight: 300;
}
.rb-guide__tier-you {
  font-size: 0.8125rem;
  letter-spacing: 0.14em;
  color: var(--rb-primary);
  white-space: nowrap;
  padding-top: 4px;
}
.rb-guide__host-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.rb-guide__host-card {
  background: var(--rb-surface);
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  padding: 1.1rem 1.25rem;
}
.rb-guide__host-card ul {
  list-style: none;
  margin-top: 0.5rem;
}
.rb-guide__host-card li {
  font-size: 0.875rem;
  line-height: 1.8;
  font-weight: 300;
  color: var(--rb-ink);
  padding-left: 1rem;
  position: relative;
}
.rb-guide__host-card li::before {
  content: '–';
  position: absolute;
  left: 0;
  color: var(--rb-muted);
}
.rb-guide__info-box {
  background: var(--rb-blue-soft);
  border: 1px solid var(--rb-blue-soft);
  border-radius: var(--rb-radius-sm);
  padding: 1rem 1.25rem;
}
.rb-guide__info-box p {
  font-size: 0.875rem !important;
  line-height: 1.7 !important;
}
.rb-guide__sidebar {
  position: sticky;
  top: calc(72px + 1.5rem);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (max-width: 900px) {
  .rb-guide__sidebar { position: static; }
}
.rb-guide__sidebar-card {
  background: var(--rb-surface);
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  padding: 1.25rem;
}
.rb-guide__sidebar-label {
  display: block;
  font-size: 0.8125rem;
  letter-spacing: 0.14em;
  color: var(--rb-muted);
  margin-bottom: 0.85rem;
}
.rb-guide__stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px solid var(--rb-line);
  font-size: 0.875rem;
}
.rb-guide__stat-row:last-of-type { border-bottom: none; }
.rb-guide__stat-row span { color: var(--rb-muted); font-weight: 300; }
.rb-guide__stat-row strong { color: var(--rb-ink); }
.rb-guide__tier-progress { margin-top: 0.75rem; }
.rb-guide__tier-progress-label {
  display: flex;
  justify-content: space-between;
  margin-bottom: 5px;
}
.rb-guide__tier-progress-track {
  height: 4px;
  background: var(--rb-line);
  border-radius: 2px;
  overflow: hidden;
}
.rb-guide__tier-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--rb-primary), var(--rb-blue));
  border-radius: 2px;
  transition: width 0.6s ease;
}
.rb-guide__facts-list {
  list-style: none;
}
.rb-guide__facts-list li {
  font-size: 0.875rem;
  line-height: 1.9;
  color: var(--rb-ink);
  font-weight: 300;
}
.rb-guide__nav {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.rb-guide__nav a {
  font-size: 0.875rem;
  font-weight: 300;
  color: var(--rb-muted);
  padding: 7px 0;
  border-bottom: 1px solid var(--rb-line);
  transition: color 0.15s;
}
.rb-guide__nav a:last-child { border-bottom: none; }
.rb-guide__nav a:hover { color: var(--rb-primary); }
.rb-guide__nav a.active {color: var(--rb-ink); font-weight: bold;}
.rb-guide__signup-cta {
  background: var(--rb-ink);
  border-color: transparent;
}
.rb-guide__signup-cta .rb-guide__sidebar-label { color: var(--rb-blue-soft); }
.rb-guide__signup-cta .serif { color: var(--rb-surface); }
.rb-guide__signup-cta p:not(.rb-guide__sidebar-label):not(.serif) { color: var(--rb-surface); }
.rb-guide__rules {
  background: var(--rb-surface);
  border: 1px solid var(--rb-line);
  border-radius: var(--rb-radius-sm);
  box-shadow: var(--rb-shadow);
  padding: 20px 32px;
  margin-bottom: 20px;
}
.rb-guide__rules-title {
  font-family: var(--rb-font);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--rb-ink);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--rb-line);
}
.rb-guide__rules table {
  width: 100%;
  border-collapse: collapse;
}
.rb-guide__rules td {
  padding: 0.8rem 0;
  font-size: 0.875rem;
  color: var(--rb-ink);
  border-bottom: 1px solid var(--rb-line);
  vertical-align: top;
}
.rb-guide__rules th,
.rb-guide__rules td:first-child {
  font-weight: 500;
  color: var(--rb-muted);
  padding-right: 12px;
}
.rb-guide__rules tr:last-child td {
  border-bottom: none;
}
.rb-guide__rules th {
  font-size: 0.875rem;
}
.rb-guide__section[id] {
  scroll-margin-top: calc(var(--header-h, 64px) + 16px);
}
.rb-guide__section-body ul,
.rb-guide__section-body ol {
  margin-left: 20px;
  font-size: 0.875rem;
  color: var(--rb-ink);
  font-weight: 300;
}
.rb-guide__rules li {
  font-size: 0.875rem;
  color: var(--rb-ink);
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--rb-line);
  padding-left: 6px;
  font-family: var(--rb-font);
  font-weight: normal;
  line-height: 1.75;
  margin-left: 6px;
}
.rb-guide__rules li:last-child {
  border-bottom: none;
}
.rb-guide__rules li::marker{
  color:  var(--rb-primary) !important;
}
.rb-guide__rules li ul li {
  margin-left: 20px;
}
.rb-guide__rules p {
  font-size: 0.875rem;
  color: var(--rb-ink);
  line-height: 1.6;
  margin-bottom: 8px;
}
.rb-guide__rules p:last-child {
  margin-bottom: 0;
}
.rb-guide__content {
  counter-reset: guide-sections;
}
.rb-guide__section-num {
  counter-increment: guide-sections;
}
.rb-guide__section-num::before {
  content: counter(guide-sections, decimal-leading-zero);
}
.rb-guide__card-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.rb-guide__feature-card {
  flex: 1;
  min-width: 0; 
}
@media (max-width: 600px) {
  .rb-guide__card-row {
    grid-template-columns: 1fr;
  }
  .rb-guide__disc-grid {
    grid-template-columns: 1fr;
  }
  .rb-guide__card-row--2col {
    grid-template-columns: 1fr;
  }
  .rb-guide__currency-pair {
    grid-template-columns: 1fr;
  }
  .rb-guide__layout {
    padding: 1.5rem 1rem 3rem;
  }
  .rb-guide__hero {
    padding: 2.5rem 1rem 2rem;
  }
}
.rb-guide__disc-td-notes i {
  color: var(--rb-primary);
}
.rb-guide__region-list { display:flex; flex-direction:column; border:1px solid var(--rb-line); border-radius:var(--rb-radius-sm); overflow:hidden; margin-top:1.5rem; }
.rb-guide__region-row { display:flex; align-items:center; gap:1rem; padding:0.85rem 1.25rem; background:var(--rb-surface); border-bottom:1px solid var(--rb-line); transition:background 0.15s ease; }
.rb-guide__region-row:last-child { border-bottom:none; }
.rb-guide__region-row:hover { background:var(--rb-bg); }
.rb-guide__region-accent { width:4px; height:36px; border-radius:2px; flex-shrink:0; }
.rb-guide__region-accent--bluegrass  { background:linear-gradient(180deg,#6b7c5e,#a3b898); }
.rb-guide__region-accent--ironwood   { background:linear-gradient(180deg,#4a6741,#7e9e6b); }
.rb-guide__region-accent--sandstone  { background:linear-gradient(180deg,#b85c38,#d4845f); }
.rb-guide__region-accent--tidewater  { background:linear-gradient(180deg,#5c6b8a,#8fa0bf); }
.rb-guide__region-accent--sunbelt    { background:linear-gradient(180deg,#c9943a,#e8c06a); }
.rb-guide__region-accent--harborside { background:linear-gradient(180deg,#4a7a8a,#7ab0c0); }
.rb-guide__region-accent--magnolia   { background:linear-gradient(180deg,#8a5a7a,#c08ab0); }
.rb-guide__region-accent--lakewood   { background:linear-gradient(180deg,#5a7a5a,#8ab08a); }
.rb-guide__region-accent--sundown    { background:linear-gradient(180deg,#a07040,#d4a870); }
.rb-guide__region-accent--palmetto   { background:linear-gradient(180deg,#3a7a6a,#6ab0a0); }
.rb-guide__region-info { flex:1; min-width:0; }
.rb-guide__region-name { font-family: var(--rb-font); font-size:1rem; font-weight:400; color:var(--rb-ink); margin-bottom:0.15rem; }
.rb-guide__region-desc { font-size: 0.8125rem; color:var(--rb-muted); line-height:1.5; }
.rb-guide__region-inspiration { font-size: 0.8125rem; color:var(--rb-primary); font-style:italic; }
.rb-guide__region-badge { flex-shrink:0; background:var(--rb-blue-soft); color:var(--rb-blue); font-size: 0.8125rem; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; padding:3px 8px; border-radius:var(--rb-radius-sm); }
@media (max-width:600px) { .rb-guide__region-badge { display:none; } .rb-guide__region-row { padding:0.75rem 1rem; } }
@media (max-width: 600px) {
  .rb-guide__disc-table th:last-child,
  .rb-guide__disc-table td:last-child { display: none; }

  .rb-guide__disc-table th:first-child,
  .rb-guide__disc-table td:first-child { width: 35%; }

  .rb-guide__disc-table th:nth-child(2),
  .rb-guide__disc-table td:nth-child(2) { width: 25%; }
}
.rb-guide__layout {
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: clamp(2.5rem, 5vw, 5rem);
  padding-top: 4rem;
}
.rb-guide__content { min-width: 0; }
.rb-guide__sidebar {
  position: sticky;
  top: calc(var(--header-h, 64px) + 1rem);
  max-height: calc(100vh - var(--header-h, 64px) - 2rem);
  overflow-y: auto;
  scrollbar-width: thin;
}
.rb-guide__sidebar-card {
  padding: 1.15rem;
  border: 1px solid var(--rb-line);
  border-radius: calc(var(--rb-radius-sm) + 4px);
  background: var(--rb-surface);
  box-shadow: 0 14px 40px rgba(0,0,0,.08);
  backdrop-filter: blur(12px);
}
.rb-guide__sidebar-card + .rb-guide__sidebar-card { margin-top: .8rem; }
.rb-guide__sidebar-label { margin-bottom: .75rem; color: var(--rb-ink); }
.rb-guide__search { position: relative; margin-bottom: .9rem; }
.rb-guide__search > i {
  position: absolute;
  left: .8rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  color: var(--rb-primary);
  font-size: 0.8125rem;
  pointer-events: none;
}
.rb-guide__search-input {
  padding: .7rem 2rem .7rem 2.25rem;
  border-radius: 999px;
  background: var(--rb-surface);
  box-shadow: inset 0 1px 2px rgba(0,0,0,.08);
}
.rb-guide__search-input:focus { border-color: var(--rb-primary); box-shadow: 0 0 0 3px var(--rb-primary-soft); }
.rb-guide__nav-group { margin-bottom: .45rem; }
.rb-guide__nav-group-header { padding: .5rem .35rem; font-size: 0.8125rem; }
.rb-guide__nav-group-list { gap: 2px; border-left: 1px solid var(--rb-line); margin-left: .35rem; }
.rb-guide__nav-group-list a {
  margin-left: -1px;
  padding: .42rem .6rem .42rem .9rem;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0 var(--rb-radius-sm) var(--rb-radius-sm) 0;
  line-height: 1.3;
}
.rb-guide__nav-group-list a:hover { background: var(--rb-primary-soft); }
.rb-guide__nav-group-list a.active { color: var(--rb-primary); border-left-color: var(--rb-primary); background: var(--rb-primary-soft); }
.rb-guide__section { margin-bottom: clamp(4rem, 8vw, 6.5rem); }
.rb-guide__section-head {
  position: relative;
  align-items: center;
  gap: .8rem;
  margin-bottom: 1.75rem;
  padding: 0 0 1rem;
}
.rb-guide__section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--rb-primary);
  border-radius: 50%;
  font-size: 0.8125rem;
  flex: 0 0 auto;
}
.rb-guide__section-title { font-size: clamp(2rem, 4vw, 2.8rem); letter-spacing: -.02em; }
.rb-guide__section-body { gap: 1.2rem; }
.rb-guide__section-body > p { max-width: 100%; font-size: .9rem !important; line-height: 1.8; }
.rb-guide__card-row { gap: .8rem; margin-top: .7rem; }
.rb-guide__feature-card {
  position: relative;
  min-height: 160px;
  padding: 1.25rem;
  border-color: var(--rb-line);
  border-radius: calc(var(--rb-radius-sm) + 3px);
  background: var(--rb-surface);
  box-shadow: 0 8px 28px rgba(0,0,0,.08);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.rb-guide__feature-card::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  background: linear-gradient(90deg, var(--rb-blue), var(--rb-primary));
  opacity: 0;
  transition: opacity .2s ease;
}
.rb-guide__feature-card:hover { transform: translateY(-3px); border-color: var(--rb-line); box-shadow: 0 14px 34px rgba(0,0,0,.08); }
.rb-guide__feature-card:hover::after { opacity: 1; }
.rb-guide__feature-icon {
  display: grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: var(--rb-blue-soft);
  color: var(--rb-blue);
  font-size: 1rem;
}
.rb-guide__feature-card strong { margin-bottom: .35rem; font-size: 0.875rem; letter-spacing: .015em; }
.rb-guide__feature-card p { line-height: 1.6; }
.rb-guide__rules { border-radius: calc(var(--rb-radius-sm) + 3px); box-shadow: 0 8px 28px rgba(0,0,0,.08); }
@media (max-width: 900px) {
  .rb-guide__layout { grid-template-columns: 1fr; padding-top: 1.5rem; }
  .rb-guide__sidebar {
    position: static;
    max-height: none;
    overflow: visible;
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: .8rem;
  }
  .rb-guide__sidebar-card + .rb-guide__sidebar-card { margin-top: 0; }
}
@media (max-width: 600px) {
  .rb-guide__hero { min-height: 0; padding: 3.25rem 1rem 1.5rem; }
  .rb-guide__hero-kicker { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .rb-guide__hero-edition { padding: 0; border: 0; }
  .rb-guide__hero-title { font-size: clamp(2.8rem, 14vw, 4rem); }
  .rb-guide__hero-facts { grid-template-columns: repeat(2, 1fr); }
  .rb-guide__sidebar { display: flex; flex-direction: column; }
  .rb-guide__sidebar-card:first-child { order: 2; }
  .rb-guide__sidebar .rb-guide__nav-card { order: 1; }
  .rb-guide__section { margin-bottom: 4rem; }
  .rb-guide__section-head { align-items: flex-start; }
  .rb-guide__section-num { margin-top: .15rem; }
  .rb-guide__feature-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .rb-guide__feature-card, .rb-guide__feature-card::after { transition: none; }
  .rb-guide__feature-card:hover { transform: none; }
}
.rb-guide__space-bottom { margin-bottom: .75rem; }
.rb-guide__space-bottom-sm { margin-bottom: .5rem; }
.rb-guide__space-bottom-lg { margin-bottom: 1rem; }
.rb-guide__space-top-xs { margin-top: .5rem; }
.rb-guide__space-top-sm { margin-top: .75rem; }
.rb-guide__space-top { margin-top: 1rem; }
.rb-guide__space-top-lg { margin-top: 1.25rem; }
.rb-guide__space-top-xl { margin-top: 1.5rem; }
.rb-guide__small-note, .rb-guide__intro-note { font-size: 0.875rem !important; color: var(--rb-muted) !important; }
.rb-guide__intro-note { margin-bottom: 1.5rem; }
.rb-guide__note-callout { padding: 3px; font-style: italic; }
.rb-guide__caption { font-size: 0.8125rem !important; }
.rb-guide__text-xs { font-size: 0.8125rem !important; }
.rb-guide__text-sm { font-size: 0.875rem !important; }
.rb-guide__inline-label { margin-right: .4rem; font-size: 0.8125rem; }
.rb-guide__no-shrink { flex-shrink: 0; }
.rb-guide__nowrap { white-space: nowrap; }
.rb-guide__border-top { border-top: 1px solid var(--rb-line); }
.rb-guide__emphasis { color: var(--rb-primary); font-style: italic; }
.rb-guide__icon-sm { font-size: .8em; }
.rb-guide__icon-terra { color: var(--rb-primary); margin-right: .5rem; }
.rb-guide__icon-sage { color: var(--rb-blue); margin-right: .5rem; }
.rb-guide__icon-discord { color: var(--rb-blue); }
.rb-guide__inline-link { margin-left: .3rem; color: var(--rb-primary); }
.rb-guide__laurel-icon { margin-right: .25rem; color: var(--rb-blue); font-size: .8em; }
.rb-guide__action-row, .rb-guide__filter-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.rb-guide__action-row { margin-top: .75rem; }
.rb-guide__filter-row { gap: .5rem; margin: 1.25rem 0 .75rem; }
.rb-guide__filter-control { padding: .4rem .7rem; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); font: inherit; font-size: .85rem; }
.rb-guide__filter-control-grow { flex: 1; min-width: 160px; }
.rb-guide__empty-state { padding: 1.5rem; text-align: center; color: var(--rb-muted); font-size: .85rem; }
.rb-guide__compact-table { width: 100%; margin-bottom: .75rem; border-collapse: collapse; font-size: .84rem; }
.rb-guide__row-divider { border-bottom: 1px solid var(--rb-line); }
.rb-guide__cell-label { padding: .5rem .75rem .5rem 0; }
.rb-guide__cell-value { padding: .5rem 0; }
.rb-guide__disc-accordion { border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); overflow: hidden; }
.rb-guide__disc-item { border-bottom: 1px solid var(--rb-line); }
.rb-guide__disc-item:last-child { border-bottom: none; }
.rb-guide__disc-header {
                width: 100%; display: flex; align-items: center; gap: .75rem;
                padding: .875rem 1.25rem; background: var(--rb-surface);
                border: none; cursor: pointer; text-align: left;
                transition: background .15s; flex-wrap: wrap;
            }
.rb-guide__disc-header:hover,
            .rb-guide__disc-item.is-open > .rb-guide__disc-header { background: var(--rb-bg); }
.rb-guide__disc-tag { font-family: var(--rb-font); font-size: 1rem; font-weight: 600; color: var(--rb-ink); white-space: nowrap; flex-shrink: 0; }
.rb-guide__disc-tagline { flex: 1; font-size: 0.875rem; color: var(--rb-muted); line-height: 1.35; min-width: 0; }
.rb-guide__disc-org { font-size: 0.8125rem; white-space: nowrap; flex-shrink: 0; }
.rb-guide__disc-chevron { font-size: .85rem; color: var(--rb-muted); flex-shrink: 0; transition: transform .2s; }
.rb-guide__disc-item.is-open .rb-guide__disc-chevron { transform: rotate(180deg); }
.rb-guide__disc-body { padding: .875rem 1.25rem 1rem; background: var(--rb-surface); border-top: 1px solid var(--rb-line); }
.rb-guide__disc-keystats { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-bottom: .875rem; }
.rb-guide__disc-kstat { background: var(--rb-surface); border: 1px solid var(--rb-line); border-radius: 20px; padding: .1rem .55rem; font-size: 0.8125rem; color: var(--rb-ink); }
.rb-guide__disc-table-wrap { overflow-x: auto; }
.rb-guide__disc-parallel-head { font-size: 0.8125rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--rb-primary); margin:1rem 0 .4rem; }
.rb-guide__disc-parallel-table { width:100%; border-collapse:collapse; font-size: 0.875rem; margin-bottom:.5rem; }
.rb-guide__disc-parallel-table thead th { background:var(--rb-surface); color:var(--rb-primary); font-weight:600; text-align:left; padding:.4rem .75rem; font-size: 0.8125rem; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
.rb-guide__disc-parallel-table tbody tr { border-bottom:1px solid var(--rb-line); }
.rb-guide__disc-parallel-table tbody td { padding:.45rem .75rem; vertical-align:top; color:var(--rb-ink); }
.rb-guide__disc-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.rb-guide__disc-table thead th { background: var(--rb-surface); color: var(--rb-primary); font-weight: 600; text-align: left; padding: .4rem .75rem; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; }
.rb-guide__disc-table tbody tr { border-bottom: 1px solid var(--rb-line); }
.rb-guide__disc-table tbody tr:last-child { border-bottom: none; }
.rb-guide__disc-table tbody td { padding: .5rem .75rem; vertical-align: top; color: var(--rb-ink); line-height: 1.4; }
.rb-guide__disc-tr--locked { opacity: .75; }
.rb-guide__disc-td-name   { font-weight: 600; }
.rb-guide__disc-td-age    { white-space: nowrap; color: var(--rb-muted); font-size: 0.875rem; }
.rb-guide__disc-td-height { white-space: nowrap; color: var(--rb-muted); font-size: 0.8125rem; }
.rb-guide__disc-td-qual   { font-size: 0.8125rem; color: var(--rb-muted); }
.rb-guide__disc-td-notes  { font-size: 0.8125rem; color: var(--rb-muted); }
.rb-guide__disc-statbar { display: inline-flex; align-items: center; gap: .35rem; }
.rb-guide__disc-statbar-fill { display: inline-block; height: 6px; border-radius: 3px; min-width: 4px; }
.rb-guide__disc-statbar-val  { font-size: 0.8125rem; color: var(--rb-muted); }
.rb-guide__disc-stat-none    { color: var(--rb-muted); }
.rb-guide__disc-badge { display: inline-block; padding: .08rem .45rem; border-radius: 20px; font-size: 0.8125rem; font-weight: 600; white-space: nowrap; margin-left: .3rem; vertical-align: middle; }
.rb-guide__disc-badge--locked { background: var(--rb-gold-soft); color: var(--rb-gold-text); border: 1px solid var(--rb-line); }
.rb-guide__disc-badge--aged   { background: var(--rb-blue-soft); color: var(--rb-blue-text); border: 1px solid var(--rb-line); }
.rb-guide__disc-badge--equip  { background: var(--rb-surface); color: var(--rb-primary); border: 1px solid var(--rb-line); }
.rb-guide__disc-testrow  { display: flex; flex-wrap: wrap; gap: .2rem; margin-top: .25rem; }
.rb-guide__disc-testpill { background: var(--rb-surface); border: 1px solid var(--rb-line); border-radius: 20px; padding: .05rem .4rem; font-size: 0.8125rem; color: var(--rb-primary); }
.rb-guide__disc-parallel { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem; margin-top: .75rem; padding-top: .625rem; border-top: 1px solid var(--rb-line); }
@media (max-width: 600px) {
                .rb-guide__disc-header  { padding: .75rem 1rem; gap: .5rem; }
                .rb-guide__disc-tagline { width: 100%; flex-basis: 100%; }
                .rb-guide__disc-org     { display: none; }
                .rb-guide__disc-body    { padding: .625rem 1rem .875rem; }
            }
.rb-guide__disc-table-wrap { overflow-x: auto; max-width: 100%; min-width: 0; }
.rb-guide__disc-table thead th { background: var(--rb-surface); color: var(--rb-primary); font-weight: 600; text-align: left; padding: .4rem .75rem; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: .06em; }
.rb-guide__disc-table tbody td {
    padding: .5rem .75rem;
    vertical-align: top;
    color: var(--rb-ink);
    line-height: 1.4;
    word-break: break-word;
    white-space: normal;
}
.rb-guide__disc-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; word-break: break-word; }
@media (max-width: 600px) {
    .rb-guide__disc-header  { padding: .75rem 1rem; gap: .5rem; }
    .rb-guide__disc-tagline { width: 100%; flex-basis: 100%; }
    .rb-guide__disc-body    { padding: .625rem 1rem .875rem; }
}
.rb-guide__note { font-size: 0.875rem; color:var(--rb-muted); font-style:italic; margin-top:0.25rem; }
/* guide: page frame in Ribbon terms (intro card, layout, headings) */
.rb-guide { display: flex; flex-direction: column; gap: 24px; }
.rb-guide__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 28px 32px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius); background: linear-gradient(135deg, var(--rb-primary-soft), var(--rb-surface) 70%); }
.rb-guide__intro-kicker { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; font-size: 13px; color: var(--rb-muted); }
.rb-guide__intro-kicker .rb-label { text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--rb-ink); }
.rb-guide__intro-title { margin: 0; font-family: var(--rb-font-serif); font-size: clamp(30px, 4.4vw, 44px); font-weight: 500; line-height: 1.1; color: var(--rb-ink); }
.rb-guide__intro-title em { font-style: italic; }
.rb-guide__intro-sub { margin: 0; max-width: 62ch; font-size: 17px; line-height: 1.6; color: var(--rb-muted); }
.rb-guide__intro-facts { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-guide__intro-facts a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: var(--rb-pill); background: var(--rb-surface); border: 1px solid var(--rb-line); color: var(--rb-primary); font-size: 14px; font-weight: 600; text-decoration: none; }
.rb-guide__intro-facts a:hover { background: var(--rb-primary-soft); }
.rb-guide .rb-guide__layout { max-width: none; margin: 0; padding: 0; gap: 24px; grid-template-columns: minmax(0, 1fr) 280px; }
.rb-guide .rb-guide__content { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.rb-guide__section { padding: 24px 28px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius); background: var(--rb-surface); scroll-margin-top: 96px; }
.rb-guide__section-title { margin: 0; font-family: var(--rb-font); font-size: 24px; font-weight: 700; line-height: 1.2; color: var(--rb-ink); }
.rb-guide__sidebar { position: sticky; top: 92px; }
@media (max-width: 900px) { .rb-guide .rb-guide__layout { grid-template-columns: minmax(0, 1fr); } .rb-guide__sidebar { position: static; } .rb-guide__section { padding: 20px; } .rb-guide__intro { padding: 22px 20px; } }
.rb-guide .rb-guide__section { margin-bottom: 0; }
.rb-guide__earn-legend { display: grid; gap: 8px; margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface-2); font-size: 14px; }
.rb-guide__earn-tag { display: inline-flex; align-items: center; min-height: 22px; padding: 0 9px; margin-right: 6px; border-radius: var(--rb-pill); font-size: 12px; font-weight: 700; white-space: nowrap; }
.rb-guide__earn-tag--auto { background: var(--rb-blue-soft); color: var(--rb-blue-text); }
.rb-guide__earn-tag--manual { background: var(--rb-gold-soft); color: var(--rb-gold-text); }

/* guide: breeds */
.rb-breed__toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rb-breed__toolbar .rb-input { flex: 1 1 200px; min-width: 0; }
.rb-breed__toolbar .rb-select { flex: 0 1 180px; min-width: 0; }
.rb-breed__toggle { display: inline-flex; margin-left: auto; border: 1px solid var(--rb-line); border-radius: var(--rb-pill); overflow: hidden; }
.rb-breed__togglebtn { width: 40px; height: 36px; border: 0; background: var(--rb-surface); color: var(--rb-muted); cursor: pointer; }
.rb-breed__togglebtn.is-active { background: var(--rb-primary-soft); color: var(--rb-primary); }
.rb-breed__table th[data-col] { cursor: pointer; }
.rb-breed__table th.rb-sorted--asc::after { content: ' ▲'; font-size: 10px; }
.rb-breed__table th.rb-sorted--desc::after { content: ' ▼'; font-size: 10px; }
.rb-breed__row { cursor: pointer; }
.rb-breed__row[hidden], .rb-breed__expand[hidden], .rb-breed__card[hidden] { display: none; }
.rb-breed__name { font-weight: 700; display: flex; align-items: center; gap: 6px; }
.rb-breed__chev { color: var(--rb-muted); font-size: 11px; }
.rb-breed__row.expanded .rb-breed__chev { transform: rotate(180deg); }
.rb-breed__nowrap { white-space: nowrap; }
.rb-breed__expand-inner { display: grid; gap: 8px; padding: 6px 4px 10px; }
.rb-breed__expand-meta strong { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--rb-muted); }
.rb-breed__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.rb-breed__card { display: flex; flex-direction: column; gap: 10px; }
.rb-breed__desc { color: var(--rb-muted); font-size: 14px; line-height: 1.55; }
.rb-breed__cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.rb-breed__cta p { margin: 0; }
.rb-breed__hero .rb-hero__text, .rb-breed__hero { gap: 8px; }

/* ── 54  Pending, Snowfall ────────────────────────────────────────── */
.rb-pending { max-width: 640px; }
.rb-pending__card { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; padding: 40px 32px; }
.rb-pending__card p { margin: 0; }
.rb-snow__clues { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-top: 12px; }
.rb-snow__clue { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface-2); }
.rb-snow__clue p { margin: 0; }
.rb-snow__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
.rb-snow__flake { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 8px; text-align: center; border: 1px dashed var(--rb-line); border-radius: var(--rb-radius-sm); color: var(--rb-muted); }
.rb-snow__flake.is-found { border-style: solid; background: var(--rb-blue-soft); color: var(--rb-ink); }
.rb-snow__glyph { font-size: 30px; line-height: 1.1; }
.rb-snow__ms { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.rb-snow__milestone { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); }
.rb-snow__milestone.is-done { background: var(--rb-gold-soft); border-color: var(--rb-gold); }
.rb-snow__milestone .rb-subnote { margin: 0; }
.rb-hero--stack .rb-stats { width: 100%; align-items: start; }
.rb-snow__ms + *, .rb-card form.rb-formactions { align-items: center; }
.rb-card form.rb-formactions .rb-select { width: auto; min-width: 160px; }
.rb-hubrow { color: inherit; text-decoration: none; } .rb-hubrow:hover { background: var(--rb-surface-2); }
.rb-card > .rb-title { margin: 6px 0; font-size: 30px; }
.rb-card > .rb-stats { margin-top: 12px; }
.rb-card > .rb-stats { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 16px; }

/* ── 55  Guest preview ────────────────────────────────────────────── */
.rb-guest__banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.rb-guest__shows { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.rb-guest__show { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.rb-guest__show:hover { border-color: var(--rb-primary); }
.rb-guest__showtop { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 8px; }
.rb-guest__days { font-size: 13px; color: var(--rb-muted); }
.rb-guest__days strong { font-size: 20px; color: var(--rb-ink); }
.rb-guest__row { cursor: pointer; }
.rb-guest__row:hover { background: var(--rb-surface-2); }
.rb-guest__cols { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.rb-guest__wide { width: 100%; }
.rb-guest__links { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 0; text-align: center; }
@media (max-width: 860px) { .rb-guest__cols { grid-template-columns: minmax(0, 1fr); } }
.rb-guest__row .rb-bar { min-width: 56px; } .rb-guest__row td:first-child { white-space: nowrap; }

/* ── 56  Breeding (horses and dogs), requests, stud listings, stud market ─── */
.rb-stat__num small { font-size: 16px; font-weight: 600; color: var(--rb-muted); }
.rb-brd__pregs { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.rb-brd__preg { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); }
.rb-brd__pregtop { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.rb-brd__stud { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 14px 16px; border: 1px solid var(--rb-gold); border-radius: var(--rb-radius-sm); background: var(--rb-gold-soft); }
.rb-brd__studmain, .rb-brd__studfee { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rb-brd__studfee { align-items: flex-end; }
.rb-brd__names { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 18px; }
.rb-brd__coats { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-brd__coat { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 12px 0 8px; border: 1px solid var(--rb-line); border-radius: var(--rb-pill); font-size: 13px; font-weight: 600; }
.rb-brd__swatch { width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--rb-line); }
.rb-brd__req { display: flex; flex-direction: column; gap: 10px; }
.rb-brd__reqhead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.rb-brd__reqpair { font-size: 18px; font-weight: 700; }
.rb-brd__note { padding: 10px 14px; border-radius: var(--rb-radius-sm); background: var(--rb-surface-2); font-size: 14px; }
.rb-brd__decline { padding: 14px 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); }
.rb-brd__decline[hidden] { display: none; }
.rb-brd__listing { display: flex; flex-direction: column; gap: 14px; }
.rb-brd__listhead { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.rb-brd__listname { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 200px; }
.rb-brd__listpills { display: flex; flex-wrap: wrap; gap: 6px; }
.rb-brd__listform .rb-formrow { grid-template-columns: 160px minmax(0, 1fr); }
.rb-brd__filters { padding: 14px 18px; align-items: center; }
.rb-brd__filters .rb-select { width: auto; min-width: 160px; }
.rb-stud__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.rb-stud { display: flex; flex-direction: column; gap: 12px; }
.rb-stud--featured { border-color: var(--rb-gold); }
.rb-stud__flag { align-self: flex-start; }
.rb-stud__head { display: flex; align-items: center; gap: 14px; }
.rb-stud__dot { width: 48px; height: 48px; font-size: 18px; }
.rb-stud__who { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.rb-stud__name { font-size: 18px; font-weight: 700; color: var(--rb-ink); }
.rb-stud__notes { margin: 0; font-size: 14px; font-style: italic; color: var(--rb-muted); }
.rb-stud__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--rb-line); }
@media (max-width: 860px) { .rb-brd__listform .rb-formrow { grid-template-columns: minmax(0, 1fr); } .rb-brd__studfee { align-items: flex-start; } }
.page-stud-market .rb-sectionlabel { margin: 6px 0 0; }

/* phones: number strips sit two across instead of one tall column */
@media (max-width: 560px) {
  .rb-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
  .rb-stats .rb-stat { padding-left: 14px; }
  .rb-stats .rb-stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .rb-stats .rb-stat__num { font-size: 30px; }
  .rb-stats .rb-stat__label { font-size: 13px; }
}

/* guide: tidy bullet lists (the old rules stacked default padding + margins) */
.rb-guide__rules ul, .rb-guide__rules ol { margin: 0; padding-left: 20px; }
.rb-guide__rules li { margin-left: 0; padding-left: 4px; font-size: 14px; }
.rb-guide__rules li ul, .rb-guide__rules li ol { margin-top: 6px; padding-left: 18px; }
.rb-guide__rules li ul li, .rb-guide__rules li ol li { margin-left: 0; padding: 4px 0 4px 4px; border-bottom: 0; }
.rb-guide__section-body ul, .rb-guide__section-body ol { margin-left: 0; padding-left: 20px; font-size: 14px; }
@media (max-width: 560px) {
  .rb-guide__rules { padding: 16px 16px; margin-bottom: 14px; }
  .rb-guide__rules ul, .rb-guide__rules ol { padding-left: 18px; }
  .rb-guide__section { padding: 18px 14px; }
}
.rb-guide code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .95em; padding: 1px 5px; border-radius: 5px; background: var(--rb-surface-2); }
.rb-guide__rules li, .rb-guide__section-body ul, .rb-guide__section-body ol { font-size: 15px; }

/* guide: one reading size for all prose (tables, sidebar and the intro lede keep their own) */
.rb-guide .rb-guide__section p, .rb-guide .rb-guide__section li, .rb-guide .rb-guide__section-body p,
.rb-guide .rb-guide__rules p, .rb-guide .rb-guide__rules li,
.rb-guide .rb-guide__info-box p, .rb-guide .rb-guide__info-box li,
.rb-guide .rb-guide__feature-card p, .rb-guide .rb-guide__feature-card li,
.rb-guide .rb-guide__currency-section p, .rb-guide .rb-guide__currency-section li,
.rb-guide .rb-guide__welcome-recap p, .rb-guide .rb-guide__welcome-recap li { font-size: 15px !important; line-height: 1.65; font-weight: 400; }

/* discipline colours: one hue each (light), softer fill + light text in dark */
.rb-disc{background:hsl(var(--h,220) 50% 90%);color:hsl(var(--h,220) 60% 26%)}
.rb-disc.disc-dr{--h:215}
.rb-disc.disc-sj{--h:40}
.rb-disc.disc-ev{--h:5}
.rb-disc.disc-hn{--h:95}
.rb-disc.disc-ss{--h:285}
.rb-disc.disc-we{--h:170}
.rb-disc.disc-ws{--h:25}
.rb-disc.disc-wd{--h:240}
.rb-disc.disc-dv{--h:65}
.rb-disc.disc-cd{--h:350}
.rb-disc.disc-en{--h:140}
.rb-disc.disc-ih{--h:195}
.rb-disc.disc-rn{--h:15}
.rb-disc.disc-ct{--h:55}
.rb-disc.disc-rc{--h:320}
.rb-disc.disc-wp{--h:110}
.rb-disc.disc-br{--h:0}
.rb-disc.disc-cp{--h:260}
.rb-disc.disc-pp{--h:310}
.rb-disc.disc-3g{--h:200}
.rb-disc.disc-5g{--h:155}
.rb-disc.disc-fh{--h:330}
.rb-disc.disc-ag{--h:180}
.rb-disc.disc-cc{--h:80}
.rb-disc.disc-cf{--h:270}
.rb-disc.disc-hd{--h:125}
.rb-disc.disc-pt{--h:355}
.rb-disc.disc-ro{--h:225}
.rb-disc.disc-rt{--h:45}
.rb-disc.disc-sw{--h:300}
.rb-disc.disc-tr{--h:160}
.rb-disc.disc-default{background:var(--rb-surface-2);color:var(--rb-ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .rb-disc{background:hsl(var(--h,220) 35% 24%);color:hsl(var(--h,220) 75% 80%)}:root:not([data-theme="light"]) .rb-disc.disc-default{background:var(--rb-surface-2);color:var(--rb-ink)}}
:root[data-theme="dark"] .rb-disc{background:hsl(var(--h,220) 35% 24%);color:hsl(var(--h,220) 75% 80%)}
:root[data-theme="dark"] .rb-disc.disc-default{background:var(--rb-surface-2);color:var(--rb-ink)}

/* ═══ SKIN: Verdant Yard (parchment · sage green · terracotta) ═══
   Chosen in Settings → Appearance. Sets html[data-skin="verdant"]; only changes colours/radius.
   Four blocks so it follows light/dark exactly like the default look. */
@media (prefers-color-scheme: light) { :root[data-skin="verdant"] { --rb-bg:#f7f3ec;--rb-surface:#fdfaf5;--rb-surface-2:#f0ebe0;--rb-line:#e3dccd;
--rb-ink:#1e2420;--rb-muted:#6b7560;
--rb-primary:#48703d;--rb-on-primary:#ffffff;--rb-primary-soft:#dde5d8;
--rb-gold:#d9a441;--rb-gold-text:#7a5612;--rb-gold-soft:#f6ead0;
--rb-red:#b85c38;--rb-red-soft:#f0ddd5;
--rb-blue:#6b7c5e;--rb-blue-text:#48703d;--rb-blue-soft:#dde5d8;
--rb-radius:12px;--rb-radius-sm:8px;
--rb-shadow:0 1px 2px rgba(30,36,32,.06),0 10px 28px rgba(30,36,32,.07);--rb-shadow-pop:0 4px 12px rgba(30,36,32,.10),0 22px 44px rgba(30,36,32,.14);color-scheme:light; } }
:root[data-skin="verdant"][data-theme="light"] { --rb-bg:#f7f3ec;--rb-surface:#fdfaf5;--rb-surface-2:#f0ebe0;--rb-line:#e3dccd;
--rb-ink:#1e2420;--rb-muted:#6b7560;
--rb-primary:#48703d;--rb-on-primary:#ffffff;--rb-primary-soft:#dde5d8;
--rb-gold:#d9a441;--rb-gold-text:#7a5612;--rb-gold-soft:#f6ead0;
--rb-red:#b85c38;--rb-red-soft:#f0ddd5;
--rb-blue:#6b7c5e;--rb-blue-text:#48703d;--rb-blue-soft:#dde5d8;
--rb-radius:12px;--rb-radius-sm:8px;
--rb-shadow:0 1px 2px rgba(30,36,32,.06),0 10px 28px rgba(30,36,32,.07);--rb-shadow-pop:0 4px 12px rgba(30,36,32,.10),0 22px 44px rgba(30,36,32,.14);color-scheme:light; }
@media (prefers-color-scheme: dark) { :root[data-skin="verdant"]:not([data-theme="light"]) { --rb-bg:#1a201c;--rb-surface:#242c26;--rb-surface-2:#2e382f;--rb-line:#3a463b;
--rb-ink:#f3eee3;--rb-muted:#a9b79d;
--rb-primary:#a3b898;--rb-on-primary:#1a201c;--rb-primary-soft:#33422f;
--rb-gold:#e0b04e;--rb-gold-text:#e8c36e;--rb-gold-soft:#3b3218;
--rb-red:#e59270;--rb-red-soft:#442a1f;
--rb-blue:#a3b898;--rb-blue-text:#b9cdae;--rb-blue-soft:#33422f;
--rb-shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.3);--rb-shadow-pop:0 4px 12px rgba(0,0,0,.45),0 24px 48px rgba(0,0,0,.45);color-scheme:dark; } }
:root[data-skin="verdant"][data-theme="dark"] { --rb-bg:#1a201c;--rb-surface:#242c26;--rb-surface-2:#2e382f;--rb-line:#3a463b;
--rb-ink:#f3eee3;--rb-muted:#a9b79d;
--rb-primary:#a3b898;--rb-on-primary:#1a201c;--rb-primary-soft:#33422f;
--rb-gold:#e0b04e;--rb-gold-text:#e8c36e;--rb-gold-soft:#3b3218;
--rb-red:#e59270;--rb-red-soft:#442a1f;
--rb-blue:#a3b898;--rb-blue-text:#b9cdae;--rb-blue-soft:#33422f;
--rb-shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.3);--rb-shadow-pop:0 4px 12px rgba(0,0,0,.45),0 24px 48px rgba(0,0,0,.45);color-scheme:dark; }

/* ═══ SKINS: Shanny (aqua), Halloween Light, Halloween Dark — fixed look, same in light/dark mode ═══ */
:root[data-skin="shanny"] { --rb-bg:#e4f6fb;--rb-surface:#f4fcfe;--rb-surface-2:#caf0f8;--rb-line:#b9e0ee;--rb-ink:#03045e;--rb-muted:#2f5f8f;--rb-primary:#03045e;--rb-on-primary:#ffffff;--rb-primary-soft:#caf0f8;--rb-gold:#e9b44c;--rb-gold-text:#7a5612;--rb-gold-soft:#fdf1d6;--rb-red:#bf3f63;--rb-red-soft:#fbe3ea;--rb-blue:#006eaa;--rb-blue-text:#023e8a;--rb-blue-soft:#caf0f8;--rb-shadow:0 1px 2px rgba(3,4,94,.06),0 12px 32px rgba(3,4,94,.08);--rb-shadow-pop:0 4px 12px rgba(3,4,94,.12),0 24px 48px rgba(3,4,94,.16);color-scheme:light; }
:root[data-skin="halloween-light"] { --rb-bg:#f6f0fa;--rb-surface:#fffdfb;--rb-surface-2:#e9ddf6;--rb-line:#dccdea;--rb-ink:#2a1638;--rb-muted:#66507d;--rb-primary:#2a1638;--rb-on-primary:#ffffff;--rb-primary-soft:#e9ddf6;--rb-gold:#f08a3c;--rb-gold-text:#a63a00;--rb-gold-soft:#ffe6d2;--rb-red:#b3322b;--rb-red-soft:#fbe3e0;--rb-blue:#6b3fa0;--rb-blue-text:#4e2a7a;--rb-blue-soft:#e9ddf6;--rb-shadow:0 1px 2px rgba(42,22,56,.07),0 12px 32px rgba(42,22,56,.09);--rb-shadow-pop:0 4px 12px rgba(42,22,56,.13),0 24px 48px rgba(42,22,56,.17);color-scheme:light; }
:root[data-skin="halloween-dark"] { --rb-bg:#150d1f;--rb-surface:#1f1430;--rb-surface-2:#2a1b3d;--rb-line:#3b2a54;--rb-ink:#ede4f5;--rb-muted:#ab98c0;--rb-primary:#8456c4;--rb-on-primary:#ffffff;--rb-primary-soft:#33214a;--rb-gold:#ff8a3d;--rb-gold-text:#ffa86b;--rb-gold-soft:#3b2418;--rb-red:#f2778a;--rb-red-soft:#44212d;--rb-blue:#9b6fe0;--rb-blue-text:#c4a5f5;--rb-blue-soft:#33214a;--rb-shadow:0 1px 2px rgba(0,0,0,.45),0 12px 32px rgba(0,0,0,.4);--rb-shadow-pop:0 4px 12px rgba(0,0,0,.5),0 24px 48px rgba(0,0,0,.5);color-scheme:dark; }

/* ═══ STABLE THEMES (shop_items.preview_css) ═══════════════════════════
   A stable theme defines --pt-* colours on #stable-wrapper. This maps them onto the --rb-* tokens
   so the whole stable / barn / kennel page recolours, in light or dark mode and under any site skin.
   Fallbacks are literals (a var() fallback to the variable being defined would be a cycle). */
#stable-wrapper.rb-themed {
  --rb-bg:          var(--pt-bg, transparent);
  --rb-surface:     var(--pt-surface, #ffffff);
  --rb-surface-2:   var(--pt-surface-2, color-mix(in srgb, var(--pt-surface, #ffffff) 90%, var(--pt-text, #1a1a1a)));
  --rb-line:        var(--pt-border, #e1dee3);
  --rb-ink:         var(--pt-text, #1a1a1a);
  --rb-muted:       var(--pt-text-secondary, var(--pt-muted, #666666));
  --rb-primary:     var(--pt-accent, #1d3557);
  --rb-on-primary:  var(--pt-surface, #ffffff);
  --rb-primary-soft: var(--pt-accent-soft, color-mix(in srgb, var(--pt-accent, #1d3557) 14%, transparent));
  --rb-blue:        var(--pt-accent, #457b9d);
  --rb-blue-text:   var(--pt-accent, #2f6486);
  --rb-blue-soft:   var(--pt-accent-soft, color-mix(in srgb, var(--pt-accent, #457b9d) 14%, transparent));
  --rb-gold-text:   var(--pt-highlight, var(--pt-accent2, var(--pt-accent, #8a5a00)));
  --rb-gold-soft:   color-mix(in srgb, var(--pt-accent2, var(--pt-accent, #f4b942)) 16%, transparent);
  --rb-shadow:      0 1px 2px rgba(0,0,0,.12), 0 12px 32px rgba(0,0,0,.10);
  background: var(--pt-bg, transparent);
  color: var(--pt-text, var(--rb-ink));
  border-radius: var(--rb-radius);
  padding: 20px;
}
@media (max-width: 640px) { #stable-wrapper.rb-themed { padding: 12px; } }
#stable-wrapper.rb-themed .rb-card,
#stable-wrapper.rb-themed .rb-hero { background: var(--rb-surface); border-color: var(--rb-line); }
#stable-wrapper.rb-themed .rb-stat__num { color: var(--pt-stat, var(--rb-ink)); }

/* ═══ 57. MANAGE PAGES (businesses/associations) + shared form bits ═══ */
.rb-req { color: var(--rb-red); }
.rb-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; }
.rb-bmcolor { display: flex; align-items: center; gap: 12px; }
.rb-bmcolor__input { width: 52px; height: 40px; padding: 2px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); cursor: pointer; }
.rb-svcrow { display: flex; gap: 16px; justify-content: space-between; align-items: flex-start; padding: 16px 0; border-top: 1px solid var(--rb-line); }
.rb-svcrow.is-off { opacity: .6; }
.rb-svcrow__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.rb-svcrow__side { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.rb-svcrow__price { display: flex; align-items: center; gap: 8px; }
.rb-svcrow__price .rb-input { width: 110px; }
.rb-bmspecs { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.rb-bmspec { padding: 10px 12px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); align-items: center; }
@media (max-width: 640px) { .rb-svcrow { flex-direction: column; } .rb-svcrow__side { flex-direction: row; align-items: center; width: 100%; justify-content: space-between; } }
.rb-narrow2 { max-width: 760px; }
.rb-plainlist { margin: 0; padding-left: 18px; }
.rb-bizcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.rb-bizcard { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); cursor: pointer; background: var(--rb-surface); }
.rb-bizcard input { position: absolute; opacity: 0; pointer-events: none; }
.rb-bizcard > i { font-size: 20px; color: var(--rb-primary); }
.rb-bizcard:hover { border-color: var(--rb-primary); }
.rb-bizcard.is-selected { border-color: var(--rb-primary); box-shadow: inset 0 0 0 1px var(--rb-primary); background: var(--rb-primary-soft); }
.rb-bizcard.is-disabled { opacity: .55; cursor: not-allowed; }

/* hire services */
.rb-hirelayout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.rb-hireblock { padding: 0; }
.rb-hireblock.has-selections { border-color: var(--rb-primary); }
.rb-hireblock__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 16px 20px; cursor: pointer; list-style: none; }
.rb-hireblock__head::-webkit-details-marker { display: none; }
.rb-hireblock__title { min-width: 0; }
.rb-hirelist { display: flex; flex-direction: column; gap: 12px; padding: 4px 20px 20px; border-top: 1px solid var(--rb-line); }
.rb-hirerow { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-top: 1px solid var(--rb-line); flex-wrap: wrap; }
.rb-hirerow:first-of-type { border-top: 0; }
.rb-hirerow[hidden] { display: none; }
.rb-hirerow.is-ineligible { opacity: .55; }
.rb-hirerow input[type=checkbox] { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--rb-primary); }
.rb-hirerow__name { flex: 1; min-width: 180px; display: flex; flex-direction: column; gap: 2px; cursor: pointer; }
.rb-hirerow__focus { flex-basis: 100%; padding-left: 30px; }
.rb-hireside { position: sticky; top: calc(var(--rb-header-h) + 16px); }
.rb-hireside__item { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--rb-line); }
.rb-hireside__total { display: flex; justify-content: space-between; padding-top: 10px; border-top: 2px solid var(--rb-line); }
.rb-hirebar { display: none; }
@media (max-width: 860px) {
  .rb-hirelayout { grid-template-columns: 1fr; }
  .rb-hireside { display: none; }
  .rb-hirebar { display: flex; position: sticky; bottom: 0; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; background: var(--rb-surface); border-top: 1px solid var(--rb-line); box-shadow: var(--rb-shadow-pop); z-index: 20; }
}
.rb-span-all { grid-column: 1 / -1; margin: 6px 0 0; }

/* ── Animal action pages (retire · pasture · surrender · transfer) ── */
.rb-confirmcard p { margin: 0 0 12px; line-height: 1.6; }
.rb-suggest { position: relative; max-width: 360px; }
.rb-suggest__box { position: absolute; top: 100%; left: 0; right: 0; z-index: 50; background: var(--rb-surface); border: 1px solid var(--rb-line); border-top: 0; border-radius: 0 0 var(--rb-radius) var(--rb-radius); box-shadow: 0 6px 18px rgba(0,0,0,.12); overflow: hidden; }
.rb-suggest__item { display: block; width: 100%; padding: 10px 14px; text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--rb-line); color: var(--rb-ink); font: inherit; font-size: 14px; cursor: pointer; }
.rb-suggest__item:last-child { border-bottom: 0; }
.rb-suggest__item:hover, .rb-suggest__item:focus { background: var(--rb-surface-2, var(--rb-line)); }
.rb-suggest__item small { color: var(--rb-muted); }

/* ── Payments / simple centred cards ── */
.rb-center { text-align: center; align-items: center; }
.rb-center .rb-formactions { justify-content: center; }
.rb-amountgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 10px; }

/* ── University ── */
.rb-unigrid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.rb-uniclass { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit; }
.rb-uniclass:hover { border-color: var(--rb-gold, var(--rb-line)); }
.rb-uniclass.is-done { border-color: var(--rb-gold, var(--rb-line)); }
.rb-uniclass__meta { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 13px; color: var(--rb-muted); }
.rb-prose { line-height: 1.75; }
.rb-prose ul, .rb-prose ol { padding-left: 1.3rem; }
.rb-uniq { border: 1px solid var(--rb-line); border-radius: var(--rb-radius); padding: 14px; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.rb-uniq legend { font-weight: 600; padding: 0 4px; }
.rb-uniq--ok { border-color: #4a8a5a; }
.rb-uniq--bad { border-color: #b4553a; }
.rb-tab--locked { opacity: .5; cursor: not-allowed; }
.rb-uniclass .rb-bar { display: block; }

/* ── Atlas explore ── */
.rb-details { border: 1px solid var(--rb-line); border-radius: var(--rb-radius); padding: 10px 14px; }
.rb-details summary { cursor: pointer; font-weight: 600; }
.rb-details p { margin: 8px 0 0; color: var(--rb-muted); }
.rb-journal { border-top: 1px solid var(--rb-line); padding-top: 12px; }
.rb-journal h3 { margin: 4px 0; font-size: 16px; }
.rb-journal p { margin: 0; color: var(--rb-muted); }
.rb-field label .rb-subnote, .rb-field label .rb-pill { display: inline-block; margin-left: 6px; vertical-align: middle; }

/* Header: main navigation centred on the page (brand and tools take equal space either side) */
@media (min-width: 1281px) {
  .rb-header__in .rb-brand { flex: 1 1 0; }
  .rb-header__in .rb-nav { flex: 0 0 auto; justify-content: center; }
  .rb-header__in .rb-header__tools { flex: 1 1 0; justify-content: flex-end; margin-left: 0; }
}

/* Hero lock pills ("Unlock Tier X…") – same height wherever they sit, with or without a neighbouring button */
.rb-hero__actions .rb-pill--plain { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding-top: 0; padding-bottom: 0; box-sizing: border-box; }

.rb-chips .rb-chipform { margin: 0; display: inline-flex; }

/* ═══ Trick-or-Treat Trail (halloween) — festive accents on the normal rb- parts ═══ */
.page-halloween .rb-hw__hero { background: linear-gradient(135deg, var(--rb-gold-soft), var(--rb-surface) 72%); border-color: var(--rb-gold); }
.page-halloween .rb-hw__hero .rb-eyebrow { color: var(--rb-gold-text); }
.rb-hw__doors { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin: 14px 0 6px; }
.rb-hw__door { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 22px 14px; font: inherit; color: var(--rb-ink); text-align: center; cursor: pointer; border: 2px dashed var(--rb-gold); border-radius: var(--rb-radius); background: var(--rb-gold-soft); transition: transform .15s, box-shadow .15s; }
.rb-hw__door:hover:not(:disabled) { transform: translateY(-3px); box-shadow: var(--rb-shadow); }
.rb-hw__door:disabled { opacity: .55; cursor: default; }
.rb-hw__doorico { font-size: 38px; line-height: 1; }
.rb-hw__result { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; margin-top: 12px; }
.rb-hw__midnight { border-color: var(--rb-blue); background: linear-gradient(135deg, var(--rb-blue-soft), var(--rb-surface) 70%); }
.rb-hw__bar { margin: 14px 0; }
.rb-hw__bar::after { background: var(--rb-gold); }
.rb-hw__pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.rb-hw__pumpkin { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px dashed var(--rb-line); border-radius: var(--rb-radius-sm); color: var(--rb-muted); }
.rb-hw__pumpkin.is-found { border: 1px solid var(--rb-gold); background: var(--rb-gold-soft); color: var(--rb-ink); }
.rb-hw__pico { font-size: 26px; line-height: 1; flex: 0 0 auto; }
.rb-hw__hall { margin: 12px 0 0; padding-left: 22px; display: grid; gap: 4px; max-height: 280px; overflow-y: auto; }

/* Stable page tabs: round pills like the rest of the site (was an underline bar) */
.page-stable .rb-tabs { gap: 6px; border-bottom: 0; }
.page-stable .rb-tabs button { padding: 8px 16px; margin-bottom: 0; border: 0; border-radius: var(--rb-pill); color: var(--rb-muted); }
.page-stable .rb-tabs button:hover { background: var(--rb-surface-2); color: var(--rb-ink); border-bottom-color: transparent; }
.page-stable .rb-tabs button.is-active { background: var(--rb-primary-soft); color: var(--rb-primary); border-bottom-color: transparent; }

/* Found an Association: type cards (icon + name on one line, larger description) – works without JS */
.rb-bizcards .rb-bizcard { gap: 10px; padding: 20px; }
.rb-bizcard__head { display: flex; align-items: center; gap: 10px; }
.rb-bizcard__head i { font-size: 22px; color: var(--rb-primary); }
.rb-bizcard__head strong { font-size: 18px; }
.rb-bizcard__desc { font-size: 15px; line-height: 1.45; color: var(--rb-muted); }
.rb-bizcards .rb-bizcard:has(input:checked) { border-color: var(--rb-primary); box-shadow: inset 0 0 0 1px var(--rb-primary); background: var(--rb-primary-soft); }
.page-assoc-found #scopeSection, .page-assoc-found #scopeBreed, .page-assoc-found #scopeDiscipline { display: none; }
.page-assoc-found form:has(input[name="type"]:checked) #scopeSection { display: flex; }
.page-assoc-found form:has(#type_breed:checked) #scopeBreed { display: flex; }
.page-assoc-found form:has(#type_discipline:checked) #scopeDiscipline { display: flex; }
.page-biz-found #yardFoundSpecialties { display: none; }
.page-biz-found form:has(#type_training:checked) #yardFoundSpecialties { display: flex; }
.page-assoc-found .rb-bizcards, .page-biz-found .rb-bizcards { grid-template-columns: 1fr; }

/* ═══ Atlas (map, region pages) ═════════════════════════════════════════ */
.page-atlas-region .rb-atl__hero::before { content: ""; display: block; height: 6px; border-radius: 99px; background: linear-gradient(90deg, var(--cf, var(--rb-primary)), var(--ct, var(--rb-gold))); }
.rb-atl__switch { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-atl__switch .rb-pill { gap: 8px; }
.rb-atl__switch .rb-pill.is-active { background: var(--rb-primary); color: var(--rb-on-primary); border-color: var(--rb-primary); }
.rb-atl__dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.rb-atl__weather { display: flex; gap: 16px; align-items: flex-start; }
.rb-atl__weather p { margin: 4px 0 0; }
.rb-atl__weathericon { width: 44px; height: 44px; border-radius: 50%; flex: none; display: grid; place-items: center; background: var(--rb-gold-soft); color: var(--rb-gold-text); font-size: 18px; }
.rb-atl__lore { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.rb-atl__prose { line-height: 1.7; }
.rb-atl__prose p { margin: 0 0 .8em; }
.rb-atl__prose img { max-width: 100%; height: auto; }
.rb-atl__shows { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.rb-atl__show { display: flex; flex-direction: column; gap: 6px; padding: 16px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); color: var(--rb-ink); text-decoration: none; }
.rb-atl__show:hover { border-color: var(--rb-primary); box-shadow: var(--rb-shadow); }
.rb-atl__stables { display: grid; gap: 12px; }
.rb-atl__stable { border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); overflow: hidden; }
.rb-atl__stablehead, .rb-atl__barn { display: flex; align-items: center; gap: 12px; padding: 12px 16px; }
.rb-atl__barn { border-top: 1px solid var(--rb-line); background: var(--rb-bg); }
.rb-atl__stablename { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rb-atl__stablename a { color: var(--rb-ink); text-decoration: none; }
.rb-atl__stablename a:hover strong { color: var(--rb-primary); }
.rb-atl__logo { width: 44px; height: 44px; border-radius: 12px; object-fit: cover; flex: none; }
.rb-atl__logo--sm { width: 32px; height: 32px; border-radius: 8px; }
.rb-atl__icon { width: 36px; height: 36px; border-radius: 10px; flex: none; display: grid; place-items: center; background: var(--rb-primary-soft); color: var(--rb-primary); }

/* map page */
.page-atlas .rb-atl__layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.page-atlas .rb-atl__mapcard { padding: 0; overflow: hidden; position: relative; }
.rb-atl__mapwrap { position: relative; height: clamp(460px, 72vh, 760px); }
.rb-atl__mapwrap #map { position: absolute; inset: 0; height: 100%; }
.rb-atl__mapwrap .leaflet-container { background: #f5eedc; font-family: var(--rb-font); }
.rb-atl__mapwrap .leaflet-control-zoom a { background: #fff; color: #121d33; border-color: #e1dee3; }
.rb-atl__tools { position: absolute; z-index: 1000; display: flex; gap: 6px; padding: 6px; border-radius: 99px; background: var(--rb-surface); border: 1px solid var(--rb-line); box-shadow: var(--rb-shadow); }
.rb-atl__tools--layers { bottom: 14px; left: 50%; transform: translateX(-50%); }
.rb-atl__tools button, .layer-btn, .scale-bar-unit button { font: 700 12px var(--rb-font); padding: 6px 12px; border-radius: 99px; border: 1px solid var(--rb-line); background: var(--rb-surface); color: var(--rb-muted); cursor: pointer; }
.layer-btn.active, .scale-bar-unit button.active { background: var(--rb-primary); color: var(--rb-on-primary); border-color: var(--rb-primary); }
.page-atlas .scale-bar { position: absolute; z-index: 1000; left: 14px; bottom: 14px; min-width: 130px; padding: 8px 12px; border-radius: var(--rb-radius-sm); background: var(--rb-surface); border: 1px solid var(--rb-line); box-shadow: var(--rb-shadow); font: 700 10px var(--rb-font); color: var(--rb-muted); text-transform: uppercase; letter-spacing: .06em; }
.page-atlas .scale-bar-track { display: flex; height: 6px; margin-bottom: 4px; border: 1px solid var(--rb-line); border-radius: 2px; overflow: hidden; }
.page-atlas .scale-bar-seg { flex: 1; }
.page-atlas .scale-bar-seg:nth-child(odd) { background: var(--rb-ink); }
.page-atlas .scale-bar-seg:nth-child(even) { background: var(--rb-surface); }
.page-atlas .scale-bar-labels { display: flex; justify-content: space-between; }
.page-atlas .scale-bar-unit { margin-top: 6px; display: flex; gap: 6px; justify-content: flex-end; }
.page-atlas .scale-bar-unit button { padding: 2px 8px; font-size: 10px; }
.page-atlas .atlas-legend { position: absolute; z-index: 1000; right: 14px; bottom: 14px; min-width: 150px; padding: 10px 14px; border-radius: var(--rb-radius-sm); background: var(--rb-surface); border: 1px solid var(--rb-line); box-shadow: var(--rb-shadow); }
.page-atlas .legend-title { font: 800 11px var(--rb-font); letter-spacing: .1em; text-transform: uppercase; color: var(--rb-ink); margin-bottom: 8px; }
.page-atlas .legend-row { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-bottom: 4px; color: var(--rb-ink); }
.page-atlas .legend-swatch { width: 14px; height: 14px; border: 1px solid rgba(0,0,0,.2); border-radius: 3px; flex: none; }
.page-atlas .legend-swatch.land { background: rgb(165,176,140); } .page-atlas .legend-swatch.forest { background: rgb(108,128,92); }
.page-atlas .legend-swatch.mountain { background: rgb(132,122,108); } .page-atlas .legend-swatch.water { background: rgb(127,159,178); }
.page-atlas .legend-swatch.desert { background: rgb(201,168,106); } .page-atlas .legend-swatch.wetland { background: rgb(118,152,145); }
.map-marker-town { width: 10px; height: 10px; border-radius: 50%; background: #2c1f0e; border: 1px solid #f5eedc; box-shadow: 0 4px 4px rgba(0,0,0,.3); cursor: pointer; }
.map-marker-landmark { width: 12px; height: 12px; background: #b85c38; border: 1px solid #f5eedc; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); cursor: pointer; }
.map-label { font: italic 600 11px var(--rb-font); color: #2c1f0e; white-space: nowrap; pointer-events: none; transform-origin: left center; text-shadow: 0 0 3px #f5eedc, 0 0 3px #f5eedc, 0 0 3px #f5eedc; }
.cap { font: 800 12px var(--rb-font); color: #2c1f0e; text-shadow: 0 0 4px rgba(255,255,255,.9), 0 0 8px rgba(212,175,55,.6); }
.map-marker-capital { color: #d4af37; font-size: 18px; line-height: 1; text-shadow: 0 0 4px rgba(255,255,255,.9), 0 0 8px rgba(212,175,55,.6); }
.map-marker-custom { color: #b85c38; font-size: 12px; line-height: 1; filter: drop-shadow(0 1px 2px rgba(0,0,0,.35)); }
.page-atlas .leaflet-container :focus, .page-atlas .leaflet-interactive:focus { outline: none; }
.page-atlas .leaflet-tooltip { background: var(--rb-surface); border: 1px solid var(--rb-line); border-radius: 99px; box-shadow: var(--rb-shadow); padding: 4px 12px; font: 800 11px var(--rb-font); letter-spacing: .06em; color: var(--rb-ink); text-transform: uppercase; }
.page-atlas .leaflet-tooltip::before { display: none; }
.page-atlas .leaflet-popup-content-wrapper { background: var(--rb-surface); color: var(--rb-ink); border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); box-shadow: var(--rb-shadow-pop); padding: 0; }
.page-atlas .leaflet-popup-content { margin: 0; font-family: var(--rb-font); }
.page-atlas .leaflet-popup-tip { background: var(--rb-surface); }
.page-atlas .leaflet-popup-close-button { color: var(--rb-muted); }
.page-atlas .popup-inner { padding: 16px 18px; min-width: 200px; }
.page-atlas .popup-swatch { height: 4px; border-radius: 99px; margin-bottom: 12px; }
.page-atlas .popup-name { font: 800 15px var(--rb-font); color: var(--rb-ink); margin-bottom: 6px; }
.page-atlas .popup-desc { font-size: 13px; color: var(--rb-muted); line-height: 1.5; margin-bottom: 12px; }
.page-atlas .popup-link { display: inline-block; font: 700 12px var(--rb-font); color: var(--rb-on-primary); background: var(--rb-primary); text-decoration: none; padding: 8px 14px; border-radius: 99px; }
/* sidebar */
.page-atlas .atlas-sidebar { display: flex; flex-direction: column; gap: 8px; }
.page-atlas .atlas-sidebar h2 { font: 800 18px var(--rb-font); margin: 0; }
.page-atlas .atlas-sidebar p { margin: 0; }
.page-atlas .atlas-eyebrow { font: 800 11px var(--rb-font); letter-spacing: .12em; text-transform: uppercase; color: var(--rb-muted); }
.page-atlas .atlas-muted, .page-atlas #atlas-count { color: var(--rb-muted); font-size: 13px; }
.page-atlas .atlas-sidebar label { font-size: 12px; font-weight: 700; color: var(--rb-muted); margin-top: 6px; display: block; }
.page-atlas .atlas-sidebar input, .page-atlas .atlas-sidebar select { width: 100%; font: inherit; font-size: 14px; padding: 10px 14px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius-sm); background: var(--rb-surface); color: var(--rb-ink); }
.page-atlas .atlas-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.page-atlas .atlas-list { max-height: 240px; overflow: auto; margin-top: 4px; display: grid; gap: 4px; }
.page-atlas .atlas-location { width: 100%; text-align: left; border: 0; background: transparent; border-radius: var(--rb-radius-sm); padding: 10px 12px; font: 700 14px var(--rb-font); color: var(--rb-ink); cursor: pointer; }
.page-atlas .atlas-location small { display: block; font-weight: 500; color: var(--rb-muted); }
.page-atlas .atlas-location:hover, .page-atlas .atlas-location[aria-pressed=true] { background: var(--rb-primary-soft); }
.page-atlas .atlas-detail { margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--rb-line); }
.page-atlas .atlas-detail h2 { font: 800 20px var(--rb-font); margin: 4px 0 8px; }
.page-atlas .atlas-detail h3 { font: 800 14px var(--rb-font); margin: 14px 0 6px; }
.page-atlas .atlas-detail a:not(.atlas-cta) { color: var(--rb-primary); text-decoration: none; font-weight: 700; }
.page-atlas .atlas-cta { display: block; text-align: center; background: var(--rb-primary); color: var(--rb-on-primary); text-decoration: none; font-weight: 700; padding: 12px 16px; border-radius: 99px; margin: 14px 0 10px; }
.page-atlas progress { width: 100%; accent-color: var(--rb-primary); }
.page-atlas .atlas-entry { padding: 10px 0; border-bottom: 1px solid var(--rb-line); }
.page-atlas .atlas-entry summary { cursor: pointer; font-weight: 700; }
@media (max-width: 980px) {
  .page-atlas .rb-atl__layout { grid-template-columns: minmax(0, 1fr); }
  .page-atlas .atlas-legend { display: none; }
  .page-atlas .scale-bar { display: none; }
  .rb-atl__mapwrap { height: 60vh; min-height: 380px; }
}
.rb-quote { margin: 0; padding: 12px 16px; border-left: 3px solid var(--rb-line); background: var(--rb-bg); border-radius: 0 var(--rb-radius-sm) var(--rb-radius-sm) 0; color: var(--rb-muted); }

/* ── Whirl & Win ───────────────────────────────────────────────────── */
.rb-spin { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.rb-spin__machine { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.rb-spin__window { position: relative; width: min(100%, 360px); height: 200px; overflow: hidden; border: 1px solid var(--rb-line); border-radius: var(--rb-radius); background: var(--rb-surface-2); }
.rb-spin__highlight { position: absolute; left: 0; right: 0; top: 72px; height: 56px; border-block: 2px solid var(--rb-primary); background: rgba(127, 127, 127, .08); pointer-events: none; z-index: 1; }
.rb-spin__strip { position: absolute; left: 0; right: 0; top: 0; }
.rb-spin__item { height: 56px; display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 600; }
.rb-spin__result { margin: 0; min-height: 28px; font-weight: 700; }
.rb-spin__result.is-win { color: var(--rb-primary); }
.rb-spin__result.is-lose { color: var(--rb-muted); }
.rb-spin__controls { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.rb-spin__controls p { margin: 0; }
.rb-spin__prizes { display: grid; gap: 4px; margin-top: 10px; }
.rb-spin__prize { padding: 8px 0; border-top: 1px solid var(--rb-line); font-size: 14px; }
.rb-spin__prize:first-child { border-top: 0; }
@media (max-width: 860px) { .rb-spin { grid-template-columns: minmax(0, 1fr); } }
