/*
 * FairAgro brand palette ("Terracotta and soil"), adapted from
 * ../app/design/design-audit.md's locked color tokens onto the MatDash
 * template's Bootstrap CSS custom properties.
 *
 * Loaded after /vendor/assets/css/styles.css on every page (never edited
 * directly — see .claude/rules/ui-and-template.md on re-syncing vendor
 * assets from temp/). Selectors below intentionally mirror the ones in
 * styles.css so this file's later position in the cascade is enough to
 * win, without needing !important.
 */

:root,
[data-bs-theme="light"] {
  /* brand/primary */
  --bs-primary: #b34a24;
  --bs-primary-rgb: 179, 74, 36;
  --bs-primary-text-emphasis: #6b2c16;
  --bs-primary-bg-subtle: #f0dbd3;
  --bs-primary-border-subtle: #e1b7a7;

  /* text-secondary, doubling as bootstrap's neutral "secondary" */
  --bs-secondary: #6e6353;
  --bs-secondary-rgb: 110, 99, 83;
  --bs-secondary-color: #6e6353;
  --bs-secondary-color-rgb: 110, 99, 83;
  --bs-secondary-text-emphasis: #423b32;
  --bs-secondary-bg-subtle: #e2e0dd;
  --bs-secondary-border-subtle: #c5c1ba;

  /* success-green */
  --bs-success: #2e7d4f;
  --bs-success-rgb: 46, 125, 79;
  --bs-success-text-emphasis: #1c4b2f;
  --bs-success-bg-subtle: #d5e5dc;
  --bs-success-border-subtle: #abcbb9;

  /* error-red */
  --bs-danger: #c0362c;
  --bs-danger-rgb: 192, 54, 44;
  --bs-danger-text-emphasis: #73201a;
  --bs-danger-bg-subtle: #f2d7d5;
  --bs-danger-border-subtle: #e6afab;

  /* savings-amber, with the spec's own pill bg/text pair */
  --bs-warning: #e8890c;
  --bs-warning-rgb: 232, 137, 12;
  --bs-warning-text-emphasis: #8a5008;
  --bs-warning-bg-subtle: #fdf0dc;
  --bs-warning-border-subtle: #f6d09e;

  /* no "info" token in the design spec — nearest in-family neutral */
  --bs-info: #8a5008;
  --bs-info-rgb: 138, 80, 8;
  --bs-info-text-emphasis: #4d2d05;
  --bs-info-bg-subtle: #fdf0dc;
  --bs-info-border-subtle: #f6d09e;

  /* bg-tint (inset blocks) */
  --bs-light: #f3ecdd;
  --bs-light-rgb: 243, 236, 221;

  /* ink */
  --bs-dark: #3a2a20;
  --bs-dark-rgb: 58, 42, 32;

  /* bg-page / ink / border */
  --bs-body-bg: #f9f4ea;
  --bs-body-bg-rgb: 249, 244, 234;
  --bs-body-color: #3a2a20;
  --bs-body-color-rgb: 58, 42, 32;
  --bs-border-color: #e8dfce;
  --bs-border-color-translucent: rgba(58, 42, 32, 0.15);

  --bs-link-color: #b34a24;
  --bs-link-color-rgb: 179, 74, 36;
  --bs-link-hover-color: #983f1f;
  --bs-link-hover-color-rgb: 152, 63, 31;
}

/* styles.css's [data-color-theme="Blue_Theme"] preset re-sets --bs-primary/
   --bs-secondary at higher specificity ([data-bs-theme][data-color-theme]:root)
   than the plain :root rule above, so it wins regardless of source order unless
   matched here — every page in pages/ sets data-color-theme="Blue_Theme". */
[data-bs-theme="light"][data-color-theme="Blue_Theme"]:root {
  --bs-primary: #b34a24;
  --bs-primary-rgb: 179, 74, 36;
  --bs-secondary: #6e6353;
  --bs-secondary-rgb: 110, 99, 83;
}

/* bg-card, plus the card chrome that styles.css hardcodes per-instance
   rather than sourcing from a var (see ui-and-template.md's "Things that
   bite" note on the same pattern for alert emphasis colors). */
.card {
  --bs-card-bg: #fbf7ef;
  --bs-card-border-color: #e8dfce;
  --bs-card-title-color: #3a2a20;
  --bs-card-subtitle-color: #6e6353;
}

/* Every .btn-* / .btn-outline-* variant bakes its colors as literal hex
   (a Sass-compile quirk, same root cause as ui-and-template.md's alert
   emphasis gotcha) rather than reading --bs-primary/--bs-secondary/etc., so
   each one needs its own override. .btn-primary/.btn-secondary are also
   re-declared per data-color-theme at higher specificity — matched here too
   so this later rule wins regardless of source order. */
[data-bs-theme="light"][data-color-theme="Blue_Theme"]:root .btn-primary,
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #b34a24;
  --bs-btn-border-color: #b34a24;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #9c401f;
  --bs-btn-hover-border-color: #9c401f;
  --bs-btn-focus-shadow-rgb: 179, 74, 36;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #8f3b1d;
  --bs-btn-active-border-color: #8f3b1d;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #b34a24;
  --bs-btn-disabled-border-color: #b34a24;
}

[data-bs-theme="light"][data-color-theme="Blue_Theme"]:root .btn-secondary,
.btn-secondary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #6e6353;
  --bs-btn-border-color: #6e6353;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #605648;
  --bs-btn-hover-border-color: #605648;
  --bs-btn-focus-shadow-rgb: 110, 99, 83;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #584f42;
  --bs-btn-active-border-color: #584f42;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #6e6353;
  --bs-btn-disabled-border-color: #6e6353;
}

.btn-success {
  --bs-btn-color: #fff;
  --bs-btn-bg: #2e7d4f;
  --bs-btn-border-color: #2e7d4f;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #286d45;
  --bs-btn-hover-border-color: #286d45;
  --bs-btn-focus-shadow-rgb: 46, 125, 79;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #25643f;
  --bs-btn-active-border-color: #25643f;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #2e7d4f;
  --bs-btn-disabled-border-color: #2e7d4f;
}

.btn-danger {
  --bs-btn-color: #fff;
  --bs-btn-bg: #c0362c;
  --bs-btn-border-color: #c0362c;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #a72f26;
  --bs-btn-hover-border-color: #a72f26;
  --bs-btn-focus-shadow-rgb: 192, 54, 44;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #9a2b23;
  --bs-btn-active-border-color: #9a2b23;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #c0362c;
  --bs-btn-disabled-border-color: #c0362c;
}

.btn-outline-primary {
  --bs-btn-color: #b34a24;
  --bs-btn-border-color: #b34a24;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #b34a24;
  --bs-btn-hover-border-color: #b34a24;
  --bs-btn-focus-shadow-rgb: 179, 74, 36;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #b34a24;
  --bs-btn-active-border-color: #b34a24;
  --bs-btn-disabled-color: #b34a24;
  --bs-btn-disabled-border-color: #b34a24;
}

.btn-outline-secondary {
  --bs-btn-color: #6e6353;
  --bs-btn-border-color: #6e6353;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #6e6353;
  --bs-btn-hover-border-color: #6e6353;
  --bs-btn-focus-shadow-rgb: 110, 99, 83;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #6e6353;
  --bs-btn-active-border-color: #6e6353;
  --bs-btn-disabled-color: #6e6353;
  --bs-btn-disabled-border-color: #6e6353;
}

.btn-outline-success {
  --bs-btn-color: #2e7d4f;
  --bs-btn-border-color: #2e7d4f;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #2e7d4f;
  --bs-btn-hover-border-color: #2e7d4f;
  --bs-btn-focus-shadow-rgb: 46, 125, 79;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #2e7d4f;
  --bs-btn-active-border-color: #2e7d4f;
  --bs-btn-disabled-color: #2e7d4f;
  --bs-btn-disabled-border-color: #2e7d4f;
}

.btn-outline-danger {
  --bs-btn-color: #c0362c;
  --bs-btn-border-color: #c0362c;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #c0362c;
  --bs-btn-hover-border-color: #c0362c;
  --bs-btn-focus-shadow-rgb: 192, 54, 44;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #c0362c;
  --bs-btn-active-border-color: #c0362c;
  --bs-btn-disabled-color: #c0362c;
  --bs-btn-disabled-border-color: #c0362c;
}

/* Auth screens' decorative ring (temp/dist/main/authentication-login.html) is a
   hardcoded navy border, not a var — clashes with bg-dark now reading as ink. */
.circle-top {
  border-color: #4e3f36;
}

/* adminTable()'s rowLink affordance (src/lib/adminTable.ts's bindRowLink()) — every
   admin table uses the same table/table-striped/table-bordered markup regardless of
   whether a row navigates anywhere, so a clickable row was indistinguishable from a
   plain one. Scoped to .js-row-link-table, added only when `rowLink` is passed, so a
   non-navigable table (e.g. audit-logs, geo, variations) keeps the default cursor and
   no hover highlight. */
.js-row-link-table tbody tr {
  cursor: pointer;
}
.js-row-link-table tbody tr:hover {
  background-color: var(--bs-primary-bg-subtle);
}
