:root {
  color-scheme: light;
  --ink: #212d3b;
  --muted: #858e9b;
  --paper: #f2f2e8;
  --card: #fff;
  --line: #d9d9d4;
  --accent: #0c2340;
  --accent-deep: #091b32;
  --moss: #0c2340;
  --forest: #212d3b;
  --sage: #d7e8f8;
  --brand-blue: #408fda;
  --sand: #eeebe3;
  --tan: #f8edc8;
  --danger: #a94735;
  --warning: #e07a3a;
  --flow-accent: #0c2340;
  --flow-muted: #596270;
  --sidebar: 15.625rem;
  --shell-breakpoint: 900px;
  --page-pad: clamp(1rem, 5vw, 1.75rem);
  --nav-height: 5rem;
  --mobile-header-height: 5.5rem;
  --radius-card: 1.6rem;
  --shadow-card: 0 1px 2px rgba(33, 45, 59, .12), 0 10px 28px rgba(33, 45, 59, .04);
  --font-sans: "DM Sans", "Segoe UI", sans-serif;
  --font-prose: Lora, "Iowan Old Style", Georgia, serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
}

[data-theme="forest"] {
  --ink: #1d2938;
  --muted: #858e9b;
  --paper: #f7f5ef;
  --card: #fff;
  --line: #d9d9d4;
  --accent: #2f7d50;
  --accent-deep: #235d42;
  --moss: #2f7d50;
  --forest: #1d2938;
  --sage: #dcefe5;
  --sand: #eeebe3;
  --tan: #f8edc8;
  --danger: #a94735;
  --warning: #e07a3a;
  --flow-accent: #216c64;
  --flow-muted: #596270;
  --shadow-card: 0 1px 2px rgba(29, 41, 56, .12), 0 10px 28px rgba(29, 41, 56, .04);
}

[data-theme="teal"] {
  --accent: #1f5c56;
  --accent-deep: #163f3b;
  --moss: #1f5c56;
  --sage: #dceae7;
  --flow-accent: #1f5c56;
  --paper: #f5f3ee;
  --ink: #1b2430;
  --forest: #1b2430;
}

[data-theme="navy"] {
  --accent: #0c2340;
  --accent-deep: #091b32;
  --moss: #0c2340;
  --sage: #d7e8f8;
  --brand-blue: #408fda;
  --flow-accent: #0c2340;
  --paper: #f2f2e8;
  --ink: #212d3b;
  --forest: #212d3b;
}

[data-theme="burgundy"] {
  --accent: #8b3a4a;
  --accent-deep: #6b2a38;
  --moss: #8b3a4a;
  --sage: #f3e0e4;
  --flow-accent: #8b3a4a;
  --paper: #faf6f4;
  --ink: #3d1f24;
  --forest: #3d1f24;
}

[data-theme="plum"] {
  --accent: #6b4c7a;
  --accent-deep: #4e3659;
  --moss: #6b4c7a;
  --sage: #eee4f2;
  --flow-accent: #6b4c7a;
  --paper: #f7f4f8;
  --ink: #2f2236;
  --forest: #2f2236;
}

[data-theme="slate"] {
  --accent: #4a5568;
  --accent-deep: #2d3748;
  --moss: #4a5568;
  --sage: #e2e8f0;
  --flow-accent: #4a5568;
  --paper: #f4f5f7;
  --ink: #2d3748;
  --forest: #2d3748;
}

[x-cloak] { display: none !important; }

.notification-shell { position: relative; }
.notification-trigger {
  position: relative;
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  place-items: center;
  overflow: visible;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--card);
  color: var(--ink);
}
.notification-trigger svg { width: 1.3rem; height: 1.3rem; grid-area: 1 / 1; }
.notification-trigger:focus-visible,
.notification-close:focus-visible,
.notification-entry:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 35%, transparent);
  outline-offset: 2px;
}
.notification-badge {
  position: absolute;
  top: -0.12rem;
  right: -0.12rem;
  z-index: 1;
  display: grid;
  min-width: 1.2rem;
  height: 1.2rem;
  padding: 0 .28rem;
  place-items: center;
  border: 2px solid var(--paper);
  border-radius: 999px;
  background: #dc2626;
  color: #fff;
  font: 700 .68rem/1 var(--font-sans);
  letter-spacing: 0;
  box-shadow: 0 1px 2px rgba(33, 45, 59, .2);
}
.notification-badge.is-dot {
  top: 0.08rem;
  right: 0.08rem;
  min-width: .72rem;
  width: .72rem;
  height: .72rem;
  padding: 0;
}
.notification-overlay {
  position: fixed;
  inset: 0;
  z-index: 39;
  background: rgba(18, 29, 43, 0.48);
}
.notification-panel {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 40;
  max-height: min(82dvh, 42rem);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px 28px 0 0;
  background: var(--card);
  box-shadow: 0 -16px 42px rgba(36, 28, 22, 0.18);
}
.notification-panel-head,
.notification-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem;
  border-bottom: 1px solid var(--line);
}
.notification-panel-head h2 {
  margin: 0;
  font: 650 1.55rem/1.2 var(--font-sans);
}
.notification-close {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: 1.6rem;
}
.notification-list {
  max-height: min(56dvh, 29rem);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.notification-list form { margin: 0; }
.notification-entry {
  display: grid;
  width: 100%;
  gap: 0.28rem;
  margin: 0;
  padding: 0.9rem 1rem;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: var(--card);
  color: var(--ink);
  text-align: left;
}
.notification-entry:hover { background: var(--sand); }
.notification-entry.is-unread { background: color-mix(in srgb, var(--sage) 45%, white); }
.notification-entry-top {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.5rem;
}
.notification-unread-label {
  border-radius: 999px;
  background: var(--accent);
  padding: 0.15rem 0.42rem;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}
.notification-entry small { color: var(--muted); }
.notification-actions {
  flex-wrap: wrap;
  border-top: 1px solid var(--line);
  border-bottom: 0;
  font-size: 0.9rem;
  font-weight: 700;
}
.notification-actions form { margin: 0; }
.notification-actions button,
.notification-actions a {
  margin: 0;
  padding: 0.55rem;
  border: 0;
  background: transparent;
  color: var(--accent-deep);
}
.notification-empty { padding: 2rem 1rem; text-align: center; }
.notification-empty p { color: var(--muted); font-family: var(--font-prose); }
.notifications-open { overflow: hidden; }
.sheet-handle { width: 2.7rem; height: .3rem; margin: .65rem auto 0; border-radius: 1rem; background: var(--line); }

@media (min-width: 900px) {
  .notification-overlay { display: none !important; }
  .notification-panel {
    position: absolute;
    top: calc(100% + 0.6rem);
    right: 0;
    bottom: auto;
    left: auto;
    width: min(39rem, calc(100vw - var(--sidebar) - 2rem));
    max-height: min(38rem, calc(100vh - 5rem));
    border-radius: 18px;
    box-shadow: 0 18px 48px rgba(36, 28, 22, 0.18);
  }
  .notification-list { max-height: min(25rem, calc(100vh - 15rem)); }
}

/* Settings page */
.settings-page .app-main { max-width: none; }
.settings-page-shell { max-width: none; }
.settings-head { margin-bottom: 1.3rem; }
.settings-kicker {
  margin: 0 0 .25rem;
  color: var(--muted);
  font: 600 .72rem/1.2 ui-monospace, monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.settings-head h1 { margin: 0; font: 650 2rem/1.05 var(--font-sans); }
.settings-lede { margin: .45rem 0 0; color: var(--muted); font: 400 1.02rem/1.4 var(--font-prose); max-width: 36rem; }
.settings-workspace { display: grid; gap: 1.2rem; }
.settings-stage { display: grid; gap: 1.5rem; min-width: 0; }
.settings-stage.htmx-swapping { opacity: .45; }
.settings-stage.htmx-settling { opacity: 1; }
.settings-rail {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  overflow: visible;
  padding-bottom: .15rem;
}
.settings-rail-group { display: contents; }
.settings-rail-kicker {
  margin: 0;
  color: var(--muted);
  font: 700 .68rem/1.2 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.settings-rail a {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: .45rem;
  min-height: 2.45rem;
  padding: .4rem .75rem;
  border: 1px solid transparent;
  border-radius: .75rem;
  color: var(--ink);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.settings-rail a svg { width: 1.05rem; height: 1.05rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.settings-rail a.is-active { border-color: var(--accent); background: #fff; box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent); }
@media (max-width: 899px) {
  .settings-page .settings-head { display: none; }
  .settings-page .app-main { padding-top: .55rem; }
  .settings-page .settings-rail { display: none; }
  .settings-page .manage-switcher {
    position: sticky;
    top: 5.5rem;
    z-index: 28;
    margin: 0 calc(-1 * var(--page-pad)) .55rem;
    padding: .15rem var(--page-pad) .4rem;
    background: color-mix(in srgb, var(--paper) 96%, transparent);
    box-shadow: 0 14px 18px -14px rgba(29, 41, 56, .28);
    backdrop-filter: blur(12px);
  }
  .settings-shop-routes { margin-top: .85rem; }
  .settings-shop-routes-copy { margin: .25rem 0 .65rem; font-size: .82rem; }
  .settings-route-matrix-wrap { overflow: visible; }
  .settings-route-matrix,
  .settings-route-matrix thead,
  .settings-route-matrix tbody,
  .settings-route-matrix tr,
  .settings-route-matrix th,
  .settings-route-matrix td { display: block; width: 100%; }
  .settings-route-matrix thead { display: none; }
  .settings-route-matrix tbody { display: grid; gap: .55rem; }
  .settings-route-matrix tbody tr {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: .75rem;
    background: #fff;
  }
  .settings-route-matrix tbody th {
    padding: .55rem .7rem .35rem;
    border-bottom: 0;
  }
  .settings-route-matrix tbody tr + tr th { margin-top: 0; }
  .settings-route-email { display: none; }
  .settings-route-matrix td {
    padding: 0;
    border-bottom: 0;
  }
  .settings-route-shop { display: block; font: 500 .82rem/1.2 var(--font-sans); }
  .settings-route-cell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    justify-content: stretch;
    gap: .75rem;
    min-height: 2.35rem;
    padding: .4rem .7rem;
    border-top: 1px solid var(--line);
  }
}
.ai-term {
  position: relative;
  display: inline;
  cursor: help;
  border-bottom: 1px dotted color-mix(in srgb, var(--muted) 65%, transparent);
}
.ai-term-tip {
  position: absolute;
  left: 0;
  top: calc(100% + .4rem);
  z-index: 40;
  width: max-content;
  max-width: 16.5rem;
  padding: .4rem .6rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: #fff;
  color: var(--ink);
  box-shadow: var(--shadow-card);
  font: 600 .78rem/1.3 var(--font-sans);
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.ai-term:hover .ai-term-tip,
.ai-term:focus-visible .ai-term-tip { opacity: 1; visibility: visible; }
.settings-card-head h2 .ai-term,
.subscription-fills-top h3 .ai-term { font: inherit; }
.settings-card {
  min-width: 0;
  max-width: 100%;
  height: fit-content;
  padding: 1.2rem 1.25rem 1.25rem;
  border: 1px solid var(--line);
  border-radius: 1.15rem;
  background: #fff;
  box-shadow: var(--shadow-card);
}
.settings-card-head { display: flex; align-items: flex-start; gap: .85rem; margin-bottom: 1.15rem; }
.settings-card-icon {
  display: grid;
  width: 2.45rem;
  height: 2.45rem;
  flex: none;
  place-items: center;
  border-radius: .75rem;
  background: var(--sage);
  color: var(--accent-deep);
}
.settings-card-icon svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.settings-card-head h2 { margin: 0; font: 650 1.35rem/1.15 var(--font-sans); }
.settings-card-head p { margin: .3rem 0 0; color: var(--muted); font: 400 .9rem/1.4 var(--font-prose); }
.settings-form fieldset { margin: 0; padding: 0; border: 0; }
.preference-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: .7rem 0; border-top: 1px solid var(--line); cursor: pointer; }
.preference-row:first-of-type { border-top: 0; }
.preference-row strong, .preference-row span { display: block; }
.preference-row span span { margin-top: .15rem; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.preference-row input { appearance: none; width: 3rem; height: 1.75rem; border-radius: 999px; background: #bfc4ca; box-shadow: inset 0 0 0 2px transparent; transition: background .15s; }
.preference-row input::after { display: block; width: 1.35rem; height: 1.35rem; margin: .2rem; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(0,0,0,.2); content: ""; transition: transform .15s; }
.preference-row input:checked { background: var(--accent); }
.preference-row input:checked::after { transform: translateX(1.25rem); }
.settings-shop-routes { margin: 1.25rem 0 0; padding: 0; border: 0; }
.settings-shop-routes legend { padding: 0; font: 650 1.05rem/1.2 var(--font-sans); }
.settings-shop-routes-copy { margin: .35rem 0 1rem; color: var(--muted); font: 400 .9rem/1.4 var(--font-prose); }
.settings-shop-route { margin-top: 1rem; }
.settings-shop-route h3 { margin: 0 0 .2rem; font: 650 1rem/1.2 var(--font-sans); }
.settings-route-matrix-wrap { min-width: 0; overflow-x: auto; }
.settings-route-matrix { width: 100%; border-collapse: collapse; }
.settings-route-matrix th,
.settings-route-matrix td { padding: .55rem .65rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.settings-route-matrix thead th { color: var(--muted); font: 700 .68rem/1.2 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; }
.settings-route-matrix tbody th { font: 650 .9rem/1.25 var(--font-sans); }
.settings-route-name { display: block; }
.settings-route-email { display: block; margin-top: .1rem; color: var(--muted); font: 400 .75rem/1.3 var(--font-sans); }
.settings-route-cell { display: flex; align-items: center; justify-content: center; min-height: 2.2rem; cursor: pointer; }
.settings-route-shop { display: none; }
.settings-route-cell input {
  appearance: none;
  width: 1.15rem;
  height: 1.15rem;
  margin: 0;
  border: 1.5px solid var(--line-strong, #c5c0b5);
  border-radius: .3rem;
  background: #fff;
}
.settings-route-cell input:checked {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: inset 0 0 0 2px #fff;
}
.settings-route-cell input:focus-visible { outline: 2.5px solid var(--accent); outline-offset: 2px; }
.settings-field-label, .settings-readonly span { display: block; margin-bottom: .35rem; font-weight: 600; }
.settings-readonly { display: block; margin-bottom: .9rem; }
.settings-readonly input {
  width: 100%;
  min-height: 2.7rem;
  padding: .55rem .8rem;
  border: 0;
  border-radius: .7rem;
  background: var(--sand);
  color: var(--ink);
  font: 400 1rem var(--font-sans);
}
.settings-memberships { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.settings-memberships li { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .8rem; border-radius: .7rem; background: var(--sand); }
.settings-memberships strong { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.settings-card.settings-account { padding-bottom: 1.15rem; }
.settings-card.settings-account .settings-card-head { margin-bottom: .85rem; }
.settings-card.settings-account .account-layout {
  display: grid;
  gap: 1rem;
  min-width: 0;
}
.settings-card.settings-account .account-identity-col,
.settings-card.settings-account .account-roles-col { min-width: 0; }
.settings-card.settings-account .settings-field { margin: 0; }
.settings-card.settings-account .settings-field-label { margin-bottom: .35rem; }
.settings-card.settings-account .account-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  padding: .75rem .9rem;
  border-radius: .75rem;
  background: var(--sand);
}
.settings-card.settings-account .account-row-name {
  min-width: 0;
  font: 650 .95rem/1.3 var(--font-sans);
  overflow-wrap: anywhere;
}
.settings-card.settings-account .account-role {
  flex: none;
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  padding: 0 .7rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--muted) 16%, #fff);
  color: var(--muted);
  font: 650 .7rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.settings-card.settings-account .settings-memberships { gap: .45rem; }
.settings-card.settings-account .settings-memberships li {
  padding: .75rem .9rem;
  border-radius: .75rem;
}
.settings-card.settings-account .mobile-settings-logout { margin: .85rem 0 0; }
.settings-card.settings-account .account-danger {
  max-width: 28rem;
  margin: 1rem 0 0;
  padding: .85rem .95rem .95rem;
  border: 1px solid #dfaaa3;
  border-radius: .85rem;
  background: #f8e4e1;
}
.settings-card.settings-account .account-danger h3 {
  margin: 0;
  color: var(--danger);
  font: 650 1rem/1.2 var(--font-sans);
}
.settings-card.settings-account .account-danger > p {
  margin: .3rem 0 .7rem;
  color: var(--muted);
  font: 400 .82rem/1.4 var(--font-prose);
}
.settings-card.settings-account .account-danger .settings-readonly { margin-bottom: .55rem; }
.settings-card.settings-account .account-danger .settings-readonly input {
  background: #fff;
  color: #000;
  caret-color: #000;
  border: 1px solid rgba(33, 45, 59, 0.16);
}
.settings-card.settings-account .account-danger .settings-save {
  margin-top: 0;
  min-width: 0;
  min-height: 2.55rem;
  padding: .5rem 1rem;
}
.settings-card.settings-mail .mail-layout {
  display: grid;
  gap: 1.75rem;
  min-width: 0;
}
.settings-card.settings-mail .mail-fields-col,
.settings-card.settings-mail .mail-status-col { min-width: 0; }
.settings-card.settings-mail .mail-fields-col .settings-help { margin-bottom: .85rem; }
.settings-card.settings-mail .mail-fields-col .settings-save { margin-top: 0; }
.settings-card.settings-mail .mail-status-col {
  display: grid;
  align-content: start;
  gap: .45rem;
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--sand);
}
.settings-card.settings-mail .mail-status-col h3 {
  margin: 0;
  font: 650 1.05rem/1.2 var(--font-sans);
}
.settings-card.settings-mail .mail-status-rows { margin: .15rem 0 0; }
.settings-card.settings-mail .mail-status-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  padding: .65rem 0;
  border-bottom: 1px solid var(--line);
  font-size: .9rem;
}
.settings-card.settings-mail .mail-status-row:last-child { border-bottom: 0; }
.settings-card.settings-mail .mail-status-row span { color: var(--muted); }
.settings-card.settings-mail .mail-status-row strong {
  font-weight: 650;
  text-align: right;
  overflow-wrap: anywhere;
}
.settings-save { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 12rem; margin-top: 1.15rem; text-decoration: none; }
.settings-card.settings-danger {
  padding: 1.75rem 1.85rem 2.5rem;
  border-color: #dfaaa3;
  background: #f8e4e1;
}
.settings-card.settings-danger h2 { color: var(--danger); }
.settings-card.settings-danger .settings-card-icon {
  background: color-mix(in srgb, var(--danger) 16%, #fff);
  color: var(--danger);
}
.settings-card.settings-danger .settings-readonly input {
  background: #fff;
  color: #000;
  caret-color: #000;
  border: 1px solid rgba(33, 45, 59, 0.16);
}
.settings-card.settings-danger .settings-readonly input::placeholder { color: var(--muted); }
.settings-card.settings-danger .settings-save {
  margin-top: 1.25rem;
}
.settings-save.is-danger {
  background: var(--danger);
  color: #fff;
  border: 0;
  border-radius: 999px;
  min-height: 3.35rem;
  padding: .75rem 1.3rem;
}
.settings-save.is-danger:disabled { opacity: .45; }
.affiliate-portal-shell {
  width: 100%;
  max-width: none;
  margin: 0;
}
.affiliate-panel.is-dashboard {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
body.affiliate-portal .app-main {
  max-width: none;
}
@media (min-width: 900px) {
  body.affiliate-portal .app-main {
    padding: 1.15rem 1.75rem 2.25rem;
  }
  body.affiliate-portal.is-dash .desktop-utility { display: none; }
}
.affiliate-viewing {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  margin: 0 0 1rem;
  padding: .75rem 1rem;
  border-radius: 1rem;
  background: #d7f3e3;
  color: var(--ink);
  font: 600 .88rem/1.3 var(--font-sans);
}
.affiliate-viewing a {
  color: var(--accent-deep);
  font-weight: 700;
  text-decoration: none;
}
.affiliate-hero {
  display: grid;
  gap: .85rem;
  margin: 0 0 1.25rem;
}
.affiliate-hero-card {
  padding: 1.15rem 1.2rem 1.2rem;
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  background: var(--sand);
}
.affiliate-hero-card.is-ready {
  background: #fff;
  box-shadow: var(--shadow-card);
}
.affiliate-hero-card span {
  display: block;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.affiliate-hero-card strong {
  display: block;
  margin: .45rem 0 .2rem;
  font: 700 clamp(1.8rem, 4vw, 2.35rem)/1 var(--font-sans);
  letter-spacing: -.03em;
}
.affiliate-hero-card p {
  margin: 0;
  color: var(--muted);
  font: 400 .9rem/1.4 var(--font-prose);
}
.affiliate-hero-card .settings-save { width: 100%; min-width: 0; margin-top: 1rem; }
.affiliate-everyone-totals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
  margin: 0 0 1.15rem;
}
.affiliate-everyone-board {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
}
.affiliate-everyone-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .7rem .85rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--line);
}
.affiliate-everyone-search {
  flex: 1 1 14rem;
  min-width: 0;
}
.affiliate-everyone-search input {
  width: 100%;
  min-height: 2.5rem;
  padding: .45rem .75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: var(--paper);
  font: 500 .95rem/1.2 var(--font-sans);
}
.affiliate-everyone-size {
  display: flex;
  align-items: center;
  gap: .4rem;
  color: var(--muted);
  font: 600 .8rem/1 var(--font-sans);
}
.affiliate-everyone-size select {
  min-height: 2.5rem;
  padding: .35rem .55rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  font: 600 .9rem/1.2 var(--font-sans);
}
.affiliate-everyone-status {
  margin: 0;
  color: var(--muted);
  font: 600 .82rem/1.2 var(--font-sans);
}
.affiliate-everyone-pager {
  display: flex;
  gap: .4rem;
  margin-left: auto;
}
.affiliate-everyone-pager button {
  min-height: 2.5rem;
  padding: .4rem .8rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  color: var(--ink);
  font: 700 .8rem/1 var(--font-sans);
  cursor: pointer;
}
.affiliate-everyone-pager button:disabled {
  opacity: .45;
  cursor: default;
}
.affiliate-everyone-table-wrap {
  width: 100%;
  overflow-x: auto;
}
.affiliate-everyone-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
}
.affiliate-everyone-table th,
.affiliate-everyone-table td {
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
  font-variant-numeric: tabular-nums;
}
.affiliate-everyone-table thead th {
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
  background: var(--sand);
}
.affiliate-everyone-table thead button {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}
.affiliate-everyone-table thead button::after {
  content: "↕";
  font-size: .85em;
  opacity: .35;
}
.affiliate-everyone-table thead button[aria-sort="ascending"]::after {
  content: "↑";
  opacity: 1;
}
.affiliate-everyone-table thead button[aria-sort="descending"]::after {
  content: "↓";
  opacity: 1;
}
.affiliate-everyone-table tbody th { font-weight: 400; }
.affiliate-everyone-row { cursor: pointer; }
.affiliate-everyone-row:hover td,
.affiliate-everyone-row:hover th { background: var(--paper); }
.affiliate-everyone-person {
  display: grid;
  gap: .35rem;
  min-width: 16rem;
}
.affiliate-everyone-person > a {
  color: inherit;
  text-decoration: none;
}
.affiliate-everyone-person > a strong {
  display: block;
  font: 700 .98rem/1.25 var(--font-sans);
}
.affiliate-everyone-link {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
}
.affiliate-everyone-link code {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--muted);
  font: 600 .78rem/1.3 var(--font-mono);
}
.affiliate-everyone-link button {
  flex: 0 0 auto;
  min-height: 1.85rem;
  padding: .2rem .55rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: #fff;
  color: var(--ink);
  font: 700 .72rem/1 var(--font-sans);
  cursor: pointer;
}
.affiliate-everyone-disabled {
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.affiliate-everyone-label {
  display: block;
  margin-top: .2rem;
  color: var(--muted);
  font: 600 .72rem/1.2 var(--font-sans);
}
.affiliate-everyone-row.is-disabled { opacity: .65; }
.affiliate-everyone-board > .affiliate-empty { margin: 0; padding: 1.2rem 1rem; }
@media (min-width: 700px) {
  .affiliate-hero { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 960px) {
  .affiliate-everyone-totals { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.affiliate-board {
  overflow: hidden;
  margin-top: 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
}
.affiliate-board-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .7rem .85rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--line);
}
.affiliate-board-search { flex: 1 1 14rem; min-width: 0; }
.affiliate-board-search input {
  width: 100%;
  min-height: 2.5rem;
  padding: .45rem .75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: var(--paper);
  font: 500 .95rem/1.2 var(--font-sans);
}
.affiliate-board-size {
  display: flex;
  align-items: center;
  gap: .4rem;
  color: var(--muted);
  font: 600 .8rem/1 var(--font-sans);
}
.affiliate-board-size select {
  min-height: 2.5rem;
  padding: .35rem .55rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  font: 600 .9rem/1.2 var(--font-sans);
}
.affiliate-board-status {
  margin: 0;
  color: var(--muted);
  font: 600 .82rem/1.2 var(--font-sans);
}
.affiliate-board-pager { display: flex; gap: .4rem; margin-left: auto; }
.affiliate-board-pager button {
  min-height: 2.5rem;
  padding: .4rem .8rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  color: var(--ink);
  font: 700 .8rem/1 var(--font-sans);
  cursor: pointer;
}
.affiliate-board-pager button:disabled { opacity: .45; cursor: default; }
.affiliate-board-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.affiliate-board-item {
  padding: .85rem 1rem .9rem;
  border-bottom: 1px solid var(--line);
}
.affiliate-board-item:last-child { border-bottom: 0; }
.affiliate-board-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .65rem 1rem;
}
.affiliate-board-who { min-width: 0; }
.affiliate-board-who strong {
  display: block;
  font: 700 1rem/1.25 var(--font-sans);
}
.affiliate-board-who p {
  margin: .2rem 0 0;
  color: var(--muted);
  font: 500 .82rem/1.35 var(--font-sans);
}
.affiliate-board-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.affiliate-board-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 2.15rem;
  padding: 0 .8rem;
  border: 0;
  border-radius: .7rem;
  font: 700 .82rem/1 var(--font-sans);
  cursor: pointer;
}
.affiliate-board-btn.is-quiet {
  background: var(--sand);
  color: var(--ink);
}
.affiliate-board-btn.is-enable {
  background: var(--forest);
  color: #fff;
}
.affiliate-board-btn.is-busy,
.ui-primary.is-busy {
  opacity: .82;
  cursor: wait;
}
.ui-primary.is-sending,
.ui-secondary.is-sending,
.ui-primary.is-sent,
.ui-secondary.is-sent {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  opacity: 1;
  cursor: default;
}
.ui-primary.is-sent,
.ui-primary.is-sent:hover,
.ui-secondary.is-sent,
.ui-secondary.is-sent:hover {
  background: #1b7a4a;
  border-color: #1b7a4a;
  box-shadow: 0 4px 14px rgba(27, 122, 74, 0.28);
  color: #fff;
}
.ui-primary.is-sending:active,
.ui-primary.is-sent:active,
.ui-secondary.is-sending:active,
.ui-secondary.is-sent:active {
  transform: none;
}
.btn-spinner {
  display: inline-block;
  width: .85rem;
  height: .85rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: auth-spin .7s linear infinite;
}
.affiliate-board-answers { margin-top: .55rem; }
.affiliate-board-answers summary {
  cursor: pointer;
  color: var(--muted);
  font: 700 .75rem/1.2 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.affiliate-board-answers dl {
  display: grid;
  gap: .55rem;
  margin: .6rem 0 0;
}
.affiliate-board-answers dt {
  color: var(--muted);
  font: 700 .72rem/1.2 var(--font-sans);
}
.affiliate-board-answers dd {
  margin: .15rem 0 0;
  white-space: pre-wrap;
  font: 500 .9rem/1.4 var(--font-sans);
}
.affiliate-board-table-wrap { width: 100%; overflow-x: auto; }
.affiliate-board-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
}
.affiliate-board-table th,
.affiliate-board-table td {
  padding: .7rem 1rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
  font-variant-numeric: tabular-nums;
}
.affiliate-board-table thead th {
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
  background: var(--sand);
}
.affiliate-board-table tbody th { font-weight: 400; }
.affiliate-board-table tbody th strong {
  display: block;
  font: 700 .95rem/1.3 var(--font-sans);
}
.affiliate-board-table code {
  color: var(--muted);
  font: 600 .8rem/1.3 var(--font-mono);
}
.affiliate-deal-form {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .55rem;
  align-items: center;
}
.affiliate-deal-form label {
  display: flex;
  align-items: center;
  gap: .3rem;
  color: var(--muted);
  font: 600 .8rem/1 var(--font-sans);
}
.affiliate-deal-form input {
  width: 4.2rem;
  min-height: 2.1rem;
  padding: .35rem .45rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--card);
  font: 600 .85rem/1.2 var(--font-sans);
}
.affiliate-deal-form input[name="commission_label"] { width: 8.5rem; }
.affiliate-deal {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .65rem;
  align-items: center;
  margin: .35rem 0 0;
  color: var(--muted);
  font: 600 .8rem/1.3 var(--font-sans);
}
.affiliate-deal-edit {
  min-height: 1.7rem;
  padding: .15rem .55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: 700 .7rem/1 var(--font-sans);
  cursor: pointer;
}
.affiliate-deal-dialog {
  width: min(22rem, calc(100% - 2rem));
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.affiliate-deal-dialog::backdrop { background: rgba(12, 35, 64, .35); }
.affiliate-deal-dialog-body {
  display: grid;
  gap: .85rem;
  padding: 1.2rem 1.2rem 0;
}
.affiliate-deal-dialog-body h2 {
  margin: 0;
  font: 700 1.15rem/1.3 var(--font-serif);
}
.affiliate-deal-dialog-body label {
  display: grid;
  gap: .35rem;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.affiliate-deal-dialog-body input {
  min-height: 2.6rem;
  padding: .55rem .75rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  font: 600 .95rem/1.3 var(--font-sans);
  text-transform: none;
  letter-spacing: 0;
}
.affiliate-deal-dialog-actions { padding-bottom: .4rem; }
.affiliate-deal-dialog form[method="dialog"] { padding: 0 1.2rem 1.1rem; }
.affiliate-board-row.is-disabled { opacity: .7; }
.affiliate-board-disabled {
  display: inline-block;
  margin-top: .2rem;
  color: var(--danger);
  font: 700 .7rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.affiliate-board > .affiliate-empty { margin: 0; padding: 1.2rem 1rem; }
.settings-page .affiliate-panel:not(.is-portal) .affiliates-layout {
  display: grid;
  gap: 1.75rem;
  min-width: 0;
}
.settings-page .affiliate-panel:not(.is-portal) .affiliates-share-col,
.settings-page .affiliate-panel:not(.is-portal) .affiliates-totals-col { min-width: 0; }
.settings-page .affiliate-panel:not(.is-portal) .affiliates-share-col {
  display: grid;
  align-content: start;
  gap: 1rem;
}
.settings-page .affiliate-panel:not(.is-portal) .affiliates-share-col .affiliate-share,
.settings-page .affiliate-panel:not(.is-portal) .affiliates-share-col .affiliate-code-form { margin: 0; }
.settings-page .affiliate-panel:not(.is-portal) .affiliates-totals-col .affiliate-board { margin: 0; }
.settings-page .affiliate-panel:not(.is-portal) .affiliate-referrals {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
}
.settings-page .affiliate-panel:not(.is-portal) .affiliate-referrals .affiliate-empty {
  margin: 0;
  padding: .65rem .85rem;
  border-radius: 0;
  background: #fff;
}
.settings-page .affiliate-panel:not(.is-portal) .affiliate-referral {
  border-radius: 0;
  background: #fff;
  box-shadow: inset 0 -1px 0 var(--line);
}
.settings-page .affiliate-panel:not(.is-portal) .affiliate-referrals > li:last-child .affiliate-referral {
  box-shadow: none;
}
.affiliate-share {
  margin: 0 0 1.15rem;
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--sand);
}
.affiliate-share-top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: .75rem;
}
.affiliate-share-label {
  display: block;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.affiliate-share-code {
  display: block;
  margin: .4rem 0 0;
  color: var(--forest);
  font: 650 1.55rem/1.1 var(--font-sans);
  overflow-wrap: anywhere;
}
.affiliate-share-url {
  display: block;
  margin: .7rem 0 0;
  color: var(--muted);
  font: 400 .78rem/1.4 var(--font-prose);
  overflow-wrap: anywhere;
}
.affiliate-copy {
  flex: none;
  min-height: 2.5rem;
  padding: 0 1rem;
  border: 0;
  border-radius: .75rem;
  background: var(--forest);
  color: #fff;
  font: 700 .8rem/1 var(--font-sans);
  cursor: pointer;
}
.affiliate-code-form {
  margin: 0 0 1.15rem;
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
}
.affiliate-code-hint {
  margin: .45rem 0 0;
  color: var(--muted);
  font: 400 .88rem/1.4 var(--font-prose);
}
.affiliate-code-form .affiliate-code-hint { margin: 0 0 .7rem; }
.affiliate-code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .55rem;
  align-items: center;
}
.affiliate-code-form input {
  min-width: 0;
  min-height: 2.5rem;
  padding: 0 .75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  font: 500 .95rem/1.2 var(--font-sans);
}
.affiliate-board {
  overflow: hidden;
  margin: 0 0 .35rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
}
.affiliate-stats,
.affiliate-pots {
  display: grid;
  gap: 0;
  margin: 0;
}
.affiliate-stats { grid-template-columns: 1fr 1fr 1fr; }
.affiliate-stats.is-period { grid-template-columns: 1fr 1fr; }
.affiliate-stats.is-period .affiliate-stat:nth-child(2n) { border-right: 0; }
.affiliate-stats.is-period .affiliate-stat:nth-child(n + 3) { border-top: 1px solid var(--line); }
.affiliate-period { margin: 0 0 1.15rem; }
.affiliate-period-dates {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .7rem;
}
.affiliate-period-dates label span {
  display: block;
  margin-bottom: .35rem;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.affiliate-period-dates input[type="date"] {
  min-height: 2.5rem;
  padding: .45rem .6rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  font: 500 .9rem/1.2 var(--font-sans);
}
.affiliate-period-presets {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  margin: .75rem 0 0;
}
.affiliate-period-presets a {
  color: var(--forest);
  font: 600 .84rem/1 var(--font-sans);
  text-decoration: none;
}
.affiliate-period-presets a:hover { text-decoration: underline; }
.affiliate-period-presets a[aria-current="page"] { font-weight: 700; }
.affiliate-graph {
  display: flex;
  align-items: stretch;
  gap: 2px;
  height: 7.5rem;
  margin: 0;
  padding: .65rem .45rem 0;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--sand);
}
.affiliate-graph li {
  flex: 1;
  min-width: 0;
}
.affiliate-graph-col {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 1px;
  height: 100%;
}
.affiliate-graph-wrap { margin: 0 0 1.15rem; }
.affiliate-graph-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  margin: 0 0 .45rem;
  color: var(--muted);
  font: 600 .75rem/1 var(--font-sans);
}
.affiliate-graph-legend span::before {
  content: "";
  display: inline-block;
  width: .55rem;
  height: .55rem;
  margin-right: .35rem;
  border-radius: 2px;
  vertical-align: .05rem;
}
.affiliate-graph-legend .is-clicks::before { background: var(--forest); }
.affiliate-graph-legend .is-signups::before { background: var(--accent, #c4a35a); }
.affiliate-graph-legend .is-commission::before { background: #6b8f71; }
span.affiliate-graph-clicks,
span.affiliate-graph-signups,
span.affiliate-graph-commission {
  display: block;
  width: 30%;
  min-height: 0;
  border-radius: 2px 2px 0 0;
}
span.affiliate-graph-clicks { background: var(--forest); }
span.affiliate-graph-signups { background: var(--accent, #c4a35a); }
span.affiliate-graph-commission { background: #6b8f71; }
.affiliate-flash {
  display: grid;
  gap: .9rem;
  margin: 0 0 1.15rem;
}
.affiliate-balances,
.affiliate-kpis {
  display: grid;
  gap: .9rem;
  min-width: 0;
}
.affiliate-balances { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.affiliate-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 639px) {
  .affiliate-balances,
  .affiliate-kpis { grid-template-columns: 1fr; }
}
.affiliate-flash-card {
  position: relative;
  min-width: 0;
  padding: 1.1rem 1.2rem 1.05rem;
  border: 1px solid #dcd7c8;
  border-radius: .75rem;
  background: #fdfcf8;
}
.affiliate-card-icon {
  position: absolute;
  top: 1.05rem;
  right: 1.1rem;
  display: grid;
  width: 1.65rem;
  height: 1.65rem;
  place-items: center;
  border-radius: .45rem;
  background: #ebe6d8;
  color: #63696A;
}
.affiliate-flash-card.is-holding .affiliate-card-icon { background: rgba(170,124,64,.16); color: #AA7C40; }
.affiliate-flash-card.is-ready .affiliate-card-icon { background: rgba(62,111,98,.14); color: #3E6F62; }
.affiliate-flash-card[data-affiliate-signups] .affiliate-card-icon { background: rgba(170,124,64,.16); color: #AA7C40; }
.affiliate-flash-card[data-affiliate-commission] .affiliate-card-icon { background: rgba(62,111,98,.14); color: #3E6F62; }
.affiliate-card-icon svg {
  width: .95rem;
  height: .95rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.affiliate-flash-card.is-holding { --aff-line: #AA7C40; }
.affiliate-flash-card.is-ready { --aff-line: #3E6F62; }
.affiliate-flash-card span {
  display: block;
  color: #63696A;
  font: 600 .78rem/1 var(--font-sans);
  letter-spacing: .02em;
}
.affiliate-flash-card strong {
  display: block;
  margin: .55rem 0 .15rem;
  color: var(--ink);
  font: 480 clamp(1.7rem, 3vw, 2.1rem)/1.1 var(--font-prose);
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}
.affiliate-flash-card > p {
  margin: 0;
  color: #9A9E96;
  font: 400 .78rem/1.4 var(--font-sans);
}
.affiliate-flash-card .settings-save,
.affiliate-request {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 2.55rem;
  margin-top: .85rem;
  padding: 0 .9rem;
  border: 0;
  border-radius: .55rem;
  background: #3E6F62;
  color: #f4f1e9;
  font: 600 .82rem/1 var(--font-sans);
  cursor: pointer;
}
.affiliate-request:disabled {
  background: #ebe6d8;
  color: #9A9E96;
  cursor: default;
}
.affiliate-dash-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .9rem;
  margin: 0 0 1rem;
}
.affiliate-dash-title {
  margin: 0;
  font: 480 1.7rem/1.1 var(--font-prose);
}
.affiliate-dash-head p {
  margin: .3rem 0 0;
  color: #63696A;
  font: 400 .86rem/1.4 var(--font-sans);
}
.affiliate-range-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: 0;
}
.affiliate-range-pills a,
.affiliate-range-pills button {
  min-height: 2rem;
  padding: .4rem .85rem;
  border: 1px solid #dcd7c8;
  border-radius: 999px;
  background: #fffdf7;
  color: #63696A;
  font: 500 .8rem/1 var(--font-sans);
  text-decoration: none;
  cursor: pointer;
}
.affiliate-range-pills a[aria-current="page"],
.affiliate-range-pills button[aria-current="page"] {
  border-color: #3E6F62;
  background: #3E6F62;
  color: #f4f1e9;
}
.overview-pulse-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}
.overview-pulse-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
}
.overview-pulse-ranges { position: relative; }
.overview-pulse-custom {
  position: absolute;
  z-index: 5;
  top: calc(100% + .4rem);
  right: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .55rem;
  min-width: 17rem;
  padding: .7rem .75rem;
  border: 1px solid #dcd7c8;
  border-radius: .85rem;
  background: #fffdf7;
  box-shadow: 0 10px 24px rgba(31, 61, 50, .08);
}
.overview-pulse-custom[hidden] { display: none; }
.overview-pulse-custom label span {
  display: block;
  margin-bottom: .3rem;
  color: #63696a;
  font: 700 .68rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.overview-pulse-custom input[type="date"] {
  min-height: 2.2rem;
  padding: .35rem .5rem;
  border: 1px solid #dcd7c8;
  border-radius: .7rem;
  background: #fff;
  color: #1f3d32;
  font: 500 .8rem/1.2 var(--font-sans);
}
.overview-pulse-status {
  align-self: center;
  margin-left: .15rem;
  color: #9a9e96;
  font: 500 .75rem/1 var(--font-sans);
}
.overview-pulse-status:not([hidden]) {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.overview-pulse-status:not([hidden])::before {
  content: "";
  width: .65rem;
  height: .65rem;
  border: 2px solid #dcd7c8;
  border-top-color: #3e6f62;
  border-radius: 50%;
  animation: overview-pulse-spin .7s linear infinite;
}
@keyframes overview-pulse-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .overview-pulse-status:not([hidden])::before { animation: none; }
}
[data-overview-pulse][aria-busy="true"] [data-overview-pulse-graph],
[data-overview-pulse][aria-busy="true"] [data-pulse-busiest],
[data-overview-pulse][aria-busy="true"] [data-pulse-total] {
  opacity: .55;
  transition: opacity .15s ease;
}
.affiliate-period.is-dash .affiliate-period-dates { margin-top: .15rem; }
.affiliate-spark-mount {
  position: relative;
  min-height: 3.2rem;
  margin-top: .65rem;
  overflow: visible;
}
.affiliate-spark-hint,
.affiliate-spark-ticks,
.affiliate-spark-empty {
  margin: .35rem 0 0;
  color: #9A9E96;
  font: 400 .78rem/1.4 var(--font-sans);
  font-style: italic;
}
.affiliate-spark-svg {
  display: block;
  width: 100%;
  height: 3.4rem;
  background: none;
}
.affiliate-spark-area { fill: color-mix(in srgb, #63696A 16%, transparent); }
.affiliate-spark-line {
  fill: none;
  stroke: #63696A;
  stroke-width: 1.8;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.affiliate-graph-holding .affiliate-spark-area,
.affiliate-graph-signups .affiliate-spark-area { fill: color-mix(in srgb, #AA7C40 18%, transparent); }
.affiliate-graph-holding .affiliate-spark-line,
.affiliate-graph-signups .affiliate-spark-line { stroke: #AA7C40; }
.affiliate-graph-commission .affiliate-spark-area,
.affiliate-graph-ready .affiliate-spark-area { fill: color-mix(in srgb, #3E6F62 18%, transparent); }
.affiliate-graph-commission .affiliate-spark-line,
.affiliate-graph-ready .affiliate-spark-line { stroke: #3E6F62; }
.affiliate-spark-cursor {
  stroke: #dcd7c8;
  stroke-width: 1;
}
.affiliate-spark-cursor[hidden] { display: none; }
.affiliate-delta {
  margin: .55rem 0 0;
  color: #3E6F62;
  font: 500 .78rem/1.3 var(--font-sans);
}
.affiliate-delta.is-down { color: #A65A4A; }
.affiliate-delta.is-flat { color: #9A9E96; }
.overview-busiest {
  margin: 1.15rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid #dcd7c8;
}
.overview-busiest-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem;
  margin: 0 0 .55rem;
}
.overview-busiest h3 {
  margin: 0;
  font: 480 1.15rem/1.2 var(--font-prose);
}
.overview-busiest-all {
  border: 0;
  background: none;
  color: #aa7c40;
  font: 650 .8rem/1 var(--font-sans);
  cursor: pointer;
}
.overview-busiest-all:hover { color: #3e6f62; }
.overview-busiest-table button[data-pulse-shop] {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: #1f3d32;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.overview-busiest-table button[data-pulse-shop]:hover { color: #3e6f62; }
.overview-busiest-open {
  display: inline-block;
  margin-top: .15rem;
  color: #9a9e96;
  font: 600 .68rem/1 var(--font-sans);
  text-decoration: none;
}
.overview-busiest-open:hover { color: #3e6f62; }
.overview-busiest-table tr[aria-current="true"] th,
.overview-busiest-table tr[aria-current="true"] td { color: #1f3d32; }
.overview-busiest-table tr[aria-current="true"] button[data-pulse-shop] { color: #3e6f62; }
.overview-busiest-table {
  width: 100%;
  border-collapse: collapse;
}
.overview-busiest-table th,
.overview-busiest-table td {
  padding: .4rem 0 .45rem;
  border-bottom: 1px solid #ece7db;
  vertical-align: middle;
  text-align: right;
  color: #63696a;
  font: 500 .8rem/1.3 var(--font-sans);
  white-space: nowrap;
}
.overview-busiest-table thead th {
  padding-bottom: .3rem;
  color: #9a9e96;
  font: 600 .68rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.overview-busiest-table tbody th {
  width: 100%;
  padding-right: 1rem;
  text-align: left;
  font: 600 .9rem/1.3 var(--font-sans);
  white-space: normal;
}
.overview-busiest-table tbody td { min-width: 4.5rem; padding-left: .75rem; }
.overview-busiest-table a {
  color: #1f3d32;
  text-decoration: none;
}
.overview-busiest-table a:hover { color: #3e6f62; }
.overview-busiest-share {
  display: block;
  height: .28rem;
  margin-top: .28rem;
  border-radius: 999px;
  background: #ece7db;
  overflow: hidden;
}
.overview-busiest-share i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #3e6f62;
}
.overview-shop-picker {
  position: relative;
  margin: 0;
  width: 13.5rem;
  max-width: 100%;
}
.overview-shop-search {
  width: 100%;
  min-height: 2rem;
  padding: .4rem .75rem;
  border: 1px solid #dcd7c8;
  border-radius: 999px;
  background: #fffdf7;
  color: #1f3d32;
  font: 500 .8rem/1.2 var(--font-sans);
}
.overview-shop-search:focus {
  outline: 2px solid #3e6f62;
  outline-offset: 1px;
}
.overview-shop-options {
  position: absolute;
  z-index: 4;
  top: calc(100% + .25rem);
  right: 0;
  left: 0;
  max-height: 16rem;
  overflow: auto;
  padding: .3rem;
  border: 1px solid #dcd7c8;
  border-radius: .85rem;
  background: #fffdf7;
  box-shadow: 0 10px 24px rgba(31, 61, 50, .08);
}
.overview-shop-options button {
  display: block;
  width: 100%;
  padding: .55rem .65rem;
  border: 0;
  border-radius: .55rem;
  background: none;
  color: #1f3d32;
  font: 550 .88rem/1.3 var(--font-sans);
  text-align: left;
  cursor: pointer;
}
.overview-shop-options button:hover,
.overview-shop-options button:focus-visible { background: #ebe6d8; }
.overview-shop-empty {
  margin: 0;
  padding: .55rem .65rem;
  color: #9a9e96;
  font: 500 .8rem/1.3 var(--font-sans);
}
.overview-plans-head h2 { margin: 0; }
.overview-plans-head h3 {
  margin: 0;
  font: 480 1.15rem/1.2 var(--font-prose);
}
.overview-plans-head p,
.overview-plans-total {
  margin: .25rem 0 0;
  color: #9a9e96;
  font: 500 .8rem/1.35 var(--font-sans);
}
.overview-plans-total strong { color: #1f3d32; }
.overview-plan-card.is-free .overview-plan-share i { background: #7A9A72; }
.overview-plan-card.is-standard .overview-plan-share i { background: #8A5A2B; }
.overview-plan-card.is-plus .overview-plan-share i { background: #6B3FA0; }
.overview-plans-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin-top: .85rem;
}
.overview-plan-card {
  border: 1px solid #dcd7c8;
  border-radius: 1rem;
  background: rgba(247, 243, 232, .4);
  padding: .75rem .85rem .85rem;
}
.overview-plan-card[aria-current="true"],
.overview-plan-open[aria-current="true"] {
  outline: 2px solid #3e6f62;
  outline-offset: 1px;
}
.overview-plan-open {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
  cursor: pointer;
}
.overview-plan-card strong {
  display: block;
  color: #1f3d32;
  font: 700 1.45rem/1 var(--font-sans);
}
.overview-plan-open span {
  display: block;
  margin-top: .15rem;
  color: #9a9e96;
  font: 500 .8rem/1.3 var(--font-sans);
}
.overview-plan-card b,
.overview-plan-open b {
  display: block;
  margin-top: .45rem;
  color: #1f3d32;
  font: 650 .95rem/1.2 var(--font-sans);
}
.overview-plan-intervals {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .75rem;
  margin: .45rem 0 0;
}
.overview-plan-warning {
  margin: .45rem 0 0;
  color: #8a5a2b;
  font: 600 .78rem/1.3 var(--font-sans);
}
.overview-plans-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  margin: 1rem 0 .35rem;
}
.overview-plan-intervals button {
  padding: 0;
  border: 0;
  background: none;
  color: #3e6f62;
  font: 600 .78rem/1.3 var(--font-sans);
  cursor: pointer;
  text-align: left;
}
.overview-plan-intervals button:hover { text-decoration: underline; }
.overview-plan-limits {
  display: none;
}
.overview-plan-limits dt {
  color: #9a9e96;
  font: 700 .68rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.overview-plan-limits dd {
  margin: .15rem 0 0;
  color: #1f3d32;
  font: 500 .78rem/1.3 var(--font-sans);
}
.overview-plan-dialog {
  width: min(68rem, calc(100% - 2rem));
  max-height: min(42rem, calc(100% - 2rem));
  padding: 0;
  border: 1px solid #dcd7c8;
  border-radius: 1.2rem;
  background: #fffdf7;
  box-shadow: 0 18px 40px rgba(31, 61, 50, .16);
}
.overview-plan-dialog::backdrop { background: rgba(31, 61, 50, .35); }
.overview-plan-dialog form { margin: 0; }
.overview-plan-dialog header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  padding: 1rem 1.1rem .75rem;
  border-bottom: 1px solid #ece7db;
}
.overview-plan-dialog h3 {
  margin: 0;
  font: 480 1.2rem/1.2 var(--font-prose);
  color: #1f3d32;
}
.overview-plan-dialog header button {
  min-height: 2rem;
  padding: .35rem .7rem;
  border: 1px solid #dcd7c8;
  border-radius: 999px;
  background: #fff;
  color: #63696a;
  font: 600 .78rem/1 var(--font-sans);
  cursor: pointer;
}
.overview-plan-dialog [data-plan-dialog-body] {
  overflow: auto;
  padding: .2rem 0 0;
}
.overview-plan-filter {
  width: min(18rem, 100%);
  min-height: 2rem;
  margin: 0;
  padding: .35rem .7rem;
  border: 1px solid #dcd7c8;
  border-radius: 999px;
  background: #fff;
  color: #1f3d32;
  font: 500 .8rem/1.2 var(--font-sans);
}
.overview-plan-scroll {
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}
.overview-plan-table {
  width: 100%;
  min-width: 54rem;
  border-collapse: collapse;
}
.overview-plan-table th,
.overview-plan-table td {
  padding: .65rem 1.1rem;
  border-bottom: 1px solid #ece7db;
  text-align: left;
  vertical-align: top;
  font: 500 .82rem/1.35 var(--font-sans);
}
.overview-plan-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fffdf7;
  color: #63696a;
  font: 700 .68rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.overview-plan-table button[data-plan-sort] {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}
.overview-plan-table button[data-plan-sort][aria-sort="ascending"]::after,
.overview-plan-table button[data-plan-sort][aria-sort="descending"]::after {
  content: " ↑";
  color: #3e6f62;
}
.overview-plan-table button[data-plan-sort][aria-sort="descending"]::after { content: " ↓"; }
.overview-plan-table a {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: #1f3d32;
  font: 650 .9rem/1.3 var(--font-sans);
  text-decoration: none;
  word-break: break-word;
}
.overview-plan-table a:hover { color: #3e6f62; }
.overview-plan-table td { color: #1f3d32; }
.overview-plan-meter {
  display: block;
  height: .28rem;
  margin-top: .35rem;
  border-radius: 999px;
  background: #ece7db;
  overflow: hidden;
}
.overview-plan-meter i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #3e6f62;
}
.overview-plan-empty {
  margin: .6rem 0 0;
  color: #9a9e96;
  font: 500 .85rem/1.4 var(--font-sans);
}
.overview-plan-share { display: none; }
.platform-alerts-lede {
  margin: .3rem 0 0;
  color: #9a9e96;
  font: 500 .8rem/1.35 var(--font-sans);
}
.platform-alerts-tabs {
  margin: .15rem 1.1rem 0;
}
.platform-alerts-actions {
  display: flex;
  align-items: center;
  gap: .55rem;
}
.platform-alerts-actions a {
  color: #3e6f62;
  font: 700 .8rem/1 var(--font-sans);
  text-decoration: none;
}
.platform-alerts-body { padding: .2rem 1.1rem 1.1rem; }
.platform-alerts-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.platform-alerts-list li {
  padding: .75rem 0;
  border-bottom: 1px solid #ece7db;
}
.platform-alerts-list li:last-child { border-bottom: 0; }
.platform-alerts-list li.is-critical strong { color: #a94735; }
.platform-alerts-list div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .35rem .75rem;
}
.platform-alerts-list strong { color: #1f3d32; }
.platform-alerts-list time,
.platform-alerts-list p {
  margin: .3rem 0 0;
  color: #63696a;
  font: 500 .8rem/1.4 var(--font-sans);
}
.platform-alerts-list p span {
  display: inline-block;
  margin: 0 .35rem .25rem 0;
  padding: .15rem .5rem;
  border-radius: 999px;
  background: #eeebe3;
  color: #1f3d32;
  font: 700 .72rem/1.2 var(--font-sans);
}
.overview-plan-share i {
  display: block;
  height: 100%;
  border-radius: inherit;
}
@media (max-width: 40rem) {
  .overview-pulse-head,
  .overview-pulse-toolbar,
  .overview-plans-tools {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    width: 100%;
    gap: .55rem;
  }
  .overview-shop-picker,
  .overview-pulse-ranges,
  .overview-plans-tools .affiliate-range-pills,
  .overview-plan-filter {
    width: 100%;
    max-width: none;
  }
  .overview-plans-tools .affiliate-range-pills > *,
  .overview-pulse-ranges .affiliate-range-pills > :not(.overview-pulse-status) {
    flex: 1 1 0;
    text-align: center;
  }
  .overview-plan-custom,
  .overview-pulse-custom { right: auto; left: 0; min-width: 0; width: 100%; }
  .overview-plans-cards { grid-template-columns: 1fr; }
  .overview-plan-table th,
  .overview-plan-table td { padding: .55rem .7rem; }
  .overview-busiest {
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
  }
}
.overview-pulse-activity {
  margin: 1rem 0 0;
  padding: 1rem 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.affiliate-activity {
  margin: 0 0 1.25rem;
  padding: 1.15rem 1.2rem .55rem;
  border: 1px solid #dcd7c8;
  border-radius: .75rem;
  background: #fdfcf8;
}
.affiliate-activity-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .7rem;
  margin-bottom: .35rem;
}
.affiliate-activity-head h3 {
  margin: 0;
  font: 480 1.15rem/1.2 var(--font-prose);
}
.affiliate-activity-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
}
.affiliate-activity-legend button {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--ink);
  font: 500 .8rem/1 var(--font-sans);
  cursor: pointer;
}
.affiliate-activity-legend button[aria-pressed="false"] { color: #9A9E96; opacity: .65; }
.affiliate-activity-legend i {
  display: inline-block;
  width: .5rem;
  height: .5rem;
  border-radius: 2px;
  background: #63696A;
}
.affiliate-activity-legend [data-series="signups"] i,
.affiliate-activity-legend [data-series="searches"] i { background: #AA7C40; }
.affiliate-activity-legend [data-series="commission"] i,
.affiliate-activity-legend [data-series="shops"] i { background: #3E6F62; }
.affiliate-activity-legend [data-series="new_items"] i { background: #63696A; }
.affiliate-activity-legend [data-series="logins"] i { background: #2F4F6A; }
.affiliate-activity-legend [data-series="buys_free"] i { background: #7A9A72; }
.affiliate-activity-legend [data-series="buys_standard"] i { background: #8A5A2B; }
.affiliate-activity-legend [data-series="buys_plus"] i { background: #6B3FA0; }
.affiliate-activity-plot {
  position: relative;
  min-height: 16.25rem;
  overflow: visible;
}
.affiliate-activity-svg { display: block; width: 100%; height: 16.25rem; }
.affiliate-activity-grid { stroke: #dcd7c8; stroke-width: 1; }
.affiliate-activity-tick {
  fill: #9A9E96;
  font: 400 .68rem/1 var(--font-sans);
}
.affiliate-activity-bar {
  fill: #ebe6d8;
  stroke: #9A9E96;
  stroke-width: 1;
  transform-box: fill-box;
  transform-origin: bottom;
}
.affiliate-activity-drawn.is-prep .affiliate-activity-bar { transform: scaleY(0); }
.affiliate-activity-drawn.is-live .affiliate-activity-bar {
  transform: scaleY(1);
  transition: transform .45s ease var(--bar-delay, 0s);
}
.affiliate-activity-dot { fill: #AA7C40; }
.affiliate-activity-dot.is-shops { fill: #3E6F62; }
.affiliate-activity-dot.is-searches { fill: #AA7C40; }
.affiliate-activity-dot.is-new_items { fill: #63696A; }
.affiliate-activity-dot.is-logins { fill: #2F4F6A; }
.affiliate-activity-dot.is-buys_free { fill: #7A9A72; }
.affiliate-activity-dot.is-buys_standard { fill: #8A5A2B; }
.affiliate-activity-dot.is-buys_plus { fill: #6B3FA0; }
.affiliate-activity-drawn.is-prep .affiliate-activity-dot { opacity: 0; }
.affiliate-activity-drawn.is-live .affiliate-activity-dot {
  opacity: 1;
  transition: opacity .25s ease var(--dot-delay, .2s);
}
.affiliate-activity-area { opacity: 1; }
.affiliate-activity-drawn.is-prep .affiliate-activity-area { opacity: 0; }
.affiliate-activity-drawn.is-live .affiliate-activity-area {
  opacity: 1;
  transition: opacity .9s ease;
}
.affiliate-activity-line {
  fill: none;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.affiliate-activity-cursor { stroke: #dcd7c8; stroke-width: 1; }
.affiliate-activity-cursor[hidden] { display: none; }
.affiliate-activity-fallback {
  display: flex;
  align-items: stretch;
  gap: 2px;
  height: 12rem;
  margin: 0;
  padding: .4rem 0 0;
  list-style: none;
}
.affiliate-activity-fallback li { flex: 1; min-width: 0; display: flex; align-items: flex-end; }
.affiliate-activity-fallback span {
  display: block;
  width: 100%;
  min-height: 2px;
  border-radius: 2px 2px 0 0;
  background: #ebe6d8;
}
.affiliate-chart-tip {
  position: absolute;
  top: 0;
  z-index: 2;
  padding: .35rem .5rem;
  border-radius: .4rem;
  background: #1f2523;
  color: #f4f1e9;
  font: 500 .7rem/1.3 var(--font-sans);
  pointer-events: none;
  transform: translate(-50%, -4px);
  white-space: nowrap;
}
.affiliate-chart-tip.is-activity {
  display: grid;
  gap: .15rem;
  padding: .5rem .65rem;
}
.affiliate-chart-tip[hidden] { display: none !important; }
.affiliate-chart-tip strong { color: #8B948E; font-weight: 500; }
@media (prefers-reduced-motion: reduce) {
  .affiliate-activity-bar,
  .affiliate-activity-dot,
  .affiliate-activity-area { transition: none; }
}
.affiliate-pots { grid-template-columns: 1fr 1fr; }
.affiliate-stat,
.affiliate-pot {
  padding: .9rem .85rem .85rem;
  background: transparent;
  text-align: center;
}
.affiliate-stat { border-right: 1px solid var(--line); }
.affiliate-stat:last-child { border-right: 0; }
.affiliate-pots { border-top: 1px solid var(--line); }
.affiliate-pot { border-right: 1px solid var(--line); }
.affiliate-pot:last-child { border-right: 0; }
.affiliate-stat span,
.affiliate-pot span {
  display: block;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.affiliate-stat strong,
.affiliate-pot strong {
  display: block;
  margin: .4rem 0 .15rem;
  font: 650 1.3rem/1.1 var(--font-sans);
}
.affiliate-stat p,
.affiliate-pot p { margin: 0; color: var(--muted); font: 400 .82rem/1.35 var(--font-prose); }
.affiliate-panel .settings-save { width: 100%; min-width: 0; }
.affiliate-panel .settings-save:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.affiliate-disabled {
  margin: .35rem 0 0;
  color: var(--danger, #9b2c2c);
  font: 600 .9rem/1.4 var(--font-prose);
}
.affiliate-payouts { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.affiliate-payouts li { padding: .7rem .8rem; border-radius: .7rem; background: var(--sand); }
.affiliate-referrals-title {
  margin: 1.4rem 0 .55rem;
  font: 650 1rem/1.2 var(--font-sans);
}
.affiliate-referrals { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.affiliate-referrals > li { padding: 0; background: transparent; }
.affiliate-referrals .affiliate-empty {
  padding: .7rem .8rem;
  border-radius: .7rem;
  background: var(--sand);
  color: var(--muted);
}
.affiliate-referral {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  width: 100%;
  column-gap: .75rem;
  padding: .75rem .85rem;
  border: 0;
  border-radius: .7rem;
  background: var(--sand);
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.affiliate-referral::after {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: .42rem;
  height: .42rem;
  border-right: 1.6px solid var(--muted);
  border-bottom: 1.6px solid var(--muted);
  transform: rotate(-45deg);
  content: "";
}
.affiliate-referral-name {
  min-width: 0;
  overflow-wrap: anywhere;
  font: 650 1rem/1.25 var(--font-sans);
}
.affiliate-referral-state,
.affiliate-history-state {
  display: inline-block;
  margin-left: .4rem;
  color: var(--muted);
  font: 650 .75rem/1.2 var(--font-sans);
}
.affiliate-history-state {
  display: block;
  margin: 0 0 .35rem;
  margin-left: 0;
}
.affiliate-referral-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .55rem;
  color: var(--muted);
  font: 600 .82rem/1.2 var(--font-sans);
}
.affiliate-referral-meta strong {
  color: var(--ink);
  font: 650 .95rem/1.1 var(--font-sans);
}
.affiliate-history {
  width: min(24.5rem, calc(100% - 2rem));
  max-height: min(34rem, calc(100% - 2rem));
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--card);
  color: var(--ink);
  box-shadow: var(--shadow-card);
}
.affiliate-history[open] { animation: app-confirm-in .2s ease-out; }
.affiliate-history::backdrop {
  background: color-mix(in srgb, var(--forest) 38%, transparent);
}
.affiliate-history[open]::backdrop { animation: app-confirm-backdrop-in .2s ease-out; }
.affiliate-history-body {
  display: grid;
  gap: .85rem;
  margin: 0;
  padding: 1.35rem 1.35rem 1.2rem;
}
.affiliate-history h2 {
  margin: 0;
  color: var(--forest);
  font: 650 1.35rem/1.25 var(--font-sans);
}
.affiliate-history-summary {
  margin: 0;
  color: var(--muted);
  font: 600 .9rem/1.35 var(--font-sans);
}
.affiliate-history-list {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.affiliate-history-list li {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  padding-top: .65rem;
  border-top: 1px solid var(--line);
}
.affiliate-history-list time,
.affiliate-history-list [data-referred-purpose] {
  display: block;
}
.affiliate-history-list time {
  color: var(--muted);
  font: 500 .82rem/1.3 var(--font-sans);
}
.affiliate-history-list [data-referred-purpose] {
  margin-top: .15rem;
  font: 650 .95rem/1.3 var(--font-sans);
}
.affiliate-history-list strong {
  flex: none;
  font: 650 1rem/1.3 var(--font-sans);
}
.affiliate-history-empty {
  margin: 0;
  color: var(--muted);
  font: 400 .95rem/1.4 var(--font-prose);
}
.affiliate-history-close {
  width: 100%;
  min-height: 2.75rem;
  border: 0;
  border-radius: .85rem;
  background: var(--forest);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}
@media (max-width: 640px) {
  .affiliate-share-top,
  .affiliate-code-row { grid-template-columns: 1fr; display: grid; }
  .affiliate-share-top { align-items: stretch; }
  .affiliate-copy { width: 100%; min-height: 2.75rem; }
  .affiliate-stat p,
  .affiliate-pot p { display: none; }
  .affiliate-stat,
  .affiliate-pot { padding: .85rem .7rem; }
  .affiliate-stat strong,
  .affiliate-pot strong { margin-bottom: 0; font-size: 1.2rem; }
  .affiliate-panel .settings-save { min-height: 2.85rem; margin-top: 1rem; }
}
.settings-card.settings-app .app-layout {
  display: grid;
  gap: 1.75rem;
  min-width: 0;
}
.settings-card.settings-app .app-picker-col,
.settings-card.settings-app .app-guide-col { min-width: 0; }
.settings-card.settings-app .settings-install-picker { margin: 0; }
.settings-card.settings-app .settings-install-ask {
  color: var(--muted);
  font: 700 .72rem/1.2 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.settings-card.settings-app .settings-phone-choice {
  flex-direction: row;
  justify-content: flex-start;
  min-height: 3.4rem;
  padding: .7rem .9rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: #fff;
  color: var(--ink);
  box-shadow: none;
  font: 650 .95rem/1.2 var(--font-sans);
}
.settings-card.settings-app .settings-phone-choice.is-apple,
.settings-card.settings-app .settings-phone-choice.is-android {
  background: #fff;
  box-shadow: none;
}
.settings-card.settings-app .settings-phone-choice:hover { transform: none; }
.settings-card.settings-app .settings-phone-choice.is-selected {
  border-color: var(--ink);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ink) 12%, transparent);
  transform: none;
}
.settings-card.settings-app[data-install-phone] .settings-phone-choice:not(.is-selected) {
  opacity: .55;
  filter: none;
}
.settings-card.settings-app .settings-phone-logo {
  width: 1.7rem;
  height: 1.7rem;
  color: var(--ink);
}
.settings-card.settings-app .settings-phone-logo svg {
  width: 1.45rem;
  height: 1.45rem;
}
.settings-card.settings-app .app-guide-empty {
  margin: 0;
  padding: 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--sand);
  color: var(--muted);
  font: 400 .9rem/1.4 var(--font-prose);
}
.settings-card.settings-app[data-install-phone] .app-guide-empty { display: none; }
.settings-card.settings-app:has([data-install-app-installed]:not([hidden])) .app-layout { display: none; }
.settings-card.settings-app .settings-install-guide {
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
  animation: none;
}
.settings-card.settings-app .settings-install-guide.is-ios,
.settings-card.settings-app .settings-install-guide.is-android {
  background: #fff;
}
.settings-card.settings-app .settings-install-guide .settings-save { margin: 0; border-radius: 1rem 1rem 0 0; }
.settings-card.settings-app .settings-install-flow { gap: 0; }
.settings-card.settings-app .settings-install-flow::before { content: none; }
.settings-card.settings-app .settings-install-step {
  gap: .85rem;
  padding: .85rem 1rem;
  border-radius: 0;
  background: #fff;
  box-shadow: inset 0 -1px 0 var(--line);
}
.settings-card.settings-app .settings-install-step:last-of-type { box-shadow: none; }
.settings-card.settings-app .settings-install-num {
  width: 1.85rem;
  height: 1.85rem;
  box-shadow: none;
  font: 700 .82rem/1 var(--font-sans);
  background: var(--sand);
  color: var(--ink);
}
.settings-card.settings-app .settings-install-guide.is-ios .settings-install-step:nth-child(1) .settings-install-num,
.settings-card.settings-app .settings-install-guide.is-ios .settings-install-step:nth-child(2) .settings-install-num,
.settings-card.settings-app .settings-install-guide.is-ios .settings-install-step:nth-child(3) .settings-install-num,
.settings-card.settings-app .settings-install-guide.is-android .settings-install-step:nth-child(1) .settings-install-num,
.settings-card.settings-app .settings-install-guide.is-android .settings-install-step:nth-child(2) .settings-install-num,
.settings-card.settings-app .settings-install-guide.is-android .settings-install-step:nth-child(3) .settings-install-num {
  background: var(--sand);
  color: var(--ink);
}
.settings-card.settings-app .settings-install-back { margin: .15rem 1rem 1rem; }
.settings-install-done { margin: 0 0 1rem; font-weight: 600; }
.settings-install-picker { margin-top: .15rem; }
.settings-install-ask {
  margin: 0 0 .7rem;
  color: var(--ink);
  font: 650 1rem/1.2 var(--font-sans);
}
.settings-install-choices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .7rem;
}
.settings-phone-choice {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 7.4rem;
  padding: 1rem .7rem .9rem;
  border: 3px solid transparent;
  border-radius: 1.2rem;
  color: #fff;
  font: 700 1.08rem/1.1 var(--font-sans);
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, opacity .18s ease, border-color .18s ease;
}
.settings-phone-choice.is-apple {
  background: linear-gradient(165deg, #4a4a4d 0%, #1c1c1e 72%);
  box-shadow: 0 12px 26px rgba(28, 28, 30, .28);
}
.settings-phone-choice.is-android {
  background: linear-gradient(165deg, #8eedb0 0%, #3ddc84 42%, #1aa85c 100%);
  box-shadow: 0 12px 26px rgba(26, 168, 92, .3);
}
.settings-phone-choice:hover { transform: translateY(-3px); }
.settings-phone-choice:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
.settings-phone-choice.is-selected {
  border-color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 0 0 3px var(--ink), 0 14px 28px rgba(29, 41, 56, .22);
}
.settings-card[data-install-phone] .settings-phone-choice:not(.is-selected) {
  opacity: .4;
  filter: grayscale(.4);
}
.settings-phone-logo {
  display: grid;
  width: 2.9rem;
  height: 2.9rem;
  place-items: center;
}
.settings-phone-logo svg {
  width: 2.35rem;
  height: 2.35rem;
  fill: currentColor;
}
.settings-install-guide {
  margin-top: 1rem;
  padding: 1rem .9rem 1rem;
  border-radius: 1.2rem;
  animation: settings-install-open .32s ease;
}
.settings-install-guide.is-ios {
  background: linear-gradient(165deg, #dcecff 0%, #efe6ff 48%, #ffe4f0 100%);
}
.settings-install-guide.is-android {
  background: linear-gradient(165deg, #d9ffe8 0%, #e4f6ff 50%, #fff3c4 100%);
}
.settings-install-guide .settings-save { margin: 0 0 .85rem; min-width: 0; width: 100%; }
.settings-install-flow {
  position: relative;
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.settings-install-flow::before {
  content: "";
  position: absolute;
  left: 1.55rem;
  top: 1.3rem;
  bottom: 1.3rem;
  width: 3px;
  border-radius: 99px;
  opacity: .55;
}
.settings-install-guide.is-ios .settings-install-flow::before {
  background: linear-gradient(#0a84ff, #5e5ce6, #ff375f);
}
.settings-install-guide.is-android .settings-install-flow::before {
  background: linear-gradient(#4285f4, #34a853, #fbbc05);
}
.settings-install-step {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 2.15rem minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  padding: .85rem .85rem .9rem;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 6px 18px rgba(29, 41, 56, .08);
}
.settings-install-num {
  display: grid;
  width: 2.15rem;
  height: 2.15rem;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font: 800 1rem/1 var(--font-sans);
  box-shadow: 0 4px 10px rgba(29, 41, 56, .16);
}
.settings-install-guide.is-ios .settings-install-step:nth-child(1) .settings-install-num { background: #0a84ff; }
.settings-install-guide.is-ios .settings-install-step:nth-child(2) .settings-install-num { background: #5e5ce6; }
.settings-install-guide.is-ios .settings-install-step:nth-child(3) .settings-install-num { background: #ff375f; }
.settings-install-guide.is-android .settings-install-step:nth-child(1) .settings-install-num { background: #4285f4; }
.settings-install-guide.is-android .settings-install-step:nth-child(2) .settings-install-num { background: #34a853; }
.settings-install-guide.is-android .settings-install-step:nth-child(3) .settings-install-num { background: #f9ab00; color: #1d2938; }
.settings-install-copy { min-width: 0; padding-top: .15rem; }
.settings-install-copy strong { display: block; font-size: 1rem; line-height: 1.25; }
.settings-install-copy p { margin: .2rem 0 0; color: var(--muted); font-size: .9rem; line-height: 1.35; }
.settings-install-back {
  display: inline-flex;
  margin: .85rem 0 0 .15rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent-deep);
  font: 650 .95rem/1.2 var(--font-sans);
  cursor: pointer;
}
.settings-install-back:hover { text-decoration: underline; }
@keyframes settings-install-open {
  from { opacity: 0; transform: translateY(.55rem); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .settings-phone-choice, .settings-install-guide { transition: none; animation: none; }
}
.settings-card.catalogue-import-card {
  container-type: inline-size;
  container-name: import-card;
  height: auto;
  max-height: calc(100dvh - 6.5rem);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-bottom: 1.4rem;
}
.catalogue-import-card .settings-card-head {
  flex: none;
  margin-bottom: .75rem;
  background: #fff;
}
.catalogue-import-body {
  margin-top: .15rem;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.catalogue-import-rail {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  flex: none;
  padding: 0 0 .7rem;
  background: #fff;
}
.catalogue-import-tag { flex: 1 1 7rem; }
.catalogue-import-panels {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: .65rem 0 1.6rem;
}
.catalogue-import-card[data-import-step="2"] [data-import-rows],
.catalogue-import-card[data-import-step="2"] .catalogue-import-save-block {
  display: none;
}
.catalogue-import-card[data-import-step="3"] [data-import-issues] {
  display: none;
}
.catalogue-import-rail::before { content: none; }
.catalogue-import-tag {
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  text-align: left;
}
.catalogue-import-tag-face {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.55rem;
  padding: .45rem .7rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
}
.catalogue-import-tag:disabled { cursor: default; opacity: .72; }
.catalogue-import-tag:not(:disabled) { cursor: pointer; }
.catalogue-import-tag:focus-visible {
  outline: 2.5px solid var(--accent);
  outline-offset: 2px;
  border-radius: .75rem;
}
.catalogue-import-grommet { display: none; }
.catalogue-import-tag-num {
  font: 700 .68rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.catalogue-import-tag-label { font-size: .88rem; font-weight: 650; color: inherit; }
.catalogue-import-tag.is-active { color: var(--ink); }
.catalogue-import-tag.is-active .catalogue-import-tag-face {
  border-color: var(--accent);
  background: #fff;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent);
}
.catalogue-import-tag.is-active .catalogue-import-tag-num { color: var(--accent-deep); }
.catalogue-import-tag.is-done { color: var(--accent-deep); }
.catalogue-import-tag.is-done .catalogue-import-tag-face {
  background: var(--sage);
  border-color: color-mix(in srgb, var(--accent) 22%, var(--line));
}
.catalogue-import-stamp {
  position: absolute;
  top: .35rem;
  right: .35rem;
  display: grid;
  width: 1.05rem;
  height: 1.05rem;
  place-items: center;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  opacity: 0;
}
.catalogue-import-stamp svg { width: .65rem; height: .65rem; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.catalogue-import-tag.is-done .catalogue-import-stamp { opacity: 1; }
.catalogue-import-step { display: grid; gap: .85rem; animation: catalogue-import-in .35s ease both; }
.catalogue-import-split, .catalogue-import-choices { display: grid; gap: .85rem; }
.catalogue-import-pane {
  display: grid;
  gap: .55rem;
  align-content: start;
  padding: 1.05rem 1.1rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: #fff;
}
.catalogue-import-pane-template {
  grid-template-rows: auto auto 1fr;
}
.catalogue-import-pane-template .catalogue-import-actions { align-self: end; }
.catalogue-import-pane h3, .catalogue-import-remap h3 { margin: 0; font-size: 1.02rem; }
.catalogue-import-pane .settings-help { margin: 0; }
.catalogue-import-schema {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
}
.catalogue-import-schema-row {
  display: grid;
  grid-template-columns: 1.4fr .8fr .85fr .65fr;
}
.catalogue-import-schema-row + .catalogue-import-schema-row { border-top: 1px solid var(--line); }
.catalogue-import-schema-row span {
  overflow: hidden;
  padding: .5rem .55rem;
  border-right: 1px solid var(--line);
  color: var(--ink);
  font: 500 .68rem/1.3 ui-monospace, SFMono-Regular, Menlo, monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.catalogue-import-schema-row span:last-child { border-right: 0; }
.catalogue-import-schema-row.is-head span { background: var(--forest); color: #e9e4d2; font-weight: 650; }
.catalogue-import-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
}
.catalogue-import-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 2.7rem;
  padding: .55rem 1rem;
  border-radius: .7rem;
  font-weight: 650;
  text-decoration: none;
  transition: transform .12s ease, box-shadow .12s ease, background .15s ease, border-color .15s ease;
}
.catalogue-import-btn svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.catalogue-import-btn .catalogue-import-brand {
  width: 1.05rem;
  height: 1.05rem;
  fill: currentColor;
  stroke: none;
}
.catalogue-import-btn-primary {
  border: 1px solid var(--accent);
  background: var(--accent);
  color: #fff;
  box-shadow: 0 1px 2px color-mix(in srgb, var(--ink) 10%, transparent);
}
.catalogue-import-btn-primary:hover { background: var(--accent-deep); transform: translateY(-1px); }
.catalogue-import-btn-ghost {
  border: 1.5px solid var(--line);
  background: transparent;
  color: var(--accent-deep);
}
.catalogue-import-btn-ghost:hover { border-color: var(--accent); background: var(--sage); }
.catalogue-import-text, .catalogue-import-back {
  margin: 0;
  padding: .35rem 0;
  border: 0;
  background: none;
  color: var(--accent-deep);
  font-weight: 650;
}
.catalogue-import-text:hover, .catalogue-import-back:hover { text-decoration: underline; }
.catalogue-import-back { justify-self: start; }
.catalogue-import-choice {
  display: grid;
  justify-items: start;
  gap: .45rem;
  padding: 1rem 1.05rem;
  border: 1.5px solid var(--line);
  border-radius: .9rem;
  background: #fff;
  color: inherit;
  text-align: left;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease, background .15s ease;
}
.catalogue-import-choice:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: 0 6px 16px color-mix(in srgb, var(--ink) 8%, transparent); }
.catalogue-import-choice.is-selected { border-color: var(--accent); background: var(--sage); box-shadow: 0 1px 2px color-mix(in srgb, var(--ink) 8%, transparent); }
.catalogue-import-choice-icon {
  display: grid;
  width: 2.1rem;
  height: 2.1rem;
  place-items: center;
  border-radius: .65rem;
  background: var(--tan);
  color: color-mix(in srgb, var(--warning) 45%, var(--ink));
}
.catalogue-import-choice-icon svg { width: 1.05rem; height: 1.05rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.catalogue-import-choice strong { font-size: .95rem; color: var(--ink); }
.catalogue-import-choice span:last-child { color: var(--ink); font-size: .84rem; line-height: 1.4; }
.catalogue-import-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .7rem;
  margin-top: .35rem;
  padding: .75rem .9rem;
  border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--line));
  border-radius: .75rem;
  background: var(--sage);
  color: var(--accent-deep);
  font-size: .88rem;
}
.catalogue-import-note svg { width: 1rem; height: 1rem; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.catalogue-import-note p { flex: 1 1 12rem; margin: 0; }
.catalogue-import-note .catalogue-import-btn { margin-left: auto; }
.catalogue-import-remap { display: grid; gap: .7rem; margin-top: .55rem; }
.catalogue-import-prompt {
  min-height: 10rem;
  width: 100%;
  resize: vertical;
  padding: .9rem 1rem;
  border: 1px solid var(--forest);
  border-radius: .75rem;
  background: var(--forest);
  color: #dde7de;
  font: 400 .78rem/1.6 ui-monospace, SFMono-Regular, Menlo, monospace;
}
.catalogue-import-form { margin: .35rem 0 0; }
.catalogue-import-drop {
  padding: 1.7rem 1rem 1.45rem;
  border: 2px dashed var(--line);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--sand) 35%, #fff);
  text-align: center;
  transition: border-color .18s ease, background .18s ease;
}
.catalogue-import-drop.is-drag, .catalogue-import-drop.is-checking {
  border-color: var(--accent);
  background: var(--sage);
}
.catalogue-import-drop-icon {
  display: grid;
  width: 3.1rem;
  height: 3.1rem;
  margin: 0 auto .7rem;
  place-items: center;
  border-radius: .85rem;
  background: var(--tan);
  color: color-mix(in srgb, var(--warning) 45%, var(--ink));
}
.catalogue-import-drop-icon svg { width: 1.4rem; height: 1.4rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.catalogue-import-drop strong { display: block; font-size: 1rem; }
.catalogue-import-drop p { margin: .35rem 0 .7rem; color: var(--muted); font-size: .88rem; }
.catalogue-import-pick {
  display: grid;
  gap: .65rem;
  text-align: left;
}
.catalogue-import-pick-kicker {
  margin: 0 0 .15rem;
  color: var(--ink);
  font: 650 1rem/1.3 var(--font-sans);
  text-align: center;
}
.catalogue-import-modal .catalogue-import-pick-kicker {
  margin: .35rem 0 0;
  color: var(--ink);
  font-weight: 650;
  text-align: left;
}
.catalogue-import-modal .catalogue-import-pick {
  gap: .75rem;
}
.catalogue-import-modal .catalogue-import-voice {
  justify-items: stretch;
}
.catalogue-import-choice {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  width: 100%;
  padding: .8rem .85rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: #fff;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.catalogue-import-choice:hover,
.catalogue-import-choice:focus-visible {
  border-color: var(--accent);
  background: var(--sage);
  outline: none;
}
.catalogue-import-choice-icon {
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  flex: none;
  place-items: center;
  border-radius: .7rem;
  background: var(--tan);
  color: var(--accent-deep);
}
.catalogue-import-choice-icon svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.catalogue-import-choice strong { display: block; font-size: .98rem; color: var(--ink); font-weight: 750; }
.catalogue-import-choice small { display: block; margin-top: .15rem; color: var(--ink); font-size: .82rem; font-weight: 600; opacity: .88; }
.catalogue-import-voice { display: grid; gap: .75rem; justify-items: center; padding: .2rem 0 .1rem; }
.catalogue-import-voice-bars {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: .28rem;
  min-height: 3rem;
}
.catalogue-import-voice-bars span {
  display: block;
  width: .42rem;
  min-height: .4rem;
  border-radius: 999px;
  background: var(--accent);
  transition: height .08s linear;
}
.catalogue-import-voice-live { margin: 0; color: var(--ink); font-weight: 650; }
.catalogue-import-voice-actions { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
@media (prefers-reduced-motion: reduce) {
  .catalogue-import-voice-bars span { transition: none; }
}
.catalogue-import-file-name {
  margin: .7rem 0 0;
  color: var(--accent-deep);
  font: 550 .78rem/1.3 ui-monospace, SFMono-Regular, Menlo, monospace;
}
.catalogue-import-check { margin-top: .85rem; }
.catalogue-import-checking { display: grid; gap: .7rem; justify-items: center; padding: .4rem 0; color: var(--muted); font-size: .9rem; }
.catalogue-import-checking p { margin: 0; }
.catalogue-import-spinner {
  width: 2rem;
  height: 2rem;
  border: 3px solid var(--line);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: catalogue-import-spin .8s linear infinite;
}
.catalogue-import-saving {
  display: grid;
  gap: .7rem;
  justify-items: center;
  padding: 1.1rem .4rem .3rem;
  color: var(--ink);
  font-size: .95rem;
  font-weight: 650;
  text-align: center;
}
.catalogue-import-saving p { margin: 0; }
.catalogue-import-meter {
  width: min(18rem, 100%);
  height: .55rem;
  overflow: hidden;
  border-radius: 999px;
  background: color-mix(in srgb, var(--line) 70%, white);
}
.catalogue-import-meter i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  transition: width .25s ease;
}
.catalogue-import-meter-pct {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 750;
}
.catalogue-import-result { display: grid; gap: .75rem; margin-top: .35rem; }
.catalogue-import-summary { margin: 0; font-weight: 650; }
.catalogue-import-preview { display: grid; gap: .55rem; min-width: 0; }
.catalogue-import-pager {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1rem;
  align-items: center;
  justify-content: space-between;
}
.catalogue-import-pagesize {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin: 0;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 650;
}
.catalogue-import-pagesize select {
  min-height: 2.2rem;
  padding: .3rem .55rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: #fff;
  color: var(--ink);
  font: 650 .85rem var(--font-sans);
}
.catalogue-import-page-range { margin: 0; color: var(--muted); font-size: .82rem; font-weight: 650; }
.catalogue-import-page-nav {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
}
.catalogue-import-page-nav span { color: var(--muted); font-size: .82rem; font-weight: 650; }
.catalogue-import-page-nav .catalogue-import-btn { min-height: 2.2rem; padding: .35rem .75rem; }
.catalogue-import-page-nav .catalogue-import-btn:disabled { opacity: .45; cursor: not-allowed; }
.catalogue-import-table-wrap {
  overflow: visible;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
}
.catalogue-import-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: .78rem;
}
.catalogue-import-table col.col-department { width: 14%; }
.catalogue-import-table col.col-group { width: 14%; }
.catalogue-import-table col.col-class { width: 14%; }
.catalogue-import-table col.col-product { width: 16%; }
.catalogue-import-table col.col-category { width: 14%; }
.catalogue-import-table col.col-default { width: 6.4rem; }
.catalogue-import-table col.col-rules { width: 14%; }
.catalogue-import-table col.col-condition { width: 7.6rem; }
.catalogue-import-table col.col-key { width: 7.2rem; }
.catalogue-import-table col.col-status { width: 8.6rem; }
.catalogue-import-table col.col-compact { width: 6.5rem; }
.catalogue-import-status .status-short,
.charities-tier-short,
.charities-head-short { display: none; }
.catalogue-import-table th,
.catalogue-import-table td {
  padding: .45rem .65rem;
  border: 0;
  text-align: left;
  vertical-align: middle;
}
.catalogue-import-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  white-space: nowrap;
  background: var(--forest);
  color: #e9e4d2;
  font: 650 .68rem/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.catalogue-import-table tbody td {
  background: #fff;
}
.catalogue-import-table td {
  color: var(--ink);
  overflow: hidden;
}
.catalogue-import-cell,
.catalogue-import-was {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.catalogue-import-table td.is-status {
  white-space: nowrap;
}
.catalogue-import-table td.is-change,
.catalogue-import-table tr.is-alt td.is-change {
  background: color-mix(in srgb, var(--warning, #e07a3a) 14%, #fff);
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--warning, #e07a3a) 70%, #8a3f12);
}
.catalogue-import-was {
  margin-top: .15rem;
  color: var(--muted);
  font: 550 .75rem/1.3 var(--font-sans);
}
.catalogue-import-table tr.is-alt td { background: color-mix(in srgb, var(--sand) 62%, #fff); }
.catalogue-import-status {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: .15rem .55rem;
  border-radius: 999px;
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .02em;
  text-transform: uppercase;
}
.catalogue-import-status.is-add {
  background: color-mix(in srgb, var(--accent) 16%, #fff);
  color: var(--accent-deep);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, var(--line));
}
.catalogue-import-status.is-evidence {
  background: color-mix(in srgb, var(--moss, #3d5c4a) 14%, #fff);
  color: #2a4334;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--moss, #3d5c4a) 35%, var(--line));
}
.catalogue-import-status.is-rule {
  background: color-mix(in srgb, var(--forest, #0c2340) 12%, #fff);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px var(--line);
}
.catalogue-import-status.is-update {
  background: color-mix(in srgb, var(--warning, #e07a3a) 16%, #fff);
  color: #8a3f12;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warning, #e07a3a) 40%, var(--line));
}
.catalogue-import-status.is-skip {
  background: color-mix(in srgb, var(--muted) 12%, #fff);
  color: var(--muted);
  box-shadow: inset 0 0 0 1px var(--line);
}
.catalogue-import-status.is-error {
  background: color-mix(in srgb, var(--danger) 12%, #fff);
  color: var(--danger);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--danger) 35%, var(--line));
}
.catalogue-import-file-error, .catalogue-import-trial { margin: 0; color: var(--danger); font-weight: 650; }
.catalogue-import-trial-slots {
  margin: 0;
  color: color-mix(in srgb, var(--ink) 78%, #4b5563);
  font: 650 .95rem/1.4 var(--font-sans);
}
.catalogue-import-errors, .catalogue-import-warnings { margin: 0; padding-left: 1.15rem; }
.catalogue-import-warnings { color: var(--muted); }
.catalogue-import-issues {
  display: grid;
  gap: .75rem;
  padding: 1rem 1.1rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--card);
}
.catalogue-import-issue-kicker {
  margin: 0;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .07em;
  text-transform: uppercase;
}
.catalogue-import-issues h3 { margin: 0; font: 650 1.15rem/1.3 var(--font-sans); }
.catalogue-import-issue-step { margin: 0; color: var(--muted); }
.catalogue-import-issue p { margin: 0 0 .65rem; }
.catalogue-import-issue-hint { color: var(--muted); font-size: .9rem; }
.catalogue-import-issue-source {
  margin: 0 0 .35rem;
  font: 750 1.2rem/1.3 var(--font-sans);
}
.catalogue-import-issue-hint { margin: 0 0 .35rem; color: var(--muted); font-size: .85rem; }
.catalogue-import-issue-note { color: var(--muted); font-size: .9rem; }
.catalogue-import-source-notes {
  margin: .4rem 0 0;
  padding: .65rem .75rem;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--sage, #e8efe6) 55%, #fff);
  font: 500 .85rem/1.4 var(--font-sans);
  white-space: pre-wrap;
}
.price-rule-source {
  margin: .35rem 0 0;
  color: var(--muted);
  font-size: .8rem;
}
.taxonomy-picker { display: grid; gap: .35rem; position: relative; }
.taxonomy-picker-label { font-weight: 650; }
.taxonomy-picker-search,
.taxonomy-picker-chosen {
  min-height: 2.6rem;
  width: 100%;
  padding: .55rem .75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  text-align: left;
}
.taxonomy-picker-chosen {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  cursor: pointer;
}
.taxonomy-picker-chosen small { display: block; color: var(--muted); font-weight: 500; }
.taxonomy-picker-hint {
  margin: 0.45rem 0 0;
  color: var(--muted);
  font-size: 0.85rem;
  line-height: 1.4;
}
.seeds-progress { margin-top: 1.25rem; }
.seeds-progress-label,
.seeds-progress-count { margin: 0.35rem 0 0; color: var(--muted); font-size: 0.9rem; }
.seeds-progress-track {
  height: 0.7rem;
  margin-top: 0.45rem;
  overflow: hidden;
  border-radius: 999px;
  background: var(--line);
}
.seeds-progress-track span {
  display: block;
  height: 100%;
  width: 0;
  background: var(--accent, var(--forest));
}
.seeds-list-head {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: end;
}
.seeds-search { display: grid; gap: 0.35rem; font-size: 0.9rem; min-width: min(18rem, 100%); }
.seeds-search input {
  border: 1px solid var(--line);
  border-radius: 1rem;
  padding: 0.55rem 0.8rem;
}
.seeds-dept-toggle {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
  cursor: pointer;
}
.seeds-drop {
  margin-top: 0.75rem;
  padding: 0.85rem;
  border: 1px dashed var(--line);
  border-radius: 1rem;
  background: var(--paper, #fff);
}
.seeds-drop.is-over,
.seeds-group-drop.is-over { border-color: var(--accent, var(--forest)); background: color-mix(in srgb, var(--accent, #2f7d50) 12%, #fff); }
.seeds-drop input { display: block; margin-top: 0.45rem; }
.seeds-groups { display: none; flex-wrap: wrap; gap: 0.4rem; }
.seeds-admin.is-moving-category .seeds-groups { display: flex; }
.seeds-group-drop {
  border: 1px dashed var(--line);
  border-radius: 999px;
  padding: 0.35rem 0.7rem;
  background: #fff;
  font-size: 0.8rem;
}
.seeds-custom { color: var(--muted); font-weight: 600; }
.seeds-leaf[draggable="true"],
.seeds-leaf-row[draggable="true"] { cursor: grab; }
.seeds-pane { margin-top: 1rem; }
.seeds-pane-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: space-between;
}
.seeds-leaf-open {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.15rem 1rem;
  width: 100%;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.seeds-leaf-open span {
  grid-column: 1;
  color: var(--muted);
  font-size: 0.85rem;
}
.seeds-leaf-open em {
  grid-row: 1 / span 2;
  grid-column: 2;
  align-self: center;
  font-style: normal;
  font-weight: 700;
  color: var(--forest);
}
.seeds-dedupe-cluster { padding-top: 0.5rem; }
.seeds-dedupe-pair {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 0.75rem;
  align-items: start;
  margin-top: 0.45rem;
}
.seeds-dedupe-pair img,
.seeds-dedupe-pair li img {
  width: 8rem;
  height: 6rem;
  object-fit: cover;
  border-radius: 0.75rem;
  background: var(--line);
}
.seeds-dedupe-pair li { display: grid; gap: 0.25rem; color: var(--muted); font-size: 0.85rem; }
.seeds-trim {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-top: 0.85rem;
}
.taxonomy-picker-menu {
  position: absolute;
  z-index: 8;
  left: 0;
  right: 0;
  top: calc(100% + .25rem);
  max-height: 20rem;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: #fff;
  box-shadow: var(--shadow-card);
}
.taxonomy-picker-back {
  position: sticky;
  top: 0;
  z-index: 1;
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: var(--sage, #e8efe6);
  color: var(--forest, #1c3d2a);
  font-weight: 750;
  padding: .55rem .75rem;
  text-align: left;
  cursor: pointer;
}
.taxonomy-picker-crumb {
  margin: 0;
  padding: .35rem .75rem 0;
  color: var(--muted);
  font-size: .8rem;
}
.taxonomy-picker-list { list-style: none; margin: 0; padding: .25rem; }
.taxonomy-picker-option {
  width: 100%;
  display: grid;
  gap: .1rem;
  border: 0;
  background: transparent;
  padding: .5rem .6rem;
  border-radius: .55rem;
  text-align: left;
  cursor: pointer;
}
.taxonomy-picker-option:hover { background: color-mix(in srgb, var(--forest) 10%, #fff); }
.taxonomy-picker-kind {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
}
.taxonomy-picker-title { font-weight: 700; }
.taxonomy-picker-path { color: var(--muted); font-size: .78rem; }
.taxonomy-picker-empty { margin: 0; padding: .7rem .8rem; color: var(--muted); }
@media (max-width: 899px) {
  .taxonomy-picker-menu {
    position: static;
    top: auto;
    max-height: calc(5 * 3.15rem + .5rem);
  }
  .class-create-basics-copy:has(.taxonomy-picker.is-open) > .class-create-label[for="new-class-name"],
  .class-create-basics-copy:has(.taxonomy-picker.is-open) > #new-class-name {
    display: none;
  }
}
.catalogue-import-issue-form {
  display: grid;
  gap: .7rem;
}
.catalogue-import-issue-form label,
.catalogue-import-edit label {
  display: grid;
  gap: .3rem;
  font-weight: 650;
}
.catalogue-import-issue-form input,
.catalogue-import-edit input,
.catalogue-import-rule-row input {
  min-height: 2.6rem;
  padding: .55rem .75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
}
.catalogue-import-rule-list { display: grid; gap: .45rem; }
.catalogue-import-rule-list p { margin: 0; font-weight: 650; }
.catalogue-import-rule-row {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: .45rem;
  align-items: center;
}
.catalogue-import-issue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .75rem;
  align-items: center;
}
.catalogue-import-table-hint {
  margin: 0;
  color: var(--muted);
  font-size: .88rem;
}
.catalogue-import-edit-hint {
  display: inline-block;
  margin-left: .4rem;
  color: var(--forest);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.catalogue-import-table tr.is-clickable { cursor: pointer; }
.catalogue-import-table tr.is-clickable:hover td,
.catalogue-import-table tr.is-clickable:focus-visible td,
.catalogue-import-table tr.is-clickable.is-alt:hover td,
.catalogue-import-table tr.is-clickable.is-alt:focus-visible td {
  background: color-mix(in srgb, var(--forest) 22%, #fff);
}
.catalogue-import-edit { z-index: 40; }
.catalogue-import-edit .price-rule-modal { z-index: 60; }
.catalogue-import-price-rules { margin-top: .15rem; }
.catalogue-import-edit {
  width: min(36rem, calc(100vw - 2rem));
  max-height: calc(100vh - 3rem);
  padding: 1.2rem 1.25rem 1.4rem;
  border: 0;
  border-radius: 1.1rem;
  overflow: hidden;
}
.catalogue-import-edit form {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-height: 0;
  max-height: calc(100vh - 5.2rem);
}
.catalogue-import-edit-head { flex: none; }
.catalogue-import-edit-main {
  display: grid;
  gap: .7rem;
  align-content: start;
  min-height: 0;
  flex: 1 1 auto;
  overflow: auto;
  padding-bottom: 1.15rem;
}
.import-place-pickers {
  display: grid;
  gap: .7rem;
}
.import-place-combo {
  position: relative;
  display: grid;
  gap: .3rem;
}
.import-place-combo > span { font-weight: 650; }
.import-place-menu {
  position: absolute;
  z-index: 9;
  left: 0;
  right: 0;
  top: calc(100% + .25rem);
  max-height: 14rem;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: #fff;
  box-shadow: var(--shadow-card);
}
.import-place-menu button {
  display: block;
  width: 100%;
  padding: .55rem .75rem;
  border: 0;
  background: transparent;
  text-align: left;
}
.import-place-menu button:hover { background: color-mix(in srgb, var(--sand) 70%, #fff); }
.import-place-menu p {
  margin: 0;
  padding: .7rem .75rem;
  color: var(--muted);
}
.catalogue-import-edit .catalogue-import-issue-actions {
  flex: none;
  padding-top: .15rem;
}
.catalogue-import-edit .catalogue-import-issue-actions .catalogue-import-text {
  margin-left: auto;
  text-decoration: underline;
  color: var(--ink);
}
.import-diff-field {
  display: flex;
  align-items: center;
  gap: .45rem;
}
.import-diff-field input { flex: 1; min-width: 0; }
.import-diff-box {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  padding-right: .35rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
}
.import-diff-box input {
  border: 0;
  background: transparent;
}
.import-diff-box input:focus { outline: none; }
.import-diff-field.is-change .import-diff-box,
.import-diff-field.is-change input,
.import-diff-price.is-change {
  background: color-mix(in srgb, var(--warning, #e07a3a) 16%, #fff);
}
.import-diff-field s,
.price-rule-card-sum s {
  color: var(--muted);
  font-weight: 650;
  text-decoration: line-through;
  white-space: nowrap;
}
.import-diff-arrow { color: var(--muted); font-weight: 650; }
.import-diff-sym {
  color: var(--muted);
  font: 600 1rem ui-monospace, SFMono-Regular, Menlo, monospace;
}
.import-diff-field .import-diff-sym { margin-left: .15rem; }
.import-diff-tag {
  margin-right: .55rem;
  color: var(--muted);
  font: 650 .78rem/1 var(--font-sans);
  white-space: nowrap;
}
.import-diff-note {
  color: var(--muted);
  font: 550 .82rem/1.35 var(--font-sans);
}
.import-diff-price {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  min-height: 2.1rem;
  padding: .15rem .55rem;
  border: 1px solid var(--line);
  border-radius: .65rem;
}
.import-diff-price input {
  width: 4.2rem;
  min-height: 0;
  padding: .25rem 0;
  border: 0;
  background: transparent;
  font: 650 1rem/1.2 var(--font-sans);
}
.price-rule-card.is-incoming {
  background: color-mix(in srgb, var(--warning, #e07a3a) 6%, #fff);
}
.price-rule-card-actions button.is-keep { color: var(--ink); }
.price-rule-card-actions button.is-danger { color: var(--danger); }
.import-diff-box .import-diff-note {
  flex: none;
  max-width: 46%;
  padding-right: .45rem;
  text-align: right;
}
.import-diff-unchanged {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  padding: .15rem 0;
  border: 0;
  background: none;
  color: var(--muted);
  font: 650 .88rem/1.3 var(--font-sans);
  text-align: left;
  cursor: pointer;
}
.import-diff-unchanged:hover { color: var(--ink); }
.import-diff-add-only .price-rules { margin-top: 0; }
.import-diff-add-only .price-rules-head { display: none; }
.import-diff-add-only .price-rule-add {
  width: 100%;
  justify-self: stretch;
}
.catalogue-import-edit::backdrop { background: rgba(24, 32, 28, .45); }
.catalogue-import-edit h3 { margin: 0 0 .2rem; }
.catalogue-import-confirm { margin-top: .15rem; }
.catalogue-import-success {
  display: grid;
  justify-items: stretch;
  gap: .85rem;
  padding: .85rem 0 .15rem;
  text-align: left;
}
.catalogue-import-success-head {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.catalogue-import-success-mark {
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  flex: none;
  place-items: center;
  border-radius: .7rem;
  background: var(--sage);
  color: var(--accent-deep);
}
.catalogue-import-success-mark svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.catalogue-import-kicker {
  margin: 0;
  color: var(--accent-deep);
  font: 650 .72rem/1.2 var(--font-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.catalogue-import-success h3 {
  margin: .12rem 0 0;
  font: 650 1.45rem/1.15 var(--font-sans);
}
.catalogue-import-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.catalogue-import-stats li {
  display: grid;
  gap: .15rem;
  min-width: 0;
  padding: .7rem .75rem;
  border-radius: .8rem;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--line);
}
.catalogue-import-stats strong {
  color: var(--accent-deep);
  font: 650 1.45rem/1 var(--font-sans);
}
.catalogue-import-stats span {
  color: color-mix(in srgb, var(--ink) 74%, #4b5563);
  font: 600 .78rem/1.25 var(--font-sans);
}
.catalogue-import-next {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .75rem;
  margin: 0;
  padding: 1rem 1.05rem;
  border-radius: 1rem;
  background: color-mix(in srgb, var(--sage) 58%, #fff);
  color: var(--ink);
  font: 450 .95rem/1.45 var(--font-sans);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 22%, var(--line));
}
.catalogue-import-next svg {
  width: 1.3rem;
  height: 1.3rem;
  margin-top: .12rem;
  fill: none;
  stroke: var(--accent-deep);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.catalogue-import-next strong {
  display: block;
  margin: 0 0 .25rem;
  font: 650 1rem/1.25 var(--font-sans);
}
.catalogue-import-next p { margin: 0; font: inherit; }
.catalogue-import-next a { color: var(--accent-deep); font-weight: 700; }
.catalogue-import-success .catalogue-import-actions { padding-top: .1rem; }
@keyframes catalogue-import-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes catalogue-import-spin { to { transform: rotate(360deg); } }
@keyframes catalogue-import-stamp {
  from { opacity: 0; transform: scale(.3) rotate(-20deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}
@container import-card (max-width: 33.9rem) {
  .catalogue-import-rail { grid-template-columns: 1fr; }
  .catalogue-import-stats { gap: .4rem; }
  .catalogue-import-stats li { padding: .6rem .55rem; }
  .catalogue-import-stats strong { font-size: 1.2rem; }
}
@container import-card (min-width: 34rem) {
  .catalogue-import-split { grid-template-columns: 1.15fr .85fr; align-items: stretch; }
  .catalogue-import-choices { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .catalogue-import-step, .catalogue-import-spinner {
    animation: none;
  }
}
.mobile-settings-logout { margin: 1.15rem 0 0; }
.mobile-settings-logout button { width: auto; min-width: 8rem; }
.settings-preview-col { min-width: 0; }
.settings-help { margin: 0 0 .8rem; color: var(--muted); font: 400 .85rem/1.35 var(--font-prose); }
.settings-card.settings-photo-fill .photo-fill-layout,
.settings-card.settings-research .photo-fill-layout {
  display: grid;
  gap: 1.75rem;
  min-width: 0;
}
.settings-card.settings-photo-fill .photo-fill-fields-col,
.settings-card.settings-photo-fill .photo-fill-usage-col,
.settings-card.settings-research .photo-fill-fields-col,
.settings-card.settings-research .photo-fill-usage-col { min-width: 0; margin: 0; padding: 0; border: 0; }
.settings-card.settings-photo-fill .photo-fill-fields-col .preference-row,
.settings-card.settings-research .photo-fill-fields-col .preference-row {
  padding: .85rem 0;
  border-top: 0;
  border-bottom: 1px solid var(--line);
}
.settings-card.settings-photo-fill .photo-fill-usage-col,
.settings-card.settings-research .photo-fill-usage-col {
  display: grid;
  align-content: start;
  gap: .45rem;
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--sand);
}
.settings-card.settings-photo-fill .photo-fill-usage-col h3,
.settings-card.settings-research .photo-fill-usage-col h3 {
  margin: 0;
  font: 650 1.05rem/1.2 var(--font-sans);
}
.settings-card.settings-photo-fill .photo-fill-remaining,
.settings-card.settings-research .photo-fill-remaining {
  margin: 0;
  font: 650 1.45rem/1.1 var(--font-sans);
}
.settings-card.settings-photo-fill .photo-fill-usage-col .settings-help,
.settings-card.settings-research .photo-fill-usage-col .settings-help { margin: 0; }
.settings-card.settings-research .research-limit-field {
  display: grid;
  gap: .35rem;
  margin: 0;
  padding: .95rem 0 0;
}
.settings-card.settings-research .research-limit-field strong {
  font: 650 1rem/1.25 var(--font-sans);
}
.settings-card.settings-research .research-limit-field span {
  color: var(--muted);
  font: 400 .85rem/1.4 var(--font-prose);
}
.settings-card.settings-research .settings-number {
  width: 6.5rem;
  padding: .55rem .7rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: #fff;
  font: 650 1rem/1.2 var(--font-sans);
}
.subscription-panel { min-width: 0; }
.subscription-panel [x-cloak] { display: none !important; }
.subscription-body,
.subscription-main,
.subscription-aside,
.subscription-offers { min-width: 0; }
.subscription-now {
  display: grid;
  gap: .75rem 1.25rem;
  margin: 0 0 1rem;
  padding: .85rem 1rem;
  border: 1.5px dashed var(--line);
  border-radius: .9rem;
  background: color-mix(in srgb, var(--ink) 4%, #fff);
}
.subscription-now-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}
.subscription-now-name {
  margin: 0;
  font: 650 1.05rem/1.25 var(--font-sans);
}
.subscription-now .subscription-desc { margin: .25rem 0 0; }
.subscription-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
  gap: .75rem 1.25rem;
}
.subscription-now .subscription-groups { margin-top: .15rem; }
.subscription-group-label {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0 0 .35rem;
  color: var(--muted);
  font: 700 .72rem/1.2 var(--font-sans);
}
.subscription-group-icon {
  display: grid;
  width: 1.15rem;
  height: 1.15rem;
  place-items: center;
  border-radius: .35rem;
  background: var(--sage);
  color: var(--accent-deep);
}
.subscription-group-icon svg,
.subscription-group li svg {
  width: .7rem;
  height: .7rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.subscription-group ul { margin: 0; padding: 0; list-style: none; }
.subscription-group li {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  padding: .14rem 0;
  color: var(--ink);
  font-size: .82rem;
  line-height: 1.4;
}
.subscription-group li svg { flex: none; margin-top: .2rem; color: var(--accent); stroke-width: 3; }
.subscription-group a { color: var(--accent-deep); font-weight: 650; }
.subscription-usage { margin: 0; }
.subscription-usage-top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .45rem;
  font-size: .88rem;
}
.subscription-usage-top span { color: var(--muted); }
.subscription-usage-track {
  height: .45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ink) 6%, #fff);
  overflow: hidden;
}
.subscription-usage-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.subscription-usage p { margin: .45rem 0 0; color: var(--muted); font-size: .8rem; }
.subscription-now .subscription-features { margin: .75rem 0 0; }
.subscription-toolbar {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin: 1.5rem 0 1.15rem;
  padding: .15rem 0 .1rem;
}
.subscription-toolbar-label {
  margin: 0;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.subscription-toggle {
  display: inline-flex;
  padding: .2rem;
  border-radius: 999px;
  background: var(--sage);
}
.subscription-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 2.15rem;
  padding: .35rem 1rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--accent-deep);
  font: 700 .8rem/1 var(--font-sans);
  cursor: pointer;
}
.subscription-toggle-btn.is-active { background: var(--ink); color: #fff; }
.subscription-save {
  padding: .1rem .4rem;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-size: .65rem;
}
.subscription-toggle-btn.is-active .subscription-save { background: rgba(255,255,255,.2); }
.subscription-choices {
  display: grid;
  grid-template-columns: 1fr;
  gap: .85rem;
  margin: 0 0 .25rem;
}
.subscription-plan {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0;
  padding: 1.15rem 1.2rem 1.2rem;
  border: 1.5px solid var(--line);
  border-radius: 1rem;
  background: #fff;
}
.subscription-plan.is-popular {
  border-color: var(--accent);
  box-shadow: 0 1.25rem 2.5rem -1.55rem color-mix(in srgb, var(--accent) 55%, transparent);
}
.subscription-plan-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .15rem;
}
.subscription-plan-top h3 { margin: 0; font: 650 1.15rem/1.2 var(--font-sans); }
.subscription-badge {
  flex: none;
  padding: .2rem .65rem;
  border-radius: 999px;
  font: 700 .68rem/1.2 var(--font-sans);
}
.subscription-badge.is-current { background: var(--line); color: var(--muted); }
.subscription-badge.is-popular { background: var(--sage); color: var(--accent-deep); }
.subscription-price { margin: .35rem 0 .15rem; font: 700 1.55rem/1.1 var(--font-sans); }
.subscription-price-unit {
  margin-left: .15rem;
  color: var(--muted);
  font: 600 .8rem/1 var(--font-sans);
}
.subscription-price-year {
  display: block;
  margin: .25rem 0 0;
  color: var(--muted);
  font: 500 .75rem/1.2 var(--font-sans);
}
.subscription-desc { margin: 0 0 .85rem; color: var(--muted); font-size: .88rem; line-height: 1.4; }
.subscription-features {
  margin: 0 0 1.05rem;
  padding: 0;
  list-style: none;
}
.subscription-features li {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  padding: .18rem 0;
  color: var(--ink);
  font-size: .82rem;
  line-height: 1.4;
}
.subscription-features svg {
  flex: none;
  width: .7rem;
  height: .7rem;
  margin-top: .22rem;
  fill: none;
  stroke: var(--accent);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.subscription-features a { color: var(--accent-deep); font-weight: 650; }
.subscription-plan form { margin-top: auto; }
.subscription-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.75rem;
  border: 0;
  border-radius: .7rem;
  background: var(--accent);
  color: #fff;
  font: 700 .9rem/1 var(--font-sans);
  cursor: pointer;
}
.subscription-cta:hover { background: var(--accent-deep); }
.subscription-custom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: .85rem 0 0;
  padding: 1rem 1.15rem;
  border: 1.5px dashed var(--line);
  border-radius: .9rem;
}
.subscription-custom strong { display: block; font-size: .9rem; }
.subscription-custom p { margin: .2rem 0 0; color: var(--muted); font-size: .8rem; }
.subscription-custom a { flex: none; color: var(--accent-deep); font-weight: 700; text-decoration: none; }
.subscription-meters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
  margin: 0 0 1rem;
}
.subscription-fills {
  margin: 0;
  padding: .85rem 1rem;
  border: 1.5px solid var(--line);
  border-radius: .9rem;
  background: #fff;
}
.subscription-fills-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .75rem;
}
.subscription-fills-top h3 { margin: 0; font: 650 1.05rem/1.25 var(--font-sans); }
.subscription-fills-top .subscription-desc { margin: .25rem 0 0; }
.subscription-fills-top strong { flex: none; font: 700 1.05rem/1.2 var(--font-sans); }
.subscription-fills .subscription-usage { margin: 0; }
.subscription-extras {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: .85rem 0 0;
  padding-top: .85rem;
  border-top: 1px solid var(--line);
}
.subscription-extras strong { display: block; font-size: .9rem; }
.subscription-extras p { margin: .2rem 0 0; color: var(--muted); font-size: .8rem; }
.subscription-extras a { flex: none; color: var(--accent-deep); font-weight: 700; text-decoration: none; }
@media (max-width: 40rem) {
  .subscription-groups { grid-template-columns: 1fr; }
  .subscription-meters { grid-template-columns: 1fr; }
  .subscription-custom,
  .subscription-extras { flex-direction: column; align-items: flex-start; }
}
.shop-location-list { display: grid; gap: 1rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.shop-location {
  display: grid;
  gap: .7rem;
  padding: 1rem 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: color-mix(in srgb, var(--sand) 55%, #fff);
}
.shop-location-form { display: grid; gap: 0; }
.shop-location-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.shop-location-actions .settings-save { margin-top: .15rem; min-width: 8rem; }
.shop-archive-form { margin: 0; }
.shop-archive {
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  color: var(--muted);
  font: 600 .9rem var(--font-sans);
  text-decoration: underline;
  text-underline-offset: .15em;
  cursor: pointer;
}
.shop-archive:hover { color: var(--ink); }
.shop-optional { font-weight: 400; color: var(--muted); }
.shop-archived { margin: 0 0 1.25rem; }
.shop-archived h3,
.shop-add-form h3 { margin: 0 0 .35rem; font: 650 1.05rem/1.2 var(--font-sans); }
.shop-archived ul { margin: 0; padding-left: 1.1rem; color: var(--muted); }
.shop-add-form { padding-top: .35rem; border-top: 1px solid var(--line); }
.shop-add-form p { margin: 0 0 .85rem; color: var(--muted); font: 400 .9rem/1.4 var(--font-prose); }
.trustee-report { margin: 0 0 1.5rem; padding: 1.1rem 1.15rem 1.2rem; }
.trustee-report-head h1 { margin: .15rem 0; font: 650 1.45rem/1.2 var(--font-sans); }
.trustee-report-head p { margin: .2rem 0 0; color: var(--muted); font: 400 .92rem/1.45 var(--font-prose); }
.trustee-periods { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0; }
.trustee-periods a, .trustee-print {
  padding: .35rem .7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: 600 .85rem/1.2 var(--font-sans);
  text-decoration: none;
}
.trustee-periods a[aria-current="page"] { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, #fff); }
.trustee-print { cursor: pointer; }
.trustee-activity-kicker {
  margin: .15rem 0 .45rem;
  font: 700 .72rem/1.2 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
}
.trustee-totals { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.trustee-totals li { padding: .85rem .85rem .75rem; border: 1px solid var(--line); border-radius: .85rem; background: #fff; }
.trustee-totals strong { display: block; font: 700 1.45rem/1.1 var(--font-sans); }
.trustee-totals span { color: var(--muted); font: 500 .82rem/1.3 var(--font-sans); }
.trustee-totals small { display: block; margin-top: .45rem; font: 650 .72rem/1.3 var(--font-sans); }
.trustee-totals small.is-good { color: #2f7a4f; }
.trustee-totals small.is-bad { color: #a94735; }
.trustee-totals small.is-neutral { color: var(--muted); }
.trustee-trend {
  margin: 0 0 1.1rem;
  padding: 1rem 1.05rem .7rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.trustee-trend-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .35rem; }
.trustee-trend-head h2 { margin: 0; font: 650 1rem/1.2 var(--font-sans); }
.trustee-trend-key { display: flex; flex-wrap: wrap; gap: .7rem 1.1rem; margin: 0; padding: 0; list-style: none; color: var(--muted); font: 550 .75rem/1.2 var(--font-sans); }
.trustee-trend-key li { display: inline-flex; align-items: center; gap: .4rem; }
.trustee-trend-key i { display: inline-block; width: 1.15rem; height: 0; border-top: 2.4px solid #1f5c56; }
.trustee-trend-key i.is-confidence { border-top-style: dashed; border-top-color: #c4a035; }
.trustee-trend-chart { display: block; width: 100%; height: auto; }
.trustee-trend-axis { stroke: #e6e1d8; stroke-width: 1; }
.trustee-trend-lookups { fill: none; stroke: #1f5c56; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.trustee-trend-confidence { fill: none; stroke: #c4a035; stroke-width: 2.2; stroke-dasharray: 6 5; stroke-linejoin: round; stroke-linecap: round; }
.trustee-trend-dot { stroke: #fff; stroke-width: 1.4; }
.trustee-trend-dot.is-lookups { fill: #1f5c56; }
.trustee-trend-dot.is-confidence { fill: #c4a035; }
.trustee-trend-label { fill: #8a8378; font: 500 11px var(--font-sans); }
.trustee-confidence-copy { margin: 0 0 1rem; color: var(--muted); font: 400 .9rem/1.45 var(--font-prose); }
@media (max-width: 860px) {
  .trustee-totals { grid-template-columns: 1fr 1fr; }
}
.trustee-shops { width: 100%; border-collapse: collapse; }
.trustee-shops caption { caption-side: top; margin: 0 0 .5rem; text-align: left; font: 650 1rem/1.3 var(--font-sans); }
.trustee-shops th, .trustee-shops td { padding: .55rem .4rem; border-bottom: 1px solid var(--line); text-align: left; font: 500 .9rem/1.35 var(--font-sans); }
.trustee-shops th[scope="col"] { color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
@media print {
  .desktop-sidebar, .app-nav, .mobile-nav, .trustee-periods { display: none !important; }
  .trustee-report { box-shadow: none; border: 0; }
}
.shop-usage-map { margin: 0 0 1rem; padding: 1rem 1.05rem 1.05rem; }
.shop-usage-map h2 { margin: 0; font: 650 1.15rem/1.2 var(--font-sans); }
.shop-usage-map > p { margin: .25rem 0 .85rem; color: var(--muted); font: 400 .9rem/1.4 var(--font-prose); }
.shop-usage-chart {
  position: relative;
  z-index: 0;
  overflow: hidden;
  height: 22rem;
  border-radius: .9rem;
  background: #d8e0d4;
}
.shop-usage-chart .leaflet-container { height: 100%; width: 100%; font: inherit; }
.shop-usage-marker {
  display: flex;
  width: max-content;
  transform: translate(-50%, -100%);
}
.shop-usage-marker span {
  display: grid;
  place-items: center;
  min-height: 1.35rem;
  padding: .2rem .45rem;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  box-shadow: 0 1px 4px rgb(0 0 0 / .2);
  font: 650 .68rem/1 var(--font-sans);
  white-space: nowrap;
}
.shop-usage-marker.is-quiet span { background: var(--warning); }
.shop-usage-unplaced { display: grid; gap: .35rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.shop-usage-unplaced a { color: var(--accent-deep); }
.shop-activity { margin: 0 0 1rem; padding: 1rem 1.05rem 1.05rem; }
.shop-activity h2 { margin: 0; font: 650 1.15rem/1.2 var(--font-sans); }
.shop-activity > p { margin: .25rem 0 .85rem; color: var(--muted); font: 400 .9rem/1.4 var(--font-prose); }
.shop-activity ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.shop-activity a {
  display: grid;
  gap: .15rem;
  padding: .7rem .8rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: #fff;
  color: inherit;
  text-decoration: none;
}
.shop-activity a span { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.shop-activity a small { color: var(--muted); }
.shop-activity .is-quiet a { border-color: color-mix(in srgb, var(--warning) 35%, var(--line)); background: color-mix(in srgb, var(--tan) 70%, #fff); }
.shop-activity b {
  flex: none;
  padding: .12rem .45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--warning) 22%, #fff);
  color: color-mix(in srgb, var(--warning) 55%, var(--ink));
  font: 700 .68rem/1.2 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.shop-activity-line { margin: .15rem 0 0; color: var(--muted); font: 500 .85rem/1.4 var(--font-sans); }
.shop-activity-line a { margin-left: .35rem; color: var(--accent-deep); }
.shop-activity-line.is-quiet { color: color-mix(in srgb, var(--warning) 45%, var(--ink)); }
.settings-field { display: grid; gap: .35rem; margin-bottom: .85rem; font-weight: 600; }
.settings-field input[type="text"],
.settings-field input[type="email"],
.settings-field input[type="file"],
.settings-field select {
  width: 100%;
  min-height: 2.6rem;
  padding: .55rem .75rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: #fff;
  font: 400 1rem var(--font-sans);
}
.theme-swatches { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1rem; padding: 0; border: 0; }
.theme-swatches legend { width: 100%; margin-bottom: .45rem; font-weight: 600; }
.theme-swatch { position: relative; display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: .8rem; cursor: pointer; }
.theme-swatch:has(input:checked) { border-color: var(--ink); box-shadow: 0 0 0 2px color-mix(in srgb, var(--ink) 12%, transparent); }
.theme-swatch input { position: absolute; opacity: 0; pointer-events: none; }
.theme-swatch-chip { width: .85rem; height: .85rem; border-radius: 999px; background: var(--swatch); }
.settings-card.settings-appearance .appearance-layout {
  display: grid;
  gap: 1.75rem;
  min-width: 0;
}
.settings-card.settings-appearance .appearance-fields-col { min-width: 0; }
.settings-card.settings-appearance .settings-preview-col { min-width: 0; }
.settings-card.settings-appearance .appearance-scheme-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
}
.settings-card.settings-appearance .appearance-scheme-grid .theme-swatch {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 4.6rem;
  padding: .85rem .45rem .7rem;
  border-radius: .85rem;
  font: 600 .72rem/1.2 var(--font-sans);
}
.settings-card.settings-appearance .appearance-scheme-grid .theme-swatch-chip {
  width: 1.6rem;
  height: 1.6rem;
}
.settings-card.settings-appearance .appearance-logo-file {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 2.8rem;
  padding: .45rem .75rem;
  border: 1.5px dashed var(--line);
  border-radius: .7rem;
  background: #fff;
}
.appearance-logo-preview {
  height: 2rem;
  max-width: 6.5rem;
  width: auto;
  object-fit: contain;
}
.appearance-logo-crop {
  margin: .45rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent, #2f7d50);
  font: 650 .85rem/1.3 var(--font-sans);
  cursor: pointer;
}
.settings-card.settings-appearance .appearance-logo-file input[type="file"] {
  min-height: 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: .85rem;
}
.appearance-logo-input {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  opacity: 0;
  pointer-events: none;
}
.logo-crop-shapes { display: flex; gap: .45rem; }
.logo-crop-shapes button {
  min-height: 2.2rem;
  padding: .35rem .9rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font: 650 .82rem/1.2 var(--font-sans);
  cursor: pointer;
}
.logo-crop-shapes button.is-active {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}
.settings-card.settings-appearance .appearance-logo-field small {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 400;
}
.color-fields { display: grid; gap: .85rem; margin: 0 0 1rem; }
.color-field { display: grid; gap: .35rem; font-weight: 600; }
.color-field small { color: var(--muted); font-size: .78rem; font-weight: 400; }
.color-field-row { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); gap: .55rem; align-items: center; }
.color-field-row input[type="color"] { width: 2.6rem; height: 2.6rem; padding: 0; border: 1px solid var(--line); border-radius: .7rem; background: #fff; cursor: pointer; }
.color-field-row input[type="text"] { width: 100%; min-height: 2.6rem; padding: .55rem .75rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; font: 500 .95rem ui-monospace, monospace; }
.settings-remove-logo { display: flex; align-items: center; gap: .5rem; margin: -.3rem 0 .9rem; font-size: .9rem; }
.login-preview { min-width: 0; max-width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #d8d6d0; box-shadow: var(--shadow-card); }
.login-preview-split { display: grid; }
.login-preview-left { display: flex; flex-direction: column; justify-content: center; padding: 1rem .9rem 1.15rem; background: var(--auth-paper, var(--paper)); }
.login-preview-brand { display: flex; flex-direction: column; align-items: center; gap: .55rem; margin-bottom: 1rem; text-align: center; }
.login-preview-logo { height: 2.4rem; max-width: 7.2rem; width: auto; object-fit: contain; padding: .2rem .35rem; border-radius: .45rem; background: #fff; }
.login-preview-brand.has-logo { gap: 0; }
.login-preview-open {
  display: inline-flex;
  margin: .7rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent, #2f7d50);
  font: 650 .85rem/1.3 var(--font-sans);
  cursor: pointer;
}
.logo-crop-dialog {
  width: min(42rem, calc(100% - 1.5rem));
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--card, #fff);
  box-shadow: var(--shadow-card);
}
.login-full-preview-dialog {
  width: calc(100vw - 1.25rem);
  height: calc(100dvh - 1.25rem);
  max-width: none;
  max-height: none;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--card, #fff);
  box-shadow: var(--shadow-card);
}
.login-full-preview-dialog[open] {
  display: flex;
  flex-direction: column;
}
.logo-crop-dialog::backdrop,
.login-full-preview-dialog::backdrop { background: rgba(18, 24, 42, .45); }
.logo-crop-dialog-body { display: grid; gap: .85rem; padding: 1.15rem 1.2rem 1.2rem; }
.logo-crop-dialog-body h3 { margin: 0; font: 700 1.15rem/1.3 var(--font-sans); }
.logo-crop-dialog-body p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.45; }
.logo-crop-view {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: min(32rem, 58dvh);
  min-height: 18rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #1a1a1a;
  cursor: grab;
  touch-action: none;
}
.logo-crop-view:active { cursor: grabbing; }
.logo-crop-image {
  position: absolute;
  top: 0;
  left: 0;
  max-width: none;
  user-select: none;
  pointer-events: none;
}
.logo-crop-frame {
  position: absolute;
  z-index: 1;
  box-sizing: border-box;
  border: 2px solid #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, .55);
  pointer-events: none;
}
.logo-crop-zoom { display: flex; gap: .5rem; }
.logo-crop-zoom button,
.logo-crop-actions button:not(.ui-primary) {
  min-height: 2.4rem;
  padding: 0 .9rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  font: 650 .9rem/1 var(--font-sans);
  cursor: pointer;
}
.logo-crop-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.login-full-preview-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem 1rem;
  flex: none;
  padding: .7rem 1rem;
  border-bottom: 1px solid var(--line);
}
.login-preview-switch {
  display: inline-flex;
  overflow: hidden;
  flex: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--sand, #f3f0ea);
}
.login-preview-switch button {
  box-sizing: border-box;
  min-height: 2.3rem;
  padding: .45rem 1rem;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: 650 .85rem/1.2 var(--font-sans);
  cursor: pointer;
}
.login-preview-switch button:last-child { border-right: 0; }
.login-preview-switch button.is-active {
  background: var(--ink);
  color: #fff;
}
.login-full-preview-size {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex: none;
  margin: 0 auto 0 0;
  color: var(--muted);
  font: 650 .82rem/1.2 var(--font-sans);
}
.login-full-preview-size input[type="range"] { width: 8.5rem; }
.login-full-preview-size small { flex: none; min-width: 2.6rem; color: var(--ink); }
.login-full-preview-close {
  margin-left: auto;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent, #2f7d50);
  font: 650 .85rem/1.3 var(--font-sans);
  cursor: pointer;
}
.login-full-preview-stage,
.login-app-preview {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  background: var(--auth-paper, #f2f2e8);
  color: var(--auth-ink, #212d3b);
}
.login-app-preview {
  display: flex;
  background: var(--paper, #f7f5ef);
}
.login-full-preview-stage.is-mobile,
.login-app-preview.is-mobile {
  display: grid;
  place-items: center;
  overflow: auto;
  background: #d8d6d0;
}
.login-full-preview-stage.is-mobile .auth-split,
.login-app-preview.is-mobile .login-app-preview-main {
  width: min(24.5rem, calc(100% - 1.5rem));
  min-height: min(44rem, calc(100% - 1.5rem));
  height: min(44rem, calc(100% - 1.5rem));
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--auth-paper, var(--paper));
  box-shadow: var(--shadow-card);
}
.login-app-preview.is-mobile .login-app-preview-sidebar { display: none; }
.login-app-preview.is-desktop .login-app-preview-mobile { display: none; }
.login-app-preview-sidebar {
  display: flex;
  width: 13.5rem;
  flex: none;
  flex-direction: column;
  padding: 1rem .85rem;
  background: var(--ink);
  color: #fff;
}
.login-app-preview-brand { margin: 0 .35rem .5rem; }
.login-app-preview .sidebar-logo-plate {
  display: grid;
  width: auto;
  max-width: 8.25rem;
  height: 2.4rem;
  place-items: center;
  padding: .2rem .35rem;
  border-radius: .45rem;
  background: #fff;
}
.login-app-preview .sidebar-logo-plate img {
  width: auto;
  height: 2rem;
  max-width: 7.6rem;
  object-fit: contain;
}
.login-app-preview .sidebar-brand-text {
  display: block;
  overflow: hidden;
  max-width: 100%;
  color: #fff;
  font-size: 1.15rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.login-app-preview .sidebar-powered { margin: 0 .35rem .7rem; color: #9ca6b4; font-size: .72rem; }
.login-app-preview-nav { display: grid; gap: .35rem; }
.login-app-preview-nav span {
  padding: .55rem .7rem;
  border-radius: .45rem;
  color: #d5dae2;
  font-size: .9rem;
  font-weight: 650;
}
.login-app-preview-nav span.is-active { background: #3f4d5e; color: #fff; }
.login-app-preview-main { flex: 1; min-width: 0; padding: 1.5rem 1.75rem; }
.login-app-preview-main h1 { margin: 0 0 .35rem; font: 700 1.6rem/1.2 var(--font-sans); }
.login-app-preview-main p { margin: 0; color: var(--muted, #667085); }
.login-app-preview-mobile {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin: 0 0 1.25rem;
}
.login-app-preview-mobile .mobile-brand-logo {
  width: auto;
  height: 2.2rem;
  max-width: 6.5rem;
  object-fit: contain;
  padding: .15rem .3rem;
  border: 1px solid var(--line);
  border-radius: .45rem;
  background: #fff;
}
.login-full-preview-stage .auth-split {
  display: flex;
  min-height: 100%;
  height: 100%;
}
.login-full-preview-stage .auth-left {
  padding: 1.5rem 1.25rem;
}
.login-full-preview-stage .auth-brand-panel { display: none; }
.login-full-preview-stage .auth-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.login-full-preview-stage .auth-field input { pointer-events: none; }
.login-full-preview-stage .auth-signup-prompt span {
  color: var(--auth-teal-ink);
  font-weight: 600;
}
.login-full-preview-stage.is-desktop .auth-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.login-full-preview-stage.is-desktop .auth-left { padding: 2.75rem 3.5rem; }
.login-full-preview-stage.is-desktop .auth-mobile-brand { margin-bottom: 2.25rem; }
.login-full-preview-stage.is-desktop.is-branded .auth-charity-logo {
  width: auto;
  height: calc(4.25rem * var(--auth-logo-scale, 1));
  max-width: calc(13.5rem * var(--auth-logo-scale, 1));
  border-radius: 18px;
}
.login-full-preview-stage.is-desktop .auth-card {
  padding: 2.25rem 2.125rem;
  border-radius: 20px;
  box-shadow: var(--auth-shadow);
}
.login-full-preview-stage.is-desktop .auth-h { font-size: 1.5rem; }
.login-full-preview-stage.is-desktop .auth-sub { margin-bottom: 1.6rem; font-size: 0.875rem; line-height: 1.55; }
.login-full-preview-stage.is-desktop .auth-brand-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: 3.5rem 3.25rem 3.5rem 3.5rem;
  background: var(--auth-ink);
  color: #fff;
}
.login-full-preview-stage.is-desktop .auth-brand-panel::before {
  position: absolute;
  top: -10%;
  right: -8%;
  width: 26rem;
  height: 26rem;
  background: radial-gradient(circle, var(--auth-glow) 0%, transparent 70%);
  content: "";
}
.login-full-preview-stage.is-desktop .auth-brand-inner {
  position: relative;
  width: 100%;
  container-type: inline-size;
}
.login-full-preview-stage.is-desktop .auth-brand-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  color: var(--auth-teal-light);
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.login-full-preview-stage.is-desktop .auth-brand-eyebrow::before {
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: var(--auth-teal-light);
  content: "";
}
.login-full-preview-stage.is-desktop .auth-brand-inner h2 {
  margin: 0 0 0.65rem;
  font-family: var(--font-sans);
  font-size: clamp(1.7rem, 7.4cqi, 2.85rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
}
.login-full-preview-stage.is-desktop .auth-brand-title-lead { white-space: nowrap; }
.login-full-preview-stage.is-desktop .auth-brand-title-kicker { display: block; }
.login-full-preview-stage.is-desktop .auth-brand-lede {
  margin: 0 0 2.5rem;
  color: #B8C0CC;
  font-family: var(--font-prose);
  font-size: 1rem;
  line-height: 1.65;
}
.login-full-preview-stage.is-desktop .auth-feat {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
  opacity: 1;
  transform: none;
  animation: none;
}
.login-full-preview-stage.is-desktop .auth-feat:last-child { margin-bottom: 0; }
.login-full-preview-stage.is-desktop .auth-feat-icon {
  display: flex;
  width: 2.5rem;
  height: 2.5rem;
  flex: none;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--auth-teal-light);
}
.login-full-preview-stage.is-desktop .auth-feat-icon svg { width: 1.125rem; height: 1.125rem; }
.login-full-preview-stage.is-desktop .auth-feat-title {
  margin: 0 0 0.25rem;
  font-size: 0.9375rem;
  font-weight: 700;
}
.login-full-preview-stage.is-desktop .auth-feat-copy {
  margin: 0;
  color: #98A2B0;
  font-size: 0.84rem;
  line-height: 1.55;
}
.login-preview-name { font: 700 1rem var(--font-sans); color: var(--auth-ink, var(--ink)); }
.login-preview-card { padding: .9rem .85rem 1rem; border: 1px solid color-mix(in srgb, var(--auth-ink, var(--ink)) 12%, transparent); border-radius: 14px; background: #fff; }
.login-preview-card h3 { margin: 0 0 .2rem; font: 700 1.05rem var(--font-sans); color: var(--auth-ink, var(--ink)); }
.login-preview-card p { margin: 0 0 .75rem; color: color-mix(in srgb, var(--auth-ink, var(--ink)) 62%, white); font-size: .78rem; line-height: 1.4; }
.login-preview-input { margin-bottom: .7rem; padding: .55rem .7rem; border: 1.5px solid color-mix(in srgb, var(--auth-ink, var(--ink)) 16%, transparent); border-radius: 10px; color: color-mix(in srgb, var(--auth-ink, var(--ink)) 45%, white); font-size: .8rem; }
.login-preview-cta { display: flex; align-items: center; justify-content: center; min-height: 2.3rem; border-radius: 10px; background: var(--auth-teal, var(--accent)); color: #fff; font-size: .8rem; font-weight: 700; }
.login-preview-right { padding: 1rem .95rem 1.1rem; background: var(--auth-ink, var(--ink)); color: #fff; }
.login-preview-right p { margin: 0 0 .45rem; color: color-mix(in srgb, var(--auth-teal, var(--accent)) 55%, white); font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.login-preview-right h3 { margin: 0 0 .45rem; font: 650 1rem/1.2 var(--font-sans); }
.login-preview-right p:last-child { margin: 0; color: rgba(255,255,255,.72); font-size: .75rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.coming-soon { display: inline-block; margin-left: .4rem; padding: .12rem .45rem; border-radius: 999px; background: var(--sand); color: var(--muted); font: 700 .68rem/1 var(--font-sans); letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; }
.settings-advanced fieldset { margin: 0; padding: 0; border: 0; }
.domain-layout {
  display: grid;
  gap: 1.75rem;
  min-width: 0;
}
.domain-fields-col,
.domain-records-col { min-width: 0; }
.domain-records-col .ui-eyebrow { margin: 0 0 .55rem; }
.domain-dns-block {
  margin: 0;
  padding: .9rem 1rem;
  border-radius: .75rem;
  background: var(--sand);
  color: var(--muted);
  font: 500 .82rem/1.7 ui-monospace, monospace;
}
.domain-dns-block p { margin: 0; }
.domain-dns-block span {
  display: inline-block;
  min-width: 3.6rem;
  color: var(--ink);
  font-weight: 700;
}
.domain-dns-block code { font: inherit; color: var(--ink); }
.domain-status-rows { margin: 1.15rem 0 0; }
.domain-status-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .65rem 0;
  border-bottom: 1px solid var(--line);
  font-size: .9rem;
}
.domain-status-row span { color: var(--muted); }
.domain-status-row strong { font-weight: 650; text-align: right; }
.domain-host-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: .65rem;
  margin-bottom: .35rem;
}
.domain-host-row .settings-field { flex: 1 1 12rem; min-width: 0; margin-bottom: 0; }
.domain-host-row .domain-save {
  flex: 1 1 100%;
  width: 100%;
  min-width: 0;
  min-height: 2.6rem;
  margin-top: 0;
  padding: .55rem 1.15rem;
}
.domain-prefs .preference-row:first-of-type { border-top: 1px solid var(--line); }
.domain-status-card {
  margin: 1.1rem 0 0;
  padding: .95rem 1rem 1rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: var(--sand);
}
.domain-status-card.is-connected {
  border-color: color-mix(in srgb, #2f7d50 28%, var(--line));
  background: color-mix(in srgb, #2f7d50 8%, #fff);
}
.domain-status-card.is-pending {
  border-color: color-mix(in srgb, #d39b2a 34%, var(--line));
  background: color-mix(in srgb, #d39b2a 9%, #fff);
}
.domain-status-card.is-error {
  border-color: color-mix(in srgb, var(--danger, #b42318) 28%, var(--line));
  background: color-mix(in srgb, var(--danger, #b42318) 7%, #fff);
}
.domain-status-value {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  font-size: .95rem;
  font-weight: 700;
}
.domain-status-dot {
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #c5ccd6;
}
.domain-status-value.is-pending .domain-status-dot { background: #d39b2a; }
.domain-status-value.is-connected .domain-status-dot { background: #2f7d50; }
.domain-status-note {
  margin: .4rem 0 0;
  color: var(--ink);
  font-size: .85rem;
  font-weight: 400;
  line-height: 1.4;
}
.domain-status-card.is-error .domain-status-note { color: var(--danger, #b42318); }
.domain-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: .65rem;
  margin-top: .9rem;
}
.domain-action {
  width: 100%;
  min-width: 0;
  margin: 0;
}
.domain-disconnect { margin: .85rem 0 0; text-align: center; }
.domain-disconnect button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--muted);
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
}
.domain-disconnect button:hover { color: var(--ink); text-decoration: underline; }
.domain-records-footer {
  display: flex;
  justify-content: center;
  margin-top: 1.15rem;
}
.domain-records-footer .settings-save { margin-top: 0; min-width: 8.5rem; }
.domain-records-dialog {
  width: min(28rem, calc(100% - 2rem));
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--card);
  color: var(--ink);
  box-shadow: var(--shadow-card);
}
.domain-records-dialog::backdrop {
  background: color-mix(in srgb, var(--forest) 38%, transparent);
}
.domain-records-body { padding: 1.35rem 1.35rem 1.2rem; }
.domain-records-body h2 {
  margin: 0;
  color: var(--forest);
  font: 650 1.35rem/1.25 var(--font-sans);
}
.domain-records-body > p {
  margin: .55rem 0 0;
  color: var(--muted);
  font-size: .9rem;
}
.domain-record-steps { margin: 1rem 0 0; padding: 0; list-style: none; display: grid; gap: 1rem; }
.domain-record-steps h3 { margin: 0 0 .55rem; font-size: .95rem; }
.domain-copy-row {
  display: grid;
  grid-template-columns: 5.25rem minmax(0, 1fr) auto;
  gap: .45rem;
  align-items: center;
  margin: 0 0 .4rem;
}
.domain-copy-row span { color: var(--muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.domain-copy-row code {
  min-width: 0;
  overflow: auto;
  padding: .4rem .5rem;
  border-radius: .55rem;
  background: var(--sand, #f4f1ea);
  font-size: .78rem;
}
.domain-copy-row button {
  min-height: 2rem;
  padding: 0 .7rem;
  border: 0;
  border-radius: .6rem;
  background: var(--forest);
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
}
.notifications-open { overflow: hidden; }

@media (min-width: 900px) {
  .settings-page .desktop-utility { display: none; }
  .settings-page .app-main {
    display: flex;
    flex-direction: column;
    overflow: visible;
    padding: 1.6rem 2.5rem 1.5rem;
  }
  .settings-page-shell {
    display: flex;
    flex: none;
    min-height: 0;
    flex-direction: column;
  }
  .settings-head { flex: none; }
  .settings-head h1 { font: 650 2.15rem/1.05 var(--font-sans); }
  .settings-workspace {
    display: flex;
    align-items: flex-start;
    gap: 2.25rem;
    flex: none;
    min-height: 0;
    min-width: 0;
    width: 100%;
    overflow: visible;
  }
  .settings-rail {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    width: 15.5rem;
    flex: none;
    gap: .85rem;
    overflow: visible;
    position: sticky;
    top: 0;
    align-self: flex-start;
    padding: 1rem .85rem;
    border: 1px solid var(--line);
    border-radius: 1rem;
    background: #fff;
    box-shadow: var(--shadow-card);
  }
  .settings-rail-group { display: grid; gap: .2rem; }
  .settings-rail-kicker { padding: 0 .35rem .15rem; }
  .settings-rail a { width: 100%; }
  .settings-stage {
    flex: 1 1 auto;
    max-width: none;
    min-width: 0;
    min-height: 0;
    height: auto;
    align-items: start;
    align-content: start;
    overflow: visible;
  }
  .settings-stage > .settings-card,
  .settings-stage > .subscription-panel {
    align-self: start;
    height: auto;
  }
  .settings-page-shell.has-preview .settings-stage {
    flex: 1 1 auto;
    max-width: none;
  }
  .settings-page-shell.has-subscription {
    flex: 1;
    min-height: 0;
  }
  .settings-page-shell.has-subscription .settings-workspace {
    flex: 1;
    align-items: stretch;
    overflow: hidden;
  }
  .settings-page-shell.has-subscription .settings-stage {
    flex: 1 1 auto;
    max-width: none;
    overflow-x: hidden;
    overflow-y: auto;
  }
  .settings-card.settings-appearance .appearance-layout {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
    align-items: start;
  }
  .settings-card.settings-appearance .appearance-scheme-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .settings-card.settings-appearance .settings-preview-col {
    position: sticky;
    top: 0;
  }
  .domain-layout {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 20rem);
    align-items: start;
  }
  .domain-records-col { position: sticky; top: 0; }
  .settings-card.settings-conditions .conditions-layout {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
    align-items: start;
  }
  .settings-card.settings-conditions .settings-price-tester { position: sticky; top: 0; }
  .settings-page .affiliate-panel:not(.is-portal) .affiliates-layout {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
    align-items: start;
  }
  .settings-page .affiliate-panel:not(.is-portal) .affiliates-totals-col { position: sticky; top: 0; }
  .settings-page .affiliate-panel:not(.is-portal) .affiliate-stats {
    grid-template-columns: 1fr 1fr;
  }
  .settings-page .affiliate-panel:not(.is-portal) .affiliate-stat:nth-child(2) { border-right: 0; }
  .settings-page .affiliate-panel:not(.is-portal) .affiliate-stat:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .settings-card.settings-app .app-layout {
    grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr);
    align-items: start;
  }
  .settings-card.settings-app .app-guide-col { position: sticky; top: 0; }
  .settings-card.settings-app .settings-install-choices { grid-template-columns: 1fr; }
  .settings-card.settings-photo-fill .photo-fill-layout,
  .settings-card.settings-research .photo-fill-layout {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
    align-items: start;
  }
  .settings-card.settings-photo-fill .photo-fill-usage-col,
  .settings-card.settings-research .photo-fill-usage-col { position: sticky; top: 0; }
  .settings-card.settings-account .account-layout {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
    align-items: start;
  }
  .settings-card.settings-mail .mail-layout {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
    align-items: start;
  }
  .settings-card.settings-mail .mail-status-col { position: sticky; top: 0; }
  .subscription-now.has-usage {
    grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem);
    align-items: start;
  }
  .subscription-now-top { min-width: 0; }
  .subscription-now .subscription-groups { grid-column: 1 / -1; }
  .subscription-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    align-items: start;
  }
  .subscription-toolbar {
    justify-self: center;
    width: 100%;
    margin: 1.75rem 0 1.25rem;
  }
  .subscription-now { margin: 0 0 1rem; }
  .subscription-aside .subscription-custom {
    flex-direction: column;
    align-items: flex-start;
  }
  .subscription-choices { grid-template-columns: 1fr; }
  .settings-page .settings-preview-col {
    flex: 1 1 25rem;
    min-width: 0;
    max-width: none;
    position: sticky;
    top: 0;
    align-self: stretch;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
  }
  .settings-save { min-height: 3rem; }
  .domain-host-row {
    flex-wrap: nowrap;
    align-items: end;
  }
  .domain-host-row .domain-save {
    flex: 0 0 auto;
    width: auto;
    min-height: 2.6rem;
  }
  .domain-actions { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1100px) {
  .login-preview-split { grid-template-columns: 1.15fr .95fr; min-height: 24rem; }
}

/* Lists workbench */
.lists-mobile-heading { margin-bottom: 1.2rem; }
.lists-mobile-nav { margin-bottom: 1.2rem; overflow-x: auto; }
.lists-mobile-nav a {
  display: inline-flex;
  min-width: max-content;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  padding: .45rem .8rem;
}
.lists-unfiled-badge {
  display: inline-grid;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 .28rem;
  place-items: center;
  border-radius: 999px;
  background: #e23a2b;
  color: #fff;
  font-family: var(--font-sans);
  font-size: .68rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1;
}
.list-kind-title { margin: 0; color: var(--muted); font: 600 .78rem ui-monospace,monospace; letter-spacing: .12em; text-transform: uppercase; }
.lists-page .lists-desk { gap: 1rem; }
.lists-page .tree-row { border-radius: 0; }
.lists-inspector-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.lists-inspector-actions button {
  min-height: 3rem;
  border: 0;
  border-radius: 1rem;
  background: var(--sage);
  color: var(--forest);
  font-weight: 700;
}
.lists-place {
  min-height: 2.15rem;
  padding: .35rem 1rem;
  border: 1.5px solid #8a5a00;
  border-radius: 999px;
  background: #fff8e4;
  color: #6a4700;
  font-weight: 700;
}
.lists-sheet-handle {
  width: 2.6rem;
  height: .28rem;
  margin: .15rem auto .85rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ink) 28%, var(--line));
}
.lists-sheet-close {
  display: grid;
  width: 2.15rem;
  height: 2.15rem;
  padding: 0;
  place-items: center;
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: var(--sand);
  color: var(--ink);
  line-height: 0;
}
.lists-sheet-close svg {
  display: block;
  width: .95rem;
  height: .95rem;
}
.lists-desk-used {
  margin: .25rem 0 0;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 600;
}
.lists-value-uses {
  margin: 0 0 1rem;
}
.lists-value-uses-title {
  margin: 0 0 .5rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}
.lists-value-use-list,
.lists-value-use-rules {
  margin: 0;
  padding: 0;
  list-style: none;
}
.lists-value-use {
  padding: .7rem 0;
  border-top: 1px solid var(--line);
}
.lists-value-use-link {
  display: grid;
  gap: .15rem;
  color: inherit;
  text-decoration: none;
}
.lists-value-use-link small,
.lists-value-use-from {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 600;
}
.lists-value-use-price {
  font-weight: 750;
}
.lists-value-use-rules {
  display: grid;
  gap: .35rem;
  margin-top: .45rem;
}
.lists-value-use-rules li {
  color: var(--ink);
  font-size: .86rem;
  line-height: 1.35;
}
.lists-desk-hint {
  margin: 0 0 .65rem;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.4;
}
.lists-desk-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
}
.lists-desk-danger {
  display: none;
}
.lists-sheet-actions { display: grid; gap: 0; }
.lists-sheet-action {
  display: grid;
  grid-template-columns: 1.4rem minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  min-height: 3.35rem;
  padding: .7rem .15rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-size: 1.12rem;
  font-weight: 600;
  text-align: left;
}
.lists-sheet-action svg {
  width: 1.25rem;
  height: 1.25rem;
  color: currentColor;
}
.lists-sheet-delete { margin: 0; }
.lists-sheet-action.is-danger {
  margin-top: .35rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--danger);
}
.lists-pick {
  display: grid;
  max-height: 16rem;
  overflow: auto;
  border: 1.5px solid color-mix(in srgb, var(--ink) 16%, var(--line));
  border-radius: 1rem;
}
.lists-pick-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  min-height: 3.05rem;
  padding: .7rem 1rem;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--ink) 12%, var(--line));
  background: #fff;
  color: var(--ink);
  font-weight: 700;
  text-align: left;
}
.lists-pick-row:last-child { border-bottom: 0; }
.lists-pick-row.is-picked {
  background: var(--sage);
  box-shadow: inset 4px 0 0 var(--accent-deep);
}
.lists-pick-tick { color: var(--accent-deep); font-size: 1.2rem; font-weight: 800; }
.lists-add-sheet { color: var(--ink); }
.lists-modal-layer {
  position: fixed;
  inset: 0;
  z-index: 70;
}
.lists-modal-scrim {
  position: absolute;
  inset: 0;
  appearance: none;
  border: 0;
  background: color-mix(in srgb, var(--forest) 32%, transparent);
  cursor: pointer;
}
.lists-modal {
  box-shadow: 0 -10px 32px rgba(29, 41, 56, .16);
}
.lists-add-head { margin-bottom: 1.15rem; }
.lists-add-head-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 1rem;
}
.lists-add-title {
  margin: 0;
  color: var(--ink);
  font-size: 1.85rem;
  line-height: 1.15;
}
.lists-add-close {
  display: grid;
  width: 2rem;
  height: 2rem;
  padding: 0;
  place-items: center;
  appearance: none;
  border: 0;
  border-radius: .45rem;
  background: #e6e9ee;
  color: var(--ink);
  line-height: 0;
}
.lists-add-close svg {
  display: block;
  width: .95rem;
  height: .95rem;
}
.lists-add-kicker {
  display: block;
  margin: 0 0 .55rem;
  color: #8b93a0;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.lists-add-field { margin-top: 1.15rem; }
.lists-add-names {
  width: 100%;
  min-height: 6.6rem;
  padding: 1rem 1.05rem;
  border: 0;
  border-radius: 1rem;
  background: #eef1f5;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.45;
  resize: vertical;
}
.lists-add-names::placeholder { color: #9aa3af; }
.lists-add-sheet .lists-pick {
  max-height: 12.5rem;
  border: 0;
  border-radius: 0;
}
.lists-add-sheet .lists-pick-row {
  min-height: 3.15rem;
  padding: .85rem .15rem .85rem .75rem;
  border-bottom: 1px solid #e6e8ec;
  background: #fff;
  font-weight: 600;
}
.lists-add-sheet .lists-pick-row.is-picked {
  background: #e8edf2;
  box-shadow: none;
}
.lists-add-sheet .lists-pick-tick { color: var(--ink); }
.lists-add-actions { display: grid; gap: .65rem; margin-top: 1.35rem; }
.lists-add-error {
  margin: 0;
  color: var(--danger);
  font-size: .88rem;
  font-weight: 600;
  text-align: right;
}
.lists-add-primary,
.lists-add-secondary {
  min-height: 3.25rem;
  width: 100%;
  border-radius: 1rem;
  font-size: 1rem;
  font-weight: 700;
}
.lists-add-primary {
  border: 0;
  background: var(--ink);
  color: #fff;
}
.lists-add-secondary {
  border: 1.5px solid #d5d8de;
  background: #fff;
  color: var(--ink);
}
.lists-sheet-submit {
  min-height: 3rem;
  border: 0;
  background: var(--sand);
  color: var(--ink);
  font-weight: 700;
}
.lists-sheet-submit:disabled {
  cursor: not-allowed;
  opacity: 1;
  color: var(--muted);
}

@media (max-width: 899px) {
  .lists-page .lists-sheet-submit {
    min-height: 3.2rem;
    background: var(--ink);
    color: #fff;
  }
  .lists-page .lists-sheet-submit:disabled {
    background: var(--sand);
    color: var(--ink);
    box-shadow: inset 0 0 0 1.5px var(--line);
  }
  .lists-page .lists-inspector [data-inspector-close] {
    background: var(--sand);
    color: var(--ink);
  }
  .lists-page .lists-inspector .lists-inspector-kicker {
    margin: 0;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  .lists-page .lists-inspector .lists-inspector-name {
    margin: .2rem 0 0;
    font-size: 1.7rem;
  }
  .lists-page .lists-sidebar, .lists-page .lists-desk-copy, .lists-page .lists-tree-head, .lists-page .lists-tree-cols, .lists-page .tree-used, .lists-page .tree-size { display: none !important; }
  .lists-page .lists-inspector {
    position: fixed;
    z-index: 50;
    right: 0;
    bottom: 0;
    left: 0;
    max-height: 85dvh;
    overflow: auto;
    padding: 1.25rem 1.25rem max(1.5rem, env(safe-area-inset-bottom));
    border-radius: 1.5rem 1.5rem 0 0;
  }
  .lists-page .lists-inspector[data-read-only="true"],
  .lists-page .lists-inspector[data-open="false"] { display: none !important; }
  .lists-page .list-kind-title + button { position: fixed; right: 1.3rem; bottom: calc(var(--nav-height) + 1rem + env(safe-area-inset-bottom)); z-index: 20; width: 3.8rem; height: 3.8rem; overflow: hidden; padding: 0; border-radius: 50%; background: var(--ink); color: transparent; box-shadow: 0 8px 22px rgba(29,41,56,.22); }
  .lists-page .list-kind-title + button::after { position: absolute; inset: 0; display: grid; place-items: center; color: white; content: "+"; font-size: 2rem; font-weight: 400; }
  .lists-page section > form[action$="/categories"] { display: none; }
}
@media (min-width: 900px) {
  .lists-mobile-heading { display: none; }
  .lists-page .app-main { padding: 1.4rem 2rem 1.6rem; }
  .lists-page .lists-desk {
    grid-template-columns: 12rem minmax(0, 1fr) minmax(18rem, 20rem);
    align-items: stretch;
    gap: 1.25rem;
  }
  .lists-page .lists-sidebar {
    display: block !important;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .lists-page .lists-sidebar nav { margin: 0; gap: .15rem; }
  .lists-page .lists-rail-link {
    grid-template-columns: 1.1rem minmax(0, 1fr) auto;
    gap: .65rem;
    min-height: 3.15rem;
    padding: .65rem .75rem;
    border: 1px solid transparent;
    border-radius: .75rem;
    font-size: .92rem;
  }
  .lists-page .lists-rail-link.is-selected {
    border-color: var(--line);
    background: #fff;
    box-shadow: var(--shadow-card);
  }
  .lists-page .lists-rail-link svg { width: 1.05rem; height: 1.05rem; }
  .lists-page .lists-rail-link span { min-width: 0; }
  .lists-page .lists-rail-link strong,
  .lists-page .lists-rail-link small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .lists-page .lists-rail-link small { font-size: .72rem; }
  .lists-page .lists-rail-link .lists-unfiled-badge {
    min-width: 1.15rem;
    padding-inline: .35rem;
  }
  .lists-page .lists-mobile-nav { display: none !important; }
  .lists-page .lists-centre {
    min-width: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: .1rem;
  }
  .lists-page .lists-centre-head { margin-bottom: 1rem; }
  .lists-page .list-kind-title { font: 700 1.5rem var(--font-sans); color: var(--ink); letter-spacing: -.02em; text-transform: none; }
  .lists-page .lists-desk-kicker {
    margin-bottom: .35rem !important;
    font-size: .72rem !important;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--muted);
  }
  .lists-page .lists-desk-copy { display: block !important; font-size: .88rem; line-height: 1.45; }
  .lists-page .lists-add {
    min-height: 2.5rem;
    padding: .45rem 1.1rem;
    border-radius: 999px;
    background: var(--accent);
    font-size: .84rem;
  }
  .lists-page .lists-tree-head { display: flex !important; margin-bottom: .65rem; }
  .lists-page .lists-tree-head-title { display: none; }
  .lists-page .lists-tree-head p { font-size: .82rem; }
  .lists-page .lists-tree-cols,
  .lists-page .tree-row {
    grid-template-columns: 2rem 1.35rem minmax(0, 1fr) 5.5rem 6.5rem 2.5rem !important;
    column-gap: .55rem;
  }
  .lists-page .lists-tree-cols { display: grid !important; font-size: .75rem; }
  .lists-page .tree-row {
    min-height: 3.1rem;
    padding-block: .35rem;
    font-size: .9rem;
  }
  .lists-page .tree-row > button:first-child {
    width: 2rem;
    min-height: 2.4rem;
  }
  .lists-page .tree-row > button:last-child {
    width: 2.5rem;
    height: 2.5rem;
  }
  .lists-page .tree-used,
  .lists-page .tree-size { display: block !important; }
  .lists-page .tree-used { font-size: .78rem; }
  .lists-page .tree-size button {
    min-height: 1.7rem;
    padding: .2rem .7rem;
    font-size: .72rem;
  }
  .lists-page .tree-row.is-selected,
  .lists-page .lists-value-row.is-selected,
  .lists-page .unfiled-row > .is-selected {
    background: #fff;
    box-shadow: var(--shadow-card);
    outline: 1px solid var(--ink);
    outline-offset: -1px;
  }
  .lists-page .lists-value-row {
    min-height: 3.1rem;
    padding-block: .55rem;
    font-size: .9rem;
    column-gap: 1rem;
  }
  .lists-page .lists-value-row > button,
  .lists-page .lists-value-row > span:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .lists-page .lists-value-count {
    min-width: 1.35rem;
    text-align: right;
    font-variant-numeric: tabular-nums;
  }
  .lists-page .lists-alert {
    display: block;
    padding: .9rem 1.05rem;
    border: 1px solid color-mix(in srgb, var(--warning) 28%, var(--line));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--tan) 80%, white);
  }
  .lists-page .lists-alert header { margin-bottom: .35rem; }
  .lists-page .lists-alert h2 { font-size: 1rem; }
  .lists-page .lists-inspector {
    display: block !important;
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 1.25rem 1.3rem;
    border-radius: 1rem;
  }
  .lists-page .lists-inspector-empty {
    display: grid;
    min-height: 100%;
    place-content: center;
    justify-items: center;
    padding: 1.5rem .75rem;
    color: var(--muted);
    text-align: center;
  }
  .lists-page .lists-inspector-empty span {
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    place-items: center;
    border-radius: 50%;
    background: var(--sand);
    color: var(--forest);
  }
  .lists-page .lists-inspector-empty h2 {
    margin: .75rem 0 .35rem;
    color: var(--ink);
    font-size: 1.05rem;
  }
  .lists-page .lists-inspector-empty p {
    margin: 0;
    font-size: .82rem;
    line-height: 1.45;
  }
  .lists-page .lists-inspector label {
    margin-bottom: .4rem;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .lists-page .lists-inspector input[type="text"],
  .lists-page .lists-inspector select,
  .lists-page .lists-inspector textarea {
    min-height: 2.6rem;
    padding: .55rem .75rem;
    border-radius: .65rem;
    font-size: .9rem;
  }
  .lists-page .lists-inspector .lists-inspector-kicker {
    margin: 0;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
  }
  .lists-page .lists-inspector .lists-inspector-name {
    margin: .35rem 0 0;
    font-size: 1.45rem;
  }
  .lists-page .lists-inspector .lists-desk-section + .lists-desk-section {
    margin-top: .25rem;
    padding-top: 1rem;
    border-top: 1px solid #e6e8ec;
  }
  .lists-page .lists-inspector .lists-desk-actions {
    display: block;
  }
  .lists-page .lists-inspector .lists-desk-save,
  .lists-page .lists-inspector .lists-desk-secondary {
    width: 100%;
    min-height: 2.55rem;
    border-radius: .75rem;
    font-size: .9rem;
  }
  .lists-page .lists-inspector .lists-desk-save {
    border: 0;
    background: var(--ink);
    color: #fff;
  }
  .lists-page .lists-inspector .lists-desk-secondary {
    border: 1.5px solid #d5d8de;
    background: #fff;
    color: var(--ink);
  }
  .lists-page .lists-inspector-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }
  .lists-page .lists-inspector-actions .lists-add-kicker { margin-bottom: .15rem; }
  .lists-page .lists-inspector-actions button {
    display: grid;
    grid-template-columns: 1.15rem minmax(0, 1fr);
    align-items: center;
    gap: .7rem;
    min-height: 2.55rem;
    padding: .35rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    font-size: .95rem;
    font-weight: 600;
    text-align: left;
  }
  .lists-page .lists-inspector-actions button svg {
    width: 1.05rem;
    height: 1.05rem;
  }
  .lists-page .lists-inspector .lists-desk-danger {
    display: grid;
    grid-template-columns: 1.15rem minmax(0, 1fr);
    align-items: center;
    gap: .7rem;
    width: 100%;
    min-height: 2.55rem;
    padding: .35rem 0;
    border: 0;
    background: transparent;
    color: var(--danger);
    font-size: .95rem;
    font-weight: 600;
    text-align: left;
  }
  .lists-page .lists-inspector .lists-desk-danger svg {
    width: 1.05rem;
    height: 1.05rem;
  }
}

@media (min-width: 950px) {
  .lists-page .lists-desk {
    grid-template-columns: 12rem minmax(26rem, 1fr) minmax(18rem, 20rem);
  }
}

/* People */
.charities-mobile-create { margin-bottom: 1rem; }
.charities-mobile-create .charities-create {
  width: 100%;
  min-height: 3rem;
  border: 0;
  border-radius: 999px;
  background: var(--forest);
  color: white;
  font-weight: 700;
}
.charity-manage-page { overflow-x: clip; }
.charity-manage-page .app-main { max-width: 100%; overflow-x: hidden; }
.charities-summary {
  display: grid;
  gap: .65rem;
  margin-bottom: 1rem;
}
.charities-summary-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
}
.charities-summary-card,
.charities-summary-ai {
  min-width: 0;
  padding: .7rem .85rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.charities-summary-card strong,
.charities-summary-ai strong {
  display: block;
  color: var(--forest);
  font: 700 1.45rem/1.1 var(--font-sans);
}
.charities-summary-card span,
.charities-summary-ai span {
  display: block;
  margin-top: .15rem;
  color: var(--muted);
  font-size: .78rem;
}
.charities-summary-ai {
  background: color-mix(in srgb, var(--sage) 42%, #fff);
}
.charities-summary-ai strong { color: var(--accent-deep); }
.charities-table-panel { min-width: 0; }
.charities-table col.col-name { width: 32%; }
.charities-table col.col-items { width: 8%; }
.charities-table col.col-unresolved { width: 12%; }
.charities-table col.col-ai { width: 14%; }
.charities-table col.col-tier { width: 16%; }
.charities-table col.col-people { width: 18%; }
.charities-sort {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}
.charities-sort span { min-width: .7rem; opacity: .8; }
.charities-tier {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: .15rem .55rem;
  border-radius: 999px;
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .02em;
  text-transform: uppercase;
}
.charities-tier.is-free {
  background: var(--sand);
  color: var(--muted);
  box-shadow: inset 0 0 0 1px var(--line);
}
.charities-tier.is-standard {
  background: var(--sage);
  color: var(--brand-blue, #408fda);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand-blue, #408fda) 45%, var(--line));
}
.charities-tier.is-plus {
  background: var(--accent);
  color: #fff;
}
.charities-tier.is-custom {
  background: var(--tan);
  color: var(--forest);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--forest) 18%, var(--line));
}
.charities-tier.is-archived {
  background: color-mix(in srgb, var(--muted) 14%, #fff);
  color: var(--muted);
  box-shadow: inset 0 0 0 1px var(--line);
}
@media (max-width: 720px) {
  .charities-table col.col-name { width: 34%; }
  .charities-table col.col-items { width: 12%; }
  .charities-table col.col-unresolved { width: 12%; }
  .charities-table col.col-ai { width: 16%; }
  .charities-table col.col-tier { width: 14%; }
  .charities-table col.col-people { width: 12%; }
  .charities-table th,
  .charities-table td,
  .catalogue-import-table th,
  .catalogue-import-table td { padding: .4rem .35rem; }
  .charities-head-full,
  .charities-tier-full,
  .charities-people-word,
  .catalogue-import-status .status-full { display: none; }
  .charities-head-short,
  .charities-tier-short,
  .catalogue-import-status .status-short { display: inline; }
  .charities-tier {
    min-height: 1.35rem;
    padding: .12rem .35rem;
    font-size: .68rem;
  }
  .catalogue-import-status {
    min-height: 1.35rem;
    padding: .12rem .4rem;
    font-size: .68rem;
  }
  .catalogue-import-edit-hint { display: none; }
  .catalogue-import-preview .catalogue-import-table { table-layout: fixed; }
  .catalogue-import-table .is-wide-only,
  .catalogue-import-table .is-mid-only { display: none; }
  .catalogue-import-table col.col-department,
  .catalogue-import-table col.col-group,
  .catalogue-import-table col.col-category,
  .catalogue-import-table col.col-rules,
  .catalogue-import-table col.col-condition,
  .catalogue-import-table col.col-key {
    width: 0;
    visibility: collapse;
  }
  .catalogue-import-table col.col-class { width: 52%; }
  .catalogue-import-table col.col-default { width: 24%; }
  .catalogue-import-table col.col-status { width: 24%; }
}
@container import-card (max-width: 52rem) {
  .catalogue-import-preview .catalogue-import-table { table-layout: fixed; }
  .catalogue-import-table .is-wide-only { display: none; }
  .catalogue-import-table col.col-rules,
  .catalogue-import-table col.col-condition,
  .catalogue-import-table col.col-key {
    width: 0;
    visibility: collapse;
  }
  .catalogue-import-status .status-full,
  .catalogue-import-edit-hint { display: none; }
  .catalogue-import-status .status-short { display: inline; }
  .catalogue-import-table th,
  .catalogue-import-table td { padding: .4rem .35rem; }
}
.charities-table .catalogue-import-cell.is-alert { color: var(--danger); font-weight: 700; }
.charities-table .catalogue-import-cell.is-ai { color: var(--accent-deep); font-weight: 700; }
.charities-table tr.is-backlog td:first-child {
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--danger) 70%, #8a3f12);
}
.charities-act {
  width: min(28rem, calc(100vw - 2rem));
  padding: 1.15rem 1.2rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1.1rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.charities-act::backdrop { background: rgba(24, 32, 28, .45); }
.charities-act header { margin-bottom: .9rem; }
.charities-act h3 { margin: 0; }
.charities-act-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
  margin-bottom: .65rem;
}
.charities-act-actions form { margin: 0; }
.charity-list {
  align-items: start;
}
.charity-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: .75rem .85rem .8rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.charity-card.is-backlog {
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--danger) 70%, #8a3f12), var(--shadow-card);
}
.charity-card-body {
  min-width: 0;
}
.charity-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .55rem;
}
.charity-card-body h2 {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--forest);
  font: 650 1.05rem/1.2 var(--font-sans);
}
.charity-card-body p {
  margin: .15rem 0 0;
  overflow: hidden;
  color: var(--muted);
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.charity-card-tags {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .3rem;
}
.charity-card-tags span {
  padding: .15rem .5rem;
  border-radius: 999px;
  background: var(--sand);
  font: 700 .7rem/1.2 var(--font-sans);
}
.charity-card-tags .is-paid {
  background: var(--sage);
  color: #21513c;
}
.charity-card-tags .is-archived {
  background: #f3d6d2;
  color: var(--danger);
}
.charity-card-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .35rem;
  margin-top: .6rem;
  padding: .45rem .5rem;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--sand) 60%, transparent);
  font-size: .75rem;
}
.charity-card-stats dt {
  color: var(--muted);
  font-size: .65rem;
}
.charity-card-stats dd {
  margin: 0;
  overflow: hidden;
  color: var(--ink);
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.charity-card-stats dd.is-alert { color: var(--danger); }
.charity-card-stats dd.is-ai { color: var(--accent-deep); }
.charity-card-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem;
  margin-top: .65rem;
}
.charity-card-actions form { margin: 0; }
.charity-card-manage,
.charity-card-open {
  display: grid;
  width: 100%;
  min-height: 2.15rem;
  place-items: center;
  padding: .3rem .65rem;
  border: 0;
  border-radius: .65rem;
  font: 700 .82rem/1 var(--font-sans);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.charity-card-manage { background: var(--sand); color: var(--ink); }
.charity-card-open { background: var(--forest); color: #fff; }
.charity-manage-heading { margin-bottom: 1.25rem; }
.charity-manage-mobile-open { margin-top: 1rem; }
.charity-manage-mobile-open .charity-open {
  width: 100%;
  min-height: 3rem;
  border: 0;
  border-radius: 999px;
  background: var(--forest);
  color: white;
  font-weight: 700;
}
.charity-manage-banner {
  margin-bottom: 1.25rem;
  padding: 1rem;
  border: 1px solid #dfaaa3;
  border-radius: 1.125rem;
  background: #f8e4e1;
}
.charity-manage-layout { display: grid; gap: 2rem; min-width: 0; max-width: 100%; }
.manage-plan-pill {
  display: inline-flex;
  align-items: center;
  margin-left: .35rem;
  padding: .15rem .55rem;
  border-radius: 999px;
  background: var(--sand);
  color: var(--ink);
  font: 650 .72rem/1.2 var(--font-sans);
  letter-spacing: .02em;
}
.charity-manage-banner,
.manage-ledger { flex-shrink: 0; }
.manage-ledger {
  position: sticky;
  top: 0;
  z-index: 20;
  isolation: isolate;
  margin: 0 calc(-1 * var(--page-pad)) 1rem;
  padding: .7rem var(--page-pad) .85rem;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 16px 20px -8px var(--paper);
}
@media (max-width: 899px) {
  .charity-manage-page .manage-ledger {
    top: 5.5rem;
  }
}
.manage-ledger::before {
  position: absolute;
  inset: auto 0 100%;
  height: 1.5rem;
  background: var(--paper);
  content: "";
}
.manage-ledger-track {
  display: flex;
  width: 100%;
  gap: .4rem;
}
.manage-ledger-tab {
  display: grid;
  gap: .1rem;
  flex: 1 1 0;
  min-width: 0;
  padding: .7rem .65rem .75rem;
  border: 1px solid var(--line);
  border-radius: .9rem .9rem 0 0;
  background: var(--sand);
  color: var(--ink);
  font: 650 1rem/1.2 var(--font-sans);
  text-align: left;
  text-decoration: none;
}
.manage-ledger-cat {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.manage-ledger-tab.is-active {
  background: var(--card);
  box-shadow: inset 0 -3px 0 var(--forest);
}
.manage-ledger-tab.is-safety.is-active {
  color: var(--danger);
  box-shadow: inset 0 -3px 0 var(--danger);
}
.manage-ledger-tab.is-safety.is-active .manage-ledger-cat { color: var(--danger); }
.manage-switcher { margin: 0 0 1.25rem; }
.manage-switcher-bar { min-width: 0; }
.manage-switcher-btn {
  display: flex;
  align-items: center;
  gap: .7rem;
  width: 100%;
  min-height: 3.5rem;
  padding: .7rem .9rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
  text-align: left;
  cursor: pointer;
}
.manage-switcher-icon {
  display: grid;
  width: 2.15rem;
  height: 2.15rem;
  flex: none;
  place-items: center;
  border-radius: .6rem;
  background: #e6eee8;
  color: var(--forest);
}
.manage-switcher-icon svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.manage-switcher-text { flex: 1; min-width: 0; }
.manage-switcher-cat {
  display: block;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.manage-switcher-name {
  display: block;
  color: var(--ink);
  font: 650 1.1rem/1.2 var(--font-sans);
}
.manage-switcher-chevron {
  width: .5rem;
  height: .5rem;
  flex: none;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: translateY(-.1rem) rotate(45deg);
  transition: transform .15s;
}
.manage-switcher-btn[aria-expanded="true"] .manage-switcher-chevron {
  transform: translateY(.15rem) rotate(-135deg);
}
.manage-switcher-progress {
  display: flex;
  gap: .3rem;
  margin-top: .55rem;
}
.manage-switcher-progress span {
  flex: 1;
  height: 4px;
  border-radius: 999px;
  background: var(--sand);
}
.manage-switcher-progress span.is-done { background: var(--forest); }
.manage-switcher-hint {
  margin: .5rem 0 0;
  color: var(--muted);
  font-size: .76rem;
  text-align: center;
}
.manage-sheet[hidden] { display: none; }
.manage-sheet {
  position: fixed;
  inset: 0;
  z-index: 80;
}
.manage-sheet-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(23, 32, 28, .5);
  cursor: pointer;
}
.manage-sheet-panel {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: .7rem 1.1rem calc(1.4rem + env(safe-area-inset-bottom));
  border-radius: 1.4rem 1.4rem 0 0;
  background: var(--card);
  box-shadow: 0 -8px 28px -6px rgba(30, 40, 36, .22);
}
.manage-sheet-handle {
  width: 2.5rem;
  height: 4px;
  margin: .2rem auto .85rem;
  border-radius: 999px;
  background: var(--line);
}
.manage-sheet-panel h2 {
  margin: 0 0 .7rem;
  color: var(--muted);
  font: 700 .78rem/1.2 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.manage-sheet-list { margin: 0; padding: 0; list-style: none; display: grid; gap: .35rem; }
.manage-sheet-group { display: grid; gap: .35rem; margin: 0; }
.manage-sheet-group > ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .35rem; }
.manage-sheet-item {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 3.75rem;
  padding: .75rem .6rem;
  border-radius: .9rem;
  color: var(--ink);
  text-decoration: none;
}
.manage-sheet-item.is-active { background: #e6eee8; }
.manage-sheet-icon {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  flex: none;
  place-items: center;
  border-radius: .65rem;
  background: var(--sand);
  color: var(--forest);
}
.manage-sheet-item.is-active .manage-sheet-icon { background: var(--forest); color: #fff; }
.manage-sheet-icon svg {
  width: 1.2rem;
  height: 1.2rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.manage-sheet-name { display: block; font-weight: 700; }
.manage-sheet-desc { display: block; color: var(--muted); font-size: .78rem; }
.manage-sheet-check { margin-left: auto; color: var(--forest); font-weight: 800; }
@media (min-width: 900px) {
  .manage-switcher,
  .manage-switcher-hint,
  .manage-sheet { display: none !important; }
}
@media (max-width: 899px) {
  .charity-manage-page { overflow-x: visible; }
  .charity-manage-page .manage-ledger { display: none; }
  .manage-stat.is-action { grid-column: 1 / -1; }
  .charity-manage-page .app-main { overflow: visible; }
  .manage-switcher {
    position: sticky;
    top: 5.5rem;
    z-index: 28;
    margin: 0 calc(-1 * var(--page-pad)) .35rem;
    padding: .55rem var(--page-pad) .7rem;
    background: color-mix(in srgb, var(--paper) 96%, transparent);
    box-shadow: 0 14px 18px -14px rgba(29, 41, 56, .28);
    backdrop-filter: blur(12px);
  }
  .manage-switcher-hint { margin: .15rem 0 1.1rem; }
}
#manage-panel-root { min-width: 0; }
.manage-panel { display: grid; gap: 1.25rem; min-width: 0; }
.manage-panel-intro {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem 1.5rem;
}
.manage-panel-intro h2 {
  margin: 0;
  color: var(--forest);
  font: 650 1.45rem/1.2 var(--font-sans);
}
.manage-panel-intro p { margin: .35rem 0 0; color: var(--muted); }
.manage-freshness { color: var(--muted); font-size: .9rem; }
.manage-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}
.manage-stat {
  display: grid;
  gap: .25rem;
  min-width: 0;
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid var(--line);
  border-left: 4px solid var(--forest);
  border-radius: 1rem;
  background: var(--card);
}
.manage-stat.is-action {
  border-left-color: #c4a15a;
  background: #f6efe3;
}
.manage-stat-label {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.manage-stat strong {
  color: var(--ink);
  font: 650 1.7rem/1.1 var(--font-sans);
}
.manage-stat small { color: var(--muted); font-size: .82rem; }
.manage-stat-action {
  justify-self: start;
  margin-top: .4rem;
  min-height: 2rem;
  padding: .3rem .75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-weight: 700;
  cursor: pointer;
}
.ai-usage-scroll {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--card);
}
.ai-usage-table {
  width: 100%;
  min-width: 48rem;
  border-collapse: collapse;
}
.ai-usage-table th,
.ai-usage-table td {
  padding: .7rem .9rem;
  border-bottom: 1px solid #ece7db;
  text-align: left;
  vertical-align: top;
  font: 500 .84rem/1.35 var(--font-sans);
}
.ai-usage-table th {
  color: #63696a;
  font: 700 .68rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ai-usage-table tr.is-error td { background: #f8ecec; }
.ai-usage-table strong { display: block; }
.ai-usage-file,
.ai-usage-vendor,
.ai-usage-error {
  display: block;
  color: var(--muted);
  font-size: .78rem;
}
.ai-usage-error { color: var(--danger); }
.ai-usage-open {
  display: inline-block;
  margin-top: .2rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent-deep);
  font: 700 .75rem/1.3 var(--font-sans);
  text-decoration: underline;
  text-underline-offset: .12em;
  cursor: pointer;
}
.ai-usage-table tr.is-openable { cursor: pointer; }
.ai-usage-table tr.is-openable:hover td,
.ai-usage-table tr.is-openable:focus-visible td {
  background: color-mix(in srgb, var(--forest) 10%, #fff);
}
.ai-usage-modal {
  width: min(42rem, calc(100vw - 2rem));
  max-height: calc(100vh - 3rem);
  padding: 1.15rem 1.2rem 1.3rem;
  border: 0;
  border-radius: 1.1rem;
}
.ai-usage-modal::backdrop { background: rgba(24, 32, 28, .45); }
.ai-usage-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}
.ai-usage-modal-kicker {
  margin: 0;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .07em;
  text-transform: uppercase;
}
.ai-usage-modal-head h3 { margin: .2rem 0 0; }
.ai-usage-modal-file {
  margin: .2rem 0 0;
  color: var(--muted);
  font-size: .82rem;
}
.ai-usage-modal-close {
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  border-radius: 999px;
  background: var(--sand);
  color: var(--ink);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}
.ai-usage-modal-body {
  display: grid;
  gap: 1rem;
  margin-top: .9rem;
  max-height: min(62vh, 34rem);
  overflow: auto;
}
.ai-usage-modal-body h4 {
  margin: 0 0 .4rem;
  color: var(--muted);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.ai-usage-modal-body pre {
  margin: 0;
  padding: .75rem .8rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 500 .82rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
}
.ai-usage-empty {
  margin: 0;
  padding: 1.1rem 1.15rem;
  border: 1px dashed var(--line);
  border-radius: 1rem;
  color: var(--muted);
}
.manage-fact-strip {
  display: grid;
  gap: .75rem;
}
.manage-fact-strip > div {
  padding: .95rem 1rem;
  border-radius: 1rem;
  background: #e6eee8;
}
.manage-fact-label {
  display: block;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 700;
}
.manage-fact-strip strong {
  display: block;
  margin-top: .25rem;
  color: var(--forest);
  font: 650 1.05rem/1.3 var(--font-sans);
}
.manage-scale-gates {
  margin: .85rem 0 1.1rem;
}
.manage-scale-gates > p {
  margin: 0 0 .75rem;
  color: var(--muted);
  font-size: .95rem;
}
.manage-scale-gates .manage-fact-strip {
  margin-bottom: .85rem;
}
.manage-scale-gates-choice {
  display: grid;
  gap: .25rem;
}
.manage-scale-gates-choice strong {
  color: var(--forest);
  font: 650 1.05rem/1.3 var(--font-sans);
}
.manage-scale-gates-verified {
  margin: 0;
  color: var(--forest);
  font-weight: 650;
}
.manage-scale-gates-form {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}
.manage-card {
  padding: 1.05rem 1.1rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 1.125rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.manage-card h2,
.manage-card h3 {
  margin: 0 0 .35rem;
  color: var(--forest);
  font: 650 1.2rem/1.2 var(--font-sans);
}
.manage-card.is-danger {
  border-color: #dfaaa3;
  background: #f8e4e1;
}
.manage-card.is-danger h3 { color: var(--danger); }
.manage-card-note,
.manage-card p { margin: 0 0 .65rem; color: var(--muted); font-size: .9rem; }
.manage-link-btn {
  border: 0;
  background: none;
  color: var(--forest);
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}
.manage-progress {
  height: .55rem;
  margin: .35rem 0 .55rem;
  overflow: hidden;
  border-radius: 999px;
  background: var(--sand);
}
.manage-progress-fill {
  display: block;
  height: 100%;
  background: var(--forest);
}
.manage-plan-grid {
  display: grid;
  gap: 1.25rem;
  align-items: stretch;
}
.manage-plan-grid > .manage-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
}
.manage-plan-grid > .manage-card .manage-card-action { margin-top: auto; }
.manage-card.is-danger { display: flex; flex-direction: column; }
.manage-card-action { display: grid; gap: .65rem; width: 100%; margin-top: auto; }
.manage-card-action button { width: 100%; min-height: 2.75rem; }
.manage-card button.is-danger:disabled { opacity: .45; cursor: default; }
.manage-safety-actions {
  display: grid;
  gap: 1.25rem;
  align-items: stretch;
}
.manage-safety-actions > .manage-card { min-width: 0; height: 100%; }
.manage-card-action .settings-readonly { margin-bottom: 0; }
.manage-card.is-danger .settings-readonly input {
  background: #fff;
  color: #000;
  caret-color: #000;
}
.manage-card.is-danger .settings-readonly input::placeholder { color: var(--muted); }
.manage-referrer { display: grid; gap: .55rem; }
.manage-referrer input {
  width: 100%;
  min-height: 2.75rem;
  padding: 0 .85rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: #fff;
}
.affiliate-pay-form label { display: grid; gap: .35rem; font: 650 .82rem/1.2 var(--font-sans); }
.affiliate-pay-form input {
  width: 100%;
  min-height: 2.75rem;
  padding: 0 .85rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: #fff;
  font: 500 1rem/1.2 var(--font-sans);
}
.manage-advanced {
  padding: .2rem 0;
  border: 1px solid var(--line);
  border-radius: 1.125rem;
  background: var(--card);
}
.manage-advanced summary {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: 1rem 1.1rem;
  font: 650 1.15rem/1.2 var(--font-sans);
  color: var(--forest);
  cursor: pointer;
  list-style: none;
}
.manage-advanced summary::-webkit-details-marker,
.manage-advanced summary::marker { display: none; content: none; }
.manage-advanced summary::after {
  display: block;
  width: .5rem;
  height: .5rem;
  margin-left: auto;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .15s;
  content: "";
}
.manage-advanced[open] summary::after { transform: translateY(.2rem) rotate(-135deg); }
.manage-advanced-pill {
  padding: .12rem .5rem;
  border-radius: 999px;
  background: var(--sand);
  color: var(--ink);
  font: 650 .7rem/1.2 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.manage-advanced-body { padding: 0 1.1rem 1.1rem; }
.manage-look-layout,
.manage-look-fields,
.manage-add-row,
.manage-people-list { display: grid; gap: 1rem; }
.manage-role-key {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem 1.25rem;
  padding: .85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--card);
  color: var(--muted);
  font-size: .85rem;
}
.manage-add-row .settings-field { margin-bottom: 0; }
.manage-look-fields { min-width: 0; }
.manage-look-fields .appearance-fields {
  display: grid;
  gap: 1.15rem;
  min-width: 0;
}
.manage-scheme-grid.theme-swatches {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
}
.manage-scheme-grid .theme-swatch {
  display: flex;
  width: 100%;
  justify-content: center;
}
.manage-logo-drop {
  display: grid;
  place-items: center;
  min-height: 5rem;
  padding: 1rem;
  border: 1.5px dashed var(--line);
  border-radius: .9rem;
  background: #fff;
  color: var(--muted);
  font-weight: 600;
  cursor: pointer;
}
.logo-editor { display: grid; gap: .75rem; }
.logo-editor-layout { display: grid; gap: .75rem; }
.logo-editor-main { display: grid; gap: .75rem; justify-items: center; }
.logo-editor-note { text-align: center; }
.manage-card:has(.logo-editor) > h3 { text-align: center; }
.appearance-logo-field { text-align: center; }
.logo-editor-layout.has-logo .logo-editor-plate {
  display: inline-grid;
  min-height: 0;
  padding: .7rem .85rem;
  border-style: solid;
  background: var(--sand, #f3f0ea);
}
.logo-editor-plate { position: relative; }
.logo-editor-mark,
.manage-logo-preview {
  max-width: 10rem;
  height: 3.4rem;
  width: auto;
  object-fit: contain;
}
.logo-editor-replace {
  position: absolute;
  inset: auto .45rem .4rem auto;
  padding: .15rem .45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ink) 78%, transparent);
  color: #fff;
  font: 650 .68rem/1 var(--font-sans);
  opacity: 0;
  pointer-events: none;
}
.logo-editor-plate:hover .logo-editor-replace,
.logo-editor-plate:focus-visible .logo-editor-replace { opacity: 1; }
.logo-editor-sights {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem 1.25rem;
}
.logo-editor-sight {
  display: grid;
  gap: .35rem;
  justify-items: center;
}
.logo-editor-sight span {
  color: var(--muted);
  font: 700 .68rem/1 var(--font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.logo-editor-sight .auth-charity-logo {
  height: calc(2.75rem * var(--auth-logo-scale, 1));
  max-width: calc(8.5rem * var(--auth-logo-scale, 1));
}
.logo-editor-sidebar-plate {
  display: grid;
  place-items: center;
  padding: .2rem .35rem;
  border-radius: .45rem;
  background: var(--ink);
}
.logo-editor-sidebar-plate img {
  width: auto;
  height: 2rem;
  max-width: 7.6rem;
  object-fit: contain;
  padding: .1rem;
  border-radius: .3rem;
  background: #fff;
}
.logo-editor-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .45rem;
}
.logo-editor-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 2.3rem;
  padding: .4rem .8rem;
  border: 1px solid transparent;
  border-radius: 8px;
  font: 650 .82rem/1.2 var(--font-sans);
  cursor: pointer;
}
.logo-editor-btn svg {
  width: 1rem;
  height: 1rem;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.logo-editor-btn.is-replace {
  background: color-mix(in srgb, var(--accent, #2f7d50) 14%, #fff);
  color: var(--accent-deep, #235d42);
}
.logo-editor-btn.is-crop {
  background: var(--sand, #f3f0ea);
  color: var(--ink);
}
.logo-editor-btn.is-remove {
  background: color-mix(in srgb, var(--danger, #b42318) 12%, #fff);
  color: var(--danger, #b42318);
}
.logo-editor-advice { display: none; }
.logo-editor-advice-card {
  width: min(22rem, 100%);
  padding: 1rem 1.1rem 1.05rem;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
  border-radius: 14px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 14%, #fff) 0%, color-mix(in srgb, var(--accent) 6%, #fff) 100%);
  box-shadow: inset 0 2px 0 color-mix(in srgb, var(--accent) 35%, transparent);
}
.logo-editor-advice-kicker {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin: 0 0 .35rem;
  color: var(--accent-deep, var(--accent));
  font: 750 .68rem/1 var(--font-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.logo-editor-advice-kicker svg {
  width: 1rem;
  height: 1rem;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.logo-editor-advice-title {
  margin: 0 0 .7rem;
  color: var(--ink);
  font: 750 1.05rem/1.25 var(--font-sans);
}
.logo-editor-advice ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.logo-editor-advice li {
  position: relative;
  padding-left: 1.35rem;
  color: color-mix(in srgb, var(--ink) 86%, var(--muted));
  font: 500 .88rem/1.45 var(--font-sans);
}
.logo-editor-advice li + li { margin-top: .55rem; }
.logo-editor-advice li::before {
  position: absolute;
  top: .35rem;
  left: 0;
  width: .7rem;
  height: .7rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 18%, #fff);
  box-shadow: inset 0 0 0 1.5px var(--accent);
  content: "";
}
.logo-remove-dialog {
  width: min(22rem, calc(100% - 1.5rem));
  padding: 1.15rem 1.2rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--card, #fff);
}
.logo-remove-dialog::backdrop { background: rgba(18, 24, 42, .4); }
.logo-remove-dialog h3 { margin: 0 0 .4rem; font: 700 1.1rem/1.3 var(--font-sans); }
.logo-remove-dialog p { margin: 0 0 1rem; color: var(--muted); font-size: .9rem; line-height: 1.45; }
.logo-remove-dialog-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.logo-remove-dialog-actions button:not(.logo-editor-btn) {
  min-height: 2.3rem;
  padding: .4rem .85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font: 650 .82rem/1.2 var(--font-sans);
  cursor: pointer;
}
@media (min-width: 720px) {
  .logo-editor-note,
  .manage-card:has(.logo-editor) > h3,
  .appearance-logo-field { text-align: left; }
  .logo-editor-main {
    justify-items: start;
  }
  .logo-editor-sights,
  .logo-editor-actions { justify-content: flex-start; }
  .logo-editor-sight { justify-items: start; }
  .logo-editor-layout.has-logo {
    grid-template-columns: max-content minmax(16rem, 1fr);
    align-items: stretch;
    gap: 0;
  }
  .logo-editor-layout.has-logo .logo-editor-advice {
    display: flex;
    align-items: flex-start;
    box-sizing: border-box;
    min-width: 0;
    margin-left: 1.5rem;
    padding-left: 1.5rem;
    border-left: 2px solid color-mix(in srgb, var(--accent) 42%, var(--line));
  }
}
.manage-busy-summary {
  display: flex;
  align-items: center;
  gap: .75rem;
  cursor: pointer;
  list-style: none;
}
.manage-busy-summary::-webkit-details-marker,
.manage-busy-summary::marker { display: none; content: none; }
.manage-busy-summary h2 { margin: 0; flex: 1; }
.manage-busy-summary::after {
  display: block;
  width: .5rem;
  height: .5rem;
  margin-left: auto;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .15s;
  content: "";
}
.manage-busy[open] .manage-busy-summary::after { transform: translateY(.2rem) rotate(-135deg); }
.manage-busy-summary + .shop-heat-empty { margin-top: .75rem; }
.manage-role-pill {
  display: inline-flex;
  align-items: center;
  padding: .15rem .5rem;
  border-radius: 999px;
  background: #dcebe4;
  font-size: .75rem;
  font-weight: 700;
}
.manage-role-pill.is-owner { background: #f3e9d2; }
.manage-role-pill.is-admin { background: #dcebe4; }
.manage-role-pill.is-shop-admin { background: #e4e0f3; }
.manage-people-page { display: grid; gap: 1rem; }
.manage-people-page .manage-people-list { gap: .65rem; }
.manage-person-card {
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.manage-person-card.is-blocked { border-color: color-mix(in srgb, #c96a5a 35%, var(--line)); }
.manage-person-head {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  align-items: center;
  gap: .75rem .85rem;
  width: 100%;
  padding: .95rem 1.05rem;
  border: 0;
  background: none;
  text-align: left;
  color: inherit;
  cursor: pointer;
}
.manage-person-head.is-static { cursor: default; }
.manage-person-copy { min-width: 0; display: grid; gap: .35rem; }
.manage-person-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 650 .95rem/1.3 var(--font-sans);
}
.manage-person-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.manage-person-note { color: var(--muted); font-size: .82rem; }
.manage-person-activity {
  grid-column: 2;
  color: var(--muted);
  font-size: .8rem;
}
.manage-person-head .people-caret {
  grid-column: 2;
  justify-self: end;
  width: .9rem;
  height: .9rem;
  transition: transform .15s;
}
.manage-person-head .people-caret.is-open { transform: rotate(180deg); }
.manage-person-editor {
  display: grid;
  gap: .85rem 1.25rem;
  padding: .95rem 1.05rem 1.1rem;
  border-top: 1px solid var(--line);
}
.manage-person-access { display: contents; }
.manage-people-page .people-field select,
.manage-people-page .people-invite select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235c5348' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat;
  background-position: right .7rem center;
  background-size: .85rem;
  padding-right: 2.2rem;
}
.manage-people-page .people-invite { padding: 1.15rem 1.2rem 1.2rem; }
.manage-people-page .people-invite h3 { margin: 0; font: 650 1.15rem/1.2 var(--font-sans); }
.manage-people-page .people-invite .ui-primary,
.manage-person-save .ui-primary {
  min-height: 2.7rem;
  padding: .45rem 1.15rem;
  border-radius: .85rem;
}
.manage-person-email-fold {
  min-width: 0;
}
.manage-person-email-fold.is-owner {
  padding: 0 1.05rem 1rem;
}
.manage-person-email-fold summary {
  color: var(--muted);
  font: 650 .85rem/1.3 var(--font-sans);
  cursor: pointer;
  list-style: none;
}
.manage-person-email-fold summary::-webkit-details-marker { display: none; }
.manage-person-email-fold summary::after {
  display: inline-block;
  margin-left: .35rem;
  transform: translateY(-.1rem) rotate(45deg);
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  width: .35rem;
  height: .35rem;
  content: "";
}
.manage-person-email-fold[open] summary::after { transform: translateY(.1rem) rotate(-135deg); }
.manage-person-email {
  display: grid;
  gap: .55rem;
  margin-top: .55rem;
}
.manage-person-email .ui-secondary {
  justify-self: start;
  min-height: 2.4rem;
  padding: .4rem .9rem;
  border-radius: .75rem;
}
.manage-person-remove { margin: 0; }
.manage-person-remove .remove-person { padding: 0; }
.manage-people-list { margin: 0; padding: 0; list-style: none; }
.manage-person {
  display: grid;
  gap: .65rem;
  padding: 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1.125rem;
  background: var(--card);
}
.manage-person-who { display: flex; align-items: flex-start; gap: .7rem; min-width: 0; }
.manage-person-avatar {
  display: grid;
  width: 2.2rem;
  height: 2.2rem;
  flex: none;
  place-items: center;
  border-radius: 999px;
  background: var(--sand);
  font-weight: 700;
}
.manage-person-activity { margin: 0; color: var(--muted); font-size: .85rem; }
.manage-card.extract-card form { display: grid; gap: .55rem; }
.manage-card .extract-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem .65rem; }
.manage-card .extract-fields label { display: grid; gap: .25rem; font-size: .8rem; font-weight: 600; }
.extract-fields input {
  width: 100%;
  min-height: 2.75rem;
  padding: .55rem .8rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: var(--sand);
  color: var(--ink);
  font-weight: 700;
}
.manage-card .extract-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .85rem; }
.manage-card .extract-usage { margin: 0; color: var(--ink); font-weight: 600; }
#photo-fill-card {
  width: 100%;
  max-width: none;
  color: var(--ink);
}
#photo-fill-card p:not(.extract-feedback),
#photo-fill-card .extract-fields label {
  color: var(--ink);
}
#photo-fill-card .extract-copy p,
#photo-fill-card form > p:not(.extract-usage):not(.extract-feedback) {
  font-weight: 600;
}
@media (max-width: 899px) {
  .charity-manage-page #photo-fill-card {
    width: auto;
    margin-inline: calc(-1 * var(--page-pad));
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }
}
.manage-card button,
.manage-add-person button,
.manage-plan-grid button {
  min-height: 2.5rem;
  border: 0;
  border-radius: .75rem;
  background: var(--sand);
  font-weight: 700;
  cursor: pointer;
}
.manage-card button.is-primary { background: var(--forest); color: white; }
.manage-card button.is-danger { background: var(--danger); color: white; }
.manage-card button.shop-heat-cell {
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  padding: 0;
  border-radius: 4px;
  background: var(--sage);
  box-shadow: none;
  font-weight: inherit;
}
.manage-card button.manage-link-btn {
  min-height: auto;
  padding: 0;
  background: none;
  color: var(--forest);
  font-weight: 700;
  text-decoration: underline;
}
.manage-card .extract-switch input {
  appearance: none;
  width: 3rem;
  height: 1.75rem;
  border: 0;
  border-radius: 999px;
  background: #bfc4ca;
}
.manage-card .extract-switch input::after {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
  margin: .2rem;
  border-radius: 50%;
  background: white;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
  content: "";
}
.manage-card .extract-switch input:checked { background: var(--accent); }
.manage-card .extract-switch input:checked::after { transform: translateX(1.25rem); }
.charity-manage-metrics {
  display: grid;
  gap: 1.75rem;
  min-width: 0;
}
.charity-identity {
  min-width: 0;
  margin-top: 2rem;
}
.charity-manage-page .charity-identity { margin-top: 0; }
.charity-identity-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  min-width: 0;
}
.charity-identity-main { display: contents; }
.charity-identity .settings-appearance { order: 1; }
.charity-identity .charity-identity-side { order: 2; display: grid; gap: 1.25rem; align-content: start; min-width: 0; }
.charity-identity .settings-preview-col { min-width: 0; overflow: hidden; }
.charity-identity-side .extract-fields { grid-template-columns: 1fr; }
.charity-identity .settings-advanced { order: 3; position: relative; z-index: 1; }
.charity-identity .appearance-fields {
  margin: 0;
  padding: 0;
  border: 0;
}
.shop-panel {
  display: grid;
  gap: 1.15rem;
  min-width: 0;
  padding: 1.35rem 1.4rem 1.45rem;
  border: 1px solid var(--line);
  border-radius: 1.45rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.shop-panel-lede {
  margin: .35rem 0 0;
  color: var(--muted);
  font-family: var(--font-prose);
  font-size: .92rem;
  line-height: 1.45;
  max-width: 42rem;
}
.shop-metrics-head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: .75rem 1.25rem;
}
.shop-metrics-updated {
  padding: .4rem .75rem;
  border-radius: 999px;
  background: var(--sage);
  color: var(--accent-deep);
  font-size: .82rem;
}
.shop-metrics-updated strong { font-weight: 700; }
.shop-metrics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}
.shop-metric {
  display: grid;
  align-content: start;
  gap: .45rem;
  min-width: 0;
  min-height: 8.25rem;
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1.15rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,.65), transparent 42%),
    var(--paper);
  box-shadow: inset 3px 0 0 var(--accent);
}
.shop-metric[data-tone="items"],
.shop-metric[data-tone="price"] { box-shadow: inset 3px 0 0 #c4a574; background: linear-gradient(180deg, #fff8ea, var(--paper) 55%); }
.shop-metric[data-tone="images"],
.shop-metric[data-tone="priced"] { box-shadow: inset 3px 0 0 #7d9a88; background: linear-gradient(180deg, #eef6f1, var(--paper) 55%); }
.shop-metric[data-tone="storage"],
.shop-metric[data-tone="searches"] { box-shadow: inset 3px 0 0 var(--forest); }
.shop-metric-label {
  color: var(--accent-deep);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.shop-metric strong {
  color: var(--forest);
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-weight: 700;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.shop-metric small {
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.4;
}
.shop-metrics-notes {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.shop-metrics-notes li {
  padding: .55rem .8rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--sand);
  color: var(--forest);
  font-size: .82rem;
}
.shop-metrics-notes strong { margin-right: .3rem; }
.shop-heat-head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: .85rem 1rem;
}
.shop-heat-empty,
.shop-heat-readout {
  margin: 0;
  color: var(--muted);
  font-size: .88rem;
}
.shop-heat-readout {
  min-height: 1.25rem;
  color: var(--forest);
  font-weight: 700;
}
.shop-heat-choice-label {
  margin: 0 0 .45rem;
  color: var(--ink);
  font-size: .82rem;
  font-weight: 700;
}
.shop-heat-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .3rem;
  margin-bottom: .75rem;
  padding: .3rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--sand);
}
.manage-card .shop-heat-toggle button {
  min-height: 2.45rem;
  padding: .4rem .9rem;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-weight: 700;
  font-size: .9rem;
  box-shadow: 0 0 0 1px var(--line);
}
.manage-card .shop-heat-toggle button[aria-pressed="true"] {
  background: var(--forest);
  color: white;
  box-shadow: none;
}
.manage-card .shop-heat-toggle button[aria-pressed="false"]:hover {
  background: color-mix(in srgb, #fff 70%, var(--sand));
}
.shop-busy-callout {
  margin: 0 0 .8rem;
  padding: .65rem .8rem;
  border-radius: .65rem;
  background: #e6eee8;
  color: var(--ink);
  font-size: .87rem;
}
@media (max-width: 899px) {
  .manage-busy #busy-detail { padding-top: .85rem; }
  .shop-busy-callout {
    margin: 0;
    padding: .8rem .95rem;
  }
  .shop-busy-callout + .shop-heat-choice-label { margin-top: 1.05rem; }
}
.shop-busy-callout strong { color: var(--forest); }
.shop-daypart {
  display: grid;
  grid-template-columns: 2.6rem repeat(4, minmax(0, 1fr));
  gap: 5px;
  margin: 0 0 .35rem;
}
.shop-daypart-head {
  padding-bottom: .2rem;
  color: var(--muted);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-align: center;
  text-transform: uppercase;
}
.shop-daypart-day {
  display: flex;
  align-items: center;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}
.shop-busy-hint {
  margin: -.35rem 0 .75rem;
  color: var(--muted);
  font-size: .76rem;
}
.shop-daypart-cell {
  min-height: 2.1rem;
  border-radius: 8px;
  background: var(--sage);
  opacity: .22;
}
.manage-card button.shop-daypart-cell {
  min-height: 2.1rem;
  width: 100%;
  padding: 0;
  border-radius: 8px;
  background: var(--sage);
  box-shadow: none;
  font-weight: inherit;
  cursor: pointer;
}
[data-heat="searches"] .shop-daypart-cell {
  background: var(--accent);
  opacity: calc(.16 + (var(--searches, 0) * .84));
}
[data-heat="created"] .shop-daypart-cell {
  background: var(--forest);
  opacity: calc(.16 + (var(--created, 0) * .84));
}
.shop-hourly-toggle {
  margin: .15rem 0 .35rem;
}
.shop-hourly-hint {
  margin: 0 0 .45rem;
  color: var(--muted);
  font-size: .76rem;
}
@media (min-width: 900px) {
  .shop-busy-callout,
  .shop-daypart,
  .shop-hourly-toggle,
  .shop-hourly-hint { display: none; }
  .shop-hourly-detail,
  .shop-hourly-detail.is-collapsed { display: block; }
}
@media (max-width: 899px) {
  .shop-heat-readout { display: none; }
  .shop-hourly-detail.is-collapsed { display: none; }
  .shop-hourly-detail .shop-heat-wrap {
    border: 1px solid var(--line);
    border-radius: .65rem;
  }
  .shop-hourly-detail .shop-heat {
    grid-template-columns: 2.15rem repeat(24, 16px);
    grid-template-rows: 1rem repeat(7, 16px);
    gap: 3px;
    width: max-content;
    min-width: max-content;
    padding: .55rem .6rem .65rem;
    align-items: center;
    justify-items: center;
  }
  .shop-hourly-detail .shop-heat-hour {
    font-size: .62rem;
    padding-bottom: 0;
  }
  .shop-hourly-detail .shop-heat-day {
    justify-self: start;
  }
  .manage-card .shop-hourly-detail .shop-heat-cell,
  .shop-hourly-detail .shop-heat-cell {
    width: 16px;
    height: 16px;
    min-width: 16px;
    min-height: 16px;
    max-width: 16px;
    max-height: 16px;
    border-radius: 4px;
  }
  .shop-hourly-detail .shop-heat-cell:is(:hover, :focus-visible) {
    transform: none;
  }
}
.shop-heat-wrap {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: .15rem;
  overscroll-behavior-inline: contain;
  contain: inline-size;
}
.shop-heat {
  display: grid;
  grid-template-columns: 2.5rem repeat(24, minmax(.72rem, 1fr));
  gap: 4px;
  min-width: 40rem;
}
.shop-heat-corner,
.shop-heat-hour,
.shop-heat-day {
  color: var(--muted);
  font-size: .68rem;
  line-height: 1;
}
.shop-heat-hour { text-align: center; padding-bottom: .15rem; }
.shop-heat-day { align-self: center; font-weight: 700; }
.shop-heat-hour.is-hot,
.shop-heat-day.is-hot { color: var(--forest); }
.shop-heat-cell {
  appearance: none;
  position: relative;
  display: block;
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: var(--sage);
  opacity: .22;
  cursor: pointer;
}
[data-heat="searches"] .shop-heat-cell {
  background: var(--accent);
  opacity: calc(.16 + (var(--searches, 0) * .84));
}
[data-heat="created"] .shop-heat-cell {
  background: var(--forest);
  opacity: calc(.16 + (var(--created, 0) * .84));
}
.shop-heat-cell::after {
  content: "";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: white;
  font-size: .62rem;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}
[data-heat="searches"] .shop-heat-cell:is(:hover, :focus-visible)::after { content: attr(data-searches); }
[data-heat="created"] .shop-heat-cell:is(:hover, :focus-visible)::after { content: attr(data-created); }
.shop-heat-cell:is(:hover, :focus-visible) {
  z-index: 2;
  opacity: 1;
  outline: 2px solid var(--forest);
  outline-offset: 1px;
  box-shadow: 0 0 0 3px var(--card);
  transform: scale(1.35);
}
.shop-daypart-cell:is(:hover, :focus-visible) {
  outline: 2px solid var(--forest);
  outline-offset: 1px;
}
.busy-slot-dialog {
  width: min(36rem, calc(100% - 2rem));
  max-width: min(36rem, calc(100% - 2rem));
  max-height: min(36rem, calc(100dvh - 2rem));
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  background: transparent;
  box-shadow: var(--shadow-card);
}
.busy-slot-dialog:focus,
.busy-slot-dialog:focus-visible { outline: none !important; }
.busy-slot-dialog::backdrop { background: rgba(23, 32, 28, .5); }
.busy-slot-panel {
  display: flex;
  flex-direction: column;
  max-height: min(36rem, calc(100dvh - 2rem));
  padding: 1.15rem 1.25rem 1.25rem;
  overflow: auto;
  background: var(--card);
}
.busy-slot-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1rem;
}
.busy-slot-head h2 {
  margin: 0;
  color: var(--ink);
  font: 650 1.35rem/1.2 var(--font-sans);
}
.busy-slot-count {
  margin: .35rem 0 0;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 600;
}
.busy-slot-close {
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  flex: none;
  place-items: center;
  border: 0;
  border-radius: .75rem;
  background: var(--sand);
  color: var(--ink);
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
}
.busy-slot-list {
  display: grid;
  gap: .15rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.busy-slot-item {
  display: grid;
  grid-template-columns: 3.6rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .85rem;
  padding: .75rem 0;
  border-top: 1px solid var(--line);
}
.busy-slot-item:first-child { border-top: 0; padding-top: 0; }
.busy-slot-item img,
.busy-slot-thumb {
  width: 3.6rem;
  height: 3.6rem;
  border-radius: .75rem;
  background: var(--sand);
  object-fit: cover;
}
.busy-slot-copy { min-width: 0; }
.busy-slot-name,
.busy-slot-meta,
.busy-slot-status { display: block; }
.busy-slot-name {
  color: var(--ink);
  font: 650 1.15rem/1.25 var(--font-sans);
}
.busy-slot-meta,
.busy-slot-status {
  margin-top: .2rem;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.busy-slot-item form { margin: 0; }
.busy-slot-item button {
  min-height: 2.6rem;
  padding: .4rem 1rem;
  border: 0;
  border-radius: 999px;
  background: var(--forest);
  color: white;
  font-weight: 700;
  font-size: 1rem;
}
.busy-slot-empty {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}
@media (max-width: 899px) {
  .busy-slot-dialog {
    inset: auto 0 0;
    width: 100%;
    max-width: 100%;
    max-height: min(82dvh, 44rem);
    margin: 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 1.35rem 1.35rem 0 0;
  }
  .busy-slot-panel {
    max-height: min(82dvh, 44rem);
    padding: 1.25rem 1.15rem calc(1.35rem + env(safe-area-inset-bottom));
  }
  .busy-slot-head h2 { font-size: 1.5rem; }
  .busy-slot-name { font-size: 1.2rem; }
}
.shop-contributors-head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: .75rem;
}
.shop-contributors-head .charity-manage-add { margin-left: auto; }
.shop-invite {
  padding: .85rem 1rem;
  border-radius: 1rem;
  background: var(--sage);
  color: #21513c;
}
.shop-contributors-table-wrap {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  contain: inline-size;
}
.shop-contributors table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
}
.shop-contributors th,
.shop-contributors td {
  padding: .7rem .55rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}
.shop-contributors tbody tr:hover td { background: var(--paper); }
.shop-contributors th { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.shop-contributors td { font-variant-numeric: tabular-nums; }
.shop-contributors td strong { display: block; color: var(--forest); }
.shop-contributors td small { color: var(--muted); text-transform: capitalize; }
.shop-contributors .charity-person-email,
.shop-contributors .charity-person-role { min-width: 11rem; }
.shop-contributors .charity-person-email input,
.shop-contributors .charity-person-role select,
.shop-contributors .charity-person-email button,
.shop-contributors .charity-person-role button {
  min-height: 2.15rem;
  border-radius: .6rem;
}
.charity-name-line {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.charity-name-edit {
  display: inline-grid;
  width: 1.85rem;
  height: 1.85rem;
  flex: none;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: .45rem;
  background: var(--sand);
  color: var(--forest);
  cursor: pointer;
}
.charity-name-edit svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.charity-manage-people {
  min-width: 0;
  padding: 1.35rem 1.4rem 1.45rem;
  border: 1px solid var(--line);
  border-radius: 1.45rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.charity-manage-people-head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1rem;
}
.charity-manage-add {
  min-height: 2.5rem;
  padding: .45rem 1rem;
  border: 0;
  border-radius: .75rem;
  background: var(--sand);
  font-weight: 700;
  cursor: pointer;
}
.charity-people { margin: 0; padding: 0; list-style: none; display: grid; gap: .75rem; }
.charity-person {
  display: grid;
  gap: .75rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 1.125rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.charity-person-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.charity-person-role-chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.7rem;
  padding: .2rem .65rem;
  border-radius: 999px;
  background: var(--sand);
  font-size: .85rem;
  font-weight: 700;
  text-transform: capitalize;
}
.charity-person-role-chip.is-owner { background: #f7dcb8; }
.charity-person-role-chip.is-admin { background: #dce8f5; }
.charity-person-remove {
  min-height: 2rem;
  padding: .35rem .75rem;
  border: 0;
  border-radius: .75rem;
  background: #f3d6d2;
  color: var(--danger);
  font-size: .85rem;
  font-weight: 700;
  cursor: pointer;
}
.charity-person-email,
.charity-person-role {
  display: flex;
  gap: .5rem;
  min-width: 0;
}
.charity-person-email input,
.charity-person-role select {
  min-width: 0;
  min-height: 2.65rem;
  flex: 1;
  padding: .5rem .75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: white;
}
.charity-person-email button,
.charity-person-role button {
  min-height: 2.65rem;
  padding: .4rem .8rem;
  border: 0;
  border-radius: .75rem;
  background: var(--sand);
  font-size: .85rem;
  font-weight: 700;
  cursor: pointer;
}
.charity-people-empty {
  padding: 1.25rem;
  border-radius: 1rem;
  background: color-mix(in srgb, var(--sand) 60%, transparent);
  color: var(--muted);
  text-align: center;
}
.charity-manage-aside { display: grid; gap: 1rem; align-content: start; }
.charity-manage-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 1.125rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.charity-manage-card.is-danger {
  border-color: #dfaaa3;
  background: #f8e4e1;
  box-shadow: none;
}
.charity-manage-card h2 {
  margin: 0;
  color: var(--forest);
  font: 650 1.25rem/1.2 var(--font-sans);
}
.charity-manage-card.is-danger h2 { color: var(--danger); }
.charity-manage-card p {
  margin: .4rem 0 0;
  color: var(--muted);
  font-size: .9rem;
}
.charity-manage-card form { display: grid; gap: .5rem; margin-top: .75rem; }
.charity-manage-card label { font-weight: 600; }
.charity-manage-card input,
.charity-manage-card select {
  width: 100%;
  min-height: 2.65rem;
  padding: .5rem .75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: white;
}
.charity-manage-card input[type="checkbox"] {
  width: auto;
  min-height: 0;
  padding: 0;
}
.charity-manage-card .extract-card form { gap: .55rem; margin-top: 0; }
.extract-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .85rem;
}
.extract-copy { min-width: 0; }
.extract-copy h2 { margin: 0; }
.charity-manage-card .extract-usage {
  margin-top: .35rem;
  color: var(--ink);
  font-weight: 600;
}
.extract-switch { flex: 0 0 auto; margin: .15rem 0 0; cursor: pointer; }
.charity-manage-card .extract-switch input {
  appearance: none;
  width: 3rem;
  height: 1.75rem;
  border: 0;
  border-radius: 999px;
  background: #bfc4ca;
  box-shadow: inset 0 0 0 2px transparent;
  transition: background .15s;
}
.charity-manage-card .extract-switch input::after {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
  margin: .2rem;
  border-radius: 50%;
  background: white;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
  content: "";
  transition: transform .15s;
}
.charity-manage-card .extract-switch input:checked { background: var(--accent); }
.charity-manage-card .extract-switch input:checked::after { transform: translateX(1.25rem); }
.extract-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem .65rem;
}
.extract-fields label {
  display: grid;
  gap: .25rem;
  font-size: .8rem;
}
.extract-feedback {
  margin: 0;
  color: var(--forest);
  font-size: .85rem;
  font-weight: 600;
}
.extract-feedback.is-error { color: var(--danger); }
.charity-manage-card button {
  min-height: 2.5rem;
  border: 0;
  border-radius: .75rem;
  background: var(--sand);
  font-weight: 700;
  cursor: pointer;
}
.charity-manage-card button.is-primary { background: var(--forest); color: white; }
.charity-manage-card button.is-danger { background: var(--danger); color: white; }
@media (min-width: 900px) {
  .charities-mobile-create { display: none; }
}

.people-heading { margin-bottom: 1.3rem; }
.people-stack { display: grid; gap: 1.4rem; }
.choose-disabled {
  padding: 1.2rem 1.2rem 1.3rem;
  border: 1px solid color-mix(in srgb, #c96a5a 40%, var(--line));
  border-radius: 1rem;
  background: color-mix(in srgb, #f3d4ce 45%, #fff);
}
.choose-disabled h1 { margin: 0; color: #6d3228; }
.choose-disabled p { color: #6d3228; }
.people-field, .people-field-label {
  display: grid;
  gap: .35rem;
  color: var(--muted);
  font: 650 .78rem/1.2 var(--font-sans);
}
.people-field input, .people-field select, .people-invite input, .people-invite select, .people-team-tools input, .people-team-tools select {
  min-height: 2.7rem;
  padding: .55rem .8rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: #fff;
  color: var(--ink);
  font: 500 .95rem/1.3 var(--font-sans);
}
.people-field select,
.people-invite select,
.people-team-tools select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235c5348' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat;
  background-position: right .7rem center;
  background-size: .85rem;
  padding-right: 2.2rem;
}
.people-invite { display: grid; gap: .85rem; padding: 1.1rem 1.15rem 1.15rem; border-radius: 1rem; }
.people-invite-top { display: grid; gap: .7rem; }
.people-invite-top .ui-primary { min-height: 2.7rem; }
.people-team { padding: 1rem 1.05rem 1.15rem; border-radius: 1rem; }
.people-team-tools { display: grid; gap: .65rem; margin-bottom: 1rem; }
.people-group { margin: 0 0 1.15rem; }
.people-group:last-child { margin-bottom: 0; }
.people-group-title {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: 0 0 .55rem;
  color: var(--muted);
  font: 700 .72rem/1.2 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.people-group-title span {
  display: inline-grid;
  place-items: center;
  min-width: 1.35rem;
  height: 1.2rem;
  padding: 0 .35rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--sand) 80%, #fff);
  font-size: .68rem;
}
.people-rows { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.people-row { border: 1px solid var(--line); border-radius: .85rem; background: #fff; overflow: hidden; }
.people-row.is-hidden { display: none; }
.people-row-head {
  display: grid;
  grid-template-columns: 2.2rem minmax(0,1fr) auto auto;
  align-items: center;
  gap: .7rem;
  width: 100%;
  padding: .8rem .85rem;
  border: 0;
  background: none;
  text-align: left;
  cursor: pointer;
  color: inherit;
}
.people-row-head.is-static { cursor: default; grid-template-columns: 2.2rem minmax(0,1fr) auto; }
.people-row-copy { min-width: 0; display: grid; gap: .15rem; }
.people-row-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .95rem; }
.people-row-email { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: .78rem; }
.people-scope { display: flex; flex-wrap: wrap; gap: .3rem; }
.people-pill {
  display: inline-flex;
  align-items: center;
  padding: .15rem .45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--sand) 75%, #fff);
  color: var(--muted);
  font: 650 .7rem/1.2 var(--font-sans);
}
.people-pill.is-shop { background: color-mix(in srgb, #d7e6d4 80%, #fff); color: #3d6a48; }
.person-avatar { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: 50%; background: color-mix(in srgb,var(--sage) 45%,var(--card)); color: var(--muted); font: 700 .85rem var(--font-sans); }
.person-avatar.is-owner { background: #ead7b8; color: #7a5a2b; }
.person-avatar.is-admin { background: #d8dee8; color: #3d4a5c; }
.person-avatar.is-shop-admin { background: #d7e6d4; color: #3d6a48; }
.people-role-chip {
  display: inline-flex;
  align-items: center;
  padding: .28rem .6rem;
  border-radius: 999px;
  font: 650 .72rem/1 var(--font-sans);
  white-space: nowrap;
}
.people-role-chip.is-owner { background: #ead7b8; color: #7a5a2b; }
.people-role-chip.is-admin { background: #d5deea; color: #3d4f68; }
.people-role-chip.is-shop_admin { background: #d7e6d4; color: #3d6a48; }
.people-role-chip.is-volunteer { background: color-mix(in srgb, var(--sand) 80%, #fff); color: #5c5348; }
.people-role-chip.is-blocked { background: #f3d4ce; color: #8a3b2d; }
.people-row.is-blocked { border-color: color-mix(in srgb, #c96a5a 35%, var(--line)); }
.people-caret { width: 1rem; height: 1rem; stroke: var(--muted); fill: none; stroke-width: 2; }
.people-edit-dialog {
  width: min(28rem, calc(100vw - 1.5rem));
  max-height: min(92dvh, 40rem);
  padding: 0;
  border: 0;
  border-radius: 1rem;
  background: var(--card);
  box-shadow: 0 18px 40px rgb(18 24 42 / .18);
}
.people-edit-dialog::backdrop { background: rgba(18, 24, 42, .4); }
.people-edit-form { display: grid; gap: .85rem; padding: 1.1rem 1.15rem .4rem; }
.people-edit-form header { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.people-edit-kicker {
  margin: 0 0 .2rem;
  color: var(--muted);
  font: 700 .68rem/1.2 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.people-edit-form h2 {
  margin: 0;
  overflow-wrap: anywhere;
  font: 650 1.05rem/1.3 var(--font-sans);
}
.people-edit-form header button {
  border: 0;
  background: none;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
}
.people-block-note { margin: 0; color: #8a3b2d; font: 550 .85rem/1.4 var(--font-sans); }
.people-edit-actions { display: flex; }
.people-edit-actions .ui-primary { min-height: 2.5rem; padding: .45rem 1rem; }
.people-edit-aside {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .85rem;
  padding: .85rem 1.15rem 1.15rem;
  border-top: 1px solid var(--line);
  margin-top: .35rem;
}
.people-block-btn {
  border: 0;
  background: none;
  color: #8a5a2b;
  font: 650 .88rem/1.2 var(--font-sans);
  cursor: pointer;
}
.remove-person { border: 0; background: none; color: #b3402c; font: 650 .88rem/1.2 var(--font-sans); cursor: pointer; }
.people-empty { margin: .4rem 0 0; color: var(--muted); text-align: center; }
.people-picker { display: grid; gap: .4rem; }
.people-picker-box { position: relative; border: 1px solid var(--line); border-radius: .75rem; background: #fff; padding: .45rem .55rem .5rem; }
.people-picker-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .35rem; }
.people-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .2rem .45rem;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb, var(--sand) 80%, #fff);
  color: var(--ink);
  font: 650 .75rem/1.2 var(--font-sans);
  cursor: pointer;
}
.people-picker-input { width: 100%; min-height: 2rem; border: 0; padding: .25rem .2rem; background: none; font: 500 .92rem/1.3 var(--font-sans); }
.people-picker-input:focus { outline: none; }
.people-picker-list {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + .3rem);
  z-index: 6;
  max-height: 16rem;
  overflow: auto;
  padding: .45rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 8px 24px rgb(18 24 42 / .08);
}
.people-picker-kicker {
  margin: .2rem .35rem .25rem;
  color: var(--muted);
  font: 700 .68rem/1.2 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.people-picker-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  width: 100%;
  padding: .5rem .45rem;
  border: 0;
  border-radius: .5rem;
  background: none;
  text-align: left;
  cursor: pointer;
  font: 650 .88rem/1.3 var(--font-sans);
}
.people-picker-option:hover { background: color-mix(in srgb, var(--sage) 30%, #fff); }
.people-picker-option small { color: var(--muted); font-weight: 550; }
.people-picker-help { margin: 0; color: var(--muted); font-size: .75rem; }

@media (min-width: 900px) {
  .people-page .app-main { padding: 1.75rem 2rem 3rem; max-width: none; }
  .people-heading { display: none; }
  .people-invite-top { grid-template-columns: minmax(9rem,.8fr) minmax(14rem,1fr) 11rem auto; align-items: end; }
  .people-invite-top .ui-primary { min-height: 2.7rem; padding: .45rem 1.15rem; }
  .people-team-tools { grid-template-columns: minmax(0,1fr) 10rem; }
}

/* Item editor */
.item-back { display: none; margin: 0 0 0.85rem; }
.item-back a { color: var(--muted); font-weight: 700; text-decoration: none; }
.item-back a:hover { color: var(--ink); text-decoration: underline; }
.item-editor { position: relative; padding: 1.15rem; }
.item-editor-head { display: none; }
.item-editor-body,
.item-editor-stack { display: grid; gap: 1rem; }
.item-image-gallery { min-width: 0; margin-bottom: 1.3rem; }
.item-photo-hero { position: relative; display: grid; width: 100%; height: clamp(17rem, 72vw, 28rem); min-height: 0; place-items: center; overflow: hidden; border-radius: 1.25rem; background: var(--sand); color: var(--ink); font-size: 3rem; font-weight: 700; }
.item-photo-hero > img,
.item-photo-hero-open img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; }
.item-photo-hero-open {
  display: grid;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}
.item-photo-fallback { display: grid; justify-items: center; gap: .4rem; color: var(--muted); }
.item-photo-fallback > span { display: grid; width: 4.5rem; height: 4.5rem; place-items: center; border-radius: 50%; background: var(--card); color: var(--warning); }
.item-photo-fallback small { font-size: .85rem; font-weight: 700; }
.item-photo-thumbnails { display: flex; max-width: 100%; gap: .55rem; margin-top: .65rem; padding: .2rem .15rem .35rem; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-width: thin; touch-action: pan-x; }
.item-photo-thumbnail { position: relative; display: grid; width: 4.6rem; height: 4.6rem; flex: 0 0 4.6rem; place-items: stretch; overflow: visible; padding: .2rem; border: 2px solid var(--line); border-radius: .7rem; background: var(--card); cursor: pointer; scroll-snap-align: start; }
.item-photo-thumbnail img { position: absolute; inset: .2rem; z-index: 0; display: block; width: calc(100% - .4rem); height: calc(100% - .4rem); max-width: none; border-radius: .45rem; object-fit: cover; object-position: center; pointer-events: none; }
.item-photo-thumbnail[aria-selected="true"] { border-color: var(--accent-deep); box-shadow: 0 0 0 1px var(--accent-deep); }
.item-photo-thumbnail:focus-visible { outline: 3px solid color-mix(in srgb, #397bbb 55%, transparent); outline-offset: 2px; }
.item-photo-thumbnail.is-hidden img { opacity: .42; }
.item-thumb-helpers {
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: .15rem;
  padding: .2rem .15rem .12rem;
  overflow: visible;
  background: linear-gradient(transparent, color-mix(in srgb, var(--ink) 55%, transparent));
}
.item-thumb-helper {
  position: relative;
  display: grid;
  width: 1.35rem;
  height: 1.35rem;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  background-color: transparent;
  color: #fff;
  cursor: pointer;
}
.item-thumb-helper svg { width: .95rem; height: .95rem; fill: none; stroke: currentColor; stroke-width: 1.9; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .55)); }
.item-thumb-helper.item-photo-delete { color: #ffb4a8; }
.item-thumb-helper::after {
  content: attr(data-tip);
  position: absolute;
  left: 0;
  bottom: calc(100% + .25rem);
  z-index: 3;
  width: max-content;
  padding: .18rem .4rem;
  border-radius: .35rem;
  background: color-mix(in srgb, var(--ink) 88%, transparent);
  color: #fff;
  font-size: .62rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
}
.item-thumb-helper.item-photo-delete::after { left: auto; right: 0; }
.item-thumb-helper:hover::after,
.item-thumb-helper:focus::after,
.item-thumb-helper:focus-visible::after { opacity: 1; }
.item-photo-thumbnail:not(.is-hidden) .thumb-icon-restore,
.item-photo-thumbnail.is-hidden .thumb-icon-hide { display: none; }
@media (hover: hover) and (pointer: fine) {
  .item-thumb-helpers { opacity: 0; pointer-events: none; }
  .item-photo-thumbnail:hover,
  .item-photo-thumbnail:focus-within { z-index: 6; }
  .item-photo-thumbnail:hover .item-thumb-helpers,
  .item-photo-thumbnail:focus-within .item-thumb-helpers { opacity: 1; pointer-events: auto; }
}
.item-photo-add {
  flex: 0 0 4.6rem;
  width: 4.6rem;
  height: 4.6rem;
  aspect-ratio: auto;
  min-height: 0;
  gap: .2rem;
  padding: .35rem .25rem;
  border-radius: .7rem;
  scroll-snap-align: start;
}
.item-photo-add svg { width: 1.25rem; height: 1.25rem; }
.item-photo-add strong { font-size: .58rem; font-weight: 800; line-height: 1.15; }
.item-price-card,
.item-schema-desk {
  padding: .95rem 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
}
.item-schema-desk {
  margin: 0;
  display: grid;
  gap: .75rem;
}
.item-desk-new-price {
  display: grid;
  gap: .75rem;
  margin-top: .35rem;
}
.item-desk-new-price .item-price-stack,
.item-desk-new-price .item-price-card {
  border: 0;
  padding: .35rem 0 0;
  background: transparent;
}
.item-desk-doors {
  display: grid;
  gap: 1.25rem;
}
.item-desk-or-lead {
  margin: 0;
  color: var(--ink);
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.4;
}
.item-desk-or {
  margin: .15rem 0 0;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: center;
}
.item-similar-preview {
  display: grid;
  gap: .7rem;
  margin-top: .9rem;
}
.item-similar-ask-price {
  display: grid;
  gap: .35rem;
}
.item-similar-preview-prices {
  margin: 0 0 .75rem;
  padding: 0;
  display: grid;
  gap: .55rem;
}
.item-similar-preview .price-rule-card.is-view {
  padding: .7rem .8rem;
}
.item-similar-preview .item-similar-price-option {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0;
  padding: 0;
  border: 0;
}
.item-similar-preview .price-rule-add { margin-top: .15rem; }
.item-desk-name {
  display: grid;
  gap: .15rem;
}
.item-schema-desk.is-invalid {
  border-color: color-mix(in srgb, var(--warning) 45%, var(--line));
}
.item-possible,
.item-research {
  padding: .95rem 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
  display: grid;
  gap: .75rem;
}
.item-possible-list,
.item-possible-grid,
.item-research-cards,
.item-research-grid,
[data-research-cards] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .7rem;
}
.item-possible-grid,
.item-research-grid,
[data-research-cards] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.item-possible-card,
.item-research-card {
  display: grid;
  gap: .55rem;
  padding: .7rem .75rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: color-mix(in srgb, var(--paper) 70%, #fff);
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}
.item-research-card:has(img),
.item-research-card:has(.item-research-card-photo),
.item-possible-card:has(img),
.item-possible-card:has(.item-possible-card-photo) {
  grid-template-columns: minmax(0, 1fr);
}
.item-possible-card-photo {
  display: block;
  margin: 0;
  border-radius: .7rem;
}
.item-possible-card img,
.item-possible-card-photo img {
  width: 100%;
  height: 9.5rem;
  object-fit: cover;
  border-radius: .7rem;
  background: #fff;
  display: block;
}
.item-research-card-photo {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: .7rem;
}
.item-research-card img,
.item-research-card-photo img {
  width: 100%;
  height: 9.5rem;
  object-fit: cover;
  border-radius: .7rem;
  background: #fff;
  display: block;
}
.item-research-card-title {
  display: block;
  color: inherit;
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: underline;
  text-underline-offset: .12em;
}
.item-research-advanced {
  margin: 0;
}
.item-research-advanced summary {
  cursor: pointer;
  font-size: .82rem;
  font-weight: 700;
  color: var(--muted);
}
.item-possible-card strong,
.item-research-card strong {
  display: block;
  font-size: .92rem;
  line-height: 1.25;
}
.item-possible-card span,
.item-research-card p {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.35;
}
.item-possible-search {
  display: grid;
  gap: .45rem;
}
.item-possible-search-wait {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0;
  padding: .75rem .85rem;
  color: var(--ink);
  font-size: .88rem;
  font-weight: 700;
}
.item-possible-search-wait .item-research-spinner {
  width: 1.15rem;
  height: 1.15rem;
  margin: 0;
  flex: 0 0 auto;
}
.item-attach-picker.is-searching .picker-results {
  display: block;
}
.item-possible-actions,
.item-research-none,
.item-research-ask,
.item-research-refine {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  align-items: center;
}
.item-research-ask,
.item-research-refine,
.item-research-none {
  display: grid;
  gap: .55rem;
}
.item-research-credit {
  margin: 0;
  font-size: .78rem;
  font-weight: 700;
  color: var(--ink);
}
.item-research-wait {
  margin: 0;
  padding: 1.1rem 1rem 1.15rem;
  border-radius: 1.1rem;
  background: var(--sand, #f4f0e8);
  display: grid;
  justify-items: center;
  gap: .45rem;
  text-align: center;
}
.item-research-wait p {
  margin: 0;
  font-weight: 700;
}
.item-research-wait-hint {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 550;
  max-width: 22rem;
}
.item-research-spinner {
  width: 1.7rem;
  height: 1.7rem;
  margin: .15rem 0 .2rem;
  border: 2.5px solid var(--line);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: auth-spin .7s linear infinite;
}
.item-research-wait-grid {
  width: 100%;
  margin-top: .45rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}
.item-research-wait-grid span {
  display: block;
  min-height: 7.6rem;
  border-radius: .85rem;
  background: color-mix(in srgb, var(--line) 35%, #fff);
  animation: research-wait-pulse 1.2s ease-in-out infinite;
}
.item-research-wait-grid span:nth-child(2) { animation-delay: .12s; }
.item-research-wait-grid span:nth-child(3) { animation-delay: .24s; }
.item-research-wait-grid span:nth-child(4) { animation-delay: .36s; }
.item-research-wait-grid span:nth-child(5) { animation-delay: .48s; }
.item-research-wait-grid span:nth-child(6) { animation-delay: .6s; }
@keyframes research-wait-pulse {
  0%, 100% { opacity: .45; }
  50% { opacity: .95; }
}
@media (prefers-reduced-motion: reduce) {
  .item-research-spinner { animation: none; }
  .item-research-wait-grid span { animation: none; }
}
.item-research-error {
  margin: 0;
  color: var(--danger, #a94735);
  font-weight: 700;
}
.item-research-found {
  margin: 0;
  color: var(--ink);
  font-size: .88rem;
  font-weight: 700;
}
.item-research-check {
  margin-top: .15rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--forest, #245c45);
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .12em;
  cursor: pointer;
}
.item-research-sources a {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .12em;
}
.item-research-evidence {
  padding: .7rem .8rem;
  border-radius: .8rem;
  background: color-mix(in srgb, var(--sage, #d7e3d0) 55%, #fff);
  display: grid;
  gap: .35rem;
  align-items: start;
}
.item-research-evidence:has(img) {
  grid-template-columns: auto minmax(0, 1fr);
}
.item-research-evidence img {
  width: 6.5rem;
  height: 6.5rem;
  object-fit: cover;
  border-radius: .65rem;
  background: #fff;
  grid-row: 1 / span 6;
}
.item-research-extra {
  display: grid;
  gap: .2rem;
  padding: .7rem .8rem;
  border: 1px dashed var(--line);
  border-radius: .85rem;
  background: #fff;
  cursor: pointer;
}
.item-research-extra strong { font-size: .88rem; }
.item-research-extra input { margin-top: .2rem; }
.item-research-evidence p { margin: 0; }
.item-research-evidence:has(img) > :not(img) { grid-column: 2; }
@media (max-width: 640px) {
  .item-possible-card,
  .item-research-card,
  .item-possible-card:has(img),
  .item-possible-card:has(.item-possible-card-photo),
  .item-research-card:has(img),
  .item-research-card:has(.item-research-card-photo) {
    grid-template-columns: minmax(0, 1fr);
  }
  .item-possible-grid,
  .item-research-grid,
  [data-research-cards] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .item-possible-card img,
  .item-possible-card-photo img,
  .item-research-card img,
  .item-research-card-photo img {
    height: 7.5rem;
  }
  .item-possible-card .ui-secondary,
  .item-research-card .ui-primary,
  .item-research-card .ui-secondary {
    grid-column: 1 / -1;
  }
  .item-research-evidence {
    grid-template-columns: minmax(0, 1fr);
  }
  .item-research-evidence img { grid-row: auto; }
}
.research-inspect {
  z-index: 95;
  width: min(56rem, calc(100% - 2rem));
  max-height: calc(100% - 2rem);
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--card);
  color: var(--ink);
  box-shadow: var(--shadow-card);
}
.research-inspect::backdrop {
  background: color-mix(in srgb, var(--forest) 42%, transparent);
}
.research-inspect-frame {
  position: relative;
  padding: 1.15rem 1.2rem 1.2rem;
  display: grid;
  gap: .85rem;
}
.research-inspect-frame h2 {
  margin: 0 2.4rem 0 0;
  font: 700 1.15rem/1.3 var(--font-sans);
}
.research-inspect-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
}
.research-inspect-photos figure { margin: 0; }
.research-inspect-photos a { display: block; }
.research-inspect-photos img {
  display: block;
  width: 100%;
  max-height: 18rem;
  object-fit: contain;
  border-radius: .85rem;
  background: var(--sand, #f4f0e8);
}
.research-inspect-photos figcaption {
  margin-top: .4rem;
  color: var(--muted);
  font-size: .78rem;
}
.research-inspect-body {
  display: grid;
  gap: .28rem;
}
.research-inspect-body strong {
  font-size: 1.02rem;
  line-height: 1.3;
}
.research-inspect-body p {
  margin: 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.4;
}
.research-inspect-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}
@media (max-width: 640px) {
  .research-inspect-photos { grid-template-columns: 1fr; }
}
.item-price-card.is-unpriced {
  border-color: color-mix(in srgb, var(--warning) 45%, var(--line));
  background: color-mix(in srgb, var(--warning) 8%, #fff);
}
.item-price-kicker {
  margin: 0 0 .35rem;
  color: var(--ink);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .04em;
}
.item-price-card.is-unpriced .item-price-kicker,
.item-charity-prices.is-unpriced .item-price-kicker { color: var(--ink); }
.item-price-card .brand-picker > label,
.item-charity-prices .brand-picker > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.item-price-help { margin: .55rem 0 0; color: var(--muted); font-size: .82rem; line-height: 1.35; }
.price-rules { margin-top: 1.1rem; display: grid; min-width: 0; gap: .65rem; }
.price-rules-head {
  display: flex;
  min-width: 0;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
}
.price-rules-help {
  min-width: 0;
  margin: .15rem 0 0;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.4;
}
.price-rules-meta {
  min-width: 0;
  margin: 0;
  color: var(--muted);
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
  text-align: right;
  overflow-wrap: anywhere;
}
.item-price-card .price-rules-head,
.item-charity-prices .price-rules-head,
.class-create-rules .price-rules-head {
  display: grid;
  justify-items: start;
  gap: .2rem;
}
.item-price-card .price-rules-meta,
.item-charity-prices .price-rules-meta,
.class-create-rules .price-rules-meta {
  text-align: left;
  white-space: nowrap;
  overflow-wrap: normal;
}
.price-rule-list { display: grid; min-width: 0; gap: .55rem; }
.price-rule-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  padding: .7rem .8rem;
}
.price-rule-card.is-invalid { border-color: var(--clay, #b15a36); }
.price-rule-card-top {
  display: flex;
  min-width: 0;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
}
.price-rule-photos {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  align-items: center;
  gap: .3rem;
}
.price-rule-card-sum { display: flex; min-width: 0; align-items: center; gap: .55rem; }
.price-rule-card-sum strong { flex: none; font-variant-numeric: tabular-nums; }
.price-rule-photo {
  width: 3.2rem;
  min-width: 3.2rem;
  height: 3.2rem;
  max-width: none;
  object-fit: cover;
  border-radius: .45rem;
  flex: none;
  background: #eef1f5;
}
.price-rule-photo-open {
  display: block;
  flex: none;
  width: 3.2rem;
  height: 3.2rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  border-radius: .45rem;
}
.price-rule-photo-open:focus-visible {
  outline: 3px solid color-mix(in srgb, #397bbb 55%, transparent);
  outline-offset: 2px;
}
.price-rule-photo-open.is-modal,
.price-rule-modal-photo {
  margin: 0 0 .75rem;
}
.price-rule-modal-photo {
  display: grid;
  min-width: 0;
  gap: .55rem;
}
.price-rule-photo-open.is-modal {
  width: 100%;
  height: auto;
}
.price-rule-photos.is-modal {
  margin: 0;
}
.price-rule-photos.is-modal .price-rule-photo-open,
.price-rule-modal-photo .price-rule-photo-open {
  overflow: hidden;
}
.price-rule-photos.is-modal .price-rule-photo,
.price-rule-modal-photo .price-rule-photo {
  width: 3.2rem;
  min-width: 3.2rem;
  height: 3.2rem;
  max-width: none;
  max-height: none;
}
.price-rule-add-photo {
  display: grid;
  place-items: center;
  margin: 0;
  padding: .75rem .9rem;
  border: 1px dashed var(--line);
  border-radius: .75rem;
  background: #f8fafc;
  font-size: .88rem;
  font-weight: 650;
  cursor: pointer;
}
.price-rule-add-photo:focus-within {
  outline: 3px solid color-mix(in srgb, var(--accent) 55%, transparent);
  outline-offset: 2px;
}
.price-rule-tap {
  display: grid;
  gap: .65rem;
  margin-top: .75rem;
}
.price-rule-tap .camera-preview {
  position: relative;
}
.price-rule-tap img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 16rem;
  object-fit: contain;
  background: #101820;
}
.class-create-modal .price-rule-tap,
.class-create-page .price-rule-tap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.class-create-modal .price-rule-tap .camera-preview,
.class-create-page .price-rule-tap .camera-preview {
  display: grid;
  place-items: center;
  width: 100%;
  max-width: 100%;
  max-height: min(20rem, 38vh);
  overflow: hidden;
  background: #101820;
}
.class-create-modal .price-rule-tap img,
.class-create-page .price-rule-tap img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(20rem, 38vh);
  margin: 0 auto;
  object-fit: contain;
}
.class-create-modal .price-rule-tap .preview-actions,
.class-create-page .price-rule-tap .preview-actions {
  grid-template-columns: 1fr;
}
@media (min-width: 900px) {
  .class-create-modal .price-rule-tap .preview-actions,
  .class-create-page .price-rule-tap .preview-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.class-create-modal:has(.taxonomy-picker.is-open) {
  overflow: visible;
}
.class-create-modal:has(.taxonomy-picker.is-open) .class-create-shell {
  overflow: visible;
}
.class-create-modal:has(.price-rule-tap:not([hidden])) {
  overflow: auto;
}
.class-create-modal:has(.price-rule-tap:not([hidden])) .class-create-shell {
  overflow: auto;
}
.class-create-pane:has(.price-rule-tap:not([hidden])) > .class-create-drop {
  display: none;
}
@media (min-width: 900px) {
  .class-create-pane:has(.price-rule-tap:not([hidden])) > .class-create-help,
  .class-create-pane:has(.price-rule-tap:not([hidden])) > .class-create-label,
  .class-create-pane:has(.price-rule-tap:not([hidden])) > .class-create-price-field,
  .class-create-pane:has(.price-rule-tap:not([hidden])) > .class-create-error,
  .class-create-pane:has(.price-rule-tap:not([hidden])) > .class-create-rules {
    display: none;
  }
}
.item-price-card > .price-rule-photo-open,
.item-details-body > .price-rule-photo-open {
  display: block;
  margin: 0 0 .55rem;
}
.item-editor .app-photo { z-index: 200; }
.price-rule-count {
  flex: none;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .02em;
  color: var(--accent-deep);
  background: color-mix(in srgb, var(--accent) 14%, #fff);
  border-radius: 999px;
  padding: .18rem .5rem;
  white-space: nowrap;
}
.price-rule-card-edit { display: none; }
.price-rule-card-actions { display: flex; flex: none; gap: .15rem; }
.price-rule-card-actions button {
  border: none;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: .8rem;
  font-weight: 700;
  padding: .2rem .35rem;
  cursor: pointer;
}
.price-rule-filters { margin: .55rem 0 0; display: grid; gap: .2rem; }
.price-rule-filters div { display: grid; grid-template-columns: 5.6rem 1fr; gap: .5rem; font-size: .85rem; }
.price-rule-filters dt { margin: 0; color: #3d4654; font-weight: 700; }
.price-rule-filters dd { margin: 0; color: var(--ink); }
.price-rule-add {
  justify-self: start;
  border: 1px dashed var(--line);
  background: transparent;
  border-radius: .75rem;
  padding: .65rem .9rem;
  color: var(--accent-deep);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.condition-discounts { margin-top: 1.1rem; display: grid; gap: .65rem; }
.item-fold .condition-discounts { margin-top: 0; }
.condition-discount-toggle { justify-self: start; }
.condition-tier-list {
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  overflow: hidden;
}
.condition-tier {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  padding: .7rem .85rem;
  border-bottom: 1px solid var(--line);
}
.condition-tier:last-child { border-bottom: 0; }
.condition-tier-copy { min-width: 0; flex: 1; }
.condition-tier-copy strong {
  display: block;
  color: var(--ink);
  font-weight: 700;
}
.condition-tier-copy p {
  margin: .2rem 0 0;
  color: var(--ink);
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
.condition-tier-aside {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  flex: none;
  color: var(--muted);
  font-size: .85rem;
  font-variant-numeric: tabular-nums;
}
.condition-tier-icon {
  display: grid;
  width: 1.85rem;
  height: 1.85rem;
  place-items: center;
  border: none;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  padding: 0;
}
.condition-tier-icon svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.condition-tier-off {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--muted);
  font-size: .85rem;
  font-variant-numeric: tabular-nums;
}
.condition-tier-modal[open] { display: grid; gap: .55rem; }
.condition-tier-modal h2 { margin-bottom: .15rem; }
.condition-tier-field { display: grid; gap: .3rem; }
.condition-tier-modal input,
.condition-tier-modal textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: .65rem;
  background: #fff;
  color: var(--ink);
  padding: .55rem .7rem;
  font: inherit;
  font-weight: 600;
}
.condition-tier-modal input::placeholder,
.condition-tier-modal textarea::placeholder { color: var(--muted); }
.condition-tier-modal .condition-tier-off { margin: .15rem 0 .45rem; }
.condition-tier-modal .condition-tier-off input {
  width: 3.4rem;
  text-align: right;
}
.condition-tier-modal textarea { min-height: 5.5rem; resize: vertical; }
.condition-discount-reset {
  justify-self: start;
  border: none;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: .82rem;
  cursor: pointer;
  padding: 0;
}
.condition-discounts:not(.is-custom) [data-condition-tier-edit],
.condition-discounts:not(.is-custom) [data-condition-tier-remove],
.condition-discounts:not(.is-custom) [data-condition-tier-add],
.condition-discounts:not(.is-custom) [data-condition-reset] { display: none; }
.settings-card.settings-conditions .conditions-layout {
  display: grid;
  gap: 1.75rem;
  min-width: 0;
}
.settings-card.settings-conditions .condition-discounts { margin-top: 0; min-width: 0; }
.settings-card.settings-conditions .settings-price-tester {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: .7rem;
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--sand);
}
.settings-card.settings-conditions .settings-price-tester h3 {
  margin: 0;
  font: 650 1.05rem/1.2 var(--font-sans);
}
.settings-card.settings-conditions .settings-price-tester > p {
  margin: 0;
  color: var(--muted);
  font: 400 .88rem/1.4 var(--font-prose);
}
.settings-card.settings-conditions .settings-price-tester .settings-field { margin: 0; }
.settings-card.settings-conditions .settings-price-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.settings-card.settings-conditions .settings-price-chip {
  min-height: 2.15rem;
  padding: .35rem .75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: 650 .82rem/1.2 var(--font-sans);
  cursor: pointer;
}
.settings-card.settings-conditions .settings-price-chip.is-on {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}
.settings-card.settings-conditions .settings-price-result {
  margin: .15rem 0 0;
  color: var(--ink);
  font: 650 1rem/1.35 var(--font-sans);
}
.shop-prices { display: grid; gap: .65rem; }
.shop-price-copy {
  justify-self: start;
  margin: .45rem 0 .1rem;
  min-height: 2.15rem;
  padding: .35rem .95rem;
  font-size: .82rem;
}
.item-price-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.item-price-stack.is-shop-primary .item-shop-prices { order: -1; }
.item-price-stack:not(.is-shop-primary) .item-charity-prices {
  padding: 0;
}
.item-price-stack:not(.is-shop-primary) .item-charity-prices > summary { display: none; }
.item-price-stack:not(.is-shop-primary) .item-charity-prices .item-details-body {
  padding: .95rem 1rem 1.05rem;
}
.price-tester { margin-top: 1.1rem; }
.price-tester > summary {
  cursor: pointer;
  font-weight: 700;
  font-size: .9rem;
  list-style: none;
}
.price-tester > summary::-webkit-details-marker { display: none; }
.price-tester > summary::before {
  content: "▸ ";
  color: var(--muted);
}
.price-tester[open] > summary::before { content: "▾ "; }
.price-tester-body {
  margin-top: .7rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  padding: .85rem .9rem;
  display: grid;
  gap: .75rem;
}
.item-fold .price-tester-body {
  margin-top: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}
.price-tester-fields {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem .9rem;
}
.price-tester-field { display: grid; gap: .3rem; min-width: 8.5rem; }
.price-tester-field select {
  min-height: 2.5rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: #fff;
  padding: 0 .55rem;
  font: inherit;
}
.price-tester-result {
  margin: 0;
  padding-top: .65rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.45;
}
.price-rule-modal:not([open]),
.class-create-modal:not([open]) {
  display: none !important;
}
.price-rule-modal {
  z-index: 50;
  width: min(28rem, calc(100vw - 2rem));
  max-height: calc(100vh - 2.5rem);
  border: none;
  border-radius: 1rem;
  padding: 1.15rem 1.15rem 1.05rem;
  box-shadow: 0 20px 50px rgba(33, 45, 59, .22);
  overflow: hidden;
  transition: width .32s cubic-bezier(.22, 1, .36, 1);
}
.price-rule-modal.is-help-open { width: min(48rem, calc(100vw - 2rem)); }
.price-rule-modal-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 0fr;
  align-items: stretch;
  overflow: hidden;
  max-height: calc(100vh - 4.7rem);
  transition: grid-template-columns .32s cubic-bezier(.22, 1, .36, 1);
}
.price-rule-modal.is-help-open .price-rule-modal-shell {
  grid-template-columns: minmax(0, 1fr) 21.25rem;
}
.price-rule-modal-form {
  min-width: 0;
  min-height: 0;
  overflow: auto;
}
.price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-form {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  overflow: hidden;
}
.price-rule-modal-scroll {
  min-width: 0;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
}
.price-rule-modal.is-help-open .price-rule-modal-form {
  padding-right: 1.15rem;
}
.price-rule-modal-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .45rem;
}
.price-rule-modal-top h2 { margin: 0; }
.price-rule-help-slot {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.price-rule-help-aside {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0 .2rem 0 1.25rem;
  border-left: 1px solid var(--line);
  color: var(--ink);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(1.1rem);
  opacity: 0;
  pointer-events: none;
  transition: transform .32s cubic-bezier(.22, 1, .36, 1), opacity .22s ease;
}
.price-rule-modal.is-help-open .price-rule-help-aside {
  transform: none;
  opacity: 1;
  pointer-events: auto;
}
.price-rule-help-aside h3 {
  margin: 0 0 .4rem;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.price-rule-help-aside h3 + h3,
.price-rule-help-aside p + h3 { margin-top: .95rem; }
.price-rule-help-aside p {
  margin: 0 0 .55rem;
  font-size: .86rem;
  line-height: 1.45;
}
.price-rule-help-aside p:last-child { margin-bottom: 0; }
.price-rule-help-kicker {
  margin: .55rem 0 .25rem;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.price-rule-help-example {
  margin: 0 0 .65rem;
  padding: .55rem .7rem;
  border-radius: .55rem;
  background: color-mix(in srgb, var(--accent) 8%, #fff);
  font-size: .86rem;
  line-height: 1.45;
}
.price-rule-sheet-handle { display: none; }
.price-rule-dim-picker { margin: .35rem 0 .7rem; }
.price-rule-dim-picker .picker-results {
  position: static;
  margin-top: .4rem;
  max-height: 14rem;
}
@media (max-width: 899px) {
  .price-rule-modal:has(.price-rule-modal-scroll) {
    position: fixed;
    inset: auto 0 0 0;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: auto;
    max-height: 92dvh;
    margin: 0;
    border-radius: 24px 24px 0 0;
    padding: .55rem 1.15rem calc(1.15rem + env(safe-area-inset-bottom));
    transform: none;
  }
  .price-rule-modal:has(.price-rule-modal-scroll).is-help-open {
    width: 100%;
  }
  .price-rule-sheet-handle { display: block; }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-shell,
  .price-rule-modal:has(.price-rule-modal-scroll).is-help-open .price-rule-modal-shell {
    height: auto;
    max-height: calc(92dvh - 1.7rem);
    grid-template-columns: 1fr;
    grid-template-rows: auto 0fr;
  }
  .price-rule-modal:has(.price-rule-modal-scroll).is-help-open .price-rule-modal-shell {
    grid-template-rows: auto minmax(8rem, 38%);
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-form,
  .price-rule-modal:has(.price-rule-modal-scroll).is-help-open .price-rule-modal-form {
    display: grid;
    grid-template-rows: auto minmax(0, auto) auto;
    height: auto;
    max-height: calc(92dvh - 1.7rem);
    padding-right: 0;
    padding-bottom: 0;
    overflow: hidden;
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-scroll {
    max-height: min(28rem, calc(92dvh - 12rem));
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-lead,
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-example {
    display: none;
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-photo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-bottom: .65rem;
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-add-photo {
    width: auto;
    min-height: 2.2rem;
    margin: 0;
    padding: .4rem .7rem;
    font-size: .8rem;
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-actions {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: stretch;
    gap: .55rem;
    margin: 0;
    padding: .75rem 0 0;
    border-top: 1px solid var(--line);
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-actions [data-price-rule-save] {
    width: 100%;
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-actions [data-price-rule-cancel] {
    width: 100%;
  }
  .price-rule-modal:has(.price-rule-modal-scroll) .price-rule-modal-actions [data-price-rule-modal-delete] {
    margin-right: 0;
    justify-self: center;
    border: none;
    background: none;
    color: var(--danger);
    padding: .25rem .5rem;
  }
}
@media (max-width: 719px) {
  .price-rule-modal:not(:has(.price-rule-modal-scroll)).is-help-open { width: min(28rem, calc(100vw - 2rem)); }
  .price-rule-modal:not(:has(.price-rule-modal-scroll)) .price-rule-modal-shell,
  .price-rule-modal:not(:has(.price-rule-modal-scroll)).is-help-open .price-rule-modal-shell {
    grid-template-columns: 1fr;
    grid-template-rows: auto 0fr;
  }
  .price-rule-modal:not(:has(.price-rule-modal-scroll)).is-help-open .price-rule-modal-shell {
    grid-template-rows: auto minmax(0, 16rem);
  }
  .price-rule-modal:not(:has(.price-rule-modal-scroll)).is-help-open .price-rule-modal-form {
    padding-right: 0;
    padding-bottom: 1.15rem;
  }
  .price-rule-help-aside {
    padding: 1.15rem 0 0;
    border-left: 0;
    border-top: 1px solid var(--line);
    transform: translateY(.8rem);
  }
}
@media (prefers-reduced-motion: reduce) {
  .price-rule-modal,
  .price-rule-modal-shell,
  .price-rule-help-aside { transition: none; animation: none; }
}
.price-rule-modal::backdrop { background: rgba(33, 45, 59, .45); }
.price-rule-modal h2 {
  margin: 0 0 .45rem;
  font-size: 1.15rem;
}
.price-rule-lead {
  margin: 0 0 .25rem;
  color: var(--ink);
  font-size: .92rem;
  line-height: 1.4;
}
.price-rule-example {
  margin: 0 0 .85rem;
  color: var(--ink);
  font-size: .86rem;
  line-height: 1.4;
}
.price-rule-ask {
  margin: .35rem 0 .15rem;
  color: var(--ink);
  font-size: .86rem;
  line-height: 1.4;
}
.price-rule-match-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
}
.price-rule-match-head .price-when-kicker { margin: 0; }
.price-rule-help-btn {
  border: 0;
  background: none;
  color: var(--accent-deep);
  font: inherit;
  font-size: .8rem;
  font-weight: 700;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: .15em;
}
.price-rule-help-panel {
  margin: .4rem 0 .55rem;
  padding: .7rem .8rem;
  border-radius: .75rem;
  background: color-mix(in srgb, var(--accent) 10%, #fff);
  color: var(--ink);
  font-size: .86rem;
  line-height: 1.45;
}
.price-rule-dims { display: flex; flex-wrap: wrap; gap: .4rem; margin: .35rem 0 .7rem; }
.price-rule-dims button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .35rem .7rem;
  font: inherit;
  font-size: .85rem;
  cursor: pointer;
}
.price-rule-dims button.is-on {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}
.price-rule-dims button.price-rule-new-match {
  border-style: dashed;
  color: var(--accent-deep);
  font-weight: 700;
}
.price-new-match {
  margin-top: .15rem;
  padding: .75rem .8rem .85rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: #fff;
}
.price-new-match-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin-bottom: .2rem;
}
.price-new-match-title {
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.price-new-match-remove {
  border: 0;
  background: none;
  color: var(--muted);
  font: inherit;
  font-size: .8rem;
  font-weight: 700;
  padding: 0;
  cursor: pointer;
}
.price-new-match-hint {
  margin: .45rem 0 .55rem;
  color: var(--ink);
  font-size: .82rem;
  line-height: 1.4;
}
.price-rule-modal .price-when-kicker { margin-top: .65rem; }
.price-rule-modal .price-when-search,
.price-rule-modal .price-field input {
  color: var(--ink);
  font-weight: 600;
}
.price-rule-modal .price-when-search::placeholder,
.price-rule-modal .price-field input::placeholder {
  color: var(--muted);
  font-weight: 400;
}
.price-rule-modal-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1rem;
}
.price-rule-modal-actions button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: .65rem;
  padding: .5rem .85rem;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.price-rule-modal-actions [data-price-rule-modal-delete] {
  margin-right: auto;
  border: none;
  background: var(--danger);
  color: #fff;
}
.price-rule-modal-actions [data-price-rule-modal-delete]:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.price-rule-modal .price-rule-photo-open {
  cursor: pointer;
}
.price-rule-modal .price-rule-photo-open:hover {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ink) 22%, transparent);
}
.price-rule-modal-actions [data-price-rule-save],
.price-rule-modal-actions [data-condition-modal-save] {
  border: none;
  background: var(--accent);
  color: #fff;
}
.price-rule-modal-actions [data-price-rule-save]:disabled { opacity: .45; cursor: not-allowed; }
.price-rule-modal-actions [data-price-rule-save].is-busy {
  opacity: 1;
  cursor: wait;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
}
.price-rule-modal.is-saving {
  cursor: wait;
}
.price-when-list { margin-top: .85rem; display: grid; gap: .65rem; }
.price-when-kicker {
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.price-when-row {
  display: grid;
  grid-template-columns: minmax(6.5rem, 7.5rem) minmax(7rem, 9rem);
  gap: .5rem .55rem;
  align-items: start;
}
.price-when-row .field-warning,
.price-when-picker { grid-column: 1 / -1; }
.price-when-picker .picker-selected { min-height: 0; margin: 0 0 .4rem; }
.price-when-picker .picker-selected:empty { margin: 0; }
.price-when-search {
  min-height: 2.75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  padding: 0 .75rem;
  font: inherit;
}
.price-when-dimension {
  min-height: 2.75rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  padding: 0 .75rem;
  font: inherit;
}
.price-when-dimension:focus,
.price-when-search:focus {
  border-color: var(--accent);
  outline: none;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 20%, transparent);
}
@media (max-width: 639px) {
  .price-when-row {
    grid-template-columns: 1fr;
  }
}
.item-fold {
  min-width: 0;
  max-width: 100%;
  padding: 0 .2rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
}
.item-fold + .item-fold {
  margin-top: .55rem;
}
.item-fold > summary {
  display: flex;
  min-width: 0;
  min-height: 3rem;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  padding: .65rem 1rem;
  cursor: pointer;
  font-weight: 800;
  list-style: none;
}
.item-fold > summary > span {
  min-width: 0;
}
.item-fold > summary::-webkit-details-marker { display: none; }
.item-fold-meta,
.item-fold > summary span:last-child {
  color: var(--muted);
  font-size: .8rem;
  font-weight: 600;
  overflow-wrap: anywhere;
  text-align: right;
}
.item-details-body { padding: 0 1rem 1.1rem; }
.class-notes-hint {
  margin: 0 0 .85rem;
  padding: .75rem .85rem;
  border-radius: .65rem;
  background: color-mix(in srgb, var(--sand) 70%, #fff);
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.45;
}
.item-history .audit { margin: 0; padding: 0 1rem 1rem 2.1rem; }
.item-pair { display: grid; gap: 1rem; margin-top: 1rem; min-width: 0; }
.item-title-block { min-width: 0; }
.item-title-row { display: flex; min-width: 0; align-items: center; gap: .65rem; }
.item-title-name {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  align-items: center;
  gap: .45rem;
}
.item-title-name [data-title-heading] { flex: 0 1 auto; min-width: 0; }
.item-title-row .item-head-meta {
  display: flex;
  flex: none;
  align-items: center;
  gap: .65rem;
  margin-left: auto;
}
.item-title-edit {
  display: grid; width: 1.85rem; height: 1.85rem; flex: none; place-items: center; border: 0; border-radius: .45rem; background: var(--sand); color: var(--ink); cursor: pointer;
}
.item-title-edit svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.item-title-input { width: 100%; max-width: none; margin: 0; }
.item-source { display: block; margin-top: .35rem; line-height: 1.45; white-space: normal; }
.item-title-block.is-editing [data-title-heading],
.item-title-block:not(.is-editing) .item-title-input { display: none; }
.admin-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  margin: 1rem 0 0;
  align-items: start;
}
.admin-photo {
  display: grid;
  min-width: 0;
  margin: 0;
  gap: .4rem;
}
.admin-photo-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-radius: 1rem;
}
.admin-photo-open {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  padding: 0;
  border: 0;
  border-radius: 1rem;
  background: var(--sand);
  cursor: zoom-in;
}
.admin-photo-open img { display: block; width: 100%; height: 100%; object-fit: cover; }
.admin-photo.is-inactive .admin-photo-open { opacity: .5; }
.admin-photo figcaption { color: var(--muted); font-size: .85rem; line-height: 1.3; }
.item-photo-actions {
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: color-mix(in srgb, var(--ink) 16%, transparent);
}
.item-photo-actions form { margin: 0; min-width: 0; }
.item-photo-action {
  width: 100%;
  min-height: 2.05rem;
  padding: .3rem .4rem;
  border: 0;
  background: color-mix(in srgb, var(--card) 90%, transparent);
  color: var(--ink);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .01em;
  backdrop-filter: blur(10px);
  cursor: pointer;
}
.item-photo-delete { color: var(--danger); }
.item-add-photo { display: grid; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.item-add-photo-drop {
  position: relative;
  display: grid;
  aspect-ratio: 1;
  min-height: 0;
  place-content: center;
  justify-items: center;
  gap: .35rem;
  overflow: hidden;
  border: 1.5px dashed color-mix(in srgb, var(--forest) 28%, var(--line));
  border-radius: 1rem;
  background: var(--sand);
  color: var(--forest);
  cursor: pointer;
  text-align: center;
  letter-spacing: 0;
  text-transform: none;
}
.item-add-photo-drop input { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; opacity: 0; }
.item-add-photo-drop:focus-within,
.item-add-photo-drop.is-over { outline: 3px solid color-mix(in srgb, var(--accent) 55%, transparent); outline-offset: 2px; }
.item-add-photo-drop.is-busy { opacity: .72; pointer-events: none; }
.item-add-photo-drop svg { width: 1.55rem; height: 1.55rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.item-add-photo-drop strong { font-size: .88rem; }
.item-add-photo-drop small { color: var(--muted); font-size: .75rem; }
.app-photo {
  z-index: 200;
  width: min(44rem, calc(100% - 2rem));
  max-height: calc(100% - 2rem);
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--card);
  color: var(--ink);
  box-shadow: var(--shadow-card);
}
.app-photo::backdrop { background: color-mix(in srgb, var(--forest) 42%, transparent); }
.app-photo-frame { position: relative; padding: .85rem .85rem 1rem; }
.app-photo-machine {
  position: absolute;
  top: .85rem;
  left: .85rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  padding: .28rem .55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--card) 88%, transparent);
  color: var(--ink);
  font-size: .78rem;
  letter-spacing: 0;
  text-transform: none;
}
.app-photo-machine label,
.item-editor .app-photo-machine label {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  color: inherit;
  font-size: inherit;
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
}
.app-photo-machine input { margin: 0; }
.app-photo-machine-status {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 500;
}
.app-photo-stage { position: relative; overflow: hidden; isolation: isolate; }
.app-photo-machine-overlay {
  position: absolute;
  left: 0;
  top: 0;
  max-width: 100%;
  max-height: 100%;
  pointer-events: none;
}
.app-photo.is-machine {
  overscroll-behavior: none;
}
.app-photo.is-machine .app-photo-stage,
.app-photo.is-machine .app-photo-machine-overlay {
  touch-action: none;
  overscroll-behavior: none;
}
.app-photo.is-machine .app-photo-machine-overlay { pointer-events: auto; cursor: crosshair; }
.app-photo.is-waiting .app-photo-machine-overlay,
.price-rule-tap.is-waiting .tap-overlay { pointer-events: none; }
html:has(.app-photo[open].is-machine) {
  overscroll-behavior: none;
}
html:has(.app-photo[open]) .item-action-dock,
html:has(.app-photo[open]) .app-dock {
  display: none !important;
}
.app-photo-frame > .capture-status { z-index: 8; border-radius: 1.2rem; }
.app-photo-machine-tools {
  position: relative;
  z-index: 6;
  margin-top: .65rem;
  touch-action: manipulation;
}
.app-photo-machine-tools .tap-prompt { margin: 0 0 .5rem; text-transform: none; letter-spacing: 0; }
.app-photo-machine-tools .preview-actions {
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.app-photo-machine-tools .preview-actions .ui-primary,
.app-photo-machine-tools .preview-actions .ui-secondary {
  min-height: 2.75rem;
  touch-action: manipulation;
}
.app-photo-close {
  position: absolute;
  top: .7rem;
  right: .7rem;
  z-index: 1;
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb, var(--card) 88%, transparent);
  color: var(--ink);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}
.app-photo img {
  display: block;
  width: 100%;
  max-height: min(78vh, 38rem);
  border-radius: .85rem;
  background: var(--sand);
  object-fit: contain;
}
.app-photo p { margin: .65rem .15rem 0; color: var(--muted); }
.item-editor label:not(.check):not(.item-active-switch):not(.item-photo-add):not(.price-tester-field):not(.app-photo-machine) { color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.item-head-meta { display: contents; }
.item-active-switch {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
}
.item-active-switch input {
  appearance: none;
  width: 2.35rem;
  height: 1.35rem;
  margin: 0;
  flex: none;
  border: 0;
  border-radius: 999px;
  background: #bfc4ca;
}
.item-active-switch input::after {
  display: block;
  width: 1.05rem;
  height: 1.05rem;
  margin: .15rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(29, 41, 56, .2);
  content: "";
  transition: transform .16s ease;
}
.item-active-switch input:checked { background: var(--accent); }
.item-active-switch input:checked::after { transform: translateX(1rem); }
.item-active-switch input:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 2px;
}
.item-field-description,
.item-editor-meta,
.item-editor-taxonomy { min-width: 0; }
.item-editor input[type="text"], .item-editor input[type="search"], .item-editor textarea { border-color: var(--line); border-radius: .9rem; }
.price-field {
  display: flex;
  align-items: center;
  gap: .35rem;
  min-height: 3.2rem;
  padding: 0 .9rem;
  border: 1.5px solid var(--line);
  border-radius: .9rem;
  background: #fff;
}
.price-field-sym {
  color: var(--muted);
  font: 600 1.15rem ui-monospace, monospace;
}
.price-field input {
  min-width: 0;
  width: 100%;
  min-height: 0;
  padding: .7rem 0;
  border: 0;
  background: transparent;
  font: 600 1.15rem ui-monospace, monospace;
}
.price-field.is-invalid,
.price-field:has(input.is-invalid) {
  border-color: var(--warning);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--warning) 22%, transparent);
}
.item-editor input.is-invalid {
  border-color: var(--warning);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--warning) 22%, transparent);
}
.item-editor-banner {
  margin: 0;
  padding: .7rem .9rem;
  background: color-mix(in srgb, var(--warning) 16%, white);
  color: #8a4b1f;
  font-size: .86rem;
  font-weight: 600;
}
.item-proposal-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem 1rem;
  margin: 0;
  padding: .85rem 1.15rem;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--sand) 55%, #fff);
  color: var(--ink);
  font-size: .88rem;
  line-height: 1.45;
}
.item-proposal-note p { margin: 0; flex: 1 1 14rem; }
.item-volunteer-note {
  margin: 1rem 0 0;
  padding: .9rem 1rem 1rem;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
  border-radius: .9rem;
  background: color-mix(in srgb, var(--tan) 62%, #fff);
  box-shadow: 0 1px 2px rgba(33, 45, 59, .06);
}
.item-volunteer-note h3 {
  margin: 0 0 .4rem;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.item-volunteer-note p {
  margin: 0;
  font-size: .95rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.field-warning {
  margin: .4rem 0 0;
  color: #8a4b1f;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.3;
  text-transform: none;
  letter-spacing: 0;
}
.check { display: grid !important; grid-template-columns: 1fr auto; margin: 1.5rem 0 0; padding-top: 1.1rem; border-top: 1px solid var(--line); font-weight: 700 !important; }
.check input { grid-column: 2; grid-row: 1 / span 2; width: 3rem !important; height: 1.8rem !important; accent-color: var(--accent); }
.check span { grid-column: 1; color: var(--muted); font-size: .82rem; font-weight: 400; }
.item-class-danger {
  display: grid;
  justify-items: center;
  margin: 1.5rem auto 0;
  padding: 1.1rem 1.4rem 1.75rem;
  max-width: 36rem;
  border-top: 1px solid var(--line);
  text-align: center;
}
.item-class-danger h3 {
  margin: 0 0 .4rem;
  color: var(--danger);
  font-size: 1rem;
}
.item-class-danger p {
  margin: 0 0 .75rem;
  max-width: 28rem;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.4;
}
.item-class-danger form {
  display: flex;
  justify-content: center;
  margin: 0;
}
.item-action-dock { position: sticky; bottom: calc(var(--nav-height) + env(safe-area-inset-bottom)); z-index: 26; display: grid; grid-template-columns: .8fr 1.7fr; gap: .65rem; margin: 1.5rem -1.15rem -1.15rem; padding: .85rem 1.15rem; border-top: 1px solid var(--line); background: color-mix(in srgb,var(--paper) 94%,transparent); box-shadow: 0 -8px 24px rgba(29,41,56,.07); backdrop-filter: blur(12px); }
.item-action-dock a { display: grid; place-items: center; text-decoration: none; }
.detail-secondary { margin-top: 1.5rem; padding-bottom: 2rem; }
.desktop-save { display: none; }
.desktop-save[hidden] { display: none !important; }

@media (min-width: 640px) {
  .admin-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
  .item-back { display: none; }
  .item-editor { padding: 0; border-radius: 1.1rem; }
  .item-editor-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: .75rem 1rem;
    padding: 1.1rem 1.4rem;
    border-bottom: 1px solid var(--line);
  }
  .item-editor-head .item-title-block { min-width: 0; }
  .item-editor-head [data-title-heading] { min-width: 0; overflow-wrap: anywhere; }
  .item-editor-head h1,
  .item-editor-head h2 { margin: 0; font-size: 1.35rem; letter-spacing: -.015em; }
  .item-editor-head small { color: var(--muted); font-size: .85rem; }
  .item-head-meta {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem .75rem;
    margin-left: auto;
  }
  .item-active-switch { font-size: .82rem; }
  .desktop-save {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.15rem;
    padding: .35rem .95rem;
    font-size: .82rem;
  }
  .desktop-save[hidden] { display: none !important; }
  .item-editor-body,
  .item-editor-stack {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.15rem;
    padding: 1.35rem 1.4rem 1.6rem;
    align-items: stretch;
  }
  .item-field-description {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .item-field-description textarea {
    flex: 1 1 auto;
    min-height: 8.5rem;
    resize: vertical;
  }
  .item-image-gallery { margin-bottom: 0; }
  .item-photo-hero { border-radius: .9rem; }
  .item-photo-thumbnail,
  .item-photo-add { width: 4.6rem; height: 4.6rem; flex-basis: 4.6rem; }
  .item-editor label:not(.check):not(.item-active-switch):not(.item-photo-add):not(.price-tester-field) { margin-top: .7rem !important; font-size: .8rem; }
  .item-field-description > label,
  .item-editor-taxonomy > label:first-of-type { margin-top: 0 !important; }
  .item-editor input[type="text"], .item-editor input[type="search"], .item-editor textarea { padding: .65rem .8rem; border-radius: .65rem; font-size: .9rem; }
  .item-editor textarea { min-height: 8.5rem; }
  .item-editor-right > .grid { margin-top: 0; }
  .price-field { min-height: 3.1rem; padding: 0 .85rem; border-radius: .65rem; }
  .price-field-sym { font-size: 1.2rem; }
  .price-field input { font-size: 1.2rem; }
  .item-action-dock { display: none; }
  .detail-secondary { margin-top: 1rem; }
  .admin-gallery { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .item-pair {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
  }
  .item-pair > .picker > label { margin-top: 0 !important; }
}

@media (min-width: 1180px) {
  .item-head-meta { justify-content: flex-end; }
}

/* Item queue */
.items-heading { margin-bottom: 1.3rem; }
.items-heading a { color: var(--accent-deep); font-weight: 700; }
.header-actions .items-plus {
  display: grid;
  width: 2.9rem;
  height: 2.9rem;
  flex: 0 0 auto;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--forest);
  color: white;
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(33, 45, 59, .05);
}
.header-actions .items-plus:hover { color: white; }
.items-plus-added { display: grid; gap: .85rem; justify-items: start; }
.items-plus-added-photo {
  width: 100%;
  max-height: 14rem;
  object-fit: cover;
  border-radius: 1rem;
  background: var(--sand, #f4efe6);
}
.items-plus-added-title { margin: 0; font-size: 1.35rem; }
.items-plus-added-name { margin: 0; font-size: 1.05rem; }
.items-plus-added-actions { width: 100%; display: flex; flex-wrap: wrap; gap: .6rem; }
.items-plus-choices { display: grid; gap: .75rem; }
.items-plus-choice {
  display: grid;
  gap: .25rem;
  width: 100%;
  padding: 1rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 1.1rem;
  background: white;
  text-align: left;
  cursor: pointer;
}
.items-plus-choice strong { font-size: 1.05rem; }
.items-plus-choice span { color: var(--muted); font-size: .92rem; line-height: 1.35; }
.items-plus-choice:hover,
.items-plus-result.is-current { border-color: var(--forest); }
.items-plus-back-row { margin: 0; }
.items-plus-back {
  border: 0;
  background: none;
  color: var(--accent-deep);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
}
.items-plus-body,
.items-plus-view,
.items-plus-picker,
.items-plus-voice,
[data-add-photos].class-create-form { overflow: visible; }
.picker[data-picker-hide-search-when-filled="1"]:has(.picker-chip) [data-class-search],
.picker[data-picker-hide-search-when-filled="1"].is-filled [data-class-search] { display: none; }
.items-plus-picker.is-open { z-index: 90; }
.items-plus-picked-meta { color: var(--muted); font-weight: 600; font-size: .85rem; }
.items-plus-written-prices .price-rule-list { margin: 0 0 .65rem; }
.items-plus-written-price.price-rule-card {
  display: grid;
  width: 100%;
  margin: 0;
  padding: .75rem .85rem;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.items-plus-written-price.price-rule-card.is-selected {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent);
}
.class-create-heading { margin-bottom: 1rem; }
.class-create-heading .crumb { margin: 0 0 .35rem; }
.class-create-heading .crumb a { color: var(--accent-deep); font-weight: 700; }
.class-create-form {
  display: grid;
  align-content: start;
  gap: 1rem;
  min-width: 0;
  min-height: 0;
}
.class-create-optional {
  color: var(--muted);
  font-weight: 600;
  font-size: .8rem;
}
.class-create-basics {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  min-width: 0;
}
.class-create-basics-copy,
.class-create-basics-photos { display: grid; align-content: start; gap: .55rem; min-width: 0; }
.class-create-basics-copy { width: 100%; }
.class-create-basics .taxonomy-picker,
.class-create-basics .taxonomy-picker-search-wrap { width: 100%; min-width: 0; }
.class-create-basics .taxonomy-picker-search,
.class-create-basics .taxonomy-picker-chosen {
  min-height: 3.1rem;
  padding: .75rem 1rem;
  border-radius: 1rem;
}
.class-create-picker { display: grid; gap: .45rem; }
.class-create-picker.is-open { z-index: 90; }
.class-create-price-field {
  display: flex;
  align-items: center;
  gap: .45rem;
}
.class-create-price-field > span {
  font-weight: 700;
  color: var(--muted);
}
.class-create-price-field .class-create-input { flex: 1; }
.class-create-conditions,
.class-create-rules { margin-top: .35rem; }
.class-create-notes {
  min-height: 7rem;
  resize: vertical;
}
.class-create-steps {
  display: flex;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.class-create-steps li { margin: 0; }
.class-create-steps button {
  display: inline-flex;
  align-items: center;
  min-height: 1.7rem;
  padding: 0 .7rem;
  border: 0;
  border-radius: 999px;
  background: var(--sand);
  color: var(--muted);
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
}
.class-create-steps li.is-current button {
  background: var(--forest);
  color: white;
}
.class-create-pane { display: grid; gap: .75rem; min-width: 0; }
.class-create-pane-title {
  margin: 0;
  font-size: 1.35rem;
  letter-spacing: -.02em;
}
.class-create-help {
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.4;
}
.class-create-label {
  margin: .15rem 0 0;
  font-weight: 700;
}
.class-create-input {
  width: 100%;
  min-height: 3.1rem;
  padding: .75rem 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: white;
  font: inherit;
}
.class-create-input:focus {
  border-color: var(--accent);
  outline: none;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 20%, transparent);
}
.class-create-drop {
  position: relative;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: .4rem;
  width: 100%;
  min-height: 11rem;
  padding: 1.5rem 1.1rem;
  border: 1.5px dashed color-mix(in srgb, var(--forest) 35%, var(--line));
  border-radius: 1.25rem;
  background: color-mix(in srgb, var(--sand) 70%, white);
  color: var(--forest);
  text-align: center;
  cursor: pointer;
}
.class-create-drop input { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; opacity: 0; }
.class-create-drop:focus-within,
.class-create-drop.is-over { outline: 3px solid color-mix(in srgb, var(--accent) 55%, transparent); outline-offset: 2px; }
.class-create-drop svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.class-create-drop strong { font-size: 1rem; color: var(--ink); }
.class-create-drop small { color: var(--muted); font-size: .8rem; }
.class-create-error { margin: 0; color: var(--danger); font-weight: 600; }
.class-create-warn {
  margin: 0;
  padding: .65rem .8rem;
  border-radius: .85rem;
  background: color-mix(in srgb, var(--accent) 12%, white);
  color: var(--ink);
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.4;
}
.class-create-warn a { color: var(--forest); }
.class-create-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: .35rem;
}
.class-create-actions .ui-primary,
.class-create-actions .ui-secondary {
  flex: 1 1 8rem;
  min-height: 3rem;
  text-align: center;
  text-decoration: none;
}
.class-create-modal {
  width: min(56rem, calc(100vw - 5rem));
  max-height: min(52rem, calc(100vh - 3rem));
  margin: auto;
  padding: 0;
  border: none;
  border-radius: 1.5rem;
  overflow: auto;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 24px 60px rgba(31, 45, 38, .28);
}
.class-create-modal::backdrop { background: rgba(23, 36, 30, .48); }
.class-create-shell {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 1rem;
  max-height: min(52rem, calc(100vh - 3rem));
  padding: 1.35rem 1.5rem 1.15rem;
  overflow: auto;
}
.class-create-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.class-create-modal-head h2 {
  margin: 0;
  font-size: 1.7rem;
  letter-spacing: -.02em;
}
.class-create-close {
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: var(--sand);
  color: var(--ink);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
.class-create-sheet-handle { display: none; }
.class-create-page-shell {
  display: grid;
  align-content: start;
  gap: 1rem;
  max-width: 44rem;
  margin: 0 auto;
  width: 100%;
}
@media (min-width: 900px) {
  .class-create-basics:has(.class-create-basics-photos) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.35rem;
    align-items: stretch;
  }
  .class-create-basics-photos .class-create-drop { min-height: 100%; }
}
@media (max-width: 899px) {
  .class-create-modal {
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0;
  }
  .class-create-modal[data-plus-view="chooser"],
  .class-create-modal[data-plus-view="added"],
  .class-create-modal[data-plus-view="photos"],
  .class-create-modal[data-plus-view="product-photo"],
  .class-create-modal[data-plus-view="create"],
  .class-create-modal[data-plus-view="voice"] {
    top: auto;
    height: auto;
    max-height: min(90dvh, 100%);
    border-radius: 1.4rem 1.4rem 0 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    animation: items-plus-sheet-up .28s ease;
  }
  .class-create-sheet-handle {
    display: block;
    width: 2.5rem;
    height: 4px;
    margin: 0 auto .35rem;
    border-radius: 999px;
    background: var(--line);
  }
  .class-create-shell {
    height: 100dvh;
    max-height: 100dvh;
    padding: 1rem 1.1rem calc(1rem + env(safe-area-inset-bottom));
  }
  .class-create-modal[data-plus-view="chooser"] .class-create-shell,
  .class-create-modal[data-plus-view="added"] .class-create-shell,
  .class-create-modal[data-plus-view="photos"] .class-create-shell,
  .class-create-modal[data-plus-view="product-photo"] .class-create-shell,
  .class-create-modal[data-plus-view="create"] .class-create-shell,
  .class-create-modal[data-plus-view="voice"] .class-create-shell {
    height: auto;
    max-height: none;
    padding-top: .7rem;
    overflow: visible;
  }
  .class-create-modal[data-plus-view="chooser"] .class-create-modal-head h2,
  .class-create-modal[data-plus-view="added"] .class-create-modal-head h2,
  .class-create-modal[data-plus-view="photos"] .class-create-modal-head h2,
  .class-create-modal[data-plus-view="product-photo"] .class-create-modal-head h2,
  .class-create-modal[data-plus-view="create"] .class-create-modal-head h2,
  .class-create-modal[data-plus-view="voice"] .class-create-modal-head h2 {
    font-size: 1.35rem;
  }
  .class-create-modal[data-plus-view="photos"] .class-create-form,
  .class-create-modal[data-plus-view="photos"] [data-add-photos],
  .class-create-modal[data-plus-view="product-photo"] .class-create-form,
  .class-create-modal[data-plus-view="product-photo"] [data-add-product-photo],
  .class-create-modal[data-plus-view="create"] .class-create-form {
    min-height: 0;
    grid-template-rows: none;
  }
  .class-create-modal .class-create-pane:not([hidden]) {
    display: grid;
    grid-template-rows: 1fr auto;
    min-height: calc(100dvh - 8.5rem);
  }
  .class-create-modal[data-plus-view="create"] .class-create-pane:not([hidden]) {
    display: grid;
    min-height: 0;
    grid-template-rows: none;
  }
  .class-create-modal[data-plus-view="photos"] .class-create-drop,
  .class-create-modal[data-plus-view="product-photo"] .class-create-drop,
  .class-create-modal[data-plus-view="create"] .class-create-drop { min-height: 8.5rem; }
  .class-create-drop { min-height: 12rem; }
  .class-create-page .app-main {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .class-create-page-shell {
    max-width: none;
    min-height: calc(100dvh - 7.5rem);
  }
  .class-create-page .class-create-heading .ui-page-title { font-size: 2rem; }
  .class-create-actions {
    position: sticky;
    bottom: 0;
    padding-top: .75rem;
    background: linear-gradient(180deg, transparent, var(--paper) 30%);
  }
  .class-create-modal[data-plus-view="photos"] .class-create-actions,
  .class-create-modal[data-plus-view="product-photo"] .class-create-actions,
  .class-create-modal[data-plus-view="create"] .class-create-actions {
    position: static;
    background: none;
    padding-top: .15rem;
  }
}
@keyframes items-plus-sheet-up {
  from { transform: translateY(110%); }
  to { transform: none; }
}
.items-layout { display: grid; gap: 1rem; }
.items-queue { min-width: 0; }
.queue-chips { margin-bottom: 1rem; }
.queue-chips a { display: flex; align-items: center; justify-content: center; gap: .4rem; padding: .5rem; }
.queue-chips b { display: inline-grid; min-width: 1.25rem; height: 1.25rem; place-items: center; border-radius: 50%; background: var(--tan); color: color-mix(in srgb,var(--warning) 60%,var(--ink)); font-size: .7rem; }
.filters-bar { display: grid; gap: .6rem; margin-bottom: 1.25rem; }
.filter-toolbar { display: flex; min-width: 0; align-items: center; gap: .5rem; }
.filter-toggle {
  display: none;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 3.2rem;
  padding: 0 .95rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: var(--ink);
  font-weight: 700;
  white-space: nowrap;
}
.filter-toggle[aria-expanded="true"] {
  border-color: var(--ink);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ink) 12%, transparent);
}
.filter-toggle b {
  display: inline-grid;
  min-width: 1.25rem;
  height: 1.25rem;
  place-items: center;
  border-radius: 50%;
  background: var(--tan);
  color: color-mix(in srgb, var(--warning) 60%, var(--ink));
  font-size: .7rem;
}
.filter-toggle b[hidden] { display: none; }
.filter-active { display: none; }
.filter-active:not([hidden]) {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: .4rem;
}
.filter-chip {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  gap: .15rem;
  min-height: 1.85rem;
  padding: 0 0 .05rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--sand) 70%, white);
  color: var(--ink);
  font-size: .78rem;
  font-weight: 700;
}
.filter-chip span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.filter-chip-clear {
  display: grid;
  width: 1.7rem;
  height: 1.7rem;
  flex: 0 0 auto;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1;
}
.search-wrap { display: flex; min-width: 0; flex: 1; align-items: center; gap: .5rem; min-height: 3.2rem; padding: 0 .9rem; border: 1px solid var(--line); border-radius: 999px; background: white; }
.search-wrap span { color: var(--muted); font-size: 1.4rem; }
.search-wrap input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; }
.filter-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.filter-fields label { display: grid; gap: .25rem; color: var(--muted); font-size: .72rem; font-weight: 700; }
.filter-fields select { min-width: 0; min-height: 2.75rem; padding: .45rem .6rem; border: 1px solid var(--line); border-radius: .65rem; background: white; color: var(--ink); }
.filter-button { grid-column: 1 / -1; min-height: 2.75rem; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--ink); font-weight: 700; }
.filter-combo { position: relative; display: grid; gap: .25rem; min-width: 0; }
.filter-combo-label { color: var(--muted); font-size: .72rem; font-weight: 700; }
.filter-combo-trigger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .45rem;
  min-width: 0;
  min-height: 2.75rem;
  padding: .45rem .7rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: white;
  color: var(--ink);
  font-weight: 650;
  text-align: left;
}
.filter-combo-trigger [data-filter-label] {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.filter-combo-chevron {
  width: .45rem;
  height: .45rem;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(45deg) translate(-1px, -1px);
}
.filter-combo.is-open .filter-combo-trigger {
  border-color: var(--ink);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ink) 12%, transparent);
}
.filter-combo-panel {
  z-index: 80;
  display: grid;
  min-width: 16rem;
  max-width: min(22rem, calc(100vw - 2rem));
  padding: .55rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 18px 40px rgba(36, 28, 22, 0.16);
}
.filter-combo-panel[hidden] { display: none !important; }
.filter-combo-search {
  min-width: 0;
  width: 100%;
  min-height: 2.4rem;
  padding: .45rem .7rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: var(--sand);
  color: var(--ink);
}
.filter-combo-search:focus {
  outline: 0;
  border-color: var(--ink);
  background: #fff;
}
.filter-combo-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .2rem .35rem;
  margin: .45rem .15rem 0;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 700;
}
.filter-combo-crumb:empty { display: none; }
.filter-combo-crumb button {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--ink);
  font: inherit;
  font-weight: 700;
}
.filter-combo-crumb button:hover { text-decoration: underline; }
.filter-combo-options {
  display: grid;
  max-height: min(18rem, 50vh);
  margin-top: .45rem;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.filter-combo-option,
button.filter-combo-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1.25rem;
  align-items: start;
  column-gap: 1.25rem;
  width: 100%;
  min-height: 2.55rem;
  margin: 0;
  padding: .65rem .75rem;
  border: 0;
  border-radius: .65rem;
  background: transparent;
  color: inherit;
  font-weight: 650;
  line-height: 1.35;
  text-align: left;
}
.filter-combo-option small {
  display: block;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 600;
}
.filter-combo-option.is-current { background: var(--sand); }
.filter-combo-option.is-active,
.filter-combo-option:hover { background: color-mix(in srgb, var(--sand) 70%, white); }
.filter-combo-option.is-all { font-weight: 750; }
.filter-combo-empty {
  margin: 0;
  padding: .75rem .65rem;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 600;
}
.filter-combo-option .filter-combo-next {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 1.35em;
  color: var(--muted);
  font-size: .85rem;
  line-height: 1;
}
.filter-combo[data-filter-combo="source"] .filter-combo-trigger { background: color-mix(in srgb, var(--sand) 55%, white); }
.filter-combo[data-filter-combo="photos"] .filter-combo-trigger { background: color-mix(in srgb, var(--sage) 12%, white); }
.filter-combo[data-filter-combo="price"] .filter-combo-trigger { background: color-mix(in srgb, var(--tan) 45%, white); }
.filter-combo-range {
  display: grid;
  gap: .45rem;
  margin-top: .45rem;
  padding: .65rem .55rem .5rem;
  border-top: 1px solid var(--line);
}
.filter-combo-range p {
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}
.filter-combo-range-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .45rem;
}
.filter-combo-range-fields label {
  display: grid;
  gap: .2rem;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 700;
}
.filter-combo-range-fields label span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.filter-combo-range-fields input {
  min-width: 0;
  min-height: 2.3rem;
  padding: .35rem .55rem;
  border: 1px solid var(--line);
  border-radius: .6rem;
  background: var(--sand);
}
.filter-combo-range-fields input:focus {
  outline: 0;
  border-color: var(--ink);
  background: #fff;
}
.filter-combo-range-apply {
  min-height: 2.3rem;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: var(--ink);
  font-weight: 700;
}
.item-load-more {
  margin: .35rem 0 0;
  padding: .7rem .4rem 1rem;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 650;
  text-align: center;
}
.item-list { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.item-card { display: grid; grid-template-columns: 4rem minmax(0,1fr) auto; align-items: center; gap: .9rem; min-height: 5.6rem; padding: .35rem .45rem; color: var(--ink); text-decoration: none; }
.item-thumb { display: grid; width: 4rem; height: 4rem; place-items: center; border-radius: .85rem; background: #477eaf; color: white; object-fit: cover; font-size: 1.25rem; font-weight: 700; }
.item-list li:nth-child(3n+1) .item-placeholder { background: #a9801b; }
.item-list li:nth-child(3n) .item-placeholder { background: #637083; }
.item-card h2 { margin: 0; font-size: 1.05rem; line-height: 1.05; }
.item-card p { margin: .25rem 0 0; color: var(--muted); font-size: .88rem; }
.item-side { display: grid; justify-items: end; gap: .35rem; }
.item-side small { color: var(--muted); font: .75rem ui-monospace, monospace; }
.items-empty-detail { display: none; }

@media (max-width: 899px) {
  .items-page:has(.items-detail-requested) .items-heading { display: none; }
  .items-heading { margin-bottom: .75rem; }
  .items-heading .ui-lede { margin-top: .3rem; font-size: .95rem; }
  .filters-bar.filters-collapsible .filter-toggle { display: inline-flex; min-height: 2.85rem; }
  .filters-bar.filters-collapsible:not(.is-open) .filter-fields { display: none; }
  .filters-bar.filters-collapsible .filter-active:not([hidden]) { display: flex; }
  .search-wrap { min-height: 2.85rem; }
}

@media (min-width: 900px) {
  .items-heading { margin: 0; }
  .items-heading .ui-page-title {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .items-heading .ui-lede { display: none; }
  .items-layout { grid-template-columns: minmax(21rem, 24rem) minmax(0,1fr); gap: 1.35rem; }
  .queue-chips { margin-bottom: .85rem; }
  .queue-chips a { min-height: 2.35rem; padding: .25rem .7rem; font-size: .82rem; }
  .queue-chips b { min-width: 1.35rem; height: 1.35rem; font-size: .68rem; }
  .filters-bar { margin-bottom: .85rem; gap: .7rem; }
  .search-wrap { min-height: 2.6rem; padding: 0 .9rem; }
  .search-wrap input { font-size: .88rem; }
  .filter-fields { display: grid; }
  .filter-fields label, .filter-combo-label { font-size: .72rem; }
  .filter-fields select, .filter-button, .filter-combo-trigger { min-height: 2.5rem; font-size: .82rem; }
  .item-list { gap: .4rem; }
  .item-card { grid-template-columns: 2.75rem minmax(0,1fr) auto; min-height: 3.9rem; gap: .7rem; padding: .65rem .7rem; border: 1px solid transparent; border-radius: .75rem; }
  .item-card:hover, .item-card:focus-visible { border-color: var(--line); background: white; box-shadow: var(--shadow-card); }
  .item-thumb { width: 2.75rem; height: 2.75rem; border-radius: .7rem; font-size: .9rem; }
  .item-card h2 { font-size: .88rem; letter-spacing: -.01em; }
  .item-card p, .item-side small { font-size: .74rem; }
  .item-side .ticket { min-height: 1.55rem; padding: .22rem .6rem .22rem .8rem; font-size: .72rem; }
  .item-side small { display: none; }
  .items-empty-detail { display: grid; place-content: center; justify-items: center; color: var(--muted); text-align: center; }
  .items-empty-detail > span { font-size: 2rem; }
}

/* Responsive application shell */
* { box-sizing: border-box; }
html { background: var(--paper); overflow-x: clip; }
body.app { margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, #397bbb 55%, transparent) !important;
  outline-offset: 3px;
}
.app-frame { min-height: 100dvh; }
.platform-context { padding: .5rem 1rem; }
.shell-aligned { width: 100%; min-width: 0; }
@media (min-width: 768px) and (max-width: 899px) {
  .platform-context { padding-inline: 1.5rem; }
}
.mobile-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  min-height: var(--mobile-header-height);
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: max(.75rem, env(safe-area-inset-top)) var(--page-pad) .75rem;
  background: color-mix(in srgb, var(--paper) 95%, transparent);
}
.mobile-brand { display: grid; color: var(--ink); text-decoration: none; line-height: 1.05; }
.mobile-brand.has-logo { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .55rem; }
.mobile-brand-logo { width: auto; height: 2.2rem; max-width: 6.5rem; object-fit: contain; padding: .15rem .3rem; border: 1px solid var(--line); border-radius: .45rem; background: #fff; }
.mobile-brand-copy { display: grid; min-width: 0; }
.mobile-brand-home, .mobile-brand-mark { color: inherit; text-decoration: none; }
.mobile-lockup { display: block; width: 6.75rem; height: auto; }
.mobile-brand strong { font: 650 1.7rem var(--font-sans); letter-spacing: -.03em; }
.mobile-brand small { margin-top: .18rem; color: var(--muted); font-size: .95rem; }
.mobile-shop-trigger {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  width: fit-content;
  max-width: 100%;
  min-height: 2.15rem;
  margin: 0;
  padding: .2rem .15rem .2rem 0;
  border: 0;
  background: none;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.mobile-shop-trigger small { margin: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobile-shop-chevron {
  flex: none;
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.header-actions { display: flex; align-items: center; gap: .55rem; overflow: visible; }
.settings-trigger, .notification-trigger {
  display: grid;
  grid-template: 1fr / 1fr;
  width: 2.9rem;
  height: 2.9rem;
  padding: 0;
  place-items: center;
  overflow: visible;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: white;
  color: var(--ink);
  box-shadow: 0 1px 2px rgba(33, 45, 59, .05);
}
.settings-trigger svg, .notification-trigger svg, .app-dock svg, .desktop-nav svg {
  width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.settings-trigger svg, .notification-trigger svg {
  width: 1.45rem;
  height: 1.45rem;
  stroke-width: 2;
}
.account-menu a svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.app-main {
  width: 100%;
  max-width: 45rem;
  margin: 0 auto;
  padding: 1.5rem var(--page-pad) calc(var(--nav-height) + 2.5rem + env(safe-area-inset-bottom));
}
.app-dock {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 25;
  display: flex;
  min-height: var(--nav-height);
  padding: .25rem .5rem max(.35rem, env(safe-area-inset-bottom));
  border-top: 1px solid var(--line);
  background: color-mix(in srgb, var(--paper) 94%, white);
  box-shadow: 0 -8px 25px rgba(29,41,56,.06);
  backdrop-filter: blur(16px);
}
.app-dock a,
.app-dock button {
  position: relative;
  display: grid;
  flex: 1;
  min-width: 3.5rem;
  min-height: 3.8rem;
  place-content: center;
  justify-items: center;
  gap: .2rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--muted);
  font: inherit;
  font-size: .78rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.app-dock a.is-active,
.app-dock button.is-active,
.app-dock button[aria-pressed="true"] { color: var(--ink); }
.app-dock a b {
  position: absolute;
  top: .12rem;
  right: 18%;
  min-width: 1.15rem;
  padding: 0 .22rem;
  border-radius: 1rem;
  background: #665126;
  color: #f5d88e;
  font-size: .65rem;
  line-height: 1.15rem;
  text-align: center;
}
.app-dock a.is-active::before,
.app-dock button.is-active::before {
  position: absolute; top: -.25rem; width: 2.5rem; height: .18rem; border-radius: 1rem; background: var(--accent); content: "";
}
.app-dock[data-dock-admin] {
  overflow: hidden;
}
.app-dock-stage {
  position: relative;
  display: grid;
  flex: 4 1 0;
  min-width: 0;
  overflow: hidden;
}
.app-dock-set {
  display: flex;
  grid-area: 1 / 1;
  min-width: 0;
}
.app-dock-set a { min-width: 0; }
.app-dock[data-dock-admin] > [data-dock-admin-toggle] {
  flex: 1 1 0;
  z-index: 2;
  min-width: 0;
}
.app-dock-admin-icon {
  display: grid;
  place-items: center;
  transition: transform .28s cubic-bezier(.22, .8, .28, 1);
}
.app-dock.is-admin .app-dock-admin-icon { transform: rotate(45deg); }
.app-dock-set[data-dock-pane="shop"] a,
.app-dock-set[data-dock-pane="admin"] a {
  transition:
    transform .32s cubic-bezier(.22, .7, .32, 1),
    opacity .24s ease;
}
.app-dock-set[data-dock-pane="admin"] a {
  transform: translateY(130%);
  opacity: 0;
  pointer-events: none;
}
.app-dock-set[data-dock-pane="shop"] a:nth-child(1) { transition-delay: .28s; }
.app-dock-set[data-dock-pane="shop"] a:nth-child(2) { transition-delay: .36s; }
.app-dock-set[data-dock-pane="shop"] a:nth-child(3) { transition-delay: .44s; }
.app-dock-set[data-dock-pane="shop"] a:nth-child(4) { transition-delay: .52s; }
.app-dock-set[data-dock-pane="admin"] a:nth-child(1) { transition-delay: 0s; }
.app-dock-set[data-dock-pane="admin"] a:nth-child(2) { transition-delay: .06s; }
.app-dock-set[data-dock-pane="admin"] a:nth-child(3) { transition-delay: .12s; }
.app-dock-set[data-dock-pane="admin"] a:nth-child(4) { transition-delay: .18s; }
.app-dock.is-admin .app-dock-set[data-dock-pane="shop"] a {
  transform: translateY(130%);
  opacity: 0;
  pointer-events: none;
}
.app-dock.is-admin .app-dock-set[data-dock-pane="admin"] a {
  transform: none;
  opacity: 1;
  pointer-events: auto;
}
.app-dock.is-admin .app-dock-set[data-dock-pane="shop"] a:nth-child(1) { transition-delay: 0s; }
.app-dock.is-admin .app-dock-set[data-dock-pane="shop"] a:nth-child(2) { transition-delay: .06s; }
.app-dock.is-admin .app-dock-set[data-dock-pane="shop"] a:nth-child(3) { transition-delay: .12s; }
.app-dock.is-admin .app-dock-set[data-dock-pane="shop"] a:nth-child(4) { transition-delay: .18s; }
.app-dock.is-admin .app-dock-set[data-dock-pane="admin"] a:nth-child(1) { transition-delay: .28s; }
.app-dock.is-admin .app-dock-set[data-dock-pane="admin"] a:nth-child(2) { transition-delay: .4s; }
.app-dock.is-admin .app-dock-set[data-dock-pane="admin"] a:nth-child(3) { transition-delay: .52s; }
.app-dock.is-admin .app-dock-set[data-dock-pane="admin"] a:nth-child(4) { transition-delay: .64s; }
.app-dock:not(.is-ready) .app-dock-set a,
.app-dock:not(.is-ready) .app-dock-admin-icon { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .app-dock-admin-icon,
  .app-dock-set[data-dock-pane="shop"] a,
  .app-dock-set[data-dock-pane="admin"] a {
    transition: none;
  }
}
.desktop-sidebar, .desktop-utility { display: none; }

.app-confirm {
  width: min(24.5rem, calc(100% - 2rem));
  max-width: calc(100vw - 2rem);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--card);
  color: var(--ink);
  box-shadow: var(--shadow-card);
}
.app-confirm[open] {
  animation: app-confirm-in .2s ease-out;
}
.app-confirm::backdrop {
  background: color-mix(in srgb, var(--forest) 38%, transparent);
}
.app-confirm[open]::backdrop {
  animation: app-confirm-backdrop-in .2s ease-out;
}
@keyframes app-confirm-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes app-confirm-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.app-confirm-body { margin: 0; padding: 1.35rem 1.35rem 1.2rem; }
.app-confirm h2 {
  margin: 0;
  color: var(--forest);
  overflow-wrap: anywhere;
  font: 650 1.2rem/1.3 var(--font-sans);
}
.app-confirm p {
  margin: .55rem 0 0;
  color: var(--muted);
  overflow-wrap: anywhere;
  font: 500 .95rem/1.45 var(--font-sans);
}
.app-confirm-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .65rem;
  margin-top: 1.25rem;
}
.app-confirm-cancel,
.app-confirm-ok {
  min-height: 2.75rem;
  border: 0;
  border-radius: .85rem;
  font-weight: 700;
  cursor: pointer;
}
.app-confirm-cancel { background: var(--sand); color: var(--ink); }
.app-confirm-ok { background: var(--forest); color: white; }
.app-confirm-ok.is-danger { background: var(--danger); }
.app-confirm.is-notice .app-confirm-body { text-align: center; }
.app-confirm.is-notice .app-confirm-cancel { display: none; }
.app-confirm.is-notice .app-confirm-actions {
  display: flex;
  justify-content: center;
}
.app-confirm.is-notice .app-confirm-ok {
  min-width: 7.5rem;
  padding-inline: 1.6rem;
}

.flash-toasts {
  position: fixed;
  z-index: 85;
  top: 5.6rem;
  right: .75rem;
  left: .75rem;
  display: grid;
  justify-items: stretch;
  gap: .5rem;
  pointer-events: none;
}
.flash-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  width: min(100%, 24rem);
  margin: 0 0 0 auto;
  padding: .85rem 1rem;
  border-radius: .9rem;
  box-shadow: 0 14px 36px rgba(29, 41, 56, .18);
  font-weight: 700;
  line-height: 1.3;
  animation: flash-drop .22s ease both;
}
.flash-toast p { margin: 0; flex: 1; min-width: 0; }
.flash-toast-close {
  flex: none;
  width: 1.7rem;
  height: 1.7rem;
  margin: -.15rem -.2rem 0 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .16);
  color: inherit;
  font-size: 1.15rem;
  line-height: 1;
}
.flash-toast.is-notice { background: var(--accent); color: #fff; }
.flash-toast.is-error { background: var(--danger); color: #fff; }
.flash-toast.is-out { animation: flash-lift .2s ease both; }
@keyframes flash-drop {
  from { transform: translateY(-14px); opacity: 0; }
  to { transform: none; opacity: 1; }
}
@keyframes flash-lift {
  from { transform: none; opacity: 1; }
  to { transform: translateY(-10px); opacity: 0; }
}

/* Shared redesigned primitives */
.ui-page-title { margin: 0; font: 650 clamp(2rem, 9vw, 2.4rem)/1.05 var(--font-sans); letter-spacing: -.035em; }
.ui-lede { margin: .45rem 0 0; color: var(--muted); font: 400 1.05rem/1.35 var(--font-prose); }
.ui-eyebrow { margin: 0; color: var(--muted); font: 600 .77rem/1.2 ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; }
.ui-card { border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--card); box-shadow: var(--shadow-card); }
.ui-primary, .ui-secondary {
  min-height: 3.35rem; border-radius: 999px; padding: .75rem 1.3rem; font-weight: 700;
}
.ui-primary { border: 1px solid var(--accent); background: var(--accent); color: white; }
.ui-secondary { border: 1px solid var(--line); background: white; color: var(--ink); }
.ticket { display: inline-flex; align-items: center; min-height: 2rem; padding: .3rem .8rem .3rem 1rem; background: var(--tan); color: color-mix(in srgb,var(--warning) 60%,var(--ink)); font: 700 .84rem ui-monospace, monospace; clip-path: polygon(.55rem 0,100% 0,100% 100%,.55rem 100%,0 50%); }
.ticket.is-success { background: var(--sage); color: var(--accent-deep); }
.segment { display: flex; padding: .2rem; border-radius: 999px; background: var(--sand); }
.segment a, .segment button { flex: 1; min-height: 2.75rem; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font-weight: 700; text-align: center; text-decoration: none; }
.segment .is-active, .segment .active { background: white !important; color: var(--ink) !important; box-shadow: 0 1px 4px rgba(29,41,56,.12); }

@media (min-width: 900px) {
  html { overflow: clip; }
  body.app { overflow: clip; height: 100dvh; font-size: .95rem; }
  .app-frame {
    display: flex;
    height: 100dvh;
    min-height: 0;
    min-width: 0;
    flex-direction: column;
    overflow: clip;
    margin-left: var(--sidebar);
  }
  .desktop-sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 35; display: flex; width: var(--sidebar); flex-direction: column; padding: 1rem .85rem; background: var(--ink); color: white;
  }
  .sidebar-brand { display: grid; justify-items: start; gap: .4rem; margin: 0 .35rem .5rem; color: white; font-size: 1.15rem; font-weight: 700; text-decoration: none; }
  .sidebar-lockup { display: block; width: 8.25rem; height: auto; }
  .sidebar-logo-plate { display: grid; width: auto; max-width: 8.25rem; height: 2.4rem; place-items: center; padding: .2rem .35rem; border-radius: .45rem; background: #fff; }
  .sidebar-logo-plate img { width: auto; height: 2rem; max-width: 7.6rem; object-fit: contain; }
  .sidebar-brand-text { overflow: hidden; max-width: 100%; text-overflow: ellipsis; white-space: nowrap; }
  .sidebar-powered { margin: 0 .35rem .7rem; color: #9ca6b4; font-size: .72rem; }
  .sidebar-choosers { display: grid; gap: .45rem; margin: 0 .25rem 1rem; }
  .charity-chooser { position: relative; z-index: 2; margin: 0; }
  .charity-chooser[open] { z-index: 6; }
  .charity-chooser-trigger {
    display: grid; min-height: 2.55rem; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .45rem; padding: .7rem .8rem; border: 1px solid #3f4d5e; border-radius: .45rem; background: #273444; color: #f5f6f7; font-size: .82rem; cursor: pointer; list-style: none;
  }
  .charity-chooser-trigger::-webkit-details-marker { display: none; }
  .charity-chooser-trigger span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .charity-chooser[open] .charity-chooser-trigger { border-color: #8ea0b5; border-radius: .45rem .45rem 0 0; }
  .charity-chooser[open] .charity-chooser-trigger span:last-child { transform: rotate(180deg); }
  .charity-chooser-popover {
    position: absolute; top: calc(100% - 1px); left: 0; width: max(100%, 13rem); overflow: hidden; padding: .45rem; border: 1px solid #3f4d5e; border-radius: 0 .45rem .45rem .45rem; background: #273444; box-shadow: 0 14px 32px rgba(0,0,0,.32);
  }
  .charity-chooser-search {
    width: 100%; min-height: 2.35rem; padding: .45rem .6rem; border: 1px solid #526174; border-radius: .35rem; background: #1f2b39; color: white; font-size: .8rem;
  }
  .charity-chooser-search::placeholder { color: #aab4c1; }
  .charity-chooser-search[hidden], .charity-chooser-options form[hidden], .charity-chooser-empty[hidden] { display: none; }
  .charity-chooser-options { max-height: min(18rem, 50vh); overflow-y: auto; overscroll-behavior: contain; padding-top: .3rem; }
  .charity-chooser-options form { margin: 0; }
  .charity-chooser-options button {
    display: grid; width: 100%; gap: .08rem; margin: 0; padding: .5rem .55rem; border: 0; border-radius: .35rem; background: transparent; color: #f5f6f7; font-size: .8rem; text-align: left;
  }
  .charity-chooser-options button:hover:not(:disabled),
  .charity-chooser-options button:focus-visible { background: #354355; }
  .charity-chooser-options button:disabled { color: #dfe4ea; cursor: default; opacity: .72; }
  .charity-chooser-options small { color: #aab4c1; font-size: .68rem; }
  .charity-chooser-empty { margin: .35rem 0 0; padding: .55rem; color: #c5ccd5; font-size: .75rem; text-align: center; }
  .desktop-nav { display: grid; gap: .25rem; }
  .desktop-nav-admin {
    display: grid;
    gap: .25rem;
    margin-top: .55rem;
    padding-top: .85rem;
    border-top: 1px solid #354252;
  }
  .desktop-nav-label {
    margin: 0 .8rem .2rem;
    color: #9ca6b4;
    font: 650 .68rem/1.2 var(--font-sans);
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  .desktop-nav a { position: relative; display: grid; grid-template-columns: 1.2rem 1fr auto; align-items: center; gap: .65rem; min-height: 2.75rem; padding: .65rem .8rem; border-radius: .6rem; color: #bfc6cf; font-size: .95rem; font-weight: 600; text-decoration: none; }
  .desktop-nav a.is-active { background: #303c4b; color: white; }
  .desktop-nav a.is-active::before { position: absolute; left: -.85rem; width: .18rem; height: 1.5rem; border-radius: 0 .2rem .2rem 0; background: var(--accent); content: ""; }
  .desktop-nav svg { width: 1.15rem; height: 1.15rem; }
  .desktop-nav b { min-width: 1.3rem; border-radius: 1rem; background: #665126; color: #f5d88e; font-size: .72rem; text-align: center; }
  .sidebar-account { position: relative; margin-top: auto; padding-top: .75rem; border-top: 1px solid #354252; }
  .sidebar-account form { margin: 0; }
  .account-trigger { display: grid; width: 100%; grid-template-columns: 2rem 1fr auto; align-items: center; gap: .55rem; border: 0; background: transparent; color: white; text-align: left; font-size: .92rem; }
  .account-trigger small { display: block; color: #9ca6b4; font-size: .75rem; }
  .account-avatar { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: #f4e4b9; color: #9b6814; font-weight: 700; }
  .account-menu { position: absolute; right: -.25rem; bottom: calc(100% + .7rem); left: -.25rem; overflow: hidden; padding: .45rem; border-radius: .75rem; background: white; box-shadow: 0 12px 35px rgba(0,0,0,.25); }
  .account-menu a, .account-menu button { display: flex; align-items: center; width: 100%; gap: .6rem; padding: .75rem; border: 0; border-radius: .45rem; background: transparent; color: var(--ink); text-decoration: none; }
  .account-menu a { background: var(--sand); }
  .account-menu form { margin-top: .35rem; padding-top: .35rem; border-top: 1px solid var(--line); }
  .account-menu button { color: var(--danger); }
  .flash-toasts {
    top: 4.6rem;
    right: 1.5rem;
    left: auto;
    width: min(22rem, calc(100vw - var(--sidebar) - 2.5rem));
  }
  .flash-toast { width: 100%; }
  .desktop-utility { display: flex; min-height: 4.25rem; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 8rem .7rem 2rem; border-bottom: 1px solid var(--line); background: var(--paper); }
  .desktop-utility strong, .desktop-utility small { display: block; }
  .desktop-utility strong { font-size: 1.35rem; letter-spacing: -.015em; }
  .desktop-utility small { color: var(--muted); font-size: .9rem; }
  .desktop-utility small:empty { display: none; }
  .desktop-utility-actions:empty { display: none; }
  .desktop-utility .charities-create,
  .desktop-utility .charity-open,
  .desktop-utility .items-new-class {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: .4rem 1.05rem;
    border: 0;
    border-radius: 999px;
    background: var(--forest);
    color: white;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
  }
  .platform-context { min-width: 0; flex: 0 0 auto; padding: .5rem 5.25rem .5rem 1.15rem; }
  .shell-aligned { margin: 0; }
  .mobile-header { position: fixed; top: 0; right: .75rem; z-index: 40; width: auto; height: 4.25rem; min-height: 4.25rem; margin: 0; padding: 0; background: transparent; backdrop-filter: none; }
  .mobile-brand, .settings-trigger { display: none; }
  .notification-trigger,
  .header-actions .items-plus { width: 2.9rem; height: 2.9rem; padding: 0; }
  .app-main {
    width: 100%;
    max-width: none;
    min-height: 0;
    min-width: 0;
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    margin: 0;
    padding: 1rem 1.15rem 2rem;
  }
  .items-page .app-main,
  .lists-page .app-main { overflow: hidden; }
  .charities-page .app-main {
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 1.25rem 2rem 1.75rem;
  }
  .charities-summary {
    grid-template-columns: minmax(0, 1fr) minmax(12.5rem, 15.5rem);
    align-items: stretch;
  }
  .charities-summary-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .charities-summary-ai { display: grid; align-content: center; }
  .charities-page .charity-list {
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
  }
  .charity-manage-page .app-main {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    padding: 1.25rem 2rem 1.75rem;
  }
  .charity-manage-page .manage-ledger {
    position: relative;
    top: auto;
    z-index: 2;
    margin-left: -2rem;
    margin-right: -2rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
  .charity-manage-page .manage-ledger::before { content: none; }
  .charity-manage-page .charity-manage-layout {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .charity-manage-heading,
  .charity-manage-mobile-open { display: none; }
  .charity-manage-layout {
    grid-template-columns: 1fr;
    grid-template-areas: unset;
    align-items: start;
    gap: 2rem;
  }
  .manage-stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .manage-fact-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .manage-look-layout { grid-template-columns: minmax(0, 1fr) minmax(16rem, 24rem); align-items: start; }
  .manage-plan-grid { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .manage-safety-actions { grid-template-columns: 1fr 1fr; }
  .manage-scheme-grid,
  .manage-scheme-grid.theme-swatches { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .manage-add-row { grid-template-columns: minmax(0, 1fr) 10rem auto; align-items: end; }
  .manage-person-head {
    grid-template-columns: 2.2rem minmax(0, 1fr) minmax(12rem, auto) 1rem;
    align-items: center;
  }
  .manage-person-activity {
    grid-column: auto;
    justify-self: end;
    text-align: right;
    max-width: 18rem;
  }
  .manage-person-head .people-caret { grid-column: auto; }
  .manage-person-editor {
    grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr);
    align-items: start;
  }
  .manage-person-role-field { grid-column: 1; }
  .manage-person-shops { grid-column: 2; grid-row: 1 / span 3; }
  .manage-person-email-fold { grid-column: 1; }
  .manage-person-remove { grid-column: 1; align-self: end; }
  .manage-person-save { grid-column: 2; justify-self: end; align-self: end; }
  .manage-people-page .people-invite-top { grid-template-columns: minmax(9rem,.8fr) minmax(14rem,1fr) 12rem auto; align-items: end; }
  .shop-metrics-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
  .shop-metric { min-height: 8.75rem; padding: 1.1rem 1.15rem 1.15rem; }
  .charity-manage-metrics { grid-area: metrics; }
  .charity-identity { grid-area: auto; margin-top: 0; }
  .charity-identity-grid {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 24rem);
    align-items: start;
  }
  .charity-identity-main {
    display: grid;
    gap: 1.25rem;
    align-content: start;
    min-width: 0;
  }
  .charity-identity .settings-appearance,
  .charity-identity .settings-advanced,
  .charity-identity .charity-identity-side { order: unset; }
  .charity-identity .settings-preview-col { grid-column: auto; grid-row: auto; }
  .charity-people {
    flex: 1 1 auto;
    align-content: start;
  }
  .charity-person {
    grid-template-columns: 6.5rem minmax(12rem, 1fr) minmax(11rem, 16rem) auto;
    align-items: center;
    gap: .65rem 1rem;
    padding: .85rem 1.1rem;
  }
  .charity-person-head { display: contents; }
  .charity-person-head > span { grid-column: 1; }
  .charity-person-head > form { grid-column: 4; grid-row: 1; justify-self: end; }
  .charity-person-email { grid-column: 2; }
  .charity-person-role { grid-column: 3; }
  .charity-person:not(:has(.charity-person-role)) .charity-person-email { grid-column: 2 / 4; }
  .charity-person-email input,
  .charity-person-role select,
  .charity-person-email button,
  .charity-person-role button {
    min-height: 2rem;
    border-radius: .5rem;
    font-size: .88rem;
  }
  .charity-person-email button,
  .charity-person-role button { padding: .3rem .75rem; }
  .charity-manage-aside { gap: 1rem; }
  .charity-manage-card { padding: 1.05rem 1.1rem; }
  .charity-manage-card input,
  .charity-manage-card select,
  .charity-manage-card button { min-height: 2.25rem; }
  .items-page .items-layout,
  .lists-page .lists-desk {
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
  }
  .items-page .items-layout > *,
  .lists-page .lists-desk > * {
    min-height: 0;
    min-width: 0;
  }
  .app-dock { display: none; }
  .ui-page-title { font-family: var(--font-sans); font-size: 1.35rem; letter-spacing: 0; }
  .ui-lede { font-size: .9rem; }
  .ui-card { --radius-card: .75rem; }
  .mobile-only, .sheet-handle { display: none !important; }
}

/* Price dashboard and capture */
.dashboard-greeting { margin-bottom: 1.35rem; }
.dashboard-tickets { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.dashboard-tickets a { text-decoration: none; }
.desktop-metrics { display: none; }
.dashboard-grid { display: grid; gap: 1.8rem; }
.camera-card { position: relative; overflow: hidden; padding: 1.25rem; }
.camera-surface {
  position: relative; display: grid; width: 100%; min-height: 14.8rem; margin: 0; padding: 1.15rem .9rem; place-content: center; justify-items: center; gap: .55rem; overflow: hidden; border: 0; border-radius: 1.25rem; background: linear-gradient(145deg,#182534,#253246); color: white; font: inherit; cursor: pointer; text-align: center; appearance: none; -webkit-appearance: none;
}
.camera-surface:focus,
.camera-surface:focus-visible { outline: 3px solid #70a7d8; outline-offset: 4px; }
.camera-surface svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.camera-surface strong { font-size: 1rem; }
.camera-surface small { color: #aeb5c0; font: .84rem ui-monospace, monospace; }
.camera-corner { position: absolute; width: 1.65rem; height: 1.65rem; border-color: #aeb5c0; }
.camera-corner.top-left { top: 1rem; left: 1rem; border-top: 3px solid; border-left: 3px solid; border-radius: .35rem 0 0; }
.camera-corner.top-right { top: 1rem; right: 1rem; border-top: 3px solid; border-right: 3px solid; border-radius: 0 .35rem 0 0; }
.camera-corner.bottom-left { bottom: 1rem; left: 1rem; border-bottom: 3px solid; border-left: 3px solid; border-radius: 0 0 0 .35rem; }
.camera-corner.bottom-right { right: 1rem; bottom: 1rem; border-right: 3px solid; border-bottom: 3px solid; border-radius: 0 0 .35rem; }
.camera-copy { padding: 1.15rem .35rem .25rem; text-align: center; }
.camera-copy h2 { margin: 0; font: 650 1.45rem var(--font-sans); }
.camera-copy p { margin: .45rem 0 0; color: #596270; line-height: 1.4; }
.desktop-copy { display: none; }
.preview-panel, .crop-panel { margin-top: 1rem; }
.preview-panel:not(.hidden), .crop-panel:not(.hidden) { display: grid; gap: .75rem; }
.preview-panel img { width: 100%; max-height: 20rem; border-radius: 1rem; background: #101820; object-fit: contain; }
.crop-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.crop-panel p { margin: 0; color: var(--muted); }
.activity-section > h2 { margin-bottom: .75rem; }
.activity-section.ui-card { padding: 1rem; }
.activity-list { margin: 0; padding: 0; list-style: none; }
.activity-list li { display: grid; grid-template-columns: 2.7rem minmax(0,1fr); align-items: center; gap: .75rem; padding: .75rem 0; border-top: 1px solid var(--line); }
.activity-list li:first-child { border-top: 0; }
.activity-list a { color: inherit; text-decoration: none; }
.activity-list strong, .activity-list small { display: block; }
.activity-list small { margin-top: .15rem; color: var(--muted); font: .78rem ui-monospace, monospace; }
.activity-icon { display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border-radius: .65rem; background: var(--tan); color: color-mix(in srgb,var(--warning) 60%,var(--ink)); font-size: 1.3rem; }
.activity-icon.is-success { background: var(--sage); color: var(--accent-deep); }
.activity-list .empty-row { display: block; color: var(--muted); text-align: center; }
.capture-page { display: grid; max-width: 42rem; margin: auto; gap: 1.25rem; }
.archive-banner { margin-bottom: 1rem; padding: 1rem; border-radius: 1rem; background: var(--tan); }

@media (min-width: 900px) {
  /* The utility bar and metric cards carry the visible desktop title, but the
     dashboard still needs its one page-level heading in the accessibility tree. */
  .price-dashboard .dashboard-greeting { margin: 0; }
  .price-dashboard .dashboard-greeting .ui-lede,
  .price-dashboard .dashboard-greeting .dashboard-tickets { display: none; }
  .price-dashboard .dashboard-greeting .ui-page-title {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .desktop-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-bottom: .8rem; }
  .desktop-metrics a { display: grid; gap: .1rem; padding: .9rem 1rem; color: inherit; text-decoration: none; }
  .desktop-metrics strong { font-size: 1.4rem; }
  .desktop-metrics a:first-child strong { color: color-mix(in srgb,var(--warning) 60%,var(--ink)); }
  .desktop-metrics a:nth-child(2) strong { color: var(--accent-deep); }
  .dashboard-grid { grid-template-columns: minmax(0, 1.65fr) minmax(16rem, 1fr); align-items: start; gap: .8rem; }
  .camera-card { padding: .8rem; border-radius: .75rem; }
  .camera-surface { min-height: 18rem; border-radius: .65rem; }
  .camera-copy { text-align: left; padding: .6rem 0 0; }
  .camera-copy h2 { font: 700 1.05rem var(--font-sans); }
  .camera-copy p { margin-top: .2rem; font-size: .85rem; }
  .mobile-copy { display: none; }
  .desktop-copy { display: inline; }
  .activity-section.ui-card { min-height: 18rem; padding: .8rem; border-radius: .75rem; }
  .activity-list li { grid-template-columns: 2rem minmax(0,1fr); gap: .55rem; padding: .48rem 0; }
  .activity-icon { width: 2rem; height: 2rem; border-radius: .45rem; font-size: 1rem; }
  .activity-list strong { font-size: .82rem; }
  .activity-list small { font-size: .72rem; }
  .capture-page { max-width: 50rem; }
}

.file-button input { display: none; }

#crop-canvas {
  width: 100%;
  background: #111;
  border-radius: 12px;
  touch-action: none;
}

.picker { position: relative; z-index: 1; }
.picker.is-open { z-index: 80; }
.picker-selected {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 0.45rem;
}
.picker-selected:empty { display: none; }
.picker[data-picker-hide-search-when-filled="1"]:has(.picker-chip) [data-picker-search],
.picker[data-picker-hide-search-when-filled="1"]:has(.picker-chip) [data-category-search],
.picker[data-picker-hide-search-when-filled="1"].is-filled [data-picker-search],
.picker[data-picker-hide-search-when-filled="1"].is-filled [data-category-search] { display: none; }
.picker-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  max-width: 100%;
  padding: 0.35rem 0.55rem 0.35rem 0.7rem;
  border-radius: 999px;
  background: var(--ink);
  color: white;
  font-weight: 650;
  line-height: 1.25;
  white-space: normal;
}
.picker-chip:not(:has(.picker-remove)) { padding-right: 0.7rem; }
.picker-remove {
  width: auto;
  margin: 0;
  padding: 0 0.25rem;
  border: 0;
  background: transparent;
  color: #c7ccd3;
  font-size: 1.1rem;
  line-height: 1;
}
.picker-results {
  position: absolute;
  top: calc(100% + 0.3rem);
  left: 0;
  right: 0;
  z-index: 90;
  max-height: 13.5rem;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0;
  display: none;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 16px 36px rgba(36, 28, 22, 0.12);
}
.picker-results[hidden] { display: none !important; }
.picker.is-open .picker-results:not([hidden]) { display: grid; }
.picker-hint {
  margin: 0;
  padding: 0.8rem 1rem;
  color: var(--muted);
}
.picker-option,
button.picker-option {
  width: 100%;
  margin: 0;
  padding: 0.75rem 1rem;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: inherit;
  font-weight: 600;
  justify-content: flex-start;
  text-align: left;
  overflow-wrap: anywhere;
}
.picker-option.is-active,
.picker-option:hover { background: var(--sand); }

.suggestions { margin-top: 0.5rem; display: grid; gap: 0.5rem; }
.suggestion {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0.6rem;
  padding: 0.5rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  color: inherit;
  text-decoration: none;
}
.suggestion img { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; }

.match-shell { position: relative; min-width: 0; max-width: 100%; }
.matches {
  list-style: none;
  display: flex;
  align-items: stretch;
  gap: 1rem;
  padding: 0 12% 0.6rem 0;
  margin: 0;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.match-slide {
  flex: 0 0 82%;
  display: flex;
  scroll-snap-align: start;
}
.match-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100%;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(36, 28, 22, 0.07);
}
.match-card img, .match-photo {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--sand);
  flex: 0 0 auto;
}
.match-copy {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1;
  padding: 1rem 1.05rem 1.2rem;
}
.match-copy strong {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.8em;
}
.rank {
  position: absolute;
  top: 0.7rem;
  left: 0.7rem;
  z-index: 2;
  display: inline-flex;
  width: max-content;
  max-width: calc(100% - 1.4rem);
  margin: 0;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--card) 88%, white);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
}
.dots { display: flex; justify-content: center; gap: 0.4rem; margin: 0.8rem 0 1.2rem; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: #d3c2ab; }
.dot.active { background: var(--ink); }
.carousel-nav {
  display: grid;
  place-items: center;
  position: absolute;
  top: 42%;
  width: 2.4rem;
  height: 2.4rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: var(--sand);
  color: var(--ink);
  font-size: 1.4rem;
  cursor: pointer;
}
.carousel-nav.prev { left: -0.2rem; }
.carousel-nav.next { right: -0.2rem; }
.carousel-nav:disabled { opacity: 0.35; }

.lists-desk {
  display: grid;
  gap: 1.5rem;
  width: 100%;
}

@media (min-width: 900px) {
  .carousel-hint, .dots, .carousel-nav { display: none; }
  .matches {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    overflow: visible;
    padding: 0;
    scroll-snap-type: none;
  }
  .match-slide { flex: none; }
  body.is-signed-in { padding-bottom: 0; }
  .app-nav { display: flex !important; }
  .lists-modal-scrim {
    background: color-mix(in srgb, var(--forest) 46%, transparent);
  }
  .lists-modal-wrap { align-items: center !important; padding: 1.5rem !important; }
  .lists-modal {
    width: min(36rem, calc(100% - 2rem));
    max-height: min(42rem, 86dvh);
    border: 1px solid var(--line);
    border-radius: 20px !important;
    box-shadow:
      0 2px 6px rgba(29, 41, 56, .08),
      0 18px 40px rgba(29, 41, 56, .22),
      0 40px 72px rgba(29, 41, 56, .16);
  }
}

/* Canonical Items queue/editor composition */
.items-detail { display: none; min-width: 0; }
.items-detail.items-detail-requested { display: block; }
.items-queue-behind-detail { display: none; }
.item-editor { min-width: 0; overflow: hidden; }
.item-editor-form { min-width: 0; }
.item-editor-fields { min-width: 0; margin: 0; padding: 0; border: 0; }
.item-editor-fields:disabled { opacity: .82; }
.item-editor-body,
.item-editor-stack { display: grid; min-width: 0; gap: 1rem; }
.item-editor-left, .item-editor-right { min-width: 0; }
.item-photo-hero {
  position: relative;
  display: grid;
  min-height: 15rem;
  overflow: hidden;
  place-items: center;
  border-radius: 1rem;
  background: var(--sand);
  color: var(--muted);
  font-size: 2rem;
}
.item-photo-hero img { width: 100%; height: 100%; min-height: 15rem; object-fit: cover; object-position: center; }
.item-source .item-who { margin-left: .15rem; }
.item-who {
  position: relative;
  display: inline;
  cursor: help;
  border-bottom: 1px dotted color-mix(in srgb, var(--muted) 70%, transparent);
}
.item-who-tip {
  position: absolute;
  left: 0;
  bottom: calc(100% + .4rem);
  z-index: 20;
  width: max-content;
  max-width: 16rem;
  padding: .4rem .6rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: var(--card);
  color: var(--ink);
  box-shadow: var(--shadow-card);
  font-family: var(--font-sans, inherit);
  font-size: .78rem;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0;
  line-height: 1.3;
  text-transform: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.item-who:hover .item-who-tip,
.item-who:focus-visible .item-who-tip { opacity: 1; visibility: visible; }
.item-history:not(.item-fold) { border-top: 1px solid var(--line); }
.detail-secondary .item-history { margin-top: 1.15rem; padding-top: .15rem; }
.item-history:not(.item-fold) summary {
  display: flex;
  min-height: 2.8rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  font-weight: 700;
}
.item-history summary span { color: var(--muted); font-size: .78rem; font-weight: 400; }
.item-history:not(.item-fold) .audit { margin: 0; padding: 0 0 .75rem 1.2rem; }
.detail-secondary { padding: 1rem; border-top: 1px solid var(--line); }
.detail-secondary > h2 { margin: 0; font-size: 1rem; }

@media (max-width: 899px) {
  .items-page {
    --item-action-dock-height: 4.65rem;
  }
  .items-page .app-main,
  .items-page .items-layout,
  .items-page .items-detail,
  .items-page .item-editor-form {
    max-width: 100%;
    min-width: 0;
  }
  .items-detail-requested .item-editor {
    overflow: visible;
  }
  .items-page .item-editor,
  .items-page .item-editor-body,
  .items-page .item-editor-stack,
  .items-page .item-details-body,
  .items-page .price-rules,
  .items-page .price-rule-card {
    max-width: 100%;
    min-width: 0;
  }
  .items-page .price-rule-card {
    position: relative;
    padding-right: 2.55rem;
  }
  .items-page .price-rule-card-actions {
    display: none;
  }
  .items-page .price-rule-card-edit {
    display: grid;
    place-items: center;
    position: absolute;
    top: .4rem;
    right: .4rem;
    width: 2.2rem;
    height: 2.2rem;
    padding: 0;
    border: 0;
    border-radius: .5rem;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
  }
  .items-page .price-rule-card-edit svg {
    width: 1.15rem;
    height: 1.15rem;
  }
  .items-page .price-rule-card-top {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: .45rem .6rem;
  }
  .items-page .price-rule-card-sum {
    flex: 1 1 11rem;
    flex-wrap: wrap;
    row-gap: .35rem;
  }
  .items-page .price-rule-photos,
  .items-page .price-rule-photo-open,
  .items-page .price-rule-count,
  .items-page .price-rule-card-actions {
    flex: none;
  }
  .items-page .item-editor input,
  .items-page .item-editor select,
  .items-page .item-editor textarea {
    max-width: 100%;
    min-width: 0;
  }
  .items-page .item-editor input[type="file"] {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .items-page:has(.item-action-dock:not([hidden])) .item-editor {
    padding-bottom: calc(var(--item-action-dock-height) + 1rem);
  }
  .items-detail-requested .item-back { display: block; }
  .items-detail-requested .item-editor-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: .75rem;
    margin: 0 0 1rem;
    padding: 0 0 1rem;
    border-bottom: 1px solid var(--line);
  }
  .items-detail-requested .item-editor-head h1 { margin: 0; overflow-wrap: anywhere; }
  .items-detail-requested .item-title-row { flex-wrap: wrap; }
  .items-detail-requested .item-head-meta { margin-left: auto; }
  .items-detail-requested .item-editor-body,
  .items-detail-requested .item-editor-stack { padding: 0; }
  .items-page .item-action-dock:not([hidden]) {
    position: fixed;
    left: 0;
    right: auto;
    bottom: calc(var(--nav-height) + env(safe-area-inset-bottom));
    z-index: 26;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: .7rem var(--page-pad);
    background: var(--paper);
    box-shadow: 0 -8px 24px rgba(29, 41, 56, .08);
  }
  .items-page .app-dock {
    width: 100%;
    max-width: 100%;
    right: auto;
  }
  .app-dock a,
  .app-dock button { min-width: 0; }
}

@media (min-width: 900px) {
  .schema-page .app-main { padding: 1.35rem 2rem 2.5rem; }
  .items-page .app-main { padding: 1.25rem 2rem 1.5rem; }
  .items-page .items-layout {
    grid-template-columns: minmax(21rem, 24rem) minmax(0, 1fr);
    gap: 1.35rem;
  }
  .items-page .items-queue {
    display: flex;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
  }
  .items-page .item-list-scroll {
    min-height: 0;
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
  .items-page .item-card.is-selected {
    border-color: var(--ink);
    background: #fff;
    color: var(--ink);
    box-shadow: var(--shadow-card);
  }
  .items-page .item-card.is-selected p,
  .items-page .item-card.is-selected .item-side small { color: var(--muted); }
  .items-page .item-card-copy {
    min-width: 0;
    overflow: hidden;
  }
  .items-page .item-card-copy h2,
  .items-page .item-card-copy p {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .items-page .items-detail,
  .items-page .items-detail.items-detail-requested {
    display: block;
    min-height: 0;
    overflow: hidden;
  }
  .items-page .items-empty-detail {
    display: grid;
    height: 100%;
    min-height: 0;
    place-content: center;
    justify-items: center;
    padding: 1rem;
  }
  .items-page .item-editor {
    height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
  .items-page .item-editor-form {
    max-width: 36rem;
    width: 100%;
    min-height: 100%;
    margin-inline: auto;
  }
  .items-page .item-editor-head {
    position: sticky;
    top: 0;
    z-index: 10;
    background: var(--card);
  }
  .items-page .item-head-meta {
    align-items: center;
    min-height: 1.85rem;
    padding-top: 0;
  }
  .items-page .desktop-save,
  .items-page .ui-primary.desktop-save {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.85rem;
    height: 1.85rem;
    padding: .25rem .9rem;
    font-size: .82rem;
  }
  .items-page .desktop-save[hidden],
  .items-page .ui-primary.desktop-save[hidden] {
    display: none !important;
  }
  .items-page .item-editor-head h1,
  .items-page .item-editor-head h2 { margin: 0; font-size: 1.35rem; }
  .items-page .item-editor-body,
  .items-page .item-editor-stack {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.15rem;
    padding: 1.35rem 1.4rem 2rem;
    align-items: start;
  }
  .items-page .item-photo-hero {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    margin-bottom: 0;
    border-radius: .9rem;
  }
  .items-page .item-photo-hero img { min-height: 0; }
  .items-page .detail-secondary { margin: 0; }
  .items-page .admin-gallery { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

@keyframes fade-up {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 900px) {
  .app-main { animation: fade-up .28s ease; }
  .charity-manage-page .app-main,
  .charity-manage-page .manage-ledger { animation: none; }
  .charity-manage-page #manage-panel-root { animation: fade-up .28s ease; }
  .desktop-metrics a,
  .dashboard-grid > *,
  .person-list .person-card,
  .lists-desk > *,
  .charity-list > li,
  .charity-person,
  .charity-manage-card {
    animation: fade-up .28s ease both;
  }
  .desktop-metrics a:nth-child(2),
  .dashboard-grid > *:nth-child(2),
  .person-card:nth-child(2),
  .lists-desk > *:nth-child(2),
  .charity-list > li:nth-child(2),
  .charity-person:nth-child(2),
  .charity-manage-card:nth-child(2) { animation-delay: .05s; }
  .desktop-metrics a:nth-child(3),
  .dashboard-grid > *:nth-child(3),
  .person-card:nth-child(3),
  .lists-desk > *:nth-child(3),
  .charity-list > li:nth-child(3),
  .charity-person:nth-child(3),
  .charity-manage-card:nth-child(3) { animation-delay: .1s; }
  .charity-manage-page #manage-panel-root .charity-manage-card,
  .charity-manage-page #manage-panel-root .charity-person { animation: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* Volunteer price flow */
.price-flow .app-main {
  max-width: 58rem;
  padding-top: .1rem;
  padding-bottom: calc(var(--nav-height) + 2.5rem + env(safe-area-inset-bottom));
}
.price-flow-shell,
.capture-page {
  display: grid;
  width: 100%;
  max-width: 52rem;
  margin: 0 auto;
  gap: 1.15rem;
}
.price-stepper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
  margin: 0 0 .6rem;
}
.price-step { min-width: 0; }
.price-step > span {
  display: block;
  height: .2rem;
  margin-bottom: .45rem;
  border-radius: 999px;
  background: var(--sand);
}
.price-step strong {
  display: block;
  color: var(--muted);
  font: 700 .67rem/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.price-step.is-reached > span { background: var(--flow-accent); }
.price-step.is-current strong,
.price-step.is-reached:not(.is-current) strong { color: var(--ink); }
.price-flow-heading { margin-bottom: .15rem; }
.flow-back {
  width: max-content;
  color: var(--flow-muted);
  font-weight: 700;
  text-decoration: none;
}

/* Capture */
.price-capture .camera-card { position: relative; padding: 1.15rem; }
.price-capture .camera-surface {
  min-height: 0;
  height: calc(100dvh - 20rem - env(safe-area-inset-bottom, 0px));
  max-height: calc(100dvh - 14rem - env(safe-area-inset-bottom, 0px));
}
.capture-status {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: .85rem;
  padding: 1.25rem;
  border-radius: inherit;
  background: color-mix(in srgb, var(--forest) 74%, transparent);
  color: white;
  text-align: center;
  backdrop-filter: blur(8px);
}
.capture-status[hidden] { display: none; }
.capture-status-ring {
  width: 2.5rem;
  height: 2.5rem;
  border: 2.5px solid color-mix(in srgb, var(--sage) 40%, transparent);
  border-top-color: var(--sage);
  border-radius: 50%;
  box-shadow: 0 0 0 .35rem color-mix(in srgb, var(--sage) 16%, transparent);
  animation: auth-spin .8s linear infinite, capture-pulse 1.6s ease-in-out infinite;
}
.capture-status strong {
  max-width: 14rem;
  font: 650 1.1rem/1.25 var(--font-sans);
}
@keyframes capture-pulse {
  50% { box-shadow: 0 0 0 .7rem color-mix(in srgb, var(--sage) 6%, transparent); }
}
.camera-surface[hidden] { display: none; }
.camera-preview {
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  background: var(--sand);
}
.tap-prompt {
  margin: 0;
  color: var(--ink);
  font-weight: 650;
  text-align: center;
}
.tap-prompt small {
  display: block;
  margin-top: .2rem;
  color: var(--muted);
  font-weight: 500;
}
.tap-overlay {
  position: absolute;
  left: 0;
  top: 0;
  cursor: crosshair;
  touch-action: none;
}
.preview-panel {
  margin: 0;
  scroll-margin-top: .75rem;
  scroll-margin-bottom: calc(var(--nav-height) + .75rem);
}
.preview-panel:not(.hidden) { gap: 1rem; }
.preview-panel .camera-preview img {
  display: block;
  width: 100%;
  height: auto;
  max-height: calc(100dvh - var(--nav-height) - 11rem - env(safe-area-inset-bottom, 0px));
  border-radius: 0;
  background: var(--sand);
  object-fit: contain;
}
.camera-preview .camera-corner { color: rgba(255,255,255,.82); }
.retake-chip {
  position: absolute;
  top: .75rem;
  right: .75rem;
  min-height: 2.2rem;
  padding: .35rem .75rem;
  border: 0;
  border-radius: 999px;
  background: rgba(29,41,56,.76);
  color: white;
  font-weight: 700;
  backdrop-filter: blur(8px);
}
.preview-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.preview-actions .ui-primary,
.preview-actions .ui-secondary { width: 100%; line-height: 1.05; }
.camera-help {
  display: none;
  margin: .1rem 0 0;
  color: var(--muted);
  text-align: center;
}
.has-photo .camera-help { display: block; }
.barcode-embed {
  display: grid;
  gap: .75rem;
  margin-top: .35rem;
}
.barcode-embed[hidden] { display: none; }
.barcode-back {
  width: max-content;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--flow-muted, var(--muted));
  font-weight: 700;
  cursor: pointer;
}
.barcode-video {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: .8rem;
  background: #111;
}
.barcode-snap {
  display: grid;
  justify-items: center;
  gap: .2rem;
  width: 100%;
  min-height: 6.5rem;
  padding: 1.1rem 1rem;
  border: 1px dashed color-mix(in srgb, var(--ink) 18%, var(--line));
  border-radius: .9rem;
  background: #111;
  color: #fff;
  cursor: pointer;
}
.barcode-snap strong {
  font: 650 1.05rem/1.25 var(--font-sans);
}
.barcode-snap small {
  color: rgba(255,255,255,.72);
  font-size: .88rem;
}
.barcode-embed.is-live .barcode-snap { display: none; }
.barcode-scan-status,
.barcode-pending {
  margin: 0;
  color: var(--flow-muted, var(--muted));
  font-size: .92rem;
  line-height: 1.4;
}
.barcode-pending { font-weight: 700; color: var(--ink); margin-bottom: .75rem; }
.unknown-barcode-card p { margin: .75rem 0 0; color: var(--muted); line-height: 1.45; }
.unknown-isbn-wait {
  margin: 0;
  padding: 2.25rem 1.25rem;
  text-align: center;
}
.unknown-isbn-wait-title {
  margin: .85rem 0 0;
  color: var(--ink);
  font: 650 1.15rem/1.25 var(--font-sans);
}
.unknown-book { margin: 0 0 1rem; }
.unknown-book-cover-frame {
  display: grid;
  place-items: center;
  min-height: 12rem;
  margin: 0 auto .85rem;
}
.unknown-book-cover-wait,
.unknown-book-cover-missing {
  display: grid;
  place-items: center;
  gap: .55rem;
  width: min(11rem, 55%);
  min-height: 12rem;
  padding: 1rem .75rem;
  border-radius: .85rem;
  background: var(--sand);
  color: var(--muted);
  text-align: center;
}
.unknown-book-cover-wait[hidden],
.unknown-book-cover-missing[hidden] {
  display: none;
}
.unknown-book-cover-wait p,
.unknown-book-cover-missing p {
  margin: 0;
}
.unknown-book-cover {
  display: block;
  width: min(11rem, 55%);
  max-height: 16rem;
  margin: 0 auto;
  border-radius: .85rem;
  object-fit: cover;
  background: var(--sand);
}
.unknown-book-cover[hidden] {
  display: none;
}
.unknown-book figcaption strong { display: block; font-size: 1.15rem; line-height: 1.25; }
.unknown-book figcaption p { margin: .35rem 0 0; }
.unknown-barcode-form .flow-label { margin: 0; }
.unknown-isbn-code { margin-top: .85rem; }
.unknown-isbn-code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .5rem;
  align-items: center;
  margin-top: .4rem;
}
.unknown-barcode-input {
  margin-top: 0;
  min-width: 0;
  font: 650 1.35rem/1.2 var(--font-mono);
  letter-spacing: .04em;
}
.unknown-isbn-check-again {
  min-height: 2.4rem;
  padding: 0 .7rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--accent-deep, var(--accent));
  font: 650 .85rem/1.2 var(--font-sans);
  white-space: nowrap;
}
.unknown-isbn-check-again:hover,
.unknown-isbn-check-again:focus-visible {
  text-decoration: underline;
}
.unknown-book-ask {
  margin: 1.25rem 0 0;
  font: 650 1.2rem/1.2 var(--font-sans);
}
.unknown-barcode-actions {
  display: grid;
  gap: .65rem;
  margin-top: 1.15rem;
}
.unknown-barcode-actions .ui-primary,
.unknown-barcode-actions .ui-secondary {
  width: 100%;
  min-height: 3.1rem;
}
.unknown-barcode-actions .capture-choice-cancel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.capture-choice {
  width: min(24.5rem, calc(100% - 2rem));
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--card);
  color: var(--ink);
  box-shadow: var(--shadow-card);
}
.capture-choice[open] { animation: app-confirm-in .2s ease-out; }
.capture-choice::backdrop {
  background: color-mix(in srgb, var(--forest) 38%, transparent);
}
.capture-choice[open]::backdrop { animation: app-confirm-backdrop-in .2s ease-out; }
.capture-choice-body { margin: 0; padding: 1.35rem 1.35rem 1.2rem; }
.capture-choice-kicker {
  margin: 0 0 .85rem;
  color: var(--muted);
  font: 800 .78rem/1.2 var(--font-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
}
.capture-choice-actions {
  display: grid;
  gap: .65rem;
}
.capture-choice-or {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: .75rem;
  margin: 0;
  color: var(--muted);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .06em;
}
.capture-choice-actions .ui-primary,
.capture-choice-actions .ui-secondary {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  width: 100%;
  min-height: 4.55rem;
  padding: .8rem 1.2rem .7rem;
  font-size: 1.02rem;
}
.capture-choice-icon {
  display: block;
  width: 1.7rem;
  height: 1.7rem;
  flex: 0 0 auto;
}
.capture-choice-icon.is-camera {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.capture-choice-icon.is-camera .capture-choice-flash {
  fill: currentColor;
  stroke: none;
}
.capture-choice-icon.is-barcode { fill: currentColor; }
.capture-choice-icon.is-search {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.price-book-hint {
  margin: .15rem 0 0;
  color: var(--flow-muted, var(--muted));
  font-size: .92rem;
  line-height: 1.45;
}
.price-book-hint-example {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: .12em;
  cursor: pointer;
}
.price-book-results {
  display: grid;
  gap: .55rem;
  margin: .15rem 0 0;
  padding: 0;
  list-style: none;
}
.price-book-hit.is-prior {
  border-style: dashed;
}
.price-book-rule.is-prior b {
  color: var(--muted, #5c5a57);
}
.price-book-hit {
  display: grid;
  gap: .65rem;
  width: 100%;
  padding: .9rem 1rem 1rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: var(--card);
  color: inherit;
  text-align: left;
}
.price-book-hit-head {
  display: grid;
  gap: .15rem;
}
.price-book-hit-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.price-book-hit-head strong {
  color: var(--ink);
  font: 750 1.08rem/1.3 var(--font-sans);
}
.price-book-open-item {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--card);
  color: var(--ink);
  text-decoration: none;
}
.price-book-open-item svg {
  display: block;
}
.price-book-open-item:hover,
.price-book-open-item:focus-visible {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
}
.price-book-hit-head span,
.price-book-hit-head small {
  color: var(--muted);
  font-size: .84rem;
  font-weight: 650;
  line-height: 1.35;
}
.price-book-rules {
  display: grid;
  gap: .4rem;
}
.price-book-rule {
  display: grid;
  grid-template-columns: 5.4rem minmax(0, 1fr);
  align-items: start;
  gap: .65rem;
  width: 100%;
  padding: .55rem .65rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: color-mix(in srgb, var(--paper, #f4f1ea) 70%, white);
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.price-book-rule.is-match {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, white);
}
.price-book-rule b {
  color: var(--ink);
  font: 800 1.12rem/1.2 var(--font-sans);
}
.price-book-rule span {
  color: var(--ink);
  font: 500 .9rem/1.35 var(--font-sans);
}
.price-book-key {
  font-weight: 750;
}
.price-book-hit-mark {
  background: color-mix(in srgb, var(--accent) 28%, #fff4c2);
  color: inherit;
  padding: 0 .12em;
  border-radius: .2em;
}
.capture-choice-or::before,
.capture-choice-or::after {
  content: "";
  height: 1px;
  background: var(--line);
}
.capture-choice-cancel {
  display: block;
  width: 100%;
  min-height: 2.6rem;
  margin: .55rem 0 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
  cursor: pointer;
}
.item-code-list { margin-top: .9rem; display: grid; gap: .55rem; }
.item-fold .item-code-list { margin-top: 0; }
.item-code-row { display: grid; gap: .25rem; }
.item-attach-class.is-isbn {
  border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
}
.item-attach-help {
  margin: 0 0 .85rem;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.45;
}
.item-attach-picker { margin-top: .15rem; }
.item-attach-class .picker-option {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.item-find-similar .picker-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .65rem 1rem;
}
.item-find-similar .picker-option:has(.picker-option-thumb) {
  grid-template-columns: 2.4rem minmax(0, 1fr) auto;
}
.item-find-similar .picker-option-thumb,
.item-find-similar .picker-chip-thumb {
  width: 2.4rem;
  height: 2.4rem;
  flex: 0 0 2.4rem;
  border-radius: .45rem;
  object-fit: cover;
  background: var(--sand);
}
.item-find-similar .picker-chip-thumb {
  width: 2.55rem;
  height: 2.55rem;
  flex: 0 0 2.55rem;
  border-radius: .5rem;
}
.item-attach-class .picker-option small {
  color: var(--muted);
  font-weight: 600;
}
.item-attach-picked-meta {
  color: var(--muted);
  font-weight: 600;
  font-size: .85rem;
}
.item-attach-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: .85rem;
}
.crop-panel { margin: 0; }

/* Match carousel and decision */
.match-decision-form { min-width: 0; }
.price-matches .matches {
  gap: 1rem;
  overflow-x: auto;
  padding: 0 18% .55rem 0;
  scroll-padding-left: 0;
  scroll-snap-type: x mandatory;
}
.price-matches .match-slide {
  display: flex;
  flex: 0 0 78%;
  min-width: 0;
  scroll-snap-align: start;
}
.price-matches .match-card {
  appearance: none;
  width: 100%;
  min-height: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1.1rem;
  background: white;
  color: var(--ink);
  text-align: left;
  box-shadow: var(--shadow-card);
}
.price-matches .match-card.is-selected { border-color: color-mix(in srgb, var(--flow-accent) 55%, var(--line)); }
.price-matches .match-card img,
.price-matches .match-photo {
  display: grid;
  width: 100%;
  aspect-ratio: 1.25 / 1;
  place-items: center;
  background: linear-gradient(145deg,#eeece5,#e6e2d8);
  color: #aaa89f;
}
.price-matches .match-card img { object-fit: cover; }
.price-matches .match-photo svg { width: 2.2rem; height: 2.2rem; fill: none; stroke: currentColor; stroke-width: 1.5; }
.price-matches .match-copy {
  display: grid;
  min-height: 3.4rem;
  gap: .55rem;
  justify-items: start;
  padding: .9rem 1rem;
}
.price-matches .match-copy strong { min-height: 0; font-size: 1.05rem; }
.price-matches .rank {
  background: rgba(29,41,56,.76);
  color: white;
  font: 700 .72rem ui-monospace, SFMono-Regular, Menlo, monospace;
}
.price-matches .dots { margin: .6rem 0 1.35rem; }
.price-matches .dot { width: .42rem; height: .42rem; background: #d6d7d4; }
.price-matches .dot.active { width: 1.1rem; border-radius: 999px; background: var(--flow-accent); }
.selected-match-bar {
  position: sticky;
  bottom: max(.65rem, env(safe-area-inset-bottom));
  z-index: 15;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: .8rem;
  margin: 1.25rem 0 0;
  padding: .8rem 1rem;
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  background: rgba(255,255,255,.94);
  box-shadow: 0 12px 32px rgba(29,41,56,.16);
  backdrop-filter: blur(12px);
}
.selected-match-bar p { min-width: 0; margin: 0; }
.selected-match-bar span,
.selected-match-bar strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.selected-match-bar span {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.selected-match-bar .ui-primary { min-height: 2.9rem; }
.match-refine {
  display: grid;
  gap: .75rem;
  padding: 1.15rem;
  border: 1px dashed #ccd0ce;
  border-radius: 1.2rem;
  background: rgba(255,255,255,.65);
}
.match-refine h2 { margin: 0; font: 650 1.2rem/1.15 var(--font-sans); }
.match-refine p { margin: 0; color: var(--flow-muted); line-height: 1.35; }
.match-refine .picker-results { top: auto; bottom: calc(100% + .3rem); }
.new-item-link {
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  text-align: center;
  text-decoration: none;
}
.clear-filter { color: var(--accent-deep); font-weight: 700; }
.match-empty { margin: 0; padding: 1.25rem; border-radius: 1.1rem; background: var(--sand); color: var(--muted); font-family: var(--font-prose); text-align: center; }
.match-waiting {
  margin: 0;
  padding: 1.5rem 1.25rem;
  border-radius: 1.1rem;
  background: var(--sand);
  color: var(--ink);
  text-align: center;
}
.match-waiting-spinner {
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  margin: 0 auto 0.75rem;
  border: 2px solid var(--line);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: auth-spin 0.7s linear infinite;
}

/* New item */
.your-photo-chip {
  display: inline-grid;
  width: max-content;
  grid-template-columns: 2.35rem auto;
  align-items: center;
  gap: .65rem;
  overflow: hidden;
  padding: .25rem .9rem .25rem .25rem;
  border-radius: 999px;
  background: var(--sand);
}
.your-photo-chip img { width: 2.35rem; height: 2.35rem; border-radius: 50%; object-fit: cover; }
.new-product-form { display: grid; gap: .55rem; }
.flow-label {
  display: block;
  margin: .85rem 0 0;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.flow-label span { font-weight: 400; letter-spacing: 0; text-transform: none; }
.flow-input {
  width: 100%;
  min-height: 3.25rem;
  padding: .7rem 1rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: white;
  color: var(--ink);
}
textarea.flow-input { min-height: 6rem; resize: vertical; }
.flow-field { margin-top: 0; }
.condition-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.condition-pills { display: flex; flex-wrap: wrap; gap: .6rem; }
.condition-pills input { position: absolute; opacity: 0; pointer-events: none; }
.condition-pills span {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  padding: .55rem 1rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: var(--flow-muted);
  font-weight: 700;
  cursor: pointer;
}
.condition-pills input:checked + span {
  border-color: var(--flow-accent);
  background: #e2f0ed;
  color: #174d48;
  box-shadow: inset 0 0 0 1px var(--flow-accent);
}
.condition-pills input:focus-visible + span { outline: 3px solid color-mix(in srgb,#397bbb 55%,transparent); outline-offset: 3px; }
.find-quiz-photo { display: none; }
.find-quiz-item-kicker { display: none; }
.find-quiz { display: grid; gap: 1.15rem; margin: 0; }
.find-quiz-progress {
  margin: 0;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--flow-muted, var(--muted));
}
.find-quiz-item {
  display: grid;
  grid-template-columns: 3.4rem 1fr;
  gap: .75rem;
  align-items: center;
  padding: .65rem .75rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: white;
}
.find-quiz-item img,
.find-quiz-item .match-photo {
  width: 3.4rem;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: .65rem;
  background: var(--sand, #eeece5);
}
.find-quiz-item-copy { min-width: 0; }
.find-quiz-item strong { display: block; font-size: 1.02rem; line-height: 1.3; }
.find-quiz-field { display: grid; gap: .55rem; }
.find-quiz-ask-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .7rem;
}
.find-quiz-ask {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: var(--display, inherit);
  font-size: 1.55rem;
  font-weight: 800;
  line-height: 1.2;
  color: var(--ink, inherit);
}
.find-quiz-help {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  width: auto;
  height: auto;
  margin: .15rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--ink);
  font: 750 .92rem/1.2 var(--font-sans);
  cursor: pointer;
}
.find-quiz-help span {
  display: grid;
  width: 1.15rem;
  height: 1.15rem;
  place-items: center;
  border-radius: 50%;
  background: #ededea;
  color: var(--ink);
  font-size: .72rem;
  font-weight: 800;
}
.find-quiz-help-dialog {
  width: min(24.5rem, calc(100% - 2rem));
  max-height: min(34rem, calc(100% - 2rem));
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--card, #fff);
  color: var(--ink);
  box-shadow: var(--shadow-card);
}
.find-quiz-help-dialog[open] { animation: app-confirm-in .2s ease-out; }
.find-quiz-help-dialog::backdrop {
  background: color-mix(in srgb, var(--forest) 38%, transparent);
}
.find-quiz-help-body { margin: 0; padding: 1.25rem 1.25rem 1.1rem; }
.find-quiz-help-body h3 {
  margin: 0 0 .85rem;
  font: 800 1.15rem/1.25 var(--font-sans);
}
.find-quiz-help-list {
  display: grid;
  gap: .85rem;
  margin: 0;
  max-height: min(22rem, 55vh);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.find-quiz-help-list div { margin: 0; }
.find-quiz-help-list dt {
  margin: 0;
  font-weight: 800;
}
.find-quiz-help-list dd {
  margin: .25rem 0 0;
  color: var(--ink);
  font: 500 1rem/1.45 var(--font-sans);
}
.find-quiz-help-close {
  display: block;
  width: 100%;
  min-height: 2.75rem;
  margin: 1rem 0 0;
  border: 1.5px solid var(--ink);
  border-radius: .85rem;
  background: #fff;
  color: var(--ink);
  font-weight: 800;
  cursor: pointer;
}
.find-quiz-choices {
  display: grid;
  grid-template-columns: 1fr;
  gap: .55rem;
  max-height: calc(5 * 3.35rem + 4 * .55rem);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.find-quiz-choices label { display: block; }
.find-quiz-choices span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.35rem;
  padding: .7rem 1rem;
  border-radius: .95rem;
  font-size: 1.08rem;
  font-weight: 800;
}
.find-quiz-skip {
  display: block;
  margin: 0;
  text-align: center;
  cursor: pointer;
}
.find-quiz-skip input { position: absolute; opacity: 0; pointer-events: none; }
.find-quiz-skip span {
  color: var(--flow-muted, var(--muted));
  font-size: .95rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .18em;
}
.find-quiz-filter { width: 100%; margin: 0; }
.find-quiz-field.is-search .condition-pills label[hidden] { display: none; }
.find-quiz-exits,
.find-quiz-back {
  display: grid;
  gap: .55rem;
  margin: .55rem 0 1.2rem;
}
.find-quiz-or {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: .75rem;
  margin: 0;
  color: var(--flow-muted, var(--muted));
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: lowercase;
}
.find-quiz-or::before,
.find-quiz-or::after {
  content: "";
  height: 1px;
  background: var(--line);
}
.find-quiz-again {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  text-decoration: none;
}
.match-retake {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  width: max-content;
  min-height: 2rem;
  margin: .1rem 0 .45rem;
  padding: 0;
  border-radius: 0;
  background: none;
  color: var(--ink);
  font-size: .92rem;
  font-weight: 550;
  text-decoration: none;
}
.match-retake svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.find-section-heading {
  display: grid;
  gap: .12rem;
}
.find-section-heading h1,
.find-section-heading h2,
.find-section-heading .ui-page-title {
  margin: 0;
  font: 800 1.4rem/1.12 var(--font-sans);
  letter-spacing: -.03em;
}
.find-section-heading p,
.find-section-heading .ui-lede {
  margin: 0;
  color: var(--flow-muted, var(--muted));
  font: 450 .92rem/1.3 var(--font-sans);
}
.find-places {
  display: grid;
  gap: .85rem;
  margin: 1.1rem 0 0;
}
.find-browse-chip-row legend {
  margin: 0;
  font-size: 1rem;
}
.find-places-list,
.find-browse-grid,
.find-browse-chips {
  list-style: none;
  margin: 0;
  padding: 0;
}
.find-places-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.2rem, 1fr));
  gap: .65rem;
}
.find-place-tile {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: .28rem;
  width: 100%;
  min-height: 7.2rem;
  padding: .38rem .28rem .4rem;
  border: 0;
  border-radius: 1rem;
  background: var(--card, #fff);
  box-shadow: 0 1px 0 var(--line), 0 8px 18px rgba(12, 18, 16, .06);
  color: inherit;
  font: inherit;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.find-place-icon {
  display: grid;
  width: 4.7rem;
  height: 4.7rem;
  place-items: center;
  overflow: hidden;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--ink) 7%, #fff);
}
.find-place-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.find-place-icon svg {
  width: 1.7rem;
  height: 1.7rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}
.find-place-tile strong {
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.2;
}
.find-place-tile.is-busy {
  opacity: .72;
  cursor: wait;
  pointer-events: none;
}
.find-place-tile.is-busy .find-place-icon {
  position: relative;
}
.find-place-tile.is-busy .find-place-icon::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 1.1rem;
  height: 1.1rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: auth-spin .7s linear infinite;
}
.find-browse {
  display: grid;
  gap: .85rem;
  margin-top: .25rem;
}
.find-filter-dock {
  position: sticky;
  top: var(--mobile-header-height);
  z-index: 16;
  margin: 0 -.15rem;
  padding: .35rem .15rem .55rem;
  background: color-mix(in srgb, var(--paper) 96%, #fff);
}
.find-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.find-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 2.2rem;
  padding: .3rem .75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-weight: 700;
  cursor: pointer;
}
.find-filter-pill.is-open,
.find-filter-pill.is-on {
  border-color: var(--ink);
}
.find-filter-pill span {
  min-width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  font-size: .7rem;
  line-height: 1.15rem;
  text-align: center;
}
.find-filter-panel {
  margin-top: .55rem;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: #fff;
}
.find-filter-panel[hidden] { display: none; }
.find-filter-panel > p {
  margin: 0 0 .45rem;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.find-filter-active {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  margin-top: .55rem;
}
.find-filter-tag,
.find-filter-clear {
  display: inline-flex;
  min-height: 1.8rem;
  padding: .2rem .55rem;
  border-radius: 999px;
  color: inherit;
  font-size: .8rem;
  font-weight: 700;
  text-decoration: none;
}
.find-filter-tag { background: color-mix(in srgb, var(--ink) 8%, #fff); }
.find-browse-empty {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1;
  border-radius: .7rem;
  background: var(--photo-bg, #eee);
  color: var(--flow-muted, var(--muted));
  font-size: .8rem;
  font-weight: 700;
  text-align: center;
}
.find-browse-card {
  display: grid;
  gap: .35rem;
  width: 100%;
  padding: .55rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: var(--card, #fff);
  text-align: left;
  cursor: pointer;
}
.find-browse-photo {
  position: relative;
  display: block;
}
.find-browse-card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: .7rem;
  background: var(--photo-bg, #eee);
}
.find-browse-count {
  position: absolute;
  right: .4rem;
  bottom: .4rem;
  min-width: 1.45rem;
  padding: .12rem .38rem;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
}
.find-rule-viewer {
  width: min(32rem, calc(100% - 1.5rem));
  max-height: min(92dvh, 52rem);
  padding: 0;
  border: 0;
  border-radius: 1.1rem;
  background: var(--card, #fff);
}
.find-rule-pane {
  display: grid;
  gap: .65rem;
  padding: .75rem 1rem 1rem;
}
.find-rule-pane[hidden] { display: none; }
.find-rule-pane img {
  width: 100%;
  max-height: 14rem;
  object-fit: contain;
  border-radius: .75rem;
  background: var(--photo-bg, #111);
}
.find-rule-carousel {
  position: relative;
}
.find-rule-slides img[hidden] { display: none; }
.find-rule-nav {
  position: absolute;
  top: 50%;
  left: .4rem;
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  margin-top: -1.05rem;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb, #fff 86%, transparent);
  color: #111;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
}
.find-rule-nav.is-next {
  left: auto;
  right: .4rem;
}
.find-rule-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: .45rem;
  display: flex;
  justify-content: center;
  gap: .35rem;
}
.find-rule-dots button {
  width: .45rem;
  height: .45rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb, #fff 45%, #111);
  cursor: pointer;
}
.find-rule-dots button[aria-current="true"] {
  background: #fff;
}
.find-rule-amount { margin: 0; font-size: 1.4rem; font-weight: 800; }
.find-rule-lede {
  margin: 0;
  color: var(--flow-muted, var(--muted));
  font-size: .9rem;
  line-height: 1.35;
}
.find-rule-picks {
  list-style: none;
  display: grid;
  gap: .7rem;
  margin: 0;
  padding: 0;
}
.find-rule-picks .find-browse-confirm {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .75rem .8rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: #fff;
}
.find-rule-picks .find-browse-confirm[data-price-focus] {
  cursor: pointer;
}
.find-rule-picks .find-browse-confirm.is-price-focus {
  border-color: #111827;
  box-shadow: 0 0 0 2px #111827;
  background: #f8fafc;
}
.find-rule-picks .find-browse-confirm > div {
  display: grid;
  gap: .2rem;
  min-width: 0;
}
.find-rule-picks .find-browse-confirm strong {
  font-size: .82rem;
  font-weight: 750;
  line-height: 1.3;
}
.find-rule-picks .find-browse-confirm em {
  font-style: normal;
  font-size: 1.2rem;
  font-weight: 800;
}
.find-rule-picks .ui-primary {
  flex-shrink: 0;
  min-height: 2.3rem;
  min-width: 5.4rem;
  padding: .4rem .7rem;
  font-size: .82rem;
  white-space: nowrap;
}
.find-see-image {
  justify-self: start;
  margin: .15rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--flow-muted, var(--muted));
  font: inherit;
  font-size: .8rem;
  font-weight: 650;
  text-decoration: underline;
  cursor: pointer;
}
.find-rule-conditions {
  display: grid;
  gap: .35rem;
  margin: .4rem 0;
}
.find-rule-table {
  width: 100%;
  border-collapse: collapse;
}
.find-rule-table caption {
  padding-bottom: .45rem;
  text-align: left;
  font-weight: 800;
}
.find-rule-table th,
.find-rule-table td {
  padding: .45rem 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-weight: 700;
}
.find-rule-table td { text-align: right; }
.find-rule-table label {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}
.find-browse-filters {
  display: grid;
  gap: .75rem;
}
.find-browse-chip-row {
  margin: 0;
  padding: 0;
  border: 0;
}
.find-browse-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .4rem;
}
.find-browse-chip {
  display: inline-flex;
  align-items: center;
  min-height: 2.2rem;
  padding: .3rem .7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: inherit;
  font-weight: 700;
  text-decoration: none;
}
.find-browse-chip.is-on {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.find-browse-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: .65rem;
}
.find-browse-card button {
  display: grid;
  gap: .25rem;
  width: 100%;
  min-height: 7rem;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: var(--card, #fff);
  text-align: left;
  cursor: pointer;
}
.find-browse-card strong { font-size: .95rem; }
.find-browse-card span {
  color: var(--flow-muted, var(--muted));
  font-size: .8rem;
  line-height: 1.3;
}
.find-browse-card em {
  font-style: normal;
  font-weight: 800;
}
.find-review-bar {
  position: sticky;
  bottom: calc(var(--nav-height) + env(safe-area-inset-bottom));
  z-index: 20;
  margin: .35rem -0.15rem 0;
  padding: .7rem .15rem .15rem;
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--paper) 92%, #fff) 28%);
}
.find-review-bar .new-item-link {
  min-height: 3.1rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-weight: 800;
}
.find-review-confirm {
  width: min(26rem, calc(100% - 1.5rem));
  padding: 0 1rem 1rem;
  border: 0;
  border-radius: 1.1rem;
  background: var(--card, #fff);
}
.find-review-confirm::backdrop { background: rgba(12, 18, 16, .45); }
.find-review-confirm-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0;
  padding: .85rem 0 0;
}
.find-review-confirm-top p {
  margin: 0;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--flow-muted, var(--muted));
}
.find-review-confirm-top button {
  border: 0;
  background: none;
  font-weight: 700;
  cursor: pointer;
}
.find-review-confirm-photo {
  position: relative;
  margin: .75rem 0 .85rem;
}
.find-review-photo-stage {
  position: relative;
}
.find-review-machine {
  position: absolute;
  top: .55rem;
  left: .55rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  padding: .28rem .55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--card) 88%, transparent);
  color: var(--ink);
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
}
.find-review-machine input { margin: 0; }
.find-review-machine-status {
  position: absolute;
  top: .55rem;
  right: .55rem;
  z-index: 3;
  padding: .2rem .5rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--card) 88%, transparent);
  font-size: .72rem;
  font-weight: 700;
}
.find-review-confirm.is-machine .app-photo-machine-overlay {
  pointer-events: auto;
  cursor: crosshair;
  touch-action: none;
}
.find-review-confirm.is-waiting .app-photo-machine-overlay {
  pointer-events: none;
}
.find-review-confirm-photo > .capture-status {
  z-index: 8;
}
.find-review-confirm-photo img,
.find-review-confirm img {
  display: block;
  width: 100%;
  max-height: 14rem;
  margin: 0;
  object-fit: contain;
  border-radius: .85rem;
  background: var(--photo-bg, #eee);
}
.find-review-confirm h2 {
  margin: 0 0 .35rem;
  font: 800 1.2rem/1.2 var(--font-sans);
}
.find-review-confirm > p {
  margin: 0 0 1rem;
  color: var(--flow-muted, var(--muted));
}
.find-review {
  display: grid;
  gap: .65rem;
}
.find-review-confirm-send {
  display: grid;
  justify-items: center;
  gap: 1.75rem;
  padding: .25rem 0 .5rem;
}
.find-review-confirm-send .find-volunteer-note {
  width: 100%;
}
.find-review-confirm-send .ui-primary {
  justify-self: center;
  width: max-content;
  max-width: 100%;
}
.find-volunteer-note {
  display: grid;
  gap: .35rem;
}
.find-volunteer-note span {
  font-weight: 700;
  color: var(--flow-muted, var(--muted));
}
.find-volunteer-note textarea {
  width: 100%;
  min-height: 4.5rem;
  padding: .65rem .7rem;
  border: 1px solid var(--line, #d6ddd9);
  border-radius: .7rem;
  resize: vertical;
  font: inherit;
}
.find-prior {
  display: grid;
  gap: .85rem;
  margin: .35rem 0 0;
}
.find-prior-list {
  list-style: none;
  display: flex;
  gap: .65rem;
  margin: 0;
  padding: 0 0 .2rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.find-prior-list li {
  flex: 0 0 min(9.25rem, 42vw);
  scroll-snap-align: start;
}
.find-prior-card {
  display: grid;
  gap: .4rem;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
  cursor: pointer;
}
.find-prior-photo {
  position: relative;
  display: block;
}
.find-prior-card img,
.find-prior-empty {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 1.05rem;
  background: var(--photo-bg, #eee);
}
.find-prior-empty {
  display: grid;
  place-items: center;
  padding: .45rem;
  color: var(--flow-muted, var(--muted));
  font-size: .75rem;
  font-weight: 700;
  text-align: center;
}
.find-prior-card strong {
  font-size: .88rem;
  font-weight: 800;
  line-height: 1.2;
}
.find-prior-viewer {
  width: min(32rem, calc(100% - 1.5rem));
  max-height: min(92dvh, 52rem);
  padding: 0;
  border: 0;
  border-radius: 1.1rem;
  background: var(--card, #fff);
}
.find-prior-viewer::backdrop { background: rgba(12, 18, 16, .45); }
.find-prior-viewer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0;
  padding: .85rem 1rem 0;
}
.find-prior-viewer-top p {
  margin: 0;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--flow-muted, var(--muted));
}
.find-prior-viewer-top button {
  border: 0;
  background: none;
  font-weight: 700;
  cursor: pointer;
}
.find-prior-pane {
  display: grid;
  gap: .7rem;
  padding: .75rem 1rem 1rem;
}
.find-prior-pane[hidden] { display: none; }
.find-prior-hero {
  width: 100%;
  max-height: 18rem;
  object-fit: contain;
  border-radius: .75rem;
  background: var(--photo-bg, #111);
}
.find-prior-pane h3 { margin: 0; font-size: 1.2rem; }
.find-prior-facts {
  display: grid;
  gap: .45rem;
  margin: 0;
}
.find-prior-facts div {
  display: grid;
  grid-template-columns: 8.5rem 1fr;
  gap: .5rem;
  font-size: .95rem;
}
.find-prior-facts dt {
  margin: 0;
  color: var(--flow-muted, var(--muted));
  font-weight: 700;
}
.find-prior-facts dd { margin: 0; }
.find-prior-viewer-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: .5rem;
  padding: 0 1rem 1rem;
}
.find-prior-viewer-nav button {
  min-height: 2.6rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-weight: 700;
  cursor: pointer;
}
.find-prior-viewer-nav p { margin: 0; text-align: center; font-weight: 700; }
.done-price-source {
  margin: .15rem 0 0;
  color: var(--flow-muted, var(--muted));
  font-size: .8rem;
  font-weight: 700;
}
.done-comparables { margin-top: 1.1rem; }
.new-product-form .picker-selected { margin-top: .1rem; }
.send-pricing { width: 100%; margin-top: 1rem; }
.extract-assist { display: grid; gap: .45rem; margin: .15rem 0 .35rem; }
.extract-assist .ui-secondary { width: 100%; }
.extract-assist .ui-secondary:disabled { opacity: .7; cursor: default; }
.extract-assist p { margin: 0; color: var(--flow-muted, var(--muted)); font-size: .85rem; line-height: 1.35; }
.extract-run-label { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }
.extract-assist.is-generating .extract-run-label::before {
  display: block;
  width: .75rem;
  height: .75rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: extract-spin .7s linear infinite;
  content: "";
}
.new-product-form.is-generating {
  opacity: .72;
  pointer-events: none;
}
.new-product-form.is-generating .flow-input {
  background-image: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent);
  background-size: 160% 100%;
  animation: extract-shimmer 1.15s ease-in-out infinite;
}
@keyframes extract-spin { to { transform: rotate(360deg); } }
@keyframes extract-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -40% 0; }
}

/* Done */
.done-shell { gap: 1.65rem; }
.price-done.is-priced-done .done-shell { gap: 1.1rem; }
.done-message {
  display: grid;
  justify-items: center;
  gap: .85rem;
  padding-top: 1.15rem;
  text-align: center;
}
.done-message p { max-width: 28rem; margin: 0; color: var(--flow-muted); font-size: 1.05rem; line-height: 1.45; }
.done-icon {
  display: grid;
  width: 4.1rem;
  height: 4.1rem;
  place-items: center;
  border-radius: 50%;
  background: var(--sand);
  color: var(--ink);
}
.done-icon svg { width: 1.85rem; height: 1.85rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.done-notification {
  display: grid;
  justify-items: center;
  gap: .55rem;
  padding: 1.15rem 1.15rem 1.2rem;
  border: 1px solid var(--line);
  border-radius: 1.15rem;
  background: white;
  box-shadow: var(--shadow-card);
  text-align: center;
}
.done-notification p { margin: 0; max-width: 22rem; line-height: 1.45; }
.done-notification a {
  display: block;
  color: #174d48;
  font-weight: 700;
}
.done-item-card {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: .9rem;
  padding: 1.1rem;
  border: 1px solid var(--line);
  border-radius: 1.15rem;
  background: white;
  box-shadow: var(--shadow-card);
}
.done-item-card p { margin: 0; }
.done-thumb {
  display: grid;
  width: 4.25rem;
  height: 4.25rem;
  place-items: center;
  overflow: hidden;
  border-radius: .9rem;
  background: var(--sand);
  color: #99988f;
}
.done-thumb img { width: 100%; height: 100%; object-fit: cover; }
.done-thumb > svg { width: 1.8rem; height: 1.8rem; fill: none; stroke: currentColor; stroke-width: 1.5; }
.done-item-card.is-priced {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: .85rem;
  text-align: center;
}
.done-item-card.is-priced .done-thumb {
  width: min(100%, 16rem);
  height: auto;
  aspect-ratio: 1;
  max-height: 16rem;
}
.done-item-card.is-priced .done-thumb.is-cover {
  width: min(100%, 12.5rem);
  aspect-ratio: 2 / 3;
  max-height: min(18rem, 42dvh);
  border-radius: .7rem;
  background: #ece8df;
  box-shadow: 0 12px 28px rgba(28, 24, 18, .14);
}
.done-item-card.is-priced .done-thumb.is-cover img { object-fit: contain; }
.done-item-card.is-identified {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: .85rem;
  text-align: center;
  padding: 1.2rem 1.1rem 1.3rem;
}
.done-item-card.is-identified .done-thumb.is-cover {
  width: min(100%, 12.5rem);
  height: auto;
  aspect-ratio: 2 / 3;
  max-height: min(18rem, 46dvh);
  border-radius: .7rem;
  background: #ece8df;
  box-shadow: 0 12px 28px rgba(28, 24, 18, .14);
}
.done-item-card.is-identified .done-thumb.is-cover img { object-fit: contain; }
.done-identified-kicker {
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.done-item-card.is-identified strong { font-size: 1.22rem; line-height: 1.25; }
.done-message.is-after-cover { padding-top: .2rem; }
.done-price {
  margin: 0;
  color: var(--ink);
  font: 650 2.35rem/1 var(--font-sans);
  letter-spacing: -.03em;
}
.done-rule {
  display: grid;
  gap: .2rem;
  margin: .35rem 0 0;
}
.done-rule strong {
  color: var(--ink);
  font: 750 1.05rem/1.3 var(--font-sans);
}
.done-item-card strong,
.done-item-card span { display: block; }
.done-item-card span { margin-top: .15rem; color: var(--muted); }
.done-again { display: inline-flex; width: 100%; align-items: center; justify-content: center; text-decoration: none; }

@media (min-width: 768px) {
  .price-flow.is-find-quiz .app-main {
    max-width: none;
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .price-flow.is-find-quiz .price-flow-shell { max-width: none; }
  .find-quiz-workspace {
    display: grid;
    grid-template-columns: minmax(16.5rem, 1fr) minmax(22rem, 32rem);
    gap: 2rem 2.75rem;
    align-items: start;
  }
  .find-quiz-photo {
    display: block;
    position: sticky;
    top: 1.2rem;
  }
  .find-quiz-photo-frame {
    overflow: hidden;
    aspect-ratio: 4 / 5;
    max-height: min(38rem, calc(100dvh - 10rem));
    border: 1px solid var(--line);
    border-radius: 1.15rem;
    background: color-mix(in srgb, var(--sand, #eeece5) 70%, #fff);
  }
  .find-quiz-photo-frame img,
  .find-quiz-photo-frame .match-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .find-quiz-photo-frame .match-photo {
    display: grid;
    place-items: center;
  }
  .find-quiz-photo-frame .match-photo svg {
    width: 3.2rem;
    height: 3.2rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
  }
  .find-quiz-photo-caption {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: .7rem 0 0;
    color: var(--flow-muted, var(--muted));
    font-size: .82rem;
    font-weight: 650;
  }
  .find-quiz-photo-caption a {
    color: var(--flow-accent, var(--ink));
    font-weight: 750;
    text-decoration: none;
  }
  .find-quiz-item-kicker {
    display: block;
    margin: 0 0 .15rem;
    color: var(--flow-muted, var(--muted));
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  .find-quiz-flow .find-quiz-exits { margin-top: .15rem; }
}

@media (min-width: 900px) {
  .find-filter-dock { top: 0; }
  .find-review-bar { bottom: 0; }
  .price-flow .app-main { padding: 1.4rem 2rem 2.5rem; }
  .price-flow-shell,
  .capture-page { max-width: 52rem; }
  .price-flow.is-find-quiz .price-flow-shell { max-width: none; }
  .price-flow .ui-page-title { font: 650 2rem/1.05 var(--font-sans); letter-spacing: -.025em; }
  .price-flow .find-section-heading .ui-page-title {
    font: 800 1.4rem/1.12 var(--font-sans);
    letter-spacing: -.03em;
  }
  .price-flow .ui-lede { font-size: 1rem; }
  .price-flow .find-section-heading .ui-lede {
    margin: 0;
    font: 450 .92rem/1.3 var(--font-sans);
  }
  .price-capture .camera-card { max-width: 34rem; padding: 1.15rem; }
  .price-capture .camera-surface {
    min-height: 26rem;
    height: auto;
    max-height: none;
    border-radius: 1.1rem;
  }
  .price-capture .camera-preview { border-radius: 1.1rem; }
  .preview-panel .camera-preview img { max-height: 28rem; }
  .price-matches .matches {
    display: flex;
    gap: .8rem;
    overflow-x: auto;
    padding: 0 1rem .65rem 0;
    scroll-snap-type: x mandatory;
  }
  .price-matches .match-slide { flex: 0 0 calc((100% - 1.6rem) / 3); }
  .price-matches .carousel-nav { display: grid; z-index: 4; }
  .price-matches .dots { display: flex; }
  .selected-match-bar { bottom: .25rem; }
  .new-product-form { grid-template-columns: 1fr 1fr; column-gap: 1rem; }
  .new-product-form > *,
  .new-product-form .flow-field,
  .new-product-form .condition-field { grid-column: 1 / -1; }
}

/* Volunteer auth layout — scoped so signed-in pages stay unchanged */
body.auth-page {
  --auth-ink: #212d3b;
  --auth-ink-soft: #4B5768;
  --auth-ink-faint: #8A94A3;
  --auth-paper: #f2f2e8;
  --auth-raised: #FFFFFF;
  --auth-line: rgba(33, 45, 59, 0.10);
  --auth-line-strong: rgba(33, 45, 59, 0.16);
  --auth-teal: #0c2340;
  --auth-teal-ink: #091b32;
  --auth-teal-tint: #d7e8f8;
  --auth-teal-light: #408fda;
  --auth-glow: rgba(64, 143, 218, 0.35);
  --auth-btn-shadow: 0 4px 14px rgba(12, 35, 64, 0.28);
  --auth-shadow: 0 10px 28px rgba(33, 45, 59, 0.10);
  --auth-shadow-sm: 0 1px 2px rgba(33, 45, 59, 0.06), 0 1px 1px rgba(33, 45, 59, 0.04);
  background: var(--auth-paper);
  color: var(--auth-ink);
  font-family: var(--font-sans);
}
body.auth-page.is-affiliates,
body.affiliate-portal.is-affiliates {
  --auth-teal: #2f7d50;
  --auth-teal-ink: #235d42;
  --auth-teal-tint: #d7f3e3;
  --auth-teal-light: #33bb64;
  --auth-glow: rgba(51, 187, 100, 0.38);
  --brand-blue: #33bb64;
}
body.affiliate-portal.is-affiliates {
  --accent: #2f7d50;
  --accent-deep: #235d42;
  --moss: #2f7d50;
  --sage: #d7f3e3;
  --flow-accent: #2f7d50;
}
html[data-theme] body.auth-page {
  --auth-ink: var(--ink);
  --auth-ink-soft: color-mix(in srgb, var(--ink) 62%, white);
  --auth-ink-faint: color-mix(in srgb, var(--ink) 42%, white);
  --auth-paper: var(--paper);
  --auth-line: color-mix(in srgb, var(--ink) 10%, transparent);
  --auth-line-strong: color-mix(in srgb, var(--ink) 16%, transparent);
  --auth-teal: var(--accent);
  --auth-teal-ink: var(--accent-deep);
  --auth-teal-tint: var(--sage);
  --auth-teal-light: color-mix(in srgb, var(--accent) 48%, white);
  --auth-glow: color-mix(in srgb, var(--accent) 35%, transparent);
  --auth-btn-shadow: 0 4px 14px color-mix(in srgb, var(--accent) 28%, transparent);
  --auth-shadow: 0 10px 28px color-mix(in srgb, var(--ink) 10%, transparent);
  --auth-shadow-sm: 0 1px 2px color-mix(in srgb, var(--ink) 6%, transparent), 0 1px 1px color-mix(in srgb, var(--ink) 4%, transparent);
}
body.auth-page .mobile-header,
body.auth-page .desktop-utility,
body.auth-page .app-dock {
  display: none !important;
}
body.auth-page .app-frame {
  min-height: 100dvh;
  margin: 0;
}
body.auth-page .app-main {
  max-width: none;
  margin: 0;
  padding: 0;
}
body.auth-page :focus-visible {
  outline: 2.5px solid var(--auth-teal) !important;
  outline-offset: 2px;
  border-radius: 6px;
}
.auth-split {
  display: flex;
  min-height: 100dvh;
}
.auth-left {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  padding: 2rem 1.5rem;
  background: var(--auth-paper);
}
.auth-left-top { display: none; }
.auth-left-center {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
}
.auth-col { width: 100%; max-width: 25rem; }
.auth-col.is-card-crossfade {
  position: relative;
  min-height: var(--auth-card-min);
}
.auth-mobile-brand { margin-bottom: 1.9rem; text-align: center; }
.auth-wordmark {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.auth-wordmark.is-charity.has-logo {
  justify-content: center;
}
.auth-wordmark.is-official {
  justify-content: center;
  gap: 0;
}
.auth-lockup {
  display: block;
  width: 7.75rem;
  height: auto;
}
.auth-mobile-brand .auth-wordmark {
  flex-direction: column;
  gap: 1rem;
}
.auth-mobile-brand .auth-lockup {
  width: 8.25rem;
  margin-inline: auto;
}
.auth-mobile-brand .auth-charity-logo {
  width: auto;
  height: calc(3.1rem * var(--auth-logo-scale, 1));
  max-width: calc(9.5rem * var(--auth-logo-scale, 1));
  border-radius: 14px;
}
.auth-tagmark {
  display: flex;
  width: 2.75rem;
  height: 2.75rem;
  flex: none;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: var(--auth-teal-tint);
  color: var(--auth-teal-ink);
}
.auth-tagmark svg { width: 1.25rem; height: 1.25rem; }
.auth-wordmark-text {
  font-family: var(--font-sans);
  font-size: 1.625rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.auth-wordmark-dot { color: var(--auth-teal); }
.auth-charity-logo {
  display: block;
  width: auto;
  height: calc(2.75rem * var(--auth-logo-scale, 1));
  max-width: calc(8.5rem * var(--auth-logo-scale, 1));
  flex: none;
  object-fit: contain;
  padding: .2rem .35rem;
  border-radius: 13px;
  background: var(--paper, #fff);
}
.auth-tagline {
  margin: 0.35rem 0 0;
  color: var(--auth-ink-faint);
  font-size: 0.8125rem;
}
.auth-card {
  padding: 1.75rem 1.625rem;
  border: 1px solid var(--auth-line);
  border-radius: 22px;
  background: var(--auth-raised);
  box-shadow: var(--auth-shadow-sm);
}
.auth-card.is-leaving {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.5rem);
  box-shadow: none;
  transition: opacity 0.34s ease, transform 0.34s ease;
}
.auth-card.is-entering {
  opacity: 0;
  transform: translateY(0.9rem);
}
.auth-card.is-entered {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.auth-h {
  margin: 0 0 0.25rem;
  font-family: var(--font-sans);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.auth-sub {
  margin: 0 0 1.4rem;
  color: var(--auth-ink-soft);
  font-family: var(--font-prose);
  font-size: 0.8125rem;
  line-height: 1.5;
}
.auth-sub a {
  color: var(--auth-ink);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.auth-flash {
  margin: -0.4rem 0 1rem;
  color: #A94A36;
  font-size: 0.75rem;
}
.auth-field { margin-bottom: 1rem; }
.auth-field label {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--auth-ink-faint);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.auth-field label.is-sentence {
  font-size: 0.75rem;
  letter-spacing: 0.01em;
  text-transform: none;
}
.auth-input-wrap { position: relative; }
.auth-input-wrap svg {
  position: absolute;
  top: 50%;
  left: 0.875rem;
  width: 1rem;
  height: 1rem;
  color: var(--auth-ink-faint);
  pointer-events: none;
  transform: translateY(-50%);
}
.auth-input-wrap input {
  width: 100%;
  padding: 0.8rem 0.875rem 0.8rem 2.5rem;
  border: 1.5px solid var(--auth-line-strong);
  border-radius: 12px;
  background: var(--auth-raised);
  color: var(--auth-ink);
  font-size: 0.9375rem;
  outline: none;
}
.auth-input-wrap input:focus { border-color: var(--auth-teal); }
.auth-field > input {
  width: 100%;
  padding: 0.8rem 0.875rem;
  border: 1.5px solid var(--auth-line-strong);
  border-radius: 12px;
  background: var(--auth-raised);
  color: var(--auth-ink);
  font-size: 0.9375rem;
  outline: none;
}
.auth-field > input:focus { border-color: var(--auth-teal); }
.auth-field > textarea {
  width: 100%;
  min-height: 5.5rem;
  padding: 0.8rem 0.875rem;
  border: 1.5px solid var(--auth-line-strong);
  border-radius: 12px;
  background: var(--auth-raised);
  color: var(--auth-ink);
  font-family: inherit;
  font-size: 0.9375rem;
  line-height: 1.45;
  outline: none;
  resize: vertical;
}
.auth-field > textarea:focus { border-color: var(--auth-teal); }
.auth-optional {
  margin-left: 0.35rem;
  color: var(--auth-ink-faint);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: lowercase;
}
.auth-plan-pill {
  display: inline-block;
  margin: 0 0 0.65rem;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  background: var(--auth-teal-tint);
  color: var(--auth-teal-ink);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.auth-plan-limits {
  margin: -0.15rem 0 1.25rem;
  padding: 0.7rem 0.95rem 0.85rem;
  border: 1px solid var(--auth-line);
  border-radius: 14px;
  background: var(--auth-paper);
}
.auth-plan-limits-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  color: var(--auth-ink-faint);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
}
.auth-plan-limits-label::-webkit-details-marker { display: none; }
.auth-plan-limits-label::after {
  width: 0.42rem;
  height: 0.42rem;
  margin-left: 0.6rem;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg);
  content: "";
}
.auth-plan-limits[open] .auth-plan-limits-label {
  margin-bottom: 0.75rem;
}
.auth-plan-limits[open] .auth-plan-limits-label::after {
  transform: translateY(0.15rem) rotate(-135deg);
}
.auth-plan-limits .auth-plan-groups { display: grid; gap: 0.85rem; }
.auth-plan-group-label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.4rem;
  color: var(--auth-ink-faint);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.auth-plan-group-icon {
  display: flex;
  width: 1.15rem;
  height: 1.15rem;
  align-items: center;
  justify-content: center;
  color: var(--auth-teal-ink);
}
.auth-plan-group-icon svg {
  width: 0.95rem;
  height: 0.95rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.auth-plan-group ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.auth-plan-group li {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  margin: 0 0 0.3rem;
  color: var(--auth-ink-soft);
  font-size: 0.78rem;
  line-height: 1.4;
}
.auth-plan-group li:last-child { margin-bottom: 0; }
.auth-plan-group li svg {
  width: 0.85rem;
  height: 0.85rem;
  flex: none;
  margin-top: 0.15rem;
  fill: none;
  stroke: var(--auth-teal);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.auth-plan-limits .auth-plan-next {
  margin-top: 0.85rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--auth-line);
}
.auth-plan-next-title {
  margin: 0 0 0.2rem;
  color: var(--auth-ink);
  font-size: 0.78rem;
  font-weight: 700;
}
.auth-plan-next-copy {
  margin: 0 0 0.45rem;
  color: var(--auth-ink-faint);
  font-size: 0.72rem;
  line-height: 1.45;
}
.auth-plan-next a {
  color: var(--auth-teal-ink);
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
}
.auth-plan-next a:hover { text-decoration: underline; }
.auth-interval-slot { margin: -0.55rem 0 1.25rem; }
.auth-interval-slot.is-card {
  display: flex;
  justify-content: center;
}
.auth-interval {
  display: inline-flex;
  padding: 0.2rem;
  border-radius: 999px;
  background: var(--auth-teal-tint);
}
.auth-interval-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2rem;
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  color: var(--auth-teal-ink);
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none;
}
.auth-interval-btn.is-active {
  background: var(--auth-ink);
  color: #fff;
}
.auth-interval-save {
  padding: 0.08rem 0.35rem;
  border-radius: 999px;
  background: var(--auth-teal);
  color: #fff;
  font-size: 0.62rem;
}
.auth-interval-btn.is-active .auth-interval-save { background: rgba(255, 255, 255, 0.22); }
.auth-optional {
  margin: 0.25rem 0 0.4rem;
}
.auth-optional summary {
  cursor: pointer;
  color: var(--auth-ink-soft);
  font-size: 0.78rem;
  font-weight: 600;
}
.auth-optional summary span {
  color: var(--auth-ink-faint);
  font-weight: 500;
}
.auth-optional[open] summary { margin-bottom: 0.85rem; }
.auth-field-err {
  margin: 0.4rem 0 0;
  color: #A94A36;
  font-size: 0.72rem;
}
.auth-btn {
  display: inline-flex;
  width: 100%;
  height: 3rem;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  margin-top: 1.1rem;
  border: 0;
  border-radius: 100px;
  background: var(--auth-teal);
  box-shadow: var(--auth-btn-shadow);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
}
.auth-btn:hover { background: var(--auth-teal-ink); }
.auth-btn:disabled { opacity: 0.75; cursor: default; }
.auth-btn.is-sending:disabled,
.auth-btn.is-sent:disabled { opacity: 1; }
.auth-btn.is-sending:hover { background: var(--auth-teal); }
.auth-btn.is-sent,
.auth-btn.is-sent:hover {
  background: #1b7a4a;
  box-shadow: 0 4px 14px rgba(27, 122, 74, 0.28);
}
.auth-btn.is-sent { cursor: default; }
.auth-btn:active { transform: scale(0.98); }
.auth-btn.is-sending:active,
.auth-btn.is-sent:active { transform: none; }
.auth-spinner {
  display: inline-block;
  flex: none;
  width: 1.05rem;
  height: 1.05rem;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: auth-spin 0.7s linear infinite;
}
@keyframes auth-spin { to { transform: rotate(360deg); } }
.auth-sent-mark {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
  flex: none;
}
.auth-sent-mark svg {
  display: block;
  width: 100%;
  height: 100%;
}
.auth-sent-circle,
.auth-sent-tick {
  fill: none;
  stroke: #fff;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.auth-sent-circle {
  stroke-width: 2;
  stroke-dasharray: 82;
  stroke-dashoffset: 82;
  animation: auth-draw-circle 0.45s ease-out 0.12s forwards;
}
.auth-sent-tick {
  stroke-width: 2.2;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  animation: auth-draw-tick 0.28s ease-out 0.58s forwards;
}
.auth-sent-word {
  opacity: 0;
  animation: auth-sent-word-in 0.22s ease 0.88s forwards;
}
@keyframes auth-draw-circle { to { stroke-dashoffset: 0; } }
@keyframes auth-draw-tick { to { stroke-dashoffset: 0; } }
@keyframes auth-sent-word-in { to { opacity: 1; } }
.auth-micro {
  margin: 0.9rem 0 0;
  color: var(--auth-ink-faint);
  font-size: 0.72rem;
  line-height: 1.5;
  text-align: center;
}
.auth-signup-prompt {
  margin: 1.4rem 0 0;
  color: var(--auth-ink-soft);
  font-size: 0.84rem;
  text-align: center;
}
.auth-signup-prompt a {
  color: var(--auth-teal-ink);
  font-weight: 600;
  text-decoration: none;
}
.auth-signup-prompt a:hover { text-decoration: underline; }
.auth-signup-notice {
  display: none;
  margin: 0.7rem 0 0;
  color: var(--auth-ink-faint);
  font-size: 0.75rem;
  line-height: 1.45;
  text-align: center;
}
.auth-signup-notice:target,
.auth-signup-notice.is-visible { display: block; }
.auth-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 1.5rem 0 0;
  color: var(--auth-ink-faint);
  font-size: 0.7rem;
}
.auth-trust svg { width: 0.8rem; height: 0.8rem; flex: none; }
.auth-sent { text-align: center; }
.auth-sent.is-arriving > * {
  opacity: 0;
  transform: translateY(0.7rem);
  animation: auth-sent-arrive 0.46s ease-out forwards;
}
.auth-sent.is-arriving > *:nth-child(1) { animation-delay: 0.08s; }
.auth-sent.is-arriving > *:nth-child(2) { animation-delay: 0.16s; }
.auth-sent.is-arriving > *:nth-child(3) { animation-delay: 0.24s; }
.auth-sent.is-arriving > *:nth-child(4) { animation-delay: 0.32s; }
.auth-sent.is-arriving > *:nth-child(5) { animation-delay: 0.4s; }
.auth-sent.is-arriving > *:nth-child(6) { animation-delay: 0.46s; }
@keyframes auth-sent-arrive {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.auth-sent-icon {
  display: flex;
  width: 3.5rem;
  height: 3.5rem;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.1rem;
  border-radius: 50%;
  background: var(--auth-teal-tint);
  color: var(--auth-teal-ink);
  animation: auth-pop 0.4s cubic-bezier(0.2, 1.4, 0.4, 1);
}
.auth-sent.is-arriving .auth-sent-icon {
  animation: auth-sent-arrive 0.5s ease-out 0.08s forwards;
}
.auth-sent-icon svg { width: 1.5rem; height: 1.5rem; }
@keyframes auth-pop {
  0% { transform: scale(0.5); opacity: 0; }
  60% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); }
}
.auth-sent .auth-sub strong { color: var(--auth-ink); }
.auth-magic { margin: 0 0 0.4rem; }
.auth-magic a {
  color: var(--auth-teal-ink);
  font-size: 0.8rem;
  font-weight: 600;
}
.auth-resend {
  margin: 1.1rem 0 0;
  color: var(--auth-ink-faint);
  font-size: 0.78rem;
}
.auth-resend button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--auth-teal-ink);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}
.auth-resend button:disabled {
  color: var(--auth-ink-faint);
  cursor: default;
}
.auth-try-diff {
  display: block;
  margin: 1rem auto 0;
  color: var(--auth-ink-soft);
  font-size: 0.78rem;
  text-align: center;
}
.auth-steps {
  margin: 0 0 .75rem;
  color: var(--auth-ink-faint);
  font: 650 .72rem/1.3 var(--font-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.auth-apply-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: .65rem;
  align-items: center;
  margin-top: 1.1rem;
}
.auth-apply-actions .auth-btn {
  flex: 1 1 auto;
  width: auto;
  height: 3rem;
  margin-top: 0;
}
.auth-apply-back {
  flex: none;
  box-sizing: border-box;
  height: 3rem;
  padding: 0 1.15rem;
  border: 1px solid var(--auth-line-strong);
  border-radius: 100px;
  background: transparent;
  color: var(--auth-ink-soft);
  font: 650 .9rem/1 var(--font-sans);
  cursor: pointer;
}
.auth-form.is-wizard [data-apply-pane][hidden],
.auth-form.is-wizard [data-start-pane][hidden] { display: none; }
.auth-legal {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin: 0 0 1.1rem;
  color: var(--auth-ink-soft);
  font: 500 .8125rem/1.45 var(--font-sans);
  text-transform: none;
}
.auth-legal input {
  flex: none;
  width: 1.05rem;
  height: 1.05rem;
  margin-top: .15rem;
}
.auth-legal a {
  color: var(--auth-ink);
  font-weight: 650;
}
.auth-legal-copy {
  display: grid;
  gap: .85rem;
  margin: 0 0 1.25rem;
  color: var(--auth-ink-soft);
  font: 400 .9rem/1.5 var(--font-prose);
}
.auth-legal-copy p { margin: 0; }
.auth-legal-card .auth-micro { margin-top: .25rem; }
.auth-brand-panel { display: none; }
.auth-toast {
  position: fixed;
  right: 1.25rem;
  bottom: 1.5rem;
  left: 1.25rem;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.8rem 1rem;
  border-radius: 14px;
  background: var(--auth-ink);
  box-shadow: 0 20px 50px rgba(27, 36, 48, 0.25);
  color: #fff;
  font-size: 0.84rem;
  font-weight: 600;
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px);
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.auth-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.auth-toast svg { width: 1rem; height: 1rem; color: var(--auth-teal-tint); flex: none; }
@media (min-width: 900px) {
  html:has(body.auth-page) { overflow: auto; }
  body.app.auth-page {
    overflow: auto;
    font-size: 1rem;
  }
  body.auth-page .app-frame {
    display: block;
    height: auto;
    margin-left: 0;
    overflow: visible;
  }
  body.auth-page .app-main {
    overflow: visible;
    padding: 0;
  }
}
@media (min-width: 960px) {
  html:has(body.auth-page) { overflow: hidden; height: 100%; }
  body.auth-page,
  body.app.auth-page {
    height: 100dvh;
    overflow: hidden;
  }
  body.auth-page .app-frame,
  body.auth-page .app-main {
    height: 100dvh;
    overflow: hidden;
  }
  body.auth-page .auth-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
  }
  body.auth-page .auth-left {
    min-width: 0;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
  }
  body.auth-page .auth-left-center { min-height: 100%; }
  body.auth-page .auth-brand-panel {
    flex: none;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    height: 100dvh;
    overflow: hidden;
  }
  body.auth-page.is-affiliates .auth-brand-inner {
    width: min(100%, 28rem);
    max-width: 28rem;
    margin: 0 auto;
    align-self: center;
  }
  body.auth-page.is-affiliates .auth-brand-title-lead { white-space: normal; }
  .auth-split { min-height: 0; }
  .auth-left { flex: 1; padding: 2.75rem 3.5rem; }
  .auth-left-top { display: none; }
  .auth-mobile-brand {
    display: block;
    margin-bottom: 2.25rem;
  }
  .auth-mobile-brand .auth-lockup { width: 9.5rem; }
  .auth-tagline { display: none; }
  body.auth-page.is-branded .auth-mobile-brand .auth-charity-logo {
    width: auto;
    height: calc(4.25rem * var(--auth-logo-scale, 1));
    max-width: calc(13.5rem * var(--auth-logo-scale, 1));
    border-radius: 18px;
  }
  body.auth-page.is-branded .auth-mobile-brand .auth-tagmark {
    width: 5.5rem;
    height: 5.5rem;
    border-radius: 20px;
  }
  body.auth-page.is-branded .auth-mobile-brand .auth-tagmark svg { width: 2.25rem; height: 2.25rem; }
  body.auth-page.is-branded .auth-mobile-brand .auth-wordmark-text { font-size: 1.85rem; }
  .auth-col { max-width: 25rem; }
  .auth-card {
    padding: 2.25rem 2.125rem;
    border-radius: 20px;
    box-shadow: var(--auth-shadow);
  }
  .auth-h { font-size: 1.5rem; }
  .auth-sub { margin-bottom: 1.6rem; font-size: 0.875rem; line-height: 1.55; }
  .auth-brand-panel {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    padding: 3.5rem 3.25rem 3.5rem 3.5rem;
    background: var(--auth-ink);
    color: #fff;
  }
  .auth-brand-panel::before {
    position: absolute;
    top: -10%;
    right: -8%;
    width: 26rem;
    height: 26rem;
    background: radial-gradient(circle, var(--auth-glow) 0%, transparent 70%);
    content: "";
  }
  .auth-brand-mark {
    position: absolute;
    right: -2.5rem;
    bottom: -3.75rem;
    width: 17.5rem;
    height: 12.5rem;
    background: rgba(255, 255, 255, 0.035);
    clip-path: polygon(60px 0, 100% 0, 100% 100%, 60px 100%, 0 50%);
  }
  .auth-brand-mark.is-official {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 11.5rem;
    height: auto;
    margin: 0 0 2.25rem;
    background: none;
    clip-path: none;
  }
  .auth-brand-mark.is-official img {
    display: block;
    width: 100%;
    height: auto;
  }
  .auth-brand-inner {
    position: relative;
    max-width: none;
    width: 100%;
    container-type: inline-size;
  }
  .auth-brand-eyebrow {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem;
    color: var(--auth-teal-light);
    font-family: var(--font-mono);
    font-size: 0.6875rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }
  .auth-brand-eyebrow::before {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background: var(--auth-teal-light);
    content: "";
  }
  .auth-brand-inner h2 {
    margin: 0 0 0.65rem;
    font-family: var(--font-sans);
    font-size: clamp(1.7rem, 7.4cqi, 2.85rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.05;
  }
  .auth-brand-title-lead { white-space: nowrap; }
  .auth-brand-title-kicker { display: block; }
  .auth-brand-lede {
    margin: 0 0 2.5rem;
    color: #B8C0CC;
    font-family: var(--font-prose);
    font-size: 1rem;
    line-height: 1.65;
  }
  .auth-plan-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.45rem 0.7rem;
    margin: 0 0 1.1rem;
  }
  .auth-plan-price-amount {
    font-family: var(--font-mono);
    font-size: clamp(1.85rem, 3vw, 2.4rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1;
  }
  .auth-plan-price-unit {
    color: #98A2B0;
    font-size: 1.05rem;
  }
  .auth-plan-save {
    display: inline-flex;
    align-items: center;
    min-height: 1.45rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: rgba(122, 184, 168, 0.22);
    color: var(--auth-teal-light);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
  }
  .auth-plan-includes {
    margin: 0 0 1.5rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: #98A2B0;
    font-size: 0.92rem;
  }
  .auth-feat {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    opacity: 0;
    transform: translateY(0.85rem);
    animation: auth-feat-in 0.55s ease-out forwards;
  }
  .auth-feat:last-child { margin-bottom: 0; }
  .auth-feats .auth-feat:nth-child(1) { animation-delay: 0.12s; }
  .auth-feats .auth-feat:nth-child(2) { animation-delay: 0.32s; }
  .auth-feats .auth-feat:nth-child(3) { animation-delay: 0.52s; }
  @keyframes auth-feat-in {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  .auth-feat-icon {
    display: flex;
    width: 2.5rem;
    height: 2.5rem;
    flex: none;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--auth-teal-light);
  }
  .auth-feat-icon svg { width: 1.125rem; height: 1.125rem; }
  .auth-feat-title {
    margin: 0 0 0.25rem;
    font-size: 0.9375rem;
    font-weight: 700;
  }
  .auth-feat-copy {
    margin: 0;
    color: #98A2B0;
    font-size: 0.84rem;
    line-height: 1.55;
  }
  .auth-plan-limits { display: none; }
  .auth-interval-slot.is-card { display: none; }
  .auth-interval-slot.is-panel { margin: 0 0 1.15rem; }
  .auth-plan-panel .auth-interval { background: rgba(255, 255, 255, 0.08); }
  .auth-plan-panel .auth-interval-btn { color: #d5dae2; }
  .auth-plan-panel .auth-interval-btn.is-active {
    background: #fff;
    color: var(--auth-ink);
  }
  .auth-plan-panel .auth-interval-save { background: var(--auth-teal); }
  .auth-plan-panel .auth-interval-btn.is-active .auth-interval-save {
    background: var(--auth-teal);
    color: #fff;
  }
  .auth-plan-panel .auth-plan-groups {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem 2.25rem;
    margin: 0 0 1.75rem;
  }
  .auth-plan-panel .auth-plan-group-label {
    color: #98A2B0;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
  }
  .auth-plan-panel .auth-plan-group-icon { color: var(--auth-teal-light); }
  .auth-plan-panel .auth-plan-group li {
    color: #e4e8ee;
    font-size: 0.95rem;
  }
  .auth-plan-panel .auth-plan-group li svg { stroke: var(--auth-teal-light); }
  .auth-plan-panel .auth-plan-group a { color: var(--auth-teal-light); }
  .auth-plan-panel .auth-plan-next {
    margin-top: 0.15rem;
    padding: 1.15rem 1.2rem 1.2rem;
    border: 0;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.05);
  }
  .auth-plan-panel .auth-plan-next-title {
    color: #fff;
    font-size: 1rem;
  }
  .auth-plan-panel .auth-plan-next-copy {
    color: #98A2B0;
    font-size: 0.88rem;
  }
  .auth-plan-panel .auth-plan-next a {
    color: var(--auth-teal-light);
    font-size: 0.95rem;
  }
  .auth-toast {
    right: auto;
    left: 50%;
    width: max-content;
    max-width: calc(100% - 2rem);
    border-radius: 100px;
    padding: 0.8rem 1.15rem;
    transform: translate(-50%, 20px);
  }
  .auth-toast.is-visible { transform: translate(-50%, 0); }
}
@media (prefers-reduced-motion: reduce) {
  body.auth-page *,
  body.auth-page *::before,
  body.auth-page *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
  .auth-feat {
    opacity: 1;
    transform: none;
    animation: none;
  }
  .auth-sent-circle,
  .auth-sent-tick { stroke-dashoffset: 0; animation: none; }
  .auth-sent-word { opacity: 1; animation: none; }
  .auth-card.is-leaving,
  .auth-card.is-entering,
  .auth-card.is-entered {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .auth-sent.is-arriving > * {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

.audit-heading { margin: 0 0 1.25rem; }
.audit-unknowns { margin: 0 0 1.4rem; }
.audit-unknowns-title { margin: 0 0 .35rem; font-size: 1.05rem; }
.audit-unknowns .ui-lede { margin: 0 0 .75rem; }
.audit-filters { margin-bottom: 1.1rem; }
.audit-filters .filter-fields { grid-template-columns: 1fr; }
@media (min-width: 640px) {
  .audit-filters .filter-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .audit-heading { display: none; }
  .audit-filters { margin-top: .15rem; margin-bottom: .85rem; }
  .audit-filters .filter-fields {
    grid-template-columns: repeat(3, 13rem);
    justify-content: start;
  }
}
.audit-list {
  display: grid;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.audit-list-head { display: none; }
.audit-row {
  display: grid;
  gap: .65rem;
  padding: .75rem 1rem;
}
.audit-row-open {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: .85rem 1rem;
  align-items: center;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.audit-who,
.audit-when,
.audit-kind { display: none; }
.audit-row-open .audit-verdict { display: none; }
.audit-row-open .audit-verdict.is-right,
.audit-row-open .audit-verdict.is-wrong { display: block; }
.audit-row-open:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 55%, transparent);
  outline-offset: 3px;
  border-radius: 1rem;
}
.audit-photo {
  width: 4.5rem;
  height: 4.5rem;
  object-fit: cover;
  border-radius: 1rem;
  background: var(--sage, #e7efe8);
}
.audit-photo.is-empty {
  display: grid;
  place-items: center;
  font-weight: 700;
  color: var(--muted);
}
.audit-copy {
  display: grid;
  gap: .2rem;
  min-width: 0;
}
.audit-copy strong { font-size: 1.05rem; }
.audit-price { font-weight: 700; }
.audit-copy small,
.audit-who,
.audit-when { color: var(--muted); }
.audit-verdict { margin: 0; font-weight: 700; }
.audit-verdict.is-right { color: var(--forest, #1f4d3a); }
.audit-verdict.is-wrong { color: #9b2c2c; }
.audit-row-open .audit-verdict:not(.is-right):not(.is-wrong) {
  color: var(--muted);
  font-weight: 550;
}
@media (min-width: 900px) {
  .audit-list {
    gap: .45rem;
  }
  .audit-list-head,
  .audit-row-open {
    display: grid;
    grid-template-columns: 3.6rem minmax(10rem, 1.5fr) 5.5rem minmax(7rem, .9fr) 7.5rem 5.5rem 6.5rem;
    gap: .75rem 1rem;
    align-items: center;
  }
  .audit-list-head {
    padding: 0 .95rem .15rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 650;
    letter-spacing: .02em;
    text-transform: uppercase;
  }
  .audit-row {
    padding: .55rem .95rem;
  }
  .audit-row:hover {
    border-color: color-mix(in srgb, var(--forest) 22%, var(--line));
  }
  .audit-copy { display: contents; }
  .audit-copy strong {
    font-size: .98rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .audit-meta { display: none; }
  .audit-who,
  .audit-when,
  .audit-kind,
  .audit-row-open .audit-verdict { display: block; }
  .audit-who,
  .audit-when {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .86rem;
  }
  .audit-who { white-space: normal; }
  .audit-who small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 550;
  }
  .audit-kind {
    justify-self: start;
    padding: .15rem .5rem;
    border-radius: 999px;
    background: #f0f0ee;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 650;
  }
  .audit-photo {
    width: 3.6rem;
    height: 3.6rem;
    border-radius: .8rem;
  }
  .audit-price { font-size: .98rem; }
}
.audit-review-dialog {
  width: min(55rem, calc(100% - 1.25rem));
  max-height: calc(100% - 1.5rem);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  background: var(--card);
  color: var(--ink);
  box-shadow: 0 24px 60px -20px rgba(20, 20, 20, .22);
}
.audit-review-dialog.is-resizing { overflow: hidden; }
.audit-review-dialog.is-pinned {
  margin: 0;
}
.audit-review-dialog::backdrop { background: color-mix(in srgb, var(--forest) 42%, transparent); }
.audit-review-frame { margin: 0; }
.audit-review-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.35rem 1.6rem 1rem;
  border-bottom: 1px solid var(--line);
}
.audit-review-head h2 { margin: 0 0 .25rem; font-size: 1.3rem; letter-spacing: -.01em; }
.audit-review-head p { margin: 0; max-width: 46ch; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.audit-review-dialog .app-photo-close { position: static; flex: 0 0 auto; }
.audit-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.audit-pane { min-width: 0; padding: 1.2rem 1.5rem 1.35rem; }
.audit-pane + .audit-pane { border-left: 1px solid var(--line); }
.audit-pane-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0 0 .65rem;
  min-height: 1.45rem;
}
.audit-pane-head h3,
.audit-pane h3 {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .65rem;
  font-size: .86rem;
  font-weight: 650;
}
.audit-pane-head h3 { margin: 0; }
.audit-pane h3 span {
  padding: .1rem .5rem;
  border-radius: 999px;
  background: #f0f0ee;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 650;
}
.audit-photo-frame {
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 4 / 3.3;
  max-height: 18.5rem;
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: #ededea;
  transition: max-height .36s ease, max-width .36s ease, aspect-ratio .36s ease;
}
.audit-review-dialog[data-audit-stage="price"] .audit-photo-frame,
.audit-review-dialog[data-audit-stage="train"] .audit-photo-frame {
  aspect-ratio: 16 / 10;
  max-width: min(100%, 19.6rem);
  max-height: 12.25rem;
}
.audit-photo-open {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
}
.audit-photo-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.audit-photo-frame.is-barcode {
  display: grid;
  place-items: center;
  background: #fff;
  padding: 1rem .8rem;
}
.audit-photo-frame.is-barcode .audit-barcode-img {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}
.audit-photo.is-barcode {
  object-fit: contain;
  background: #fff;
  padding: .35rem;
}
.audit-photo-frame .audit-photo.is-empty {
  width: 100%;
  height: 100%;
  border-radius: 0;
}
.audit-ref-count {
  position: absolute;
  top: .65rem;
  right: .65rem;
  padding: .15rem .45rem;
  border-radius: 999px;
  background: rgba(20, 20, 20, .55);
  color: #fff;
  font-size: .7rem;
}
.audit-ref-step {
  position: absolute;
  top: 50%;
  z-index: 1;
  display: grid;
  width: 1.85rem;
  height: 1.85rem;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(20, 20, 20, .55);
  color: #fff;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
}
.audit-ref-step[hidden] { display: none; }
.audit-ref-step[data-audit-prev] { left: .55rem; }
.audit-ref-step[data-audit-next] { right: .55rem; }
.audit-ref-dots {
  position: absolute;
  right: 0;
  bottom: .65rem;
  left: 0;
  display: flex;
  justify-content: center;
  gap: .4rem;
}
.audit-ref-dots button {
  width: .45rem;
  height: .45rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .55);
  cursor: pointer;
}
.audit-ref-dots button.is-active { background: #fff; }
.audit-meta-line {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .85rem;
  margin: .75rem 0 0;
  color: var(--muted);
  font-size: .8rem;
}
.audit-meta-line b { color: var(--ink); font-weight: 650; }
.audit-class-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem 1rem;
  margin: .75rem 0 0;
}
.audit-class-name { margin: 0; font-size: 1.2rem; font-weight: 650; letter-spacing: -.01em; }
.audit-class-sub { margin: 0 0 0 auto; color: var(--muted); font-size: .8rem; text-align: right; }
.audit-pane > .audit-class-name { margin-top: .75rem; }
.audit-pane > .audit-class-sub { margin-top: .15rem; }
.audit-open-class {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .28rem;
  height: 1.45rem;
  min-height: 1.45rem;
  margin: 0;
  padding: 0 .55rem;
  border: 1px solid color-mix(in srgb, var(--ink) 22%, var(--line));
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: .7rem;
  font-weight: 650;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}
.audit-open-class svg { flex: 0 0 auto; }
.audit-middle {
  overflow: hidden;
}
.audit-middle.is-resizing {
  transition: height .3s ease;
}
.audit-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: 1.35rem;
  max-height: 0;
  margin: 0;
  padding: 0 1.6rem;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  border-top: 1px solid transparent;
  pointer-events: none;
  transition: max-height .36s ease, opacity .28s ease, padding .32s ease, border-color .28s ease;
}
.audit-review-dialog[data-audit-stage="price"] .audit-story {
  max-height: 48rem;
  padding: 1.25rem 1.6rem .65rem;
  opacity: 1;
  visibility: visible;
  border-top-color: var(--line);
  pointer-events: auto;
}
.audit-story.is-middle-leaving > section {
  opacity: 0;
  transition: opacity .12s ease;
}
.audit-middle > .audit-training {
  padding: 1rem 1.6rem .9rem;
  border-top: 1px solid var(--line);
}
.audit-middle > .audit-training.is-middle-entering {
  animation: audit-middle-in .16s ease both;
}
@keyframes audit-middle-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.audit-story h4 { margin: 0 0 .5rem; color: var(--muted); font-size: .75rem; font-weight: 650; }
.audit-story > section {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.audit-condition-card,
.audit-price-card {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: .75rem .85rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
}
.audit-condition-card {
  border-color: #b4790e;
  background: #fbf3e3;
}
.audit-condition-card.is-empty {
  border-color: var(--line);
  background: var(--paper, #f7f7f5);
}
.audit-condition-top {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin: 0 0 .25rem;
  color: #7a5209;
  font-weight: 650;
}
.audit-condition-card.is-empty .audit-condition-top { color: var(--ink); }
.audit-condition-desc { margin: 0; color: #8a6812; font-size: .8rem; line-height: 1.45; }
.audit-condition-card.is-empty .audit-condition-desc { color: var(--muted); }
.audit-tiers-toggle {
  margin-top: .55rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--muted);
  font: inherit;
  font-size: .75rem;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.audit-tier-list { margin-top: .6rem; padding-top: .5rem; border-top: 1px solid #ead9ae; }
.audit-tier-list p {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin: 0;
  padding: .15rem 0;
  color: var(--muted);
  font-size: .75rem;
}
.audit-tier-list .is-picked { color: var(--ink); font-weight: 650; }
.audit-price-chain {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  margin: 0 0 .5rem;
  color: var(--muted);
  font-size: .82rem;
}
.audit-price-chain b { color: var(--ink); }
.audit-price-arrow { color: #9ba0a4; }
.audit-price-final {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  margin: 0;
}
.audit-price-final span { font-size: 1.85rem; font-weight: 700; letter-spacing: -.02em; }
.audit-price-final small { color: #9ba0a4; font-size: .75rem; }
.audit-price-card h5 {
  margin: .85rem 0 .4rem;
  color: var(--ink);
  font-size: .78rem;
  font-weight: 700;
}
.audit-choices { margin: 0; }
.audit-choices div {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin: 0 0 .4rem;
}
.audit-choices dt { color: var(--ink); font-size: .78rem; font-weight: 650; }
.audit-choices dd { margin: 0; color: var(--ink); font-size: .95rem; font-weight: 700; text-align: right; }
.audit-choices .is-hit dd { color: var(--forest, #1f4d3a); }
.audit-choices em {
  margin-left: .35rem;
  color: var(--forest, #1f4d3a);
  font-style: normal;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.audit-rules-note {
  margin: auto 0 0;
  padding-top: .55rem;
  border-top: 1px solid var(--line);
  color: var(--ink);
  font-size: .8rem;
  font-weight: 550;
}
.audit-answers-empty { margin: 0; color: var(--muted); }
.audit-training { padding: 1rem 1.6rem .25rem; }
.audit-training-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .7rem;
}
.audit-training-kicker {
  margin: 0 0 .15rem;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.audit-training-head h4 {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -.01em;
}
.audit-help-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .15rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--muted);
  font: inherit;
  font-size: .78rem;
  font-weight: 500;
  cursor: pointer;
}
.audit-help-btn:hover { color: var(--ink); }
.audit-help-btn span {
  display: grid;
  width: 1.05rem;
  height: 1.05rem;
  place-items: center;
  border-radius: 50%;
  background: #ededea;
  color: var(--ink);
  font-size: .68rem;
  font-weight: 650;
}
.audit-training-card {
  display: grid;
  gap: .45rem;
  padding: .85rem 1rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: var(--paper, #f7f7f5);
}
.audit-training-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .85rem;
}
.audit-training-title { margin: 0; font-size: .88rem; font-weight: 700; }
.audit-training-card-title {
  margin: 0;
  color: var(--ink);
  font-size: .88rem;
  font-weight: 650;
  letter-spacing: -.01em;
}
.audit-training-sub { margin: 0; color: var(--ink); font-size: .84rem; font-weight: 400; line-height: 1.5; }
.audit-switch { position: relative; flex: none; width: 2.4rem; height: 1.4rem; }
.audit-switch input { opacity: 0; width: 0; height: 0; }
.audit-switch-slider {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: #d8d8d4;
  cursor: pointer;
}
.audit-switch-slider::before {
  content: "";
  position: absolute;
  top: .18rem;
  left: .18rem;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .25);
}
.audit-switch input:checked + .audit-switch-slider { background: #2f7a4f; }
.audit-switch input:checked + .audit-switch-slider::before { transform: translateX(1rem); }
.audit-train-hint { margin: 0; color: var(--muted); font-size: .8rem; font-weight: 400; line-height: 1.5; }
.audit-train-warning {
  margin: .15rem 0 0;
  padding: .5rem .7rem;
  border-left: 2px solid #c9a056;
  border-radius: 0 .4rem .4rem 0;
  background: #fbf7ee;
  color: #6d5a2e;
  font-size: .78rem;
  font-weight: 400;
  line-height: 1.45;
}
.audit-training-card.is-keeping .audit-train-warning { display: none; }
.audit-help-dialog {
  width: min(54rem, calc(100% - 1.25rem));
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 1rem;
}
.audit-help-dialog::backdrop {
  background: rgba(12, 14, 16, .72);
}
.audit-help-dialog header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.35rem .4rem;
}
.audit-help-dialog h2 { margin: 0 0 .3rem; font-size: 1.15rem; font-weight: 650; }
.audit-help-dialog header p { margin: 0; color: var(--muted); font-size: .86rem; font-weight: 400; line-height: 1.45; }
.audit-help-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  padding: 1.15rem 1.6rem 1.6rem;
}
.audit-help-cols > section {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.audit-help-cols .audit-help-tag {
  display: inline-flex;
  margin: 0 0 1rem;
  padding: .25rem .7rem;
  border-radius: 999px;
  color: inherit;
  font-size: .75rem;
  font-weight: 700;
}
.audit-help-tag.is-skip { background: #fbeeec; color: #b3402c; }
.audit-help-tag.is-add { background: #eaf4ee; color: #2f7a4f; }
.audit-help-thumbs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  gap: .55rem;
  margin: 0 0 .85rem;
}
.audit-help-thumbs img,
.audit-help-thumb-empty {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: .5rem;
  background: #ededea;
}
.audit-help-cols .audit-help-copy {
  margin: 0;
  max-width: 40ch;
  color: var(--ink);
  font-size: .88rem;
  font-weight: 450;
  line-height: 1.5;
  text-align: center;
}
.audit-discard-dialog {
  width: min(28rem, calc(100% - 1.25rem));
  padding: 1.2rem 1.3rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
}
.audit-discard-dialog h2 { margin: 0 0 .45rem; font-size: 1.15rem; }
.audit-discard-dialog p { margin: 0; color: var(--ink); font-size: .88rem; line-height: 1.45; }
.audit-discard-actions { display: flex; gap: .6rem; margin-top: 1rem; }
.audit-discard-actions button {
  flex: 1;
  min-height: 2.6rem;
  border-radius: .65rem;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.audit-discard-actions [data-audit-discard-cancel] {
  border: 1px solid var(--line);
  background: #fff;
}
.audit-discard-actions [data-audit-discard-confirm] {
  border: 0;
  background: #fbeeec;
  color: #b3402c;
}
@media (max-width: 720px) {
  .audit-help-cols { grid-template-columns: 1fr; }
}
.audit-page .app-photo { z-index: 80; }
.audit-review-actions .audit-training {
  padding: 0 0 .2rem;
}
.audit-review-actions {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: 1.15rem 1.6rem 1.4rem;
  border-top: 1px solid var(--line);
}
.audit-review-actions [data-audit-panel].is-leaving,
.audit-review-actions [data-audit-choice].is-leaving {
  opacity: 0;
  transition: opacity .16s ease;
}
.audit-review-actions [data-audit-panel].is-held,
.audit-review-actions [data-audit-choice].is-held,
.audit-review-actions [data-audit-train].is-held,
.audit-training.is-held {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.audit-review-actions [data-audit-panel].is-entering,
.audit-review-actions [data-audit-choice].is-entering,
.audit-review-actions [data-audit-train].is-entering,
.audit-training.is-entering {
  animation: audit-stage-in .4s ease both;
}
.audit-review-actions.is-copy-leaving [data-audit-question],
.audit-review-actions.is-copy-leaving [data-audit-choice] .audit-choice-row {
  opacity: 0;
  transition: opacity .09s ease;
}
.audit-review-actions.is-copy-entering [data-audit-question],
.audit-review-actions.is-copy-entering [data-audit-choice] .audit-choice-row {
  animation: audit-footer-copy-in .15s ease both;
}
@keyframes audit-footer-copy-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes audit-stage-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .audit-story,
  .audit-photo-frame,
  .audit-middle.is-resizing { transition: none; }
  .audit-review-actions [data-audit-panel].is-leaving,
  .audit-review-actions [data-audit-panel].is-entering {
    animation: none;
    transition: none;
    opacity: 1;
    transform: none;
  }
}
.audit-review-actions > [data-audit-panel] > p,
.audit-review-actions [data-audit-choice] > p,
.audit-review-actions.audit-verdict {
  margin: 0;
  color: var(--ink);
  font-size: 1.22rem;
  font-weight: 650;
  text-align: center;
}
.audit-review-actions .audit-training p {
  text-align: left;
}
.audit-ask {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .2rem;
  margin-bottom: .45rem;
  line-height: 1.2;
}
.audit-ask-lead {
  color: var(--muted);
  font-size: 1rem;
  font-weight: 650;
}
.audit-ask-name {
  color: var(--ink);
  font-size: 1.45rem;
  font-weight: 750;
  font-style: normal;
  letter-spacing: -.015em;
}
.audit-choice-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
}
.audit-correct,
.audit-wrong {
  width: 100%;
  min-height: 3.4rem;
  border: 0;
  border-radius: .85rem;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
}
.audit-correct { background: #2f7a4f; color: #fff; }
.audit-wrong { background: #fbeeec; color: #b3402c; }
.audit-move {
  margin: 0 1.6rem 1.4rem;
  padding: 1rem 1.1rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: #f7f6f3;
}
.audit-move h3 {
  margin: 0 0 .35rem;
  font-size: 1rem;
}
.audit-move p {
  margin: 0 0 .85rem;
  color: var(--ink);
  font-size: .86rem;
  line-height: 1.45;
}
.audit-move label {
  display: grid;
  gap: .3rem;
  margin: 0 0 .7rem;
  color: var(--muted);
  font-size: .78rem;
}
.audit-move input {
  min-height: 2.6rem;
  padding: .45rem .7rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: #fff;
  font: inherit;
  color: var(--ink);
}
.audit-move button {
  width: 100%;
  min-height: 2.8rem;
  border: 0;
  border-radius: .7rem;
  background: var(--forest);
  color: #fff;
  font: inherit;
  font-weight: 650;
  cursor: pointer;
}
.audit-moved {
  margin: 0 1.6rem 1.4rem;
  color: var(--muted);
  font-size: .86rem;
}
.shops-hub-mobile-title {
  margin: 0 0 1rem;
  font: 650 1.7rem/1.1 var(--font-sans);
  letter-spacing: -.03em;
}
.shops-hub-trustee { font: 650 .92rem/1.3 var(--font-sans); color: var(--accent-deep); text-decoration: none; }
.header-actions .shops-hub-add { background: var(--ink); }
.shops-hub-kpi-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0 0 .55rem;
  color: var(--muted);
  font: 650 .82rem/1.3 var(--font-sans);
}
.shops-hub-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin: 0 0 1.1rem; padding: 0; list-style: none; }
.shops-hub-kpis li { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: .95rem 1rem; }
.shops-hub-kpis strong { display: block; font: 700 1.45rem/1.1 var(--font-sans); }
.shops-hub-kpis small { font-size: .85rem; color: var(--muted); font-weight: 650; }
.shops-hub-kpis span { display: block; margin-top: .15rem; color: var(--muted); font-size: .82rem; }
.shops-hub-kpis .is-alert { color: #a94735; }
.shops-hub-workspace { display: grid; grid-template-columns: 2fr 1fr; gap: 1rem; align-items: stretch; min-height: 0; }
.shops-hub-map {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
}
.shops-hub-card-head { flex: 0 0 auto; padding: 1rem 1.15rem .75rem; }
.shops-hub-card-head h2 { margin: 0 0 .2rem; font: 650 1rem/1.25 var(--font-sans); }
.shops-hub-card-head p { margin: 0; color: var(--muted); font-size: .75rem; }
.shops-hub-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1rem;
  margin: .7rem 0 0;
  padding: 0;
  list-style: none;
  font: 550 .72rem/1.3 var(--font-sans);
  color: var(--muted);
}
.shops-hub-legend li { display: inline-flex; align-items: center; gap: .35rem; }
.shops-hub-dot {
  display: inline-block;
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #3d7a62;
  flex: 0 0 auto;
}
.shops-hub-dot.is-confident { background: #3d7a62; }
.shops-hub-dot.is-quiet { background: #e08a2c; }
.shops-hub-dot.is-dropped { background: #c23b2a; }
.shops-hub-flag {
  display: inline-grid;
  place-items: center;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
}
.shops-hub-flag.is-warn { color: #d4a017; font-size: .85rem; }
.shops-hub-flag.is-wait {
  min-width: 1.05rem;
  height: 1.05rem;
  padding: 0 .2rem;
  border-radius: 999px;
  background: #c23b2a;
  color: #fff;
  font-size: .58rem;
}
.shops-hub-marker span,
.shops-hub-pin {
  display: inline-flex !important;
  align-items: center;
  gap: .35rem;
  background: var(--ink) !important;
  place-items: unset;
}
.shops-hub-chart { flex: 1 1 auto; min-height: 18rem; height: auto; border-radius: 0; }
.shops-hub-map .shop-usage-unplaced { flex: 0 0 auto; padding: 0 1.15rem .85rem; }
.shops-hub-panel { display: flex; flex-direction: column; min-height: 0; padding: 0; overflow: hidden; }
.shops-hub-search { padding: .85rem .9rem; border-bottom: 1px solid var(--line); }
.shops-hub-search input { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: .6rem .7rem; background: var(--paper); }
.shops-hub-list { margin: 0; padding: .4rem; list-style: none; overflow: auto; flex: 1; }
.shops-hub-row button {
  display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .7rem;
  border: 0; background: none; border-radius: 10px; padding: .7rem .75rem; text-align: left; cursor: pointer;
}
.shops-hub-row.is-selected button, .shops-hub-row button:hover { background: color-mix(in srgb, var(--sage) 35%, #fff); }
.shops-hub-row strong, .shops-hub-row small { display: block; }
.shops-hub-row strong { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .3rem; }
.shops-hub-row small { color: var(--muted); font-size: .75rem; margin-top: .15rem; }
.shops-hub-signal {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: .55rem 0 0 !important;
  color: var(--ink) !important;
  font: 650 .82rem/1.3 var(--font-sans) !important;
}
.shops-hub-cover {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  margin: .7rem 0 0;
  padding: .65rem .7rem;
  border-radius: 10px;
  background: #f8e8e5;
  color: #8a3326;
  font-size: .78rem;
  line-height: 1.4;
}
.shops-hub-cover[hidden] { display: none; }
.shops-hub-cover p { margin: 0; }
.shops-hub-cover a { color: inherit; font-weight: 700; }
.shops-hub-pct { font: 700 .85rem/1 var(--font-sans); color: var(--accent-deep); }
.shops-hub-pct.is-zero { color: #a94735; }
.shops-hub-detail {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 1rem 1.05rem 1.1rem;
}
.shops-hub-detail[hidden] { display: none; }
.shops-hub-back { align-self: flex-start; border: 0; background: none; padding: 0; margin-bottom: .6rem; color: var(--muted); font: 650 .82rem/1.3 var(--font-sans); cursor: pointer; }
.shops-hub-detail h2 { margin: 0; font: 700 1.15rem/1.2 var(--font-sans); }
.shops-hub-detail > p { margin: .15rem 0 0; color: var(--muted); font-size: .82rem; }
.shops-hub-detail-kicker { margin: .9rem 0 .45rem !important; font: 700 .72rem/1.2 var(--font-sans); letter-spacing: .04em; text-transform: uppercase; }
.shops-hub-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-bottom: 1rem; }
.shops-hub-detail-grid div { background: var(--paper); border-radius: 10px; padding: .7rem .75rem; }
.shops-hub-detail-grid strong { display: block; font: 700 1.15rem/1.1 var(--font-sans); }
.shops-hub-detail-grid span { display: block; margin-top: .1rem; color: var(--muted); font-size: .72rem; }
.shops-hub-detail-grid .is-alert { color: #a94735; }
.shops-hub-edit { display: grid; gap: .55rem; margin: 0 0 1rem; }
.shops-hub-edit label { display: grid; gap: .25rem; font: 650 .78rem/1.3 var(--font-sans); }
.shops-hub-edit label span { font-weight: 500; color: var(--muted); }
.shops-hub-edit input { border: 1px solid var(--line); border-radius: 9px; padding: .5rem .65rem; font: 400 .95rem/1.3 var(--font-sans); }
.shops-hub-detail-actions {
  position: sticky;
  bottom: 0;
  z-index: 1;
  margin-top: auto;
  display: grid;
  gap: .55rem;
  padding-top: .65rem;
  background: #fff;
  box-shadow: 0 -10px 12px -8px rgb(18 24 42 / .14);
}
.shops-hub-detail-primary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
}
.shops-hub-detail-primary:has(> :only-child) { grid-template-columns: 1fr; }
.shops-hub-detail-primary .ui-primary,
.shops-hub-detail-primary .settings-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  height: 2.85rem;
  min-height: 2.85rem;
  margin: 0;
  padding: 0 .75rem;
  line-height: 1;
  box-sizing: border-box;
  text-align: center;
  text-decoration: none;
  font-size: .88rem;
}
.shops-hub-archive { width: 100%; border: 1px solid var(--line); border-radius: 10px; background: none; padding: .7rem .8rem; color: var(--muted); font: 650 .88rem/1.2 var(--font-sans); cursor: pointer; }
.shops-hub-archive-copy { margin: 0 !important; font-size: .75rem !important; }
.shops-hub-marker.is-selected span, .shops-hub-marker.is-selected { filter: none; }
.shops-hub-marker.is-selected span { background: var(--forest); }
.shop-usage-unplaced button { border: 0; background: none; color: var(--accent-deep); cursor: pointer; padding: 0; font: inherit; }
.shops-hub-dialog { width: min(28rem, calc(100vw - 2rem)); border: 0; border-radius: 16px; padding: 0; }
.shops-hub-dialog::backdrop { background: rgba(18, 24, 42, .4); }
.shops-hub-dialog-form { display: grid; gap: .7rem; padding: 1.1rem 1.15rem 1.2rem; }
.shops-hub-dialog-form header { display: flex; align-items: center; justify-content: space-between; }
.shops-hub-dialog-form h2 { margin: 0; font: 650 1.2rem/1.2 var(--font-sans); }
.shops-hub-dialog-form header button { border: 0; background: none; font-size: 1.4rem; cursor: pointer; }
.shops-hub-dialog-form label { display: grid; gap: .3rem; font: 650 .82rem/1.3 var(--font-sans); }
.shops-hub-dialog-form label span { font-weight: 500; color: var(--muted); }
.shops-hub-dialog-form input[type="text"] { border: 1px solid var(--line); border-radius: 9px; padding: .6rem .7rem; font: 400 1rem/1.3 var(--font-sans); }
.shops-hub-slots, .shops-hub-overage { margin: 0; color: var(--muted); font-size: .86rem; }
.shops-hub-settings-link { margin: 0; font-size: .86rem; }
.shops-hub-settings-link a { color: var(--accent-deep); font-weight: 650; }
.shops-hub-overage-check { display: flex !important; align-items: flex-start; gap: .5rem; font-weight: 500 !important; }
@media (max-width: 900px) {
  .shops-hub-kpis { grid-template-columns: 1fr 1fr; }
  .shops-hub-workspace { grid-template-columns: 1fr; }
  .shops-hub-map { min-height: 20rem; }
  .shops-hub-chart { min-height: 16rem; }
  .shops-hub-kpi-head { flex-wrap: wrap; }
}
@media (min-width: 900px) {
  .shops-hub-mobile-title { display: none; }
  body.shops-hub-page .app-main {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .shops-hub {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
  }
  .shops-hub-workspace { flex: 1 1 auto; }
}
@media (max-width: 720px) {
  .audit-compare,
  .audit-story { grid-template-columns: 1fr; }
  .audit-pane + .audit-pane { border-left: 0; border-top: 1px solid var(--line); }
}

.schema-page .app-main {
  max-width: none;
}
.schema-heading { margin-bottom: 1.35rem; }
.schema-floor { width: 100%; margin-bottom: 1.4rem; }
.schema-search-label {
  display: block;
  margin: 0 0 .35rem;
  color: var(--muted);
  font: 800 .72rem/1.2 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.schema-search-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem 1.1rem;
}
.schema-search { width: min(36rem, 100%); }
.schema-floor-hint,
.schema-empty {
  margin: .45rem 0 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.4;
}
.schema-back {
  display: inline-flex;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent-deep, var(--ink));
  font: 650 .92rem/1.3 var(--font-sans);
  text-decoration: underline;
  text-underline-offset: .12em;
  cursor: pointer;
}
.schema-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14.5rem, 1fr));
  gap: 1rem;
  margin: 1.15rem 0 0;
  padding: 0;
  list-style: none;
}
.schema-floor.is-in-room .schema-cards,
.schema-floor.is-in-room .schema-floor-hint,
.schema-floor.is-searching .schema-cards,
.schema-floor.is-searching .schema-floor-hint { display: none; }
.schema-card {
  display: grid;
  align-content: start;
  gap: .35rem;
  width: 100%;
  min-height: 6.4rem;
  padding: 1.15rem 1.2rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--card);
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.schema-card strong {
  font: 750 1rem/1.25 var(--font-sans);
}
.schema-card span {
  color: var(--muted);
  font-size: .82rem;
}
.schema-card.is-current,
.schema-card:hover,
.schema-card:focus-visible {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, white);
}
.schema-tree { width: 100%; }
.schema-list { margin: 0; padding: 0 0 0 1.1rem; list-style: none; }
.schema-tree > .schema-list { padding-left: 0; }
.schema-node { margin: 0.35rem 0; }
.schema-node details { border-left: 2px solid var(--line); padding-left: 0.85rem; }
.schema-tree > .schema-list > .schema-department { margin: 0.85rem 0 1.25rem; }
.schema-tree > .schema-list > .schema-department > details { border-left: 0; padding-left: 0; }
.schema-node summary,
.schema-leaf {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.85rem;
  padding: 0.55rem 0.25rem;
}
.schema-node summary { cursor: pointer; list-style: none; }
.schema-node summary::-webkit-details-marker { display: none; }
.schema-node summary:focus-visible,
.schema-leaf:focus-visible { outline: 2px solid var(--forest); outline-offset: 2px; }
.schema-title { font-weight: 700; }
.schema-count { color: var(--muted); font-size: 0.82rem; }
.schema-also { color: var(--accent, var(--muted)); font-size: 0.78rem; }
.schema-priced { color: var(--muted); font-size: 0.78rem; font-weight: 650; }
.schema-node.is-priced .schema-title { color: var(--muted); }
.schema-node.is-hit > .schema-leaf .schema-title,
.schema-node.is-hit > details > summary .schema-title {
  background: color-mix(in srgb, var(--accent) 22%, #fff4c2);
  border-radius: .2em;
  padding: 0 .12em;
}
.schema-actions { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.schema-collapse,
.schema-enable,
.schema-remove { margin: 0; }
.schema-collapse button,
.schema-enable button,
.schema-remove button,
.schema-open {
  border: 0;
  background: var(--sage, #e8efe6);
  color: var(--forest, #1c3d2a);
  border-radius: 999px;
  padding: 0.2rem 0.7rem;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
}
.schema-open { display: inline-block; }
.schema-remove button {
  background: color-mix(in srgb, var(--danger) 12%, #fff);
  color: var(--danger);
}
.schema-department > details > summary .schema-title { font-size: 1.05rem; }

body.help-wiki {
  --help-navy: #0d1826;
  --help-navy-800: #16263c;
  --help-cream: #f7f4ec;
  --help-cream-200: #f0ece1;
  --help-card: #fffdf8;
  --help-ink: #1a2130;
  --help-ink-700: #3b4454;
  --help-ink-500: #6b7385;
  --help-ink-400: #8b93a3;
  --help-line: #e4dfd0;
  --help-line-soft: #eae5d8;
  --help-accent: #2f63c4;
  --help-accent-600: #25509e;
  --help-accent-100: #e4ecfb;
  --help-amber: #b9862e;
  --help-amber-100: #f6ecd7;
  --help-display: "Fraunces", Georgia, serif;
  --help-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --accent: var(--help-navy);
  --paper: var(--help-cream);
  --ink: var(--help-ink);
}
.help-main { padding-bottom: 6rem; }
.help-layout {
  font-family: var(--help-body);
  color: var(--help-ink);
  -webkit-font-smoothing: antialiased;
}
.help-mobile-heading { margin-bottom: 1.1rem; }
@media (min-width: 900px) {
  .help-mobile-heading { display: none; }
}
.help-content-grid { display: grid; }
@media (min-width: 900px) {
  .help-content-grid {
    grid-template-columns: 17.5rem minmax(0, 1fr);
    align-items: start;
  }
}
.help-nav {
  padding: 0.25rem 0.85rem 2.5rem 0;
  border-right: 1px solid var(--help-line-soft);
}
.help-topic-select { display: none; }
@media (max-width: 899px) {
  .help-nav {
    position: relative;
    z-index: 3;
    padding: 0 0 1rem;
    border-right: 0;
  }
  .help-topic-select {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    min-height: 3rem;
    padding: 0.7rem 0.95rem;
    border: 1px solid var(--help-line);
    border-radius: 0.85rem;
    background: var(--help-card);
    color: var(--help-ink);
    font: inherit;
    font-size: 1rem;
    font-weight: 600;
    text-align: left;
    box-shadow: 0 1px 2px rgba(19, 26, 41, 0.05);
    cursor: pointer;
  }
  .help-topic-select svg {
    width: 1.15rem;
    height: 1.15rem;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 0.18s ease;
  }
  .help-nav.is-open .help-topic-select svg { transform: rotate(180deg); }
  .help-topic-menu {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 0.35rem);
    max-height: min(22rem, 58dvh);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.7rem 0.45rem 0.8rem;
    border: 1px solid var(--help-line);
    border-radius: 0.95rem;
    background: var(--help-card);
    box-shadow: 0 16px 36px -18px rgba(13, 24, 38, 0.35);
  }
  .help-nav.is-open .help-topic-menu { display: block; }
  .help-article { padding-top: 1.15rem; }
}
@media (min-width: 900px) {
  .help-nav {
    position: sticky;
    top: 0;
    max-height: calc(100dvh - 9.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
.help-topic-group + .help-topic-group { margin-top: 1.35rem; }
.help-nav-label {
  margin: 0 0 0.5rem;
  padding: 0 0.75rem;
  color: var(--help-ink-400);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}
.help-nav ul { list-style: none; margin: 0; padding: 0; }
.help-nav a {
  display: block;
  padding: 0.55rem 0.75rem;
  color: var(--help-ink-700);
  text-decoration: none;
  font-size: 0.91rem;
  font-weight: 500;
  border-radius: 0.65rem;
  border: 1px solid transparent;
}
.help-nav a:hover { background: var(--help-cream-200); color: var(--help-ink); }
.help-nav a[aria-current="page"] {
  background: var(--help-card);
  color: var(--help-ink);
  font-weight: 600;
  border-color: var(--help-line-soft);
  box-shadow: 0 1px 2px rgba(19, 26, 41, 0.06);
}
.help-article {
  padding: 2rem 1.4rem 4.5rem;
  max-width: 46rem;
}
@media (min-width: 900px) {
  .help-article { padding: 2.25rem 2.5rem 5rem; }
}
.help-badge {
  display: inline-flex;
  align-items: center;
  margin: 0 0 1rem;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}
.help-badge.is-volunteer { background: var(--help-accent-100); color: var(--help-accent-600); }
.help-badge.is-owner { background: var(--help-amber-100); color: var(--help-amber); }
.help-topic-heading {
  margin: 0 0 0.6rem;
  font-family: var(--help-display);
  font-size: clamp(1.7rem, 4vw, 2.15rem);
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.help-topic-blurb {
  margin: 0 0 1.35rem;
  max-width: 64ch;
  color: var(--help-ink-500);
  font-size: 1.06rem;
  line-height: 1.6;
}
.help-open { margin: 0 0 0.4rem; }
.help-cta {
  display: inline-flex;
  align-items: center;
  background: var(--help-navy);
  color: #fff;
  padding: 0.7rem 1.2rem;
  border-radius: 0.7rem;
  font-size: 0.91rem;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(19, 26, 41, 0.06);
}
.help-cta:hover { background: var(--help-navy-800); color: #fff; }
.help-prose {
  font-family: var(--help-body);
  font-size: 0.97rem;
  line-height: 1.65;
  color: var(--help-ink-700);
}
.help-prose h2, .help-prose h3 {
  font-family: var(--help-body);
  font-size: 1.18rem;
  font-weight: 600;
  color: var(--help-ink);
  margin: 2.2rem 0 0.75rem;
}
.help-prose p { margin: 0 0 0.75rem; }
.help-prose a { color: var(--help-accent-600); font-weight: 600; }
.help-prose code {
  background: var(--help-cream-200);
  border: 1px solid var(--help-line);
  border-radius: 5px;
  padding: 0.1rem 0.35rem;
  font-size: 0.84rem;
}
.help-prose ol {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: help-step;
}
.help-prose ol li {
  counter-increment: help-step;
  display: flex;
  gap: 0.85rem;
  padding: 0.85rem 0;
  border-top: 1px solid var(--help-line-soft);
  font-size: 0.97rem;
  line-height: 1.6;
}
.help-prose ol li:first-child { border-top: none; }
.help-prose ol li::before {
  content: counter(help-step);
  flex: none;
  width: 1.6rem;
  height: 1.6rem;
  margin-top: 0.1rem;
  border-radius: 50%;
  background: var(--help-cream-200);
  color: var(--help-ink-700);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 700;
}
.help-prose ul { margin: 0 0 0.75rem; padding-left: 1.2rem; }
.help-callout {
  background: var(--help-card);
  border: 1px solid var(--help-line-soft);
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
  margin: 0.9rem 0 0;
  font-size: 0.94rem;
  line-height: 1.6;
}
.help-callout.is-info { border-left: 3px solid var(--help-accent); }
.help-callout.is-warn { border-left: 3px solid var(--help-amber); }
.help-shots { margin: 1.6rem 0 0.4rem; }
.help-shots-tabs {
  display: inline-flex;
  background: var(--help-cream-200);
  border-radius: 0.7rem;
  padding: 0.25rem;
  margin-bottom: 1.1rem;
}
.help-shots-tabs button {
  border: 0;
  border-radius: 0.5rem;
  padding: 0.5rem 1.1rem;
  font-size: 0.84rem;
  font-weight: 600;
  background: transparent;
  color: var(--help-ink-500);
  cursor: pointer;
}
.help-shots-tabs button[aria-selected="true"] {
  background: var(--help-navy);
  color: #fff;
}
.help-shot {
  margin: 0;
  background: var(--help-cream-200);
  border-radius: 1.25rem;
  padding: 1.5rem;
  display: flex;
  justify-content: center;
}
.help-shot img {
  width: 100%;
  max-width: 17.5rem;
  height: auto;
  border-radius: 1.4rem;
  border: 8px solid var(--help-navy);
  background: #fff;
  box-shadow: 0 24px 60px -16px rgba(13, 24, 38, 0.35);
}
.help-shot.is-desktop img {
  max-width: 100%;
  border-width: 1px;
  border-radius: 0.9rem;
  border-color: var(--help-line);
}
.help-shot figcaption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.help-ask {
  --help-navy: #0d1826;
  --help-cream: #f7f4ec;
  --help-card: #fffdf8;
  --help-ink: #1a2130;
  --help-ink-500: #6b7385;
  --help-ink-700: #3b4454;
  --help-line: #e4dfd0;
  --help-line-soft: #eae5d8;
  --help-accent: #2f63c4;
  --help-accent-600: #25509e;
  --help-accent-100: #e4ecfb;
  --help-amber: #b9862e;
  --help-amber-100: #f6ecd7;
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: calc(5.25rem + env(safe-area-inset-bottom));
  z-index: 50;
  font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif;
}
@media (min-width: 900px) {
  .help-ask { bottom: 1.75rem; right: 1.75rem; }
}
.help-ask-header-btn,
.help-ask-fab {
  display: grid;
  grid-template: 1fr / 1fr;
  width: 2.9rem;
  height: 2.9rem;
  padding: 0;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: white;
  color: var(--ink);
  box-shadow: 0 1px 2px rgba(33, 45, 59, .05);
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.help-ask-header-btn svg,
.help-ask-fab svg {
  width: 1.45rem;
  height: 1.45rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.help-ask-fab {
  display: none;
  transition: opacity 0.2s ease, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (min-width: 900px) {
  .help-ask-header-btn { display: none; }
  .help-ask-fab { display: grid; }
}
.help-ask.is-open .help-ask-fab {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.88);
}
.help-ask-backdrop {
  position: fixed;
  inset: 0;
  z-index: 50;
  border: 0;
  padding: 0;
  background: rgba(13, 24, 38, 0.46);
  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  transition: opacity 0.22s ease;
}
.help-ask.is-open .help-ask-backdrop {
  opacity: 1;
  pointer-events: auto;
}
@media (min-width: 900px) {
  .help-ask-backdrop { display: none; }
}
html.help-ask-lock { overflow: hidden; }
.help-ask-panel {
  position: fixed;
  z-index: 51;
  right: max(1rem, env(safe-area-inset-right));
  bottom: calc(5.25rem + env(safe-area-inset-bottom));
  width: min(25rem, calc(100vw - 1.5rem));
  height: min(37.5rem, calc(100vh - 7rem));
  background: var(--help-cream);
  border: 1px solid rgba(13, 24, 38, 0.06);
  border-radius: 1.35rem;
  box-shadow: 0 24px 60px -16px rgba(13, 24, 38, 0.35);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translate3d(10px, 14px) scale(0.72);
  transform-origin: 100% 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
.help-ask.is-open .help-ask-panel {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}
@media (min-width: 900px) {
  .help-ask-panel { bottom: 1.75rem; right: 1.75rem; }
}
@media (max-width: 899px) {
  .help-ask-panel {
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    width: min(25rem, calc(100vw - 1.5rem));
    height: min(36rem, calc(100dvh - 5.5rem));
    transform: translate(-50%, -46%) scale(0.94);
    transform-origin: center center;
  }
  .help-ask.is-open .help-ask-panel {
    transform: translate(-50%, -50%) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .help-ask-panel,
  .help-ask-backdrop,
  .help-ask-fab { transition: none; }
}
.help-ask-panel[hidden] { display: none; }
.help-ask-panel header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.1rem;
  background: var(--help-navy);
  color: #fff;
  flex: none;
}
.help-ask-logo {
  width: 2.15rem;
  height: 2.15rem;
  flex: none;
  border-radius: 0.55rem;
  object-fit: contain;
}
.help-ask-panel header div { flex: 1; line-height: 1.3; }
.help-ask-panel header strong { display: block; font-size: 0.95rem; }
.help-ask-panel header small {
  display: block;
  margin-top: 0.1rem;
  color: #98a4ba;
  font-size: 0.75rem;
}
.help-ask-panel header button {
  width: 1.75rem;
  height: 1.75rem;
  border: 0;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.08);
  color: #c7cede;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.help-ask-panel header button:hover { background: rgba(255, 255, 255, 0.16); color: #fff; }
.help-ask-log {
  flex: 1;
  overflow: auto;
  padding: 1.1rem 1rem 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.help-ask-welcome h3 {
  margin: 0 0 0.35rem;
  font-family: Fraunces, Georgia, serif;
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--help-ink);
}
.help-ask-welcome p {
  margin: 0;
  color: var(--help-ink-500);
  font-size: 0.84rem;
  line-height: 1.5;
}
.help-ask-msg {
  display: flex;
  gap: 0.55rem;
  max-width: 88%;
  font-size: 0.875rem;
  line-height: 1.55;
}
.help-ask-msg.is-user { align-self: flex-end; flex-direction: row-reverse; }
.help-ask-avatar {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 700;
}
.help-ask-msg.is-bot .help-ask-avatar { background: var(--help-accent-100); color: var(--help-accent-600); }
.help-ask-msg.is-user .help-ask-avatar { background: var(--help-amber-100); color: var(--help-amber); }
.help-ask-bubble {
  padding: 0.65rem 0.85rem;
  border-radius: 1rem;
}
.help-ask-msg.is-bot .help-ask-bubble {
  background: var(--help-card);
  border: 1px solid var(--help-line-soft);
  color: var(--help-ink);
  border-top-left-radius: 0.35rem;
}
.help-ask-msg.is-user .help-ask-bubble {
  background: var(--help-navy);
  color: #fff;
  border-top-right-radius: 0.35rem;
}
.help-ask-typing { display: inline-flex; gap: 0.25rem; align-items: center; height: 1rem; }
.help-ask-typing i {
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 50%;
  background: var(--help-ink-500);
  animation: help-ask-bounce 1.1s infinite ease-in-out;
}
.help-ask-typing i:nth-child(2) { animation-delay: 0.15s; }
.help-ask-typing i:nth-child(3) { animation-delay: 0.3s; }
@keyframes help-ask-bounce {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
  30% { transform: translateY(-4px); opacity: 1; }
}
.help-ask-starters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.15rem 1rem 0.75rem;
}
.help-ask-starters button {
  border: 1px solid var(--help-line);
  border-radius: 999px;
  background: var(--help-card);
  color: var(--help-ink-700);
  font-size: 0.78rem;
  font-weight: 500;
  padding: 0.5rem 0.8rem;
  text-align: left;
  cursor: pointer;
}
.help-ask-starters button:hover {
  border-color: var(--help-accent);
  background: var(--help-accent-100);
  color: var(--help-accent-600);
}
.help-ask-cites {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.55rem;
}
.help-ask-cites button {
  border: 0;
  border-radius: 999px;
  background: var(--help-navy);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.35rem 0.7rem;
  cursor: pointer;
}
.help-ask-cites button:hover { background: var(--help-accent); }
.help-ask-form {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 0.85rem 0.9rem;
  border-top: 1px solid var(--help-line-soft);
  background: var(--help-cream);
}
.help-ask-form input {
  flex: 1;
  border: 1px solid var(--help-line);
  border-radius: 0.9rem;
  padding: 0.7rem 0.85rem;
  background: var(--help-card);
  font-size: 0.875rem;
}
.help-ask-form button {
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 50%;
  background: var(--help-navy);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex: none;
}
.help-ask-form button:disabled { opacity: 0.4; cursor: default; }
