/* 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) {
  /* On phones the header wraps to two rows (brand + nav), making it ~95px
     tall instead of ~60px. The sticky search bar must clear the full header
     height or it slides underneath it on scroll (Oct 15, 2026). */
  :root { --search-stick-top: 95px; }
  .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-deep);
  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-deep); 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;color:#1a1a2e}
.item-label a{color:#1a1a2e}
.assign-prompt .item-label a{color:#1a1a2e}
.assign-prompt .item-sub{margin:0.15rem 0 0 !important;font-size:0.85rem !important;color:#1a1a2e !important}
.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-deep); }

/* ---------- 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-deep); }
.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-deep); }

/* 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: #c0392b; 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;color:#1a1a2e}
.item-label a{color:#1a1a2e}
.item-sub{margin:0.15rem 0 0 !important;font-size:0.85rem !important;color:#1a1a2e !important}
.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; }
.email-bar-sample { font-size: 0.85rem; color: #C9A227; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.email-bar-sample: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; }
/* Dashboard tab panels (restored Oct 8, 2026): click sidebar to show one section */
.dtab-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
/* Show overview by default; hide others. Tabs override when selected. */
.acct-main .dash-panel{visibility:visible;position:static;height:auto;overflow:visible;pointer-events:auto}
#dtab-saved:checked ~ .acct-main .dash-panel:not(#panel-saved),
#dtab-plan:checked ~ .acct-main .dash-panel:not(#panel-plan),
#dtab-sched:checked ~ .acct-main .dash-panel:not(#panel-sched),
#dtab-follow:checked ~ .acct-main .dash-panel:not(#panel-follow),
#dtab-watch:checked ~ .acct-main .dash-panel:not(#panel-watch){
  visibility:hidden;position:absolute;height:0;overflow:hidden;pointer-events:none;
}
#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:rgba(74,29,94,0.1);font-weight:700;
}
#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: #6b5514; 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{color:#4a4a5e;font-size:0.95rem}
.acct-main .empty-note{color:#4a4a5e;font-size:0.95rem}
.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:#fff;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid #e8e2d5}
@media (max-width:860px){.acct-main{padding:1.25rem 1rem 2rem}}
.kicker-sm,.kicker-sm a{color:#4A1D5E}
.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:#1a1a2e;min-width:9rem;text-align:center}
.tp-navbtn{border:1px solid #d4c9b8;background:#fff;color:#1a1a2e;border-radius:999px;width:2.4rem;height:2.4rem;font-size:1.1rem;line-height:1;cursor:pointer}
.tp-navbtn:hover{border-color:#4A1D5E;color:#4A1D5E}
.tp-todaybtn{border:1px solid #4A1D5E;background:transparent;color:#4A1D5E;border-radius:999px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer}
.tp-todaybtn:hover{background:#4A1D5E;color:#fff}
.tp-dogfilter{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1rem}
.tp-dogchip{border:1px solid #d4c9b8;background:#fff;color:#1a1a2e;border-radius:999px;padding:.42rem .95rem;font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit}
.tp-dogchip:hover{border-color:#4A1D5E;color:#4A1D5E}
.tp-dogchip.on{background:#4A1D5E;border-color:#4A1D5E;color:#fff}
.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:#e8e2d5;color:#5a5a5a}
.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:#1a1a2e;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:#f2b95e;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,#a8841f);display:flex;align-items:center;justify-content:center;color:#1a1a2e;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:#6b5514}
.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:#6b5514;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(24,12,44,0.78);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:#256da6}
.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:var(--gold-deep);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:1}
.level-chip.bronze{background:#CD7F32;color:#1a1a2e}
.level-chip.silver{background:#8A8D8F;color:#1a1a2e}
.level-chip.gold{background:#C9A227;color:#1a1a2e}
.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:#1a7a3a}
.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;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}
.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}

/* Light cards on dark account pages: reset all text to dark (Ingra, Oct 7, 2026).
   .acct-main sets near-white text for the dark purple background; white .auth-card
   children inherit it unless given an explicit color. This block makes every
   text element inside a light card default to dark, so nothing renders
   white-on-white again. */
.auth-card{color:#1a1a2e}
.auth-card h1,.auth-card h2,.auth-card h3,.auth-card h4{color:#141032}
.auth-card p,.auth-card li,.auth-card label,.auth-card .lead,.auth-card .note{color:#3a3a4e}
.auth-card .empty-note{color:#4a4a5e;font-size:0.95rem}
.auth-card .item-sub{margin:0.15rem 0 0 !important;font-size:0.85rem !important;color:#1a1a2e !important}
.auth-card .item-label{margin:0;font-weight:600;color:#1a1a2e}
.auth-card a:not(.btn):not(.btn-ghost):not(.btn-sm){color:#5b4a9e}
.breed-card{color:#1a1a2e}
.breed-card h1,.breed-card h2,.breed-card h3,.breed-card h4{color:#141032}

.cta-strip{background:#f6f1de;border:1px solid #e8dcc0;border-radius:8px;padding:10px 14px;
  margin:0 0 1.5rem;font-size:14px;color:#3a3a4e;text-align:center}
.cta-strip a{font-weight:700;color:#5b4a9e}

.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:14px}
.photo-cell{position:relative;border:1px solid #e8e2d5;border-radius:10px;overflow:hidden;background:#fff}
.photo-cell img{width:100%;height:140px;object-fit:cover;display:block}
.photo-cell.is-primary{outline:2px solid #E3AE29}
.photo-badge{position:absolute;top:6px;left:6px;background:#E3AE29;color:#1a1a2e;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}
.photo-actions{display:flex;gap:6px;padding:6px;flex-wrap:wrap}
.photo-actions .btn-sm{font-size:12px;padding:4px 8px}
.upsell-note{font-size:13px;color:#6b6580;margin-top:10px}
.upsell-note a{color:#5b4a9e;font-weight:700}
/* Handler pitch */
.pitch-view h4{margin:14px 0 4px;color:#4A1D5E;font-size:15px}
.pitch-view h4:first-child{margin-top:0}
.pitch-view p{margin:0 0 10px;line-height:1.5}
.form-label{display:block;margin-bottom:12px;font-weight:600;font-size:14px}
.form-label textarea{margin-top:4px;width:100%}
.form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.form-note{font-size:13px;margin-top:8px}

.sports-cta-card{background:linear-gradient(135deg,#1a1a2e 0%,#2d1b4e 100%);color:#fff}
.sports-cta-card h3{color:#F6EDC9;margin-top:0}
.sports-cta-card p{color:#e8e2f5}

.quick-titles{margin-top:14px;padding:12px;background:#f9f6ef;border-radius:10px}
.quick-titles-label{font-size:13px;font-weight:700;color:#4A1D5E;margin:0 0 8px}
.quick-titles-row{display:flex;gap:8px;flex-wrap:wrap}
.quick-title-btn{font-weight:700;border-color:#E3AE29}
.quick-title-btn:hover{background:#E3AE29;color:#1a1a2e}
.quick-title-btn:disabled{opacity:.6}


/* Public sports resume (brag page) */
.resume-shell{max-width:680px;margin:0 auto;padding:0 16px}
.resume-hero{text-align:center;padding:40px 0 8px}
.resume-photo{width:180px;height:180px;object-fit:cover;border-radius:50%;border:4px solid #E3AE29;box-shadow:0 4px 18px rgba(26,26,46,.18)}
.resume-hero h1{font-family:Fraunces,serif;color:#1a1a2e;margin:16px 0 4px;font-size:32px}
.resume-breed{color:#6b6580;font-size:17px;margin:0}
.resume-section{margin:28px 0}
.resume-section h2{font-family:Fraunces,serif;color:#4A1D5E;font-size:22px;margin:0 0 14px}
.resume-chase{background:#fff;border:1px solid #e8e2d5;border-radius:12px;padding:14px 16px;margin-bottom:12px}
.resume-chase-head{margin-bottom:8px;font-size:16px}
.resume-target{font-weight:400;color:#6b6580}
.resume-bar{height:10px;background:#f0edff;border-radius:999px;overflow:hidden;margin-bottom:6px}
.resume-bar-fill{height:100%;background:linear-gradient(90deg,#E3AE29,#f5d76e);border-radius:999px}
.resume-progress-num{margin:0;font-size:14px;color:#444}
.resume-note{margin:6px 0 0;font-size:13.5px;color:#6b6580}
.resume-titles{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.resume-title{background:#1a1a2e;color:#F6EDC9;border-radius:10px;padding:12px;text-align:center}
.resume-title strong{display:block;font-size:18px}
.resume-date{display:block;font-size:12px;opacity:.75;margin-top:4px}
.resume-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.resume-cell{margin:0}
.resume-cell img{width:100%;height:150px;object-fit:cover;border-radius:10px;display:block}
.resume-cell figcaption{font-size:12.5px;color:#6b6580;margin-top:4px}
.resume-cta{text-align:center;background:linear-gradient(135deg,#1a1a2e 0%,#2d1b4e 100%);border-radius:16px;padding:36px 24px;margin:40px 0;color:#fff}
.resume-cta-kicker{color:#E3AE29;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 8px}
.resume-cta h2{font-family:Fraunces,serif;color:#F6EDC9;margin:0 0 8px;font-size:26px}
.resume-cta p{color:#e8e2f5;margin:0 0 16px}

.gch-ladder{display:flex;gap:4px;margin:12px 0;flex-wrap:wrap}
.gch-step{flex:1;min-width:80px;text-align:center;padding:10px 6px;border-radius:10px;background:#f4f1ea;border:1px solid #e8e2d5;position:relative}
.gch-step.reached{background:linear-gradient(135deg,#4A1D5E,#2d1b4e);border-color:#4A1D5E}
.gch-step.reached .gch-name,.gch-step.reached .gch-pts{color:#F6EDC9}
.gch-dot{display:block;width:12px;height:12px;border-radius:50%;background:#ccc;margin:0 auto 6px}
.gch-step.reached .gch-dot{background:#E3AE29}
.gch-name{display:block;font-size:12px;font-weight:700;color:#4A1D5E}
.gch-pts{display:block;font-size:11px;color:#5a5a5a}
.progress-wrap{margin:12px 0}
.progress-bar{height:12px;background:#eee;border-radius:999px;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,#7b2d8e,#E3AE29);border-radius:999px;transition:width .3s}
.progress-label{font-size:13px;color:#555;margin:6px 0 0}
.gch-complete{font-weight:700;color:#4A1D5E;margin:12px 0}
.gch-log{margin-top:12px}

.nohs-years{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.nohs-year{padding:8px 14px;border-radius:10px;background:#f4f1ea;border:1px solid #e8e2d5}
.nohs-year.current{background:linear-gradient(135deg,#1a1a2e,#2d1b4e);border-color:#4A1D5E}
.nohs-year-label{display:block;font-size:11px;color:#5a5a5a}
.nohs-year.current .nohs-year-label{color:#c9bfe8}
.nohs-year-pts{display:block;font-size:18px;font-weight:700;color:#4A1D5E}
.nohs-year.current .nohs-year-pts{color:#F6EDC9}


.junior-panel{margin-top:1rem}
.jr-card{border:1px solid #e8e2d5;border-radius:12px;background:#fff;padding:14px;margin-bottom:12px}
.jr-head{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.jr-actions{display:flex;gap:6px;flex-wrap:wrap}
.jr-badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}
.jr-level-novice{background:#f4f1ea;color:#4A1D5E;border:1px solid #d9cfe0}
.jr-level-open{background:#ede7f7;color:#4A1D5E;border:1px solid #b9a8d8}
.jr-level-master{background:linear-gradient(135deg,#4A1D5E,#2d1b4e);color:#F6EDC9;border:1px solid #4A1D5E}
.jr-num{font-size:12px;color:#5a5a5a;margin-left:6px}
.jr-master-line{font-weight:700;color:#4A1D5E;margin:10px 0 0;font-size:14px}
.jr-wins{margin-top:10px;border-top:1px dashed #e8e2d5;padding-top:10px}
.jr-form{margin-top:12px;padding:12px;background:#f9f6ef;border-radius:10px}
.jr-form-title{font-weight:700;color:#4A1D5E;margin:0 0 8px;font-size:14px}
.jr-form-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.jr-form-row .input{flex:1;min-width:140px}
.jr-checks{align-items:center;gap:16px}
.jr-checks .check{font-size:14px}
.jr-celebrate{background:linear-gradient(135deg,#4A1D5E,#2d1b4e);border-radius:12px;padding:16px;margin-bottom:12px;text-align:center}
.jr-celebrate-title{color:#F6EDC9;font-size:18px;font-weight:700;margin:0 0 6px}
.jr-celebrate-sub{color:#e8e2f5;font-size:14px;margin:0}

.fd-ladder{margin:28px 0}
.fd-ladder h2{color:#4A1D5E;margin-bottom:4px}
.fd-desc{color:#666;margin:0 0 12px}
.fd-step{text-decoration:none;transition:transform .15s}
.fd-step:hover{transform:translateY(-2px)}
.fd-step.is-next{outline:2px solid #E3AE29}
.fd-next-badge{display:inline-block;margin-top:4px;font-size:10px;font-weight:700;background:#E3AE29;color:#1a1a2e;padding:2px 8px;border-radius:999px}
.lede{font-size:18px;line-height:1.6;color:#333}
.cta-panel{background:linear-gradient(135deg,#1a1a2e,#2d1b4e);color:#fff;padding:28px;border-radius:14px;margin:32px 0}
.cta-panel h2{color:#F6EDC9;margin-top:0}
.cta-panel p{color:#e8e2f5}
.guide-links{columns:2;gap:24px;list-style:none;padding:0}
.guide-links li{margin-bottom:8px;break-inside:avoid}
.guide-links a{color:#5b4a9e;font-weight:600}
.content-narrow{max-width:760px;margin:0 auto;padding:24px 16px}

.tracker-placeholder{padding:4px 0}
.tp-example{border:1px dashed #c9bfa8;border-radius:10px;padding:14px;background:#faf8f3;opacity:.85}
.tp-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.tp-sport{font-weight:700;color:#4A1D5E;font-size:14px}
.tp-pct{font-size:12px;color:#5a5a5a;font-weight:600}
.tp-bar{height:8px;background:#e8e2d5;border-radius:4px;overflow:hidden;margin-bottom:8px}
.tp-fill{height:100%;background:linear-gradient(90deg,#E3AE29,#C9A227);border-radius:4px;transition:width .3s}
.tp-hint{margin:0;font-size:12.5px;color:#5a5a5a;font-style:italic}

.welcome-hero{padding:8px 0}
.welcome-hero h2{margin-top:0;color:#4A1D5E}
.welcome-steps{display:grid;gap:20px;margin-top:20px}
.welcome-step{display:flex;gap:14px;align-items:flex-start}
.ws-num{flex:none;width:32px;height:32px;border-radius:50%;background:#4A1D5E;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.welcome-step strong{font-size:16px;color:#1a1a2e}
.welcome-step p{margin:6px 0;color:#4A5478;font-size:14px}
.welcome-step .btn,.welcome-step .btn-ghost{margin-right:8px;margin-top:4px}

button.gch-step{font:inherit;cursor:pointer;text-align:center}
button.gch-step:hover{transform:translateY(-2px)}


.near-you-toggle{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.ny-pill{font:inherit;font-size:14px;font-weight:600;padding:8px 18px;border-radius:999px;border:2px solid #4A1D5E;background:#fff;color:#4A1D5E;cursor:pointer}
.ny-pill.is-on{background:#4A1D5E;color:#fff}
.ny-pill:hover{transform:translateY(-1px)}

main.dog-profile{max-width:860px;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}

@media (max-width:600px){
.guide-links{columns:1}
}

/* Site logo */
.logo{font-weight:800;font-size:20px;color:#fff;text-decoration:none;letter-spacing:-.5px}
.logo:hover{color:#F6EDC9}

.glance-lede{font-size:16px;line-height:1.6;color:#333;margin:0 0 16px}
.glance-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;background:#f8f6f1;border:1px solid #e8e2d5;border-radius:10px;padding:16px;margin:0 0 20px}
.glance-facts dt{font-weight:700;color:#4A1D5E;font-size:13px}
.glance-facts dd{margin:0;font-size:14px;color:#1a1a2e}
.fine-print{font-size:12.5px;color:#5a5a5a;line-height:1.5;border-top:1px solid #e8e2d5;padding-top:12px;margin-top:20px}
.muted{color:#5a5a5a}
@media (max-width:600px){
.glance-facts{grid-template-columns:1fr;gap:4px}
.glance-facts dt{margin-top:8px}
}

.fd-picker-overlay{position:fixed;inset:0;background:rgba(26,26,46,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}
.fd-picker-card{background:#fff;border-radius:14px;padding:24px;max-width:400px;width:100%;box-shadow:0 8px 32px rgba(0,0,0,.2)}
.fd-picker-card h3{margin:0 0 4px;color:#4A1D5E}
.fd-picker-sub{margin:0 0 16px;color:#5a5a5a;font-size:14px}
.fd-picker-dogs{display:grid;gap:8px;margin-bottom:16px}
.fd-picker-dog{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;border:2px solid #e8e2d5;border-radius:10px;background:#faf8f3;cursor:pointer;font:inherit;text-align:left}
.fd-picker-dog:hover{border-color:#4A1D5E;background:#f4f1ea}
.fd-picker-name{font-weight:700;color:#1a1a2e;font-size:15px}
.fd-picker-breed{font-size:13px;color:#5a5a5a}

.intent-banner{background:linear-gradient(135deg,#4A1D5E,#2d1b4e);color:#fff;border-radius:10px;padding:14px 16px;margin-bottom:16px;font-size:14px;line-height:1.5}
.intent-banner strong{color:#F6EDC9}

.checklist{display:grid;gap:10px}
.check-item{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid #e8e2d5;border-radius:10px;background:#faf8f3}
.check-item.done{opacity:.7;background:#f0f7f0;border-color:#d4e8d4}
.check-box{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid #4A1D5E;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;margin-top:2px}
.check-item.done .check-box{background:#1a7a3a;border-color:#1a7a3a}
.check-item:not(.done) .check-box{background:#fff}
.check-text strong{display:block;color:#1a1a2e;font-size:14px}
.check-text p{margin:4px 0 0;color:#5a5a5a;font-size:13px}
.check-text a{color:#4A1D5E;font-weight:600}


.acct-main .lead{color:#e8e2f5}
.acct-main p{color:#e8e2f5}
.acct-main .auth-card p{color:#1a1a2e}
.acct-main .auth-card .lead{color:#4a4a5e}



.acct-main .lead{color:#f0eaf8 !important}
.acct-main p{color:#e8e2f5}
.acct-main .panel-h2{color:#fff !important}
.acct-main .panel-h3{color:#f5d67b !important}
.acct-main .acct-pagehead h1{color:#fff !important}
/* Headers on white cards need darker purple */
.auth-card h2,.auth-card h3,.item-row h3{color:#4A1D5E !important}
.auth-card .panel-h2{color:#4A1D5E !important}

/* Ingra's color scheme (Oct 8, 2026): purple bg, gold permanent words, white dynamic words, gold buttons/frames */
.acct-main .panel-h2{color:#E3AE29 !important}
.acct-main .panel-h3{color:#E3AE29 !important}
.acct-main .acct-nav-label{color:#E3AE29 !important}
.acct-main .stat-label{color:#E3AE29 !important}
/* Dynamic content = white */
.acct-main .item-label,.acct-main .item-label a{color:#fff !important}
.acct-main .item-sub{color:#e8e2f5 !important}
.acct-main .stat-num{color:#fff !important}
.acct-main .empty-note{color:#d0c8e8 !important}
/* Gold frames */
.acct-main .auth-card{border:2px solid #C9A227 !important}
.acct-main .dash-panel{border:1px solid rgba(201,162,39,0.3) !important}
/* Gold buttons */
.btn,.btn-act{background:linear-gradient(135deg,#E3AE29,#C9A227) !important;color:#1a1a2e !important;border:0 !important;font-weight:700 !important}
.btn:hover,.btn-act:hover{filter:brightness(1.1)}

/* Correction: card content stays dark on white for readability */
.acct-main .auth-card .item-label,.acct-main .auth-card .item-label a{color:#1a1a2e !important}
.acct-main .auth-card .item-sub{color:#3a3a4e !important}
.acct-main .item-row .item-label,.acct-main .item-row .item-label a{color:#1a1a2e !important}
.acct-main .item-row .item-sub{color:#3a3a4e !important}

.picker-results .picker-item{color:#1a1a2e !important}
.picker-results .picker-item span{color:#1a1a2e !important}
.picker-results button{color:#1a1a2e !important}
#breed-pick-results{color:#1a1a2e}
#breed-pick-results .breed-opt{color:#1a1a2e !important;background:#fff !important}
#breed-pick-results .breed-opt span{color:#1a1a2e !important}

.picker-row{color:#1a1a2e !important;background:#fff !important}
.picker-row span{color:#1a1a2e !important}

/* Responsive QA fixes (Oct 8, 2026): mobile touch targets + small-screen grids */
@media (max-width: 640px) {
  /* Larger touch targets for small action buttons on mobile */
  .btn-act.is-remove, .btn-act.is-filter { padding: 0.55rem 0.85rem; font-size: 0.9rem; }
  /* Dog profile "Up next" stat grid: keep 3 cols but tighten for 360px */
  .drc-grid { gap: 0.3rem; }
  .drc-cell { padding: 0.3rem 0.2rem; }
  .drc-cell .v { font-size: 0.9rem; }
  /* Today page 3-col grid: tighten */
  .tp-grid { gap: 0.3rem; }
  /* Item rows: keep on one line, label shrinks, button stays visible */
  .item-row .item-main { min-width: 0; }
  .item-row .item-label { overflow: hidden; text-overflow: ellipsis; }
  .item-row .btn-act.is-remove { flex: none; }
  /* Stat cards: ensure readable on small screens */
  .stat-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
  /* Auth cards: reduce padding on mobile for more content width */
  .auth-card { padding: 1.1rem; }
  /* Headings: slightly smaller on mobile */
  .acct-pagehead h1 { font-size: 1.4rem; }
  .panel-h2 { font-size: 1.15rem; }
}


/* Headings on purple = gold */
.acct-main h1,.acct-main h2,.acct-main h3,
.acct-main .panel-h2,.acct-main .panel-h3,
.acct-main .acct-pagehead h1,
.acct-main .acct-nav-label,
.acct-main .stat-label{color:#E3AE29 !important}
/* Buttons = gold */
.acct-main .btn,.acct-main .btn-act,
.acct-main button.btn,.acct-main button.btn-act{
  background:linear-gradient(135deg,#E3AE29,#C9A227) !important;
  color:#1a1a2e !important;border:0 !important;font-weight:700 !important;
}
/* Tiles/cards = gold borders */
.acct-main .auth-card,.acct-main .dash-panel,
.acct-main .item-row,.acct-main .stat-card{
  border:1px solid rgba(201,162,39,0.4) !important;
}
/* Links on purple = gold */
.acct-main a:not(.btn):not(.btn-act){color:#E3AE29}

.tp-modeswitch{display:flex;gap:0.5rem;justify-content:center;margin:1rem 0 1.5rem}
.tp-modebtn{
  padding:0.7rem 1.8rem;border:2px solid #C9A227;background:transparent;
  color:#E3AE29;border-radius:999px;font-weight:700;font-size:1rem;cursor:pointer;
  transition:all 0.2s ease;
}
.tp-modebtn:hover{border-color:#E3AE29;transform:translateY(-1px)}
.tp-modebtn.is-active{
  background:linear-gradient(135deg,#E3AE29,#C9A227);color:#1a1a2e;border-color:#E3AE29;
  box-shadow:0 4px 12px rgba(227,174,41,0.3);
}
@media(max-width:640px){
  .tp-modebtn{padding:0.6rem 1.3rem;font-size:0.9rem}
}

.cal-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0}
.cal-navbtn{
  width:44px;height:44px;border-radius:50%;border:2px solid #C9A227;background:transparent;
  color:#E3AE29;font-size:1.5rem;font-weight:700;cursor:pointer;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
.cal-navbtn:hover{background:rgba(227,174,41,0.15)}
.cal-month{font-size:1.25rem;font-weight:700;color:#E3AE29;min-width:180px;text-align:center}
.cal-legend{display:flex;gap:1rem;justify-content:center;margin-bottom:0.75rem;font-size:0.85rem;color:#e8e2f5}
.cal-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:0.3rem;vertical-align:middle}
.cal-dot-saved{background:#E3AE29}
.cal-dot-plan{background:#9B7ED9;border:1px solid #E3AE29}
.cal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;
  background:rgba(0,0,0,0.2);padding:8px;border-radius:12px;border:1px solid rgba(201,162,39,0.3);
}
.cal-dow{
  text-align:center;font-size:0.7rem;font-weight:700;color:#E3AE29;padding:0.4rem 0;
  text-transform:uppercase;letter-spacing:0.05em;
}
.cal-day{
  aspect-ratio:1;min-height:44px;border-radius:8px;background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.08);color:#e8e2f5;font-size:0.85rem;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:pointer;position:relative;padding:2px;
}
.cal-day:hover{background:rgba(227,174,41,0.15);border-color:#C9A227}
.cal-day.is-other{opacity:0.3;cursor:default}
.cal-day.is-today{border:2px solid #E3AE29;font-weight:700}
.cal-day.is-selected{background:rgba(227,174,41,0.25);border-color:#E3AE29}
.cal-daynum{font-weight:600;line-height:1}
.cal-dots{display:flex;gap:3px;margin-top:3px}
.cal-dots .cal-dot{width:7px;height:7px;margin:0}
.cal-detail{margin-top:1rem}
.cal-detail .item-row{margin-bottom:0.5rem}
@media(max-width:640px){
  .cal-day{min-height:40px;font-size:0.75rem}
  .cal-month{font-size:1.1rem;min-width:140px}
  .cal-dow{font-size:0.6rem}
}

.cal-grid{background:#fff !important;border:1px solid #C9A227 !important}
.cal-dow{color:#4A1D5E !important}
.cal-day{background:#fff !important;border:1px solid #e0d8f0 !important;color:#1a1a2e !important}
.cal-day:hover{background:#fef9e7 !important;border-color:#C9A227 !important}
.cal-day.is-other{opacity:0.35}
.cal-day.is-today{border:2px solid #C9A227 !important;background:#fef9e7 !important}
.cal-day.is-selected{background:#fef3d0 !important;border-color:#E3AE29 !important}
.cal-daynum{color:#1a1a2e !important}
.cal-legend{color:#4a4a5e !important}
.cal-month{color:#4A1D5E !important}
.cal-navbtn{color:#4A1D5E !important;border-color:#4A1D5E !important}
.cal-navbtn:hover{background:rgba(74,29,94,0.1) !important}

.judge-dir-row .dash-actions{
  display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-top:0.75rem;
}
.judge-dir-row .dash-actions .btn-act{
  width:100%;text-align:center;padding:0.7rem 0.5rem;font-size:0.9rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.judge-dir-row{display:block !important}
.judge-dir-row .item-main{margin-bottom:0.25rem}
/* Follow button gets its own row, full width */
.judge-dir-row .judge-follow-wrap{margin-top:0.5rem}
.judge-dir-row .judge-follow-wrap .btn-act{width:100%}
@media(max-width:480px){
  .judge-dir-row .dash-actions{grid-template-columns:1fr 1fr;gap:0.4rem}
  .judge-dir-row .dash-actions .btn-act{font-size:0.82rem;padding:0.6rem 0.3rem}
}

form[data-tpa-search]{position:relative}
.search-suggest{
  position:absolute;top:100%;left:0;right:0;z-index:100;
  background:#fff;border:1px solid #C9A227;border-top:0;border-radius:0 0 12px 12px;
  box-shadow:0 8px 24px rgba(0,0,0,0.15);overflow:hidden;
}
.search-suggest[hidden]{display:none}
.search-suggest-item{
  display:block;padding:0.7rem 1rem;text-decoration:none;border-bottom:1px solid #f0ebe0;
}
.search-suggest-item:last-child{border-bottom:0}
.search-suggest-item:hover{background:#fef9e7}
.ssi-group{padding:0.45rem 1rem 0.25rem;font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:#8a6d1f;background:#faf6ea;border-bottom:1px solid #f0ebe0}
.ssi-name{display:block;font-weight:600;color:#1a1a2e;font-size:0.95rem}
.ssi-sub{display:block;font-size:0.8rem;color:#6b6480;margin-top:0.15rem}

/* Contrast fix: white cards need dark body text (was pale-on-white) */
.acct-main .auth-card .lead{color:#3a3a4e !important}
.acct-main .auth-card .note{color:#4a4a5e !important}
/* Request-type action cards */
.req-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem;margin:1rem 0}
.req-type-card{display:block;background:linear-gradient(135deg,#E3AE29,#C9A227);border-radius:12px;padding:1rem 1.1rem;text-decoration:none;transition:transform .15s ease,filter .15s ease}
.req-type-card strong{display:block;color:#1a1a2e;font-size:1.02rem}
.req-type-card span{display:block;color:#3a3018;font-size:0.85rem;margin-top:0.3rem;line-height:1.35}
.req-type-card:hover{filter:brightness(1.06);transform:translateY(-2px)}
@media(max-width:640px){.req-type-grid{grid-template-columns:1fr}}
/* Direct-request status chips */
.chip.accepted{background:#E3F0E8;color:#296F45;border:1px solid #BFDCCB}
.chip.declined{background:#FDECEA;color:#B3261E;border:1px solid #F0B9B4}
/* Available-dogs: photo + profile rows */
.avail-dog{display:flex;gap:0.8rem;align-items:center;margin:0.45rem 0}
.avail-dog img{width:56px;height:56px;object-fit:cover;border-radius:12px;border:2px solid #C9A227;flex:none}
.avail-nophoto{width:56px;height:56px;flex:none;border-radius:12px;background:#f2ecdd;display:flex;align-items:center;justify-content:center;font-size:1.6rem}
.avail-head{display:flex;gap:0.8rem;align-items:flex-start;justify-content:space-between}
/* Privacy notice (contact redaction) */
.privacy-note{background:#fef9e7;border:1px solid #C9A227;border-radius:10px;padding:0.7rem 1rem;color:#5c4a12;font-size:0.9rem;margin:0.6rem 0}

.tpa-help-fab{
  position:fixed;bottom:84px;right:24px;z-index:9999;
  width:60px;height:60px;border-radius:50%;border:0;cursor:pointer;
  background:linear-gradient(135deg,#E3AE29,#C9A227);color:#1a1a2e;
  font-size:1.6rem;font-weight:700;box-shadow:0 4px 16px rgba(0,0,0,0.25);
  display:flex;align-items:center;justify-content:center;
  transition:transform 0.2s ease;
}
.tpa-help-fab:hover{transform:scale(1.08)}
.tpa-help-panel{
  position:fixed;bottom:156px;right:24px;z-index:9999;
  width:360px;max-width:calc(100vw - 48px);height:480px;max-height:calc(100vh - 140px);
  background:#fff;border-radius:16px;border:2px solid #C9A227;
  box-shadow:0 12px 40px rgba(0,0,0,0.3);display:flex;flex-direction:column;overflow:hidden;
}
.tpa-help-panel[hidden]{display:none}
.tpa-help-head{
  background:linear-gradient(135deg,#4A1D5E,#2d1240);color:#E3AE29;
  padding:1rem;font-weight:700;display:flex;justify-content:space-between;align-items:center;
}
.tpa-help-head button{background:none;border:0;color:#E3AE29;font-size:1.3rem;cursor:pointer}
.tpa-help-msgs{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:0.75rem}
.tpa-help-msg{max-width:85%;padding:0.7rem 1rem;border-radius:12px;font-size:0.9rem;line-height:1.4}
.tpa-help-msg.bot{background:#f5f0ff;color:#1a1a2e;align-self:flex-start;border-bottom-left-radius:4px}
.tpa-help-msg.user{background:linear-gradient(135deg,#E3AE29,#C9A227);color:#1a1a2e;align-self:flex-end;border-bottom-right-radius:4px}
.tpa-help-input{display:flex;border-top:1px solid #e0d8f0;padding:0.75rem;gap:0.5rem}
.tpa-help-input input{flex:1;border:1px solid #C9A227;border-radius:8px;padding:0.6rem;font-size:0.9rem}
.tpa-help-input button{background:linear-gradient(135deg,#E3AE29,#C9A227);border:0;border-radius:8px;padding:0.6rem 1rem;font-weight:700;cursor:pointer;color:#1a1a2e}
@media(max-width:480px){
  .tpa-help-panel{right:12px;left:12px;width:auto;bottom:88px}
  .tpa-help-fab{right:16px;bottom:76px}
}

.growth-note{
  background:linear-gradient(135deg,#fef9e7,#fff8e1);border:1px solid #C9A227;
  border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.25rem;
}
.growth-note p{margin:0;color:#1a1a2e;font-size:0.92rem;line-height:1.5}
.growth-note a{color:#4A1D5E;font-weight:700}

.cal-day{justify-content:flex-start !important;align-items:stretch !important;padding:4px !important;min-height:80px !important}
.cal-daynum{align-self:flex-end;font-size:0.8rem;color:#6b6480;margin-bottom:2px}
.cal-bars{display:flex;flex-direction:column;gap:3px;flex:1;overflow:hidden}
.cal-bar{
  display:block;font-size:0.72rem;line-height:1.2;padding:4px 6px;border-radius:6px;
  text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  border:0;cursor:pointer;text-align:left;width:100%;
}
.cal-bar-saved{background:#fef3d0;color:#5a4a1a;border-left:3px solid #E3AE29}
.cal-bar-plan{background:#ede7f8;color:#2d1b4e;border-left:3px solid #4A1D5E}
.cal-bar:hover{filter:brightness(0.95)}
.cal-more{font-size:0.7rem;color:#6b6480;text-align:center}
.cal-month-list{margin-top:1.5rem}
.cal-month-list h3{color:#E3AE29;font-size:1.1rem;margin-bottom:0.75rem}
.cal-month-list .item-row{margin-bottom:0.5rem}
/* Ensure month label is visible */
.cal-month{display:inline-block !important;visibility:visible !important;color:#4A1D5E !important}
/* Calendar scrolls vertically with page */
#panel-sched .cal-grid{max-height:none;overflow:visible}
@media(max-width:640px){
  .cal-day{min-height:64px !important}
  .cal-bar{font-size:0;min-height:14px;padding:2px 4px} /* Bar only, tap to see name */
  .cal-bar-saved,.cal-bar-plan{min-height:12px}
  .cal-daynum{font-size:0.7rem}
}

/* Darker bars for readability */
.cal-bar-saved{background:#E3AE29 !important;color:#1a1a2e !important;border-left:3px solid #8a6d1a !important;font-weight:600}
.cal-bar-plan{background:#4A1D5E !important;color:#fff !important;border-left:3px solid #E3AE29 !important;font-weight:600}
/* Fix grid overflow: ensure it fits container */
.cal-grid{
  width:100% !important;max-width:100% !important;box-sizing:border-box !important;
  grid-template-columns:repeat(7,minmax(0,1fr)) !important;overflow:hidden !important;
}
.cal-day{
  min-width:0 !important;max-width:100% !important;box-sizing:border-box !important;
  overflow:hidden !important;min-height:70px !important;
}
.cal-bars{min-width:0;overflow:hidden}
.cal-bar{max-width:100%;box-sizing:border-box}
/* Day number stays visible */
.cal-daynum{flex-shrink:0}

/* Month label: gold on dark, always visible */
.cal-month{
  color:#E3AE29 !important;display:inline-block !important;
  visibility:visible !important;opacity:1 !important;
  font-size:1.3rem !important;font-weight:700 !important;
}
.cal-nav{background:transparent !important}
/* Fix horizontal overflow: grid must fit container */
#panel-sched{overflow:hidden !important;max-width:100% !important}
#panel-sched .cal-grid{
  display:grid !important;grid-template-columns:repeat(7,minmax(0,1fr)) !important;
  width:100% !important;max-width:100% !important;
  box-sizing:border-box !important;overflow:hidden !important;
  gap:2px !important;padding:4px !important;
}
#panel-sched .cal-day{
  min-width:0 !important;max-width:100% !important;
  box-sizing:border-box !important;overflow:hidden !important;
  padding:2px !important;
}
#panel-sched .cal-dow{
  min-width:0 !important;overflow:hidden !important;
  font-size:0.65rem !important;padding:0.3rem 0 !important;
}
#panel-sched .cal-bars{min-width:0 !important;overflow:hidden !important}
#panel-sched .cal-bar{
  min-width:0 !important;max-width:100% !important;
  box-sizing:border-box !important;overflow:hidden !important;
  font-size:0.65rem !important;padding:2px 4px !important;
}
/* Legend visibility */
.cal-legend{color:#e8e2f5 !important}

.cal-navbtn{
  color:#E3AE29 !important;border-color:#E3AE29 !important;
  background:transparent !important;
}
.cal-navbtn:hover{background:rgba(227,174,41,0.15) !important}

.cal-bars{gap:2px !important}
.cal-bar{border-radius:6px}
/* Connected on left: square left corners, pull left to touch neighbor */
.cal-bar.bar-cont-l{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;margin-left:-4px;padding-left:8px}
/* Connected on right: square right corners, pull right to touch neighbor */
.cal-bar.bar-cont-r{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;margin-right:-4px;padding-right:8px}
/* Day cells need no gap for bars to touch */
.cal-day{padding:2px !important}
#panel-sched .cal-grid{gap:1px !important}

.cal-bar[data-hide-text="1"]{font-size:0 !important;color:transparent !important}
.cal-bar[data-hide-text="1"] *{display:none !important}
/* First of span: rounded left, square right */
.cal-bar.bar-first{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;margin-right:-3px !important}
/* Middle: square both sides */
.cal-bar.bar-mid{border-radius:0 !important;margin-left:-3px !important;margin-right:-3px !important}
/* Last: square left, rounded right */
.cal-bar.bar-last{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;margin-left:-3px !important}
/* Center the label in the first bar */
.cal-bar.bar-first{text-align:center !important;font-weight:700}

.cal-dowrow{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;position:relative;margin-bottom:2px;min-height:90px}
.cal-week .cal-day{min-height:90px}
.cal-span{
  position:absolute;display:flex;align-items:center;justify-content:center;
  height:22px;border-radius:6px;font-size:0.72rem;font-weight:600;
  text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  padding:0 8px;z-index:2;box-sizing:border-box;
}
.cal-span-plan{background:#4A1D5E !important;color:#E3AE29 !important;border:1px solid #E3AE29}
.cal-span-saved{background:#E3AE29 !important;color:#1a1a2e !important;border:1px solid #8a6d1a}
.cal-span:hover{filter:brightness(1.1);z-index:3}

.item-actions{display:flex;gap:0.5rem;align-items:center;flex-shrink:0}
.btn-act.is-entered{
  background:linear-gradient(135deg,#4A1D5E,#2d1240);color:#E3AE29;
  border:1px solid #E3AE29;font-weight:700;white-space:nowrap;
}
.btn-act.is-entered:hover{background:linear-gradient(135deg,#5a2470,#3a1849)}
.btn-act.is-entered:disabled{opacity:0.5;cursor:wait}
@media(max-width:640px){
  .item-actions{flex-direction:column;gap:0.35rem}
  .btn-act.is-entered{font-size:0.8rem;padding:0.5rem 0.75rem}
}

.cal-bar-plan{background:#E3AE29 !important;color:#1a1a2e !important;border-left:3px solid #8a6d1a !important}
.cal-bar-saved{background:#4A1D5E !important;color:#E3AE29 !important;border-left:3px solid #E3AE29 !important}
/* Update legend dots to match */
.cal-dot-saved{background:#4A1D5E !important;border:1px solid #E3AE29}
.cal-dot-plan{background:#E3AE29 !important}

.auth-card .empty-note,
.white-card .empty-note,
.cal-month-list .empty-note,
#panel-sched .empty-note {
  color: #4a4a5e !important;
}
/* Keep light purple for empty notes directly on purple backgrounds */
.dash-panel > .empty-note {
  color: #b9a9dd !important;
}

.cb-income-card { color: #f4f1ff !important; }
.cb-income-card .cb-income-label { color: #E3AE29 !important; }
.cb-income-card .cb-income-num { color: #ffffff !important; }
.cb-income-card .cb-income-note,
.cb-income-card .cb-income-sub { color: #cfc6f5 !important; }

@media (max-width: 640px) {
  .tpa-help-panel {
    width: 300px !important;
    max-width: calc(100vw - 32px) !important;
    height: 320px !important;
    max-height: 45vh !important;
    bottom: 90px !important;
    right: 12px !important;
    left: auto !important;
  }
  .tpa-help-msgs { padding: 0.6rem; gap: 0.4rem; }
  .tpa-help-msg { font-size: 0.82rem; padding: 0.5rem 0.7rem; }
  .tpa-help-head { padding: 0.6rem 0.8rem; font-size: 0.9rem; }
  .tpa-help-input { padding: 0.6rem; }
  .tpa-help-input input { font-size: 0.85rem; padding: 0.5rem; }
}

.cdog-modal-veil{position:fixed;inset:0;background:rgba(20,10,40,.55);z-index:9998;display:flex;align-items:center;justify-content:center;padding:1rem}
.cdog-modal{background:#fff;border-radius:14px;max-width:26rem;width:100%;padding:1.4rem;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.cdog-modal h3{margin:0 0 .6rem;color:#2d1b4e;font-size:1.2rem}
.cdog-modal p{color:#4a4a5e;margin:.4rem 0 1.1rem;line-height:1.5}
.cdog-modal .btn-row{display:flex;flex-direction:column;gap:.5rem;align-items:stretch}
.cdog-modal .btn,.cdog-modal .btn-ghost{width:100%;text-align:center}
.cdog-modal .linklike{align-self:center;margin-top:.25rem}

/* ============================================================
   DEFINITIVE CONTRAST SYSTEM (Ingra, Oct 8, 2026)
   One source of truth. No more whack-a-mole.
   
   RULE 1: On dark purple backgrounds → gold headings, white body, light muted
   RULE 2: On white/light backgrounds → dark headings, dark body
   RULE 3: Light purple text (#b9a9dd, #cfc6f5) ONLY on dark backgrounds
   RULE 4: Dark text (#1a1a2e, #4a4a5e) ONLY on light backgrounds
   ============================================================ */

/* --- Dark backgrounds: purple panels, cards, sections --- */
.dash-panel,
.cb-income-card,
.auth-card.dark,
.tpa-help-head {
  color: #ffffff;
}
.dash-panel h1, .dash-panel h2, .dash-panel h3,
.cb-income-card h1, .cb-income-card h2, .cb-income-card h3 {
  color: #E3AE29;
}
.dash-panel .empty-note,
.cb-income-card .empty-note {
  color: #cfc6f5 !important;
}

/* --- White/light backgrounds: cards, panels, lists --- */
.auth-card:not(.dark),
.white-card,
.cal-month-list,
.item-row {
  color: #4a4a5e;
}
.auth-card:not(.dark) h1, .auth-card:not(.dark) h2, .auth-card:not(.dark) h3,
.white-card h1, .white-card h2, .white-card h3 {
  color: #1a1a2e;
}
.auth-card:not(.dark) .empty-note,
.white-card .empty-note,
.cal-month-list .empty-note,
.item-row .empty-note {
  color: #4a4a5e !important;
}

/* --- Safety: never light-on-light or dark-on-dark --- */
.auth-card:not(.dark) [style*="color:#b9a9dd"],
.auth-card:not(.dark) [style*="color:#cfc6f5"],
.white-card [style*="color:#b9a9dd"],
.white-card [style*="color:#cfc6f5"] {
  color: #4a4a5e !important;
}

/* Profile field values: dark on white (Ingra, Oct 8, 2026) */
.pref-summary strong { color: #1a1a2e !important; }
.pref-summary .note,
.pref-summary p[data-pref-value] {
  color: #4a4a5e !important;
}

/* Expanded preference forms: dark text on white (Ingra, Oct 8, 2026) */
.pref-form { color: #4a4a5e !important; }
.pref-form label { color: #1a1a2e !important; }
.pref-form p { color: #4a4a5e !important; }
.pref-form .note { color: #4a4a5e !important; }

/* Subscription row: match other pref-rows (Ingra, Oct 8, 2026) */
.pref-row[data-pref="subscription"] .tier-card {
  border: none;
  background: transparent;
  padding: 0 1.1rem 1rem !important;
  margin: 0;
}
.pref-row[data-pref="subscription"] .tier-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #1a1a2e;
  margin: 0.5rem 0 0.25rem;
}

/* Subscription details separator (Ingra, Oct 8, 2026) */
.pref-row[data-pref="subscription"] .tier-card {
  border-top: 1px solid var(--line);
  margin-top: 0.5rem;
  padding-top: 1rem !important;
}

/* Gap between pref rows (Ingra, Oct 8, 2026) */
.pref-row[data-pref="subscription"] {
  margin-top: 0.75rem;
}

/* Loading states (Ingra, Oct 10, 2026): subtle spinner for search/filter operations */
.tpa-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 2rem 1rem;
  color: #6B5B8E;
  font-size: 0.95rem;
}
.tpa-spinner {
  width: 22px;
  height: 22px;
  border: 3px solid #E8E0F5;
  border-top-color: #6B21A8;
  border-radius: 50%;
  animation: tpa-spin 0.7s linear infinite;
  flex-shrink: 0;
}
@keyframes tpa-spin {
  to { transform: rotate(360deg); }
}
.tpa-skeleton {
  background: linear-gradient(90deg, #F0EAF8 25%, #E4D9F2 50%, #F0EAF8 75%);
  background-size: 200% 100%;
  animation: tpa-shimmer 1.2s ease-in-out infinite;
  border-radius: 8px;
  min-height: 72px;
  margin-bottom: 0.75rem;
}
@keyframes tpa-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Search history (Ingra, Oct 10, 2026) */
.search-suggest-hist-label {
  padding: 0.6rem 1rem 0.3rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #8A7AA8;
  font-weight: 700;
}
.search-suggest-item .hist-icon {
  margin-right: 0.4rem;
  opacity: 0.6;
}
.search-suggest-clear {
  display: block;
  width: 100%;
  padding: 0.6rem 1rem;
  background: none;
  border: none;
  border-top: 1px solid #f0ebe0;
  color: #8A7AA8;
  font-size: 0.85rem;
  text-align: center;
  cursor: pointer;
}
.search-suggest-clear:hover {
  background: #F8F4EC;
  color: #6B21A8;
}

/* Sort controls (Ingra, Oct 10, 2026) */
.shows-sort-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0.75rem 0;
  font-size: 0.9rem;
  color: #EDE6F5;
}
.shows-sort-row[hidden] {
  display: none;
}
.shows-sort-row select {
  padding: 0.4rem 0.6rem;
  border: 1px solid #C9A227;
  border-radius: 8px;
  background: #fff;
  font-size: 0.9rem;
}

/* Newsletter opt-in banner (Ingra, Oct 10, 2026) */
.nl-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: linear-gradient(135deg, #2D1B4E 0%, #4A2C7A 100%);
  color: #fff;
  border-radius: 12px;
  padding: 1rem 1.25rem;
  margin: 0 0 1.25rem;
}
.nl-banner[hidden] { display: none; }
.nl-banner-text strong { display: block; font-size: 1.05rem; margin-bottom: 0.15rem; }
.nl-banner-text span { font-size: 0.9rem; color: #EDE6F5; }
.nl-banner-actions { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.nl-banner .btn-sm { padding: 0.5rem 1rem; font-size: 0.9rem; }
.nl-dismiss {
  background: transparent;
  border: 0;
  color: #CFC3E0;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 50%;
}
.nl-dismiss:hover { color: #fff; background: rgba(255,255,255,0.1); }
@media (max-width: 600px) {
  .nl-banner { flex-direction: column; align-items: stretch; text-align: center; }
  .nl-banner-actions { justify-content: center; }
}

/* ===== Contrast fixes (Oct 21, 2026): WCAG AA text discipline =====
   Light brand purples/golds are for decoration and dark backgrounds.
   Text on light backgrounds uses the deep, AA-passing shades. */
.hero .kicker, .dash-panel .kicker { color: var(--gold-light); }
.hero .back-link a, .acct-main .back-link a, .dash-panel .back-link a { color: var(--gold-light); }
.hero .back-btn, .acct-main .back-btn, .dash-panel .back-btn { color: var(--gold-light); }
.site-footer a { color: #C9CFE6; }
.site-footer a:hover { color: var(--gold-light); }
.callout.tip, .callout.warn, .callout.warning { color: var(--ink); }
.hero .lede { color: #E8E2F5; }
.share-sheet > p { color: #fff; }
.share-sheet .share-links { color: #fff; }
.share-sheet .share-links a { color: var(--gold-light); }
.cta-box a:not(.btn) { color: var(--gold-light); }
.acct-main .auth-card h3, .acct-main .white-card h3 { color: #8A6414 !important; }
.acct-main .auth-card .panel-h2, .acct-main .white-card .panel-h2 { color: #4A1D5E !important; }
.acct-main .tp-date { color: #fff; }
.acct-main .tp-todaybtn { color: var(--gold-light); border-color: rgba(232,199,102,.65); }
.acct-main .tp-todaybtn:hover { color: #fff; }

/* ===== Contrast fixes part 2 (Oct 21, 2026): article spotlight heroes ===== */
.spotlight-hero .kicker { color: var(--gold-light); }
.spotlight-hero .lede { color: #E8E2F5; }
.spotlight-hero .back-btn, .spotlight-hero .back-link a { color: var(--gold-light); }

/* ---------- Phone-width audit fixes (Oct 24, 2026) ----------
   Found by loading all 1,076 pages at 390px (iPhone) and 360px (Android)
   and measuring every element past the right edge. Root causes, not
   symptoms: (1) dl.kv / .fact-grid stacking rules sit EARLY in this file
   and are overridden by later same-specificity rules, so show-page
   definition lists and fact boxes stayed two-column on phones and their
   min-content forced the columns past the viewport (body overflow-x is
   clipped, so the overflow was invisible and unreachable — the same
   failure mode as the Oct 24 doc-tile nowrap). (2) The sticky email-bar
   input kept a fixed 16rem width, so its Sign up button stuck out 2px on
   360px screens. (3) The fixed email bar ignored the iPhone home
   indicator. These late rules win the cascade disputes. */
.fact-grid > *, dl.kv > * { min-width: 0; }
.fact-grid dd, dl.kv dd, .fact-grid .fact { overflow-wrap: anywhere; }
@media (max-width: 560px) {
  dl.kv, .fact-grid { grid-template-columns: 1fr; }
}
.email-bar { padding-bottom: calc(0.7rem + env(safe-area-inset-bottom)); }
.email-bar-form .input { flex: 1 1 auto; min-width: 0; width: auto; }
.email-bar-form .btn { flex-shrink: 0; }
/* iPhone zooms the page on focus for inputs under 16px; the footer
   newsletter input was 0.85rem and the club-filter search/select were
   15px. Email-bar and main search inputs are 16px already and are left
   alone. */
.news-form .input { font-size: 16px; }
.club-filters input[type="search"], .club-filters select { font-size: 16px; }
@media (max-width: 400px) {
  .site-nav { gap: 0.5rem; }
  .site-nav a { font-size: 0.8rem; }
}

/* Phone-width audit follow-up (Oct 24, 2026): Beverly Hills 2027 @360px
   overflowed 11px from its "more about" facts: the host-club value holds
   a long unbroken domain (kennelclubofbeverlyhills.com) whose min-content
   forced the 1fr column past the viewport. Let values break anywhere. */
.more-about-facts > div > * { min-width: 0; }
.more-about-facts dd { overflow-wrap: anywhere; }
