/* Material-inspired Hirono journal: ivory paper, warm gray and charcoal.
   Rust and ochre are sparse accents; green is reserved for income meaning.
   Presentation only: existing actions, artwork and domain data stay intact. */
:is(.ledger-page, .recipes-page, .projects-page) {
  --module-ink: var(--atelier-ink, #3c3531);
  --module-muted: var(--atelier-muted, #72665e);
  --module-accent: var(--atelier-primary, #49413d);
  --module-line: var(--atelier-line, #ddd5cb);
  --module-paper: var(--atelier-surface, #fcfaf7);
  --module-bg: var(--atelier-paper, #f3f0eb);
  --module-soft: var(--atelier-soft, #ebe6de);
  --module-ochre: var(--atelier-ochre, #856435);
  --module-warm: #f3f0eb;
  --module-on-soft: #655b53;
  --module-action-hover: #332d2a;
  width: 100%;
  max-width: 1320px;
  min-width: 0;
  margin-inline: auto;
  padding: 32px 40px 34px;
  color: var(--module-ink);
  font-size: 14px;
  line-height: 1.75;
}
.ledger-page {
  --ledger-ink: var(--module-ink);
  --ledger-muted: var(--module-muted);
  --ledger-green: #52634b;
  --ledger-clay: var(--module-ochre);
  --ledger-line: var(--module-line);
  --ledger-paper: var(--module-paper);
  --ledger-action-size: 34px;
}
.recipes-page {
  --module-accent: var(--atelier-ochre, #856435);
  --module-action-hover: #6d4f29;
  --recipe-ink: var(--module-ink);
  --recipe-muted: var(--module-muted);
  --recipe-moss: var(--module-accent);
  --recipe-caramel: var(--module-ochre);
  --recipe-line: var(--module-line);
}
.projects-page {
  --module-accent: var(--atelier-accent, #965947);
  --module-action-hover: #7c4638;
  --projects-ink: var(--module-ink);
  --projects-muted: var(--module-muted);
  --projects-moss: var(--module-accent);
  --projects-line: var(--module-line);
  --projects-paper: var(--module-paper);
}
:is(.ledger-page, .recipes-page, .projects-page) :is(button, a, input, select, textarea):focus-visible {
  outline: 2px solid var(--module-accent);
  outline-offset: 4px;
}
:is(.ledger-page, .recipes-page, .projects-page) :is(input, select, textarea) {
  accent-color: var(--module-accent);
}
:is(.ledger-page, .recipes-page, .projects-page) button:disabled {
  cursor: not-allowed;
  opacity: .5;
}
.ledger-page .ledger-eyebrow,
.recipes-page .recipes-eyebrow,
.projects-page .projects-eyebrow {
  color: #72665e;
  font: 500 10px/1.7 var(--mono, "Consolas", monospace);
  letter-spacing: 1.8px;
}
.ledger-page .ledger-hero,
.recipes-page .recipes-hero,
.projects-page .projects-hero {
  position: relative;
  border: 1px solid #ddd5cb;
  border-radius: 22px;
  background: linear-gradient(112deg, #fcfaf7 20%, #f3f0eb 73%, #ebe6de 100%);
  box-shadow: inset 0 1px 0 #fff, 0 8px 30px #3c353105;
}
.ledger-page .ledger-hero,
.recipes-page .recipes-hero { padding: 30px 36px; margin-bottom: 26px; min-height: 226px; }
.ledger-page .ledger-hero h1,
.recipes-page .recipes-hero h1,
.projects-page .projects-hero h1 {
  margin: 10px 0 10px;
  color: var(--module-ink);
  font-family: "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  font-size: 28px;
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: .3px;
}
.ledger-page .ledger-hero p,
.recipes-page .recipes-hero p,
.projects-page .projects-hero-description { color: var(--module-muted); font-size: 13px; line-height: 1.95; }
.ledger-page .ledger-primary,
.recipes-page .recipes-primary,
.projects-page .projects-primary {
  min-height: 44px;
  padding: 11px 18px;
  border: 1px solid var(--module-accent);
  border-radius: 10px;
  background: var(--module-accent);
  color: #fcfaf7;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 3px 7px #3c35310d;
}
.ledger-page .ledger-soft,
.recipes-page .recipes-secondary,
.projects-page .projects-secondary {
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #ddd5cb;
  border-radius: 10px;
  background: #fcfaf7d9;
  color: #49413d;
  font-size: 13px;
  font-weight: 500;
}
.ledger-page .ledger-soft:hover,
.recipes-page .recipes-secondary:hover,
.projects-page .projects-secondary:hover { background: #ebe6de; border-color: #b7aca1; color: #49413d; }
.projects-page .projects-primary:hover { background: #49413d; border-color: #49413d; }
.ledger-page .ledger-photo,
.recipes-page .recipes-hero-art {
  padding: 7px 7px 5px;
  border: 1px solid #ddd5cb;
  border-radius: 4px;
  background: #fcfaf7;
  box-shadow: 2px 6px 14px #3c353112;
  transform: rotate(3deg);
}
.ledger-page .ledger-photo { width: 139px; margin-right: 8px; }
.ledger-page .ledger-photo img { height: 132px; }
.recipes-page .recipes-hero-art { width: 134px; margin-right: 10px; }
.recipes-page .recipes-hero-art img { height: 155px; }
.ledger-page .ledger-photo figcaption,
.recipes-page .recipes-art-caption { color: #72665e; font: italic 11px/1.8 Georgia, serif; }
.ledger-page .ledger-section-title h2,
.ledger-page .ledger-calendar h2,
.recipes-page .recipes-section-head h2,
.recipes-page .recipes-meal-title h2,
.projects-page .projects-collection-head h2 {
  color: var(--module-ink);
  font-size: 20px;
  font-weight: 650;
  line-height: 1.6;
  letter-spacing: .1px;
}
.ledger-page .ledger-categories,
.ledger-page .ledger-records,
.ledger-page .ledger-calendar,
.recipes-page .recipes-wheel-card,
.recipes-page .recipes-meal-card,
.recipes-page .recipes-selections,
.recipes-page .recipes-history {
  border: 1px solid var(--module-line);
  border-radius: 18px;
  background: var(--module-paper);
  box-shadow: 0 4px 18px #3c353104;
}
.ledger-page .ledger-footer,
.recipes-page .recipes-footer,
.projects-page .projects-page-foot { margin-top: 26px; color: #72665e; font-size: 11px; line-height: 1.9; }

/* Ledger: a clear numerical overview, followed by the month and its entries. */
.ledger-page .ledger-hero-actions { margin-top: 22px; gap: 10px; }
.ledger-page .ledger-monthbar { margin-bottom: 14px; gap: 12px 18px; }
.ledger-page .ledger-period-controls { gap: 16px; }
.ledger-page .ledger-month-label,
.ledger-page .ledger-year-label { color: var(--module-ink); font-size: 20px; font-weight: 600; }
.ledger-page .ledger-month-label { min-width: 152px; }
.ledger-page .ledger-period-caption { gap: 5px 14px; margin: 0 0 22px; color: var(--module-muted); font-size: 12px; }
.ledger-page .ledger-period-caption > span:first-child { color: #49413d; }
.ledger-page .ledger-month-count { padding: 4px 10px; color: #49413d; background: #ebe6de; border-radius: 20px; font-size: 12px; }
.ledger-page :is(.ledger-period-switch, .ledger-type-filter, .ledger-calendar-mode) {
  padding: 4px;
  border: 1px solid #ddd5cb;
  border-radius: 10px;
  background: #f3f0eb;
  gap: 3px;
}
.ledger-page :is(.ledger-period-switch, .ledger-type-filter, .ledger-calendar-mode) button {
  min-height: 36px;
  padding-inline: 13px;
  border-radius: 7px;
  color: #72665e;
  font-size: 13px;
}
.ledger-page :is(.ledger-period-switch, .ledger-type-filter, .ledger-calendar-mode) button.selected {
  color: #49413d;
  background: var(--module-paper);
  font-weight: 600;
  box-shadow: 0 1px 4px #3c353112;
}
.ledger-page :is(.ledger-period-switch, .ledger-type-filter, .ledger-calendar-mode) button:hover:not(.selected) { background: #ebe6de; color: #49413d; }
.ledger-page .ledger-icon-button { border-radius: 9px; color: #72665e; }
.ledger-page .ledger-icon-button:hover { background: #ebe6de; color: #49413d; }
.ledger-page :is(.ledger-this-month, .ledger-export, .ledger-calendar-clear) { min-height: 36px; border-color: #ddd5cb; background: #f3f0eb; color: #49413d; border-radius: 8px; font-size: 12px; }
.ledger-page :is(.ledger-this-month, .ledger-export, .ledger-calendar-clear):hover { border-color: #b7aca1; background: #ebe6de; }
.ledger-page .ledger-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 26px; }
.ledger-page .ledger-stat {
  display: block;
  padding: 23px 25px 20px;
  border: 1px solid var(--module-line);
  border-top: 3px solid #8b7f73;
  border-radius: 15px;
  background: #fcfaf7;
  box-shadow: 0 4px 16px #3c353104;
}
.ledger-page .ledger-stat > span { color: #49413d; font-size: 13px; font-weight: 500; }
.ledger-page .ledger-stat > span .ledger-icon { width: 17px; height: 17px; }
.ledger-page .ledger-stat strong { margin-top: 13px; color: #49413d; font-size: 34px; line-height: 1.3; font-weight: 650; letter-spacing: -.8px; }
.ledger-page .ledger-stat strong[data-long-amount] { font-size: clamp(16px, 1.7vw, 24px); }
.ledger-page .ledger-stat strong small { color: #72665e; font-size: 16px; margin-right: 7px; }
.ledger-page .ledger-stat p { margin-top: 10px; color: #72665e; font-size: 12px; line-height: 1.8; }
.ledger-page .ledger-stat.expense { border-top-color: #b7aca1; background: #fcfaf7; }
.ledger-page .ledger-stat.expense strong { color: var(--module-ochre); }
.ledger-page .ledger-stat.expense strong small { color: #72665e; }
.ledger-page .ledger-stat.balance { border-top-color: #8b7f73; background: #ebe6de; }
.ledger-page .ledger-stat.balance strong { color: #49413d; }
.ledger-page .ledger-calendar { padding: 26px; margin-bottom: 26px; }
.ledger-page .ledger-calendar > header { margin-bottom: 22px; }
.ledger-page .ledger-calendar > header p { color: var(--module-muted); font-size: 12px; }
.ledger-page .ledger-calendar-weekdays,
.ledger-page .ledger-calendar-grid { gap: 8px; }
.ledger-page .ledger-calendar-weekdays { color: #72665e; font-size: 12px; padding-bottom: 12px; }
.ledger-page .ledger-calendar-weekdays > :is(span:first-child, span:last-child) { color: #72665e; }
.ledger-page .ledger-calendar-day { min-height: 100px; padding: 11px 7px 9px; border: 1px solid #ddd5cb; border-radius: 10px; background: #f3f0eb; gap: 6px; }
.ledger-page .ledger-calendar-day time { color: #49413d; font-size: 14px; }
.ledger-page .ledger-calendar-day .ledger-calendar-amount { color: #49413d; font-size: 14px; font-weight: 600; }
.ledger-page .ledger-calendar-day > small { color: #72665e; font-size: 10px; }
.ledger-page .ledger-calendar-day.has-record.positive { background: #ebe6de; border-color: #ddd5cb; }
.ledger-page .ledger-calendar-day.has-record.negative { background: #f3f0eb; border-color: #ddd5cb; }
.ledger-page .ledger-calendar-day.has-record.neutral { background: #f3f0eb; border-color: #ddd5cb; }
.ledger-page .ledger-calendar-day.empty.is-future { border-color: #ddd5cb; background: #fcfaf7; }
.ledger-page .ledger-calendar-day.empty .ledger-calendar-amount { color: #72665e; font-weight: 400; }
.ledger-page .ledger-calendar-day:hover { border-color: #b7aca1; background: #ebe6de; box-shadow: 0 2px 6px #3c35310a; }
.ledger-page .ledger-calendar-day.selected { padding: 10px 6px 8px; border: 2px solid #49413d; background: #ebe6de; box-shadow: 0 0 0 2px #ebe6de; }
.ledger-page .ledger-calendar-day.selected time > span,
.ledger-page .ledger-calendar-day.is-today time > span { background: #49413d; color: #fcfaf7; }
.ledger-page .ledger-calendar > footer { border-color: #ddd5cb; padding-top: 17px; margin-top: 20px; }
.ledger-page .ledger-calendar > footer p { color: #72665e; font-size: 11px; }
.ledger-page .ledger-calendar > footer > div { color: #72665e; font-size: 12px; }
.ledger-page .ledger-columns { grid-template-columns: minmax(300px, .78fr) minmax(0, 1.6fr); gap: 22px; }
.ledger-page .ledger-categories,
.ledger-page .ledger-records { padding: 26px; }
.ledger-page .ledger-categories { background: linear-gradient(180deg, #fcfaf7, #f3f0eb); }
.ledger-page .ledger-section-title { align-items: center; gap: 12px; margin-bottom: 22px; }
.ledger-page .ledger-section-title > span { color: #72665e; font-size: 12px; }
.ledger-page .ledger-section-title h2 small { margin-left: 5px; padding: 3px 8px; border-radius: 7px; color: #655b53; background: #ebe6de; font-size: 12px; font-weight: 500; }
.ledger-page .ledger-category-overview { margin-bottom: 10px; border-color: #ddd5cb; padding-bottom: 20px; }
.ledger-page .ledger-category-overview > div > span { color: #72665e; font-size: 12px; }
.ledger-page .ledger-category-overview strong { color: #72665e; font-size: 24px; letter-spacing: -.4px; }
.ledger-page .ledger-composition { height: 8px; border-radius: 5px; background: #ebe6de; }
.ledger-page .ledger-category-bar { padding: 11px 5px; border-radius: 11px; gap: 11px; }
.ledger-page .ledger-category-bar:hover { background: #ebe6de; }
.ledger-page .ledger-category-bar.selected { padding-inline: 5px; background: #ebe6de; border-color: #b7aca1; }
.ledger-page .ledger-bar-copy b { color: #49413d; font-size: 13px; font-weight: 600; }
.ledger-page .ledger-bar-copy small { color: #72665e; font-size: 11px; }
.ledger-page .ledger-bar-copy > i { height: 4px; background: #ebe6de; }
.ledger-page .ledger-category-bar > strong { color: #49413d; font-size: 13px; font-weight: 500; }
.ledger-page .ledger-category-help { color: #72665e; border-color: #ddd5cb; font-size: 12px; }
.ledger-page .ledger-records-context { margin-top: -11px; margin-bottom: 18px; color: #72665e; font-size: 12px; }
.ledger-page .ledger-records-context > span { color: #72665e; }
.ledger-page .ledger-filters { gap: 8px; margin-bottom: 9px; }
.ledger-page .ledger-filter-category select,
.ledger-page .ledger-year-label input,
.ledger-page .ledger-search { border-color: #ddd5cb; background: #fcfaf7; border-radius: 9px; }
.ledger-page .ledger-filter-category select,
.ledger-page .ledger-search input { color: #49413d; font-size: 13px; }
.ledger-page .ledger-search { padding-right: 4px; }
.ledger-page .ledger-search input::placeholder { color: #72665e; }
.ledger-page .ledger-search .ledger-icon { color: #72665e; }
.ledger-page .ledger-search button { min-width: 48px; min-height: 34px; background: #ebe6de; color: #49413d; border-radius: 6px; font-size: 12px; }
.ledger-page .ledger-search-help { margin-bottom: 20px; color: #72665e; font-size: 11px; }
.ledger-page .ledger-search:focus-within { border-color: #b7aca1; box-shadow: 0 0 0 3px #ebe6de; }
.ledger-page .ledger-day { margin-bottom: 18px; }
.ledger-page .ledger-day > header { padding: 12px 0; border-color: #ddd5cb; }
.ledger-page .ledger-day h3 { color: #49413d; font-size: 13px; font-weight: 600; }
.ledger-page .ledger-day-totals { font-size: 11px; }
.ledger-page .ledger-entry { grid-template-columns: 36px minmax(0, 1fr) auto auto; gap: 11px; padding: 18px 0; border-color: #ddd5cb; }
.ledger-page .ledger-entry .ledger-category-icon { width: 36px; height: 36px; border-radius: 11px; }
.ledger-page .ledger-entry-copy strong { margin-bottom: 4px; color: #49413d; font-size: 14px; font-weight: 600; }
.ledger-page .ledger-entry-copy > span { color: #72665e; font-size: 12px; line-height: 1.75; max-height: 3.5em; }
.ledger-page .ledger-entry-amount { font-size: 16px; color: var(--module-ochre); font-weight: 600; letter-spacing: -.25px; }
.ledger-page .ledger-entry-amount.income { color: var(--ledger-green); }
.ledger-page .ledger-entry-amount small { color: #72665e; font-size: 10px; }
.ledger-page .ledger-entry-actions .ledger-icon { color: #72665e; }
.ledger-page .ledger-entry-actions .ledger-icon-button:hover .ledger-icon { color: #49413d; }
.ledger-page .ledger-entry-actions [data-ledger="delete"]:hover { background: #ebe6de; }
.ledger-page .ledger-entry-actions [data-ledger="delete"]:hover .ledger-icon { color: #72665e; }
.ledger-page .ledger-empty h3 { color: #49413d; font-size: 18px; font-weight: 600; }
.ledger-page .ledger-empty p { color: #72665e; font-size: 13px; }

/* Food journal: keep the playful wheel, give the selected meal a paper card. */
.recipes-page .recipes-hero-note { margin-top: 19px; padding: 7px 11px; border: 1px solid #ddd5cb; border-radius: 8px; background: #ebe6de; color: #655b53; font-size: 12px; }
.recipes-page .recipes-datebar { gap: 12px 20px; padding: 16px 18px; margin-bottom: 24px; border: 1px solid #ddd5cb; border-radius: 13px; background: #f3f0eb; }
.recipes-page .recipes-date-fields { gap: 12px; }
.recipes-page .recipes-field-label { color: #72665e; font-size: 12px; }
.recipes-page .recipes-field-label input,
.recipes-page .recipes-field-label select,
.recipes-page .recipes-history-filters input[type="date"] { min-height: 40px; padding: 9px 11px; border: 1px solid #ddd5cb; border-radius: 8px; background: #fcfaf7; color: #49413d; font-size: 13px; }
.recipes-page .recipes-field-label input { width: 153px; }
.recipes-page .recipes-field-label select { width: 96px; }
.recipes-page .recipes-today { min-height: 40px; padding: 8px 12px; border-color: #ddd5cb; border-radius: 8px; color: #72665e; background: #fcfaf7; font-size: 12px; }
.recipes-page .recipes-today:hover { background: #ebe6de; border-color: #b7aca1; }
.recipes-page .recipes-date-caption { color: #72665e; font-size: 12px; }
.recipes-page .recipes-main-grid { gap: 24px; margin-bottom: 26px; }
.recipes-page .recipes-wheel-card,
.recipes-page .recipes-meal-card { padding: 27px 28px 25px; }
.recipes-page .recipes-wheel-card { background: #fcfaf7; }
.recipes-page .recipes-meal-card { background: linear-gradient(145deg, #f3f0eb, #f3f0eb); }
.recipes-page .recipes-meal-card::after { right: 22px; bottom: 24px; color: #b7aca144; }
.recipes-page .recipes-section-head { align-items: center; gap: 12px; margin-bottom: 22px; }
.recipes-page .recipes-section-head h2 { margin-top: 5px; }
.recipes-page .recipes-section-head p { color: #72665e; font-size: 12px; line-height: 1.85; }
.recipes-page .recipes-pool-link { min-height: 36px; padding: 8px 10px; border-color: #ddd5cb; border-radius: 8px; background: #f3f0eb; color: #72665e; font-size: 12px; }
.recipes-page .recipes-pool-link:hover { background: #ebe6de; border-color: #b7aca1; color: #49413d; }
.recipes-page .recipes-theme-chips { gap: 7px; margin-bottom: 18px; }
.recipes-page .recipes-theme-chip { min-height: 35px; padding: 8px 11px; border: 1px solid #ddd5cb; border-radius: 8px; background: #f3f0eb; color: #72665e; font-size: 12px; line-height: 1.4; }
.recipes-page .recipes-theme-chip i { background: #b7aca1; }
.recipes-page .recipes-theme-chip:hover { background: #ebe6de; border-color: #b7aca1; color: #49413d; }
.recipes-page .recipes-theme-chip.selected { border-color: #49413d; background: #49413d; color: #fcfaf7; box-shadow: 0 2px 5px #3c35310d; }
.recipes-page .recipes-theme-chip.selected i { background: #ddd5cb; }
.recipes-page .recipes-wheel-stage { border-color: #ddd5cb; background: #ebe6de; box-shadow: inset 0 0 0 5px #f3f0eb, 0 9px 20px #3c35310a; }
.recipes-page .recipes-wheel-stage::after { border-color: #b7aca170; }
.recipes-page .recipes-wheel-label { color: #49413d; font-weight: 600; }
.recipes-page .recipes-wheel-pointer { color: #72665e; }
.recipes-page .recipes-wheel-hub { border-color: #f3f0eb; background: #49413d; color: #fcfaf7; box-shadow: 0 0 0 1px #b7aca1, 0 4px 10px #3c35311a; }
.recipes-page .recipes-wheel-note { margin-bottom: 14px; color: #72665e; font-size: 11px; }
.recipes-page .recipes-wheel-result { gap: 5px 10px; padding: 15px 16px; margin: 0 0 12px; border: 1px solid #ddd5cb; border-radius: 11px; background: #f3f0eb; }
.recipes-page .recipes-wheel-result > span { color: #72665e; font-size: 11px; }
.recipes-page .recipes-wheel-result > strong { color: #49413d; font-size: 22px; font-weight: 650; line-height: 1.6; }
.recipes-page .recipes-lock-context { margin-bottom: 17px; min-height: 36px; color: #72665e; font-size: 12px; line-height: 1.85; }
.recipes-page .recipes-wheel-actions { gap: 10px; }
.recipes-page .recipes-meal-title { gap: 12px; margin-bottom: 24px; }
.recipes-page .recipes-meal-title h2 { margin-bottom: 4px; }
.recipes-page .recipes-meal-title p { color: #72665e; font-size: 12px; }
.recipes-page .recipes-meal-mark { width: 43px; height: 43px; border: 1px solid #ddd5cb; border-radius: 13px; background: #ebe6de; color: #655b53; }
.recipes-page .recipes-meal-badge { padding: 5px 8px; background: #ebe6de; color: #655b53; font-size: 11px; }
.recipes-page .recipes-dish-list { gap: 15px; }
.recipes-page .recipes-dish { grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding-bottom: 13px; border-bottom: 1px solid #ddd5cb; }
.recipes-page .recipes-dish:last-child { border-bottom: 0; padding-bottom: 0; }
.recipes-page .recipes-dish-number { width: 30px; height: 32px; border-color: #ddd5cb; border-radius: 9px; background: #fcfaf7; color: #72665e; font-size: 14px; }
.recipes-page .recipes-dish-label { margin-bottom: 4px; color: #72665e; font-size: 11px; }
.recipes-page .recipes-dish strong { color: #49413d; font-size: 15px; font-weight: 500; line-height: 1.8; }
.recipes-page .recipes-meal-bottom { border-color: #ddd5cb; padding-top: 17px; margin-top: 22px; }
.recipes-page .recipes-meal-bottom p { color: #72665e; font-size: 12px; line-height: 1.9; }
.recipes-page .recipes-meal-bottom strong { color: #72665e; }
.recipes-page .recipes-meal-empty h3 { color: #72665e; font-size: 19px; font-weight: 500; }
.recipes-page .recipes-meal-empty p { color: #72665e; font-size: 13px; line-height: 1.95; }
.recipes-page .recipes-meal-empty > .recipes-icon { color: #72665e; }
.recipes-page .recipes-selections,
.recipes-page .recipes-history { padding: 28px 30px 23px; }
.recipes-page .recipes-selections { margin-bottom: 26px; }
.recipes-page .recipes-selection-summary { color: #72665e; font-size: 12px; line-height: 1.8; }
.recipes-page .recipes-selection-summary b { color: #72665e; font-weight: 600; }
.recipes-page .recipes-table-head,
.recipes-page .recipes-food-row { grid-template-columns: minmax(150px, 1.1fr) minmax(0, 1.45fr) minmax(85px, .65fr) 185px; gap: 16px; }
.recipes-page .recipes-table-head { padding: 0 0 14px; border-color: #ddd5cb; color: #72665e; font-size: 11px; letter-spacing: .4px; }
.recipes-page .recipes-food-row { min-height: 80px; padding: 17px 0; border-color: #ddd5cb; }
.recipes-page .recipes-food-row.is-locked { background: linear-gradient(90deg, #f3f0eb, transparent); }
.recipes-page .recipes-row-number { color: #72665e; font-size: 16px; }
.recipes-page .recipes-row-theme button { color: #72665e; font-size: 13px; font-weight: 500; }
.recipes-page .recipes-food-name { color: #49413d; font-size: 15px; font-weight: 600; }
.recipes-page .recipes-food-name.is-empty { color: #72665e; font-size: 13px; font-weight: 400; }
.recipes-page .recipes-row-pool { color: #72665e; font-size: 12px; }
.recipes-page .recipes-row-actions button { min-height: 37px; border-color: #ddd5cb; border-radius: 8px; background: #fcfaf7; color: #72665e; font-size: 12px; }
.recipes-page .recipes-row-actions button:hover { background: #ebe6de; border-color: #b7aca1; color: #655b53; }
.recipes-page .recipes-row-actions button[aria-pressed="true"] { border-color: #b7aca1; background: #ebe6de; color: #655b53; }
.recipes-page .recipes-selection-foot { color: #72665e; font-size: 12px; border-color: #ddd5cb; padding-top: 17px; }
.recipes-page .recipes-selection-foot button { color: #72665e; font-size: 12px; }
.recipes-page .recipes-history-count { color: #72665e; font-size: 12px; }
.recipes-page .recipes-history-filters { gap: 10px; margin-bottom: 16px; }
.recipes-page .recipes-history-filters > label { color: #72665e; font-size: 12px; }
.recipes-page .recipes-history-search { border-color: #ddd5cb; border-radius: 9px; background: #fcfaf7; }
.recipes-page .recipes-history-search input { min-height: 40px; color: #72665e; font-size: 13px; }
.recipes-page .recipes-history-search input::placeholder { color: #72665e; }
.recipes-page .recipes-history-search .recipes-icon,
.recipes-page .recipes-history-search button { color: #72665e; }
.recipes-page .recipes-history-search button { display: inline-grid; place-items: center; flex: none; min-width: 32px; min-height: 32px; }
.recipes-page .recipes-history-results { color: #72665e; font-size: 12px; margin-bottom: 20px; }
.recipes-page .recipes-history-results strong { color: #72665e; }
.recipes-page .recipes-history-day > h3 { color: #72665e; font-size: 13px; font-weight: 500; }
.recipes-page .recipes-history-day > h3 span { color: #72665e; font-size: 11px; }
.recipes-page .recipes-history-day > h3::after { background: #ebe6de; }
.recipes-page .recipes-history-entry { padding: 20px 22px; margin-bottom: 14px; border-color: #ddd5cb; border-radius: 12px; background: #f3f0eb; }
.recipes-page .recipes-history-entry > header { gap: 10px; margin-bottom: 16px; }
.recipes-page .recipes-history-entry h4 { color: #72665e; font-size: 15px; font-weight: 600; }
.recipes-page .recipes-history-entry time,
.recipes-page .recipes-history-entry .recipes-history-source { color: #72665e; font-size: 11px; }
.recipes-page .recipes-history-delete { min-height: 30px; min-width: 30px; color: #72665e; border-radius: 7px; }
.recipes-page .recipes-history-delete:hover { background: #ebe6de; color: #655b53; }
.recipes-page .recipes-history-foods { gap: 14px 18px; }
.recipes-page .recipes-history-foods span { color: #72665e; font-size: 11px; }
.recipes-page .recipes-history-foods strong { color: var(--module-ink); font-size: 13px; line-height: 1.85; }
.recipes-page .recipes-history-meal { margin-top: 17px; padding-top: 14px; border-color: #ddd5cb; color: #72665e; font-size: 12px; line-height: 1.95; }
.recipes-page .recipes-history-meal b { color: #72665e; }
.recipes-page .recipes-history-footer { color: #72665e; font-size: 11px; }
.recipes-page .recipes-history-empty h3 { color: #72665e; font-size: 18px; }
.recipes-page .recipes-history-empty p { color: #72665e; font-size: 13px; }

/* Project archive: readable cards and a notebook with a useful side column. */
.projects-page .projects-hero { grid-template-columns: minmax(0, 1fr) 270px; min-height: 272px; padding: 31px 38px; }
.projects-page .projects-hero-copy > .projects-eyebrow { font-size: 10px; letter-spacing: 1.8px; }
.projects-page .projects-hero-copy > .projects-eyebrow::before { background: #b7aca1; }
.projects-page .projects-hero h1 { margin-top: 11px; margin-bottom: 8px; }
.projects-page .projects-hero-line { margin-bottom: 12px; color: #655b53; font-size: 19px; line-height: 1.8; }
.projects-page .projects-hero-actions { gap: 12px; margin-top: 22px; }
.projects-page .projects-hero-actions > span { color: #72665e; font-size: 12px; }
.projects-page .projects-undo { width: 44px; height: 44px; border-color: #ddd5cb; border-radius: 10px; background: #fcfaf7; color: #72665e; }
.projects-page .projects-undo:hover:not(:disabled) { background: #ebe6de; border-color: #b7aca1; color: #655b53; }
.projects-page .projects-hero-art { width: 245px; height: 244px; }
.projects-page .projects-hero-art::before { border-color: #ddd5cb; background: #ebe6de; }
.projects-page .projects-art-note { color: #72665e; border-color: #ddd5cb; background: repeating-linear-gradient(0deg, #f3f0eb 0, #f3f0eb 22px, #ebe6de1f 23px, #f3f0eb 24px); }
.projects-page .projects-hero-art figcaption { color: #72665e; font-size: 11px; }
.projects-page .projects-stats { margin: 22px 0 32px; border: 1px solid #ddd5cb; border-radius: 15px; background: #fcfaf7; }
.projects-page .projects-stat { padding: 20px 24px 18px; transition: background-color .18s; }
.projects-page .projects-stat + .projects-stat::before { top: 22px; bottom: 22px; background: #ebe6de; }
.projects-page .projects-stat > span { gap: 8px; color: #72665e; font-size: 12px; }
.projects-page .projects-stat > span .projects-icon { width: 16px; height: 16px; color: #72665e; }
.projects-page .projects-stat > strong { margin-top: 9px; color: var(--module-ink); font: 600 32px/1.25 "Segoe UI", sans-serif; letter-spacing: -.8px; }
.projects-page .projects-stat > strong small { color: #72665e; font-size: 11px; }
.projects-page .projects-stat > p { margin-top: 8px; color: #72665e; font-size: 11px; }
.projects-page .projects-stat.stat-completed > strong { color: #49413d; }
.projects-page .projects-stat.stat-active > strong { color: var(--module-ochre); }
.projects-page .projects-stat.stat-paused > strong { color: #72665e; }
.projects-page .projects-stat:has(.projects-stat-open[aria-pressed="true"]) { background: #f3f0eb; }
.projects-page .projects-stat:has(.projects-stat-open[aria-pressed="true"]) > span { color: #72665e; font-weight: 600; }
.projects-page .projects-stat:has(.projects-stat-open[aria-pressed="true"])::after { content: ""; position: absolute; bottom: 0; left: 24px; right: 24px; height: 3px; border-radius: 3px 3px 0 0; background: #b7aca1; }
.projects-page .projects-stat-open:hover { background: #ebe6de38; }
.projects-page .projects-collection-head { align-items: flex-end; gap: 18px; margin-bottom: 20px; }
.projects-page .projects-collection-head .projects-eyebrow { font-size: 10px; letter-spacing: 1.6px; }
.projects-page .projects-collection-head h2 { gap: 10px; margin-top: 5px; }
.projects-page .projects-collection-head h2 small { min-width: 26px; padding: 2px 7px; border-color: #ddd5cb; border-radius: 7px; background: #ebe6de; color: #655b53; font-size: 11px; }
.projects-page .projects-collection-head > p { color: #72665e; font-size: 12px; }
.projects-page .projects-filter-panel { display: grid; grid-template-columns: minmax(230px, 1fr) minmax(0, 1.6fr); align-items: end; gap: 16px; padding: 17px 18px; border: 1px solid #ddd5cb; border-radius: 13px; background: #f3f0eb; }
.projects-page .projects-search { min-width: 0; min-height: 42px; border: 1px solid #ddd5cb; border-radius: 9px; padding: 0 5px 0 12px; background: #fcfaf7; }
.projects-page .projects-search > .projects-icon { color: #72665e; }
.projects-page .projects-search input { min-height: 40px; color: #72665e; font-size: 13px; }
.projects-page .projects-search input::placeholder { color: #72665e; }
.projects-page .projects-search button { min-width: 48px; min-height: 32px; padding: 6px 10px; border-radius: 6px; background: #ebe6de; color: #655b53; font-size: 12px; }
.projects-page .projects-search button:hover { background: #ebe6de; color: #655b53; }
.projects-page .projects-search:focus-within { border-color: #b7aca1; box-shadow: 0 0 0 3px #ebe6de; }
.projects-page .projects-filter-fields { gap: 10px; }
.projects-page .projects-filter-fields > label > span { display: block; margin: 0 0 5px 2px; color: #72665e; font-size: 11px; line-height: 1.6; }
.projects-page .projects-filter-fields select { min-height: 42px; padding: 9px 24px 9px 10px; border-color: #ddd5cb; border-radius: 8px; background: #fcfaf7; color: #72665e; font-size: 12px; }
.projects-page .projects-results-line { align-items: baseline; gap: 12px; margin: 11px 2px 20px; color: #72665e; font-size: 11px; line-height: 1.8; }
.projects-page .projects-results-line > span { color: #72665e; }
.projects-page .projects-active-filters { margin-bottom: 20px; }
.projects-page .projects-filter-chip { min-height: 34px; padding: 7px 10px; border-color: #ddd5cb; border-radius: 8px; background: #f3f0eb; color: #72665e; font-size: 12px; }
.projects-page .projects-clear { min-height: 34px; color: #72665e; font-size: 12px; }
.projects-page .projects-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.projects-page .projects-card { min-height: 280px; padding: 24px 25px 18px; border: 1px solid #ddd5cb; border-radius: 15px; background: #fcfaf7; box-shadow: 0 4px 16px #3c353104; }
.projects-page .projects-card::before { left: 25px; width: 44px; height: 4px; background: #b7aca1; }
.projects-page .projects-card:nth-child(3n+2)::before { background: #b7aca1; }
.projects-page .projects-card:nth-child(3n)::before { background: #b7aca1; }
.projects-page .projects-card:hover { transform: translateY(-3px); border-color: #b7aca1; box-shadow: 0 11px 25px #3c35310d; }
.projects-page .projects-card-top { gap: 12px; margin-bottom: 18px; }
.projects-page .projects-card-category { color: #72665e; font-size: 12px; }
.projects-page .projects-status { gap: 5px; padding: 3px 8px; border-color: #ddd5cb; border-radius: 6px; background: #f3f0eb; color: #49413d; font-size: 11px; }
.projects-page .projects-status.status-active { border-color: #ddd5cb; background: #f3f0eb; color: var(--module-ochre); }
.projects-page .projects-status.status-paused { border-color: #ddd5cb; background: #f3f0eb; color: #72665e; }
.projects-page .projects-card-heading { gap: 10px; margin-bottom: 12px; }
.projects-page .projects-card-number { color: #72665e; font-size: 13px; }
.projects-page .projects-card-heading h3 { color: var(--module-ink); font-size: 18px; font-weight: 600; line-height: 1.7; letter-spacing: .1px; }
.projects-page .projects-card-open { color: var(--module-ink); }
.projects-page .projects-card-open::after { border-radius: 15px; }
.projects-page .projects-card-open:hover { color: #49413d; }
.projects-page .projects-card-summary { min-height: 73px; margin-bottom: 17px; color: #72665e; font-size: 13px; line-height: 1.9; -webkit-line-clamp: 3; }
.projects-page .projects-card-summary.is-empty { color: #72665e; }
.projects-page .projects-card-tags { min-height: 24px; gap: 6px; margin-bottom: 20px; }
.projects-page .projects-tag { padding: 2px 7px; border-color: #ddd5cb; border-radius: 5px; background: #f3f0eb; color: #72665e; font-size: 11px; line-height: 1.7; }
.projects-page .projects-tag-more { color: #72665e; font-size: 10px; }
.projects-page .projects-card-foot { gap: 8px; padding-top: 14px; border-color: #ddd5cb; color: #72665e; font-size: 11px; line-height: 1.7; }
.projects-page .projects-card-foot time .projects-icon { width: 13px; height: 13px; color: #72665e; }
.projects-page .projects-card-resources { color: #72665e; }
.projects-page .projects-card-resources small { font-size: 10px; }
.projects-page .projects-card-turn { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #f3f0eb; color: #72665e; }
.projects-page .projects-empty { min-height: 324px; border-color: #ddd5cb; border-radius: 16px; background: #fcfaf7; }
.projects-page .projects-empty > .projects-icon { color: #655b53; background: #ebe6de; }
.projects-page .projects-empty > .projects-eyebrow { color: #72665e; font-size: 10px; }
.projects-page .projects-empty h3,
.projects-page .projects-empty h1 { color: var(--module-ink); font-size: 20px; font-weight: 600; }
.projects-page .projects-empty p { color: #72665e; font-size: 13px; line-height: 1.95; }
.projects-page .projects-detail-toolbar { margin-bottom: 22px; }
.projects-page .projects-back { min-height: 42px; color: #72665e; font-size: 13px; }
.projects-page .projects-detail-toolbar .projects-secondary { min-height: 42px; padding: 9px 14px; font-size: 12px; }
.projects-page .projects-delete { width: 42px; height: 42px; border-color: #ddd5cb; border-radius: 10px; background: #fcfaf7; color: #72665e; }
.projects-page .projects-detail-lead { padding: 31px 36px; margin-bottom: 24px; border-color: #ddd5cb; border-radius: 18px; background: linear-gradient(110deg, #fcfaf7, #f3f0eb); }
.projects-page .projects-detail-lead::before { top: 29px; bottom: 29px; width: 4px; background: #b7aca1; }
.projects-page .projects-detail-kicker { gap: 12px; margin-bottom: 12px; }
.projects-page .projects-detail-kicker .projects-eyebrow { font-size: 10px; }
.projects-page .projects-detail-category { color: #72665e; font-size: 12px; border-color: #ddd5cb; }
.projects-page.projects-detail h1 { margin-bottom: 14px; color: var(--module-ink); font-size: 28px; line-height: 1.6; font-weight: 600; letter-spacing: .3px; }
.projects-page .projects-detail-summary { color: #72665e; font-size: 14px; line-height: 1.95; }
.projects-page .projects-detail-summary.is-empty { color: #72665e; }
.projects-page .projects-detail-tags { margin-top: 20px; gap: 7px; }
.projects-page .projects-detail-tags .projects-tag { padding: 3px 9px; border-color: #ddd5cb; background: #f3f0eb; color: #72665e; font-size: 11px; }
.projects-page .projects-detail-layout { grid-template-columns: minmax(0, 1fr) 304px; gap: 24px; }
.projects-page .projects-story { padding: 25px 32px 9px; border-color: #ddd5cb; border-radius: 17px; background: #fcfaf7; }
.projects-page .projects-story-intro { gap: 8px; border-color: #ddd5cb; padding-bottom: 22px; color: #72665e; font-size: 12px; }
.projects-page .projects-story-intro .projects-icon { color: #72665e; }
.projects-page .projects-story-section { padding: 27px 0 30px; }
.projects-page .projects-story-section + .projects-story-section { border-color: #ddd5cb; }
.projects-page .projects-story-heading { gap: 12px; align-items: center; margin-bottom: 17px; }
.projects-page .projects-story-heading > span { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid #ddd5cb; border-radius: 8px; background: #f3f0eb; color: #72665e; font: 13px/1 Georgia, serif; }
.projects-page .projects-story-heading h2 { color: var(--module-ink); font-size: 18px; font-weight: 600; letter-spacing: .1px; }
.projects-page .projects-story-text { color: var(--module-ink); font-size: 14px; line-height: 2; }
.projects-page .projects-story-text.is-empty { color: #72665e; font-size: 13px; }
.projects-page .projects-detail-aside { gap: 18px; }
.projects-page .projects-detail-aside > section { padding: 23px; border-color: #ddd5cb; border-radius: 14px; background: #fcfaf7; }
.projects-page .projects-detail-aside h2 { margin-bottom: 20px; color: var(--module-ink); font-size: 15px; font-weight: 600; letter-spacing: .1px; }
.projects-page .projects-detail-aside h2 small { color: #72665e; font-size: 11px; }
.projects-page .projects-facts dt { color: #72665e; font-size: 12px; }
.projects-page .projects-facts dt .projects-icon { width: 14px; height: 14px; color: #72665e; }
.projects-page .projects-facts dd { margin: 7px 0 0 21px; color: var(--module-ink); font-size: 14px; line-height: 1.85; }
.projects-page .projects-facts dd.is-empty { color: #72665e; }
.projects-page .projects-facts > p { border-color: #ddd5cb; padding-top: 15px; margin-top: 22px; color: #72665e; font-size: 11px; }
.projects-page .projects-link-list a { padding: 12px 0; gap: 10px; }
.projects-page .projects-link-list li + li { border-color: #ddd5cb; }
.projects-page .projects-link-mark { width: 32px; height: 34px; border-color: #ddd5cb; border-radius: 8px; background: #f3f0eb; color: #72665e; }
.projects-page .projects-link-list strong { color: #49413d; font-size: 13px; font-weight: 500; }
.projects-page .projects-link-list small { color: #72665e; font-size: 11px; }
.projects-page .projects-link-list a > .projects-icon { color: #72665e; }
.projects-page .projects-folder { margin-top: 18px; padding-top: 18px; border-color: #ddd5cb; }
.projects-page .projects-folder > div > span { color: #72665e; font-size: 12px; }
.projects-page .projects-copy { min-height: 32px; padding: 6px 8px; border-color: #ddd5cb; border-radius: 7px; background: #f3f0eb; color: #72665e; font-size: 11px; }
.projects-page .projects-folder-path { padding: 10px 11px; border-color: #ddd5cb; border-radius: 8px; background: #f3f0eb; color: #72665e; font-size: 11px; line-height: 1.8; }
.projects-page .projects-folder > p,
.projects-page .projects-folder-hint p { color: #72665e; font-size: 11px; line-height: 1.9; }
.projects-page .projects-folder-hint { border-color: #ddd5cb; }
.projects-page .projects-folder-hint .projects-icon { color: #72665e; }
.projects-page .projects-side-empty { color: #72665e; font-size: 13px; line-height: 1.95; }
.projects-page .projects-detail-aside .projects-task-association { border-color: #ddd5cb; background: #f3f0eb; }
.projects-page .projects-task-association .projects-eyebrow { color: #72665e; font-size: 9px; letter-spacing: .8px; }
.projects-page .projects-detail-aside .projects-task-association h2 { margin-top: 6px; margin-bottom: 14px; color: #72665e; }
.projects-page .projects-task-association > p:not(.projects-side-empty) { color: #72665e; font-size: 12px; }
.projects-page .projects-task-association > p strong { color: #72665e; }
.projects-page .projects-task-open { min-height: 40px; padding: 9px 11px; border-color: #ddd5cb; border-radius: 9px; background: #fcfaf7; color: #72665e; font-size: 12px; }

/* Forms live outside the module roots; scope every change to their forms. */
:is(.ledger-entry-form, .recipes-pool-form, .projects-form) { color: #72665e; }
:is(.ledger-entry-form, .recipes-pool-form, .projects-form) .field { color: #72665e; font-size: 13px; line-height: 1.8; }
:is(.ledger-entry-form, .recipes-pool-form, .projects-form) .field :is(input, select, textarea) { min-height: 43px; border-color: #ddd5cb; border-radius: 9px; background: #fcfaf7; color: #49413d; font-size: 14px; }
:is(.ledger-entry-form, .recipes-pool-form, .projects-form) .field :is(input, textarea)::placeholder { color: #72665e; }
:is(.ledger-entry-form, .recipes-pool-form, .projects-form) :is(button, input, select, textarea):focus-visible { outline: 2px solid #8b7f73; outline-offset: 3px; }
.ledger-entry-form .ledger-entry-type { padding: 4px; background: #ebe6de; border-radius: 10px; }
.ledger-entry-form .ledger-entry-type span { color: #72665e; border-radius: 7px; font-size: 14px; }
.ledger-entry-form .ledger-entry-type input:checked + span { color: #72665e; background: #fcfaf7; }
.ledger-entry-form .ledger-entry-type input[value="expense"]:checked + span { color: #72665e; }
.ledger-entry-form .ledger-entry-context { border-color: #ddd5cb; background: #f3f0eb; color: #72665e; font-size: 12px; }
.ledger-entry-form .ledger-amount-field > div { border-color: #ddd5cb; }
.ledger-entry-form .ledger-category-choices { gap: 8px; }
.ledger-entry-form .ledger-category-choices button { min-height: 44px; padding: 10px 5px; border-color: #ddd5cb; border-radius: 9px; background: #fcfaf7; color: #72665e; font-size: 12px; }
.ledger-entry-form .ledger-category-choices button.selected { border-color: #b7aca1; background: #ebe6de; color: #655b53; }
.ledger-entry-form .ledger-form-help,
.projects-form .projects-form-help { color: #72665e; font-size: 12px; line-height: 1.9; }
.recipes-pool-form .recipes-pool-intro,
.recipes-pool-form .recipes-pool-tip,
.recipes-pool-form .recipes-pool-meta { color: #72665e; font-size: 13px; line-height: 1.9; }
.recipes-pool-form .recipes-pool-intro strong { color: #72665e; }
.recipes-pool-form textarea { padding: 12px 14px; line-height: 1.95; }
.projects-form .projects-form-intro { color: #72665e; font-size: 13px; }
.projects-form .projects-form-intro > span { color: #72665e; font-size: 11px; }
.projects-form fieldset + fieldset { border-color: #ddd5cb; margin-top: 20px; padding-top: 24px; }
.projects-form legend { margin-bottom: 19px; color: #72665e; font-size: 15px; font-weight: 600; }
.projects-form legend > span { color: #72665e; font-size: 13px; }
.projects-form .field { margin-bottom: 16px; }
.projects-form .field textarea { line-height: 1.95; }
.projects-form .projects-form-grid { column-gap: 18px; }
.projects-delete-form { color: #72665e; font-size: 14px; }
.projects-delete-form strong { color: #72665e; }
.projects-delete-form .projects-delete-help { color: #72665e; font-size: 12px; }

/* Keep legacy green interaction surfaces within the new material palette. */
.ledger-page .ledger-primary:hover,
.recipes-page .recipes-primary:hover,
.projects-page .projects-primary:hover { background: var(--module-action-hover) !important; border-color: var(--module-action-hover); }
.ledger-page .ledger-photo img,
.recipes-page .recipes-hero-art img { background: var(--module-soft); }
.recipes-page .recipes-hero-art::before { background: #b7aca193; }
.ledger-page :is(.ledger-period-switch, .ledger-type-filter, .ledger-calendar-mode) button { color: var(--module-on-soft); }
.ledger-page .ledger-stat.income strong,
.ledger-page .ledger-entry-amount.income { color: var(--ledger-green); }
.ledger-page .ledger-stat.balance p { color: var(--module-on-soft); }
.ledger-page .ledger-calendar-day.has-record.positive { background: var(--module-bg); }
.ledger-page .ledger-calendar-day.has-record.negative { background: #f1e8dc; }
.ledger-page .ledger-calendar-day.selected :is(.ledger-calendar-amount, small) { color: var(--module-on-soft); }
.ledger-page .ledger-filter-hint { border-color: var(--module-line); background: var(--module-bg); color: var(--module-muted); }
.ledger-page .ledger-filter-chip { border-color: var(--module-line); background: var(--module-paper); color: var(--module-ink); }
.ledger-page .ledger-filter-chip > span:last-child { color: var(--module-muted); }
.ledger-page .ledger-filter-chip:hover { border-color: #b7aca1; background: var(--module-soft); color: var(--module-ink); }
.recipes-page .recipes-theme-chip.selected { border-color: var(--module-accent); background: var(--module-accent); color: var(--module-paper); }
.recipes-page .recipes-wheel-pointer { color: var(--module-ochre); }
.recipes-page .recipes-wheel-result > strong { color: var(--module-ink); }
.recipes-page :is(.recipes-wheel-unlock, .recipes-record-link, .recipes-clear-query) { border-color: var(--module-line); background: var(--module-bg); color: var(--module-accent); }
.recipes-page :is(.recipes-wheel-unlock, .recipes-record-link, .recipes-clear-query):hover { border-color: #b7aca1; background: var(--module-soft); color: var(--module-ink); }
.recipes-page .recipes-lock-context.all-locked { border-color: var(--module-line); background: var(--module-bg); color: var(--module-muted); }
.recipes-page .recipes-wheel-card [data-busy="true"] .recipes-wheel-hub { background: var(--module-ochre); }
.recipes-page .recipes-meal-badge { color: var(--module-on-soft); }
.recipes-page .recipes-selection-foot .recipes-icon { color: var(--module-muted); }
.recipes-page .recipes-row-actions button[aria-pressed="true"] { color: var(--module-on-soft); }
.recipes-page .recipes-history-entry:focus { background: var(--module-bg); outline-color: var(--module-accent); }
.projects-page .projects-stat:has(.projects-stat-open[aria-pressed="true"]) :is(span, p) { color: var(--module-on-soft); }
.projects-page .projects-stat:has(.projects-stat-open[aria-pressed="true"])::after { background: var(--module-accent); }
.projects-page .projects-card::before { background: #b58772; }
.projects-page .projects-card:nth-child(3n+2)::before { background: #b39a6b; }
.projects-page .projects-card:nth-child(3n)::before { background: #9e8d98; }
.projects-page .projects-hero-art::after { background: linear-gradient(90deg, transparent, #b7aca159 24%, #b7aca159 85%, transparent); }
.projects-page .projects-art-note::before { background: #b7aca1a8; }
.projects-page .projects-art-note > span { color: var(--module-accent); }
.projects-page .projects-detail-lead::before { background: #b58772; }
.projects-page .projects-status.status-active { background: var(--module-bg); border-color: #e2cfc3; color: var(--module-accent); }
.projects-page .projects-card-open:hover,
.projects-page .projects-back:hover { color: var(--module-accent); }
.projects-page .projects-link-list a:hover strong { color: var(--module-accent); }
.projects-page .projects-task-open:hover { border-color: #c9b5a8; background: var(--module-soft); color: var(--module-ink); }
.projects-page .projects-delete:hover { border-color: #dcc6bb; background: #f1e5de; color: #7c4638; }
.projects-page .projects-page-foot .projects-icon { color: var(--module-muted); }
.ledger-entry-form .ledger-entry-type span { color: #655b53; }
.ledger-entry-form .ledger-entry-type input:checked + span { color: #49413d; }
.ledger-entry-form .ledger-entry-type input[value="expense"]:checked + span { color: #856435; }
.ledger-entry-form .ledger-entry-type input:focus-visible + span { outline-color: #49413d; }
.ledger-entry-form .ledger-category-choices button.selected { border-color: #b7aca1; background: #ebe6de; color: #49413d; }
.recipes-pool-form .recipes-pool-feedback { border-color: #ddd5cb; background: #f3f0eb; color: #72665e; }
.recipes-pool-form .recipes-pool-feedback.is-error { border-color: #dcc6bb; background: #f1e5de; color: #7c4638; }
.projects-delete-form .projects-delete-mark { border-color: #ddd5cb; background: #ebe6de; color: #655b53; }

@media (max-width: 1120px) {
  :is(.ledger-page, .recipes-page, .projects-page) { padding-inline: 28px; }
  .ledger-page .ledger-columns { grid-template-columns: minmax(265px, .8fr) minmax(0, 1.4fr); gap: 18px; }
  .ledger-page .ledger-categories,
  .ledger-page .ledger-records { padding: 22px; }
  .ledger-page .ledger-stat { padding: 22px; }
  .ledger-page .ledger-stat strong { font-size: 31px; }
  .recipes-page .recipes-wheel-card,
  .recipes-page .recipes-meal-card { padding-inline: 23px; }
  .recipes-page .recipes-table-head,
  .recipes-page .recipes-food-row { grid-template-columns: minmax(130px, 1fr) minmax(0, 1.2fr) 75px 180px; gap: 12px; }
  .projects-page .projects-hero { grid-template-columns: minmax(0, 1fr) 230px; padding-inline: 31px; }
  .projects-page .projects-hero-actions > span { font-size: 11px; }
  .projects-page .projects-filter-panel { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .projects-page .projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projects-page .projects-detail-layout { grid-template-columns: minmax(0, 1fr) 270px; gap: 20px; }
  .projects-page .projects-story { padding-inline: 26px; }
  .projects-page .projects-detail-aside > section { padding: 21px; }
}
@media (max-width: 900px) {
  .ledger-page .ledger-columns { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .ledger-page .ledger-category-bars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; }
  .ledger-page .ledger-category-bar { grid-template-columns: 48px minmax(0, 1fr) auto; }
  .ledger-page .ledger-category-bar > .ledger-category-photo { grid-row: 1; }
  .ledger-page .ledger-category-bar > strong { grid-column: 3; grid-row: 1; max-width: 100px; text-align: right; }
  .recipes-page .recipes-main-grid { grid-template-columns: minmax(0, 1fr); }
  .recipes-page .recipes-wheel-card { padding-inline: 28px; }
  .recipes-page .recipes-meal-title { flex-wrap: nowrap; }
  .recipes-page .recipes-meal-badge { margin: 0 0 0 auto; }
  .recipes-page .recipes-dish-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .recipes-page .recipes-table-head,
  .recipes-page .recipes-food-row { grid-template-columns: minmax(130px, 1fr) minmax(0, 1.2fr) 180px; gap: 12px; }
  .recipes-page .recipes-row-pool { display: none; }
}
@media (max-width: 760px) {
  :is(.ledger-page, .recipes-page, .projects-page) { padding: 24px 20px 30px; }
  .ledger-page .ledger-hero,
  .recipes-page .recipes-hero { padding: 26px 28px; min-height: 216px; border-radius: 18px; }
  .ledger-page .ledger-hero h1,
  .recipes-page .recipes-hero h1,
  .projects-page .projects-hero h1 { font-size: 28px; }
  .ledger-page .ledger-summary { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .ledger-page .ledger-stat { display: grid; grid-template-columns: 100px minmax(0, 1fr); align-items: center; gap: 5px 14px; padding: 18px 22px; border-top-width: 1px; border-left: 3px solid #8b7f73; }
  .ledger-page .ledger-stat.expense { border-top-color: var(--module-line); border-left-color: #b7aca1; }
  .ledger-page .ledger-stat.balance { border-top-color: var(--module-line); border-left-color: #8b7f73; }
  .ledger-page .ledger-stat strong { margin: 0; text-align: right; font-size: 30px; }
  .ledger-page .ledger-stat strong[data-long-amount] { font-size: clamp(17px, 4.6vw, 25px); }
  .ledger-page .ledger-stat p { grid-column: 1 / -1; margin-top: 3px; font-size: 12px; }
  .ledger-page .ledger-calendar { padding: 23px 20px; }
  .ledger-page .ledger-calendar-weekdays,
  .ledger-page .ledger-calendar-grid { gap: 5px; }
  .ledger-page .ledger-calendar-day { min-height: 91px; padding: 9px 3px 7px; }
  .ledger-page .ledger-calendar-day.selected { padding: 8px 2px 6px; }
  .ledger-page .ledger-calendar-day .ledger-calendar-amount { font-size: 12px; }
  .ledger-page .ledger-period-controls { gap: 12px; }
  .ledger-page .ledger-categories,
  .ledger-page .ledger-records { padding: 24px; }
  .ledger-page .ledger-section-title h2,
  .ledger-page .ledger-calendar h2,
  .recipes-page .recipes-section-head h2,
  .recipes-page .recipes-meal-title h2,
  .projects-page .projects-collection-head h2 { font-size: 19px; }
  .ledger-page .ledger-icon-button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }
  .ledger-page :is(.ledger-period-switch, .ledger-type-filter, .ledger-calendar-mode) button,
  .ledger-page :is(.ledger-this-month, .ledger-export, .ledger-calendar-clear, .ledger-search button),
  .recipes-page :is(.recipes-theme-chip, .recipes-pool-link, .recipes-today, .recipes-row-actions button, .recipes-history-delete),
  .projects-page :is(.projects-copy, .projects-task-open, .projects-clear, .projects-filter-chip) { min-height: 44px; }
  .ledger-page .ledger-entry { gap: 10px; }
  .recipes-page .recipes-datebar { padding: 15px 16px; }
  .recipes-page .recipes-field-label input,
  .recipes-page .recipes-field-label select,
  .recipes-page .recipes-history-filters input[type="date"] { min-height: 44px; }
  .recipes-page .recipes-date-fields { gap: 10px; }
  .recipes-page .recipes-date-caption { font-size: 12px; }
  .recipes-page .recipes-wheel-card,
  .recipes-page .recipes-meal-card { padding: 25px 26px; }
  .recipes-page .recipes-selections,
  .recipes-page .recipes-history { padding: 26px; }
  .recipes-page .recipes-history-search input { min-height: 44px; }
  .projects-page .projects-hero { grid-template-columns: minmax(0, 1fr) 170px; padding: 26px 27px; min-height: 263px; gap: 5px; border-radius: 18px; }
  .projects-page .projects-hero-line { font-size: 18px; }
  .projects-page .projects-hero-description { font-size: 12px; }
  .projects-page .projects-hero-art { width: 170px; height: 220px; }
  .projects-page .projects-hero-art img { width: 144px; height: 194px; }
  .projects-page .projects-hero-art figcaption { font-size: 10px; }
  .projects-page .projects-stat { padding: 18px 16px; }
  .projects-page .projects-stat > strong { font-size: 29px; }
  .projects-page .projects-stat > p { display: none; }
  .projects-page .projects-stat > span { font-size: 11px; }
  .projects-page .projects-collection-head > p { font-size: 11px; }
  .projects-page .projects-filter-panel { padding: 15px; }
  .projects-page .projects-filter-fields select { min-height: 44px; }
  .projects-page .projects-search { min-height: 46px; }
  .projects-page .projects-search input { min-height: 44px; }
  .projects-page .projects-search button { min-width: 44px; min-height: 44px; }
  .projects-page .projects-grid { gap: 17px; }
  .projects-page .projects-card { min-height: 286px; padding: 23px 21px 17px; }
  .projects-page .projects-card::before { left: 21px; }
  .projects-page .projects-card-heading h3 { font-size: 17px; }
  .projects-page .projects-card-summary { font-size: 13px; }
  .projects-page .projects-card-foot { grid-template-columns: minmax(0, 1fr) auto; row-gap: 7px; font-size: 10px; }
  .projects-page .projects-card-resources { grid-column: 1; }
  .projects-page .projects-card-turn { grid-column: 2; grid-row: 1 / 3; }
  .projects-page .projects-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .projects-page .projects-detail-lead { padding: 27px; }
  .projects-page .projects-detail-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .projects-page .projects-detail-aside .projects-materials { grid-row: span 2; }
  .projects-page .projects-story { padding: 24px 27px 7px; }
  .projects-form .field :is(input, select, textarea) { min-height: 44px; }
}
@media (max-width: 560px) {
  :is(.ledger-page, .recipes-page, .projects-page) { padding: 20px 14px 28px; }
  .ledger-page .ledger-hero,
  .recipes-page .recipes-hero { padding: 24px 21px; min-height: 235px; margin-bottom: 22px; }
  .ledger-page .ledger-hero-copy { padding-right: 94px; }
  .ledger-page .ledger-hero h1,
  .recipes-page .recipes-hero h1 { margin-top: 11px; font-size: 27px; line-height: 1.5; letter-spacing: 0; }
  .ledger-page .ledger-hero h1 span,
  .recipes-page .recipes-hero h1 span { display: block; }
  .ledger-page .ledger-hero .ledger-eyebrow,
  .recipes-page .recipes-hero .recipes-eyebrow { font-size: 9px; letter-spacing: 1px; }
  .ledger-page .ledger-hero p { max-width: 210px; font-size: 12px; }
  .ledger-page .ledger-hero-actions { margin: 20px -94px 0 0; gap: 8px; }
  .ledger-page .ledger-primary,
  .ledger-page .ledger-soft { padding-inline: 13px; font-size: 12px; }
  .ledger-page .ledger-photo { position: absolute; right: 19px; top: 46px; width: 92px; padding: 5px 5px 3px; }
  .ledger-page .ledger-photo img { height: 107px; }
  .ledger-page .ledger-photo figcaption { font-size: 9px; }
  .ledger-page .ledger-period-controls { width: 100%; gap: 12px; }
  .ledger-page .ledger-period-switch { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ledger-page .ledger-month-picker { gap: 3px; width: 100%; justify-content: space-between; }
  .ledger-page .ledger-month-label { min-width: 128px; font-size: 18px; }
  .ledger-page .ledger-month-count { margin-left: auto; font-size: 11px; }
  .ledger-page .ledger-period-caption { margin-bottom: 20px; font-size: 11px; line-height: 1.9; }
  .ledger-page .ledger-stat { grid-template-columns: 82px minmax(0, 1fr); padding: 17px 18px; }
  .ledger-page .ledger-stat strong { font-size: 29px; }
  .ledger-page .ledger-stat strong small { font-size: 13px; }
  .ledger-page .ledger-stat p { font-size: 11px; }
  .ledger-page .ledger-calendar { padding: 22px 12px; border-radius: 15px; }
  .ledger-page .ledger-calendar > header { gap: 16px; margin-bottom: 17px; }
  .ledger-page .ledger-calendar-mode { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ledger-page .ledger-calendar-mode button { min-width: 0; padding-inline: 7px; font-size: 12px; }
  .ledger-page .ledger-calendar-weekdays,
  .ledger-page .ledger-calendar-grid { gap: 3px; }
  .ledger-page .ledger-calendar-weekdays { padding-bottom: 10px; font-size: 11px; }
  .ledger-page .ledger-calendar-day { min-height: 84px; padding: 8px 1px 7px; border-radius: 7px; gap: 4px; }
  .ledger-page .ledger-calendar-day.selected { padding: 7px 0 6px; box-shadow: 0 0 0 1px #ebe6de; }
  .ledger-page .ledger-calendar-day time { font-size: 13px; }
  .ledger-page .ledger-calendar-day .ledger-calendar-amount { font-size: 11px; letter-spacing: -.25px; }
  .ledger-page .ledger-calendar-day > small { font-size: 9px; }
  .ledger-page .ledger-calendar > footer p,
  .ledger-page .ledger-calendar > footer > div { font-size: 11px; line-height: 1.9; }
  .ledger-page .ledger-categories,
  .ledger-page .ledger-records { padding: 23px 18px; border-radius: 15px; }
  .ledger-page .ledger-category-bars { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
  .ledger-page .ledger-category-bar { grid-template-columns: 48px minmax(0, 1fr); gap: 3px 7px; padding: 10px 0; }
  .ledger-page .ledger-category-bar > .ledger-category-photo { grid-row: 1 / 3; }
  .ledger-page .ledger-category-bar > strong { grid-column: 2; grid-row: 2; max-width: 100%; text-align: left; font-size: 12px; }
  .ledger-page .ledger-bar-copy b { font-size: 12px; }
  .ledger-page .ledger-bar-copy small { font-size: 10px; }
  .ledger-page .ledger-section-title { gap: 10px; flex-wrap: wrap; }
  .ledger-page .ledger-section-title h2,
  .ledger-page .ledger-calendar h2 { font-size: 18px; }
  .ledger-page .ledger-records > .ledger-section-title .ledger-export { margin-left: auto; }
  .ledger-page .ledger-records-context { font-size: 11px; }
  .ledger-page .ledger-type-filter { flex: 1 0 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ledger-page .ledger-filter-category { flex: 1 0 100%; }
  .ledger-page .ledger-filter-category select { width: 100%; min-height: 44px; }
  .ledger-page .ledger-search { flex-basis: 100%; }
  .ledger-page .ledger-entry { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 6px 9px; padding: 17px 0; }
  .ledger-page .ledger-entry > .ledger-category-icon { grid-column: 1; grid-row: 1 / 3; width: 34px; height: 34px; }
  .ledger-page .ledger-entry-copy { grid-column: 2; grid-row: 1; }
  .ledger-page .ledger-entry-copy strong { font-size: 14px; }
  .ledger-page .ledger-entry-copy > span { font-size: 12px; }
  .ledger-page .ledger-entry-amount { grid-column: 2; grid-row: 2; margin: 0; font-size: 15px; }
  .ledger-page .ledger-entry-actions { grid-column: 3; grid-row: 1 / 3; flex-direction: column; }
  .recipes-page .recipes-hero-copy { padding-right: 75px; }
  .recipes-page .recipes-hero p { max-width: 205px; font-size: 12px; line-height: 1.9; }
  .recipes-page .recipes-hero-note { margin-right: -75px; margin-top: 19px; padding: 7px 9px; font-size: 11px; }
  .recipes-page .recipes-hero-art { position: absolute; right: 18px; top: 43px; width: 88px; padding: 5px 5px 3px; }
  .recipes-page .recipes-hero-art img { height: 109px; }
  .recipes-page .recipes-art-caption { font-size: 9px; }
  .recipes-page .recipes-datebar { padding: 14px 12px; gap: 12px; }
  .recipes-page .recipes-date-fields { display: grid; grid-template-columns: minmax(0, 1fr) 84px auto; width: 100%; gap: 7px; }
  .recipes-page .recipes-field-label { display: block; }
  .recipes-page .recipes-field-label > span:not(.sr-only) { display: none; }
  .recipes-page .recipes-field-label input,
  .recipes-page .recipes-field-label select { width: 100%; padding-inline: 8px; }
  .recipes-page .recipes-today { padding-inline: 9px; font-size: 12px; }
  .recipes-page .recipes-date-caption { width: 100%; align-items: flex-start; font-size: 11px; line-height: 1.9; }
  .recipes-page .recipes-date-caption .recipes-icon { margin-top: 4px; }
  .recipes-page .recipes-wheel-card,
  .recipes-page .recipes-meal-card { padding: 24px 18px; border-radius: 15px; }
  .recipes-page .recipes-section-head { gap: 9px; margin-bottom: 20px; }
  .recipes-page .recipes-section-head h2,
  .recipes-page .recipes-meal-title h2 { font-size: 18px; }
  .recipes-page .recipes-eyebrow { font-size: 9px; letter-spacing: 1px; }
  .recipes-page .recipes-pool-link { padding-inline: 9px; font-size: 11px; }
  .recipes-page .recipes-theme-chip { padding-inline: 10px; font-size: 11px; }
  .recipes-page .recipes-wheel-result { padding: 13px 14px; }
  .recipes-page .recipes-wheel-result > strong { font-size: 21px; }
  .recipes-page .recipes-lock-context { min-height: 0; font-size: 11px; }
  .recipes-page .recipes-primary,
  .recipes-page .recipes-secondary { padding-inline: 9px; font-size: 12px; gap: 6px; }
  .recipes-page .recipes-meal-title { flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
  .recipes-page .recipes-meal-badge { margin: 0; padding-inline: 7px; font-size: 10px; }
  .recipes-page .recipes-dish-list { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .recipes-page .recipes-dish { grid-template-columns: 32px minmax(0, 1fr); }
  .recipes-page .recipes-dish strong { font-size: 14px; }
  .recipes-page .recipes-dish-label { font-size: 11px; }
  .recipes-page .recipes-meal-bottom p { font-size: 11px; }
  .recipes-page .recipes-selections,
  .recipes-page .recipes-history { padding: 24px 18px 21px; border-radius: 15px; }
  .recipes-page .recipes-selection-summary { max-width: 90px; font-size: 11px; }
  .recipes-page .recipes-table-head { display: none; }
  .recipes-page .recipes-food-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; padding: 19px 0; }
  .recipes-page .recipes-row-theme { grid-column: 1; grid-row: 1; gap: 7px; }
  .recipes-page .recipes-row-theme button { font-size: 13px; }
  .recipes-page .recipes-row-number { width: 20px; font-size: 14px; }
  .recipes-page .recipes-food-name { grid-column: 1 / -1; grid-row: 2; padding-left: 27px; font-size: 15px; }
  .recipes-page .recipes-food-name.is-empty { font-size: 13px; }
  .recipes-page .recipes-row-pool { display: flex; grid-column: 2; grid-row: 1; font-size: 11px; }
  .recipes-page .recipes-row-actions { grid-column: 1 / -1; grid-row: 3; justify-content: flex-start; padding-left: 27px; gap: 8px; margin: 2px 0 0; }
  .recipes-page .recipes-row-actions button { padding: 9px 12px; font-size: 12px; }
  .recipes-page .recipes-selection-foot { font-size: 11px; line-height: 1.9; align-items: flex-start; }
  .recipes-page .recipes-selection-foot button { font-size: 11px; }
  .recipes-page .recipes-history-search { flex-basis: 100%; }
  .recipes-page .recipes-history-entry { padding: 18px 15px; }
  .recipes-page .recipes-history-entry > header { flex-wrap: wrap; gap: 8px; }
  .recipes-page .recipes-history-entry h4 { font-size: 14px; }
  .recipes-page .recipes-history-entry time,
  .recipes-page .recipes-history-entry .recipes-history-source { font-size: 10px; }
  .recipes-page .recipes-history-foods { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 15px; }
  .recipes-page .recipes-history-foods span { font-size: 11px; }
  .recipes-page .recipes-history-foods strong { font-size: 13px; }
  .recipes-page .recipes-history-meal { font-size: 11px; }
  .projects-page .projects-hero { display: block; min-height: 294px; padding: 25px 22px; overflow: hidden; }
  .projects-page .projects-hero-copy { position: relative; z-index: 2; }
  .projects-page .projects-hero h1 { margin-top: 10px; font-size: 28px; }
  .projects-page .projects-hero-copy > .projects-eyebrow { font-size: 9px; letter-spacing: 1px; }
  .projects-page .projects-hero-copy > .projects-eyebrow::before { width: 17px; }
  .projects-page .projects-hero-line { max-width: 230px; margin-bottom: 12px; font-size: 17px; line-height: 1.8; }
  .projects-page .projects-hero-description { max-width: 225px; padding-right: 63px; font-size: 12px; }
  .projects-page .projects-hero-actions { margin-top: 21px; gap: 9px; }
  .projects-page .projects-hero-actions .projects-primary { padding-inline: 14px; font-size: 13px; }
  .projects-page .projects-hero-actions > span { display: none; }
  .projects-page .projects-hero-art { position: absolute; z-index: 1; right: 11px; bottom: 13px; width: 122px; height: 169px; margin: 0; transform: none; }
  .projects-page .projects-hero-art img { width: 119px; height: 158px; right: -1px; bottom: 12px; }
  .projects-page .projects-hero-art::before { width: 106px; height: 106px; top: 22px; right: 0; }
  .projects-page .projects-art-note { width: 63px; height: 102px; top: 43px; left: 1px; padding: 20px 7px; font-size: 6px; }
  .projects-page .projects-art-note::before { width: 29px; height: 12px; left: 15px; }
  .projects-page .projects-hero-art figcaption { bottom: 0; font-size: 8px; }
  .projects-page .projects-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 20px 0 28px; }
  .projects-page .projects-stat { padding: 18px 20px; }
  .projects-page .projects-stat:nth-child(3),
  .projects-page .projects-stat:nth-child(4) { border-top: 1px solid var(--projects-line); }
  .projects-page .projects-stat:nth-child(3)::before { content: none; }
  .projects-page .projects-stat > strong { font-size: 30px; }
  .projects-page .projects-stat > strong small { font-size: 11px; }
  .projects-page .projects-stat > span { font-size: 12px; }
  .projects-page .projects-collection-head { align-items: flex-start; gap: 12px; }
  .projects-page .projects-collection-head .projects-eyebrow { font-size: 9px; letter-spacing: 1px; }
  .projects-page .projects-collection-head > p { display: none; }
  .projects-page .projects-filter-panel { padding: 14px; gap: 12px; }
  .projects-page .projects-filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 9px; }
  .projects-page .projects-filter-fields > label > span { margin-bottom: 5px; font-size: 11px; }
  .projects-page .projects-filter-fields select { min-height: 44px; font-size: 12px; padding-left: 9px; }
  .projects-page .projects-results-line { gap: 9px; font-size: 11px; }
  .projects-page .projects-results-line p { max-width: 185px; }
  .projects-page .projects-results-line > span { text-align: right; }
  .projects-page .projects-active-filters { flex-wrap: wrap; }
  .projects-page .projects-clear { max-width: none; padding-inline: 4px; font-size: 12px; }
  .projects-page .projects-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .projects-page .projects-card { min-height: 274px; padding: 24px 25px 18px; }
  .projects-page .projects-card::before { left: 25px; }
  .projects-page .projects-card-heading h3 { font-size: 18px; }
  .projects-page .projects-card-top { margin-bottom: 16px; }
  .projects-page .projects-card-category { font-size: 12px; }
  .projects-page .projects-status { font-size: 11px; }
  .projects-page .projects-card-summary { min-height: 0; font-size: 13px; }
  .projects-page .projects-card-foot { grid-template-columns: minmax(0, 1fr) auto auto; row-gap: 0; font-size: 11px; }
  .projects-page .projects-card-resources,
  .projects-page .projects-card-turn { grid-column: auto; grid-row: auto; }
  .projects-page .projects-detail-toolbar { align-items: flex-start; gap: 8px; margin-bottom: 18px; }
  .projects-page .projects-detail-toolbar > div { flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
  .projects-page .projects-back { min-height: 44px; padding-right: 4px; white-space: nowrap; font-size: 12px; }
  .projects-page .projects-detail-toolbar .projects-secondary { min-height: 44px; padding-inline: 10px; font-size: 12px; }
  .projects-page .projects-detail-toolbar .projects-delete,
  .projects-page .projects-detail-toolbar .projects-undo { min-width: 44px; min-height: 44px; }
  .projects-page .projects-detail-lead { padding: 25px 22px; border-radius: 15px; }
  .projects-page .projects-detail-kicker { gap: 9px 11px; }
  .projects-page .projects-detail-kicker > .projects-eyebrow { flex-basis: 100%; font-size: 9px; }
  .projects-page .projects-detail-category { border: 0; padding-left: 0; font-size: 12px; }
  .projects-page.projects-detail h1 { font-size: 25px; }
  .projects-page .projects-detail-summary { font-size: 14px; }
  .projects-page .projects-story { padding: 24px 22px 6px; border-radius: 15px; }
  .projects-page .projects-story-intro { font-size: 11px; padding-bottom: 20px; }
  .projects-page .projects-story-section { padding: 25px 0 28px; }
  .projects-page .projects-story-heading { gap: 10px; margin-bottom: 17px; }
  .projects-page .projects-story-heading h2 { font-size: 18px; }
  .projects-page .projects-story-text { font-size: 14px; line-height: 2; }
  .projects-page .projects-story-text.is-empty { font-size: 13px; }
  .projects-page .projects-detail-aside { grid-template-columns: minmax(0, 1fr); }
  .projects-page .projects-detail-aside .projects-materials { grid-row: auto; }
  .projects-page .projects-detail-aside > section { padding: 23px; }
  .projects-page .projects-facts dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projects-page .projects-facts dd { margin-left: 0; font-size: 13px; }
  .projects-page .projects-side-empty { font-size: 13px; }
  .projects-page .projects-page-foot { font-size: 11px; align-items: flex-start; gap: 7px; }
  .projects-page .projects-page-foot .projects-icon { margin-top: 4px; width: 13px; height: 13px; }
  .projects-form .projects-form-intro { flex-direction: column; gap: 3px; font-size: 12px; }
  .projects-form .projects-form-intro > span { font-size: 11px; }
  .projects-form .projects-form-grid { grid-template-columns: minmax(0, 1fr); }
  .projects-form .field { font-size: 13px; }
  .projects-form .projects-form-help { font-size: 11px; }
}
@media (max-width: 360px) {
  :is(.ledger-page, .recipes-page, .projects-page) { padding-inline: 11px; }
  .ledger-page .ledger-hero,
  .recipes-page .recipes-hero { padding-inline: 18px; }
  .ledger-page .ledger-hero-copy { padding-right: 82px; }
  .ledger-page .ledger-hero h1,
  .recipes-page .recipes-hero h1 { font-size: 25px; }
  .ledger-page .ledger-hero-actions { margin-right: -82px; }
  .ledger-page .ledger-photo { width: 79px; right: 15px; top: 49px; }
  .ledger-page .ledger-photo img { height: 95px; }
  .ledger-page .ledger-stat { padding-inline: 15px; grid-template-columns: 75px minmax(0, 1fr); gap: 5px 8px; }
  .ledger-page .ledger-stat strong { font-size: 26px; }
  .ledger-page .ledger-stat > span { font-size: 12px; }
  .ledger-page .ledger-stat strong[data-long-amount] { grid-column: 1 / -1; margin-top: 4px; text-align: left; font-size: 20px; }
  .ledger-page .ledger-calendar { padding-inline: 9px; }
  .ledger-page .ledger-calendar-weekdays,
  .ledger-page .ledger-calendar-grid { gap: 2px; }
  .ledger-page .ledger-calendar-day .ledger-calendar-amount { font-size: 10px; }
  .ledger-page .ledger-categories,
  .ledger-page .ledger-records { padding-inline: 16px; }
  .ledger-page .ledger-category-bars { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ledger-page .ledger-category-bar { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; }
  .ledger-page .ledger-category-bar > .ledger-category-photo { grid-row: 1; }
  .ledger-page .ledger-category-bar > strong { grid-column: 3; grid-row: 1; text-align: right; max-width: 96px; }
  .recipes-page .recipes-hero-copy { padding-right: 65px; }
  .recipes-page .recipes-hero-note { margin-right: -65px; font-size: 10px; }
  .recipes-page .recipes-hero-art { width: 75px; right: 14px; top: 47px; }
  .recipes-page .recipes-hero-art img { height: 99px; }
  .recipes-page .recipes-art-caption { font-size: 8px; }
  .recipes-page .recipes-wheel-card { padding-inline: 14px; }
  .recipes-page .recipes-section-head h2 { font-size: 17px; }
  .recipes-page .recipes-pool-link { padding-inline: 7px; font-size: 11px; }
  .recipes-page .recipes-date-fields { grid-template-columns: minmax(0, 1fr) 80px auto; gap: 6px; }
  .recipes-page .recipes-datebar { padding-inline: 10px; }
  .recipes-page .recipes-today { padding-inline: 7px; }
  .recipes-page .recipes-selections,
  .recipes-page .recipes-history { padding-inline: 15px; }
  .projects-page .projects-hero { padding-inline: 19px; }
  .projects-page .projects-hero-art { width: 105px; right: 6px; }
  .projects-page .projects-hero-art img { width: 111px; height: 148px; right: -4px; }
  .projects-page .projects-hero-description { padding-right: 60px; font-size: 11px; }
  .projects-page .projects-hero-actions .projects-primary { padding-inline: 12px; font-size: 12px; }
  .projects-page .projects-stat { padding-inline: 17px; }
  .projects-page .projects-filter-panel { padding-inline: 12px; }
  .projects-page .projects-card { padding-inline: 21px; }
  .projects-page .projects-card::before { left: 21px; }
  .projects-page .projects-detail-toolbar { flex-wrap: wrap; }
  .projects-page .projects-detail-toolbar > div { width: 100%; }
}
/* Series keepsakes give each work surface its own material character.
   Illustrations occupy reserved header space and never participate in hit testing. */
.ledger-page .ledger-stat {
  position: relative;
  background-image: var(--atelier-grain), linear-gradient(90deg, transparent 15px, #b8aa971f 15px 16px, transparent 16px);
  background-size: 180px 180px, 100% 100%;
}
.ledger-page .ledger-stat > span { min-height: 82px; padding-right: 104px; align-items: flex-start; padding-top: 9px; }
.ledger-page .ledger-stat::before {
  content: ""; position: absolute; left: 16px; right: 16px; bottom: 8px;
  height: 5px;
  background: linear-gradient(135deg, #a9826154 25%, transparent 25%) 0 0 / 12px 6px repeat-x,
    linear-gradient(225deg, #a9826154 25%, transparent 25%) 0 0 / 12px 6px repeat-x;
  pointer-events: none;
}
.ledger-page .ledger-stat::after {
  content: ""; position: absolute; right: 19px; top: 12px; width: 91px; height: 108px;
  background: url("../assets/hirono/series/wildgrass-receipts-cutout.png") center / auto 100% no-repeat;
  filter: drop-shadow(1px 3px 1px #64513f13); pointer-events: none;
}
.ledger-page .ledger-stat.expense::after { background-image: url("../assets/hirono/series/carnival-doctor.png"); background-size: auto 132%; }
.ledger-page .ledger-stat.balance::after { background-image: url("../assets/hirono/series/carnival-clown.png"); background-size: auto 132%; }
.ledger-page .ledger-categories { background-image: var(--atelier-grain), linear-gradient(180deg, #fcfaf7, #f3f0eb); background-size: 180px 180px, 100% 100%; }
.ledger-page .ledger-calendar > header > div:first-child,
.ledger-page .ledger-records > .ledger-section-title > div { position: relative; min-height: 92px; padding-left: 88px; display: flex; flex-direction: column; justify-content: center; }
.ledger-page .ledger-calendar > header > div:first-child::before,
.ledger-page .ledger-records > .ledger-section-title > div::before {
  content: ""; position: absolute; left: -5px; top: -3px; width: 78px; height: 96px;
  background: url("../assets/hirono/series/carnival-doctor.png") center / auto 132% no-repeat;
  pointer-events: none;
}
.ledger-page .ledger-records > .ledger-section-title > div::before { background-image: url("../assets/hirono/series/wildgrass-receipts-cutout.png"); background-size: auto 100%; }
.ledger-page .ledger-records {
  position: relative; padding-bottom: 33px;
  border-radius: 16px 16px 7px 7px;
  background-image: var(--atelier-grain);
  background-size: 180px 180px;
  box-shadow: 0 3px 0 -1px #fcfaf7, 0 4px 0 -1px #d7cbbd, 0 9px 20px #493b2d05;
}
.ledger-page .ledger-records::before {
  content: ""; position: absolute; top: 19px; bottom: 19px; left: 10px; width: 3px;
  background: repeating-linear-gradient(180deg, #9659474d 0 3px, transparent 3px 8px);
  pointer-events: none;
}
.ledger-page .ledger-records::after {
  content: ""; position: absolute; bottom: 10px; left: 21px; right: 21px; height: 1px;
  background: repeating-linear-gradient(90deg, #baa9936e 0 3px, transparent 3px 7px);
  pointer-events: none;
}
.recipes-page .recipes-wheel-card,
.recipes-page .recipes-meal-card,
.recipes-page .recipes-selections,
.recipes-page .recipes-history {
  background-image: var(--atelier-cloth), var(--atelier-grain), linear-gradient(135deg, #fffdf8b3, transparent 66%);
  background-size: 48px 48px, 180px 180px, 100% 100%;
}
.recipes-page .recipes-wheel-card > .recipes-section-head,
.recipes-page .recipes-selections > .recipes-section-head,
.recipes-page .recipes-history > .recipes-section-head { position: relative; min-height: 108px; padding-left: 98px; }
.recipes-page .recipes-wheel-card > .recipes-section-head::before,
.recipes-page .recipes-selections > .recipes-section-head::before,
.recipes-page .recipes-history > .recipes-section-head::before {
  content: ""; position: absolute; left: -10px; top: -7px; width: 92px; height: 120px;
  background: url("../assets/hirono/series/clot-chinese.png") center / auto 132% no-repeat;
  filter: drop-shadow(1px 3px 1px #64513f10); pointer-events: none;
}
.recipes-page .recipes-selections > .recipes-section-head::before { background-image: url("../assets/hirono/series/clot-silk.png"); }
.recipes-page .recipes-history > .recipes-section-head::before { background-image: url("../assets/hirono/series/clot-chinese.png"); }
.recipes-page .recipes-section-head > div { min-width: 0; }
.recipes-page .recipes-meal-mark {
  width: 100px; height: 126px; flex: none; margin-left: -9px; border: 0; border-radius: 0;
  background: url("../assets/hirono/series/clot-silk.png") center / auto 132% no-repeat;
  filter: drop-shadow(1px 3px 1px #64513f10);
}
.recipes-page .recipes-meal-mark .recipes-icon { visibility: hidden; }
.recipes-page .recipes-meal-title > div { min-width: 0; }
.recipes-page .recipes-dish-number { border-color: #cba99a; border-radius: 5px; color: #965947; box-shadow: inset 0 0 0 2px #fcfaf7; }
.recipes-page .recipes-food-row {
  margin: 10px 0; padding: 15px 13px;
  border: 1px solid #ddd5cb; border-radius: 5px 11px 11px 5px;
  background-color: #faf7f1;
  background-image: linear-gradient(90deg, #a88b5c20 0 3px, transparent 3px), var(--atelier-cloth), var(--atelier-grain);
  background-size: 100% 100%, 48px 48px, 180px 180px;
  box-shadow: 0 2px 2px #5e4a3103;
}
.recipes-page .recipes-food-row:last-child { border-bottom: 1px solid #ddd5cb; }
.recipes-page .recipes-food-row.is-locked { background-color: #f1eade; background-image: linear-gradient(90deg, #a88b5c73 0 3px, transparent 3px), var(--atelier-cloth), var(--atelier-grain); }
.recipes-page .recipes-row-number { display: grid; place-items: center; width: 29px; height: 32px; border: 1px solid #ba8370; border-radius: 3px; background: #fcfaf7; color: #965947; box-shadow: inset 0 0 0 2px #fcfaf7, inset 0 0 0 3px #d7b19d; font-size: 14px; }
.recipes-page .recipes-history-entry { border-radius: 4px 12px 12px 4px; border-left: 3px solid #baa581; background-image: repeating-linear-gradient(0deg, transparent 0 27px, #a38d6c09 27px 28px); }
.recipes-page .recipes-meal-title,
.recipes-page .recipes-selections > .recipes-section-head { border-bottom: 1px solid #dfd1c2; padding-bottom: 15px; }
.recipes-page .recipes-meal-badge { border: 1px solid #cba99a; border-radius: 5px; background: #fcfaf7; color: #965947; }
.projects-page .projects-stats,
.projects-page .projects-filter-panel { background-image: var(--atelier-wood); background-size: 220px 140px; }
.projects-page .projects-grid { row-gap: 27px; padding-top: 9px; }
.projects-page .projects-card {
  padding-top: 29px; border-radius: 3px 14px 14px 14px;
  background-image: var(--atelier-grain), var(--atelier-wood), linear-gradient(0deg, #f3eee440, transparent 80%);
  background-size: 180px 180px, 220px 140px, 100% 100%;
  box-shadow: 0 3px 0 -1px #fcfaf7, 0 4px 0 -1px #d4c7b7, 0 9px 20px #493b2d05;
}
.projects-page .projects-card::before {
  top: -10px; left: -1px; width: 103px; height: 20px;
  border: 1px solid #d6c6b8; border-bottom: 0; border-radius: 7px 15px 0 0;
  background: linear-gradient(180deg, #e5d4c7, #f5eee7);
  pointer-events: none;
}
.projects-page .projects-card:nth-child(3n+2)::before { background: linear-gradient(180deg, #e2d6be, #f5f0e6); border-color: #d5c9b2; }
.projects-page .projects-card:nth-child(3n)::before { background: linear-gradient(180deg, #ddd0d7, #f4edf0); border-color: #d2c1ca; }

.projects-page .projects-card-top { min-height: 126px; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 11px; padding-right: 119px; margin-bottom: 13px; }
.projects-page .projects-card-category { display: inline-block; max-width: 100%; padding: 4px 8px; border: 1px solid #cfbba5; border-radius: 3px; background: var(--atelier-wood) #f2e9dd; background-size: 220px 140px; color: #655b53; line-height: 1.65; }
.projects-page .projects-card-summary { min-height: 73px; }
.projects-page .projects-detail-aside > section {
  position: relative; border-radius: 5px 12px 12px 12px;
  background-image: var(--atelier-grain), var(--atelier-wood);
  background-size: 180px 180px, 220px 140px;
  box-shadow: inset 3px 0 #e7ddd0;
}
.projects-page .projects-detail-aside h2 { display: flex; align-items: center; min-height: 81px; padding-right: 85px; }
.projects-page .projects-detail-aside > section::after {
  content: ""; position: absolute; top: 14px; right: 15px; width: 73px; height: 94px;
  background: url("../assets/hirono/series/shelter-poet-cutout.png") center / contain no-repeat;
  pointer-events: none;
}
.projects-page .projects-detail-aside > section:nth-child(2)::after { background-image: url("../assets/hirono/series/mercy-city-cutout.png"); }
.projects-page .projects-detail-aside > section:nth-child(3)::after { background-image: url("../assets/hirono/series/shelter-poet-cutout.png"); }
.projects-page .projects-story { background-image: var(--atelier-grain), linear-gradient(90deg, transparent 13px, #c2ab8e38 13px 14px, transparent 14px); background-size: 180px 180px, 100% 100%; }
@media (max-width: 760px) {
  .ledger-page .ledger-stat { grid-template-columns: 79px minmax(0, 1fr); column-gap: 13px; min-height: 144px; padding: 18px; }
  .ledger-page .ledger-stat > span { grid-column: 2; grid-row: 1; min-height: 0; padding: 0; align-items: center; font-size: 12px; }
  .ledger-page .ledger-stat strong { grid-column: 2; grid-row: 2; text-align: left; font-size: 29px; }
  .ledger-page .ledger-stat strong[data-long-amount] { grid-column: 2; grid-row: 2; margin: 0; text-align: left; font-size: clamp(17px, 4.6vw, 24px); }
  .ledger-page .ledger-stat p { grid-column: 2; grid-row: 3; font-size: 11px; }
  .ledger-page .ledger-stat::after { left: 13px; right: auto; top: 18px; width: 79px; height: 105px; }
  .ledger-page .ledger-calendar > header > div:first-child,
  .ledger-page .ledger-records > .ledger-section-title > div { padding-left: 77px; min-height: 88px; }
  .ledger-page .ledger-calendar > header > div:first-child::before,
  .ledger-page .ledger-records > .ledger-section-title > div::before { width: 68px; height: 88px; }
  .recipes-page .recipes-wheel-card > .recipes-section-head,
  .recipes-page .recipes-selections > .recipes-section-head,
  .recipes-page .recipes-history > .recipes-section-head { min-height: 116px; padding-left: 0; padding-right: 90px; flex-direction: column; align-items: flex-start; gap: 9px; }
  .recipes-page .recipes-wheel-card > .recipes-section-head::before,
  .recipes-page .recipes-selections > .recipes-section-head::before,
  .recipes-page .recipes-history > .recipes-section-head::before { left: auto; right: -5px; top: -6px; width: 82px; height: 120px; }
  .recipes-page .recipes-selection-summary { max-width: none; }
  .recipes-page .recipes-meal-mark { width: 85px; height: 112px; }
  .projects-page .projects-card { padding-top: 29px; }
}
@media (max-width: 560px) {
  .ledger-page .ledger-records { padding-bottom: 32px; }
  .ledger-page .ledger-records::before { left: 7px; }
  .recipes-page .recipes-wheel-card > .recipes-section-head,
  .recipes-page .recipes-history > .recipes-section-head { align-items: flex-start; }
  .recipes-page .recipes-meal-title { gap: 10px; }
  .recipes-page .recipes-meal-mark { width: 83px; height: 109px; }
  .recipes-page .recipes-meal-title > div { flex: 1; }
  .recipes-page .recipes-meal-badge { margin-left: 0; }
  .recipes-page .recipes-food-row { padding: 16px 12px; }
  .recipes-page .recipes-row-theme { gap: 8px; }
  .recipes-page .recipes-food-name,
  .recipes-page .recipes-row-actions { padding-left: 35px; }
  .recipes-page .recipes-row-actions button { padding-inline: 10px; }
  .recipes-page .recipes-selection-foot { flex-wrap: wrap; }
  .recipes-page .recipes-history > .recipes-section-head { flex-wrap: wrap; }
  .recipes-page .recipes-history-count { margin-left: 0; }
  .projects-page .projects-card-top { padding-right: 111px; min-height: 120px; }
  .projects-page .projects-card::after { width: 101px; height: 132px; right: 16px; }
  .projects-page .projects-card-summary { min-height: 0; }
}
/* Coarse pointers can occur on tablet-sized Windows windows as well. */
@media (pointer: coarse), (max-width: 760px) {
  .recipes-page .recipes-history-search button,
  .projects-page .projects-search button { min-width: 44px; min-height: 44px; }
  .projects-page .projects-card-open { min-height: 44px; }
  .projects-page .projects-filter-fields select { min-height: 44px; }
  .ledger-page :is(.ledger-period-switch, .ledger-type-filter, .ledger-calendar-mode) button,
  .ledger-page :is(.ledger-this-month, .ledger-export, .ledger-calendar-clear, .ledger-search button) { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.ledger-page, .recipes-page, .projects-page) button,
  .projects-page .projects-card { transition: none; }
  .projects-page .projects-card:hover { transform: none; }
}
