/* ThePetAdvisor — "Weekend Atlas" design contract, locked September 2026.
   Royal purple / gold / midnight-blue ombré. Mobile-first. No circle motifs
   (max border-radius 8px anywhere; never border-radius:50%). No emojis. */

:root {
  --midnight: #101B3C;
  --midnight-2: #1A2650;
  --purple: #5E2B97;
  --purple-deep: #3E1C66;
  --gold: #C9A227;
  --gold-deep: #8A6414;
  --gold-light: #E8C766;
  --paper: #FAF8F1;
  --card: #FFFFFF;
  --ink: #1B2340;
  --ink-soft: #4A5478;
  --line: #E4DFD2;
  --ok: #2E7D4F;
  --warn: #B07A1E;
  --hero-ombre: linear-gradient(135deg, #101B3C 0%, #2A1B5E 45%, #5E2B97 100%);
  --divider-ombre: linear-gradient(90deg, #5E2B97, #C9A227);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
}

h1, h2, h3, .fraunces {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  line-height: 1.2;
}

a { color: var(--purple); }
a:hover { color: var(--purple-deep); }

/* ---------- Header ---------- */
.site-header {
  background: linear-gradient(135deg, var(--midnight) 0%, var(--midnight-2) 60%, var(--purple-deep) 100%);
  position: sticky;
  top: 0;
  z-index: 100;
  /* Crisp bottom edge so content scrolling underneath reads as intentional
     instead of a glitchy clip (Oct 5, 2026: gold link text peeking out). */
  border-bottom: 2px solid var(--gold);
}
.site-header-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0.75rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  color: var(--paper);
}
.brand img { width: 34px; height: 34px; display: block; }
.brand .wordmark {
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.25rem;
  color: var(--paper);
}
.brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.brand-tagline {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--gold-light);
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.footer-tagline {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--gold-light);
  margin: 0.15rem 0 0.6rem;
}
@media (max-width: 560px) {
  .brand-tagline { display: none; }
  .site-header-inner { padding: 0.6rem 0.75rem; gap: 0.35rem 0.6rem; flex-wrap: wrap; }
  /* On phones the nav drops to its own row so brand + links never force
     horizontal overflow (Oct 5, 2026: Account button was cut off). */
  .site-nav { flex: 1 1 100%; justify-content: flex-start; }
  .brand img { width: 28px; height: 28px; }
  .brand .wordmark { font-size: 1.02rem; }
  .brand { gap: 0.5rem; }
  .site-nav { gap: 0.65rem; }
  .site-nav a { font-size: 0.85rem; white-space: nowrap; }
  .site-nav a[href="/account/"] { padding: 0.5rem 0.75rem; min-height: 40px; }
  /* On phones the menu drops from a fixed spot under the header so it can
     never open half off-screen, no matter where the button sits. */
  .acct-menu {
    position: fixed;
    top: 64px;
    right: 0.75rem;
    left: auto;
    max-width: calc(100vw - 1.5rem);
  }
  /* On phones, two-column fact grids stack — side-by-side squeezes the
     value column into word-by-word wrapping (Oct 3, 2026). */
  dl.kv { grid-template-columns: 1fr; gap: 0.1rem 0; }
  dl.kv dd { margin: 0 0 0.7rem; }
  /* Day tables fit the phone instead of forcing a 560px scroll. */
  #days table.data { min-width: 0; }
  #days table.data tbody td { padding: 0.6rem 0.7rem; }
}
/* Breed finder day accordion (Oct 3, 2026): one day open at a time. */
.finder-days { display: grid; gap: .5rem; margin: 1rem 0; }
.finder-day { border: 1px solid var(--line, #e5ddc9); border-radius: 10px; overflow: hidden; background: #fff; }
.finder-day-btn { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .75rem 1rem; background: transparent; border: 0; font: inherit; font-weight: 700; color: var(--ink, #2b2620); cursor: pointer; text-align: left; }
.finder-day-btn::after { content: "▸"; color: var(--gold, #b98a1d); font-size: 1.1rem; transition: transform .15s; }
.finder-day-btn[aria-expanded="true"]::after { transform: rotate(90deg); }
.finder-day-btn .fd-n { font-size: .8rem; font-weight: 400; color: var(--ink-soft, #4a4458); margin-left: auto; margin-right: .25rem; }
.finder-day-btn[aria-expanded="true"] { background: rgba(94, 43, 151, .06); }
.finder-day-body .table-wrap { margin: 0; border-top: 1px solid var(--line, #e5ddc9); }
/* Phone numbers never break across lines. */
.phone { white-space: nowrap; }
/* Backstop: no page-level horizontal scroll — a too-wide element gets clipped
   instead of shrink-to-fitting the whole page on iOS. `clip` (not hidden)
   keeps position:sticky working. */
html, body { overflow-x: clip; }
.site-nav { display: flex; gap: 1.25rem; align-items: center; }
.site-nav a {
  color: var(--gold-light);
  text-decoration: none;
  font-size: 0.95rem;
}
.site-nav a:hover { color: #fff; }

/* ---------- header account dropdown ---------- */
.acct-wrap { position: relative; }
.acct-btn {
  background: var(--gold);
  border: 0;
  color: var(--midnight);
  font-size: 0.95rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  padding: 0.65rem 1.25rem;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 44px;
}
.acct-btn:hover { background: var(--gold-light); color: var(--midnight); }
.acct-btn .chip { font-size: 0.7rem; padding: 0.05rem 0.45rem; }
/* signed-out Log in link: same gold button as the signed-in Account button */
.site-nav a[href="/account/"] {
  background: var(--gold);
  color: var(--midnight);
  font-weight: 600;
  padding: 0.65rem 1.25rem;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.site-nav a[href="/account/"]:hover { background: var(--gold-light); color: var(--midnight); }
.acct-caret { font-size: 0.75rem; }
.acct-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 220px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(20, 16, 60, 0.22);
  padding: 0.4rem;
  z-index: 300;
}
.acct-menu a,
.acct-menu button[data-acct-signout] {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.7rem 0.9rem;
  min-height: 44px;
  border-radius: 7px;
  color: var(--ink);
  font-size: 0.95rem;
  text-decoration: none;
  background: none;
  border: 0;
  font-family: inherit;
  cursor: pointer;
}
.acct-menu a:hover,
.acct-menu button[data-acct-signout]:hover { background: #F4F1E6; color: var(--ink); }
.acct-menu button[data-acct-signout] { border-top: 1px solid var(--line); border-radius: 0 0 7px 7px; color: var(--ink-soft); }
.acct-menu a.acct-upgrade { font-weight: 700; color: var(--plum, #4A1D5E); background: #FBF6E3; }
.acct-menu a.acct-upgrade:hover { background: #F6EDC9; color: var(--plum, #4A1D5E); }
/* Signed-in identity at the top of the account menu (Ingra, Oct 6, 2026). */
.acct-menu .acct-identity {
  margin: 0;
  padding: 0.55rem 0.9rem 0.65rem;
  font-size: 0.82rem;
  color: var(--ink-soft);
  border-bottom: 1px solid var(--line);
}

/* Followed-panel expand toggles (Ingra, Oct 6, 2026): explicit on-palette
   outline buttons — never an off-palette blue. */
.btn-act[data-judge-assign],
.btn-act[data-judge-note],
.btn-act[data-spec-history] {
  background: transparent;
  border: 1px solid var(--purple);
  color: var(--purple);
}
.btn-act[data-judge-assign]:hover:not([disabled]),
.btn-act[data-judge-note]:hover:not([disabled]),
.btn-act[data-spec-history]:hover:not([disabled]) {
  background: #EFE7F8;
  color: var(--purple);
}
.acct-subnav {
  display: flex;
  gap: 0.5rem 1.25rem;
  flex-wrap: wrap;
  margin: 0 0 1.75rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
}
.acct-subnav a { color: var(--ink-soft); text-decoration: none; font-weight: 600; font-size: 0.95rem; padding: 0.5rem 0.25rem; }
.acct-subnav a:hover { color: var(--ink); }
.acct-subnav a[aria-current="page"] { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }

/* ---------- account hub link cards ---------- */
.acct-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin: 1.5rem 0 2.5rem; }
.acct-card {
  display: block;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 1.1rem 1.25rem;
  text-decoration: none;
  color: var(--ink);
}
.acct-card:hover { border-color: var(--gold); }
.acct-card h3 { margin: 0 0 0.35rem; font-size: 1.05rem; }
.acct-card p { margin: 0; font-size: 0.9rem; color: var(--ink-soft); }

/* ---------- Hero ---------- */
.hero {
  background: var(--hero-ombre);
  color: var(--paper);
  padding: 3rem 1.25rem 2.75rem;
}
.hero-inner { max-width: 1080px; margin: 0 auto; }
.kicker {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--gold-light);
  margin: 0 0 0.75rem;
}
.section .kicker { color: var(--gold-deep); }
.hero h1 {
  color: var(--paper);
  font-size: 2.25rem;
  margin: 0 0 0.75rem;
  max-width: 22ch;
}
.show-heart {
  background: none; border: 0; padding: 0 0 0 0.6rem; cursor: pointer;
  font-size: 0.8em; line-height: 1; vertical-align: baseline;
  color: rgba(255, 255, 255, 0.55);
}
.show-heart:hover { color: #fff; }
.show-heart.on { color: #d63030; }
.show-heart:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.show-heart:disabled { cursor: default; opacity: 0.7; }
.hero .subhead {
  color: #EDE6F5;
  font-size: 1.05rem;
  max-width: 62ch;
  margin: 0 0 0.75rem;
}
.hero .lede {
  color: #CFC3E0;
  font-size: 0.95rem;
  max-width: 62ch;
  margin: 0 0 1.5rem;
}
.btn-row { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.btn {
  display: inline-block;
  background: var(--gold);
  color: var(--midnight);
  font-weight: 600;
  text-decoration: none;
  padding: 0.65rem 1.25rem;
  border-radius: 4px;
}
.btn:hover { background: var(--gold-light); color: var(--midnight); }
.btn-ghost {
  display: inline-block;
  border: 1px solid var(--gold);
  color: var(--ink);
  text-decoration: none;
  padding: 0.65rem 1.25rem;
  border-radius: 4px;
}
.btn-ghost:hover { background: rgba(201, 162, 39, 0.12); color: var(--ink); }
/* On dark heroes the ghost button keeps light text. */
.hero .btn-ghost {
  border-color: var(--gold-light);
  color: var(--paper);
}
.hero .btn-ghost:hover { background: rgba(232, 199, 102, 0.12); color: #fff; }

/* ---------- Tabs ---------- */
.tabs {
  position: sticky;
  top: var(--tabs-stick-top, 130px);
  z-index: 80;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.tabs-inner {
  max-width: 1080px;
  margin: 0 auto;
  display: flex;
  padding: 0 1.25rem;
}
.tab {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  padding: 0.85rem 0.9rem;
  text-decoration: none;
  color: var(--ink);
  font-size: 0.9rem;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
}
.tab:hover { color: var(--purple); }
.tab .n {
  font-family: "Fraunces", Georgia, serif;
  color: var(--gold-deep);
  font-size: 0.85rem;
}

/* ---------- Sections ---------- */
main { display: block; }
.section { padding: 2.5rem 1.25rem; }
.section:nth-of-type(odd) { background: var(--paper); }
.section:nth-of-type(even) { background: #F3EFE3; }
.section-inner { max-width: 1080px; margin: 0 auto; }
.section-head {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.section-head .num {
  font-family: "Fraunces", Georgia, serif;
  color: var(--gold-deep);
  font-size: 1.1rem;
}
.section-head h2 { margin: 0; font-size: 1.75rem; }
.section-head .rule {
  flex: 1;
  height: 4px;
  background: var(--divider-ombre);
  align-self: center;
  min-width: 2rem;
}
.section h3 { font-size: 1.25rem; margin: 2rem 0 0.75rem; }
.section h3:first-of-type { margin-top: 0; }
.section p.lead { font-size: 1.05rem; color: var(--ink-soft); max-width: 70ch; }

/* ---------- Fact grid ---------- */
.fact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 1.5rem 0;
}
.fact {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1rem 1.25rem;
}
.fact .k {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  color: var(--ink-soft);
  margin: 0 0 0.35rem;
}
.fact .v { font-size: 1rem; margin: 0; }
.fact .v strong { color: var(--ink); }

/* ---------- Chips & badge rows ---------- */
.chip {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  white-space: nowrap;
}
.chip.ok { background: #E3F0E8; color: #296F45; border: 1px solid #BFDCCB; }
.chip.pending { background: #F8EEDD; color: #8A5F14; border: 1px solid #E4CFA1; }
.chip.closed { background: #ECE8DD; color: #6B6353; border: 1px solid #D9D2BF; }
.chip.champ-gold { background: #F8EEDD; color: #8A5F14; border: 1px solid var(--gold); }
/* Champion mandate banner (My Dogs): how many dogs still need an answer. */
.notice-warn { margin: 0 0 1rem; padding: .7rem .9rem; border-radius: 8px; background: #F8EEDD; border: 1px solid #E4CFA1; color: #6B4E12; font-size: .9rem; }
.champ-q { display: inline-block; margin-top: .3rem; font-size: .85rem; }
.champ-q .btn-act { margin-left: .25rem; }
.badge-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0; }

/* ---------- Feature tile quick links (under every tile) ---------- */
.tile-links { margin: 0.15rem 0 1.75rem; padding: 0 0.25rem; }
.tile-why { font-size: 0.95rem; color: var(--ink-soft); margin: 0 0 0.55rem; max-width: 62ch; }
.tile-why strong { color: var(--purple); }
.tile-nav { display: flex; flex-wrap: wrap; gap: 0.4rem 0.75rem; align-items: center; margin: 0; font-size: 0.92rem; font-weight: 600; }
.tile-nav a { color: var(--purple); text-decoration: none; border-bottom: 2px solid var(--gold); padding-bottom: 1px; }
.tile-nav a:hover { color: var(--purple-deep); border-bottom-color: var(--purple-deep); }
.tile-nav .sep { color: var(--gold-deep); font-weight: 400; }
.tile-res { display: inline-flex; flex-direction: column; line-height: 1.25; }
.tile-res small { font-size: 0.72rem; font-weight: 400; color: var(--ink-soft); }

.feature-list { display: grid; gap: 1.25rem; margin: 1rem 0 1.75rem; }
.feature-show {
  display: grid; gap: 1rem; grid-template-columns: 1fr;
  background: var(--card); border: 1px solid var(--line); border-radius: 8px;
  padding: 1.25rem; position: relative;
}
@media (min-width: 720px) {
  .feature-show { grid-template-columns: 172px 1fr; gap: 1.5rem; padding: 1.5rem; }
  .feature-show .date-cal { align-self: start; }
  .feature-date { border-right: 1px solid var(--line); padding-right: 1.5rem; }
}
.feature-date strong { display: block; font-size: 1.2rem; line-height: 1.3; }
.feature-date span { display: block; margin-top: 0.3rem; font-size: 0.88rem; color: var(--ink-soft); }
.feature-body h3 { margin: 0 0 0.4rem; font-size: 1.35rem; }
.feature-body h3 a { color: inherit; text-decoration: none; }
.feature-body h3 a:hover { color: var(--purple); }
.feature-body .badge-row { margin-bottom: 0.65rem; }
.feature-body .sell { margin: 0 0 0.75rem; max-width: 68ch; }
.feature-body .sell strong { color: var(--purple); }
.feature-body .venue { margin: 0 0 0.6rem; font-size: 0.95rem; color: var(--ink-soft); }
.feature-body .venue strong { color: var(--ink); }
.feature-body .entry-open { margin: 0 0 0.6rem; }
.feature-body .enter-row { margin: 0 0 0.6rem; }
.feature-body .tile-nav { margin-top: 0.8rem; }
.tile-kicker {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.72rem;
  color: var(--gold-deep);
  margin: 0 0 0.35rem;
}

/* ---------- Calendar peek date badge (feature tiles) ---------- */
.date-cal {
  display: inline-flex;
  flex-direction: column;
  min-width: 5rem;
  margin: 0 0 0.85rem;
  text-align: center;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 3px 4px 0 rgba(16, 27, 60, 0.10);
  transform: rotate(-2deg);
}
.cal-mon {
  background: var(--midnight);
  color: var(--gold);
  font-family: "Fraunces", Georgia, serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.35rem 0.6rem;
}
.cal-days {
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.18rem;
  line-height: 1.15;
  color: var(--ink);
  padding: 0.3rem 0.6rem 0.15rem;
}
.cal-dow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: 0 0.6rem 0.55rem;
}

/* ---------- Show cards ---------- */
.show-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 4px solid var(--line);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin: 1rem 0;
}
.show-card:hover { border-left-color: var(--gold); }
.show-card .date {
  font-family: "Fraunces", Georgia, serif;
  color: var(--purple);
  font-size: 1.05rem;
  margin: 0 0 0.25rem;
}
.show-card h3 { margin: 0 0 0.5rem; font-size: 1.3rem; }
.show-card p { margin: 0.35rem 0; color: var(--ink-soft); }
.show-card dl { margin: 0.5rem 0 0; display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; }
.show-card dt { font-weight: 600; font-size: 0.9rem; }
.show-card dd { margin: 0; font-size: 0.9rem; color: var(--ink-soft); }

/* ---------- Tables ---------- */
.table-wrap { overflow-x: auto; margin: 1rem 0; -webkit-overflow-scrolling: touch; }
table.data {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  min-width: 560px;
}
table.data thead th {
  background: var(--midnight);
  color: var(--paper);
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  text-align: left;
  padding: 0.7rem 1rem;
}
table.data tbody td {
  padding: 0.7rem 1rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
table.data tbody tr:nth-child(even) { background: rgba(94, 43, 151, 0.045); }
table.data tbody tr:hover { background: rgba(201, 162, 39, 0.10); }

/* ---------- Hotel cards ---------- */
.hotel-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 1.5rem 0;
}
.hotel-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
}
.hotel-card h3 { margin: 0 0 0.35rem; font-size: 1.2rem; }
.hotel-card .rate { color: var(--gold); font-weight: 700; margin: 0 0 0.5rem; font-size: 1rem; }
.hotel-card .rate .suffix { color: var(--ink-soft); font-weight: 400; font-size: 0.85rem; }
.hotel-card p { margin: 0.3rem 0; font-size: 0.92rem; color: var(--ink-soft); }
.hotel-card .pet { font-weight: 600; color: var(--ink); }
.hotel-card .phone { margin-top: 0.5rem; }

/* ---------- Callouts ---------- */
.callout {
  border-radius: 8px;
  padding: 1.1rem 1.35rem;
  margin: 1.5rem 0;
  font-size: 0.95rem;
}
.callout.tip { background: #EFE7F8; border-left: 4px solid var(--purple); }
.callout.warn { background: #FBF3E2; border-left: 4px solid var(--warn); }
.callout h4 { margin: 0 0 0.5rem; font-size: 1rem; }
.callout ul { margin: 0.4rem 0 0.2rem; padding-left: 1.25rem; }
.callout li { margin-bottom: 0.3rem; }
.callout p { margin: 0.4rem 0; }

/* "Your weekend" signup banner (logged-out, show guides + Today teaser) */
.your-weekend {
  background: var(--hero-ombre);
  border-radius: 8px;
  padding: 1.75rem 1.75rem;
  margin: 0 0 1.5rem;
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: center;
  justify-content: space-between;
  border-top: 3px solid var(--gold);
}
.your-weekend h2 { margin: 0 0 0.5rem; color: #fff; font-size: 1.5rem; }
.your-weekend p { margin: 0; color: #D9D4E8; font-size: 1rem; max-width: 34rem; }
.your-weekend .btn { flex-shrink: 0; }
.tp-example-tag {
  display: inline-block;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-deep);
  border: 1px solid var(--gold);
  border-radius: 4px;
  padding: 0.15rem 0.5rem;
  margin-bottom: 0.75rem;
}
/* Post-add assign prompt + region favorites prompt */
.assign-prompt {
  background: #EFE7F8;
  border-left: 4px solid var(--purple);
  border-radius: 8px;
  padding: 1.1rem 1.35rem;
  margin-top: 1rem;
}
.assign-prompt p { margin: 0.4rem 0; }
.assign-prompt .item-row {
  background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 0.6rem 0.8rem; margin: 0.5rem 0; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.assign-prompt .item-main { min-width: 0; }
.assign-prompt .item-label { margin: 0; font-weight: 600; }
.assign-prompt .item-label a { color: var(--ink); }
.assign-prompt .item-sub { margin: 0.15rem 0 0; font-size: 0.85rem; color: var(--ink-soft); }
.your-weekend-sm { padding: 1.1rem 1.25rem; margin: 0 0 1rem; }
.your-weekend-sm h2 { font-size: 1.15rem; }
.your-weekend-sm p { font-size: 0.9rem; }

/* ---------- Sources ---------- */
.source-list { font-size: 0.9rem; color: var(--ink-soft); list-style: none; padding: 0; }
.source-list li { margin-bottom: 0.6rem; padding-left: 0; }
.src-tag {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.7rem;
  background: var(--midnight);
  color: var(--gold-light);
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  margin-right: 0.5rem;
  white-space: nowrap;
}

/* ---------- Footer ---------- */
.site-footer {
  background: var(--midnight);
  color: #C9CFE6;
  padding: 2.5rem 1.25rem 1.25rem;
}
.footer-inner { max-width: 1080px; margin: 0 auto; }
.footer-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 1.75rem;
}
.footer-cols h4 { color: var(--gold-light); margin: 0 0 0.6rem; font-size: 1rem; }
.footer-cols p { font-size: 0.9rem; margin: 0; max-width: 42ch; }
.footer-cols ul { list-style: none; padding: 0; margin: 0; }
.footer-cols li { margin-bottom: 0.35rem; }
.footer-cols a { color: #C9CFE6; text-decoration: none; font-size: 0.9rem; }
.footer-cols a:hover { color: var(--gold-light); }
/* Account-area pages use .footer-grid — same light-on-dark link treatment. */
.footer-grid ul { list-style: none; padding: 0; margin: 0; }
.footer-grid li { margin-bottom: 0.35rem; }
.footer-grid a { color: #C9CFE6; text-decoration: none; font-size: 0.9rem; }
.footer-grid a:hover { color: var(--gold-light); }
.footer-bottom {
  border-top: 1px solid rgba(232, 199, 102, 0.25);
  padding-top: 1rem;
  font-size: 0.82rem;
  color: #9AA1BE;
}
.footer-bottom p { margin: 0.25rem 0; }

/* ---------- Lists ---------- */
ul.plain, ol.plain { padding-left: 1.25rem; }
ul.plain li, ol.plain li { margin-bottom: 0.4rem; }
dl.kv { display: grid; grid-template-columns: auto 1fr; gap: 0.3rem 1rem; margin: 1rem 0; }
dl.kv dt { font-weight: 600; }
dl.kv dd { margin: 0; color: var(--ink-soft); }

.divider-bar { height: 4px; background: var(--divider-ombre); }

/* ---------- Breed finder ---------- */
.finder {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin: 1.5rem 0;
}
.finder label { display: block; font-weight: 600; margin-bottom: 0.5rem; }
.finder .finder-row { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.finder input[type="search"] {
  flex: 1 1 220px;
  font-size: 1rem;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--ink);
}
.finder input[type="search"]:focus { outline: 2px solid var(--purple); outline-offset: 1px; }
.finder .legend { font-size: 0.88rem; color: var(--ink-soft); margin: 0.9rem 0 0; }
.finder .legend strong { color: var(--ink); }
.finder-results { margin-top: 1rem; }
.finder-results .count { font-weight: 600; margin-bottom: 0.75rem; }
.finder-results .none { color: var(--ink-soft); }
.finder-results .note { font-size: 0.88rem; color: var(--ink-soft); margin-top: 0.75rem; }

/* ---------- Wide screens ---------- */
@media (min-width: 640px) {
  .fact-grid { grid-template-columns: repeat(2, 1fr); }
  .hotel-grid { grid-template-columns: repeat(2, 1fr); }
  .hero h1 { font-size: 3rem; }
  .footer-cols { grid-template-columns: 1.4fr 1fr 1fr; }
}
@media (min-width: 900px) {
  .fact-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Supplemental: home / shows / about pages ---------- */

/* Show cards used as links */
a.show-card { display: block; text-decoration: none; color: inherit; }
a.show-card:hover { border-left-color: var(--gold); }
.show-card .facts-line { font-size: 0.92rem; color: var(--ink-soft); margin: 0.5rem 0 0.9rem; }
.show-card .facts-line strong { color: var(--ink); }
.show-card .cta { font-weight: 700; color: var(--purple); }
a.show-card:hover .cta { color: var(--gold); }

/* ---------- Favorite hearts on listing cards ---------- */
/* The card's box lives on the wrapper so the calendar badge (with its heart)
   can sit outside the card link — a button can't live inside a link. */
.show-card-wrap {
  position: relative;
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 4px solid var(--line);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin: 1rem 0;
}
.show-card-wrap:hover { border-left-color: var(--gold); }
.show-card-wrap > a.show-card {
  display: block; text-decoration: none; color: inherit;
  background: none; border: 0; border-radius: 0; padding: 0; margin: 0;
}
.show-card-wrap:hover .cta { color: var(--gold); }
.date-cal { position: relative; }
/* Heart sits inside the badge, right of the date. */
.date-cal > .card-fav {
  position: absolute; right: 0.55rem; top: 50%; transform: translateY(-50%);
  z-index: 2;
  width: 2.3rem; height: 2.3rem; border-radius: 50%;
  border: 1px solid var(--line); background: var(--card);
  color: var(--ink-soft); font-size: 1.25rem; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; padding: 0;
}
/* Make room for the heart: date rows shift left so it never covers the date. */
.date-cal:has(> .card-fav) { min-width: 6.5rem; }
.date-cal:has(> .card-fav) > .cal-days,
.date-cal:has(> .card-fav) > .cal-dow { padding-right: 2.95rem; }
.date-cal > .card-fav:hover { border-color: #d63030; color: #d63030; }
.date-cal > .card-fav.on { color: #d63030; border-color: #d63030; }
.date-cal > .card-fav:focus-visible { outline: 2px solid #d63030; outline-offset: 2px; }
.date-cal > .card-fav:disabled { cursor: default; opacity: 0.7; }
.show-card .region {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 0.35rem;
}

/* Numbered how-it-works steps */
.steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
}
.step {
  background: var(--card);
  border: 1px solid var(--line);
  border-top: 4px solid var(--gold);
  border-radius: 8px;
  padding: 1.3rem 1.25rem;
}
.step .num {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 700;
  font-size: 2rem;
  color: var(--gold);
  line-height: 1;
  display: block;
  margin-bottom: 0.5rem;
}
.step h3 { margin: 0 0 0.5rem; font-size: 1.15rem; }
.step p { margin: 0; color: var(--ink-soft); font-size: 0.97rem; }

/* Interior page titles */
.page-title {
  font-family: "Fraunces", Georgia, serif;
  font-size: 2rem;
  margin: 0 0 0.75rem;
  line-height: 1.2;
}
.page-lede {
  font-size: 1.05rem;
  color: var(--ink-soft);
  max-width: 70ch;
  margin: 0 0 1.5rem;
}

/* Prose blocks */
.prose h2 { font-size: 1.5rem; margin: 1.8rem 0 0.6rem; }
.prose p { margin: 0.6rem 0; }
.prose ul { padding-left: 1.25rem; }
.prose li { margin-bottom: 0.4rem; }
.prose a { color: var(--purple); font-weight: 600; }
.prose a:hover { color: var(--gold); }

/* Warning callout alias (amber tint) */
.callout.warning { background: #FBF3E2; border-left: 4px solid var(--warn); }

@media (min-width: 760px) {
  .steps { grid-template-columns: repeat(3, 1fr); }
  .page-title { font-size: 2.4rem; }
}

/* ---------- Homepage Atlas hero (terrier mark) ---------- */
.hero-split .hero-inner {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: flex-start;
}
.hero-mark {
  order: -1;
  max-width: 240px;
}
.hero-mark img {
  display: block;
  width: 100%;
  height: auto;
}
.hero-copy { max-width: 640px; }
@media (min-width: 760px) {
  .hero-split .hero-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
  }
  .hero-mark { order: 0; max-width: 300px; flex: 0 0 300px; }
}

/* ---------- Edition status cards ---------- */
.edition-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 1.5rem 0;
}
.edition-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-top: 4px solid var(--gold);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
}
.edition-card.pending-ed { border-top-color: var(--warn); }
.edition-card .ed-kicker {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.72rem;
  color: var(--ink-soft);
  margin: 0 0 0.3rem;
}
.edition-card h3 { margin: 0 0 0.4rem; font-size: 1.25rem; }
.edition-card p { margin: 0.35rem 0; color: var(--ink-soft); font-size: 0.95rem; }
.edition-card .ed-cta { margin-top: 0.75rem; }
@media (min-width: 640px) {
  .edition-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
  .edition-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- "Click here to enter" rows ---------- */
.enter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
  margin: 1rem 0 0.25rem;
}
.enter-row .btn { font-size: 0.95rem; }
.enter-note { font-size: 0.85rem; color: var(--ink-soft); margin: 0.4rem 0 0; }
.show-card .enter-row { margin-top: 0.9rem; }

/* ---------- Specialty club list ---------- */
.club-list {
  columns: 1;
  list-style: none;
  padding: 0;
  margin: 1rem 0;
  font-size: 0.93rem;
}
.club-list li {
  margin-bottom: 0.35rem;
  padding-left: 1.1rem;
  position: relative;
  break-inside: avoid;
}
.club-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.5rem;
  height: 0.5rem;
  background: var(--gold);
  border-radius: 2px;
}
@media (min-width: 640px) {
  .club-list { columns: 2; column-gap: 2rem; }
}

/* ---------- Account, forms, newsletter, my-actions (added Sep 2026) ---------- */
.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}
.input {
  display: block; width: 100%;
  font: inherit; color: var(--ink);
  background: var(--card); border: 1px solid var(--line);
  border-radius: 4px; padding: 0.6rem 0.75rem;
}
.input:focus { outline: 2px solid var(--purple); outline-offset: 1px; border-color: var(--purple); }
.field { margin-bottom: 1rem; }
.field label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; }
.form-note { font-size: 0.92rem; margin: 0.75rem 0 0; }
.form-note.ok { color: var(--gold-light); font-weight: 600; }
.form-note.error { color: #E08080; font-weight: 600; }
.section .form-note.ok { color: #6B4E12; }
.section .form-note.error { color: #A93226; }

.news-block { margin-top: 1.5rem; }
.news-block p { font-size: 0.9rem; color: #C9C2D6; }
.news-form { display: flex; gap: 0.5rem; margin-top: 0.6rem; }
.news-form .input { flex: 1; min-width: 0; }
.news-form .btn { padding: 0.6rem 1rem; white-space: nowrap; border: 0; cursor: pointer; font: inherit; font-weight: 600; }

.my-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; align-items: center; }
.closing-reminder-opt { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; color: #4a4360; cursor: pointer; margin-left: 0.25rem; }
.closing-reminder-opt input { accent-color: #5b3fa8; width: 1rem; height: 1rem; }
.btn-act {
  display: inline-block; font: inherit; font-weight: 600; font-size: 0.9rem;
  padding: 0.5rem 0.95rem; border-radius: 4px; cursor: pointer;
  border: 1px solid transparent; text-decoration: none;
}
.btn-act.is-save { background: var(--purple); color: #fff; }
.btn-act.is-save:hover:not([disabled]) { background: var(--purple-deep); }
.btn-act.is-plan { background: transparent; border-color: var(--purple); color: var(--purple); }
.btn-act.is-plan:hover:not([disabled]) { background: #EFE7F8; }
.btn-act.is-cal { background: var(--gold); color: var(--midnight); }
.btn-act.is-cal:hover:not([disabled]) { background: var(--gold-light); }
.btn-act.is-invite { background: var(--midnight); color: #fff; }
.btn-act.is-invite:hover:not([disabled]) { background: var(--midnight-2); }
.btn-act.is-remove { background: transparent; border-color: var(--line); color: var(--ink-soft); font-size: 0.85rem; padding: 0.35rem 0.7rem; }
.btn-act.is-remove:hover:not([disabled]) { border-color: #A93226; color: #A93226; }
.btn-act.is-watch { background: transparent; border-color: var(--gold); color: var(--midnight); }
.btn-act.is-watch:hover:not([disabled]) { background: rgba(232, 199, 102, 0.15); }
.btn-act.is-watch.done { border-color: var(--purple); color: var(--purple); }
.watch-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 0.5rem 0 1rem; }
.btn-act[disabled] { opacity: 0.55; cursor: default; }
.btn-act.is-follow { background: transparent; border-color: var(--purple); color: var(--purple); white-space: nowrap; }
.btn-act.is-follow:hover:not([disabled]) { background: #EFE7F8; }
.btn-act.is-following { background: var(--purple); border-color: var(--purple); color: #fff; white-space: nowrap; }
.btn-act.is-following:hover:not([disabled]) { background: var(--purple-deep); }
.btn-act.is-filter { background: transparent; border-color: var(--line); color: var(--ink-soft); font-size: 0.85rem; padding: 0.35rem 0.8rem; }
.btn-act.is-filter.is-on { background: var(--purple); border-color: var(--purple); color: #fff; }
a.stat-card { text-decoration: none; color: inherit; }
.judge-dir-tools { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin: 0 0 0.5rem; }
.judge-dir-search { flex: 1 1 240px; margin: 0; }
.judge-dir-search .input { width: 100%; }
.judge-dir-filters { display: flex; gap: 0.5rem; margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.act-note { width: 100%; font-size: 0.9rem; color: var(--ink-soft); margin: 0.25rem 0 0; }
.act-note a { color: var(--purple); font-weight: 600; }

.auth-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; max-width: 860px; }
@media (min-width: 720px) { .auth-grid { grid-template-columns: 1fr 1fr; } }
.auth-card {
  background: var(--card); border: 1px solid var(--line);
  border-radius: 8px; padding: 1.5rem;
}
.auth-card h3 { margin-top: 0; }
.auth-card .btn { border: 0; cursor: pointer; font: inherit; }
.dash-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 1rem; justify-content: space-between; }
.item-list { display: grid; gap: 0.75rem; margin-top: 1rem; }
/* Schedule history divider (Ingra, Oct 6, 2026) */
.sched-history-h { font-size: 0.85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; color: #6b6486; margin: 1.4rem 0 0.6rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.item-row {
  display: flex; align-items: center; gap: 1rem;
  background: var(--card); border: 1px solid var(--line);
  border-radius: 8px; padding: 0.8rem 1rem;
}
.item-main { flex: 1; min-width: 0; }
.item-label { margin: 0; font-weight: 600; }
.item-sub { margin: 0.15rem 0 0; font-size: 0.85rem; color: var(--ink-soft); }
.empty-note { color: var(--ink-soft); font-size: 0.95rem; }
.dash-actions { margin-top: 1rem; }
.dash-actions .btn { border: 0; cursor: pointer; font: inherit; margin-right: 0.5rem; }

/* ---------- Expandable judge tiles ---------- */
.judge-tile {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 0.75rem 0;
}
.judge-tile summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  align-items: baseline;
  justify-content: space-between;
  padding: 0.9rem 1.2rem;
  font-size: 1.02rem;
}
.judge-tile summary::-webkit-details-marker { display: none; }
.judge-tile summary::after {
  content: "+";
  font-weight: 700;
  color: var(--purple);
  margin-left: auto;
}
.judge-tile[open] summary::after { content: "\2013"; }
.jt-hint { font-size: 0.85rem; color: var(--ink-soft); }
.judge-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  padding: 1rem 1.2rem 1.2rem;
  border-top: 1px solid var(--line);
}
.judge-col h4 {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--purple);
}
.judge-col dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 0.75rem;
  margin: 0;
  font-size: 0.9rem;
}
.judge-col dt { font-weight: 600; }
.judge-col dd { margin: 0; color: var(--ink-soft); }
.judge-col p { font-size: 0.9rem; color: var(--ink-soft); margin: 0.25rem 0; }
@media (max-width: 760px) {
  .judge-cols { grid-template-columns: 1fr; }
}

/* ---------- Slim sticky site search (every page, under the hero) ---------- */
.search-mini {
  position: sticky;
  top: var(--search-stick-top, 60px);
  z-index: 90;
  background: linear-gradient(135deg, var(--midnight) 0%, var(--purple-deep) 70%, var(--purple) 100%);
  border-bottom: 3px solid var(--gold);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
  padding: 0.6rem 0;
}
.search-mini form[data-tpa-search] {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.search-mini input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.55rem 0.9rem;
  border: 2px solid transparent;
  border-radius: 6px;
  font: inherit;
  background: var(--card);
  color: var(--ink);
}
.search-mini input[type="search"]:focus {
  outline: none;
  border-color: var(--gold);
}
.search-mini button.btn {
  border: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 600;
  white-space: nowrap;
}
.search-mini .quiet-links { margin: 0.5rem 0 0; }
/* Keep an open results panel from taking over the viewport while stuck */
.search-mini [data-tpa-results] .sr-panel,
.search-mini [data-tpa-results] .sr-list {
  max-height: 55vh;
  overflow-y: auto;
}
.quiet-links {
  margin: 0.75rem 0 0;
  font-size: 0.9rem;
  color: rgba(250, 248, 241, 0.72);
}
.quiet-links a { color: var(--gold-light); }
.quiet-links a:hover { color: #fff; }
[data-tpa-results] { margin-top: 1rem; }
[data-tpa-results]:empty { margin-top: 0; }
.sr-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.6rem;
}
.sr-link {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.75rem;
  align-items: baseline;
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid var(--line);
  border-left: 4px solid var(--gold);
  border-radius: 6px;
  padding: 0.7rem 1rem;
  text-decoration: none;
  color: var(--ink);
}
.sr-link:hover { border-left-color: var(--purple); }
.sr-date { color: var(--purple); font-weight: 600; font-size: 0.9rem; white-space: nowrap; }
.sr-name { font-family: "Fraunces", Georgia, "Times New Roman", serif; font-weight: 600; }
.sr-where { color: var(--ink-soft); font-size: 0.9rem; white-space: nowrap; }
/* Puppy suggestions v1 (Ingra, Oct 1, 2026) */
.sr-puppy {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--purple);
  background: rgba(90, 40, 160, 0.08);
  border: 1px solid rgba(90, 40, 160, 0.25);
  border-radius: 999px;
  padding: 0.1rem 0.55rem;
  margin-left: 0.4rem;
  white-space: normal;
}
.puppy-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: var(--ink-soft);
  margin-top: 0.5rem;
  cursor: pointer;
}
.puppy-chip input { accent-color: var(--purple); }
.msd-puppy-hint { color: var(--purple); font-style: italic; }
.roster-date { font: inherit; padding: 0.2rem 0.4rem; border: 1px solid var(--line); border-radius: 4px; }
.strip-dob { margin-top: 0.6rem; }
.sr-panel {
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 1rem 1.25rem;
  color: var(--ink);
}
.sr-panel p { margin: 0.4rem 0; }
@media (max-width: 560px) {
  .sr-link { grid-template-columns: 1fr; gap: 0.2rem; }
  .sr-where, .sr-date { white-space: normal; }
}

/* Cookie notice — dismissible, no dark patterns, never blocks the page */
.cookie-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 1.25rem;
  background: #101B3C;
  color: #FBF3E2;
  border-top: 2px solid #C9A227;
  box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.35);
  font-size: 0.9rem;
}
.cookie-bar p { margin: 0; max-width: 60rem; }
.cookie-bar a { color: #C9A227; text-decoration: underline; }
.cookie-bar a:hover { color: #E7C65A; }
.btn-cookie-ok {
  flex: 0 0 auto;
  background: #C9A227;
  color: #101B3C;
  border: 0;
  border-radius: 8px;
  padding: 0.55rem 1.15rem;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
}
.btn-cookie-ok:hover { background: #E7C65A; }

/* ---------- Sticky bottom email capture bar ---------- */
.email-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  /* Above the sticky header (100), search-mini (90) and tabs (80) so page
     furniture slides under — never over — the bar (Oct 5, 2026). */
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  flex-wrap: wrap;
  padding: 0.7rem 3.2rem 0.7rem 1.25rem;
  background: #141B3D;
  color: #FBF3E2;
  border-top: 2px solid #C9A227;
  box-shadow: 0 -4px 18px rgba(10, 12, 30, 0.35);
  transform: translateY(110%);
  transition: transform 0.35s ease;
}
.email-bar.show { transform: translateY(0); }
.email-bar-text { margin: 0; font-size: 0.92rem; }
.email-bar-text strong { color: #E7C65A; }
.email-bar-form { display: flex; gap: 0.5rem; margin: 0; align-items: center; }
.email-bar-form .input { width: 16rem; padding: 0.5rem 0.7rem; }
.email-bar-form .btn { padding: 0.5rem 1.1rem; border: 0; cursor: pointer; font-size: 0.92rem; font-weight: 700; }
.email-bar .form-note { margin: 0; font-size: 0.85rem; flex-basis: 100%; text-align: center; }
.email-bar-close {
  position: absolute;
  top: 0.35rem; right: 0.7rem;
  background: none; border: 0; color: #C9A227;
  font-size: 1.4rem; line-height: 1; cursor: pointer; padding: 0.2rem 0.4rem;
}
.email-bar-close:hover { color: #E7C65A; }
@media (max-width: 640px) {
  .email-bar { gap: 0.55rem; padding: 0.65rem 2.8rem 0.65rem 0.9rem; }
  .email-bar-text { font-size: 0.85rem; flex-basis: 100%; text-align: center; }
  .email-bar-form { width: 100%; }
  .email-bar-form .input { flex: 1 1 auto; width: auto; }
}
@media (max-width: 640px) {
  .cookie-bar { flex-direction: column; align-items: stretch; }
  .btn-cookie-ok { align-self: flex-start; }
}

/* Specialty spotlight (Ingra rule: the specialty is the feature of the cluster) */
#specialty-spotlight .section-inner{border-left:3px solid var(--gold);background:rgba(201,162,39,.06);padding:1.1rem 1.25rem;border-radius:0 .5rem .5rem 0;}
#specialty-spotlight .section-head h2{color:var(--gold-light);}
.cluster .highlight-line{border-left:3px solid var(--gold);padding:.35rem .7rem;margin:.55rem 0;background:rgba(201,162,39,.06);}

/* ---------- This-weekend carousel (homepage) ---------- */
.weekend-strip {
  background: var(--midnight);
  border-bottom: 1px solid rgba(212, 175, 55, 0.25);
  padding: 1.25rem 1.25rem 1.4rem;
}
.weekend-strip[hidden] { display: none; }
.weekend-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.8rem;
}
.weekend-head h2 {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--gold-light);
  margin: 0;
}
.weekend-dates {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: #BDB4E3;
  margin-left: 0.4rem;
}
.weekend-nav { display: flex; gap: 0.5rem; }
.car-btn {
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--gold);
  border-radius: 8px;
  background: transparent;
  color: var(--gold);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.car-btn:hover { background: var(--gold); color: var(--midnight); }
.car-btn:disabled { opacity: 0.35; cursor: default; }
.car-row {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 0.25rem;
  scrollbar-width: thin;
  scrollbar-color: var(--gold) transparent;
}
.car-row::-webkit-scrollbar { height: 6px; }
.car-row::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 3px; }
.wk-tile {
  scroll-snap-align: start;
  flex: 0 0 15rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.8rem 0.9rem;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--purple-deep) 0%, var(--purple) 100%);
  border: 1px solid rgba(212, 175, 55, 0.35);
  text-decoration: none;
  transition: transform 0.15s ease, border-color 0.15s ease;
}
.wk-tile:hover { transform: translateY(-2px); border-color: var(--gold); }
.wk-date {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gold-light);
}
.wk-name {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: #fff;
}
.wk-region { font-size: 0.82rem; color: #DCD4F2; }
.wk-status { font-size: 0.75rem; font-weight: 700; color: var(--gold-light); }

/* ---------- Show officials callout ---------- */
.officials-callout {
  border-left: 3px solid var(--gold);
  background: rgba(201, 162, 39, 0.10);
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin: 0 0 2rem;
}
.officials-callout p { margin: 0; }

/* ---------- Today's Ring Card ---------- */
.fav-star { color: var(--gold-deep); }
.pick-tag { color: var(--purple); }
.ringcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin: 1.5rem 0;
}
.rc-days { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.25rem; }
.rc-day {
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0.5rem 0.9rem;
  cursor: pointer;
  text-align: left;
  color: var(--ink);
  font-family: inherit;
}
.rc-day-w { display: block; font-weight: 700; }
.rc-day-s { display: block; font-size: 0.82rem; color: var(--ink-soft); }
.rc-day.is-active { border: 2px solid var(--gold); background: rgba(201, 162, 39, 0.10); padding: calc(0.5rem - 1px) calc(0.9rem - 1px); }
.rc-add label { display: block; font-weight: 600; margin-bottom: 0.5rem; }
.rc-add-row { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.rc-combo { position: relative; flex: 1 1 220px; display: flex; }
.rc-combo input[type="text"] {
  width: 100%;
  font-size: 1rem;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--ink);
}
.rc-combo input[type="text"]:focus { outline: 2px solid var(--purple); outline-offset: 1px; }
.rc-suggest {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 60;
  background: var(--card); border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 10px 28px rgba(20, 20, 40, 0.14);
  max-height: 17rem; overflow-y: auto; padding: 0.3rem; margin: 0;
}
.rc-suggest[hidden] { display: none; }
.rc-opt {
  display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem;
  width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
  padding: 0.5rem 0.65rem; border-radius: 6px; font-size: 0.95rem; color: var(--ink);
}
.rc-opt .cnt { font-size: 0.8rem; color: var(--ink-soft); white-space: nowrap; }
.rc-opt .cnt.zero { color: #b33737; font-style: italic; }
.rc-count.zero { color: #b33737; font-style: italic; }
.rc-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 16px); background: #2a2140; color: #fff; padding: 0.7rem 1.15rem; border-radius: 10px; font-size: 0.92rem; line-height: 1.4; opacity: 0; pointer-events: none; transition: opacity 0.25s ease, transform 0.25s ease; z-index: 300; max-width: min(92vw, 480px); text-align: center; box-shadow: 0 8px 28px rgba(0,0,0,0.28); }
.rc-toast.show { opacity: 1; transform: translate(-50%, 0); }
.section[id], .ringcard-sheet { scroll-margin-top: 130px; }
.rc-opt:hover { background: rgba(94, 43, 151, 0.07); }
.rc-opt.is-active { background: rgba(94, 43, 151, 0.12); outline: 2px solid var(--purple); outline-offset: -2px; }
.rc-count {
  display: inline-block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em;
  color: var(--purple); background: rgba(94, 43, 151, 0.09);
  border: 1px solid rgba(94, 43, 151, 0.25); border-radius: 4px;
  padding: 0.2rem 0.55rem; margin-left: 0.45rem; vertical-align: 1px; white-space: nowrap;
}
.rc-hint { font-size: 0.88rem; color: var(--ink-soft); margin: 0.75rem 0 0; }

.rc-alert {
  border-radius: 8px;
  padding: 0.9rem 1.1rem;
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
}
.rc-alert.is-red { background: #FDECEA; border: 2px solid #B3261E; color: #5F130E; }
.rc-alert.is-amber { background: #FFF6E0; border: 2px solid #B7791F; color: #5C3D05; }

.ringcard-sheet {
  background: #fffdf8;
  color: #1c1a24;
  border: 2px solid var(--gold);
  border-radius: 12px;
  padding: 1.5rem;
  margin: 1.25rem 0;
  box-shadow: 0 6px 24px rgba(20, 10, 40, 0.18);
}
.rc-sheet-head { border-bottom: 3px solid var(--gold); padding-bottom: 0.9rem; margin-bottom: 1rem; }
.rc-k {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6b5b2a;
  font-weight: 700;
}
.rc-sheet-head h3 { margin: 0 0 0.35rem; font-size: 1.5rem; color: #1c1a24; }
.rc-venue { margin: 0; font-size: 0.9rem; color: #4a4458; }
.rc-venue a { color: #5E2B97; }
.rc-empty { color: #4a4458; margin: 0.5rem 0; }
.rc-quick { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.5rem 0 0.25rem; }

.rc-row {
  border: 1px solid #d9d2c2;
  border-left: 6px solid #5E2B97;
  border-radius: 8px;
  background: #ffffff;
  padding: 1rem 1.1rem;
  margin: 0 0 0.9rem;
}
.rc-row.is-conflict { border-left-color: #B3261E; border-top: 2px solid #B3261E; border-right: 2px solid #B3261E; border-bottom: 2px solid #B3261E; }
.rc-row.is-tight { border-left-color: #B7791F; }
.rc-row-top { display: flex; justify-content: space-between; gap: 0.75rem; align-items: flex-start; }
.rc-row-top strong { font-size: 1.12rem; color: #1c1a24; }
.rc-meta { margin-top: 0.25rem; font-size: 0.95rem; color: #3c3748; }
.rc-detail { font-size: 0.85rem; color: #6a6378; margin-top: 0.2rem; }
.rc-tbd { color: #8a6d1a; font-style: italic; }
.rc-prov { color: #6a6378; }
.rc-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  padding: 0.1rem 0.45rem;
  margin-left: 0.35rem;
  vertical-align: middle;
  white-space: nowrap;
}
.rc-badge.fav { background: #F7E9BC; color: #6b5b2a; border: 1px solid #C9A227; }
.rc-badge.pick { background: #E7DEF7; color: #3E1C66; border: 1px solid #5E2B97; }
.rc-remove {
  background: none;
  border: none;
  font-size: 1.5rem;
  line-height: 1;
  color: #8a8496;
  cursor: pointer;
  padding: 0 0.25rem;
}
.rc-remove:hover { color: #B3261E; }
.rc-est { margin: 0.6rem 0 0.2rem; font-size: 0.95rem; color: #1c1a24; }
.rc-est strong { color: #3E1C66; }
.rc-fields { margin: 0.5rem 0; }
.rc-num { font-size: 0.9rem; color: #3c3748; }
.rc-num input {
  width: 4.5rem;
  font-size: 1rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid #c9c2b2;
  border-radius: 4px;
  color: #1c1a24;
  margin-left: 0.4rem;
}
.rc-note { display: block; margin: 0.5rem 0 0; }
.rc-note > span { display: block; font-size: 0.85rem; font-weight: 600; color: #3c3748; margin-bottom: 0.3rem; }
.rc-note > span em { font-weight: 400; color: #6a6378; }
.rc-note textarea {
  width: 100%;
  font-size: 0.95rem;
  font-family: inherit;
  padding: 0.5rem 0.65rem;
  border: 1px solid #c9c2b2;
  border-radius: 4px;
  color: #1c1a24;
  resize: vertical;
  box-sizing: border-box;
}
.rc-note-print { font-size: 0.9rem; color: #3c3748; margin: 0.5rem 0 0; }
.rc-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1rem 0 0.5rem; }
.btn-danger { border-color: #B3261E !important; color: #B3261E !important; }
.btn-danger:hover { background: rgba(179, 38, 30, 0.08) !important; }
.rc-foot { font-size: 0.85rem; color: var(--ink-soft); margin-top: 1rem; }

@media (min-width: 640px) {
  .rc-fields { display: flex; gap: 1.5rem; align-items: center; }
}

@media print {
  .site-header, .tabs, .site-footer, .officials-callout, .no-print { display: none !important; }
  main > :not(#ring-card) { display: none !important; }
  body { background: var(--card); }
  .section { padding: 0; }
  .ringcard-sheet { box-shadow: none; margin: 0; }
  .rc-row { break-inside: avoid; }
}

/* ---------- Day pages ---------- */
.tab.is-active { border-bottom-color: var(--gold); color: var(--purple); font-weight: 600; }
.day-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.day-card { display: block; background: #fffdf8; border: 1px solid var(--line); border-radius: 8px; padding: 1.1rem 1.2rem; text-decoration: none; color: var(--ink); }
.day-card:hover { border-color: var(--purple); }
.day-card .dc-day { font-size: 0.82rem; color: var(--ink-soft); margin: 0 0 0.35rem; }
.day-card .dc-day .n { font-family: "Fraunces", Georgia, serif; color: var(--gold-deep); margin-right: 0.35rem; }
.day-card h3 { margin: 0 0 0.35rem; font-size: 1.15rem; }
.day-card .dc-venue { font-size: 0.9rem; margin: 0 0 0.5rem; }
.day-card .dc-meta { font-size: 0.88rem; color: var(--ink-soft); margin: 0 0 0.75rem; }
.day-card .dc-link { font-weight: 600; color: var(--purple); font-size: 0.92rem; }
.day-nav { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.day-nav-link { display: block; border: 1px solid var(--line); border-radius: 8px; padding: 0.8rem 1rem; text-decoration: none; color: var(--ink); flex: 1 1 220px; background: #fffdf8; }
.day-nav-link:hover { border-color: var(--purple); }
.day-nav-link.next { text-align: right; }
.dnl-k { display: block; font-size: 0.78rem; color: var(--ink-soft); text-transform: uppercase; letter-spacing: 0.05em; }
.dnl-t { font-weight: 600; color: var(--purple); }
/* Lodging two-column split */
.lodging-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 1rem 0 1.5rem; }
.lodging-col h4 { margin: 0 0 0.25rem; }
.lodging-sub { margin: 0 0 0.75rem; font-size: 0.92rem; color: var(--ink-soft); }
@media (max-width: 700px) { .lodging-cols { grid-template-columns: 1fr; gap: 0.75rem; } .lodging-sub { font-size: 0.85rem; } .hotel-card { padding: 0.45rem 0.6rem; min-width: 0; } .hotel-card .hotel-name { font-size: 0.85rem; } .hotel-contact { font-size: 0.78rem; } .lodging-col { min-width: 0; } .hotel-tags { min-width: 0; } .chip { white-space: normal; } }
/* Glanceable info cards */
.info-cards { display: grid; gap: 0.6rem; margin: 1rem 0 1.5rem; }
@media (min-width: 701px) {
  .info-cards { grid-template-columns: 1fr 1fr; }
  #plan-your-visit ul.plain { columns: 2; column-gap: 1.5rem; }
  #plan-your-visit ul.plain li { break-inside: avoid; }
}
.info-card { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 0.7rem 0.9rem; }
.info-card h4 { margin: 0 0 0.3rem; font-size: 0.95rem; }
.info-card p { margin: 0; font-size: 0.9rem; color: var(--ink-soft); }
/* Compact hotel cards */
.hotel-cards { display: grid; gap: 0.45rem; align-content: start; }
.hotel-card { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 0.5rem 0.75rem; }
.hotel-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap; }
.hotel-card .hotel-name { font-weight: 600; font-size: 0.92rem; color: var(--ink); text-decoration: none; }
.hotel-card .hotel-name:hover { color: var(--purple); }
.hotel-tags { display: flex; gap: 0.35rem; flex-wrap: wrap; }
.chip.dist { background: #F2F0E6; border: 1px solid var(--line); color: var(--ink-soft); }
.hotel-contact { margin: 0.15rem 0 0; font-size: 0.82rem; color: var(--ink-soft); }
/* Venue guide (shared per physical venue) */
.venue-guide .map-embed iframe { border-radius: 8px; display: block; }
.venue-guide .map-links { margin-top: 0.4rem; font-size: 0.85rem; }

/* ---------- response threads (request follow-ups) ---------- */
.thread { margin-top: 0.75rem; border-top: 1px dashed var(--line); padding-top: 0.75rem; }
.thread-msg { margin: 0 0 0.75rem; }
.thread-msg blockquote {
  margin: 0.25rem 0 0; padding: 0.5rem 0.75rem;
  background: var(--card); border: 1px solid var(--line); border-radius: 8px;
}
.thread-msg.mine blockquote { border-left: 3px solid var(--gold); }
.thread-msg .meta { font-size: 0.8rem; color: var(--ink-soft); }

/* ---- Marquee ad slot (premium placement, home page). To run a different
      advertiser here, swap everything inside .ad-marquee-card; keep the .ad-tag label. ---- */
.ad-marquee { padding: 1.25rem 0 0; }
.ad-marquee .section-inner { max-width: 1100px; }
.ad-tag {
  display: block; font-size: 0.66rem; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ink-soft); text-align: center; margin-bottom: 0.5rem;
}
.ad-marquee-card {
  display: flex; align-items: center; gap: 1.5rem;
  background: linear-gradient(120deg, #101010 0%, #1d1d1d 60%, #242424 100%);
  border: 1px solid #3a3a3a; border-top: 3px solid #E3AE29;
  border-radius: 12px; padding: 1.4rem 1.75rem;
  color: #f5f5f5; text-decoration: none;
}
.ad-marquee-card:hover { border-top-color: #f2c14e; }
.ad-marquee-logo { flex: none; width: 104px; height: 104px; }
.ad-marquee-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ad-marquee-copy { flex: 1; min-width: 0; }
.ad-marquee-copy h2 {
  font-family: Fraunces, serif; font-weight: 600; font-size: 1.45rem;
  color: #fff; margin: 0 0 0.4rem; line-height: 1.2;
}
.ad-marquee-copy h2 .gold { color: #E3AE29; }
.ad-marquee-copy p { margin: 0; font-size: 0.95rem; color: #cfcfcf; line-height: 1.5; }
.ad-marquee-cta {
  flex: none; background: #E3AE29; color: #141414;
  font-weight: 700; font-size: 0.95rem; padding: 0.7rem 1.5rem;
  border-radius: 8px; white-space: nowrap;
}
.ad-marquee-card:hover .ad-marquee-cta { background: #f2c14e; }
@media (max-width: 700px) {
  .ad-marquee-card { flex-direction: column; text-align: center; gap: 1rem; padding: 1.5rem 1.25rem; }
  .ad-marquee-logo { width: 84px; height: 84px; }
  .ad-marquee-cta { width: 100%; }
}

/* Club promo bar (home page): content centered, dismiss pinned at right edge */
.club-promo { background: var(--midnight); border-top: 1px solid rgba(201,162,39,.35); position: relative; }
.club-promo-inner { display: flex; align-items: center; justify-content: center; gap: 1rem; padding-top: .8rem; padding-bottom: .8rem; text-align: center; }
.club-promo-text { color: #fff; margin: 0; font-size: .95rem; }
.club-promo-text strong { color: var(--gold-light); }
.club-promo .btn { white-space: nowrap; text-decoration: none; }
.club-promo-close { position: absolute; right: .75rem; top: 50%; transform: translateY(-50%); background: none; border: 0; color: rgba(255,255,255,.55); font-size: 1.4rem; line-height: 1; cursor: pointer; padding: .25rem .5rem; }
.club-promo-close:hover { color: #fff; }
.club-promo[hidden] { display: none; }
@media (max-width: 640px) {
  .club-promo-inner { flex-wrap: wrap; }
  .club-promo-text { flex: 1 1 100%; }
  .club-promo .btn { flex: 1; text-align: center; }
}

/* Closing-soon strip: compact variant of the weekend carousel */
.closing-strip { padding: 0.85rem 1.25rem 1rem; }
.closing-strip .weekend-head { margin-bottom: 0.55rem; }
.closing-strip .weekend-head h2 { font-size: 1rem; }
.closing-strip .car-btn { width: 1.75rem; height: 1.75rem; font-size: 0.9rem; border-radius: 6px; }
.closing-strip .car-row { gap: 0.6rem; }
.closing-strip .wk-tile { flex: 0 0 11rem; padding: 0.55rem 0.7rem; gap: 0.18rem; }
.closing-strip .wk-date { font-size: 0.7rem; }
.closing-strip .wk-name { font-size: 0.88rem; }
.closing-strip .wk-region { font-size: 0.72rem; }

/* ---------- Account dashboard shell (redesigned Sep 2026) ----------
   Conventional SaaS account layout: compact header, sidebar nav, content.
   /account/ dashboard tabs are CSS-only (radio inputs + labels) — no JS.
   Overview stat counts are CSS counters over the JS-rendered .item-row
   elements. The overview panel sits LAST in the DOM so the counters resolve
   (counters only see increments that precede them in document order);
   inactive panels are visibility-hidden (boxes still generated, so the
   counts stay live across tabs). */

.acct-shell,
#dashboard {
  max-width: 1080px;
  margin: 0 auto;
  padding: 2rem 1.25rem 3rem;
}
.acct-shell,
.acct-tabs {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}
/* compact page header */
.kicker-sm {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--purple);
  margin: 0 0 0.35rem;
}
.kicker-sm a { color: inherit; text-decoration: none; }
.kicker-sm a:hover { text-decoration: underline; }
.acct-pagehead { margin: 0 0 1.5rem; }
.acct-pagehead h1 { font-size: 1.8rem; margin: 0 0 0.4rem; }
.acct-sub { color: var(--ink-soft); margin: 0; max-width: 62ch; }

/* dashboard header */
.acct-dashhead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 0 0 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--line);
}
.acct-dashhead h1 { font-size: 1.8rem; margin: 0; }
.acct-dashhead .btn-act { margin-top: 0.35rem; flex: none; }

/* sidebar */
.acct-side {
  position: sticky;
  top: 84px;
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  min-width: 0;
}
.acct-nav-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-soft);
  font-weight: 700;
  margin: 0 0 0.35rem;
  padding: 0 0.75rem;
}
.acct-tnav, .acct-snav { display: flex; flex-direction: column; gap: 2px; }
.acct-tlink, .acct-snav a {
  display: block;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  color: var(--ink-soft);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  cursor: pointer;
  border-left: 3px solid transparent;
}
.acct-tlink:hover, .acct-snav a:hover { background: #F1ECDD; color: var(--ink); }
.acct-snav a[aria-current="page"] {
  background: var(--card);
  color: var(--purple-deep);
  border-left-color: var(--gold);
  box-shadow: inset 0 0 0 1px var(--line);
}

/* CSS-only tabs */
.dtab-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.acct-main { position: relative; min-width: 0; }
.dash-panel {
  visibility: hidden;
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}
/* Followed panel sub-tabs: Judges | Breeds (Ingra, Oct 6, 2026) — breed
   following must be as discoverable as judge following, never buried below. */
.fsub-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.follow-subtabs { display: flex; gap: 0.35rem; align-items: flex-end; border-bottom: 2px solid var(--line); margin-bottom: 1.25rem; }
.fsub-tab {
  border: 1px solid var(--line);
  border-bottom: 0;
  border-radius: 10px 10px 0 0;
  background: #EDE7D3;
  padding: 0.5rem 1.1rem calc(0.5rem + 2px);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--ink-soft);
  cursor: pointer;
  margin-bottom: -2px;
}
.fsub-tab:hover { color: var(--ink); }
#fsub-judges:checked ~ .follow-subtabs label[for="fsub-judges"],
#fsub-breeds:checked ~ .follow-subtabs label[for="fsub-breeds"] {
  background: var(--purple);
  border-color: var(--purple);
  color: #fff;
}
.fsub-panel-breeds { display: none; }
#fsub-breeds:checked ~ .fsub-panel-breeds { display: block; }
#fsub-breeds:checked ~ .fsub-panel-judges { display: none; }
#dtab-overview:checked ~ .acct-main #panel-overview,
#dtab-saved:checked ~ .acct-main #panel-saved,
#dtab-plan:checked ~ .acct-main #panel-plan,
#dtab-sched:checked ~ .acct-main #panel-sched,
#dtab-follow:checked ~ .acct-main #panel-follow,
#dtab-watch:checked ~ .acct-main #panel-watch {
  visibility: visible;
  position: static;
  height: auto;
  overflow: visible;
  pointer-events: auto;
}
#dtab-overview:checked ~ .acct-side label[for="dtab-overview"],
#dtab-saved:checked ~ .acct-side label[for="dtab-saved"],
#dtab-plan:checked ~ .acct-side label[for="dtab-plan"],
#dtab-sched:checked ~ .acct-side label[for="dtab-sched"],
#dtab-follow:checked ~ .acct-side label[for="dtab-follow"],
#dtab-watch:checked ~ .acct-side label[for="dtab-watch"] {
  background: var(--card);
  color: var(--purple-deep);
  border-left-color: var(--gold);
  box-shadow: inset 0 0 0 1px var(--line);
}
#dtab-overview:focus-visible ~ .acct-side label[for="dtab-overview"],
#dtab-saved:focus-visible ~ .acct-side label[for="dtab-saved"],
#dtab-plan:focus-visible ~ .acct-side label[for="dtab-plan"],
#dtab-sched:focus-visible ~ .acct-side label[for="dtab-sched"],
#dtab-follow:focus-visible ~ .acct-side label[for="dtab-follow"],
#dtab-watch:focus-visible ~ .acct-side label[for="dtab-watch"] {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* overview stat cards (counts are live CSS counters) */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.75rem;
  margin: 0 0 1.75rem;
}
.stat-card {
  display: block;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0.9rem 1rem;
  cursor: pointer;
}
.stat-card:hover { border-color: var(--gold); box-shadow: 0 1px 4px rgba(27, 35, 64, 0.08); }
.stat-num {
  display: block;
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.9rem;
  font-weight: 700;
  color: var(--purple-deep);
  line-height: 1.1;
}
.stat-label {
  display: block;
  font-size: 0.85rem;
  color: var(--ink-soft);
  font-weight: 600;
  margin-top: 0.15rem;
}

/* panels */
.panel-h2 { font-size: 1.35rem; margin: 0 0 0.25rem; }
summary.panel-h2 { cursor: pointer; }
.panel-block + .panel-block { margin-top: 2rem; }

/* signed-out auth page */
.auth-layout { max-width: 960px; margin: 0 auto; padding: 2.5rem 1.25rem 3.5rem; }
.auth-intro { text-align: center; max-width: 620px; margin: 0 auto 2rem; }
.auth-intro h1 { font-size: 2rem; margin: 0 0 0.6rem; }
.auth-intro p { color: var(--ink-soft); margin: 0; }
.auth-layout .auth-grid { margin: 0 auto; }

/* replacements for removed inline styles */
.card-gap { margin-top: 1rem; }
.note-tight { margin-top: -0.25rem; }
.input-sm { max-width: 12rem; }
.btn-row { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-top: 0.8rem; }
.form-fieldset { border: 1px solid var(--line); border-radius: 8px; padding: 1rem; margin: 1rem 0; }
.form-legend { padding: 0 0.4rem; font-weight: 700; }
.form-fieldset .note { margin-top: 0; }

/* lead inbox (moved from the inline <style> on /account/requests/) */
.inbox-row { border: 1px solid var(--line); border-radius: 8px; padding: 0.9rem 1rem; margin-bottom: 0.75rem; background: var(--card); }
.inbox-row.unread { border-left: 4px solid var(--gold); background: #fffdf6; }
.inbox-row .meta { font-size: 0.85rem; color: var(--ink-soft); margin: 0.25rem 0 0.5rem; }
.inbox-row blockquote { margin: 0.5rem 0; padding-left: 0.75rem; border-left: 3px solid var(--line); white-space: pre-wrap; }
/* replaced by CSP migration (block 15 pill version below) */
.row-actions { margin-top: 0.6rem; display: flex; gap: 0.5rem; flex-wrap: wrap; }

@media (max-width: 860px) {
  .acct-shell, .acct-tabs { grid-template-columns: 1fr; gap: 1.25rem; }
  .acct-shell, #dashboard { padding: 1.5rem 1rem 2.5rem; }
  .acct-side { position: static; gap: 1rem; }
  /* Account nav: file-cabinet tabs, never a sideways scroll (Ingra, Oct 6, 2026) */
  .acct-tnav, .acct-snav { flex-direction: row; flex-wrap: wrap; gap: 0.35rem; overflow: visible; padding-bottom: 0; align-items: flex-end; justify-content: center; border-bottom: 2px solid var(--line); }
  .acct-tlink, .acct-snav a {
    white-space: normal;
    text-align: center;
    border: 1px solid var(--line);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    background: #EDE7D3;
    padding: 0.5rem 0.9rem calc(0.5rem + 2px);
    font-size: 0.9rem;
    margin-bottom: -2px;
  }
  .acct-tlink:hover, .acct-snav a:hover { background: #F1ECDD; }
  .acct-nav-label { padding: 0; text-align: center; }
  .acct-snav a[aria-current="page"], .acct-tlink[aria-current="page"] { background: var(--purple); border-color: var(--purple); color: #fff; }
  #dtab-overview:checked ~ .acct-side label[for="dtab-overview"],
  #dtab-saved:checked ~ .acct-side label[for="dtab-saved"],
  #dtab-plan:checked ~ .acct-side label[for="dtab-plan"],
  #dtab-sched:checked ~ .acct-side label[for="dtab-sched"],
  #dtab-follow:checked ~ .acct-side label[for="dtab-follow"],
  #dtab-watch:checked ~ .acct-side label[for="dtab-watch"] {
    background: var(--purple); border-color: var(--purple); color: #fff;
  }
  .acct-pagehead h1, .acct-dashhead h1 { font-size: 1.5rem; }
  .auth-layout { padding: 2rem 1rem 3rem; }
  .auth-intro h1 { font-size: 1.7rem; }
}

/* Expandable dog rows — My dogs (Ingra, Oct 6, 2026): tap a dog to drop
   down its shows, split Upcoming / Past.
   One visual language for "a dog" (Ingra, Oct 6, 2026): rows share the
   client-dog card look — deep purple card, gold breed name, gold chips. */
.dog-row {
  background: linear-gradient(160deg, #2b1a4e 0%, #1a0f30 100%);
  border: 1px solid rgba(227,174,41,0.30);
  border-radius: 14px;
  padding: 0.9rem 1rem;
  color: #f2ecff;
  margin-bottom: 0.9rem;
}
.dog-row-line { display: flex; align-items: center; gap: 0.6rem; }
.dog-row-head { flex: 1; min-width: 0; background: none; border: 0; padding: 0.15rem 0; font: inherit; color: #fff; text-align: left; cursor: pointer; }
.dog-row-head strong { color: #fff; }
.dog-row-head .chip { margin-left: 0.35rem; font-size: 0.75rem; }
.dog-row-head .chev { display: inline-block; margin-left: 0.3rem; color: #b9a9dd; transition: transform 0.15s; }
.dog-row-head[aria-expanded="true"] .chev { transform: rotate(180deg); }
.dog-row-breed { color: #E3AE29; font-weight: 600; }
.dog-row-details { font-size: 0.85rem; white-space: nowrap; color: #f5d67b; }
.dog-row .linklike { color: #f5d67b; }
.dog-row-q { margin: 0.35rem 0 0; font-size: 0.9rem; color: #cfc3e8; }
.dog-row-q .btn-act { color: #f5d67b; border-color: rgba(227,174,41,0.55); background: transparent; }
.dog-shows { margin: 0.7rem 0 0.2rem; padding: 0.7rem 0.8rem; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); border-radius: 10px; color: #f2ecff; }
.dog-shows .empty-note { color: #b9a9dd; }
.dog-shows a { color: #f5d67b; }
.dog-shows .note { color: #b9a9dd; }
.seg-toggle { display: inline-flex; gap: 0.25rem; background: rgba(255,255,255,0.10); border-radius: 999px; padding: 0.2rem; margin-bottom: 0.6rem; }
.seg-btn { border: 0; background: transparent; border-radius: 999px; padding: 0.35rem 0.9rem; font-size: 0.85rem; font-weight: 600; cursor: pointer; color: #b9a9dd; font-family: inherit; }
.seg-btn.is-on { background: #E3AE29; color: #2a1a4a; }
.dog-show-line { margin: 0.3rem 0; font-size: 0.95rem; }
/* Shared dog tile language (Ingra, Oct 6, 2026): the client-dog card look —
   deep purple card, gold accents — is the standard for every dog surface. */
.roster-tile {
  background: linear-gradient(160deg, #2b1a4e 0%, #1a0f30 100%);
  border: 1px solid rgba(227,174,41,0.30);
  border-radius: 14px;
  padding: 1rem 1.1rem;
  color: #f2ecff;
}
.roster-head { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.55rem; }
.roster-pill {
  display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  padding: 0.28rem 0.7rem; border-radius: 999px; white-space: nowrap;
  background: rgba(255,255,255,0.12); color: #e8defc; border: 1px solid rgba(255,255,255,0.16);
}
.roster-pill-gold { background: #E3AE29; border-color: #E3AE29; color: #2a1a4a; }
.roster-pill-green { background: #14532d; border-color: #14532d; color: #fff; }
.roster-actions { display: flex; gap: 0.45rem; flex-wrap: wrap; justify-content: flex-end; }
.roster-btn {
  font-size: 0.8rem; font-weight: 600; color: #f5d67b; background: transparent;
  border: 1px solid rgba(227,174,41,0.55); border-radius: 8px; padding: 0.32rem 0.65rem; cursor: pointer;
  text-decoration: none; white-space: nowrap; font-family: inherit;
}
.roster-btn-quiet { color: #b9a9dd; border-color: rgba(185,169,221,0.40); }
.roster-name { margin: 0; font-size: 1.25rem; color: #fff; }
.roster-breed { margin: 0.1rem 0 0; color: #E3AE29; font-weight: 600; font-size: 0.95rem; }
.roster-sub { margin: 0.35rem 0 0; color: #b9a9dd; font-size: 0.85rem; }
.roster-sample { color: #b9a9dd; font-weight: 400; font-size: 0.85em; }
.roster-line { margin: 0.55rem 0 0; font-size: 0.88rem; color: #cfc3e8; }
.roster-kicker { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: #b8abd9; margin-right: 0.35rem; }
.roster-show { color: #f5d67b; font-weight: 600; }
.roster-x { background: none; border: 0; color: #b8abd9; font-size: 1.15rem; cursor: pointer; padding: 0 0.25rem; line-height: 1; vertical-align: baseline; }
.roster-champ { margin: 0.65rem 0 0; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.roster-champq { color: #cfc3e8; font-size: 0.88rem; display: inline-flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.roster-select {
  background: #1a0f30; color: #f2ecff; border: 1px solid rgba(227,174,41,0.45);
  border-radius: 8px; padding: 0.35rem 0.5rem; font-size: 0.85rem; max-width: 100%; font-family: inherit;
}
/* Dog profile tile (account/dogs/profile): the dog's own tile, same language. */
.dog-profile-tile .roster-name { font-size: 1.9rem; }
.dog-profile-tile .profile-chips { margin: 0.55rem 0 0; }
.dog-profile-tile .profile-chips .roster-pill { margin: 0 0.35rem 0.35rem 0; }
.dog-profile-tile .roster-actions { justify-content: flex-start; margin-top: 0.8rem; }
/* Compact client/personal dog cards (Ingra, Oct 6, 2026): the roster tiles
   ran tall on phones — tighten padding and vertical rhythm. */
.roster-tile { padding: 0.8rem 0.9rem; }
.roster-head { margin-bottom: 0.4rem; }
.roster-sub { margin-top: 0.25rem; }
.dog-profile-tile .roster-name { font-size: 1.5rem; }
.dog-profile-tile .profile-chips { margin-top: 0.4rem; }
.dog-profile-tile .roster-actions { margin-top: 0.55rem; }
.dog-edit-wrap { margin-top: 0.9rem; }
.linklike { background: none; border: 0; padding: 0; color: var(--purple); text-decoration: underline; cursor: pointer; font-size: 0.85rem; font-family: inherit; white-space: nowrap; }
.linklike:hover { color: var(--purple-deep); }

/* Assistants page (moved from CSP-blocked inline styles) */
.inbox-row { border:1px solid var(--line); border-radius:8px; padding:0.9rem 1rem; margin-bottom:0.75rem; background:#fff; }
.inbox-row .meta { font-size:0.85rem; color:var(--ink-soft); margin:0.25rem 0 0.5rem; }
.row-actions { margin-top:0.6rem; display:flex; gap:0.5rem; flex-wrap:wrap; }
.status-badge { display:inline-block; font-size:0.8rem; font-weight:600; border-radius:8px; padding:0.15rem 0.7rem; margin-left:0.5rem; vertical-align:middle; }
.status-invited { background:#fdf3e0; color:#8a5a00; border:1px solid #e8c97a; }
.status-active { background:#e9f6ec; color:#1d6b2f; border:1px solid #9ed3ab; }
.status-expired, .status-revoked { background:#f0f0f0; color:#666; border:1px solid #d5d5d5; }
.invite-link-box { display:flex; gap:0.5rem; align-items:stretch; margin:0.75rem 0; flex-wrap:wrap; }
.invite-link-box input { flex:1 1 16rem; }
.btn-sm { font-size:0.85rem; padding:0.4rem 0.9rem; }
.btn-danger { background:#fff; color:#a13226; border:1px solid #d8a7a0; }
.btn-danger:hover { background:#fdf0ee; }
blockquote.note-text { margin:0.5rem 0; padding-left:0.75rem; border-left:3px solid var(--line); white-space:pre-wrap; }
.acct-section-gap { margin-top:2rem; }
.acct-list-gap { margin-top:1rem; }

/* Guided requests page sub-headings */
.panel-h3 { font-size: 1.1rem; margin: 1.25rem 0 0.25rem; }

/* Private dog profile (account/dogs/profile) */
.strip-name { font-size: 1.9rem; margin: 0.25rem 0 0; }
.strip-breed { font-size: 1.05rem; color: var(--ink-soft); margin: 0.15rem 0; }
.strip-reg { font-size: 0.9rem; color: var(--ink-soft); font-style: italic; }
.ledger-grid { display: flex; gap: 1rem; margin: 0.75rem 0; flex-wrap: wrap; }
.ledger-stat { background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 0.6rem 1.1rem; text-align: center; min-width: 7rem; }
.ledger-num { display: block; font-size: 1.5rem; font-weight: 700; color: var(--purple-deep); }
.ledger-label { font-size: 0.8rem; color: var(--ink-soft); text-transform: uppercase; letter-spacing: 0.06em; }
.ledger-left { font-weight: 600; }
.ledger-done { font-weight: 600; color: var(--ok); }
.lineup-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid var(--line); }
.lineup-row:last-child { border-bottom: 0; }
.result-card { border: 1px solid var(--line); border-radius: 8px; padding: 0.75rem 0.9rem; margin-bottom: 0.75rem; background: var(--card); }
.result-head { margin-bottom: 0.4rem; }
.result-chips { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 0.3rem; }
.chip-place { background: #EFE7F7; color: var(--purple-deep); border: 1px solid #D5C6EA; }
.chip-points { background: #F8EEDD; color: #8A5F14; border: 1px solid #E4CFA1; }
.result-notes { font-size: 0.9rem; color: var(--ink-soft); margin: 0.35rem 0; }
.result-actions { margin: 0.4rem 0 0; font-size: 0.85rem; }
.result-edit { margin-top: 0.6rem; padding-top: 0.6rem; border-top: 1px dashed var(--line); }
.linklike { background: none; border: 0; padding: 0; color: var(--purple); cursor: pointer; font: inherit; text-decoration: underline; }
.linklike.danger { color: #b3261e; }
label.check { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; }
label.check input { width: auto; }
.rules-body p { margin: 0.6rem 0; }
details.auth-card summary { cursor: pointer; list-style: none; }
details.auth-card summary::-webkit-details-marker { display: none; }
@media (max-width: 700px) {
  .strip-name { font-size: 1.6rem; }
  .lineup-row { flex-direction: column; align-items: flex-start; gap: 0.2rem; }
}

/* Tier card (account sidebar) — current plan at a glance */
.tier-card {
  background: var(--card); border: 1px solid var(--line);
  border-radius: 8px; padding: 0.9rem 1rem;
  color: var(--ink);
}
.tier-card .tier-name {
  font-weight: 700; font-size: 1rem; margin: 0 0 0.25rem;
  display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
  color: var(--ink);
}
.tier-card .note { margin: 0 0 0.65rem; font-size: 0.85rem; color: var(--ink-soft); }
.tier-card .btn, .tier-card .btn-act { font-size: 0.85rem; padding: 0.42rem 0.8rem; }

/* Collapsible profile rows — completed sections stay compact */
.pref-list { display: flex; flex-direction: column; gap: 0.75rem; max-width: 860px; }
.pref-row { background: var(--card); border: 1px solid var(--line); border-radius: 8px; }
.pref-summary {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 0.85rem 1.1rem;
}
.pref-summary strong { display: block; font-size: 0.95rem; }
.pref-summary .note { margin: 0.15rem 0 0; font-size: 0.85rem; }
.pref-summary .btn-act { flex: none; font-size: 0.85rem; padding: 0.35rem 0.75rem; }
.pref-form { border-top: 1px solid var(--line); padding: 1.1rem; }
.pref-form[hidden] { display: none; }
.pref-form .btn { border: 0; cursor: pointer; font: inherit; }

/* Public handler pages — smoother profiles (Sep 29, 2026) */
.profile-layout { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 920px) {
  .profile-layout { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; }
  .profile-layout .contact-card { position: sticky; top: 5rem; }
}
.profile-hero { display: flex; gap: 1.25rem; align-items: flex-start; margin-bottom: 1.25rem; }
.profile-photo { width: 112px; height: 112px; object-fit: cover; border-radius: 12px; flex: none; }
.profile-chips { margin: 0.4rem 0 0; }
.profile-chips .chip { margin-right: 0.35rem; }
.fact-grid { display: grid; grid-template-columns: auto 1fr; gap: 0.4rem 1rem; margin: 0 0 1.25rem; padding: 1rem 1.15rem; border: 1px solid var(--line); border-radius: 10px; background: rgba(94, 43, 151, 0.03); }
.fact-grid dt { font-weight: 600; white-space: nowrap; }
.fact-grid dd { margin: 0; }
.profile-bio { line-height: 1.6; margin-bottom: 1.25rem; }
.rhp-note { margin-top: 1rem; font-size: 0.88rem; }
/* Directory cards: whole card is the link */
.dir-card { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: 10px; background: var(--card); text-decoration: none; color: inherit; margin-bottom: 0.75rem; }
.dir-card:hover { border-color: var(--purple); }
.dir-photo { width: 72px; height: 72px; object-fit: cover; border-radius: 10px; flex: none; }
.dir-body { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.dir-name { font-size: 1.08rem; }
.dir-tagline { font-style: italic; color: var(--muted); }
/* Compact explainer strips */
.compact-card { padding: 1.1rem 1.15rem; }
.compact-card h3 { font-size: 1.02rem; margin: 0 0 0.4rem; }
.compact-card .note { font-size: 0.9rem; }
@media (min-width: 720px) { .auth-grid.strip-3 { grid-template-columns: repeat(3, 1fr); } }

/* Per-day show opt-in toggles (Ingra, Sep 30, 2026) */
.msd-dog { margin: 0.15rem 0; }
.msd-days { margin: 0.1rem 0 0.55rem 1.6rem; padding: 0.45rem 0.65rem; background: #f7f2fd; border: 1px solid #e4d9f5; border-radius: 10px; display: flex; flex-wrap: wrap; gap: 0.2rem 1rem; }
.msd-days[hidden] { display: none; }
.msd-day { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; cursor: pointer; }
.msd-day input { accent-color: #6b2fb2; }
.msd-days-cap { width: 100%; margin: 0 0 0.15rem; }
.upnext-add { margin-top: 0.75rem; }
.dp-days { margin-top: 0.35rem; margin-left: 0; }

/* ---- Ad slots: house ads & paid placements (Oct 1, 2026) ----
   Paid placements are always labeled and never touch verified show data. */
.sponsored-label { display: inline-block; font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #8a6d1c; background: #f6e7c1; border: 1px solid #e4cfa1; border-radius: 999px; padding: 2px 10px; margin-bottom: 8px; }
.house-ad { border: 2px dashed var(--gold); border-radius: 12px; background: #fdfaf2; padding: 18px 20px; margin: 20px 0; text-align: center; }
.house-ad .house-ad-title { font-family: "Fraunces", serif; font-size: 1.25rem; color: var(--ink); margin: 0 0 6px; }
.house-ad p { margin: 0 0 10px; color: var(--ink-soft); font-size: 0.95rem; }
.house-ad .house-ad-cta { font-weight: 700; color: var(--purple); font-size: 0.98rem; }
/* Sponsored club cards: up to 3 across under the featured slot on /clubs/ */
.club-sponsored-row { display: grid; gap: 12px; margin: 14px 0 4px; }
@media (min-width: 720px) { .club-sponsored-row { grid-template-columns: repeat(3, 1fr); } }
.sponsor-card { border: 1px solid var(--line); border-radius: 12px; background: var(--card); padding: 14px 16px; }
.sponsor-card.house-ad { margin: 0; padding: 14px 16px; }
.sponsor-card h3 { font-family: "Inter", sans-serif; font-size: 15.5px; font-weight: 700; margin: 0 0 4px; color: var(--ink); }
.sponsor-card p { font-size: 13.5px; color: var(--ink-soft); margin: 0 0 8px; }
.sponsor-card .sponsor-card-logo { max-height: 44px; max-width: 140px; margin-bottom: 8px; }
.sponsor-card .sponsor-card-link { font-size: 13.5px; font-weight: 700; }
/* Show-guide weekend sponsor block (injected by tpa.js at #plan-your-visit) */
.show-sponsor { border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 10px; background: var(--card); padding: 14px 18px; margin: 0 0 18px; }
.show-sponsor.house-ad { border: 2px dashed var(--gold); text-align: center; }
.show-sponsor .show-sponsor-logo { max-height: 52px; max-width: 180px; margin: 6px 0; }
.show-sponsor .show-sponsor-name { font-weight: 700; font-size: 1.05rem; color: var(--ink); margin: 0 0 4px; }
.show-sponsor .show-sponsor-tag { color: var(--ink-soft); margin: 0 0 8px; font-size: 0.95rem; }
.show-sponsor .show-sponsor-cta { font-weight: 700; }
/* /advertise/ rate card */
.rate-grid { display: grid; gap: 14px; margin: 1.5rem 0; }
@media (min-width: 760px) { .rate-grid { grid-template-columns: repeat(2, 1fr); } }
.rate-card { border: 1px solid var(--line); border-radius: 12px; padding: 1.25rem 1.35rem; background: var(--card); }
.rate-card h3 { margin: 0 0 4px; font-size: 1.1rem; }
.rate-price { font-family: "Fraunces", serif; font-size: 1.6rem; color: var(--purple); margin: 0; }
.rate-unit { color: var(--ink-soft); font-size: 0.85rem; margin: 0 0 8px; }
.rate-card ul { margin: 0.6rem 0 0; padding-left: 1.1rem; font-size: 0.93rem; color: var(--ink-soft); }
.rate-card li { margin-bottom: 0.35rem; }
.rate-card .booking-note { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--purple-deep); background: #f1e9fb; border-radius: 999px; padding: 2px 10px; margin-left: 8px; vertical-align: middle; }
.steps { list-style: none; padding: 0; margin: 1rem 0; }
.steps li { position: relative; padding: 0 0 1rem 2.6rem; }
.steps li::before { content: counter(step); counter-increment: step; position: absolute; left: 0; top: 0; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--purple); color: #fff; font-weight: 700; font-size: 0.95rem; display: flex; align-items: center; justify-content: center; }
.steps { counter-reset: step; }
.steps li strong { color: var(--ink); }
.faq-list dt { font-weight: 700; color: var(--ink); margin: 1rem 0 0.25rem; }
.faq-list dd { margin: 0 0 0.5rem; color: var(--ink-soft); }

/* ---------- Ringside (Sep 30, 2026) — live weekend sharing ----------
   Follower page is parchment-forward like show guides; account surfaces
   stay purple-forward. No inline styles anywhere (CSP style-src 'self'). */
.rs-kicker { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--purple-deep); background: #f1e9fb; border-radius: 999px; padding: 0.2rem 0.7rem; margin-bottom: 0.6rem; }
.rs-share-url { display: flex; gap: 0.5rem; align-items: stretch; margin: 0.5rem 0; }
.rs-share-url input { flex: 1; min-width: 0; font-size: 0.85rem; }
.rs-pretext { width: 100%; min-height: 5.5rem; font-size: 0.9rem; background: #f7f4fd; border: 1px solid var(--line); border-radius: 8px; padding: 0.6rem 0.7rem; color: var(--ink); }
.rs-followers { font-size: 0.85rem; color: var(--ink-soft); margin: 0.4rem 0; }
.rs-followers strong { color: var(--purple-deep); }
.rs-photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin: 0.6rem 0; }
@media (min-width: 640px) { .rs-photo-grid { grid-template-columns: repeat(4, 1fr); } }
.rs-photo { position: relative; border: 2px solid transparent; border-radius: 8px; overflow: hidden; padding: 0; background: #efe9f7; cursor: pointer; aspect-ratio: 1; }
.rs-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rs-photo.selected { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-light); }
.rs-photo .rs-check { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 6px; background: rgba(16,27,60,0.65); color: #fff; font-size: 14px; line-height: 22px; text-align: center; display: none; }
.rs-photo.selected .rs-check { display: block; background: var(--gold); color: var(--midnight); }
.rs-composer-row { display: flex; gap: 0.5rem; align-items: flex-start; margin: 0.6rem 0; }
.rs-composer-row textarea { flex: 1; min-width: 0; min-height: 4.5rem; }
.rs-micbtn { flex: 0 0 auto; width: 3rem; height: 3rem; border-radius: 8px; border: 1px solid var(--line); background: #f7f4fd; color: var(--purple-deep); font-size: 1.3rem; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.rs-micbtn.recording { background: #b3261e; border-color: #b3261e; color: #fff; animation: rs-pulse 1.2s ease-in-out infinite; }
@keyframes rs-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }
.rs-mic-hint { font-size: 0.8rem; color: var(--ink-soft); margin: 0.25rem 0 0; }
.rs-recap-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.6rem; }
.rs-divider { border: 0; border-top: 1px solid var(--line); margin: 1.1rem 0; }
/* Follower page (/r/[code]/) */
.rs-follow-hero { background: var(--hero-ombre); color: #fff; padding: 2rem 1rem 1.6rem; }
.rs-follow-hero .rs-kicker { background: rgba(201,162,39,0.18); color: var(--gold-light); }
.rs-follow-hero h1 { color: #fff; margin: 0.3rem 0 0.2rem; font-size: 1.7rem; }
.rs-follow-hero .rs-sub { color: #cfc6f5; margin: 0; font-size: 0.95rem; }
.rs-follow-hero .rs-show { color: var(--gold-light); font-weight: 600; }
.rs-status-line { display: flex; align-items: center; gap: 0.6rem; background: rgba(255,255,255,0.08); border: 1px solid rgba(201,162,39,0.35); border-radius: 8px; padding: 0.6rem 0.8rem; margin-top: 1rem; font-size: 0.92rem; }
.rs-status-dot { flex: 0 0 auto; width: 12px; height: 12px; border-radius: 4px; background: var(--gold-light); }
.rs-status-dot.live { animation: rs-pulse 1.6s ease-in-out infinite; }
.rs-status-dot.quiet { background: #8f88b8; animation: none; }
.rs-body { max-width: 40rem; margin: 0 auto; padding: 1.2rem 1rem 2rem; }
.rs-ringtimes { list-style: none; margin: 0.6rem 0; padding: 0; }
.rs-ringtimes li { padding: 0.55rem 0.75rem; border: 1px solid var(--line); border-radius: 8px; background: var(--card); margin-bottom: 0.5rem; font-size: 0.92rem; }
.rs-ringtimes .rt-day { font-weight: 700; color: var(--purple-deep); }
.rs-feed { display: grid; gap: 0.9rem; margin: 0.6rem 0; }
.rs-feed figure { margin: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--card); }
.rs-feed img { width: 100%; display: block; }
.rs-feed figcaption { padding: 0.5rem 0.75rem; font-size: 0.85rem; color: var(--ink-soft); }
.rs-recap { border-left: 3px solid var(--gold); background: var(--card); border-radius: 0 8px 8px 0; padding: 0.7rem 0.9rem; margin: 0 0 0.9rem; }
.rs-recap .rs-recap-day { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--purple-deep); margin: 0 0 0.3rem; }
.rs-recap p { margin: 0.3rem 0; }
.rs-follow-form { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 1rem; margin: 1.2rem 0; }
.rs-follow-form h2 { margin-top: 0; font-size: 1.15rem; }
.rs-checkline { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.9rem; margin: 0.4rem 0; }
.rs-cta-band { text-align: center; border-top: 2px solid transparent; border-image: var(--divider-ombre) 1; padding: 1.4rem 1rem 0.4rem; margin-top: 1.6rem; }
.rs-cta-band a { font-weight: 700; color: var(--purple-deep); font-size: 1.05rem; }
.rs-expired { text-align: center; padding: 3rem 1rem; }
.rs-expired h1 { font-size: 1.5rem; }
/* "We've arrived" on Today's plan */
.rs-arrived { background: linear-gradient(160deg, #2c2358, #1d1740); border: 1px solid rgba(201,162,39,0.4); border-radius: 8px; padding: 0.9rem 1rem; margin: 0 0 1rem; color: #f4f1ff; }
.rs-arrived p { margin: 0 0 0.6rem; font-size: 0.92rem; color: #cfc6f5; }
.rs-arrived .btn { background: var(--gold); color: var(--midnight); border: 0; font-weight: 700; }
.rs-arrived .btn:hover { background: var(--gold-light); }
.rs-arrived.done { border-color: var(--ok); }
.rs-arrived.done p { color: #bfe6cf; }
.rs-upload-label { cursor: pointer; display: inline-block; }

/* Ringside info page: numbered steps */
.steps-list{list-style:none;margin:0 0 1.5rem;padding:0;counter-reset:rs-step}
.steps-list li{counter-increment:rs-step;position:relative;padding:0.35rem 0 0.35rem 3rem;margin-bottom:0.6rem}
.steps-list li::before{content:counter(rs-step);position:absolute;left:0;top:0.25rem;width:2.1rem;height:2.1rem;border-radius:50%;background:#5E2B97;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:1rem}

/* Pro Handler client billing */
.cb-tabs { display: flex; gap: 0.4rem; margin: 1rem 0 1.4rem; flex-wrap: wrap; }
.cb-tab { border: 1px solid var(--line); background: var(--card); color: var(--ink-soft); border-radius: 999px; padding: 0.45rem 1.1rem; font-weight: 600; cursor: pointer; font-size: 0.92rem; }
.cb-tab.is-active { background: var(--purple); border-color: var(--purple); color: #fff; }
.cb-monthrow { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1rem; flex-wrap: wrap; }
.cb-income-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.2rem; }
.cb-income-card { border-radius: 12px; padding: 1.1rem 1.2rem; color: #f4f1ff; }
.cb-expected { background: linear-gradient(150deg, #2c2358, #1d1740); border: 1px solid rgba(201,162,39,0.45); }
.cb-final { background: linear-gradient(150deg, #3E1C66, #241040); border: 1px solid rgba(201,162,39,0.45); }
.cb-income-label { margin: 0; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold-light); font-weight: 700; }
.cb-income-num { margin: 0.3rem 0; font-size: 2rem; font-weight: 700; }
.cb-income-note, .cb-income-sub { margin: 0; font-size: 0.85rem; color: #cfc6f5; }
.cb-h3 { font-size: 1.05rem; margin: 1.4rem 0 0.6rem; }
.cb-h4 { font-size: 0.95rem; margin: 1.1rem 0 0.4rem; }
.cb-row { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; margin: 0.8rem 0; }
.cb-exp-dog { margin: 0.5rem 0; }
.cb-exp-dog p { margin: 0 0 0.2rem; }
.cb-exp-dog ul { margin: 0 0 0.6rem 1.2rem; padding: 0; font-size: 0.9rem; color: var(--ink-soft); }
.cb-cat-row { display: flex; align-items: center; gap: 0.7rem; margin: 0.35rem 0; }
.cb-cat-label { width: 7.5rem; font-size: 0.9rem; }
.cb-cat-bar { flex: 1; height: 0.7rem; background: #ece7f7; border-radius: 999px; overflow: hidden; }
.cb-cat-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--purple), var(--gold)); border-radius: 999px; }
.cb-cat-amt { width: 7rem; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.cb-w0 { width: 0%; } .cb-w5 { width: 5%; } .cb-w10 { width: 10%; } .cb-w15 { width: 15%; } .cb-w20 { width: 20%; }
.cb-w25 { width: 25%; } .cb-w30 { width: 30%; } .cb-w35 { width: 35%; } .cb-w40 { width: 40%; } .cb-w45 { width: 45%; }
.cb-w50 { width: 50%; } .cb-w55 { width: 55%; } .cb-w60 { width: 60%; } .cb-w65 { width: 65%; } .cb-w70 { width: 70%; }
.cb-w75 { width: 75%; } .cb-w80 { width: 80%; } .cb-w85 { width: 85%; } .cb-w90 { width: 90%; } .cb-w95 { width: 95%; }
.cb-w100 { width: 100%; }
.cb-table-wrap { overflow-x: auto; max-width: 100%; }
.cb-table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.cb-table th, .cb-table td { text-align: left; padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--line); }
.cb-table th { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-soft); }
.cb-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.cb-chip { display: inline-block; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; border-radius: 999px; padding: 0.15rem 0.6rem; }
.cb-chip.is-draft { background: #ece7f7; color: var(--purple-deep); }
.cb-chip.is-sent { background: #fdf3d8; color: #8A6414; }
.cb-chip.is-paid { background: #dff2e5; color: #1e5c36; }
.cb-inv-card { border: 1px solid var(--line); border-radius: 10px; padding: 0.8rem 1rem; margin: 0.7rem 0; background: var(--card); }
.cb-inv-head { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.cb-inv-total { font-size: 1.25rem; font-weight: 700; margin: 0.4rem 0; font-variant-numeric: tabular-nums; }
.cb-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 0.6rem 1rem; margin: 0.6rem 0; }
.cb-form-grid label { font-size: 0.85rem; display: block; }
.cb-form-grid input { margin-top: 0.2rem; width: 100%; }
.cb-radio { display: flex; gap: 0.5rem; align-items: flex-start; margin: 0.5rem 0; font-size: 0.92rem; }
.cb-radio input { margin-top: 0.2rem; accent-color: var(--purple); }
.cb-line-row { display: grid; grid-template-columns: 1fr 7.5rem 4.5rem 6.5rem 6.5rem auto; gap: 0.4rem; align-items: center; margin: 0.35rem 0; }
.cb-line-amt { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.cb-draft-total { font-size: 1.15rem; margin: 0.8rem 0; }
.cb-dog-checks { display: flex; flex-wrap: wrap; gap: 0.2rem 1rem; }
/* invoice sheet overlay */
.cb-sheet-overlay { position: fixed; inset: 0; background: rgba(16,27,60,0.55); z-index: 200; overflow-y: auto; padding: 2rem 1rem; }
.cb-sheet-overlay[hidden] { display: none; }
.cb-invoice-sheet { background: #fff; color: var(--ink); max-width: 44rem; margin: 0 auto; border-radius: 12px; padding: 1.6rem 1.8rem; border-top: 6px solid var(--purple); }
.cb-sheet-head { display: flex; align-items: center; gap: 0.8rem; }
.cb-sheet-head h3 { margin: 0; font-size: 1.4rem; }
.cb-sheet-meta { font-size: 0.95rem; }
.cb-sheet-total { font-size: 1.4rem; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.cb-sheet-actions { margin: 0.4rem 0; }
.cb-sheet-foot { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
/* end-of-day award checklist on show pages */
.msd-awards { margin: 0.1rem 0 0.55rem 1.6rem; padding: 0.45rem 0.65rem; background: #f7f2fd; border: 1px solid #e4d9f5; border-radius: 10px; }
.msd-awards[hidden] { display: none; }
.msd-awards summary { cursor: pointer; font-size: 0.88rem; font-weight: 600; color: var(--purple-deep); }
.msd-award-day { margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px dashed #d9cdf0; }
.msd-award-group { margin: 0.3rem 0; }
.msd-award-glabel { margin: 0 0 0.15rem; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-soft); font-weight: 700; }
.msd-award { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.82rem; cursor: pointer; border: 1px solid #d9cdf0; border-radius: 6px; padding: 0.15rem 0.45rem; margin: 0 0.25rem 0.25rem 0; background: #fff; }
.msd-award input { accent-color: var(--purple); margin: 0; }
.msd-award.is-implied { background: #efe6fb; border-style: dashed; }
.auto-tag { font-style: normal; font-size: 0.68rem; color: var(--purple-deep); font-weight: 700; }
@media (max-width: 640px) {
  .cb-income-grid { grid-template-columns: 1fr; }
  .cb-line-row { grid-template-columns: 1fr 1fr; }
}
@media print {
  body.cb-printing > *:not(.cb-sheet-overlay) { display: none !important; }
  body.cb-printing .cb-sheet-overlay { position: static; padding: 0; background: #fff; }
  body.cb-printing .cb-sheet-actions { display: none !important; }
  body.cb-printing .cb-invoice-sheet { max-width: none; border: 0; }
}

/* Dashboard breed picker + waiting-list wizard (Oct 2026) */
.breed-picker { margin: 0 0 1.1rem; }
.breed-picker-label, .wiz-label { display: block; font-weight: 700; margin: 0 0 .45rem; }
.picker-results { margin-top: .55rem; }
.picker-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .55rem .8rem; border: 1px solid var(--line); border-radius: 10px; margin: .45rem 0; background: var(--card); }
.picker-row.is-selected { border-color: var(--purple); background: #EFE7F8; }
.specialty-line { margin-top: .35rem; }
.watch-wizard { border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.1rem; margin: 0 0 1.25rem; background: var(--card); }
.watch-wizard .panel-h3 { margin-top: 0; }
.wiz-kinds { display: flex; gap: .5rem; flex-wrap: wrap; margin: .7rem 0 .2rem; }
.wiz-kind { border: 1px solid var(--line); background: transparent; border-radius: 999px; padding: .55rem 1.05rem; font: inherit; font-weight: 600; color: var(--ink); cursor: pointer; }
.wiz-kind:hover { border-color: var(--purple); }
.wiz-kind[aria-pressed="true"] { border-color: var(--gold); background: rgba(201, 162, 39, .14); }
#wiz-shows { margin-top: .8rem; }
#wiz-confirm { margin-top: .8rem; }

/* Armband number lookup (Oct 1, 2026) */
.armband-lookup{margin:0 0 1.25rem;}
.armband-lookup input[type="text"]{max-width:13rem;}
.msd-armband{max-width:12rem;margin:.25rem 0 1rem;}
.armband-hit{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px;}

/* Show lineup armband entries (Oct 1, 2026) */
.lineup-show-title{margin:0 0 .35rem;}
.lineup-dog{margin:.3rem 0;}
.lineup-armband-label{display:inline-block;margin-left:.5rem;font-size:.85rem;color:var(--ink-soft);}
.lineup-armband{margin:0 0 0 .3rem;max-width:6.5rem;display:inline-block;vertical-align:baseline;}
/* Compact "We've arrived" button (Oct 1, 2026 — Ingra: much smaller) */
#rs-arrived-btn{padding:.3rem .7rem;font-size:.82rem;border-radius:20px;line-height:1.2;}
#rs-arrived-btn:disabled{opacity:.75;}

/* First-run welcome (Oct 3, 2026): persona picker cards. */
.w-personas { max-width: 960px; }
button.w-persona { text-align: left; cursor: pointer; font: inherit; color: inherit; background: var(--card, #fff); border: 1px solid var(--line, #e5e0d5); border-radius: 12px; padding: 1.25rem; display: flex; flex-direction: column; gap: .4rem; transition: transform .12s ease, box-shadow .12s ease; }
button.w-persona:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(60,40,120,.12); }
button.w-persona strong { font-size: 1.15rem; }
button.w-persona span { color: var(--muted, #6b6455); font-size: .95rem; line-height: 1.45; }

/* More-about-this-show collapse (Oct 3, 2026): background facts live here. */
details.more-about { margin: 1rem 0 1.5rem; border: 1px solid var(--line, #e5e0d5); border-radius: 10px; padding: .7rem 1rem; background: rgba(0,0,0,.02); }
details.more-about summary { cursor: pointer; font-weight: 600; }
details.more-about summary::marker { color: var(--gold, #b98a1d); }
.more-about-body { margin: .6rem 0 0; font-size: .92rem; color: var(--muted, #6b6455); }
.more-about-facts { margin: .8rem 0 0; display: grid; gap: .5rem; }
/* Exhibitor block collapse on the requests page for pro handlers (Oct 6, 2026) */
#exhibitor-details { margin-top: 1.25rem; }
#exhibitor-details summary { cursor: pointer; }
.more-about-facts > div { display: grid; grid-template-columns: 7rem 1fr; gap: .5rem; font-size: .92rem; }
.more-about-facts dt { font-weight: 600; color: var(--ink, #2b2620); }
.more-about-facts dd { margin: 0; color: var(--muted, #6b6455); }
/* Enter-the-show collapsible (Oct 3, 2026): one button, details expand beneath. */
details.enter-details { margin: 1rem 0 1.5rem; }
details.enter-details > summary { list-style: none; cursor: pointer; display: inline-block; }
details.enter-details > summary::-webkit-details-marker { display: none; }
details.enter-details > summary .btn { pointer-events: none; }
.enter-note { font-size: .9rem; color: var(--muted, #6b6455); margin: .75rem 0 0; font-style: italic; }
/* Breed judge finder: stacked day blocks (Oct 3, 2026) — replaces the
   two-column dl.kv grid that crushed judge text on mobile. */
.judge-slate { margin: 1rem 0; display: grid; gap: 1.1rem; }
.judge-day h4 { font-size: 1rem; margin: 0 0 .45rem; color: var(--ink, #2b2620); }
.judge-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.judge-list li { font-size: .95rem; color: var(--ink-soft, #4a4458); padding-left: .9rem; position: relative; }
.judge-list li::before { content: "›"; position: absolute; left: 0; color: var(--gold, #b98a1d); font-weight: 700; }
details.more-about p + p { margin-top: .6rem; font-size: .92rem; color: var(--muted, #6b6455); }

/* Free-account reassurance line in the homepage hero (Oct 3, 2026). */
.hero-acct { margin-top: .9rem; font-size: .92rem; color: #CFC3E0; }
.hero-acct a { font-weight: 600; color: var(--gold-light); }
.hero-acct a:hover { color: #fff; }

/* Today-plan group judging summary (Oct 3, 2026). */
.tp-grouprow { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .7rem; padding: .55rem .2rem; border-bottom: 1px dotted var(--line, #e5e0d5); font-size: .95rem; }
.tp-grouprow:last-child { border-bottom: none; }
.tp-grp-ord { font-weight: 700; color: var(--gold-deep, #b98a1d); min-width: 4.5rem; }
.tp-grp-name { font-weight: 600; }
.tp-grp-meta { color: var(--muted, #6b6455); font-size: .88rem; flex-basis: 100%; }

/* breed interest counts (Oct 5, 2026) — glanceable, Weekend Atlas */
.bi-list { list-style: none; margin: .55em 0 .2em; padding: 0; }
.bi-list li { margin: .5em 0; line-height: 1.45; }
.bi-list li strong { color: var(--purple-deep); }
.bi-sub { display: block; font-size: .85em; color: var(--ink-soft); }
.bi-invite { margin: .9em 0 .2em; }
.btn-act.is-invite { background: var(--gold); border-color: var(--gold); color: var(--midnight); }
.btn-act.is-invite:hover:not([disabled]) { background: var(--gold-light); }
.bi-fine { font-size: .8em; color: var(--ink-soft); margin: .5em 0 0; }
.msd-day-price{width:5.4em;flex:0 0 auto;padding:.35rem .45rem;}

/* ---------- Reading Room: featured article + recent titles ---------- */
.ed-featured { display: block; margin: 0.75rem 0 0.25rem; text-decoration: none; }
.ed-featured img { width: 100%; border-radius: 8px; display: block; }
.ed-featured-tag { display: inline-block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; background: var(--gold); color: #1a1a2e; font-weight: 700; padding: 0.15rem 0.5rem; border-radius: 4px; margin-bottom: 0.45rem; }
.ed-featured-title { font-weight: 700; color: var(--ink); font-size: 1.05rem; line-height: 1.3; }
a.ed-featured:hover .ed-featured-title { text-decoration: underline; }
.ed-article-list { list-style: none; margin: 0.6rem 0 0; padding: 0; }
.ed-article-list li { margin: 0.45rem 0; font-size: 0.93rem; line-height: 1.35; }
.ed-article-list a { color: var(--purple-deep); text-decoration: none; }
.ed-article-list a:hover { text-decoration: underline; }
.ed-recent-label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); margin: 0.9rem 0 0.1rem; }

/* ============ CSP migration (Oct 7, 2026): merged from page <style> blocks ============ */

/* --- Block 0: hub pages (breadcrumb, cluster articles, empty states) --- */
.crumbs{font-size:.9rem;color:#5a5a5a;margin:0 0 1rem}
.crumbs a{color:#5E2B97}
.crumbs .sep{margin:0 .4rem}
.back-link{margin:0 0 .75rem;font-size:.95rem}
.back-link a{color:#5E2B97;font-weight:600;text-decoration:none}
.back-link a:hover{text-decoration:underline}
.cluster{border:1px solid #e7e1d3;border-radius:8px;background:#fff;padding:1.25rem 1.4rem;margin:1rem 0;max-width:46rem}
.cluster h3{font-family:Fraunces,Georgia,serif;font-size:1.35rem;margin:.6rem 0 .25rem;color:#101B3C}
.cluster-meta{font-size:.9rem;color:#5a5a5a}
.kind-label{display:inline-block;background:#efe9fb;color:#5E2B97;border-radius:4px;padding:.1rem .5rem;font-weight:600;font-size:.82rem}
.past-note{display:inline-block;margin-left:.5rem}
.more{color:#5E2B97;font-weight:600}
.state-group{margin:1.5rem 0}
.state-group>h3{font-family:Fraunces,Georgia,serif;color:#101B3C;margin:0 0 .25rem}
.empty-note{border:1px dashed #b9b2a0;border-radius:8px;background:#fff;padding:1.5rem;max-width:46rem;margin:1rem 0}
.acct-main .empty-note{color:#bdb4e3;border-color:rgba(255,255,255,.25);background:transparent}
.state-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1rem}
.state-list a{color:#5E2B97}
.kind{font-size:.82rem;color:#5a5a5a}
.div-footnote{font-size:.85rem;color:#5a5a5a;max-width:46rem}

/* --- Block 1: reading-room toggle switch --- */
.rc-mineonly{display:flex;align-items:center;gap:.7rem;margin-top:.9rem;padding:.7rem .9rem;background:var(--paper);border:1px solid var(--line);border-radius:10px}
.rc-switch{display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;font-size:.95rem}
.rc-switch input{position:absolute;opacity:0;width:1px;height:1px}
.rc-knob{flex:none;width:44px;height:25px;border-radius:13px;background:#b9b3c7;position:relative;transition:background .15s}
.rc-knob::after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.rc-switch input:checked + .rc-knob{background:var(--gold)}
.rc-switch input:checked + .rc-knob::after{left:22px}
.rc-switch input:focus-visible + .rc-knob{outline:2px solid var(--gold);outline-offset:2px}
.rc-mine-note{font-size:.85rem;color:var(--ink-soft)}

/* --- Block 2: guide-in-progress banner --- */
.progress-banner{border:1px solid #e3c76a;border-left:6px solid #c9a227;border-radius:8px;background:#fdf8ea;padding:1rem 1.25rem;margin:0 auto 1.5rem;max-width:60rem}
.progress-banner p{margin:0;color:#3d3d3d;font-size:.95rem}
.progress-banner strong{color:#7a5c00}

/* --- Block 3: staged homepage section --- */
.acct-teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin:1.5rem 0 0}
.acct-tile{background:#fff;border:1px solid rgba(43,27,82,.14);border-radius:16px;padding:1.1rem 1.15rem 1.25rem;box-shadow:0 4px 18px rgba(43,27,82,.07)}
.acct-tile h3{font-family:"Fraunces",Georgia,serif;font-size:1.25rem;font-weight:700;margin:0 0 .4rem;color:#241b52}
.acct-tile .tile-kicker{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7a6f9e;margin:0 0 .3rem}
.acct-shot{border:1px dashed rgba(43,27,82,.35);border-radius:10px;overflow:hidden;background:#f6f3ec;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center}
.acct-shot img{width:100%;height:100%;object-fit:cover;display:block}
.acct-cap{font-size:.92rem;line-height:1.5;color:#4a4468;margin:.7rem 0 0}
.acct-teaser-cta{margin-top:1.9rem}
.acct-teaser-fine{margin-top:.8rem}
@media (max-width:700px){.acct-teaser-grid{grid-template-columns:1fr}}

/* --- Block 4: discovery page (section-title scoped to .discovery) --- */
.discovery .section-title{font-family:Fraunces,Georgia,serif;color:#101B3C;font-size:1.75rem;margin:0 0 .5rem}
.search-form{display:flex;gap:.5rem;max-width:34rem;margin:1.25rem 0 .5rem}
.search-form .input{flex:1}
.search-note{font-size:.9rem;color:#5a5a5a;max-width:40rem}
.division-map{width:100%;height:auto;display:block;margin:1rem 0;background:#fff;border:1px solid #e7e1d3;border-radius:8px;padding:.5rem}
.division-map .st{stroke:#fff;stroke-width:1.2}
.division-map a.st-link:hover .st,.division-map a.st-link:focus-visible .st{stroke:#101B3C;stroke-width:2.5}
.division-map .st-label{font-family:Inter,system-ui,sans-serif;font-size:11px;font-weight:600;fill:#101B3C;pointer-events:none}
.division-map .inset-box{fill:none;stroke:#101B3C;stroke-width:1;stroke-dasharray:4 3}
.division-map .inset-label{font-family:Inter,system-ui,sans-serif;font-size:12px;font-weight:600;fill:#101B3C}
.division-map .dc-marker{stroke:#fff;stroke-width:1.5}
.div-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.35rem 1rem;margin:1.25rem 0 0;padding:0;list-style:none}
.legend-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border:1px solid #e7e1d3;border-radius:8px;background:#fff;color:#101B3C;text-decoration:none;font-size:.95rem}
.legend-item:hover,.legend-item:focus-visible{border-color:#C9A227}
.swatch{width:1.1rem;height:1.1rem;border-radius:4px;flex:none;border:1px solid rgba(16,27,60,.25)}
.swatch.d1{background:#0072B2}.swatch.d2{background:#CC668F}.swatch.d3{background:#FFA600}
.swatch.d4{background:#DDCC77}.swatch.d5{background:#66CCEE}.swatch.d6{background:#AA4499}
.swatch.d7{background:#1B9E77}.swatch.d8{background:#AA5C0E}.swatch.d9{background:#8A2E2E}
.swatch.d10{background:#2F4F4F}.swatch.d11{background:#BBBBBB}.swatch.d12{background:#6542F0}
.swatch.d13{background:#7570B3}.swatch.d14{background:#2E5E1E}.swatch.d15{background:#4DAF4A}
.div-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem;margin-top:1.25rem}
.div-block{border:1px solid #e7e1d3;border-radius:8px;background:#fff;padding:1rem 1.1rem}
.div-block h3{font-family:Fraunces,Georgia,serif;font-size:1.15rem;margin:0 0 .15rem}
.div-block h3 a{color:#101B3C;text-decoration:none}
.div-block h3 a:hover{color:#5E2B97;text-decoration:underline}
.div-note{font-size:.85rem;color:#5a5a5a;margin:0 0 .6rem}

/* --- Block 5: Today's Plan CTA --- */
.today-cta{display:flex;align-items:center;justify-content:center;gap:.6rem;margin:0 0 1.25rem;padding:1rem 1.25rem;border-radius:14px;text-decoration:none;font-weight:800;font-size:1.1rem;color:#f5d67b;background:linear-gradient(160deg,#2b1a4e 0%,#1a0f30 100%);border:1px solid rgba(227,174,41,.6);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.today-cta:hover{color:#ffe9a8;border-color:#E3AE29}
.today-cta-sub{font-weight:400;font-size:.85rem;color:#bdb4e3}

/* --- Block 6: pro subscription section --- */
.pro-sub-section{margin-top:2rem;max-width:860px}
.pro-sub-section h2{font-size:1.25rem;margin:0 0 0.75rem}

/* --- Block 7: dog profile + per-dog ring card --- */
.dog-profile .auth-card{padding:1rem 1.1rem}
.dog-profile .card-gap{margin-top:0.75rem}
.dog-profile .auth-card h3{margin:0 0 0.5rem;font-size:1.05rem;color:#141032}
.dog-profile .item-list{gap:0.5rem;margin-top:0.6rem}
.dog-profile .item-row{padding:0.55rem 0.75rem;gap:0.75rem}
.dog-profile .auth-card form p{margin:0.55rem 0}
.dog-profile .lineup-row{padding:0.4rem 0}
.dog-profile .result-card{padding:0.55rem 0.7rem;margin-bottom:0.5rem}
.dog-profile .acct-pagehead{margin-bottom:0.5rem}
.drc-nav{display:flex;align-items:center;gap:0.5rem;margin:0 0 0.6rem}
.drc-arrow{background:#efe9f7;border:1px solid #d9cdef;color:#4a3a7a;border-radius:8px;width:2rem;height:2rem;font-size:1.1rem;line-height:1;cursor:pointer}
.drc-today{background:none;border:1px solid #d9cdef;color:#4a3a7a;border-radius:999px;padding:0.3rem 0.8rem;font-size:0.85rem;cursor:pointer}
.drc-label{font-weight:700;color:#2a2145}
.drc-card{background:linear-gradient(160deg,#2c2358,#1d1740);border:1px solid rgba(201,162,39,.35);border-radius:12px;padding:0.7rem 0.8rem;margin-bottom:0.6rem;color:#f4f1ff}
.drc-card.up-next{border-color:#e3ae29;box-shadow:0 0 0 1px #e3ae29}
.drc-tag{display:inline-block;font-size:0.68rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;background:rgba(255,255,255,.14);color:#cfc6f5;border-radius:999px;padding:0.15rem 0.55rem;margin-bottom:0.35rem}
.drc-card.up-next .drc-tag{background:#e3ae29;color:#2a1a4a}
.drc-dogline{font-size:1rem;margin:0 0 0.45rem;color:#fff}
.drc-dogline .b{color:#bdb3e8;font-weight:400;font-size:0.9rem}
.drc-show{font-size:0.8rem;color:#bdb3e8;margin:-0.3rem 0 0.45rem}
.drc-show a{color:#f5d76e;text-decoration:none}
.drc-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.4rem;margin-bottom:0.45rem}
.drc-cell{background:rgba(255,255,255,.07);border-radius:8px;padding:0.35rem 0.3rem;text-align:center}
.drc-cell .k{font-size:0.62rem;letter-spacing:0.06em;text-transform:uppercase;color:#c4b8ec}
.drc-cell .v{font-size:1rem;font-weight:700;color:#fff}
.drc-cell .v.gold{color:#f5d76e}
.drc-judge{font-size:0.82rem;color:#cfc6f5;margin:0}
.drc-judge strong{color:#fff;font-weight:600}
.drc-special{font-size:0.78rem;color:#f5d76e;margin:0.35rem 0 0}
.drc-pending{font-size:0.82rem;color:#cfc6f5;margin:0.35rem 0 0}
.drc-pending a{color:#f5d76e}
.drc-foot{font-size:0.75rem;color:#574d8f;margin:0.4rem 0 0}

/* --- Block 8: SKIPPED (roster-tile already in CSS) --- */

/* --- Block 9: today's plan panel --- */
.acct-main{background:linear-gradient(180deg,#1d1445 0%,#2a1e5e 100%);border-radius:18px;padding:1.75rem 1.25rem 2.5rem;color:#f4f1ff;box-shadow:0 18px 50px rgba(29,20,69,.35)}
@media (max-width:860px){.acct-main{padding:1.25rem 1rem 2rem}}
.kicker-sm,.kicker-sm a{color:var(--gold-light)}
.acct-pagehead h1{color:#fff}
.tp-datenav{display:flex;align-items:center;gap:.6rem;margin:1rem 0 1.25rem}
.tp-datenav .tp-date{font-family:"Fraunces",Georgia,serif;font-size:1.25rem;font-weight:600;color:#fff;min-width:9rem;text-align:center}
.tp-navbtn{border:1px solid rgba(255,255,255,.25);background:#2b2258;color:#f4f1ff;border-radius:999px;width:2.4rem;height:2.4rem;font-size:1.1rem;line-height:1;cursor:pointer}
.tp-navbtn:hover{border-color:var(--gold);color:var(--gold-light)}
.tp-todaybtn{border:1px solid var(--gold);background:transparent;color:var(--gold-light);border-radius:999px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer}
.tp-todaybtn:hover{background:var(--gold);color:#241b52}
.tp-dogfilter{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1rem}
.tp-dogchip{border:1px solid rgba(255,255,255,.3);background:transparent;color:#f4f1ff;border-radius:999px;padding:.42rem .95rem;font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit}
.tp-dogchip:hover{border-color:var(--gold);color:var(--gold-light)}
.tp-dogchip.on{background:var(--gold-light);border-color:var(--gold-light);color:#241b52}
.tp-showchip{margin:1.25rem 0 .25rem;padding:.7rem .9rem;background:#2b2258;border:1px solid rgba(201,162,39,.45);border-radius:10px}
.tp-showchip strong{color:var(--gold-light)}
.tp-showchip strong a{color:var(--gold-light);text-decoration:none}
.tp-showchip strong a:hover{text-decoration:underline}
.tp-showchip span{display:block;font-size:.82rem;color:#bdb4e3;margin-top:.15rem}
.tp-card{margin:.55rem 0;padding:.65rem .75rem;background:#2b2258;border:1px solid rgba(255,255,255,.14);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.tp-card.up-next{border:2px solid var(--gold);background:linear-gradient(135deg,rgba(201,162,39,.20),rgba(201,162,39,.06))}
.tp-card.junior{border-left:4px solid var(--gold)}
.tp-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#241b52;background:var(--gold-light);border-radius:5px;padding:.2rem .6rem;margin-bottom:.35rem}
.tp-tag.quiet{background:rgba(255,255,255,.18);color:#f4f1ff}
.tp-tag.junior{background:#4f2fa8;color:#fff}
.tp-conflict{margin:.1rem 0 .45rem;padding:.4rem .55rem;border-radius:8px;background:rgba(255,110,110,.12);border:1px solid rgba(255,110,110,.45);font-size:.8rem;color:#ffb4b4}
.tp-special{margin:.1rem 0 .45rem;padding:.4rem .55rem;border-radius:8px;background:rgba(201,162,39,.10);border:1px solid rgba(201,162,39,.40);font-size:.8rem;color:#f0d98a}
.tp-group{margin:.1rem 0 .45rem;padding:.4rem .55rem;border-radius:8px;background:rgba(139,124,246,.10);border:1px solid rgba(139,124,246,.40);font-size:.8rem;color:#d9d2ff}
.tp-group strong{color:#fff}
.tp-quiet{margin:.2rem 0 .8rem;padding:.45rem .7rem;border-radius:8px;background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.25);font-size:.8rem;color:#bdb4e3}
.tp-dogline{font-size:.95rem;color:#fff;margin-bottom:.45rem}
.tp-dogline strong{font-family:"Fraunces",Georgia,serif;font-size:1.05rem;font-weight:700}
.tp-dogline .tp-tag{margin-bottom:0;font-size:.62rem;padding:.12rem .45rem;vertical-align:.12rem}
.tp-breed-inline{font-size:.82rem;color:#bdb4e3}
.tp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.4rem;margin-bottom:.45rem}
.tp-cell{background:#241b52;border:1px solid rgba(255,255,255,.10);border-radius:8px;padding:.35rem .25rem;text-align:center}
.tp-cell .k{font-size:.62rem;color:#bdb4e3;text-transform:uppercase;letter-spacing:.06em}
.tp-cell .v{font-size:.92rem;font-weight:700;color:#fff;margin-top:.1rem}
.tp-cell .v.gold{color:var(--gold-light)}
.tp-judge{font-size:.8rem;color:#bdb4e3;margin-bottom:.45rem}
.tp-judge strong{color:#fff}
.tp-prov{color:var(--gold-light);font-weight:700}
.tp-champ{display:flex;align-items:center;gap:.45rem;margin:.1rem 0 .45rem;font-size:.8rem;color:#bdb4e3}
.tp-champ button{border-radius:999px;font-size:.75rem;font-weight:700;padding:.28rem .8rem;cursor:pointer}
.tp-champ button[data-tp-champ-val="1"]{background:var(--gold-light);color:#241b52;border:1px solid var(--gold-light)}
.tp-champ button[data-tp-champ-val="0"]{background:transparent;color:#f4f1ff;border:1px solid rgba(255,255,255,.35)}
.tp-btnrow{display:flex;gap:.5rem}
.tp-btn{flex:1;text-align:center;text-decoration:none;background:var(--gold-light);color:#241b52;font-weight:700;font-size:.8rem;border-radius:8px;padding:.45rem .4rem}
.tp-btn:hover{background:#f5d76e;color:#241b52}
.tp-btn.ghost{background:transparent;color:var(--gold-light);border:1px solid var(--gold)}
.tp-btn.ghost:hover{background:rgba(201,162,39,.14)}
.tp-foot{font-size:.8rem;color:#bdb4e3;margin:.4rem 0 0}
.tp-section{margin:1.6rem 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#bdb4e3;font-weight:700}
.tp-unc{padding:.7rem .9rem;border:1px dashed rgba(255,255,255,.25);border-radius:10px;margin-bottom:.5rem}
.tp-unc a{color:#fff}
.tp-unc span{display:block;font-size:.85rem;color:#bdb4e3}
.tp-unc-dogs{font-size:.85rem;color:#fff;margin:.3rem 0;line-height:1.7}
.tp-empty{margin:2rem 0;text-align:center;padding:1.8rem 1rem;border:1px dashed rgba(255,255,255,.25);border-radius:12px}
.tp-empty .big{font-family:"Fraunces",Georgia,serif;font-size:1.2rem;font-weight:700;color:#fff;margin-bottom:.5rem}
.tp-empty p{color:#bdb4e3;font-size:.95rem;margin:0}
.tp-empty .next{color:var(--gold-light);font-weight:600}
@media (max-width:560px){.tp-datenav .tp-date{min-width:0;flex:1}.tp-grid{gap:.35rem}.tp-cell .v{font-size:.85rem}.tp-dogline strong{font-size:1rem}}

/* --- Block 10: pricing tiers --- */
.tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:24px 0}
.tier-card{border:1px solid #e2e7f0;border-radius:12px;padding:22px 20px;background:#fff;position:relative}
.tier-card.tier-featured{border:2px solid #d98e2b;box-shadow:0 8px 28px rgba(20,20,40,.10)}
.tier-badge{display:inline-block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:#fff;background:#d98e2b;border-radius:999px;padding:4px 12px;margin-bottom:10px}
.tier-card h3{font-family:Georgia,serif;font-size:24px;margin:0 0 4px}
.tier-price{font-size:15px;font-weight:700;color:#3c4354;margin:0 0 12px}
.tier-price span{font-weight:400;color:#6b7386;font-size:13px}
.tier-card ul{margin:0;padding-left:18px;font-size:14px;color:#3c4354}
.tier-card li{margin-bottom:6px}
.founding-callout{border:2px dashed #d98e2b;border-radius:12px;padding:22px 24px;margin:28px 0;background:#fffdf7}
.founding-callout h3{font-family:Georgia,serif;font-size:22px;margin:0 0 8px}
.founding-callout p{font-size:15px;color:#3c4354;margin:0 0 10px}

/* --- Block 11: club-site mock browser --- */
.kcw-tiers .kcw-tier-option{display:block;margin:10px 0}
.browser-mock{border:1px solid #e2e7f0;border-radius:12px;overflow:hidden;margin:20px 0 8px;box-shadow:0 8px 28px rgba(20,20,40,.10)}
.browser-bar{display:flex;align-items:center;gap:10px;background:#eef1f6;padding:10px 14px}
.browser-dots{display:flex;gap:6px}
.browser-dots span{width:11px;height:11px;border-radius:50%;background:#c7cfdd}
.browser-url{flex:1;background:#fff;border:1px solid #dbe1ec;border-radius:999px;padding:6px 16px;font-size:13px;color:#3c4354;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.browser-body{background:#8e1f2f;color:#fff;padding:40px 32px}
.browser-body .mock-kicker{color:#e8a83e;font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:700;margin:0 0 8px}
.browser-body h3{font-family:Georgia,serif;font-size:clamp(26px,4vw,38px);margin:0 0 8px;font-weight:600}
.browser-body p{color:#c6cfe2;margin:0 0 20px;font-size:15px}
.browser-body .btn-row{display:flex;gap:10px;flex-wrap:wrap}
.mock-link{text-decoration:none;display:block}
.mock-link:hover .browser-body{background:#a83246}

/* --- Block 12: ad slots + presented-by --- */
.mock-note{border-left:3px solid var(--gold);background:#faf6ec;border-radius:0 8px 8px 0;padding:0.9rem 1.1rem;font-size:0.92rem;color:var(--ink-soft);margin:1rem 0 1.5rem}
.mock-note strong{color:var(--ink)}
.slot-table{width:100%;border-collapse:collapse;font-size:0.92rem;margin:1rem 0 0.5rem}
.slot-table th,.slot-table td{text-align:left;padding:0.6rem 0.75rem;border-bottom:1px solid var(--line);vertical-align:top}
.slot-table th{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink-soft)}
.slot-table td strong{color:var(--purple)}
.ad-slot{border:2px dashed #c9a227;border-radius:8px;background:#fdfaf2;padding:0;margin:1.25rem 0;overflow:hidden}
.ad-tag{display:block;font-size:0.66rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-soft);text-align:center;padding:0.45rem 0 0.35rem}
.ad-creative{margin:0 0.9rem 0.9rem;border-radius:8px;background:linear-gradient(135deg,#2b1b4d 0%,#5e2b97 100%);color:#fff;padding:1.75rem 1.25rem;text-align:center}
.ad-creative.light{background:linear-gradient(135deg,#f4ead0 0%,#e8d5a8 100%);color:#2b1b4d}
.ad-creative .brand{font-family:Fraunces,serif;font-size:1.4rem;margin:0 0 0.35rem}
.ad-creative .pitch{margin:0 0 0.9rem;font-size:0.95rem;opacity:0.92}
.ad-creative .fake-btn{display:inline-block;background:var(--gold);color:#2b1b4d;font-weight:700;font-size:0.88rem;padding:0.55rem 1.2rem;border-radius:8px}
.ad-creative.light .fake-btn{background:#2b1b4d;color:#fff}
.ad-fineprint{font-size:0.75rem;color:var(--ink-soft);text-align:center;margin:0 0 0.9rem;font-style:italic}
.presented-by{display:flex;align-items:center;gap:0.75rem;border:1px solid var(--line);border-radius:8px;padding:0.7rem 1rem;margin:1rem 0 1.5rem;background:var(--card);font-size:0.9rem;color:var(--ink-soft)}
.presented-by .mark{width:40px;height:40px;border-radius:8px;flex:none;background:linear-gradient(135deg,#c9a227,#8a6d1c);display:flex;align-items:center;justify-content:center;color:#fff;font-family:Fraunces,serif;font-weight:700}
.presented-by strong{color:var(--ink)}
.presented-by .ad-tag{padding:0;text-align:left}
.mock-guide-head{border:1px solid var(--line);border-radius:8px;padding:1.5rem;background:var(--card);margin-bottom:0.5rem}
.sponsored-tile{border-top:3px solid #c9a227}
.sponsored-tile .tile-kicker{color:#8a6d1c}
.house-rules li{margin-bottom:0.6rem}

/* --- Block 13: club directory --- */
.club-filters{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 6px}
.club-filters input[type="search"]{flex:2 1 220px;padding:12px 16px;font:inherit;font-size:15px;border:1.5px solid #dbe1ec;border-radius:10px;background:#fff}
.club-filters select{flex:1 1 150px;padding:12px 12px;font:inherit;font-size:15px;border:1.5px solid #dbe1ec;border-radius:10px;background:#fff;color:#3c4354}
.club-count{font-size:14px;color:#6b7386;margin:10px 0 0}
.club-list{list-style:none;margin:18px 0 0;padding:0}
.club-row{border:1px solid #e2e7f0;border-radius:10px;padding:14px 16px;margin-bottom:10px;background:#fff}
.club-row h3{font-family:"Inter",sans-serif;font-size:16px;font-weight:700;margin:0 0 8px;color:#1c2333}
.club-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.club-website{font-size:14px;font-weight:600}
.tpa-built-badge{display:inline-block;font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:700;color:#5c4a12;background:#f6e7c1;border:1px solid #e4cfa1;border-radius:999px;padding:3px 10px}
.club-more{margin:18px 0 0;text-align:center}
.club-featured{border:2px solid #e3ae29;border-radius:12px;padding:18px 20px;margin:20px 0 4px;background:linear-gradient(180deg,#fffdf4,#fff)}
.club-featured .kicker{color:#8a6d1c;margin:0 0 6px}
.club-featured h2{font-family:"Inter",sans-serif;font-size:19px;margin:0 0 6px;color:#1c2333}
.club-featured p{margin:0 0 10px;font-size:14.5px;color:#3c4354}
.club-featured .club-featured-cta{font-weight:700;font-size:14.5px}

/* --- Block 14: SKIPPED (inbox-row already in CSS) --- */

/* --- Block 15: assistants view (dog-tag upgraded to pill) --- */
.dog-tag{display:inline-block;background:#F2F0E6;border:1px solid var(--line);border-radius:999px;padding:0.25rem 0.9rem;margin:0.15rem 0.35rem 0.15rem 0;font-size:0.95rem}
.dog-tag .breed{color:var(--ink-soft);font-size:0.85rem}
.day-block{border:1px solid var(--line);border-radius:8px;padding:0.9rem 1rem;margin-bottom:0.75rem;background:#fff}
.day-block h3{margin:0 0 0.5rem;font-size:1rem}
.sched-item{padding:0.35rem 0;border-top:1px solid #f0ede2}
.sched-item:first-of-type{border-top:none}
.sched-item .time{color:var(--ink-soft);font-size:0.85rem}
blockquote.note-text{margin:0.5rem 0;padding-left:0.75rem;border-left:3px solid var(--line);white-space:pre-wrap}
.readonly-pill{display:inline-block;font-size:0.8rem;font-weight:600;border-radius:999px;padding:0.15rem 0.7rem;background:#f0f0f0;color:#555;border:1px solid #d5d5d5}

/* --- Blocks 16-22: articles (deduplicated) --- */
.lang-toggle{display:flex;gap:0.5rem;margin:1rem 0 2rem}
.lang-toggle button{padding:0.6rem 1.2rem;border:2px solid var(--gold,#C9A227);background:transparent;color:inherit;border-radius:6px;cursor:pointer;font-weight:600}
.lang-toggle button.active{background:var(--gold,#C9A227);color:#1a1a2e}
[data-lang="es"] .lang-en{display:none}
[data-lang="en"] .lang-es{display:none}
.spotlight-hero{background:linear-gradient(135deg,#1a1a2e 0%,#4A1D5E 100%);color:#fff;padding:3rem 1.5rem;border-radius:12px;margin-bottom:2rem}
.spotlight-hero h1{color:#fff;margin-top:0}
.spotlight-hero .dateline{color:var(--gold-light,#F6EDC9);font-weight:600}
.fact-box{background:#FBF6E3;border:1px solid #E8DCC0;border-radius:8px;padding:1.25rem;margin:1.5rem 0}
.fact-box h3{margin-top:0}
.breed-card{display:grid;grid-template-columns:1fr;gap:1rem;margin:1.5rem 0;padding:1.25rem;border:1px solid #E8DCC0;border-radius:12px;background:#fff}
@media (min-width:700px){.breed-card{grid-template-columns:280px 1fr}}
.breed-card img{width:100%;border-radius:8px}
.breed-card h3{margin-top:0}
.share-title-wrap{display:flex;align-items:center;justify-content:space-between;gap:0.75rem}
.share-title-btn{flex-shrink:0;background:#4A1D5E;color:#fff;border:none;border-radius:50%;width:36px;height:36px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.share-title-btn:hover{background:#5E2575}
.share-sheet{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;background:rgba(0,0,0,0.5);display:flex;align-items:flex-end;justify-content:center}
.share-sheet[hidden]{display:none}
.share-sheet-inner{background:#fff;border-radius:16px 16px 0 0;padding:1.25rem;width:100%;max-width:480px}
.share-sheet-inner h3{margin:0 0 1rem;text-align:center}
.share-sheet .share-btns{display:flex;gap:0.5rem;justify-content:center;flex-wrap:wrap}
.share-btn{display:inline-block;background:#4A1D5E;color:#fff;border:none;border-radius:8px;padding:0.6rem 1rem;font-size:0.95rem;font-weight:600;cursor:pointer;text-decoration:none;font-family:inherit}
.share-btn:hover{background:#5E2575;color:#fff}
.share-note{font-size:0.9rem;color:#4A1D5E;margin-top:0.5rem;text-align:center}
.share-close{display:block;margin:1rem auto 0;background:none;border:none;color:#4A1D5E;font-size:0.95rem;cursor:pointer;text-decoration:underline}
.back-btn{background:none;border:none;cursor:pointer;font-size:1rem;color:#4A1D5E;text-decoration:underline;padding:0;font-family:inherit}
.cta-box{background:linear-gradient(135deg,#1a1a2e 0%,#4A1D5E 100%);color:#fff;border-radius:12px;padding:2rem 1.5rem;margin:2rem 0;text-align:center}
.cta-box h3{color:#F6EDC9;margin-top:0}
.cta-box p{color:#fff}
.cta-box .btn{display:inline-block;background:#C9A227;color:#1a1a2e;font-weight:700;padding:0.8rem 1.8rem;border-radius:8px;text-decoration:none;margin-top:0.5rem}
.cta-box .btn:hover{background:#DDB84A;color:#1a1a2e}
.faq h3{margin:1.25rem 0 0.4rem;font-size:1.1rem}
.faq p{margin:0 0 0.75rem}
.viz{background:#FBF6E3;border:2px solid #E8DCC0;border-radius:12px;padding:1.5rem;margin:2rem 0}
.viz h3{margin-top:0;color:#4A1D5E}
.count-bar{display:flex;gap:0.5rem;margin:1rem 0;flex-wrap:wrap}
.count-chip{background:#4A1D5E;color:#fff;border-radius:8px;padding:0.75rem 1rem;text-align:center;min-width:70px}
.count-chip .num{font-size:1.8rem;font-weight:700;display:block}
.count-chip .lbl{font-size:0.75rem;opacity:0.9}
.count-chip.bitch{background:#7B2D8E}
.count-chip.champ{background:#2B7BB9}
.arrow-flow{display:flex;align-items:center;gap:0.75rem;margin:1.25rem 0;flex-wrap:wrap}
.flow-box{background:#fff;border:2px solid #4A1D5E;border-radius:8px;padding:0.75rem 1rem;font-weight:600}
.flow-arrow{font-size:1.5rem;color:#C9A227;font-weight:700}
@media (max-width:560px){.arrow-flow{flex-direction:column;align-items:stretch}.flow-arrow{transform:rotate(90deg);text-align:center}}
table.pts{border-collapse:collapse;width:100%;margin:1rem 0;font-size:0.95rem}
table.pts th,table.pts td{border:1px solid #D4C9A8;padding:0.5rem 0.75rem;text-align:center}
table.pts th{background:#4A1D5E;color:#fff}
table.pts td.hl{background:#FFF3CD;font-weight:700}
table.pts td:first-child{text-align:left}
.level-bar{display:flex;gap:0.5rem;margin:1rem 0;flex-wrap:wrap}
.level-chip{border-radius:8px;padding:0.75rem 1rem;text-align:center;min-width:90px;font-weight:700}
.level-chip .num{font-size:1.5rem;display:block}
.level-chip .lbl{font-size:0.75rem;opacity:0.9}
.level-chip.bronze{background:#CD7F32;color:#fff}
.level-chip.silver{background:#8A8D8F;color:#fff}
.level-chip.gold{background:#C9A227;color:#fff}
.level-chip.platinum{background:#4A1D5E;color:#fff}
.sport{background:#fff;border:2px solid #E8DCC0;border-radius:12px;padding:1.25rem;margin:1.5rem 0}
.sport h3{margin-top:0;color:#4A1D5E}
.sport dl{margin:0.75rem 0 0}
.sport dt{font-weight:700;color:#4A1D5E;margin-top:0.5rem}
.sport dd{margin:0.15rem 0 0 0}
.timeline{border-left:3px solid #C9A227;margin:1.5rem 0 1.5rem 0.5rem;padding-left:1.25rem}
.timeline p{margin:0.75rem 0}
.timeline strong{color:#4A1D5E}
/* .fact/.myth renamed to .tpa-fact/.tpa-myth: bare .fact is the site-wide stat card */
.tpa-myth{background:#FDE8E8;border-left:4px solid #C0392B;padding:1rem 1.25rem;margin:1.5rem 0;border-radius:0 8px 8px 0}
.tpa-myth strong{color:#C0392B}
.tpa-fact{background:#E8F5E9;border-left:4px solid #27AE60;padding:1rem 1.25rem;margin:1.5rem 0;border-radius:0 8px 8px 0}
.tpa-fact strong{color:#27AE60}
.related{background:#F5EEFF;border:2px solid #4A1D5E;border-radius:12px;padding:1.25rem;margin:2rem 0}
.related h3{margin-top:0;color:#4A1D5E}
.related ul{margin-bottom:0}

/* ============ CSP migration: inline style="" replacements ============ */
iframe{border:0}
.section-title{font-size:1.4rem}
.tpa-narrow{max-width:640px;margin:4rem auto;padding:0 1.5rem;font-family:system-ui,sans-serif}
.tpa-soft-sm{color:var(--ink-soft);font-size:.85rem}
.tpa-mt0{margin-top:0}
.tpa-my-lg{margin:1.5rem 0}
.tpa-mb0{margin-bottom:0}
.tpa-my-md{margin:1rem 0}
.tpa-m0{margin:0}
.tpa-maxw-780{max-width:780px}
.tpa-mt-md{margin-top:1rem}
.tpa-mb-md{margin-bottom:1rem}
.tpa-mt-lg{margin-top:1.5rem}
.tpa-mt-xl{margin-top:2rem}
.tpa-mt-125{margin-top:1.25rem}
.tpa-mt-28{margin-top:28px}
.tpa-mt-32{margin-top:32px}
.tpa-mb-sm{margin:0 0 0.5rem}
.tpa-mb-075{margin:0 0 0.75rem}
.tpa-mr-xs{margin-right:0.4rem}
.tpa-my-mb-sm{margin:1.5rem 0 0.75rem}
.tpa-my-125-05{margin:1.25rem 0 0.5rem}
.tpa-fs-13{font-size:13px}
.tpa-h-xl{margin:0;font-size:1.5rem;font-weight:800}
.tpa-h-lg{font-size:1.6rem;margin:1rem 0 0.25rem}
.tpa-h-md{margin:0.5rem 0 0;font-size:1rem;font-weight:600}
.tpa-h-sm{margin:0 0 0.5rem;font-weight:700}
.tpa-p-sm{margin:0 0 0.75rem;font-size:0.92rem;line-height:1.5}
.tpa-fw-normal-sm{font-weight:normal;font-size:0.92rem}
.tpa-note{margin:1rem 0 0;font-size:0.88rem}
.tpa-mt-note{margin-top:1rem;font-size:0.88rem}
.tpa-mt-lg-note{margin-top:1.5rem;font-size:0.88rem}
.tpa-text-left-mb0{text-align:left;margin-bottom:0}
.tpa-inline-block{display:inline-block}
.tpa-inherit{color:inherit}
.tpa-maxw-640{max-width:640px}
.tpa-maxw-34{max-width:34rem}
.tpa-maxw-28{max-width:28rem;width:100%}
.tpa-maxw-none{max-width:none}
.tpa-center-46{display:block;max-width:46rem;margin:0 auto}
.tpa-px-sm{padding:0 0.5rem}
.tpa-sr-only{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.tpa-callout{border:1px solid var(--line);border-radius:8px;padding:1rem;margin:1.25rem 0;background:rgba(94,43,151,0.04)}
.tpa-box{border:1px solid var(--line);border-radius:8px;padding:1rem;margin:1rem 0}
.tpa-gold-panel{margin:1.5rem 0;padding:1.25rem 1.5rem;border-radius:14px;background:linear-gradient(135deg,#E3AE29,#f5d76e);color:#2a1a4a;text-align:center}
.tpa-btn-gold{background:#d98e2b;color:#5c1420;padding:12px 22px;border-radius:8px;font-weight:600;font-size:15px}
.tpa-btn-ghost{border:1px solid rgba(255,255,255,.5);color:#fff;padding:12px 22px;border-radius:8px;font-weight:600;font-size:15px}
/* promo tiles (hanover-2026) */
.tpa-promo-row{display:flex;gap:1.25rem;align-items:flex-start;margin-bottom:1.75rem}
.tpa-promo-badge{flex:0 0 76px;width:76px;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(20,16,50,.25);transform:rotate(-6deg);background:#fff;text-align:center}
.tpa-promo-label{background:#141032;color:#E3AE29;font-weight:700;font-size:.72rem;letter-spacing:.08em;padding:.3rem 0}
.tpa-promo-title{font-family:'Fraunces',serif;font-weight:700;font-size:2rem;line-height:1.1;color:#141032;padding:.25rem 0 .35rem}
.tpa-promo-sub{font-size:.68rem;color:#555;padding-bottom:.35rem}
/* JS-injected content utilities */
.tpa-js-mb025{margin:0 0 0.25rem}
.tpa-js-italic-note{font-style:italic;margin:0.5rem 0 0}
.tpa-js-prewrap{white-space:pre-wrap}
.tpa-js-mb03{margin:0 0 0.3rem}
.tpa-js-my03{margin:0.3rem 0}
.tpa-js-block-ok{display:block;color:var(--ok)}
.tpa-js-ml05{margin-left:0.5rem}
.tpa-js-maxw12{max-width:12rem}
.tpa-js-flex1{flex:1}
.tpa-js-mb04{margin:0 0 0.4rem}
.tpa-js-mt075{margin-top:0.75rem}
