/* Forgejo theme: "Kanagawa Wave"
 * Palette from https://github.com/rebelot/kanagawa.nvim (Wave variant).
 * Built for Forgejo 15.x (CSS-variable theming). Layered on top of the
 * built-in dark theme, then re-maps the steel ramp + semantic colors.
 *
 * Install: /etc/forgejo/public/assets/css/theme-kanagawa-wave.css
 * then in app.ini [ui]:  THEMES = ...,kanagawa-wave   DEFAULT_THEME = kanagawa-wave
 */

@import "theme-forgejo-dark.css";

:root {
  /* ---- steel ramp -> sumiInk (backgrounds, borders) + fujiWhite text ---- */
  --steel-900: #16161d; /* sumiInk0 */
  --steel-850: #191920;
  --steel-800: #1f1f28; /* sumiInk1 */
  --steel-750: #23232c;
  --steel-700: #2a2a37; /* sumiInk2 */
  --steel-650: #2f2f3c;
  --steel-600: #363646; /* sumiInk3 */
  --steel-550: #3f3f50;
  --steel-500: #484859;
  --steel-450: #54546d; /* sumiInk4 */
  --steel-400: #5f5f7a;
  --steel-350: #6c6c88;
  --steel-300: #7e7e9a;
  --steel-250: #9494ad;
  --steel-200: #a8a8bf;
  --steel-150: #c3c3d3;
  --steel-100: #dcd7ba; /* fujiWhite — body text */

  /* ---- primary: crystalBlue ---- */
  --color-primary: #7e9cd8;
  --color-primary-contrast: #16161d;
  --color-primary-dark-1: #93aede;
  --color-primary-dark-2: #a8c0e4;
  --color-primary-dark-3: #bcd2ea;
  --color-primary-dark-4: #cfe0f0;
  --color-primary-dark-5: #dde8f5;
  --color-primary-dark-6: #e8eff9;
  --color-primary-dark-7: #f2f6fc;
  --color-primary-light-1: #6d8cc7;
  --color-primary-light-2: #5d7cb4;
  --color-primary-light-3: #4e6b9e;
  --color-primary-light-4: #3f5b86;
  --color-primary-light-5: #314b6c;
  --color-primary-light-6: #243b52;
  --color-primary-light-7: #182b38;
  --color-primary-alpha-10: #7e9cd819;
  --color-primary-alpha-20: #7e9cd833;
  --color-primary-alpha-30: #7e9cd84b;
  --color-primary-alpha-40: #7e9cd866;
  --color-primary-alpha-50: #7e9cd880;
  --color-primary-alpha-60: #7e9cd899;
  --color-primary-alpha-70: #7e9cd8b3;
  --color-primary-alpha-80: #7e9cd8cc;
  --color-primary-alpha-90: #7e9cd8e1;

  /* ---- secondary alphas -> sumiInk2 ---- */
  --color-secondary-alpha-10: #2a2a3719;
  --color-secondary-alpha-20: #2a2a3733;
  --color-secondary-alpha-30: #2a2a374b;
  --color-secondary-alpha-40: #2a2a3766;
  --color-secondary-alpha-50: #2a2a3780;
  --color-secondary-alpha-60: #2a2a3799;
  --color-secondary-alpha-70: #2a2a37b3;
  --color-secondary-alpha-80: #2a2a37cc;
  --color-secondary-alpha-90: #2a2a37e1;

  /* ---- top console/navbar ---- */
  --color-console-fg: #dcd7ba;
  --color-console-fg-subtle: #727169; /* fujiGray */
  --color-console-bg: #16161d;
  --color-console-border: #2a2a37;
  --color-console-hover-bg: #ffffff12;
  --color-console-active-bg: #363646;
  --color-console-menu-bg: #2a2a37;
  --color-console-menu-border: #54546d;

  /* ---- base palette (Kanagawa accents) ---- */
  --color-red: #c34043;    /* autumnRed */
  --color-orange: #ffa066; /* surimiOrange */
  --color-yellow: #dca561; /* autumnYellow */
  --color-olive: #938a56;
  --color-green: #76946a;  /* autumnGreen */
  --color-teal: #6a9589;   /* waveAqua1 */
  --color-blue: #7e9cd8;   /* crystalBlue */
  --color-violet: #957fb8; /* oniViolet */
  --color-purple: #bcaae1; /* oniViolet2 */
  --color-pink: #d27e99;   /* waveRed */
  --color-brown: #c0a36e;  /* boatYellow2 */
  --color-gold: #ff9e3b;   /* roninYellow */

  --color-red-light: #e46a6d;
  --color-orange-light: #ffb783;
  --color-yellow-light: #e7b87e;
  --color-olive-light: #a8a06a;
  --color-green-light: #8bab80;
  --color-teal-light: #7faea3;
  --color-blue-light: #93aede;
  --color-violet-light: #a895c9;
  --color-purple-light: #cbbde8;
  --color-pink-light: #de93ab;
  --color-brown-light: #cbb083;

  --color-red-dark-1: #ad393c;
  --color-green-dark-1: #69855f;
  --color-yellow-dark-1: #c69456;
  --color-blue-dark-1: #718cc2;
  --color-violet-dark-1: #8671a8;
  --color-purple-dark-1: #a99bcb;
  --color-pink-dark-1: #bf718a;
  --color-orange-dark-1: #e6905c;
  --color-teal-dark-1: #60867c;
  --color-brown-dark-1: #b09363;

  /* ---- terminal/ANSI colors ---- */
  --color-ansi-black: #16161d;
  --color-ansi-red: #c34043;
  --color-ansi-green: #98bb6c;  /* springGreen */
  --color-ansi-yellow: #dca561;
  --color-ansi-blue: #7e9cd8;
  --color-ansi-magenta: #957fb8;
  --color-ansi-cyan: #7aa89f;
  --color-ansi-white: #dcd7ba;
  --color-ansi-bright-black: #2a2a37;
  --color-ansi-bright-red: #e82424; /* samuraiRed */
  --color-ansi-bright-green: #98bb6c;
  --color-ansi-bright-yellow: #ff9e3b;
  --color-ansi-bright-blue: #7fb4ca; /* springBlue */
  --color-ansi-bright-magenta: #bcaae1;
  --color-ansi-bright-cyan: #6a9589;
  --color-ansi-bright-white: #dcd7ba;

  /* ---- diffs (winter* backgrounds) ---- */
  --color-diff-removed-word-bg: #49343c; /* winterRed */
  --color-diff-added-word-bg: #2b3328;   /* winterGreen */
  --color-diff-removed-row-bg: #3a2a2c;
  --color-diff-added-row-bg: #283226;
  --color-diff-moved-row-bg: #49443c;    /* winterYellow */
  --color-diff-removed-row-border: #8a4b4e;
  --color-diff-added-row-border: #55794a;
  --color-diff-moved-row-border: #96825c;

  /* ---- alerts ---- */
  --color-error-border: #8a4b4e;
  --color-error-bg: #402a2c;
  --color-error-bg-active: #49343c;
  --color-error-bg-hover: #49343c;
  --color-error-text: #e6caca;
  --color-success-border: #55794a;
  --color-success-bg: #2b3328;
  --color-success-text: #c5d1bd;
  --color-warning-border: #96825c;
  --color-warning-bg: #403a2c;
  --color-warning-text: #e8dcc0;
  --color-info-border: #2d4f67;  /* waveBlue2 */
  --color-info-bg: #223249;      /* waveBlue1 */
  --color-info-text: #d6dce8;

  /* ---- badges ---- */
  --color-red-badge: #c34043;
  --color-red-badge-bg: #c3404322;
  --color-red-badge-hover-bg: #c3404344;
  --color-green-badge: #76946a;
  --color-green-badge-bg: #76946a22;
  --color-green-badge-hover-bg: #76946a44;
  --color-yellow-badge: #dca561;
  --color-yellow-badge-bg: #dca56122;
  --color-yellow-badge-hover-bg: #dca56144;
  --color-orange-badge: #ffa066;
  --color-orange-badge-bg: #ffa06622;
  --color-orange-badge-hover-bg: #ffa06644;

  /* ---- misc surfaces ---- */
  --color-nav-bg: #16161d;
  --color-header-wrapper: #191920;
  --color-header-wrapper-transparent: #19192000;
  --color-expand-button: #2d4f67;
  --color-selection-bg: #2d4f67;   /* waveBlue2 */
  --color-selection-fg: #dcd7ba;
  --color-overlay-backdrop: #0e0e12c0;
  --checkerboard-color-1: #2a2a37;
  --checkerboard-color-2: #1f1f28;
  --color-indicator-offline: #727169;
  --color-indicator-offline-20: #7271691a;
  --color-indicator-idle: #76946a;
  --color-indicator-idle-20: #76946a1a;
  --color-indicator-active: #7e9cd8;
  --color-indicator-active-20: #7e9cd833;

  /* oklch "thin" graph colors -> Kanagawa hues */
  --bg-lightness: .23;
  --bg-chroma: .04;

  accent-color: var(--color-accent);
  color-scheme: dark;
}

/* ---- code syntax (Chroma) -> Kanagawa editor colors ---- */
.chroma .c, .chroma .c1, .chroma .ch, .chroma .cm { color: #727169; font-style: italic; } /* comments: fujiGray */
.chroma .cp { color: #957fb8; } /* preproc: oniViolet */
.chroma .k, .chroma .kc, .chroma .kd, .chroma .kn, .chroma .kr, .chroma .kt, .chroma .nl, .chroma .ow { color: #957fb8; } /* keywords: oniViolet */
.chroma .s, .chroma .s1, .chroma .s2, .chroma .sb, .chroma .sc, .chroma .sd, .chroma .sx { color: #98bb6c; } /* strings: springGreen */
.chroma .se, .chroma .ss { color: #dca561; } /* escapes: autumnYellow */
.chroma .m, .chroma .mb, .chroma .mf, .chroma .mh, .chroma .mi, .chroma .mo, .chroma .il { color: #ff9e3b; } /* numbers: roninYellow */
.chroma .nf, .chroma .ni { color: #7e9cd8; } /* functions: crystalBlue */
.chroma .nc { color: #ffa066; } /* class names: surimiOrange */
.chroma .na, .chroma .nb, .chroma .no { color: #7fb4ca; } /* builtins/attrs: springBlue */
.chroma .nn { color: #dcd7ba; }
.chroma .nt { color: #d27e99; } /* tags: waveRed */
.chroma .n, .chroma .nv, .chroma .vg, .chroma .vi, .chroma .vc { color: #dcd7ba; }
.chroma .nx { color: #c8c093; } /* oldWhite */
.chroma .o, .chroma .p { color: #a8a8bf; }
.chroma .gh { color: #ff9e3b; } /* heading */
.chroma .gi { color: #98bb6c; background-color: #2b3328; }
.chroma .gd { color: #e46a6d; background-color: #49343c; }
.chroma .gr { color: #ff5d62; } /* peachRed */
.chroma .gt { color: #ff5d62; }
.chroma .gu { color: #7e9cd8; }
.chroma .ge { color: #bcaae1; }
.chroma .w { color: #54546d; }

/* CodeMirror (web editor) */
.CodeMirror.cm-s-default .cm-keyword { color: #957fb8; }
.CodeMirror.cm-s-default .cm-def { color: #7e9cd8; }
.CodeMirror.cm-s-default .cm-string, .CodeMirror.cm-s-default .cm-string-2 { color: #98bb6c; }
.CodeMirror.cm-s-default .cm-number, .CodeMirror.cm-s-default .cm-atom { color: #ff9e3b; }
.CodeMirror.cm-s-default .cm-comment { color: #727169; font-style: italic; }
.CodeMirror.cm-s-default .cm-tag { color: #d27e99; }
.CodeMirror.cm-s-default .cm-builtin { color: #7fb4ca; }
.CodeMirror.cm-s-default .cm-variable-2 { color: #7e9cd8; }
.CodeMirror.cm-s-default .cm-variable-3 { color: #7fb4ca; }
.CodeMirror.cm-s-default .cm-meta { color: #c0a36e; }
.CodeMirror.cm-s-default .cm-header { color: #ffa066; }
.CodeMirror.cm-s-default .cm-quote { color: #76946a; }
