@font-face {
  font-family: Newsreader;
  src: url("../fonts/Newsreader-Italic-latin-ext.woff2") format("woff2");
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face {
  font-family: Newsreader;
  src: url("../fonts/Newsreader-Italic-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face {
  font-family: Newsreader;
  src: url("../fonts/Newsreader-Roman-latin-ext.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face {
  font-family: Newsreader;
  src: url("../fonts/Newsreader-Roman-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face {
  font-family: "Public Sans";
  src: url("../fonts/PublicSans-Italic-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face {
  font-family: "Public Sans";
  src: url("../fonts/PublicSans-Italic-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face {
  font-family: "Public Sans";
  src: url("../fonts/PublicSans-Roman-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face {
  font-family: "Public Sans";
  src: url("../fonts/PublicSans-Roman-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face {
  font-family: "Geist Mono";
  src: url("../fonts/GeistMono-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap
}
:root {
  --color-primary: #eb6834;
  --color-secondary: #2a78d6;
  --color-tertiary: #7c6425;
  --color-on-primary: #2b1200;
  --color-accent: #b8421a;
  --color-accent-hover: #9f3612;
  --color-on-accent: #ffffff;
  --color-danger: #b3261e;
  --color-danger-hover: #971f18;
  --color-on-danger: #ffffff;
  --chart-1: #eb6834;
  --chart-2: #2a78d6;
  --chart-3: #0f8a62;
  --chart-4: #4a3aa7;
  --chart-5: #d55181;
  --chart-6: #b87800;
  --chart-7: #e34948;
  --chart-8: #008300;
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-surface-alt: #f6f6f6;
  --color-text: #141414;
  --color-text-muted: #5c5c5c;
  --color-border: #e7e7e7;
  --color-border-strong: #b5b5b5;
  --color-input-border: #8a8a8a;
  --color-link: var(--color-text);
  --color-focus: #141414;
  --color-ink: #141414;
  --color-on-ink: #ffffff;
  --color-ink-hover: #333333;
  --color-save: #1d6b44;
  --color-good: #1d6b44;
  --radius-lg: 0.5rem;
  --radius-md: 0.375rem;
  --radius-sm: 0.375rem;
  --radius-pill: 999px;
  --shadow-card: none;
  --max-width: 72rem;
  --font-sans: "Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-serif: "Newsreader",Georgia,"Times New Roman",serif;
  --font-mono: "Geist Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  color-scheme: light
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme=light]) {
    --color-primary: #d95926;
    --color-secondary: #3987e5;
    --color-tertiary: #c9a24a;
    --color-accent: #f07a45;
    --color-accent-hover: #f58f61;
    --color-on-accent: #1d1a17;
    --color-danger: #f08a80;
    --color-danger-hover: #f4a39b;
    --color-on-danger: #1d1a17;
    --chart-1: #d95926;
    --chart-2: #3987e5;
    --chart-3: #199e70;
    --chart-4: #9085e9;
    --chart-5: #d55181;
    --chart-6: #c98500;
    --chart-7: #e66767;
    --chart-8: #008300;
    --color-bg: #131110;
    --color-surface: #1b1917;
    --color-surface-alt: #25221f;
    --color-text: #f3efea;
    --color-text-muted: #bdb4ab;
    --color-border: #2e2a26;
    --color-border-strong: #3d3833;
    --color-input-border: #8f867d;
    --color-focus: #f3efea;
    --color-ink: #f3efea;
    --color-on-ink: #131110;
    --color-ink-hover: #ffffff;
    --color-save: #4fb07c;
    --color-good: #5cc28e;
    --shadow-card: 0 0 0 1px rgba(0, 0, 0, 0.2);
    color-scheme: dark
  }
}
:root[data-theme=dark] {
  --color-primary: #d95926;
  --color-secondary: #3987e5;
  --color-tertiary: #c9a24a;
  --color-accent: #f07a45;
  --color-accent-hover: #f58f61;
  --color-on-accent: #1d1a17;
  --color-danger: #f08a80;
  --color-danger-hover: #f4a39b;
  --color-on-danger: #1d1a17;
  --chart-1: #d95926;
  --chart-2: #3987e5;
  --chart-3: #199e70;
  --chart-4: #9085e9;
  --chart-5: #d55181;
  --chart-6: #c98500;
  --chart-7: #e66767;
  --chart-8: #008300;
  --color-bg: #131110;
  --color-surface: #1b1917;
  --color-surface-alt: #25221f;
  --color-text: #f3efea;
  --color-text-muted: #bdb4ab;
  --color-border: #2e2a26;
  --color-border-strong: #3d3833;
  --color-input-border: #8f867d;
  --color-focus: #f3efea;
  --color-ink: #f3efea;
  --color-on-ink: #131110;
  --color-ink-hover: #ffffff;
  --color-save: #4fb07c;
  --color-good: #5cc28e;
  --shadow-card: 0 0 0 1px rgba(0, 0, 0, 0.2);
  color-scheme: dark
}
* {
  box-sizing: border-box
}
[hidden] {
  display: none!important
}
.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
}
html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: 5.5rem;
  scroll-padding-bottom: 6.5rem
}
::placeholder {
  color: var(--color-text-muted);
  opacity: 1
}
.skip-link {
  position: absolute;
  left: .75rem;
  top: -4rem;
  z-index: 1100;
  padding: .6rem 1rem;
  background: var(--color-ink);
  color: var(--color-on-ink);
  font-weight: 600;
  border-radius: var(--radius-sm);
  text-decoration: none
}
.skip-link:focus {
  top: .75rem;
  color: var(--color-on-ink);
  outline: 2px solid var(--color-focus);
  outline-offset: 2px
}
main:focus {
  outline: 0
}
@media (prefers-reduced-motion:reduce) {
  *,
  ::after,
  ::before {
    animation-duration: 0s!important;
    animation-iteration-count: 1!important;
    transition-duration: 0s!important;
    scroll-behavior: auto!important
  }
}
body {
  margin: 0;
  font-family: var(--font-sans);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden
}
h1,
h2,
h3,
h4 {
  font-weight: 650;
  letter-spacing: -.01em;
  line-height: 1.2;
  text-wrap: balance
}
h1,
h2,
h3 {
  font-family: var(--font-serif);
  font-weight: 450;
  letter-spacing: -.015em;
  line-height: 1.15;
  font-variant-numeric: lining-nums
}
h3 {
  font-weight: 500
}
li,
p {
  text-wrap: pretty
}
.num,
.profile-stats,
table {
  font-variant-numeric: tabular-nums
}
:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px
}
img,
svg {
  max-width: 100%;
  display: block
}
a {
  color: var(--color-link);
  text-decoration: underline;
  text-decoration-color: var(--color-border-strong);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  transition: text-decoration-color .15s,color .15s
}
a:hover {
  color: var(--color-link);
  text-decoration-color: var(--color-accent)
}
.container {
  max-width: var(--max-width);
  margin-inline: auto;
  padding-inline: 1.5rem
}
.site-header {
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
  position: sticky;
  top: 0;
  z-index: 10
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: 1.1rem;
  gap: 1rem
}
.brand {
  display: flex;
  align-items: center;
  gap: .6rem;
  text-decoration: none;
  color: var(--color-text);
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 1.55rem;
  line-height: 1
}
.brand svg {
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0
}
.brand .brand-mark {
  width: 1.5rem;
  height: 1.9rem
}
.brand-mark .pin {
  fill: var(--color-accent)
}
.brand-mark .fork {
  fill: var(--color-on-accent)
}
.brand-name {
  font-weight: 500;
  letter-spacing: -.01em
}
.brand-out {
  color: inherit
}
.nav-toggle {
  display: none;
  background: 0 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: .4rem .55rem;
  cursor: pointer;
  color: var(--color-text)
}
.nav-toggle svg {
  width: 1.4rem;
  height: 1.4rem
}
.theme-toggle {
  order: 3;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: 0 0;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-pill);
  padding: .35rem .8rem;
  font: inherit;
  font-size: .85rem;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer
}
.theme-toggle:hover {
  background: var(--color-surface-alt)
}
.theme-toggle svg {
  width: 1.1rem;
  height: 1.1rem
}
.theme-toggle .icon-sun {
  display: none
}
:root[data-theme=dark] .theme-toggle .icon-sun {
  display: block
}
:root[data-theme=dark] .theme-toggle .icon-moon {
  display: none
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme=light]) .theme-toggle .icon-sun {
    display: block
  }
  :root:not([data-theme=light]) .theme-toggle .icon-moon {
    display: none
  }
}
.site-nav ul {
  display: flex;
  list-style: none;
  gap: 1.6rem;
  margin: 0;
  padding: 0
}
.site-nav a {
  text-decoration: none;
  color: var(--color-text);
  font-weight: 450;
  font-size: .95rem
}
.site-nav a[href="signin.html"] {
  display: inline-block;
  padding: .4rem 1rem;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-pill)
}
.site-nav a[href="signin.html"]:hover {
  border-color: var(--color-text);
  color: var(--color-text)
}
.site-nav a:hover {
  color: var(--color-accent)
}
.site-nav a[aria-current=page] {
  color: var(--color-text);
  text-decoration: underline;
  text-decoration-color: var(--color-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.45em
}
.link-button {
  background: 0 0;
  border: none;
  padding: 0;
  font: inherit;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer
}
.link-button:hover {
  color: var(--color-accent)
}
.admin-view-toggle-bar .container {
  display: flex;
  justify-content: flex-end;
  padding-block: 0.4rem
}
.admin-view-toggle {
  background: var(--color-surface);
  border: 1px solid var(--color-input-border);
  border-radius: var(--radius-sm);
  padding: .3rem .7rem;
  font: inherit;
  font-size: .85rem;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  transition: background .15s
}
.admin-view-toggle:hover {
  background: var(--color-surface-alt)
}
.apple-signin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-width: 13.5rem;
  min-height: 2.5rem;
  padding: .5rem 1rem;
  border: 1px solid #000;
  border-radius: 4px;
  background: #000;
  color: #fff;
  font: inherit;
  font-weight: 500;
  cursor: pointer
}
.apple-signin-btn:disabled {
  opacity: .6;
  cursor: default
}
.apple-signin-btn:focus-visible {
  outline: 2px solid var(--color-text);
  outline-offset: 2px
}
:root:not([data-theme=light]) .apple-signin-btn {
  background: #fff;
  color: #000;
  border-color: #fff
}
:root[data-theme=light] .apple-signin-btn {
  background: #000;
  color: #fff;
  border-color: #000
}
.auth-not-configured {
  font-size: .85rem;
  color: var(--color-text-muted);
  font-style: italic
}
@media (max-width:640px) {
  .theme-toggle {
    order: 0;
    margin-left: auto
  }
  .nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center
  }
  .site-nav {
    display: none;
    width: 100%
  }
  .site-nav.is-open {
    display: block
  }
  .site-header .container {
    flex-wrap: wrap
  }
  .site-nav ul {
    flex-direction: column;
    gap: 0;
    border-top: 1px solid var(--color-border);
    margin-top: .75rem;
    padding-top: .5rem
  }
  .site-nav li {
    padding-block: 0.6rem
  }
}
.hero {
  padding-block: 4.5rem 2.5rem;
  text-align: left
}
.hero-code {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.1rem;
  color: var(--color-accent);
  font-variant-numeric: lining-nums
}
.hero h1 {
  font-size: clamp(2.25rem, 5.5vw, 3.75rem);
  line-height: 1.04;
  letter-spacing: -.02em;
  max-width: 16ch;
  margin: .5rem 0 1.25rem
}
.hero p.lede {
  max-width: 38rem;
  margin-inline: 0;
  margin-bottom: 2rem;
  color: var(--color-text-muted)
}
.eyebrow,
.section-label {
  margin: 0 0 .75rem;
  font-family: var(--font-sans);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-text-muted)
}
.is-muted {
  color: var(--color-text-muted)
}
.is-strong {
  font-weight: 600
}
.home-hero {
  padding-block: 5.5rem 0
}
.home-hero h1 {
  margin: 0;
  max-width: 15ch;
  font-size: clamp(2.5rem, 6.4vw, 4.5rem);
  line-height: 1.02;
  letter-spacing: -.02em
}
.home-lede {
  margin: 2rem 0 0;
  max-width: 34em;
  font-size: 1.18rem;
  color: var(--color-text-muted)
}
.home-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.75rem;
  margin-top: 2.25rem
}
.home-actions .btn {
  min-height: 3rem;
  padding-inline: 1.6rem;
  font-size: 1rem
}
#homepage-cta-slot {
  display: contents
}
.text-link {
  text-underline-offset: 0.3em
}
.home-note {
  margin: 1rem 0 0;
  font-size: .88rem;
  color: var(--color-text-muted)
}
.sample-report {
  margin: 5.5rem 0 0;
  padding: 1.1rem 0 1.75rem;
  border-top: 2px solid var(--color-text);
  border-bottom: 1px solid var(--color-border)
}
.sample-report-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: .5rem 1rem
}
.sample-report-title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.5rem
}
.menu-entry-tag,
.sample-report-meta {
  margin: 0;
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  white-space: nowrap
}
.sample-report-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(13rem,100%),1fr));
  gap: 1.5rem;
  margin: 1.75rem 0 0
}
.sample-report-kpis dt {
  font-size: .88rem;
  color: var(--color-text-muted)
}
.sample-report-kpis dd {
  margin: .25rem 0 0;
  font-family: var(--font-serif);
  font-size: 3rem;
  line-height: 1;
  font-variant-numeric: lining-nums tabular-nums
}
.sample-report-kpis small {
  font-size: 1.35rem;
  color: var(--color-text-muted)
}
.sample-report-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 2.25rem;
  font-size: .95rem
}
.sample-report-table caption {
  text-align: left;
  font-size: .88rem;
  color: var(--color-text-muted);
  padding-bottom: .5rem
}
.sample-report-table td,
.sample-report-table th {
  padding: .75rem 0;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  font-weight: 400
}
.sample-report-table thead th {
  font-size: .8rem;
  font-weight: 500;
  color: var(--color-text-muted)
}
.sample-report-table td:nth-child(2) {
  width: 55%;
  padding-inline: 1.5rem
}
.sample-report-table .r {
  text-align: right;
  width: 5.5rem
}
.meter {
  display: block;
  height: 6px;
  border-radius: 3px;
  background: var(--color-border);
  overflow: hidden
}
.meter > span {
  display: block;
  height: 100%;
  border-radius: 3px;
  background: var(--chart-1)
}
.meter-solid {
  height: 10px;
  border-radius: 5px;
  background: 0 0
}
.meter-solid > span {
  border-radius: 5px
}
.meter-gray > span {
  background: var(--color-text-muted);
  opacity: .55
}
.home-section {
  padding-top: 7rem
}
.home-section > h2 {
  margin: 0 0 3rem;
  font-size: clamp(1.9rem, 3.6vw, 2.5rem)
}
.pictures {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(19rem,100%),1fr));
  gap: 3rem 2rem
}
.picture {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0
}
.picture-art {
  background: var(--color-surface-alt);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  min-height: 13rem;
  display: grid;
  align-content: center;
  gap: .85rem;
  font-size: .82rem;
  font-variant-numeric: tabular-nums
}
.pic-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem
}
.pic-title {
  font-family: var(--font-serif);
  font-size: 1.25rem
}
.pic-row {
  display: grid;
  grid-template-columns: 5.75rem minmax(0,1fr) 1.9rem;
  align-items: center;
  gap: .6rem
}
.pic-row > :last-child {
  text-align: right
}
.pic-row-wide {
  grid-template-columns: 4rem minmax(0,1fr) 1.9rem;
  font-size: .9rem
}
.pic-foot {
  font-size: .82rem
}
.pic-days {
  display: flex;
  align-items: flex-end;
  gap: .6rem
}
.pic-days > div {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  font-size: .75rem;
  color: var(--color-text-muted)
}
.pic-days > div > span {
  width: 100%;
  border-radius: 3px 3px 0 0;
  background: var(--color-text-muted);
  opacity: .45
}
.pic-days > .is-peak > span {
  background: var(--chart-1);
  opacity: 1
}
.menu-entry h3 {
  margin: 0;
  font-size: 1.5rem;
  white-space: nowrap
}
.menu-entry-head {
  display: flex;
  align-items: baseline;
  gap: .75rem
}
.menu-entry-leader {
  flex: 1;
  min-width: 1.5rem;
  border-bottom: 1px dotted var(--color-border-strong);
  transform: translateY(-.35rem)
}
.menu-entry p {
  margin: .5rem 0 0;
  max-width: 32em;
  color: var(--color-text-muted)
}
.menu-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(18rem,100%),1fr));
  gap: 2rem
}
.menu-grid .menu-entry h3 {
  font-size: 1.3rem
}
.menu-grid .menu-entry p {
  font-size: .95rem
}
.also-included {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--color-border)
}
.quote-section {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,2fr);
  gap: 2rem 4rem;
  align-items: start
}
.quote-section > h2.section-label {
  margin-top: .6rem
}
.pull-quote {
  margin: 0;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  line-height: 1.25;
  letter-spacing: -.01em;
  text-wrap: balance
}
.quote-body {
  margin: 1.75rem 0 0;
  max-width: 36em
}
.app-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  padding-block: 2.5rem;
  border-block: 1px solid var(--color-border)
}
.app-strip h2 {
  margin: 0;
  font-size: 1.75rem
}
.app-strip p {
  margin: .4rem 0 0
}
.store-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem
}
@media (max-width:860px) {
  .home-hero {
    padding-top: 3.5rem
  }
  .sample-report {
    margin-top: 3.5rem
  }
  .home-section {
    padding-top: 4.5rem
  }
  .quote-section {
    grid-template-columns: minmax(0,1fr)
  }
  .sample-report-table td:nth-child(2) {
    width: 35%;
    padding-inline: 0.75rem
  }
}
.ruled-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: .5rem 1.5rem;
  padding-top: 1.1rem;
  margin-bottom: 2.5rem;
  border-top: 2px solid var(--color-text)
}
.ruled-head h2 {
  margin: 0;
  font-size: clamp(1.75rem, 3.4vw, 2.5rem)
}
.btn-lg {
  min-height: 3rem;
  padding-inline: 1.6rem;
  font-size: 1rem
}
.pic-map {
  grid-template-columns: 1rem minmax(0,1fr);
  grid-template-rows: minmax(9.5rem,1fr) auto;
  gap: .4rem;
  align-content: stretch
}
.pic-map-y {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  text-align: center;
  font-size: .72rem;
  color: var(--color-text-muted)
}
.pic-map-x {
  grid-column: 2;
  text-align: center;
  font-size: .72rem;
  color: var(--color-text-muted)
}
.pic-map-plot {
  position: relative;
  border-left: 1px solid var(--color-border-strong);
  border-bottom: 1px solid var(--color-border-strong);
  background: linear-gradient(var(--color-border),var(--color-border)) 0 50%/100% 1px no-repeat,linear-gradient(var(--color-border),var(--color-border)) 50% 0/1px 100% no-repeat
}
.pic-map-q {
  position: absolute;
  font-size: .72rem;
  color: var(--color-text-muted)
}
.q-tl {
  top: .35rem;
  left: .5rem
}
.q-tr {
  top: .35rem;
  right: .5rem
}
.q-bl {
  bottom: .35rem;
  left: .5rem
}
.q-br {
  bottom: .35rem;
  right: .5rem
}
.pic-map-dot {
  position: absolute;
  display: flex;
  align-items: center;
  gap: .3rem;
  transform: translate(-.3rem,-.3rem);
  font-size: .75rem;
  white-space: nowrap
}
.pic-map-dot::before {
  content: "";
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: var(--color-text-muted);
  box-shadow: 0 0 0 2px var(--color-surface-alt)
}
.pic-map-dot.is-hot::before {
  background: var(--chart-1)
}
.pic-alert-kind {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-accent)
}
.pic-line {
  width: 100%;
  height: 3.75rem
}
.pic-line line {
  stroke: var(--color-border-strong);
  stroke-width: 1
}
.pic-line polyline {
  fill: none;
  stroke: var(--chart-1);
  stroke-width: 2;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke
}
.pic-funnel {
  gap: .9rem
}
.pic-funnel > div {
  display: grid;
  gap: .3rem
}
.pic-funnel-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem
}
.feature-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(14rem,100%),1fr));
  gap: 2.5rem;
  margin-top: 4.5rem
}
.feature-columns h3.section-label {
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--color-border)
}
.feature-columns ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .9rem
}
.feature-columns li {
  font-size: .94rem;
  color: var(--color-text-muted)
}
.feature-columns li strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 450;
  color: var(--color-text)
}
.two-up {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(26rem,100%),1fr));
  gap: 4rem 5rem
}
.menu-stack {
  display: grid;
  gap: 1.75rem
}
.menu-stack .menu-entry h3 {
  font-size: 1.3rem
}
.plain-list {
  margin: 0;
  display: grid;
  gap: 1.5rem
}
.plain-list dt {
  font-family: var(--font-serif);
  font-size: 1.3rem
}
.plain-list dd {
  margin: .25rem 0 0;
  color: var(--color-text-muted)
}
.sample-charts {
  max-width: 48rem
}
.sample-charts h3 {
  margin: 2.5rem 0 .75rem;
  font-size: 1.35rem
}
.claim-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(17rem,100%),1fr));
  gap: 2.5rem
}
.claim-steps li {
  padding-top: 1.25rem;
  border-top: 1px solid var(--color-border)
}
.claim-steps h3 {
  margin: .9rem 0 0;
  font-family: var(--font-sans);
  font-size: 1.1rem;
  font-weight: 600
}
.claim-steps p {
  margin: .4rem 0 0;
  color: var(--color-text-muted)
}
.step-n {
  font-family: var(--font-serif);
  font-size: 2.75rem;
  line-height: 1;
  color: var(--color-accent)
}
.kit-ex-menu,
.kit-ex-post,
.kit-ex-site,
.kit-file {
  --kit-light: #ffffff;
  --kit-dark: #141414
}
.kit-lede {
  max-width: 40rem;
  font-size: 1.15rem;
  margin: 0 0 1.75rem
}
.kit-rules {
  grid-template-columns: repeat(auto-fit,minmax(min(13rem,100%),1fr))
}
.kit-files {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(19rem,100%),1fr));
  gap: 3rem 2rem
}
.kit-file {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0
}
.kit-preview {
  display: grid;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--color-border)
}
.kit-on-dark,
.kit-on-light {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  min-height: 7rem;
  padding: 1.5rem
}
.kit-on-light {
  background: var(--kit-light)
}
.kit-on-dark {
  background: var(--kit-dark)
}
.kit-preview img {
  width: 100%;
  max-width: 14rem;
  height: auto
}
.kit-preview-pins img {
  width: 2.3rem
}
.kit-downloads {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .4rem;
  font-size: .9rem;
  font-variant-numeric: tabular-nums
}
.kit-downloads li {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 1rem;
  padding-top: .4rem;
  border-top: 1px solid var(--color-border)
}
.kit-downloads span {
  min-width: 5.5rem;
  color: var(--color-text-muted)
}
.kit-usage {
  margin-top: 3rem;
  max-width: 48rem
}
.kit-lines {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.5rem
}
.kit-lines p {
  margin: 0
}
.kit-line {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  line-height: 1.3
}
.kit-donts .kit-line {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  color: var(--color-text-muted)
}
.kit-ex-menu,
.kit-ex-post,
.kit-ex-site {
  justify-items: start;
  gap: .5rem
}
.kit-ex-menu,
.kit-ex-site {
  background: var(--kit-light);
  color: #141414;
  border: 1px solid var(--color-border)
}
.kit-ex-post {
  background: var(--kit-dark);
  color: #fff
}
.kit-ex-menu p,
.kit-ex-post p,
.kit-ex-site p {
  margin: 0
}
.kit-ex-kicker {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase
}
.kit-ex-big {
  font-family: var(--font-serif);
  font-size: 3.2rem;
  line-height: 1
}
.kit-ex-small {
  font-size: .8rem;
  max-width: 17rem
}
.kit-ex-post img,
.kit-ex-site img {
  width: 8.5rem;
  height: auto;
  margin-top: .75rem
}
.kit-ex-menu img {
  width: 5.5rem;
  height: auto;
  margin-top: .5rem
}
.kit-ex-dish {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  width: 100%;
  font-family: var(--font-serif);
  font-size: 1.25rem
}
.kit-ex-dots {
  flex: 1;
  border-bottom: 2px dotted #b5b5b5
}
:where(input:not([type=checkbox],[type=radio],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=hidden]),textarea) {
  font: inherit;
  padding: .45rem .65rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-input-border);
  background: var(--color-surface);
  color: var(--color-text)
}
select {
  font: inherit;
  font-size: .9rem;
  padding: .4rem .6rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-input-border);
  background: var(--color-surface);
  color: var(--color-text)
}
input[type=date] {
  font: inherit;
  font-size: .9rem;
  padding: .35rem .5rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-input-border);
  background: var(--color-surface);
  color: var(--color-text)
}
.filter-field {
  display: inline-block;
  white-space: nowrap;
  vertical-align: middle;
  margin: 0 1rem .4rem 0;
  font-weight: 600
}
.filter-field label {
  margin-right: .4rem
}
.request-form-shell .btn {
  vertical-align: middle;
  margin-bottom: .4rem
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 2.5rem;
  padding: .45rem 1.2rem;
  border-radius: var(--radius-pill);
  font: inherit;
  font-weight: 500;
  font-size: .92rem;
  line-height: 1.3;
  text-decoration: none;
  border: 1px solid var(--color-input-border);
  background: var(--color-surface);
  color: var(--color-text);
  cursor: pointer;
  transition: background .15s,border-color .15s,color .15s,transform 80ms
}
.btn:hover {
  background: var(--color-surface-alt);
  color: var(--color-text)
}
.btn:active {
  transform: translateY(1px)
}
.btn-primary {
  background: var(--color-ink);
  border-color: var(--color-ink);
  color: var(--color-on-ink)
}
.btn-primary:hover {
  background: var(--color-ink-hover);
  border-color: var(--color-ink-hover);
  color: var(--color-on-ink)
}
.btn-danger {
  background: var(--color-danger);
  border-color: var(--color-danger);
  color: var(--color-on-danger)
}
.btn-danger:hover {
  background: var(--color-danger-hover);
  border-color: var(--color-danger-hover);
  color: var(--color-on-danger)
}
.btn:disabled,
.btn[aria-disabled=true] {
  opacity: .5;
  cursor: not-allowed;
  transform: none
}
.btn[aria-disabled=true] {
  pointer-events: none
}
.section {
  padding-block: 3rem
}
.section h2 {
  font-size: 2rem;
  margin-bottom: 1.5rem
}
.card-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1.25rem
}
.card-grid-2 {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1.25rem
}
@media (max-width:780px) {
  .card-grid,
  .card-grid-2 {
    grid-template-columns: 1fr
  }
}
.side-layout {
  display: grid;
  grid-template-columns: 220px minmax(0,1fr);
  gap: 2rem;
  align-items: start
}
.side-nav {
  position: sticky;
  top: 1.5rem
}
.side-nav-group {
  margin-bottom: 1.5rem
}
.side-nav-heading {
  font-weight: 600;
  margin: 0 0 .5rem;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--color-text-muted)
}
.side-nav-link {
  display: block;
  padding: .4rem .6rem;
  border-radius: var(--radius-sm);
  color: var(--color-text);
  text-decoration: none;
  font-size: .92rem
}
.side-nav-link:hover {
  background: var(--color-surface-alt)
}
.side-content-col .section {
  padding-block: 0 2rem
}
.side-nav-link.is-active {
  background: var(--color-surface-alt);
  color: var(--color-text);
  font-weight: 600
}
@media (max-width:780px) {
  .side-layout {
    grid-template-columns: minmax(0,1fr)
  }
  .side-nav {
    position: static
  }
}
.tab-layout {
  display: block
}
.tab-bar {
  display: flex;
  gap: .25rem;
  box-shadow: inset 0 -1px 0 var(--color-border);
  margin-bottom: 1.5rem;
  overflow-x: auto;
  overflow-y: hidden
}
.tab-btn {
  flex: 0 0 auto;
  padding: .7rem 1rem;
  border: 0;
  border-bottom: 2px solid transparent;
  background: 0 0;
  color: var(--color-text-muted);
  font: inherit;
  font-weight: 500;
  font-size: .98rem;
  cursor: pointer
}
.tab-btn:focus-visible {
  outline-offset: -3px
}
.tab-btn:hover {
  color: var(--color-text)
}
.tab-btn.is-active {
  color: var(--color-text);
  font-weight: 600;
  border-bottom-color: var(--color-text)
}
.tab-panel .section {
  padding-block: 0 2rem
}
.tab-panel > div + div {
  margin-top: 2rem
}
.weekly-special-row {
  margin-bottom: 1rem
}
.ws-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem
}
.ws-photo-line {
  margin-top: .4rem
}
.weekly-special-row .ws-name {
  flex: 2 1 12rem
}
.weekly-special-row .ws-description {
  flex: 3 1 14rem
}
.weekly-special-row .ws-price {
  flex: 0 1 7rem
}
.ws-photo-preview {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: cover;
  border-radius: .25rem
}
.ws-remove-row {
  flex: 0 0 auto;
  width: 1.8rem;
  height: 1.8rem;
  padding: 0;
  border: 1px solid var(--color-danger);
  border-radius: 50%;
  background: 0 0;
  color: var(--color-danger);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer
}
.ws-remove-row:hover {
  background: var(--color-danger);
  color: var(--color-on-danger)
}
.ws-guidelines-link {
  color: var(--color-link);
  text-decoration: underline;
  font-weight: inherit
}
.ws-add-row {
  color: var(--color-link);
  font-weight: 600
}
.card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 1.5rem
}
.card svg {
  width: 2rem;
  height: 2rem;
  color: var(--color-primary);
  margin-bottom: .75rem
}
.card h3 {
  margin: 0 0 .5rem;
  font-size: 1.1rem
}
.card p {
  margin: 0;
  color: var(--color-text-muted)
}
.page-header {
  padding-block: 3rem 0.5rem
}
.page-header h1 {
  margin: 0 0 .5rem;
  font-size: clamp(2rem, 4.5vw, 2.85rem);
  line-height: 1.05;
  letter-spacing: -.02em
}
.page-header .meta {
  color: var(--color-text-muted);
  font-size: .9rem
}
.draft-banner {
  background: var(--color-surface-alt);
  border: 0;
  border-radius: var(--radius-md);
  padding: .9rem 1.1rem;
  font-size: .92rem;
  color: var(--color-text);
  margin-block: 1.25rem 0
}
.prose {
  max-width: 46rem;
  padding-block: 2.5rem
}
.prose h2 {
  font-size: 1.55rem;
  margin-top: 2.5rem
}
.prose h2:first-of-type {
  margin-top: 0
}
.prose ul {
  padding-left: 1.25rem
}
.prose li {
  margin-bottom: .4rem
}
.callout {
  background: var(--color-surface-alt);
  border: 0;
  border-radius: var(--radius-md);
  padding: 1.25rem 1.5rem;
  margin-block: 1.5rem
}
.request-form-shell {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 1.75rem;
  margin-top: 1.5rem
}
.request-form-shell h2 {
  margin-top: 0
}
.request-form-shell ul {
  padding-left: 1.25rem
}
.chart-frame {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1rem
}
.verified-owner-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: #1976d2;
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  padding: .3rem .75rem .3rem .3rem;
  border-radius: 999px;
  vertical-align: middle
}
.verified-owner-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(255,255,255,.25);
  flex-shrink: 0
}
.comment-owner-badge {
  display: inline-block;
  background: #1976d2;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  padding: .1rem .5rem;
  border-radius: 999px;
  vertical-align: middle
}
.badge-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(17rem,1fr));
  gap: .9rem;
  margin-top: 1rem
}
.badge-chip {
  display: flex;
  align-items: center;
  gap: .75rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: .75rem 1rem;
  min-height: 5rem
}
.badge-count {
  font-size: .9rem;
  font-weight: 500;
  margin-left: .4rem
}
.badge-more {
  text-align: center;
  margin: 1rem 0 0
}
.badge-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center
}
.badge-chip-label {
  margin: 0;
  font-weight: 600
}
.badge-chip-description {
  margin: .15rem 0 0;
  color: var(--color-text-muted);
  font-size: .85rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden
}
.update-tag-chip {
  display: inline-block;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  padding: .2rem .65rem;
  margin: 0 .4rem .4rem 0;
  font-size: .8rem
}
.special-bullets {
  margin: .2rem 0;
  padding-left: 1.25rem
}
.special-card {
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: .65rem .85rem;
  margin-bottom: .5rem
}
.feed-tile-photo {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: var(--radius-md);
  margin-bottom: .75rem;
  cursor: zoom-in
}
.photo-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(8rem,1fr));
  gap: .75rem;
  margin-top: 1rem
}
.photo-gallery .feed-tile-photo {
  margin-bottom: 0
}
.pagination-controls {
  display: none;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem
}
.pagination-controls:not([hidden]) {
  display: flex
}
.ad-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  margin-block: 2rem;
  margin-inline: auto;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-alt);
  color: var(--color-text-muted);
  font-size: .8rem;
  letter-spacing: .04em;
  text-transform: uppercase
}
.ad-placeholder--banner {
  width: 100%;
  max-width: 728px;
  height: 90px
}
.ad-placeholder--tile {
  margin: 0;
  width: 100%;
  max-width: none;
  aspect-ratio: 4/3;
  height: auto;
  flex-direction: column
}
.ad-placeholder-badge {
  background: #ffa000;
  color: #2b1200;
  border-radius: var(--radius-sm);
  padding: .1rem .4rem;
  font-size: .7rem;
  letter-spacing: normal
}
.lightbox-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.85);
  padding: 2rem;
  cursor: zoom-out
}
.lightbox-overlay:not([hidden]) {
  display: flex
}
.lightbox-image {
  max-width: 100%;
  max-height: 100%;
  border-radius: var(--radius-md);
  cursor: default
}
.lightbox-nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.14);
  color: #fff;
  cursor: pointer
}
.lightbox-nav[hidden] {
  display: none
}
.lightbox-nav:hover:not(:disabled) {
  background: rgba(255,255,255,.26)
}
.lightbox-nav:disabled {
  opacity: .3;
  cursor: default
}
.lightbox-prev {
  left: 1rem
}
.lightbox-next {
  right: 1rem
}
.lightbox-count {
  position: fixed;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  color: #fff;
  font-size: .9rem;
  font-variant-numeric: tabular-nums
}
.lightbox-image {
  touch-action: pan-y;
  user-select: none
}
.lightbox-close {
  position: fixed;
  top: 1rem;
  right: 1.25rem;
  background: 0 0;
  border: none;
  color: #fff;
  font-size: 2.25rem;
  line-height: 1;
  cursor: pointer;
  padding: .25rem .5rem
}
.likers-modal {
  position: relative;
  width: 100%;
  max-width: 24rem;
  max-height: 80vh;
  overflow-y: auto;
  cursor: default;
  padding: 1.5rem
}
.likers-modal-close {
  position: absolute;
  top: .5rem;
  right: .75rem;
  color: var(--color-text-muted);
  font-size: 1.75rem
}
.likers-modal-close:hover {
  color: var(--color-accent)
}
.info-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  margin-left: .4rem;
  border-radius: 50%;
  border: 1px solid var(--color-text-muted);
  background: 0 0;
  color: var(--color-text-muted);
  font-size: .7rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle
}
.info-icon-btn:hover {
  border-color: var(--color-primary);
  color: var(--color-accent)
}
.like-row {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin-top: .5rem
}
.like-button {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .2rem .5rem;
  min-height: 1.5rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-text-muted);
  font: inherit;
  font-size: .75rem;
  line-height: 1;
  cursor: pointer
}
.like-button:hover {
  border-color: var(--color-primary);
  color: var(--color-accent)
}
.like-button.is-liked {
  border-color: var(--color-primary);
  color: var(--color-accent);
  background: var(--color-surface-alt)
}
.want-to-try-button.is-active {
  border-color: var(--color-primary);
  color: var(--color-accent);
  background: var(--color-surface-alt)
}
.like-count-button {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  background: 0 0;
  border: none;
  padding: 0;
  font: inherit;
  font-size: .75rem;
  line-height: 1;
  color: var(--color-text-muted);
  cursor: pointer
}
.like-count-button:disabled {
  cursor: default
}
.like-count-button:hover {
  color: var(--color-accent);
  text-decoration: underline
}
.like-button-icon {
  display: inline-flex;
  line-height: 1
}
.like-button .like-button-icon svg {
  width: 16px;
  height: 16px;
  margin-bottom: 0;
  color: inherit
}
.comment-count-link {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  margin-left: .5rem;
  color: var(--color-text-muted);
  font-size: .75rem;
  line-height: 1;
  text-decoration: none
}
.comment-count-link:hover {
  color: var(--color-accent);
  text-decoration: underline
}
.comment-overlay-trigger {
  border: none;
  background: 0 0;
  padding: 0;
  font: inherit;
  cursor: pointer
}
.comment-count-link svg {
  width: 16px;
  height: 16px;
  margin-bottom: 0;
  color: inherit
}
.profile-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(8rem,1fr));
  gap: 1rem;
  margin-block: 1.5rem
}
.profile-stat {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1rem;
  text-align: center
}
.profile-stat .value {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-accent)
}
.profile-stat .label {
  font-size: .85rem;
  color: var(--color-text-muted);
  line-height: 1.3
}
.profile-stats.profile-stats-compact {
  grid-template-columns: repeat(auto-fit,minmax(6rem,1fr));
  gap: .5rem;
  margin-block: 0.75rem
}
.profile-stats-compact .profile-stat {
  padding: .5rem
}
.profile-stats-compact .profile-stat .value {
  font-size: 1.1rem
}
.profile-stats-compact .profile-stat .label {
  font-size: .7rem
}
.user-list.drilldown-dish-list {
  grid-template-columns: 1fr;
  gap: .2rem
}
.user-list.drilldown-dish-list li {
  padding: .35rem .6rem
}
.user-list {
  list-style: none;
  padding: 0;
  margin: 1.5rem 0 0;
  display: grid;
  gap: .75rem
}
.comment-textarea {
  width: 100%;
  padding: .75rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-input-border);
  background: var(--color-bg);
  color: var(--color-text);
  font-family: inherit;
  resize: vertical
}
.comment-composer {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  margin: 1rem 0 1.5rem
}
.comment-composer .btn,
.comment-reply-form .btn {
  align-self: flex-end
}
.comment-reply-form {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  margin-top: .75rem
}
.comment-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 1rem
}
.comment-item {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: .9rem 1rem;
  background: var(--color-surface)
}
.comment-item.is-deleted {
  color: var(--color-text-muted);
  font-style: italic
}
.comment-meta {
  display: flex;
  align-items: baseline;
  gap: .6rem;
  flex-wrap: wrap;
  font-size: .85rem;
  color: var(--color-text-muted);
  margin-bottom: .35rem
}
.comment-meta a {
  color: var(--color-text);
  font-weight: 600;
  text-decoration: none
}
.comment-meta a:hover {
  color: var(--color-accent)
}
.comment-body {
  margin: 0 0 .5rem;
  white-space: pre-wrap;
  word-break: break-word
}
.comment-hidden-note {
  font-size: .75rem;
  color: var(--color-tertiary);
  font-weight: 600;
  margin: 0 0 .5rem
}
.comment-actions {
  display: flex;
  gap: 1rem
}
.comment-actions button {
  min-height: 1.5rem;
  background: 0 0;
  border: none;
  padding: 0;
  color: var(--color-text-muted);
  font: inherit;
  font-size: .8rem;
  cursor: pointer
}
.comment-actions button:hover {
  color: var(--color-accent);
  text-decoration: underline
}
.comment-admin-actions {
  margin-top: .35rem
}
.comment-admin-actions button {
  color: var(--color-tertiary)
}
.comment-admin-actions button:hover {
  color: var(--color-accent)
}
.comment-replies {
  list-style: none;
  padding: 0 0 0 1rem;
  margin: .75rem 0 0;
  display: grid;
  gap: .75rem;
  border-left: 2px solid var(--color-border)
}
.comment-replies.comment-replies-flat {
  padding-left: 0;
  border-left: none;
  margin-top: .5rem
}
.comment-collapse-toggle,
.comment-view-thread {
  display: block;
  background: 0 0;
  border: none;
  padding: 0;
  min-height: 1.5rem;
  margin-top: .5rem;
  color: var(--color-text-muted);
  font: inherit;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer
}
.comment-collapse-toggle:hover,
.comment-view-thread:hover {
  color: var(--color-accent);
  text-decoration: underline
}
.comment-report-modal {
  position: relative;
  width: 100%;
  max-width: 22rem;
  cursor: default;
  padding: 1.5rem
}
.comment-thread-modal {
  position: relative;
  width: 100%;
  max-width: 36rem;
  max-height: 80vh;
  overflow-y: auto;
  cursor: default;
  padding: 1.5rem
}
.comment-dish-overlay-modal {
  position: relative;
  width: 100%;
  max-width: 36rem;
  max-height: 80vh;
  overflow-y: auto;
  cursor: default;
  padding: 1.5rem
}
.comment-report-reasons {
  display: grid;
  gap: .6rem;
  margin: 1rem 0 1.25rem
}
.comment-report-reasons label {
  display: flex;
  align-items: center;
  gap: .5rem;
  cursor: pointer;
  font-weight: 400
}
.user-list li {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: .9rem 1.1rem
}
.user-list a {
  font-weight: 600;
  text-decoration: none;
  color: var(--color-text)
}
.user-list a:hover {
  color: var(--color-accent)
}
.fraud-dashboard-row:hover {
  background: var(--color-surface-alt)
}
.sign-in-history-btn {
  font-size: .8rem
}
.sign-in-history-panel {
  background: var(--color-surface-alt);
  border-radius: var(--radius-sm);
  padding: .5rem .75rem;
  margin: .35rem 0 .75rem;
  font-size: .9rem
}
.sign-in-history-panel ul {
  margin: .25rem 0 0;
  padding-left: 1.25rem
}
.tag-filter-option input {
  font: inherit
}
details.tag-filter-group {
  min-width: 9rem
}
details.tag-filter-group > summary {
  cursor: pointer
}
.tag-filter-option {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .9rem;
  cursor: pointer
}
.site-footer {
  border-top: 1px solid var(--color-border);
  margin-top: 5rem;
  padding-block: 2.5rem 3rem;
  color: var(--color-text-muted);
  font-size: .9rem
}
.site-footer .container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1.5rem
}
.site-footer ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin: 0;
  padding: 0
}
.site-footer .footer-links {
  display: flex;
  flex-direction: column;
  gap: .75rem
}
.site-footer a {
  color: var(--color-text-muted);
  text-decoration: none
}
.site-footer a:hover {
  color: var(--color-text)
}
.cookie-consent-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  box-shadow: var(--shadow-card);
  padding-block: 1rem
}
.cookie-consent-banner .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem
}
.cookie-consent-banner p {
  flex: 1 1 24rem;
  margin: 0;
  font-size: .9rem;
  color: var(--color-text)
}
.cookie-consent-actions {
  display: flex;
  flex-shrink: 0;
  gap: .75rem
}
.cookie-consent-actions .btn {
  padding: .6rem 1.25rem;
  font-size: .9rem
}
.admin-fixed-theme-table {
  background: #fff;
  color: #1a1a1a;
  border-radius: var(--radius-md);
  padding: .75rem;
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-surface-alt: #f2f2f2;
  --color-text: #1a1a1a;
  --color-text-muted: #5a5a5a;
  --color-border: #dddddd;
  --color-primary: #eb6834;
  --color-secondary: #2a78d6;
  --color-tertiary: #7c6425;
  --color-accent: #b8421a;
  --color-danger: #b3261e;
  --color-input-border: #8a8a8a;
  --color-border-strong: #b5b5b5;
  --color-focus: #1d1a17;
  --color-link: #1a1a1a;
  --color-accent-hover: #9f3612;
  --color-on-accent: #ffffff;
  --color-danger-hover: #971f18;
  --color-on-danger: #ffffff;
  color-scheme: light
}
.u-ai-start {
  align-items: start!important
}
.u-bb-1px-solid-var-color-border {
  border-bottom: 1px solid var(--color-border)!important
}
.u-bor-2e8b57 {
  border-color: #2e8b57!important
}
.u-bor-none-p-0-m-0-5rem-0 {
  border: none!important;
  padding: 0!important;
  margin: .5rem 0!important
}
.u-bor-var-color-primary {
  border-color: var(--color-primary)!important
}
.u-cur-pointer {
  cursor: pointer!important
}
.u-d-block-fw-600 {
  display: block!important;
  font-weight: 600!important
}
.u-d-block-fw-600-mb-0-5rem {
  display: block!important;
  font-weight: 600!important;
  margin-bottom: .5rem!important
}
.u-d-block-m-0-25rem-0-1rem {
  display: block!important;
  margin: .25rem 0 1rem!important
}
.u-d-block-m-0-35rem-0-fw-400 {
  display: block!important;
  margin: .35rem 0!important;
  font-weight: 400!important
}
.u-d-block-m-0-75rem-0 {
  display: block!important;
  margin: .75rem 0!important
}
.u-d-block-mb-0-25rem-fw-400 {
  display: block!important;
  margin-bottom: .25rem!important;
  font-weight: 400!important
}
.u-d-block-mb-0-35rem-fw-400 {
  display: block!important;
  margin-bottom: .35rem!important;
  font-weight: 400!important
}
.u-d-block-mt-0-25rem {
  display: block!important;
  margin-top: .25rem!important
}
.u-d-block-mt-0-5rem-fw-600 {
  display: block!important;
  margin-top: .5rem!important;
  font-weight: 600!important
}
.u-d-block-mt-1rem-fw-600 {
  display: block!important;
  margin-top: 1rem!important;
  font-weight: 600!important
}
.u-d-block-w-100-m-0-25rem-0-1rem {
  display: block!important;
  width: 100%!important;
  margin: .25rem 0 1rem!important
}
.u-d-block-w-100-mt-0-25rem {
  display: block!important;
  width: 100%!important;
  margin-top: .25rem!important
}
.u-d-flex-jc-center-mar-1-5rem {
  display: flex!important;
  justify-content: center!important;
  margin-block: 1.5rem!important
}
.u-d-inline-block-w-11ch-ta-right {
  display: inline-block!important;
  width: 11ch!important;
  text-align: right!important
}
.u-fle-1 {
  flex: 1!important
}
.u-flo-right {
  float: right!important
}
.u-flo-right-fon-0-85em {
  float: right!important;
  font-size: .85em!important
}
.u-fw-600 {
  font-weight: 600!important
}
.u-fw-600-d-block-mb-0-5rem {
  font-weight: 600!important;
  display: block!important;
  margin-bottom: .5rem!important
}
.u-fw-600-mr-0-5rem {
  font-weight: 600!important;
  margin-right: .5rem!important
}
.u-fw-600-mr-1rem {
  font-weight: 600!important;
  margin-right: 1rem!important
}
.u-fw-600-p-0 {
  font-weight: 600!important;
  padding: 0!important
}
.u-fw-normal {
  font-weight: 400!important
}
.u-hei-360px {
  height: 360px!important
}
.u-m-0 {
  margin: 0!important
}
.u-m-0-0-0-4rem {
  margin: 0 0 .4rem!important
}
.u-m-0-0-0-5rem {
  margin: 0 0 .5rem!important
}
.u-m-0-0-0-75rem {
  margin: 0 0 .75rem!important
}
.u-m-0-0-1rem {
  margin: 0 0 1rem!important
}
.u-m-0-0-5rem-0-5rem-0 {
  margin: 0 .5rem .5rem 0!important
}
.u-m-0-0-75rem {
  margin: 0 .75rem!important
}
.u-m-0-25rem-0-0 {
  margin: .25rem 0 0!important
}
.u-m-0-35rem-0-0 {
  margin: .35rem 0 0!important
}
.u-m-0-4rem-0-0-pad-1-1rem {
  margin: .4rem 0 0!important;
  padding-left: 1.1rem!important
}
.u-m-0-5rem-0-0 {
  margin: .5rem 0 0!important
}
.u-m-0-5rem-0-0-pad-1-25rem {
  margin: .5rem 0 0!important;
  padding-left: 1.25rem!important
}
.u-m-0-5rem-0-1rem {
  margin: .5rem 0 1rem!important
}
.u-m-1-5rem-0-1rem {
  margin: 1.5rem 0 1rem!important
}
.u-m-1rem-0-0 {
  margin: 1rem 0 0!important
}
.u-mb-0-4rem {
  margin-bottom: .4rem!important
}
.u-mb-0-75rem {
  margin-bottom: .75rem!important
}
.u-mb-1-5rem {
  margin-bottom: 1.5rem!important
}
.u-mb-1rem {
  margin-bottom: 1rem!important
}
.u-mb-1rem-d-block {
  margin-bottom: 1rem!important;
  display: block!important
}
.u-mb-2rem {
  margin-bottom: 2rem!important
}
.u-min-1-2em {
  min-height: 1.2em!important
}
.u-min-1-2em-m-0-0-1rem {
  min-height: 1.2em!important;
  margin: 0 0 1rem!important
}
.u-min-1-2em-m-0-5rem-0-1rem {
  min-height: 1.2em!important;
  margin: .5rem 0 1rem!important
}
.u-min-1-2em-m-0-75rem-0 {
  min-height: 1.2em!important;
  margin: .75rem 0!important
}
.u-ml-0-35rem {
  margin-left: .35rem!important
}
.u-ml-0-5rem {
  margin-left: .5rem!important
}
.u-ml-0-5rem-fon-0-85em {
  margin-left: .5rem!important;
  font-size: .85em!important
}
.u-ml-0-75rem {
  margin-left: .75rem!important
}
.u-ml-0-75rem-fon-0-85em {
  margin-left: .75rem!important;
  font-size: .85em!important
}
.u-ml-1rem {
  margin-left: 1rem!important
}
.u-mr-1-5rem-fw-normal {
  margin-right: 1.5rem!important;
  font-weight: 400!important
}
.u-mr-1rem-fw-normal {
  margin-right: 1rem!important;
  font-weight: 400!important
}
.u-mt-0 {
  margin-top: 0!important
}
.u-mt-0-25rem {
  margin-top: .25rem!important
}
.u-mt-0-35rem {
  margin-top: .35rem!important
}
.u-mt-0-5rem {
  margin-top: .5rem!important
}
.u-mt-0-5rem-d-flex-gap-0-5rem {
  margin-top: .5rem!important;
  display: flex!important;
  gap: .5rem!important
}
.u-mt-0-75rem {
  margin-top: .75rem!important
}
.u-mt-1-25rem {
  margin-top: 1.25rem!important
}
.u-mt-1-5rem {
  margin-top: 1.5rem!important
}
.u-mt-1rem {
  margin-top: 1rem!important
}
.u-mw-22rem-p-1-5rem-pos-relative {
  max-width: 22rem!important;
  padding: 1.5rem!important;
  position: relative!important
}
.u-mw-26rem {
  max-width: 26rem!important
}
.u-mw-none {
  max-width: none!important
}
.u-ox-auto {
  overflow-x: auto!important
}
.u-p-0-5rem {
  padding: .5rem!important
}
.u-p-0-75rem {
  padding: .75rem!important
}
.u-ta-center {
  text-align: center!important
}
.u-ta-center-mt-0-5rem {
  text-align: center!important;
  margin-top: .5rem!important
}
.u-ta-center-mt-1-5rem {
  text-align: center!important;
  margin-top: 1.5rem!important
}
.u-ta-center-mt-2rem {
  text-align: center!important;
  margin-top: 2rem!important
}
.u-ta-center-mw-28rem {
  text-align: center!important;
  max-width: 28rem!important
}
.u-ta-center-mw-28rem-mar-auto {
  text-align: center!important;
  max-width: 28rem!important;
  margin-inline: auto!important
}
.u-ta-left {
  text-align: left!important
}
.u-ta-left-mt-1-5rem {
  text-align: left!important;
  margin-top: 1.5rem!important
}
.u-tex-none {
  text-decoration: none!important
}
.u-w-100-bor-collapse {
  width: 100%!important;
  border-collapse: collapse!important
}
.u-w-240px {
  width: 240px!important
}
.u-x248e7 {
  margin-bottom: 2rem!important;
  padding-bottom: 1.5rem!important;
  border-bottom: 1px solid var(--color-border)!important
}
.u-x2a465 {
  padding: .6rem!important;
  border-radius: var(--radius-sm)!important;
  border: 1px solid var(--color-border)!important;
  background: var(--color-bg)!important;
  color: var(--color-text)!important;
  margin-right: .5rem!important
}
.u-x31221 {
  margin-bottom: 1rem!important;
  border: 1px solid var(--color-border)!important;
  border-radius: var(--radius-sm)!important;
  padding: .75rem 1rem!important
}
.u-x31401 {
  width: 100%!important;
  padding: .6rem!important;
  border-radius: var(--radius-sm)!important;
  border: 1px solid var(--color-border)!important;
  background: var(--color-bg)!important;
  color: var(--color-text)!important
}
.u-x417f7 {
  width: 100%!important;
  padding: .75rem!important;
  border-radius: var(--radius-sm)!important;
  border: 1px solid var(--color-border)!important;
  background: var(--color-bg)!important;
  color: var(--color-text)!important;
  font-family: inherit!important;
  margin-bottom: 1rem!important
}
.u-x43ccc {
  color: var(--color-text-muted)!important;
  font-size: .9rem!important;
  margin: 0 0 1rem!important;
  padding-left: 1.25rem!important
}
.u-x69bde {
  background: 0 0!important;
  border: none!important;
  padding: 0!important;
  color: inherit!important;
  text-decoration: underline!important;
  cursor: pointer!important
}
.u-x813d3 {
  color: var(--color-text-muted)!important;
  font-size: .85rem!important;
  margin: 0 0 1rem!important
}
.u-xa0936 {
  margin: .75rem 0!important;
  border: none!important;
  border-top: 1px solid var(--color-border)!important
}
.u-xa7c36 {
  color: var(--color-text-muted)!important;
  font-size: .9rem!important;
  margin: 0 0 .5rem!important
}
.u-xb2491 {
  width: 100%!important;
  padding: .6rem!important;
  border-radius: var(--radius-sm)!important;
  border: 1px solid var(--color-border)!important;
  background: var(--color-bg)!important;
  color: var(--color-text)!important;
  margin-bottom: 1rem!important
}
.u-xcd43e {
  display: block!important;
  width: 100%!important;
  max-width: 28rem!important;
  margin-top: .25rem!important
}
.u-xddaec {
  display: flex!important;
  gap: .5rem!important;
  margin-top: .5rem!important;
  max-width: 28rem!important
}
.u-xe5dba {
  text-align: left!important;
  border-bottom: 1px solid var(--color-border)!important
}
.u-xf9e3b {
  padding: .5rem!important;
  border-radius: var(--radius-sm)!important;
  border: 1px solid var(--color-border)!important;
  background: var(--color-bg)!important;
  color: var(--color-text)!important;
  margin-right: 1rem!important
}
.highlighted-dish-preview {
  max-width: 200px;
  margin: .25rem 0
}
.tag-filter-option.is-disabled {
  opacity: .5
}
.confirm-dialog {
  max-width: 30rem;
  width: calc(100% - 2rem);
  padding: 1.5rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--shadow-card)
}
.confirm-dialog::backdrop {
  background: rgba(0,0,0,.55)
}
.confirm-dialog-message {
  margin: 0 0 1.25rem;
  white-space: pre-line
}
.confirm-dialog-details {
  margin: -.5rem 0 1.25rem;
  padding-left: 1.2rem;
  display: grid;
  gap: .4rem
}
.confirm-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: .75rem
}
.toast-region {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  pointer-events: none
}
.toast {
  margin: 0;
  padding: .75rem 1rem;
  border-radius: var(--radius-sm);
  background: var(--color-danger);
  color: var(--color-on-danger);
  font-weight: 600;
  pointer-events: auto
}
.queue-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin: 1rem 0 .75rem
}
.queue-toolbar .queue-search {
  flex: 1 1 14rem;
  max-width: 22rem
}
.queue-more {
  margin-top: .75rem
}
.overview-group {
  margin-block: 1.5rem 2rem
}
.overview-group-title {
  margin: 0
}
.prose h2.overview-group-title {
  margin: 0;
  font-size: 1.17rem
}
.overview-group-hint {
  margin: .15rem 0 0;
  min-height: 3.2em
}
.overview-group-stats {
  grid-template-columns: repeat(2,minmax(0,1fr));
  margin-block: 0.75rem
}
.overview-group-stats .profile-stat:not(.profile-stat-headline):nth-child(2n):last-child {
  grid-column: span 2
}
.profile-stat.profile-stat-headline {
  grid-column: span 2;
  background: var(--color-surface-alt)
}
.profile-stat-headline .value {
  font-size: 2.25rem;
  line-height: 1.1;
  font-variant-numeric: tabular-nums
}
.profile-stat .value {
  font-variant-numeric: tabular-nums
}
.stat-delta {
  display: block;
  margin-top: .35rem;
  font-size: .8rem;
  line-height: 1.3;
  color: var(--color-text-muted)
}
.stat-delta.up {
  color: var(--color-text);
  font-weight: 600
}
.stat-delta.down {
  color: var(--color-danger);
  font-weight: 600
}
.origin-list {
  margin-bottom: .75rem
}
.origin-row {
  display: grid;
  grid-template-columns: minmax(8rem,14rem) 1fr 8rem;
  align-items: center;
  gap: .75rem
}
.origin-bar {
  display: block;
  height: .5rem;
  border-radius: 999px;
  background: var(--color-surface-alt);
  overflow: hidden
}
.origin-bar > span {
  display: block;
  height: 100%;
  background: var(--chart-2);
  border-radius: 999px
}
.origin-count {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  text-align: right
}
.origin-bands {
  display: grid;
  gap: .5rem
}
.origin-band-summary {
  cursor: pointer;
  list-style: none;
  padding: .5rem .75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface)
}
.origin-band-summary::-webkit-details-marker {
  display: none
}
.origin-band-summary .origin-label {
  font-weight: 600
}
.origin-band[open] > .origin-band-summary {
  background: var(--color-surface-alt)
}
.origin-band-summary .origin-label::before {
  content: "";
  display: inline-block;
  width: .45rem;
  height: .45rem;
  margin-right: .6rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-.12rem) rotate(-45deg);
  transition: transform .15s ease
}
.origin-band[open] > .origin-band-summary .origin-label::before {
  transform: translateY(-.2rem) rotate(45deg)
}
.origin-band-summary:hover {
  border-color: var(--color-text-muted,currentColor)
}
.origin-band-summary:focus-visible {
  outline: 2px solid var(--color-accent,currentColor);
  outline-offset: 2px
}
.origin-band .origin-list {
  margin: .5rem 0 .75rem 1rem
}
@media (max-width:30rem) {
  .origin-row {
    grid-template-columns: 1fr 8rem
  }
  .origin-bar {
    grid-column: 1/-1;
    order: 3
  }
}
@media (max-width:30rem) {
  .profile-stat.profile-stat-headline {
    grid-column: span 2
  }
}
.data-table td,
.data-table th {
  text-align: left;
  vertical-align: middle
}
.data-table .data-col-num {
  text-align: right;
  font-variant-numeric: tabular-nums
}
.th-sort {
  all: unset;
  cursor: pointer;
  font-weight: 600;
  white-space: nowrap
}
.th-sort:hover {
  color: var(--color-accent)
}
.th-sort:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px
}
.data-table th[aria-sort]:not([aria-sort=none]) .th-sort {
  color: var(--color-accent)
}
.cell-with-bar {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .6rem
}
.cell-bar {
  display: inline-block;
  width: 6rem;
  height: .5rem;
  border-radius: 999px;
  background: var(--color-surface-alt);
  overflow: hidden
}
.cell-bar > span {
  display: block;
  height: 100%;
  background: var(--chart-1);
  border-radius: 999px
}
.data-table-footer {
  margin: .75rem 0 0;
  display: flex;
  align-items: center;
  gap: .75rem
}
.cell-bar > span.neg {
  background: var(--chart-2)
}
.view-toggle {
  display: inline-flex;
  gap: .25rem
}
.view-toggle .btn[aria-pressed=true] {
  background: var(--color-ink);
  color: var(--color-on-ink);
  border-color: var(--color-ink)
}
.data-table tfoot td {
  border-top: 2px solid var(--color-border-strong);
  font-weight: 600;
  background: var(--color-surface-alt)
}
.data-table-search {
  min-width: 14rem
}
.filter-toolbar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .6rem;
  margin: .75rem 0 1rem
}
.filter-menu {
  position: relative
}
.filter-toolbar-end {
  margin-left: auto
}
.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .8rem;
  border: 1px solid var(--color-input-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-text);
  font: inherit;
  font-size: .9rem;
  cursor: pointer
}
.filter-chip::after {
  content: "";
  width: .4rem;
  height: .4rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-.1rem) rotate(45deg);
  transition: transform .15s ease
}
.filter-chip[aria-expanded=true]::after {
  transform: translateY(.05rem) rotate(-135deg)
}
.filter-chip:hover {
  border-color: var(--color-text-muted)
}
.filter-chip:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px
}
.filter-chip-label {
  color: var(--color-text-muted)
}
.filter-chip-value {
  font-weight: 600
}
.filter-chip.is-active {
  border-color: var(--color-accent);
  background: var(--color-surface-alt)
}
.filter-pop {
  position: absolute;
  top: calc(100% + .4rem);
  left: 0;
  z-index: 20;
  min-width: 17rem;
  max-width: min(34rem,calc(100vw - 2rem));
  padding: 1rem 1.15rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  box-shadow: 0 8px 24px rgba(0,0,0,.18)
}
.filter-pop-wide {
  width: min(36rem,calc(100vw - 2rem));
  max-width: none
}
.filter-pop-scroll {
  max-height: min(24rem,60vh);
  overflow-y: auto
}
.filter-pop-title {
  display: block;
  font-weight: 600;
  margin-bottom: .6rem
}
.filter-pop-note {
  margin: .6rem 0 0;
  max-width: 26rem
}
.filter-pop .tag-filter {
  border: 0;
  padding: 0;
  margin: 0
}
@media (max-width:640px) {
  .filter-menu {
    position: static
  }
  .filter-pop,
  .filter-pop-wide {
    left: 0;
    right: 0;
    width: auto;
    max-width: none
  }
  .filter-toolbar-end {
    margin-left: 0;
    width: 100%
  }
}
.insights-alert {
  margin-bottom: .75rem
}
.insights-alert-critical {
  border-color: var(--color-danger)
}
.insights-funnel {
  display: grid;
  gap: .6rem
}
.insights-funnel-row {
  display: grid;
  grid-template-columns: minmax(8rem,12rem) 1fr minmax(6rem,auto);
  gap: .75rem;
  align-items: center
}
.insights-funnel-bar {
  height: .9rem;
  background: var(--color-surface-alt);
  border-radius: 3px;
  overflow: hidden
}
.insights-funnel-bar span {
  display: block;
  height: 100%;
  background: var(--chart-2);
  border-radius: 3px
}
.insights-funnel-value {
  font-variant-numeric: tabular-nums
}
.insights-export-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem
}
@media (max-width:640px) {
  .insights-funnel-row {
    grid-template-columns: 1fr;
    gap: .25rem
  }
}
@media print {
  #insights-days,
  #site-footer,
  #site-header,
  .btn,
  .insights-export-buttons,
  .tab-bar {
    display: none!important
  }
}
.insights-promos {
  display: grid;
  gap: .75rem;
  margin-top: .75rem
}
.insights-promo {
  display: grid;
  grid-template-columns: minmax(0,1.6fr) repeat(2,minmax(9rem,1fr));
  gap: .5rem 1.5rem;
  align-items: start;
  padding: .9rem 1rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 10px
}
.insights-promo-type {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--color-text-muted)
}
.insights-promo-title {
  font-weight: 600;
  overflow-wrap: anywhere;
  margin: .1rem 0 .25rem
}
.insights-promo-metric-label {
  font-size: .8rem;
  color: var(--color-text-muted)
}
.insights-promo-change {
  font-size: 1.5rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.2
}
.insights-promo-change.is-up {
  color: var(--color-secondary)
}
.insights-promo-change.is-down {
  color: var(--color-danger)
}
.insights-promo-metric-detail {
  font-size: .8rem;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums
}
@media (max-width:720px) {
  .insights-promo {
    grid-template-columns: 1fr 1fr
  }
  .insights-promo-head {
    grid-column: 1/-1
  }
}
.store-btn {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  min-width: 10.5rem;
  padding: .5rem 1rem;
  border: 1px solid var(--color-border-strong);
  border-radius: 10px;
  background: 0 0;
  color: var(--color-text-muted);
  line-height: 1.2;
  cursor: default
}
.store-btn-top {
  font-size: .7rem;
  letter-spacing: .02em
}
.store-btn-name {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-text);
  opacity: .7
}
.chart-data-table {
  margin-top: .75rem;
  font-size: .9rem
}
.chart-data-table > summary {
  cursor: pointer;
  font-weight: 600;
  padding: .25rem 0
}
.chart-data-table-scroll {
  overflow-x: auto;
  margin-top: .5rem
}
.chart-data-table table {
  border-collapse: collapse;
  width: 100%
}
.chart-data-table td,
.chart-data-table th {
  padding: .35rem .6rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left
}
input[type=range] {
  min-height: 1.5rem;
  accent-color: var(--color-accent);
  cursor: pointer
}
.overlap-badge {
  display: inline-block;
  padding: .15rem .65rem;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 600;
  background: var(--color-surface-alt);
  color: var(--color-text-muted);
  border: 1px solid var(--color-border)
}
.overlap-badge.overlap-strong {
  background: var(--color-danger);
  color: var(--color-on-danger);
  border-color: var(--color-danger)
}
.overlap-badge.overlap-weak {
  background: var(--color-tertiary);
  color: #fff;
  border-color: var(--color-tertiary)
}
.overlap-match {
  margin-top: .35rem
}
.plan-list {
  margin: .5rem 0 1rem;
  padding-left: 1.1rem;
  display: grid;
  gap: .5rem;
  font-size: .95rem;
  color: var(--color-text-muted)
}
.plan-list strong {
  color: var(--color-text)
}
.taste-card {
  margin: 1.5rem 0;
  padding: 1.25rem 1.4rem;
  border-radius: 1.375rem;
  color: #fff;
  background: linear-gradient(145deg,#a82e0a 0,#b3340e 55%,#be3c14 100%)
}
:root[data-theme=dark] .taste-card {
  background: linear-gradient(145deg,#7a2a0c 0,#8e3612 55%,#a04218 100%)
}
.taste-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem
}
.taste-card-label {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  opacity: .95
}
.taste-card-rate {
  background: rgba(255,255,255,.2);
  border-radius: 999px;
  padding: .15rem .7rem;
  font-weight: 700
}
.taste-card-headline {
  margin: .5rem 0 .3rem;
  font-size: 1.9rem;
  line-height: 1.1;
  color: #fff;
  text-wrap: balance
}
.taste-card-meta {
  margin: 0 0 1rem;
  opacity: .92
}
.taste-bars {
  display: grid;
  gap: .5rem
}
.taste-bar {
  display: grid;
  grid-template-columns: 8rem 1fr 2rem;
  gap: .7rem;
  align-items: center;
  font-weight: 600;
  font-size: .9rem
}
.taste-bar-track {
  height: .6rem;
  border-radius: .4rem;
  background: rgba(255,255,255,.22);
  overflow: hidden
}
.taste-bar-track i {
  display: block;
  height: 100%;
  background: #fff;
  border-radius: .4rem
}
.taste-bar-count {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 700
}
.taste-card-note {
  margin: 1rem 0 0;
  font-size: .85rem;
  opacity: .9
}
@media (max-width:480px) {
  .taste-bar {
    grid-template-columns: 6rem 1fr 2rem
  }
}
.admin-photo-thumb {
  display: block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--color-border);
  margin-bottom: .4rem
}
.invite-page {
  max-width: 32rem;
  margin: 2rem auto;
  text-align: center
}
.invite-code-box {
  margin: 1.5rem 0;
  padding: 1.25rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: var(--color-surface)
}
.invite-code-label {
  margin: 0 0 .25rem;
  color: var(--color-text-muted);
  font-size: .9rem
}
.invite-code {
  margin: 0 0 .75rem;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: .15em;
  font-variant-numeric: tabular-nums;
  user-select: all
}
.invite-code-help {
  margin: .75rem 0 0;
  color: var(--color-text-muted);
  font-size: .9rem
}
.invite-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
  margin-top: 1rem
}
.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 2.25rem;
  padding: .35rem .9rem;
  border: 1px solid var(--color-input-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-text);
  font: inherit;
  font-size: .9rem;
  font-weight: 500;
  cursor: pointer
}
.chip:hover {
  background: var(--color-surface-alt)
}
.chip[aria-pressed=true],
.chip[aria-selected=true] {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-on-accent)
}
.chip svg {
  width: 1rem;
  height: 1rem;
  flex: none
}
.chip-x {
  margin-left: .15rem;
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  border: 0;
  background: 0 0;
  color: inherit;
  cursor: pointer;
  padding: 0
}
.chip-x:hover {
  background: rgba(0,0,0,.12)
}
.avatar {
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  flex: none;
  line-height: 1
}
.avatar-sm {
  width: 1.5rem;
  height: 1.5rem;
  font-size: .85rem
}
.avatar-lg {
  width: 3rem;
  height: 3rem;
  font-size: 1.4rem
}
.avatar-lg svg {
  width: 1.4rem;
  height: 1.4rem
}
.icon-btn {
  display: inline-grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 50%;
  background: 0 0;
  color: var(--color-text-muted);
  cursor: pointer;
  padding: 0
}
.icon-btn:hover {
  background: var(--color-surface-alt);
  color: var(--color-text)
}
.icon-btn svg {
  width: 1.25rem;
  height: 1.25rem
}
.icon-btn[aria-pressed=true] {
  color: var(--color-accent)
}
.home-head {
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1rem
}
.home-head h1 {
  margin: 0
}
.home-scopes {
  margin-bottom: 1.1rem
}
.friends-strip {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding: .25rem .1rem .75rem;
  margin-bottom: .75rem;
  scrollbar-width: thin
}
.strip-item {
  display: grid;
  justify-items: center;
  gap: .35rem;
  width: 4.5rem;
  flex: none;
  background: 0 0;
  border: 0;
  padding: 0;
  font: inherit;
  color: var(--color-text-muted);
  font-size: .75rem;
  cursor: pointer
}
.strip-item[aria-pressed=true] {
  color: var(--color-accent);
  font-weight: 700
}
.strip-ring {
  display: grid;
  place-items: center;
  width: 3.75rem;
  height: 3.75rem;
  border-radius: 50%;
  border: 2.5px solid var(--color-border-strong);
  font-size: 1.7rem;
  background: var(--color-surface)
}
.strip-item.has-new .strip-ring {
  border-color: var(--color-accent)
}
.strip-item[aria-pressed=true] .strip-ring {
  border-width: 3px;
  border-color: var(--color-accent);
  background: color-mix(in srgb,var(--color-accent) 16%,var(--color-surface))
}
.strip-item span:last-child {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}
.home-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(19rem,1fr));
  grid-auto-flow: row dense;
  gap: 1.25rem;
  align-items: start
}
.home-grid .span-all {
  grid-column: 1/-1
}
.home-grid > .dish-card {
  align-self: stretch
}
.dish-card-actions {
  margin-top: auto
}
.dish-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  box-shadow: var(--shadow-card)
}
.dish-card-media {
  position: relative;
  background: var(--color-surface-alt)
}
.dish-card-media > a {
  display: block;
  padding: 0;
  border: 0;
  background: 0 0;
  cursor: zoom-in
}
.dish-card-media img {
  width: 100%;
  aspect-ratio: 1.35;
  height: auto;
  object-fit: cover;
  display: block
}
.rating-pill {
  position: absolute;
  top: .65rem;
  left: .65rem;
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  padding: .2rem .65rem;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #b8330c;
  font-weight: 700;
  font-size: .9rem;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 1px 3px rgba(0,0,0,.18)
}
.rating-pill svg {
  width: .85rem;
  height: .85rem
}
.save-btn {
  position: absolute;
  top: .55rem;
  right: .55rem;
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  color: #b8330c;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,.18)
}
.save-btn svg {
  width: 1.3rem;
  height: 1.3rem
}
.photo-count {
  position: absolute;
  right: .65rem;
  bottom: .65rem;
  padding: .1rem .6rem;
  border-radius: 999px;
  background: rgba(0,0,0,.6);
  color: #fff;
  font-size: .75rem;
  font-variant-numeric: tabular-nums
}
.photo-strip {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  scrollbar-width: none
}
.photo-strip::-webkit-scrollbar {
  display: none
}
.photo-strip > img {
  flex: 0 0 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always
}
.photo-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  color: #141414;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,.18);
  opacity: 0;
  transition: opacity .15s ease
}
.photo-prev {
  left: .55rem
}
.photo-next {
  right: .55rem
}
.dish-card-media:hover .photo-nav:not(:disabled),
.photo-nav:focus-visible {
  opacity: 1
}
.photo-nav:disabled {
  cursor: default
}
@media (hover:none) {
  .photo-nav {
    display: none
  }
}
@media (prefers-reduced-motion:reduce) {
  .photo-nav {
    transition: none
  }
}
.dish-card-body {
  padding: .85rem 1rem .25rem;
  display: grid;
  gap: .15rem
}
.dish-card-title {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.25
}
.dish-card-title a {
  text-decoration: none
}
.dish-card-title a:hover {
  text-decoration: underline
}
.dish-card-place {
  color: var(--color-text-muted);
  font-size: .9rem
}
.dish-card-place a {
  color: inherit
}
.dish-card-by {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-top: .45rem;
  font-size: .85rem;
  color: var(--color-text-muted)
}
.dish-card-by a {
  color: var(--color-text);
  font-weight: 600;
  text-decoration: none
}
.dish-card-by a:hover {
  text-decoration: underline
}
.dish-card-actions {
  display: flex;
  align-items: center;
  gap: .1rem;
  padding: .15rem .5rem .5rem
}
.dish-card-actions .count {
  min-width: 1.25rem;
  margin-right: .5rem;
  font-size: .85rem;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
  background: 0 0;
  border: 0;
  padding: 0;
  font-family: inherit
}
.dish-card-actions .spacer {
  flex: 1
}
.card-brand {
  border-radius: .75rem;
  padding: 1.25rem 1.5rem;
  color: #fff;
  background: linear-gradient(135deg,#a82e0a,#b3340e 55%,#be3c14)
}
:root[data-theme=dark] .card-brand {
  background: linear-gradient(135deg,#7a2a0c,#8e3612 55%,#a04218)
}
.card-brand .eyebrow {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: rgba(255,255,255,.95)
}
.recap-stats {
  display: flex;
  gap: 2rem;
  margin: .5rem 0 .6rem
}
.recap-stats strong {
  display: block;
  font-size: 1.75rem;
  line-height: 1.1
}
.recap-stats span {
  font-size: .8rem;
  color: rgba(255,255,255,.95)
}
.card-brand p {
  margin: 0 0 .5rem;
  color: rgba(255,255,255,.97)
}
.card-brand a {
  color: #fff;
  font-weight: 600
}
.promo-card {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.25rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: .75rem
}
.promo-tag {
  display: inline-block;
  padding: .1rem .55rem;
  border-radius: 999px;
  background: var(--color-accent);
  color: var(--color-on-accent);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase
}
.promo-card h3 {
  margin: .25rem 0 .1rem;
  font-size: 1.05rem
}
.promo-card p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: .9rem
}
.promo-card .btn {
  margin-left: auto;
  flex: none
}
.seg {
  display: inline-flex;
  padding: .25rem;
  gap: .25rem;
  border-radius: 999px;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border)
}
.seg button {
  border: 0;
  background: 0 0;
  padding: .45rem 1.4rem;
  border-radius: 999px;
  font: inherit;
  font-weight: 600;
  color: var(--color-text-muted);
  cursor: pointer
}
.seg button[aria-selected=true] {
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--shadow-card),0 0 0 1px var(--color-border)
}
.search-field {
  position: relative;
  display: block;
  margin: 1rem 0 .75rem
}
.search-field svg {
  position: absolute;
  left: 1rem;
  top: 50%;
  translate: 0 -50%;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--color-text-muted);
  pointer-events: none
}
.search-field input[type=search] {
  width: 100%;
  box-sizing: border-box;
  padding: .8rem 1rem .8rem 2.9rem;
  border: 1px solid var(--color-input-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-text);
  font: inherit;
  font-size: 1rem
}
.search-tools {
  margin-bottom: 1rem
}
.search-tools .spacer {
  flex: 1
}
.promoted-strip {
  margin: .5rem 0 1.25rem
}
.promoted-strip h2 {
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--color-text-muted);
  margin: 0 0 .5rem
}
.promoted-strip-track {
  display: flex;
  gap: .9rem;
  overflow-x: auto;
  padding-bottom: .5rem;
  scroll-snap-type: x proximity
}
.promoted-chip {
  flex: 0 0 17rem;
  scroll-snap-align: start;
  display: flex;
  gap: .75rem;
  align-items: center;
  padding: .7rem .9rem;
  border: 1px solid var(--color-border);
  border-radius: .5rem;
  background: var(--color-surface);
  text-decoration: none;
  color: inherit
}
.promoted-chip strong {
  display: block;
  font-size: .95rem
}
.promoted-chip span {
  font-size: .8rem;
  color: var(--color-text-muted)
}
.result-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(auto-fill,minmax(26rem,1fr))
}
.restaurant-row {
  display: grid;
  grid-template-columns: 4.5rem 1fr auto;
  gap: .9rem;
  align-items: center;
  padding: .75rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: .625rem
}
.restaurant-thumb {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: .5rem;
  object-fit: cover;
  background: var(--color-surface-alt);
  display: grid;
  place-items: center;
  font-size: 1.6rem;
  color: var(--color-accent);
  overflow: hidden
}
.restaurant-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block
}
.restaurant-row h3 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.2
}
.restaurant-row h3 a {
  text-decoration: none
}
.restaurant-row h3 a:hover {
  text-decoration: underline
}
.restaurant-sub {
  color: var(--color-text-muted);
  font-size: .85rem;
  margin-top: .1rem
}
.restaurant-stats {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .9rem;
  margin-top: .35rem;
  font-size: .82rem;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums
}
.restaurant-stats .rating {
  color: #b8330c;
  font-weight: 700
}
:root[data-theme=dark] .restaurant-stats .rating {
  color: #f07a45
}
.restaurant-row .save {
  align-self: start
}
.tag-groups {
  display: grid;
  gap: .5rem;
  margin-bottom: 1rem
}
.tag-group {
  border: 1px solid var(--color-border);
  border-radius: .5rem;
  background: var(--color-surface)
}
.tag-group summary {
  list-style: none;
  cursor: pointer;
  padding: .65rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 600
}
.tag-group summary::-webkit-details-marker {
  display: none
}
.tag-group summary small {
  color: var(--color-text-muted);
  font-weight: 500
}
.tag-group .chip-row {
  padding: 0 1rem .85rem
}
.chip-sm {
  min-height: 1.9rem;
  padding: .2rem .75rem;
  font-size: .85rem
}
.dish-results {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fill,minmax(13.5rem,1fr))
}
.dish-mini {
  position: relative;
  overflow: hidden;
  border-radius: .625rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border)
}
.dish-mini .dish-card-media img {
  aspect-ratio: 1.15
}
.dish-mini .dish-card-body {
  padding: .6rem .75rem .7rem
}
.dish-mini .dish-card-title {
  font-size: .98rem
}
.dish-mini .like-chip {
  position: absolute;
  right: .55rem;
  bottom: .55rem;
  display: inline-flex;
  gap: .25rem;
  align-items: center;
  padding: .15rem .55rem;
  border-radius: 999px;
  background: rgba(0,0,0,.6);
  color: #fff;
  font-size: .78rem
}
.dish-mini .like-chip svg {
  width: .85rem;
  height: .85rem
}
.view-toggle {
  display: inline-flex;
  border: 1px solid var(--color-input-border);
  border-radius: 999px;
  overflow: hidden
}
.view-toggle button {
  border: 0;
  background: var(--color-surface);
  color: var(--color-text-muted);
  padding: .35rem .7rem;
  cursor: pointer;
  display: grid;
  place-items: center
}
.view-toggle button[aria-pressed=true] {
  background: var(--color-accent);
  color: var(--color-on-accent)
}
.view-toggle svg {
  width: 1.1rem;
  height: 1.1rem
}
@media (max-width:640px) {
  .home-grid {
    grid-template-columns: 1fr;
    gap: 1rem
  }
  .result-list {
    grid-template-columns: 1fr
  }
  .dish-results {
    grid-template-columns: repeat(2,1fr);
    gap: .75rem
  }
  .promo-card {
    flex-wrap: wrap
  }
  .promo-card .btn {
    margin-left: 0
  }
  .recap-stats {
    gap: 1.25rem
  }
}
.avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover
}
.avatar {
  overflow: hidden
}
.avatar-md {
  width: 2.5rem;
  height: 2.5rem;
  font-size: 1.2rem
}
.avatar-lg {
  width: 3.75rem;
  height: 3.75rem;
  font-size: 1.7rem
}
.avatar-stack {
  display: inline-flex;
  flex: none
}
.avatar-stack a + a {
  margin-left: -.6rem
}
.avatar-stack .avatar {
  border: 2px solid var(--color-surface)
}
.chip-icon {
  min-width: 2.25rem;
  justify-content: center;
  padding-inline: 0.5rem
}
.chip-place {
  margin-left: auto
}
.spacer {
  flex: 1
}
.dish-card-nophoto {
  aspect-ratio: 1.35;
  display: grid;
  place-items: center;
  color: var(--color-text-muted);
  background: var(--color-surface-alt)
}
.dish-mini .dish-card-nophoto {
  aspect-ratio: 1.15
}
.dish-card-kind {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--color-accent)
}
.dish-card .feed-tile-photo,
.dish-mini .feed-tile-photo {
  margin-bottom: 0;
  border-radius: 0;
  cursor: zoom-in
}
.dish-card .like-button,
.dish-card .like-count-button {
  border: 0;
  background: 0 0
}
.dish-card .like-button {
  min-height: 2.5rem;
  padding: 0;
  gap: 0
}
.dish-card .like-button .like-button-icon svg,
.dish-row .like-button .like-button-icon svg {
  width: 1.25rem;
  height: 1.25rem
}
.dish-card .like-button.is-liked,
.dish-row .like-button.is-liked {
  color: var(--color-accent);
  background: 0 0
}
.dish-card .like-count-button {
  min-width: 1.25rem;
  margin-right: .5rem;
  font-size: .85rem
}
.dish-mini .like-chip {
  border: 0;
  min-height: 0
}
.dish-mini .like-chip svg {
  width: .85rem;
  height: .85rem
}
.dish-card .count.like-count-button:disabled {
  color: var(--color-text-muted)
}
.home-empty {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--color-text-muted)
}
.home-empty p {
  margin: 0 auto 1rem
}
.near-saved {
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: .9rem 1.1rem;
  border-radius: .75rem;
  text-decoration: none;
  background: var(--color-surface-alt);
  border: 0
}
.near-saved-icon {
  display: grid;
  place-items: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: .5rem;
  background: var(--color-accent);
  color: var(--color-on-accent);
  flex: none
}
.promo-label {
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-text-muted)
}
.activity-row {
  display: flex;
  gap: .8rem;
  padding: .25rem .25rem
}
.activity-row > div {
  min-width: 0;
  flex: 1
}
.result-list-mini {
  grid-template-columns: 1fr;
  margin-top: .5rem;
  gap: .5rem
}
.restaurant-row-mini {
  grid-template-columns: 2.75rem 1fr auto;
  padding: .5rem .65rem
}
.restaurant-row-mini .restaurant-thumb {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: .75rem
}
.restaurant-thumb-sm {
  width: 3rem;
  height: 3rem;
  border-radius: .8rem
}
.restaurant-thumb {
  color: var(--color-accent)
}
.dish-results-list {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(26rem,1fr));
  gap: .75rem
}
.dish-row {
  display: grid;
  grid-template-columns: 4.5rem 1fr auto;
  gap: .85rem;
  align-items: center;
  padding: .7rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: .625rem
}
.dish-row-photo {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: .5rem;
  overflow: hidden;
  background: var(--color-surface-alt);
  display: grid;
  place-items: center;
  color: var(--color-text-muted)
}
.dish-row-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: zoom-in;
  margin: 0
}
.dish-row-body {
  min-width: 0
}
.dish-row-side {
  display: grid;
  justify-items: end;
  gap: .2rem;
  font-size: .85rem
}
.dish-row .like-button {
  border: 0;
  background: 0 0;
  min-height: 2rem;
  padding: 0 .25rem;
  gap: .25rem;
  font-size: .85rem
}
.rating-inline {
  color: #b8330c;
  font-weight: 700;
  font-variant-numeric: tabular-nums
}
:root[data-theme=dark] .rating-inline {
  color: #f07a45
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme=light]) .rating-inline,
  :root:not([data-theme=light]) .restaurant-stats .rating {
    color: #f07a45
  }
}
.search-filter-panel {
  margin-bottom: 1rem
}
.promoted-chip .restaurant-thumb {
  flex: none
}
.popover-menu {
  position: absolute;
  z-index: 900;
  min-width: 10rem;
  padding: .35rem;
  display: grid;
  border: 1px solid var(--color-border-strong);
  border-radius: .8rem;
  background: var(--color-surface);
  box-shadow: 0 8px 24px rgba(0,0,0,.18)
}
.popover-menu button {
  text-align: left;
  border: 0;
  background: 0 0;
  padding: .55rem .8rem;
  border-radius: .5rem;
  font: inherit;
  color: var(--color-text);
  cursor: pointer
}
.popover-menu button:focus-visible,
.popover-menu button:hover {
  background: var(--color-surface-alt)
}
.popover-menu button[aria-checked=true]::after {
  content: "\2713";
  float: right;
  margin-left: 1rem;
  color: var(--color-accent)
}
.toast-region {
  position: fixed;
  left: 50%;
  bottom: 1.25rem;
  translate: -50% 0;
  z-index: 1100;
  display: grid;
  gap: .5rem;
  justify-items: center;
  pointer-events: none
}
.toast {
  background: var(--color-text);
  color: var(--color-bg);
  padding: .6rem 1rem;
  border-radius: 999px;
  font-size: .9rem;
  box-shadow: 0 4px 16px rgba(0,0,0,.25)
}
.place-picker {
  width: min(26rem,92vw)
}
.place-picker-body {
  position: relative
}
.place-picker-close {
  position: absolute;
  top: -.6rem;
  right: -.6rem;
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: 0 0;
  color: var(--color-text-muted,var(--color-text));
  cursor: pointer
}
.place-picker-close:hover {
  background: var(--color-surface-alt);
  color: var(--color-text)
}
.place-picker-close:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px
}
.place-picker-here {
  margin-bottom: 1rem;
  display: inline-flex;
  gap: .4rem;
  align-items: center
}
.place-picker input[type=search],
.place-picker select {
  width: 100%;
  box-sizing: border-box
}
.place-picker-results {
  list-style: none;
  margin: .4rem 0;
  padding: 0;
  display: grid;
  gap: .25rem
}
.place-picker-results button {
  display: flex;
  gap: .5rem;
  align-items: center;
  width: 100%;
  text-align: left;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: .6rem;
  padding: .5rem .7rem;
  font: inherit;
  color: var(--color-text);
  cursor: pointer
}
.place-picker-results button:hover {
  background: var(--color-surface-alt)
}
.dish-results .ad-placeholder--tile,
.home-grid .ad-placeholder--tile {
  aspect-ratio: auto;
  min-height: 12rem;
  border-radius: .75rem;
  margin: 0
}
@media (max-width:640px) {
  .dish-results-list,
  .result-list {
    grid-template-columns: 1fr
  }
  .chip-place {
    margin-left: 0
  }
}
.wtg-section {
  font-size: 1.05rem;
  margin: 1.5rem 0 .6rem
}
.toast-region {
  pointer-events: auto
}
.toast-action {
  display: flex;
  gap: .75rem;
  align-items: center
}
.toast-undo {
  border: 0;
  background: 0 0;
  color: var(--color-bg);
  text-decoration: underline;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  padding: 0
}
.disc-section {
  margin: 1.5rem 0
}
.disc-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: .6rem
}
.disc-head h2 {
  margin: 0;
  font-size: 1.15rem
}
.slider {
  display: flex;
  gap: .9rem;
  overflow-x: auto;
  padding-bottom: .6rem;
  scroll-snap-type: x proximity
}
.slider.slider-all {
  flex-wrap: wrap;
  overflow: visible
}
.disc-tile {
  position: relative;
  flex: 0 0 11.5rem;
  scroll-snap-align: start;
  display: grid;
  gap: .3rem;
  align-content: start;
  padding: .9rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: .625rem;
  text-decoration: none;
  color: inherit
}
.disc-tile:hover {
  border-color: var(--color-border-strong)
}
.disc-tile strong {
  line-height: 1.2
}
.disc-tile-icon {
  display: grid;
  place-items: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: .5rem;
  background: var(--color-surface-alt);
  color: var(--color-accent)
}
.disc-tile-photo img {
  width: 100%;
  aspect-ratio: 1.3;
  object-fit: cover;
  border-radius: .8rem;
  margin: 0
}
.disc-reason {
  font-size: .8rem;
  color: var(--color-accent);
  font-weight: 600
}
.person-tile {
  text-align: center;
  justify-items: center;
  flex-basis: 12rem
}
.person-link {
  display: grid;
  justify-items: center;
  gap: .35rem;
  text-decoration: none;
  color: inherit
}
.person-tile .btn {
  width: 100%
}
.disc-dismiss {
  position: absolute;
  top: .2rem;
  right: .2rem;
  width: 2rem;
  height: 2rem
}
.unlock-card {
  padding: 1.25rem;
  border-radius: .75rem;
  background: var(--color-surface-alt);
  border: 0
}
.unlock-card h2 {
  margin: 0 0 .4rem;
  font-size: 1.15rem
}
.unlock-bar {
  height: .7rem;
  border-radius: 999px;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  overflow: hidden;
  margin: .75rem 0 .4rem
}
.unlock-bar i {
  display: block;
  height: 100%;
  background: var(--color-accent);
  border-radius: 999px
}
.disc-found {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .75rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: .5rem;
  background: var(--color-surface);
  margin-bottom: 1rem
}
.disc-found .person-link {
  display: flex;
  align-items: center;
  gap: .6rem
}
.log-note {
  margin: 1rem 0
}
.visit-month {
  font-size: 1rem;
  margin: 1.5rem 0 .5rem;
  color: var(--color-text-muted)
}
.visit-list {
  display: grid;
  gap: .6rem
}
.visit {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: .625rem
}
.visit summary {
  list-style: none;
  display: grid;
  grid-template-columns: 3rem 1fr auto auto;
  gap: .85rem;
  align-items: center;
  padding: .7rem .9rem;
  cursor: pointer
}
.visit summary::-webkit-details-marker {
  display: none
}
.visit-date {
  display: grid;
  justify-items: center;
  line-height: 1.1;
  padding: .3rem 0;
  border-radius: .7rem;
  background: var(--color-surface-alt)
}
.visit-date b {
  font-size: 1.15rem
}
.visit-date span {
  font-size: .7rem;
  color: var(--color-text-muted);
  text-transform: uppercase
}
.visit-main {
  display: grid;
  min-width: 0
}
.stats-card {
  margin: 1rem 0
}
.goal-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .6rem
}
.goal-list li {
  display: grid;
  grid-template-columns: 1fr 8rem auto;
  gap: .75rem;
  align-items: center
}
.goal-bar {
  height: .55rem;
  border-radius: 999px;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  overflow: hidden
}
.goal-bar i {
  display: block;
  height: 100%;
  background: var(--color-accent)
}
@media (max-width:640px) {
  .goal-list li {
    grid-template-columns: 1fr 5rem auto
  }
}
.avatar-xl {
  width: 5rem;
  height: 5rem;
  font-size: 2.4rem
}
.profile-hero {
  margin: 1.5rem 0 1rem
}
.profile-hero-inner {
  display: flex;
  align-items: center;
  gap: 1.1rem
}
.profile-name {
  margin: 0 0 .15rem
}
.shortcut-list {
  list-style: none;
  margin: 1.25rem 0;
  padding: 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: .625rem;
  overflow: hidden
}
.shortcut-list li + li {
  border-top: 1px solid var(--color-border)
}
.shortcut-row {
  display: grid;
  grid-template-columns: 2.5rem 1fr auto;
  gap: .9rem;
  align-items: center;
  padding: .8rem 1rem;
  text-decoration: none;
  color: inherit
}
.shortcut-row:hover {
  background: var(--color-surface-alt)
}
.shortcut-row span:nth-child(2) {
  display: grid
}
.shortcut-icon {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: .8rem;
  background: var(--color-surface-alt);
  color: var(--color-accent)
}
.shortcut-chevron {
  color: var(--color-text-muted);
  font-size: 1.4rem
}
.disc-tile .meta {
  font-size: .85rem
}
.home-grid.is-timeline {
  grid-auto-flow: row
}
.place-picker select {
  margin-bottom: 1rem
}
.place-picker .confirm-dialog-actions {
  margin-top: .5rem
}
.dish-page {
  margin: 2rem 0 3rem;
  max-width: 46rem
}
.dish-hero {
  margin-bottom: 1.5rem
}
.dish-hero-media {
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-surface-alt)
}
.dish-hero-img {
  display: block;
  width: 100%;
  max-height: 32rem;
  aspect-ratio: 1.35;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
  cursor: zoom-in
}
.dish-hero-empty {
  aspect-ratio: 1.8;
  display: grid;
  place-items: center;
  color: var(--color-text-muted)
}
.dish-thumbs {
  display: flex;
  gap: .5rem;
  margin-top: .6rem;
  overflow-x: auto
}
.dish-thumb {
  flex: none;
  width: 4.25rem;
  height: 4.25rem;
  padding: 0;
  border: 2px solid transparent;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: 0 0;
  cursor: pointer
}
.dish-thumb[aria-pressed=true] {
  border-color: var(--color-text)
}
.dish-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0
}
.dish-head h1 {
  margin: 0;
  font-size: clamp(2rem, 4.5vw, 2.75rem);
  line-height: 1.1;
  text-wrap: balance
}
.dish-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem
}
.rating-pill.rating-pill-inline {
  position: static;
  flex: none;
  padding: 0;
  background: 0 0;
  box-shadow: none;
  border: 0;
  gap: .3rem;
  color: var(--color-text);
  font-family: var(--font-serif);
  font-weight: 450;
  font-size: clamp(2rem, 4.5vw, 2.6rem);
  line-height: 1.1
}
.rating-pill.rating-pill-inline svg {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--color-accent)
}
.dish-kind {
  margin: 0 0 .4rem;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-text-muted)
}
.dish-meta {
  margin: .3rem 0 0;
  color: var(--color-text-muted)
}
.dish-meta a {
  color: var(--color-text)
}
.dish-description {
  margin: .9rem 0 0;
  color: var(--color-text-muted);
  max-width: 36em
}
.dish-actions {
  display: flex;
  align-items: center;
  gap: .1rem;
  margin: 1.25rem 0 1.5rem;
  padding: .15rem 0;
  border-block: 1px solid var(--color-border)
}
.dish-actions .like-button,
.dish-actions .like-count-button {
  border: 0;
  background: 0 0
}
.dish-actions .like-button {
  min-height: 2.5rem;
  padding: 0;
  gap: 0
}
.dish-actions .like-button .like-button-icon svg {
  width: 1.25rem;
  height: 1.25rem
}
.dish-actions .like-button.is-liked {
  color: var(--color-accent);
  background: 0 0
}
.dish-actions .count {
  margin-right: .5rem;
  font-size: .9rem
}
.dish-actions .icon-btn[aria-pressed=true] {
  color: var(--color-accent)
}
.dish-ratings {
  display: grid;
  gap: .7rem;
  margin: 0 0 2.5rem;
  padding-top: 1.1rem;
  border-top: 2px solid var(--color-text)
}
.rating-row {
  display: grid;
  grid-template-columns: 7.5rem minmax(0,1fr) 2.75rem;
  gap: 1rem;
  align-items: center
}
.rating-row strong {
  font-family: var(--font-serif);
  font-weight: 450;
  font-size: 1.2rem;
  text-align: right;
  font-variant-numeric: tabular-nums
}
.rating-row-main > span:first-child {
  font-weight: 600
}
.rating-meter > span {
  background: var(--color-text)
}
.rating-row-main .rating-meter > span {
  background: var(--color-accent)
}
.dish-ratings .verdicts {
  gap: .4rem 1.5rem;
  margin-top: .5rem
}
.dish-ratings .verdict {
  padding: 0;
  background: 0 0;
  color: var(--color-text);
  font-weight: 500
}
.dish-ratings .verdict-good > span:first-child {
  color: var(--color-good)
}
.dish-ratings .verdict-bad > span:first-child {
  color: var(--color-danger)
}
.verdicts {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .4rem
}
.verdict {
  display: inline-flex;
  gap: .4rem;
  align-items: center;
  padding: .3rem .8rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: .9rem
}
.verdict-good {
  background: #e3f1e4;
  color: #1b5e20
}
.verdict-bad {
  background: #fde7e4;
  color: #8c1d18
}
:root[data-theme=dark] .verdict-good {
  background: #1f3a22;
  color: #a5d6a7
}
:root[data-theme=dark] .verdict-bad {
  background: #4a1f1c;
  color: #f4b4ad
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme=light]) .verdict-good {
    background: #1f3a22;
    color: #a5d6a7
  }
  :root:not([data-theme=light]) .verdict-bad {
    background: #4a1f1c;
    color: #f4b4ad
  }
}
.dish-section {
  margin: 0 0 2.5rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--color-border)
}
.dish-section h2 {
  font-size: 1.45rem;
  margin: 0 0 .9rem
}
.course-list {
  margin: 0;
  padding-left: 1.6rem;
  display: grid;
  gap: .35rem
}
.course-list li::marker {
  font-weight: 700;
  color: var(--color-text-muted)
}
.course-name {
  margin-right: .6rem
}
.course-reaction {
  font-size: .75rem;
  font-weight: 700;
  color: var(--color-text-muted)
}
.course-reaction.is-love {
  color: var(--color-accent)
}
.course-star {
  margin-left: .4rem;
  color: var(--color-accent)
}
.tag-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: 0 0 2.5rem
}
.tag-pill {
  padding: .25rem .75rem;
  border-radius: 999px;
  font-size: .85rem;
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border)
}
.rest-hero {
  margin: 2.5rem 0 2rem
}
.rest-hero-top {
  display: flex;
  align-items: center;
  gap: 1.1rem
}
.restaurant-thumb-lg {
  width: 3.75rem;
  height: 3.75rem;
  border-radius: var(--radius-md);
  flex: none
}
.rest-hero-text {
  min-width: 0
}
.rest-hero-text h1 {
  margin: 0;
  font-size: clamp(2.1rem, 4.6vw, 3rem);
  line-height: 1.08;
  text-wrap: balance
}
.rest-sub {
  margin: .4rem 0 0;
  color: var(--color-text-muted)
}
.rest-sub:empty {
  display: none
}
.closed-tag {
  margin: .4rem 0 0;
  font-size: .85rem;
  font-weight: 600;
  color: var(--color-danger)
}
.rest-actions {
  margin-top: 1.5rem
}
.rest-actions a.chip {
  text-decoration: none
}
.want-to-try-button.is-active {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-on-accent)
}
.rest-friends {
  margin-top: .9rem
}
.friend-chips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem
}
.friend-chips a {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .2rem .7rem .2rem .3rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  text-decoration: none;
  background: var(--color-surface-alt)
}
.profile-stats.rest-stats {
  grid-template-columns: repeat(auto-fit,minmax(min(9rem,100%),1fr));
  gap: 1.25rem 2rem;
  margin-block: 0 3rem;
  padding-top: 1.1rem;
  border-top: 2px solid var(--color-text)
}
.rest-stats .profile-stat {
  padding: 0;
  background: 0 0;
  border: 0;
  border-radius: 0;
  text-align: left
}
.rest-stats .profile-stat .value {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 2.5rem);
  font-weight: 450;
  line-height: 1.05;
  color: var(--color-text);
  font-variant-numeric: tabular-nums
}
.rest-stats .profile-stat .label {
  display: block;
  margin-top: .4rem
}
.rest-body > .collapsible-section,
.rest-body > div[id$="-section"] {
  margin: 0 0 3rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--color-border)
}
.rest-body > .collapsible-section > summary h2,
.rest-body > div[id$="-section"] > h2,
.rest-body > section > h2 {
  font-size: clamp(1.5rem, 3vw, 1.8rem);
  margin: 0 0 1.25rem
}
.rest-body > .collapsible-section > summary {
  margin-bottom: 1.25rem
}
.rest-body > .collapsible-section > summary h2 {
  margin: 0
}
.rest-body .special-card {
  background: var(--color-surface-alt);
  border: 0;
  border-radius: var(--radius-md);
  padding: 1.1rem 1.25rem;
  margin-bottom: .75rem
}
.rest-body .special-card .feed-tile-photo {
  width: 100%;
  aspect-ratio: 16/9;
  max-height: 14rem;
  object-fit: cover;
  border-radius: var(--radius-md);
  margin-bottom: .9rem
}
.rest-body .rest-highlight {
  display: grid;
  gap: 1rem 1.5rem;
  align-items: center
}
@media (min-width:640px) {
  .rest-body .rest-highlight:has(> img) {
    grid-template-columns: minmax(0,15rem) minmax(0,1fr)
  }
  .rest-body .rest-highlight > img.feed-tile-photo {
    margin: 0;
    aspect-ratio: 4/3
  }
}
.menu-lines {
  list-style: none;
  margin: .5rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.1rem;
  max-width: 46rem
}
.menu-line .menu-entry-head {
  gap: .6rem
}
.menu-line-name {
  font-family: var(--font-serif);
  font-size: 1.2rem;
  line-height: 1.3;
  min-width: 0
}
.menu-line-price {
  white-space: nowrap;
  font-variant-numeric: tabular-nums
}
.menu-line-desc {
  margin: .25rem 0 0;
  max-width: 36em;
  color: var(--color-text-muted)
}
.menu-lines .menu-section-heading {
  padding-top: 1.25rem;
  scroll-margin-top: 5rem
}
.menu-lines .menu-section-heading h3 {
  margin: 0;
  font-family: var(--font-sans);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-text-muted)
}
.strip-ring {
  box-sizing: border-box;
  padding: 3px
}
.strip-ring .avatar {
  width: 100%;
  height: 100%;
  border: 0;
  font-size: 1.7rem
}
.strip-ring > span[aria-hidden=true] {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%
}
.visit-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: .625rem;
  padding: .8rem .9rem
}
.visit-top {
  display: flex;
  align-items: center;
  gap: .85rem
}
.visit-name {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--color-text);
  text-decoration: none
}
.visit-name:hover {
  text-decoration: underline
}
.visit-dishes {
  list-style: none;
  margin: .8rem 0 0;
  padding: 0 0 .25rem;
  display: flex;
  gap: .75rem;
  overflow-x: auto;
  scroll-snap-type: x proximity
}
.visit-dishes li {
  flex: none;
  width: 6.75rem;
  scroll-snap-align: start
}
.visit-dish {
  display: grid;
  gap: .3rem;
  text-decoration: none;
  color: inherit
}
.visit-dish-photo {
  position: relative;
  display: block;
  width: 6.75rem;
  height: 6.75rem;
  border-radius: .5rem;
  overflow: hidden;
  background: var(--color-surface-alt)
}
.visit-dish-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0
}
.visit-dish-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--color-text-muted)
}
.visit-dish-rating {
  position: absolute;
  left: .4rem;
  top: .4rem;
  padding: .05rem .5rem;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #b8330c;
  font-size: .8rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums
}
.visit-dish-name {
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden
}
.visit-dish-kind {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--color-accent)
}
.visit-dish:hover .visit-dish-name {
  text-decoration: underline
}
.visit-top .visit-date {
  flex: none;
  width: 3rem
}
.profile-hero-inner > div {
  display: grid;
  justify-items: start;
  gap: .35rem
}
.profile-hero-inner > div > * {
  margin: 0
}
.profile-hero-inner .verified-owner-badge {
  margin: .1rem 0
}
.profile-hero-inner #follow-button-slot {
  margin-top: .4rem
}
.profile-hero-inner #follow-button-slot:empty {
  display: none
}
.drilldown-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: .5rem
}
.drilldown-head h3 {
  margin: 0
}
.btn.btn-small {
  padding: .3rem .75rem;
  font-size: .9rem;
  min-height: 2.25rem
}
.pricing-table td,
.pricing-table th {
  padding: .55rem .6rem;
  border-bottom: 1px solid var(--color-border);
  white-space: nowrap
}
.pricing-table thead th {
  font-size: .9rem;
  color: var(--color-text-muted)
}
.ad-slot {
  position: relative;
  overflow: hidden
}
.ad-slot .adsbygoogle {
  display: block;
  width: 100%
}
.ad-slot--banner {
  margin: 0 0 1rem;
  min-height: 90px
}
.ad-slot--tile {
  min-height: 12rem;
  padding: .5rem;
  display: flex;
  flex-direction: column;
  justify-content: center
}
.ad-slot--tile .ad-placeholder-badge {
  position: absolute;
  top: .5rem;
  left: .5rem;
  z-index: 1
}
.pos-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(12rem,1fr));
  gap: .75rem;
  margin: 0 0 .75rem
}
.pos-facts dt {
  font-size: .85rem;
  color: var(--color-text-muted)
}
.pos-facts dd {
  margin: .15rem 0 0;
  font-weight: 600
}
.pos-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .5rem
}
.pos-input {
  width: 100%;
  box-sizing: border-box
}
.pos-error {
  color: var(--color-danger);
  font-weight: 600
}
.pos-location-list {
  border: 0;
  padding: 0;
  margin: 0
}
.pos-toast-steps ol {
  padding-left: 1.2rem;
  margin: .5rem 0
}
.pos-match-table td,
.pos-match-table th {
  padding: .5rem .6rem;
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle
}
.pos-match-table tbody th {
  font-weight: 600
}
.pos-actions-cell {
  white-space: nowrap
}
.pos-picker {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .4rem;
  align-items: center
}
.pos-picker select {
  max-width: 16rem
}
.pos-other {
  margin-top: .4rem
}
#insights-pos-match h4 {
  margin: .75rem 0 .4rem
}
.pos-group {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg,.75rem);
  background: var(--color-surface);
  margin: .6rem 0
}
.pos-group > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .75rem 1rem;
  font-weight: 600;
  min-height: 2.75rem
}
.pos-group > summary::-webkit-details-marker {
  display: none
}
.pos-group > summary::before {
  content: "";
  width: .5rem;
  height: .5rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  transition: transform .15s ease;
  flex: none
}
.pos-group[open] > summary::before {
  transform: rotate(45deg)
}
.pos-group > summary:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px
}
.pos-group-count {
  font-weight: 500;
  font-size: .85rem;
  color: var(--color-text-muted);
  background: var(--color-surface-alt);
  border-radius: 999px;
  padding: .05rem .55rem
}
.pos-group-body {
  padding: 0 1rem .9rem
}
:root {
  --dash-s1: #b8421a;
  --dash-s2: #2a6fb0;
  --dash-neg: #b8421a;
  --dash-pos: #2a6fb0;
  --dash-mid: #d4d4d4;
  --dash-grid: #ededed;
  --dash-good: #2f7a4f
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme=light]) {
    --dash-s1: #e0703f;
    --dash-s2: #4f93dc;
    --dash-neg: #e0703f;
    --dash-pos: #4f93dc;
    --dash-mid: #4a443f;
    --dash-grid: #2a2623;
    --dash-good: #6cc08f
  }
}
:root[data-theme=dark] {
  --dash-s1: #e0703f;
  --dash-s2: #4f93dc;
  --dash-neg: #e0703f;
  --dash-pos: #4f93dc;
  --dash-mid: #4a443f;
  --dash-grid: #2a2623;
  --dash-good: #6cc08f
}
.dash-range {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem .9rem;
  align-items: center;
  padding: .75rem 0;
  margin-bottom: .5rem;
  border-bottom: 1px solid var(--color-border);
  position: sticky;
  top: env(safe-area-inset-top,0);
  background: var(--color-bg);
  z-index: 5
}
.dash-seg {
  display: inline-flex;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-pill);
  padding: 3px;
  gap: 2px
}
.dash-seg button {
  font: inherit;
  font-size: .86rem;
  padding: .35rem .85rem;
  border: 0;
  border-radius: var(--radius-pill);
  background: 0 0;
  color: var(--color-text);
  cursor: pointer;
  min-height: 2.1rem
}
.dash-seg button[aria-checked=true] {
  background: var(--color-ink);
  color: var(--color-on-ink)
}
.dash-seg button:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: -2px
}
.dash-select {
  display: inline-flex;
  gap: .4rem;
  align-items: center;
  font-size: .86rem;
  color: var(--color-text-muted)
}
.dash-select select {
  font: inherit;
  padding: .3rem .5rem
}
.dash-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(10rem,1fr));
  gap: 0 1.25rem;
  border-top: 2px solid var(--color-text)
}
.dash-kpi {
  border-bottom: 1px solid var(--color-border);
  padding: 1rem 0 1rem;
  min-width: 0
}
.dash-kpi-label {
  font-size: .8rem;
  color: var(--color-text-muted)
}
.dash-kpi-value {
  font-family: var(--font-serif);
  font-size: 2.15rem;
  font-weight: 450;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1.15
}
.dash-kpi-delta {
  font-size: .8rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums
}
.dash-kpi .dash-chart {
  display: block;
  width: 100%;
  height: 30px;
  margin-top: .35rem
}
.dash-kpi-note {
  grid-column: 1/-1
}
.dash-up {
  color: var(--color-good)
}
.dash-down {
  color: var(--color-accent)
}
.dash-findings-head {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 3rem
}
.dash-findings-head h2 {
  margin: 0;
  font-size: 2rem
}
.dash-findings {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  margin-top: 1.25rem;
  counter-reset: dash-finding
}
.dash-finding {
  position: relative;
  counter-increment: dash-finding;
  border-top: 1px solid var(--color-border);
  padding: 1.35rem 0 1.35rem 3rem;
  display: grid;
  gap: .35rem;
  align-content: start;
  min-width: 0
}
.dash-finding::before {
  content: counter(dash-finding);
  position: absolute;
  left: 0;
  top: 1.3rem;
  font-family: var(--font-serif);
  font-size: 1.6rem;
  line-height: 1.1;
  color: var(--color-text-muted)
}
.dash-finding.is-urgent .dash-finding-kind {
  color: var(--color-accent)
}
.dash-finding-kind {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-text-muted)
}
.dash-finding-title {
  font-size: 1.35rem;
  font-weight: 450;
  line-height: 1.3;
  margin: 0
}
.dash-finding-evidence {
  font-size: .95rem;
  color: var(--color-text-muted);
  margin: 0;
  max-width: 46em
}
.dash-finding-action {
  justify-self: start;
  font: inherit;
  font-size: .9rem;
  font-weight: 500;
  color: var(--color-text);
  text-decoration: underline;
  text-decoration-color: var(--color-border-strong);
  text-underline-offset: 0.25em;
  background: 0 0;
  border: 0;
  padding: .25rem 0;
  cursor: pointer
}
.dash-finding-action:hover {
  text-decoration-color: var(--color-accent)
}
.dash-finding-basis {
  font-size: .8rem;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums
}
.dash-chart {
  width: 100%;
  height: auto;
  display: block
}
.dash-chart text {
  font-family: inherit
}
.dash-lbl {
  fill: var(--color-text);
  font-size: 12px
}
.dash-lbl-m {
  fill: var(--color-text-muted);
  font-size: 11px
}
.dash-ax {
  fill: var(--color-text-muted);
  font-size: 11px
}
#dash-multiples {
  display: grid;
  gap: .25rem
}
.dash-tip {
  position: fixed;
  pointer-events: none;
  background: var(--color-text);
  color: var(--color-surface);
  font-size: .8rem;
  padding: .35rem .55rem;
  border-radius: 7px;
  transform: translate(-50%,calc(-100% - 10px));
  white-space: nowrap;
  z-index: 50
}
.dash-two {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);
  gap: 1.25rem;
  margin-top: .75rem
}
@media (max-width:860px) {
  .dash-two {
    grid-template-columns: 1fr
  }
}
.dash-panel {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: .9rem 1rem;
  min-width: 0;
  background: var(--color-surface)
}
.dash-panel h3 {
  margin-top: 0
}
.dash-drawer {
  border: 0;
  background: var(--color-surface-alt);
  border-radius: var(--radius-lg);
  padding: .9rem 1.1rem;
  min-width: 0
}
.dash-drawer h3 {
  margin: .35rem 0 .25rem
}
.dash-eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-text-muted)
}
.dash-facts {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .35rem .9rem;
  margin: .75rem 0 0;
  font-size: .88rem
}
.dash-facts dt {
  color: var(--color-text-muted)
}
.dash-facts dd {
  margin: 0;
  font-weight: 600;
  text-align: right;
  font-variant-numeric: tabular-nums
}
.dash-sub {
  font-weight: 600;
  margin: .9rem 0 .25rem;
  display: block
}
.dash-mods {
  margin: 0;
  padding-left: 1.1rem;
  font-size: .9rem
}
.dash-table {
  border-collapse: collapse;
  width: 100%;
  font-size: .88rem;
  font-variant-numeric: tabular-nums
}
.dash-table td,
.dash-table th {
  padding: .45rem .5rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  white-space: nowrap;
  vertical-align: middle
}
.dash-table thead th {
  font-size: .74rem;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: .04em
}
.dash-table .num {
  text-align: right
}
.dash-table tbody th {
  font-weight: 600
}
.dash-table tbody th .meta {
  font-weight: 400;
  font-size: .78rem
}
.dash-heat {
  text-align: center!important;
  width: 3.2rem;
  border-left: 2px solid var(--color-surface)
}
.dash-heat.is-empty {
  color: var(--color-text-muted)
}
.dash-scorecard tr.is-selected > * {
  background: var(--color-surface-alt)
}
.dash-scorecard tr.is-selected > .dash-heat {
  background-blend-mode: normal
}
.dash-quad {
  font-size: .76rem;
  padding: .1rem .45rem;
  border-radius: 6px;
  border: 1px solid var(--color-border-strong)
}
.dash-quad.is-gem {
  border-color: var(--color-accent)
}
.dash-linkish {
  font: inherit;
  font-weight: 600;
  color: var(--color-text);
  background: 0 0;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-align: left
}
.dash-linkish:hover {
  color: var(--color-accent);
  text-decoration: underline
}
.dash-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
  font-size: .82rem;
  color: var(--color-text-muted);
  margin-bottom: .35rem
}
.dash-legend i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: .35rem;
  vertical-align: -1px
}
.dash-post,
.dash-question {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: .9rem 1rem;
  margin: .75rem 0;
  background: var(--color-surface)
}
.dash-post-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .5rem;
  align-items: baseline
}
.dash-post-head h3 {
  margin: 0;
  font-size: 1.2rem
}
.dash-post-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(10rem,1fr));
  gap: .6rem;
  margin-top: .6rem
}
.dash-post-grid > div {
  display: grid;
  gap: .1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: .5rem .65rem
}
.dash-post-grid b {
  font-variant-numeric: tabular-nums
}
.dash-verdict {
  margin: .75rem 0 0;
  padding: .6rem .8rem;
  border-radius: var(--radius-md);
  background: var(--color-surface-alt)
}
.dash-verdict.is-muted {
  background: var(--color-surface-alt);
  color: var(--color-text-muted)
}
.dash-answers {
  list-style: none;
  padding: 0;
  margin: .6rem 0 0;
  display: grid;
  gap: .35rem
}
.dash-answers li {
  display: grid;
  grid-template-columns: minmax(6rem,14rem) 1fr auto;
  gap: .6rem;
  align-items: center
}
.dash-answer-bar {
  height: 10px;
  background: var(--color-surface-alt);
  border-radius: 999px;
  overflow: hidden
}
.dash-answer-bar span {
  display: block;
  height: 100%;
  background: var(--dash-s1);
  border-radius: 999px
}
.dash-ask-form {
  display: grid;
  gap: .4rem;
  max-width: 34rem;
  margin-bottom: 1rem
}
.dash-ask-form input {
  font: inherit;
  padding: .5rem .6rem
}
.dash-ask-form label {
  font-weight: 600
}
.dash-toggle {
  display: flex;
  gap: .6rem;
  align-items: flex-start;
  margin: .6rem 0
}
.dash-toggle input {
  margin-top: .25rem
}
#dash-badge-snippet {
  width: 100%;
  font-family: var(--font-mono, monospace);
  font-size: .8rem;
  padding: .5rem
}
.dash-badge-preview {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: .8rem 1rem;
  max-width: 20rem;
  margin: .6rem 0;
  display: grid;
  gap: .2rem;
  background: var(--color-surface)
}
.dash-badge-preview ol {
  margin: .3rem 0 0;
  padding-left: 1.2rem
}
.deal-audience {
  border: 0;
  padding: 0;
  margin-left: 0;
  margin-right: 0
}
.report-head {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-end;
  margin: 1rem 0 1.5rem
}
.report-head h1 {
  margin: .2rem 0
}
.report-actions {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap
}
.report section {
  margin: 1.75rem 0;
  break-inside: avoid
}
.report-points {
  padding-left: 1.2rem;
  display: grid;
  gap: .45rem;
  margin: .75rem 0 0
}
.report-foot {
  margin-top: 2rem
}
@media print {
  #site-footer,
  #site-header,
  .cookie-consent,
  .no-print {
    display: none!important
  }
  body {
    background: #fff;
    color: #000
  }
  .report .dash-kpi,
  .report .dash-table td,
  .report .dash-table th {
    border-color: #ccc
  }
}
.help-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  margin-left: .4rem;
  vertical-align: .2em;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
  background: 0 0;
  color: var(--color-text-muted);
  font: 600 0.68rem/1 inherit;
  cursor: pointer;
  padding: 0
}
.help-btn::before {
  content: "";
  position: absolute;
  inset: -0.35rem
}
.help-btn:hover,
.help-btn[aria-expanded=true] {
  color: var(--color-text);
  border-color: var(--color-text-muted)
}
.help-btn:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px
}
.help-bubble {
  position: absolute;
  z-index: 60;
  padding: .7rem .85rem;
  border-radius: 10px;
  background: var(--color-text);
  color: var(--color-surface);
  font-size: .86rem;
  line-height: 1.45;
  font-weight: 400;
  box-shadow: 0 8px 24px rgba(0,0,0,.22)
}
.help-bubble::before {
  content: "";
  position: absolute;
  top: -6px;
  left: calc(var(--caret-x,20px) - 6px);
  width: 12px;
  height: 12px;
  background: inherit;
  transform: rotate(45deg);
  border-radius: 2px
}
.help-bubble p {
  margin: 0;
  position: relative
}
.help-bubble p + p {
  margin-top: .45rem
}
#admin-content .section h2 {
  font-size: 1.35rem;
  margin: 0 0 .85rem
}
#admin-content .section h3 {
  font-size: 1.02rem;
  margin: 1.6rem 0 .6rem
}
#admin-content .admin-section > h2 + h3 {
  margin-top: .4rem
}
.side-nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem
}
.side-nav-count {
  font-size: .72rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  min-width: 1.35rem;
  padding: .05rem .4rem;
  border-radius: 999px;
  text-align: center;
  background: var(--color-accent);
  color: var(--color-on-accent)
}
.btn-quiet {
  border-color: transparent;
  background: 0 0;
  color: var(--color-text-muted);
  padding-inline: 0.6rem
}
.btn-quiet:hover {
  background: var(--color-surface-alt);
  color: var(--color-text)
}
#admin-content .admin-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .9rem;
  margin: 0 0 .85rem
}
#admin-content .admin-field {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .86rem;
  color: var(--color-text-muted);
  white-space: nowrap
}
#admin-content input[type=date],
#admin-content input[type=number],
#admin-content input[type=search],
#admin-content input[type=text],
#admin-content select {
  font: inherit;
  font-size: .88rem;
  padding: .35rem .55rem;
  min-height: 2.25rem;
  border: 1px solid var(--color-input-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-text)
}
#admin-content .admin-search {
  flex: 1 1 14rem;
  max-width: 20rem
}
#admin-content .admin-num-input {
  width: 5rem
}
#admin-content .admin-toolbar-form {
  display: inline-flex;
  gap: .4rem;
  align-items: center;
  flex-wrap: wrap
}
#admin-content .admin-toolbar-form input {
  width: 12rem;
  max-width: 100%
}
#admin-content .admin-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .6rem .75rem;
  margin: 0 0 .75rem
}
#admin-content .admin-field-stack {
  display: grid;
  gap: .25rem;
  font-size: .84rem;
  font-weight: 600;
  flex: 0 1 16rem;
  min-width: 0
}
#admin-content .admin-field-stack input {
  width: 100%;
  font-weight: 400
}
#admin-content .admin-panel {
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: .9rem 1rem;
  margin-top: 1.25rem;
  background: var(--color-surface);
  min-width: 0
}
#admin-content .admin-panel > h3:first-child {
  margin-top: 0
}
#admin-content .admin-instructions {
  margin: .5rem 0 1rem
}
#admin-content .admin-instructions summary {
  cursor: pointer;
  font-weight: 600
}
#admin-content .admin-instructions ol {
  margin: .5rem 0 0 1.25rem;
  padding: 0;
  display: grid;
  gap: .4rem
}
#admin-content .admin-result:empty {
  display: none
}
#admin-content .admin-result {
  margin: .75rem 0 1rem
}
#admin-content .admin-result-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .5rem
}
#admin-content .admin-kpis {
  margin: .25rem 0 1rem;
  grid-template-columns: repeat(auto-fit,minmax(9.5rem,1fr))
}
#admin-content .dash-kpi-value.is-small {
  font-size: 1.05rem;
  padding-top: .35rem;
  overflow-wrap: anywhere
}
#admin-content .admin-empty {
  color: var(--color-text-muted);
  font-size: .9rem;
  padding: .9rem 1rem;
  border: 1px dashed var(--color-border-strong);
  border-radius: 12px;
  margin: 0 0 .75rem
}
#admin-content .admin-two {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,22rem),1fr));
  gap: 1.25rem
}
#admin-content .admin-chart {
  min-width: 0
}
#admin-content .admin-chart h3 {
  margin-top: .5rem
}
#admin-content .admin-chart .meta {
  font-size: .84rem;
  margin: 0 0 .5rem
}
#admin-content .chart-frame {
  padding: .6rem
}
#admin-content .admin-id {
  font-size: .8em;
  overflow-wrap: anywhere;
  color: var(--color-text-muted)
}
#admin-content .admin-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .4rem .75rem;
  margin-top: .6rem;
  font-size: .86rem
}
#admin-content .admin-pager > .meta {
  margin-right: auto
}
#admin-content .admin-queue {
  list-style: none;
  padding: 0;
  margin: 0 0 .5rem;
  display: grid;
  gap: .5rem
}
#admin-content .aq {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: .5rem 1rem;
  padding: .7rem .9rem;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface)
}
#admin-content .aq.is-done {
  opacity: .6
}
#admin-content .aq-main {
  flex: 1 1 18rem;
  min-width: 0
}
#admin-content .aq-main p {
  margin: 0
}
#admin-content .aq-main > * + * {
  margin-top: .2rem
}
#admin-content .aq-title {
  font-weight: 600;
  overflow-wrap: anywhere
}
#admin-content .aq-title a {
  color: var(--color-text);
  text-decoration: none
}
#admin-content .aq-title a:hover {
  color: var(--color-accent);
  text-decoration: underline
}
#admin-content .aq-at {
  font-weight: 400;
  color: var(--color-text-muted)
}
#admin-content .aq-meta {
  font-size: .85rem;
  color: var(--color-text-muted);
  overflow-wrap: anywhere
}
#admin-content .aq-meta a {
  color: inherit;
  font-weight: 600
}
#admin-content .aq-body {
  font-size: .92rem;
  overflow-wrap: anywhere;
  max-width: 65ch
}
#admin-content .aq-tag {
  display: inline-block;
  font-size: .72rem;
  font-weight: 600;
  padding: .05rem .45rem;
  border-radius: 6px;
  border: 1px solid var(--color-border-strong);
  color: var(--color-text-muted);
  vertical-align: .1em
}
#admin-content .aq-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  align-items: center
}
#admin-content .aq-detail {
  flex-basis: 100%;
  min-width: 0;
  border-top: 1px solid var(--color-border);
  padding-top: .75rem
}
#admin-content .aq-detail h4 {
  margin: 1.1rem 0 .45rem;
  font-size: .95rem
}
#admin-content .aq-detail .group-status {
  margin: 0 0 .6rem;
  padding: .5rem .7rem;
  border-radius: 9px;
  background: var(--color-surface-alt);
  color: var(--color-text)
}
#admin-content .admin-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,17rem),1fr));
  gap: .75rem 1.5rem;
  align-items: start
}
#admin-content .admin-detail-grid p {
  margin: 0
}
#admin-content .admin-detail-grid p + p {
  margin-top: .2rem
}
#admin-content .admin-pair-forms {
  display: grid;
  grid-template-columns: minmax(0,15rem) auto;
  gap: .4rem;
  align-items: center;
  justify-content: start
}
#admin-content .admin-pair {
  display: contents
}
#admin-content .admin-pair input {
  width: 100%
}
#admin-content .admin-pair button {
  justify-self: start
}
#admin-content .admin-contact {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .1rem .5rem;
  align-items: baseline;
  min-width: 0
}
#admin-content .admin-email {
  font-size: .85rem;
  font-weight: 400;
  color: var(--color-text-muted);
  overflow-wrap: anywhere
}
#admin-content .admin-picks {
  list-style: none;
  padding: 0;
  margin: .4rem 0 0;
  display: grid;
  gap: .35rem
}
#admin-content .admin-picks li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .4rem .75rem;
  padding: .45rem .65rem;
  border: 1px solid var(--color-border);
  border-radius: 9px
}
#admin-content .admin-picks li.meta {
  border-style: dashed
}
#admin-content .admin-history {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .25rem;
  font-size: .86rem
}
#admin-content .admin-history li {
  display: flex;
  flex-wrap: wrap;
  gap: .1rem .6rem
}
#admin-content .admin-history .admin-when {
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
  min-width: 9.5rem
}
#admin-content .admin-detail-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-top: 1rem;
  padding-top: .6rem;
  border-top: 1px solid var(--color-border)
}
#admin-content .aq-with-thumb .admin-photo-thumb {
  margin: 0;
  width: 56px;
  height: 56px;
  flex: none
}
#admin-content .aq .link-button {
  font-size: inherit;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px
}
#admin-content .overlap-blocks {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(12rem,1fr));
  gap: .5rem 1rem;
  margin-top: .5rem!important
}
#admin-content .overlap-badge {
  vertical-align: .1em;
  margin-right: .3rem
}
#admin-content .sign-in-history-panel {
  margin-top: .6rem!important
}
#admin-content .queue-toolbar {
  margin: 0 0 .6rem
}
#admin-content .admin-signal {
  border-top: 1px solid var(--color-border);
  padding: .55rem 0
}
#admin-content .admin-signal > summary {
  cursor: pointer;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: .5rem;
  list-style-position: inside
}
#admin-content .admin-signal-count {
  font-size: .75rem;
  font-variant-numeric: tabular-nums;
  padding: 0 .45rem;
  border-radius: 999px;
  background: var(--color-surface-alt);
  color: var(--color-text-muted)
}
#admin-content .admin-signal-count.is-hit {
  background: var(--color-accent);
  color: var(--color-on-accent)
}
#admin-content .admin-signal > :not(summary) {
  margin-top: .5rem
}
.admin-table-wrap {
  padding: .25rem .5rem;
  margin-bottom: .25rem
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .88rem;
  font-variant-numeric: tabular-nums
}
.admin-table td,
.admin-table th {
  padding: .5rem .5rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere
}
.admin-table tbody tr:last-child > td {
  border-bottom: 0
}
.admin-table thead th {
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--color-text-muted);
  vertical-align: bottom;
  overflow-wrap: normal
}
.admin-table .th-sort {
  white-space: normal;
  font-weight: 600
}
.admin-table th[aria-sort]:not([aria-sort=none]) .th-sort {
  color: var(--color-accent)
}
.admin-table .col-num {
  text-align: right;
  white-space: nowrap;
  overflow-wrap: normal
}
.admin-table .admin-when {
  white-space: nowrap;
  overflow-wrap: normal;
  color: var(--color-text-muted)
}
.admin-table tbody tr:hover > td {
  background: var(--color-surface-alt)
}
.admin-table tr.is-clickable {
  cursor: pointer
}
.admin-table code {
  font-size: .82em;
  overflow-wrap: anywhere
}
.admin-table .admin-cell-main a {
  font-weight: 600
}
.admin-table .admin-cell-tools {
  font-size: .8rem;
  color: var(--color-text-muted);
  margin-top: .1rem
}
.admin-table .admin-cell-tools .link-button,
.admin-table .admin-cell-tools a {
  color: inherit;
  font-weight: 500;
  font-size: inherit;
  text-decoration: underline;
  text-underline-offset: 2px
}
.admin-table .admin-cell-action {
  text-align: right
}
.admin-table .admin-cell-action .btn {
  min-height: 2rem;
  padding: .25rem .7rem
}
.admin-table .admin-table {
  font-size: .84rem
}
.admin-table td[colspan] {
  background: var(--color-surface-alt)
}
@media (max-width:640px) {
  .admin-table thead tr {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .9rem;
    padding: .35rem 0;
    border-bottom: 1px solid var(--color-border)
  }
  .admin-table thead th {
    display: block;
    border: 0;
    padding: 0
  }
  .admin-table thead th:not([data-sort]) {
    display: none
  }
  .admin-table,
  .admin-table tbody {
    display: block
  }
  .admin-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .35rem .75rem;
    padding: .65rem 0;
    border-bottom: 1px solid var(--color-border)
  }
  .admin-table tbody tr:last-child {
    border-bottom: 0
  }
  .admin-table tbody td {
    display: block;
    border: 0;
    padding: 0;
    text-align: left;
    min-width: 0
  }
  .admin-table tbody td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-text-muted)
  }
  .admin-table .admin-cell-main,
  .admin-table tbody td:first-child,
  .admin-table tbody td[colspan] {
    grid-column: 1/-1
  }
  .admin-table .admin-cell-action::before,
  .admin-table .admin-cell-main::before,
  .admin-table tbody td:first-child::before {
    display: none!important
  }
  .admin-table .admin-cell-action {
    grid-column: 1/-1;
    text-align: left
  }
  .admin-table .col-num {
    text-align: left
  }
  .admin-table tbody tr:hover > td {
    background: 0 0
  }
  #admin-content .admin-pair-forms {
    grid-template-columns: minmax(0,1fr) auto
  }
  #admin-content .admin-pager > .meta {
    flex-basis: 100%
  }
}
@media (max-width:640px) {
  .admin-table thead tr:not(:has(th[data-sort])) {
    display: none
  }
}
.confirm-dialog.stripe-steps {
  max-width: 36rem;
  width: calc(100% - 2rem);
  max-height: calc(100dvh - 2rem);
  overflow-y: auto
}
.stripe-steps h3 {
  margin: 0 0 .5rem;
  font-size: 1.15rem
}
.stripe-steps h4 {
  margin: 1rem 0 .35rem;
  font-size: .95rem
}
.stripe-steps p {
  margin: 0 0 .5rem
}
.stripe-steps ol {
  margin: 0;
  padding-left: 1.3rem;
  display: grid;
  gap: .4rem
}
.stripe-steps a {
  color: var(--color-accent);
  font-weight: 600
}
.stripe-steps .meta {
  margin-top: .9rem
}
.billing-terms {
  border-top: 1px solid var(--color-border);
  padding-top: 1.5rem;
  margin: 3rem 0 1.5rem;
  max-width: 46rem;
  color: var(--color-text-muted)
}
.billing-terms h2 {
  font-family: var(--font-sans);
  font-size: .95rem;
  font-weight: 600;
  color: var(--color-text);
  margin: 0 0 .5rem
}
.billing-terms ul {
  margin: 0 0 .6rem;
  padding-left: 1.2rem;
  display: grid;
  gap: .25rem;
  font-size: .93rem
}
.billing-terms .meta {
  margin: 0
}
.analytics-body {
  display: grid;
  grid-template-columns: 14.5rem minmax(0,1fr);
  gap: 1.75rem;
  align-items: start
}
.analytics-main {
  min-width: 0
}
.subnav {
  top: 1rem;
  max-height: calc(100vh - 2rem);
  overflow-y: auto
}
.subnav .side-nav-group {
  margin-bottom: 1.25rem
}
button.side-nav-link {
  width: 100%;
  text-align: left;
  font: inherit;
  font-size: .92rem;
  background: 0 0;
  border: 0;
  cursor: pointer
}
.side-nav-link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: -2px
}
.subnav-select-wrap {
  display: none
}
.subnav-select {
  width: 100%;
  font: inherit;
  font-size: .95rem;
  padding: .55rem .6rem
}
@media (max-width:52rem) {
  .analytics-body {
    grid-template-columns: 1fr;
    gap: 1rem
  }
  .subnav {
    display: none
  }
  .subnav-select-wrap {
    display: block
  }
}
.dash-bars {
  display: grid;
  gap: .55rem
}
.dash-bar-row {
  display: grid;
  grid-template-columns: minmax(5.5rem,9.5rem) minmax(0,1fr) auto;
  align-items: center;
  gap: .2rem .75rem;
  font-size: .95rem
}
.dash-bar-label {
  color: var(--color-text)
}
.dash-bar-track {
  position: relative;
  display: block;
  height: 1.1rem
}
.dash-bar-fill {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  border-radius: 5px;
  background: var(--dash-s1)
}
.dash-bar-fill.is-hollow {
  background: 0 0;
  border: 2px dashed var(--dash-s1)
}
.dash-bar-value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-align: right;
  min-width: 3.2rem
}
.dash-bar-note {
  grid-column: 2/-1;
  font-size: .82rem;
  color: var(--color-text-muted)
}
.dash-div-track {
  background: 0 0
}
.dash-div-zero {
  position: absolute;
  left: 50%;
  top: -.15rem;
  bottom: -.15rem;
  width: 1px;
  background: var(--color-border-strong)
}
.dash-diverging .dash-bar-fill {
  left: auto
}
.dash-div-caption {
  margin: .25rem 0 0
}
.analytics-body .u-ox-auto {
  overflow-x: visible!important
}
.analytics-body table {
  width: 100%;
  table-layout: auto
}
.analytics-body .dash-table td,
.analytics-body .dash-table th {
  white-space: normal;
  overflow-wrap: break-word
}
.analytics-body .data-table td,
.analytics-body .data-table th {
  overflow-wrap: break-word
}
.analytics-body .data-col-num,
.analytics-body td.num {
  white-space: nowrap
}
#analytics-panel {
  container-type: inline-size;
  container-name: apanel
}
@container apanel (max-width:40rem) {
  .stackable-table,
  .stackable-table tbody,
  .stackable-table td,
  .stackable-table tfoot,
  .stackable-table th,
  .stackable-table thead,
  .stackable-table tr {
    display: block;
    width: 100%
  }
  .stackable-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%)
  }
  .stackable-table tr {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: .4rem .75rem;
    margin-bottom: .6rem;
    background: var(--color-surface)
  }
  .stackable-table tbody th,
  .stackable-table th[scope=row] {
    border: 0;
    padding: .3rem 0 .15rem;
    font-size: 1rem
  }
  .stackable-table td {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    text-align: right!important;
    border: 0;
    padding: .2rem 0
  }
  .stackable-table td::before {
    content: attr(data-label);
    color: var(--color-text-muted);
    font-size: .82rem;
    text-align: left;
    flex: none;
    max-width: 55%
  }
}
.dash-sort {
  font: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
  color: inherit;
  background: 0 0;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-align: inherit
}
.dash-sort:hover {
  color: var(--color-text)
}
.dash-sort:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px
}
.dash-table th[aria-sort=ascending] .dash-sort::after {
  content: " \25B2";
  font-size: .7em
}
.dash-table th[aria-sort=descending] .dash-sort::after {
  content: " \25BC";
  font-size: .7em
}
@container apanel (max-width:64rem) {
  .dash-two {
    grid-template-columns: minmax(0,1fr)
  }
}
.dash-table .dash-quad {
  white-space: nowrap
}
.owned-restaurants {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: .9rem 1.1rem;
  margin: 1rem 0
}
.owned-restaurants-title {
  margin: 0 0 .4rem;
  font-size: 1rem;
  font-weight: 800
}
.owned-restaurants-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1rem
}
.owned-restaurants-list a {
  font-weight: 600
}
.menu-jump,
.menu-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding: .25rem 0;
  margin: .5rem 0
}
.menu-tab {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: inherit;
  border-radius: 999px;
  padding: .4rem .95rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap
}
.menu-tab.is-active {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #fff
}
.menu-jump-chip {
  border: 1px solid var(--color-border);
  border-radius: 999px;
  padding: .25rem .75rem;
  font-size: .85rem;
  text-decoration: none;
  white-space: nowrap;
  color: inherit
}
.rest-body .menu-tabs {
  gap: 0;
  padding: 0;
  margin: 0 0 1rem;
  border-bottom: 1px solid var(--color-border);
  flex-wrap: nowrap;
  overflow-x: auto
}
.rest-body .menu-tab {
  margin-bottom: -1px;
  padding: .6rem 1rem;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: 0 0;
  color: var(--color-text-muted);
  font-weight: 500
}
.rest-body .menu-tab:hover {
  color: var(--color-text)
}
.rest-body .menu-tab.is-active {
  background: 0 0;
  color: var(--color-text);
  font-weight: 600;
  border-bottom-color: var(--color-text)
}
.menu-manage-list {
  list-style: none;
  margin: .5rem 0;
  padding: 0;
  display: grid;
  gap: .5rem
}
.menu-manage-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem
}
.menu-manage-name {
  flex: 1 1 10rem;
  min-width: 0
}
.menu-steps {
  padding-left: 1.4rem;
  display: grid;
  gap: .5rem
}
.csv-examples {
  list-style: none;
  margin: .5rem 0 1rem;
  padding: 0;
  display: grid;
  gap: .5rem
}
.csv-examples a {
  font-weight: 700
}
.csv-help-table {
  border-collapse: collapse;
  width: 100%;
  font-size: .92rem
}
.csv-help-table td,
.csv-help-table th {
  border: 1px solid var(--color-border);
  padding: .5rem .65rem;
  text-align: left;
  vertical-align: top
}
.csv-help-table th {
  background: var(--color-surface)
}
.menu-notes {
  display: grid;
  gap: .4rem;
  padding-left: 1.2rem
}
.collapsible-section {
  margin: 1.5rem 0
}
.collapsible-section > summary {
  display: flex;
  align-items: center;
  gap: .6rem;
  cursor: pointer;
  list-style: none;
  padding: .25rem 0
}
.collapsible-section > summary::-webkit-details-marker {
  display: none
}
.collapsible-section > summary::before {
  content: "";
  flex: none;
  width: .55rem;
  height: .55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  transition: transform .15s ease
}
.collapsible-section[open] > summary::before {
  transform: rotate(45deg)
}
.collapsible-section > summary h2 {
  margin: 0
}
.collapsible-section > summary:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: 4px
}
.plan-section {
  margin: 0
}
.plan-section:has(> .plan-aside) {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(16rem,20rem);
  gap: 2.5rem 4rem;
  align-items: start
}
.plan-aside {
  position: sticky;
  top: 6rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.4rem 1.5rem 1.5rem
}
.plan-aside .section-label {
  margin-bottom: .25rem
}
.po-intro-pill {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .85rem;
  font-size: .88rem;
  font-weight: 500;
  white-space: nowrap
}
.po-intro-pill::before {
  content: "";
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: var(--color-accent)
}
.plan-main > .meta:first-child {
  font-family: var(--font-serif);
  font-size: 1.45rem;
  line-height: 1.35;
  color: var(--color-text);
  max-width: 30em;
  margin-top: 0
}
.plan-section .plan-includes {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: .75rem
}
.plan-section .plan-includes li {
  position: relative;
  margin: 0;
  padding: 0 0 0 1.75rem;
  color: var(--color-text-muted);
  line-height: 1.5
}
.plan-section .plan-includes li::before {
  content: "";
  position: absolute;
  left: .15rem;
  top: .42em;
  width: .7rem;
  height: .38rem;
  border-left: 2px solid var(--color-text);
  border-bottom: 2px solid var(--color-text);
  transform: rotate(-45deg)
}
.plan-includes strong {
  color: var(--color-text);
  font-weight: 600
}
.plan-main {
  counter-reset: plan-step;
  min-width: 0
}
.plan-step {
  counter-increment: plan-step;
  display: flex;
  align-items: baseline;
  gap: .85rem;
  font-family: var(--font-sans);
  font-size: 1.1rem;
  font-weight: 600;
  margin: 3rem 0 1rem
}
.plan-step::before {
  content: counter(plan-step);
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  color: var(--color-accent)
}
.plan-options {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1.1rem;
  margin-top: 1.5rem
}
.plan-option {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .2rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-lg);
  padding: 1.6rem 1.4rem 1.3rem;
  cursor: pointer;
  min-width: 0;
  font-weight: 400
}
.plan-option:has(input:checked) {
  border-color: var(--color-text);
  box-shadow: 0 0 0 1px var(--color-text)
}
.plan-option:has(input:focus-visible) {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px
}
.po-head {
  display: flex;
  align-items: center;
  gap: .6rem
}
.po-head input {
  margin: 0;
  accent-color: var(--color-text);
  width: 1.1rem;
  height: 1.1rem
}
.po-name {
  font-weight: 600;
  font-size: 1.05rem
}
.po-sub {
  color: var(--color-text-muted);
  font-size: .9rem;
  margin-bottom: .75rem
}
.po-badge {
  position: absolute;
  top: -.95rem;
  right: 1.1rem;
  background: #1d6b44;
  color: #fff;
  font-weight: 600;
  font-size: .86rem;
  padding: .35rem .9rem;
  border-radius: var(--radius-pill);
  box-shadow: 0 0 0 3px var(--color-surface)
}
.po-was {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
  font-size: .9rem
}
.po-was s {
  color: var(--color-text-muted);
  text-decoration-thickness: 1.5px
}
.po-offer {
  font-weight: 500;
  color: var(--color-accent)
}
.po-price {
  display: flex;
  align-items: baseline;
  gap: .4rem
}
.po-price b {
  font-family: var(--font-serif);
  font-weight: 450;
  font-size: clamp(2.4rem, 6vw, 3rem);
  letter-spacing: -.02em;
  line-height: 1.05;
  font-variant-numeric: lining-nums tabular-nums
}
.po-price span {
  color: var(--color-text-muted);
  font-size: .9rem
}
.po-billed {
  color: var(--color-text-muted);
  font-size: .9rem;
  font-variant-numeric: tabular-nums
}
.po-save {
  margin-top: .75rem;
  color: var(--color-save);
  font-size: .92rem;
  font-weight: 600
}
.plan-total {
  margin: .75rem 0 0;
  font-family: var(--font-serif);
  font-size: 1.35rem;
  line-height: 1.35;
  font-variant-numeric: lining-nums tabular-nums
}
@media (max-width:860px) {
  .plan-section:has(> .plan-aside) {
    grid-template-columns: minmax(0,1fr)
  }
  .plan-aside {
    position: static
  }
}
@media (max-width:820px) {
  .plan-options {
    grid-template-columns: 1fr
  }
  .plan-option-best {
    order: -1
  }
}
.api-secret code {
  font-family: var(--font-mono);
  word-break: break-all
}
.api-secret-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin: .35rem 0
}
.api-row-actions {
  white-space: nowrap;
  display: flex;
  gap: .4rem
}
.api-create {
  margin: 1rem 0
}
.api-create summary {
  cursor: pointer;
  font-weight: 600
}
.api-create-form {
  display: grid;
  gap: .9rem;
  margin-top: .75rem;
  max-width: 36rem
}
.api-create-form input[type=text] {
  display: block;
  width: 100%;
  margin-top: .25rem
}
.api-tier-section + .api-tier-section {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-border)
}
.dev-code {
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: .8rem 1rem;
  overflow-x: auto;
  font-family: var(--font-mono);
  font-size: .85rem;
  line-height: 1.5
}
.launch-metrics-table th[scope=row] {
  font-weight: 600;
  text-align: left
}
.launch-metrics-table td {
  vertical-align: top
}
.launch-status {
  font-weight: 600;
  white-space: nowrap
}
.launch-status.is-good {
  color: var(--color-good)
}
.launch-status.is-below {
  color: var(--color-accent)
}
.launch-status.is-none {
  color: var(--color-text-muted);
  font-weight: 500
}
.launch-metrics-elsewhere {
  margin: .5rem 0 0;
  padding-left: 1.2rem;
  display: grid;
  gap: .4rem;
  max-width: 70ch
}
.leaving-reasons {
  border: 0;
  padding: 0;
  margin: 1rem 0 .75rem;
  display: grid;
  gap: .4rem
}
.leaving-reasons legend {
  font-weight: 600;
  margin-bottom: .5rem;
  padding: 0
}
.leaving-reasons label {
  display: flex;
  align-items: center;
  gap: .5rem;
  cursor: pointer
}
.leaving-comment {
  width: 100%;
  max-width: 36rem;
  padding: .5rem .65rem;
  border: 1px solid var(--color-input-border);
  border-radius: var(--radius-md);
  font: inherit;
  background: var(--color-surface);
  color: var(--color-text)
}
.leaving-comments {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .75rem;
  max-height: 24rem;
  overflow-y: auto
}
.leaving-comments li {
  border-bottom: 1px solid var(--color-border);
  padding-bottom: .6rem
}
.leaving-comments p {
  margin: 0
}
.growth-scroll {
  overflow-x: auto
}
.growth-scroll .admin-table {
  min-width: 72rem
}
.cohort-table .cohort-cell {
  background: color-mix(in srgb,var(--color-good) var(--cohort-strength,0),transparent)
}
.cohort-table .cohort-cell span {
  color: var(--cohort-ink,inherit)
}
.cost-form .cost-note {
  flex: 1 1 14rem
}
.cost-form .cost-note input {
  width: 100%
}
.card-landing {
  padding-block: 3rem
}
.card-app-banner {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface-alt);
  padding: 1rem 1.25rem;
  margin: 0 0 1.5rem;
  display: grid;
  gap: .75rem
}
.card-app-banner p {
  margin: 0
}
.card-app-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem
}
.card-batch {
  border-top: 2px solid var(--color-ink);
  padding-top: .75rem;
  margin-top: 1.25rem
}
.card-batch-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem
}
.card-batch-head h4 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.15rem
}
.card-batch-head p {
  margin: .25rem 0 0
}
.card-code-actions {
  white-space: nowrap
}
.card-assign-results {
  list-style: none;
  margin: .5rem 0 0;
  padding: 0;
  display: grid;
  gap: .25rem
}
.admin-check {
  flex-direction: row;
  align-items: center;
  gap: .4rem
}
.dash-cards {
  margin-top: 2rem;
  border-top: 2px solid var(--color-ink);
  padding-top: .75rem
}
.dash-cards h2 {
  margin-top: 0
}
.side-content-col {
  min-width: 0
}
#growth-cohorts-tbody th[scope=row],
.growth-scroll th[scope=row] {
  white-space: nowrap
}
.admin-compact-list {
  margin: 0;
  padding-left: 1rem;
  font-size: .85rem
}
.admin-compact-list li {
  margin: 0
}
:root {
  --bundle-bg: #fdf1ea;
  --bundle-border: #b8421a;
  --bundle-ink: #7a2a0e;
  --bundle-row: #fdf6f2;
  --bundle-line: #f1c9b6
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme=light]) {
    --bundle-bg: #3a2418;
    --bundle-border: #f07a45;
    --bundle-ink: #f5b08f;
    --bundle-row: #2a1d16;
    --bundle-line: #5a3524
  }
}
:root[data-theme=dark] {
  --bundle-bg: #3a2418;
  --bundle-border: #f07a45;
  --bundle-ink: #f5b08f;
  --bundle-row: #2a1d16;
  --bundle-line: #5a3524
}
.pb-layout {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem 2.5rem;
  align-items: flex-start
}
.pb-main {
  flex: 999 1 38rem;
  min-width: 0;
  counter-reset: plan-step
}
.pb-layout .plan-aside {
  flex: 1 1 18rem;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .85rem;
  background: var(--color-surface)
}
.pb-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(14rem,1fr));
  gap: 1rem
}
.pb-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .7rem
}
.pb-card-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .5rem
}
.pb-card h3 {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 1.15rem;
  font-weight: 700
}
.pb-price {
  margin: 0;
  font-size: .9rem;
  color: var(--color-text-muted)
}
.pb-price s {
  margin-right: .3rem
}
.pb-price b {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--color-text)
}
.pb-card .plan-includes {
  margin: 0
}
.pb-bundle {
  position: relative;
  border: 2px solid var(--bundle-border);
  background: var(--bundle-bg);
  border-radius: .6rem;
  padding: 1.5rem;
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 2rem;
  align-items: center
}
.pb-bundle-tag {
  position: absolute;
  top: -.85rem;
  left: 1.25rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: .25rem .75rem;
  border-radius: var(--radius-pill);
  background: var(--bundle-border);
  color: var(--color-on-accent)
}
.pb-bundle h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: 1.8rem;
  color: var(--bundle-ink)
}
.pb-bundle-text {
  flex: 1 1 18rem;
  min-width: 0;
  display: grid;
  gap: .4rem
}
.pb-bundle-text p {
  margin: 0
}
.pb-bundle-side {
  flex: 0 1 16rem;
  display: grid;
  gap: .5rem;
  text-align: center
}
.pb-save {
  color: var(--color-save);
  font-weight: 700;
  font-size: .92rem
}
.pb-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .75rem
}
.pb-toolbar .plan-step {
  margin: 0
}
.pb-search {
  flex: 1 1 14rem;
  max-width: 20rem;
  min-height: 2.75rem;
  padding: .55rem .85rem;
  border: 1px solid var(--color-input-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-text);
  font: inherit;
  box-sizing: border-box
}
.pb-grid-wrap {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow-x: auto
}
.pb-grid {
  width: 100%;
  min-width: 34rem;
  border-collapse: collapse;
  font-size: .95rem
}
.pb-grid td,
.pb-grid th {
  border-bottom: 1px solid var(--color-border);
  padding: .45rem .5rem
}
.pb-grid thead th {
  font-size: .85rem;
  font-weight: 700;
  text-align: center;
  vertical-align: bottom;
  border-bottom-color: var(--color-border-strong)
}
.pb-grid thead th:first-child {
  text-align: left;
  font-weight: 600;
  color: var(--color-text-muted);
  padding-left: 1rem
}
.pb-grid .pb-col {
  width: 5.5rem;
  text-align: center
}
.pb-grid .pb-col label {
  display: grid;
  justify-items: center;
  gap: .35rem;
  cursor: pointer
}
.pb-grid input[type=checkbox] {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0;
  accent-color: var(--color-accent);
  cursor: pointer
}
.pb-grid input[type=checkbox]:disabled {
  cursor: not-allowed
}
.pb-grid .pb-b {
  background: var(--bundle-bg);
  border-left: 1px solid var(--bundle-line)
}
.pb-grid thead .pb-b {
  color: var(--bundle-ink)
}
.pb-head-company td,
.pb-head-company th {
  background: var(--color-surface-alt)
}
.pb-head-group td,
.pb-head-group th {
  background: var(--color-surface-alt)
}
.pb-head-company .pb-fold {
  font-size: 1rem
}
.pb-fold {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  min-height: 2.5rem;
  padding: 0 .4rem;
  border: 0;
  background: 0 0;
  color: var(--color-text);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  text-align: left
}
.pb-fold svg {
  width: .85rem;
  height: .85rem;
  transition: transform .15s;
  flex: none
}
.pb-fold[aria-expanded=true] svg {
  transform: rotate(90deg)
}
.pb-fold .meta {
  font-weight: 400;
  font-size: .85rem
}
.pb-indent-1 {
  padding-left: 1.6rem!important
}
.pb-indent-2 {
  padding-left: 2.8rem!important
}
.pb-row th {
  font-weight: 500;
  text-align: left
}
.pb-row .meta {
  display: block;
  font-size: .85rem;
  font-weight: 400
}
.pb-row.is-bundle td:not(.pb-b),
.pb-row.is-bundle th {
  background: var(--bundle-row)
}
.pb-tag {
  display: inline-block;
  margin-left: .4rem;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: .1rem .5rem;
  border-radius: var(--radius-pill);
  background: var(--bundle-border);
  color: var(--color-on-accent);
  vertical-align: .1rem
}
.pb-line {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: baseline
}
.pb-line span:last-child {
  white-space: nowrap;
  font-weight: 600
}
.pb-line small {
  display: block;
  color: var(--color-text-muted);
  font-size: .82rem
}
.pb-line.is-bundle {
  padding: .6rem .75rem;
  margin: 0 -.75rem;
  border-radius: var(--radius-md);
  background: var(--bundle-bg);
  border: 1px solid var(--bundle-line)
}
.pb-total {
  border-top: 1px solid var(--color-border-strong);
  padding-top: .75rem;
  display: flex;
  justify-content: space-between;
  align-items: baseline
}
.pb-total b {
  font-family: var(--font-serif);
  font-size: 1.8rem;
  font-weight: 500
}
.pb-nudge {
  border: 1px dashed var(--bundle-border);
  background: var(--bundle-bg);
  border-radius: var(--radius-md);
  padding: .75rem .85rem;
  display: grid;
  gap: .5rem;
  font-size: .9rem
}
.pb-layout .plan-aside .btn {
  min-height: 3rem;
  width: 100%
}
@media (max-width:900px) {
  .pb-layout .plan-aside {
    position: static
  }
}
.pb-pill {
  margin: 0 0 0 auto;
  font-family: var(--font-sans)
}
.pb-lines {
  display: grid;
  gap: .75rem
}