/* ==========================================================================
   NeoNeko dark, for Forgejo
   Install: /var/lib/forgejo/custom/public/assets/css/theme-neoneko-dark.css
   Register in app.ini as `neoneko-dark` (filename minus theme- and .css).
   ==========================================================================

   This imports Forgejo's own dark theme and overrides only the colours, so
   upstream fixes and any new variables introduced by a Forgejo release are
   inherited automatically. Copying the whole upstream theme instead would
   freeze it at the version it was copied from.

   Forgejo builds its dark surfaces from a --steel-* scale and derives every
   semantic colour from it (--color-body is var(--steel-800), and so on).
   Overriding the scale therefore repaints the entire UI, which is far less
   work and far less brittle than chasing thirty semantic variables.

   Palette matches neoneko.org: #08080e page, #f2f3f7 text, violet accent. */

@import url("/assets/css/theme-forgejo-dark.css");

:root {
  /* --- Surface scale, darkest to lightest -------------------------------
     900 nav and footer · 800 page body · 750 box body · 700 cards and menus
     650 inputs · 600 hover borders · 550 input borders · 100-200 text */
  --steel-900: #040409;
  --steel-850: #06060c;
  --steel-800: #08080e;
  --steel-750: #0d0d15;
  --steel-700: #12121b;
  --steel-650: #191922;
  --steel-600: #24252f;
  --steel-550: #2f313c;
  --steel-500: #3c3f4b;
  --steel-450: #474a58;
  --steel-400: #545866;
  --steel-350: #616575;
  --steel-300: #6e7284;
  --steel-250: #7c8093;
  --steel-200: #8b8fa3;
  --steel-150: #a2a5b4;
  --steel-100: #f2f3f7;

  /* --- Brand ------------------------------------------------------------
     The site's #7b5cff is used here as the hover/active shade rather than as
     the base. As a base it fails WCAG AA twice over on a dark UI: white
     labels on it reach only 4.4:1, and as link text on a raised card it drops
     to 4.3:1. Lifting the base to #8b6dff and taking black labels fixes both
     and is the same trick Forgejo's own dark theme uses, where a bright
     orange primary carries black text.

     Hover and active go lighter rather than deeper, which is the opposite of
     upstream's ramp, because with black labels a deeper shade loses contrast.

     The -light-N ramp runs deeper and -dark-N runs paler. That reads
     backwards but it is the convention upstream uses, so it is kept. */
  --color-primary: #8b6dff;
  --color-primary-contrast: #000000;
  --color-primary-hover: #a08aff;
  --color-primary-active: #7b5cff;

  --color-primary-light-1: #7b5cff;
  --color-primary-light-2: #6b49f5;
  --color-primary-light-3: #5c3ae0;
  --color-primary-light-4: #4e2fc4;
  --color-primary-light-5: #4025a5;
  --color-primary-light-6: #341d88;
  --color-primary-light-7: #29166c;

  --color-primary-dark-1: #a08aff;
  --color-primary-dark-2: #b3a1ff;
  --color-primary-dark-3: #c5b8ff;
  --color-primary-dark-4: #d6ccff;
  --color-primary-dark-5: #e5dfff;
  --color-primary-dark-6: #f0ecff;
  --color-primary-dark-7: #f8f6ff;

  --color-primary-alpha-10: #8b6dff19;
  --color-primary-alpha-20: #8b6dff33;
  --color-primary-alpha-30: #8b6dff4b;
  --color-primary-alpha-40: #8b6dff66;
  --color-primary-alpha-50: #8b6dff80;
  --color-primary-alpha-60: #8b6dff99;
  --color-primary-alpha-70: #8b6dffb3;
  --color-primary-alpha-80: #8b6dffcc;
  --color-primary-alpha-90: #8b6dffe1;

  /* Swap to #ff2e7e for the pink from the site gradient if you want more of
     it in the UI. Kept in the violet family by default so accents and
     primaries do not fight each other. */
  --color-accent: #a08aff;

  /* Not derived from the scale upstream, so set explicitly. */
  --color-light-border: #ffffff1f;
  --color-shadow: #00000070;
}
