/*
 * LandPointer Palette: every color the app uses, in one place.
 *
 * Built from the LandPointer logo (a white pointer dog on forest green). Django pages
 * (templates/base.html, templates/app.html) load this file before their own styles, and the
 * React app's styles.css only uses the variables defined here. Emails can't read CSS variables,
 * so they get the same values from apps/core/palette.py, which reads this file. Change a color
 * here and it changes everywhere; don't hard-code hex values in templates or components.
 */
:root {
  /* Brand (the logo). Same in light and dark mode. */
  --brand: #1f3a2e;          /* forest green: header, logo tile, primary buttons */
  --brand-ink: #ffffff;      /* the dog, and text on forest green */

  /* Text and controls on the forest-green header */
  --on-brand: #ffffff;
  --on-brand-dim: rgba(255, 255, 255, 0.74);
  --on-brand-active: rgba(255, 255, 255, 0.15);
  --on-brand-fill: rgba(255, 255, 255, 0.10);
  --on-brand-hover: rgba(255, 255, 255, 0.18);
  --on-brand-line: rgba(255, 255, 255, 0.28);

  /* Surfaces and text */
  --bg: #f4f6f1;             /* page background, warm off-white */
  --panel: #ffffff;          /* cards, tables, inputs */
  --panel2: #edf1eb;         /* table headers, secondary buttons, hover */
  --line: #d6ddd4;           /* borders, dividers */
  --text: #15231b;           /* body text */
  --dim: #55655b;            /* secondary text, labels */
  --faint: #8b978f;          /* hints, disabled */

  /* Actions */
  --accent: #1f3a2e;         /* primary buttons, active toggles */
  --accent-text: #ffffff;    /* text on --accent */
  --link: #2b6b4a;

  /* Status */
  --green: #2d7a4f;          /* good, paid, money */
  --amber: #a15c07;          /* warning, review */
  --red: #b42318;            /* error, overdue */
  --blue: #2563eb;           /* water, neutral info */

  /* Landing page hero gradient */
  --hero1: #e3ebe2;
  --hero2: #f4f6f1;

  /* Map colors. These carry meaning, not brand: keep them bright and distinct. */
  --map-match: #22c55e;      /* strong match */
  --map-match-line: #16a34a;
  --map-review: #f59e0b;     /* partial match, needs review */
  --map-review-line: #d97706;
  --map-changed: #f87171;    /* changed, sold */
  --map-unscored: #94a3b8;
  --map-unscored-line: #64748b;

  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0e1813;           /* forest black */
    --panel: #14211a;
    --panel2: #1a2a22;
    --line: #26382e;
    --text: #e6ede8;
    --dim: #9db0a5;
    --faint: #6c7e73;

    --accent: #9fd3b3;       /* sage */
    --accent-text: #0e1813;
    --link: #9fd3b3;

    --green: #5ccf8b;
    --amber: #fbbf24;
    --red: #f87171;
    --blue: #60a5fa;

    --hero1: #16271e;
    --hero2: #0e1813;

    color-scheme: dark;
  }
}
