/*
 * Ineffa Theme for Gitea
 * Inspired by Ineffa from Genshin Impact
 *
 * Palette extracted from Ineffa's Song of the Welkin Moon card art:
 *   - Backgrounds  : deep navy-purple (jacket shadows)
 *   - Primary      : soft lavender-purple (card background field)
 *   - Gold         : warm brass (#d4a030, jacket buttons & trim)
 *   - Ice blue     : Ineffa's silver-blue hair (#8ec4dc)
 *   - Red          : crimson cape (#c04848)
 *
 * Installation:
 *   1. Copy this file to $GITEA_CUSTOM/public/assets/css/
 *   2. In app.ini [ui] section, add 'ineffa' to THEMES (or leave blank for all)
 *   3. Restart Gitea
 *   4. Select "ineffa" in User Settings → Appearance
 */

@import "../chroma/dark.css";
@import "../codemirror/dark.css";

gitea-theme-meta-info {
  --theme-display-name: "Ineffa";
  --theme-color-scheme: "dark";
}

:root {
  --is-dark-theme: true;

  /* ── Primary: lavender-purple (Ineffa's card background field) ─────────── */
  --color-primary:          #9b72d8;
  --color-primary-contrast: #ffffff;
  --color-primary-dark-1:   #a880e0;
  --color-primary-dark-2:   #b590e8;
  --color-primary-dark-3:   #c2a0f0;
  --color-primary-dark-4:   #cfb0f4;
  --color-primary-dark-5:   #dcc8f8;
  --color-primary-dark-6:   #eadcfc;
  --color-primary-dark-7:   #f5f0fe;
  --color-primary-light-1:  #8560c8;
  --color-primary-light-2:  #7050b8;
  --color-primary-light-3:  #5c40a0;
  --color-primary-light-4:  #3c2870;
  --color-primary-light-5:  #281858;
  --color-primary-light-6:  #180e38;
  --color-primary-light-7:  #0c0720;
  --color-primary-alpha-10: #9b72d81a;
  --color-primary-alpha-20: #9b72d833;
  --color-primary-alpha-30: #9b72d84d;
  --color-primary-alpha-40: #9b72d866;
  --color-primary-alpha-50: #9b72d880;
  --color-primary-alpha-60: #9b72d899;
  --color-primary-alpha-70: #9b72d8b3;
  --color-primary-alpha-80: #9b72d8cc;
  --color-primary-alpha-90: #9b72d8e1;
  --color-primary-hover:    var(--color-primary-light-1);
  --color-primary-active:   var(--color-primary-light-2);

  /* ── Secondary: navy-purple neutrals (jacket dark tones) ──────────────── */
  --color-secondary:          #2d2850;
  --color-secondary-dark-1:   #363060;
  --color-secondary-dark-2:   #3f3870;
  --color-secondary-dark-3:   #4e4880;
  --color-secondary-dark-4:   #5e5892;
  --color-secondary-dark-5:   #6e68a0;
  --color-secondary-dark-6:   #7e78ae;
  --color-secondary-dark-7:   #8e88bc;
  --color-secondary-dark-8:   #9e98c8;
  --color-secondary-dark-9:   #a8a2d0;
  --color-secondary-dark-10:  #b8b0d8;
  --color-secondary-dark-11:  #c8c0e0;
  --color-secondary-dark-12:  #d4cce8;
  --color-secondary-dark-13:  #d8d0ec;
  --color-secondary-light-1:  #252040;
  --color-secondary-light-2:  #1e1935;
  --color-secondary-light-3:  #161228;
  --color-secondary-light-4:  #100d1e;
  --color-secondary-alpha-10: #2d28501a;
  --color-secondary-alpha-20: #2d285033;
  --color-secondary-alpha-30: #2d28504d;
  --color-secondary-alpha-40: #2d285066;
  --color-secondary-alpha-50: #2d285080;
  --color-secondary-alpha-60: #2d285099;
  --color-secondary-alpha-70: #2d2850b3;
  --color-secondary-alpha-80: #2d2850cc;
  --color-secondary-alpha-90: #2d2850e1;
  --color-secondary-button:   var(--color-secondary-dark-4);
  --color-secondary-hover:    var(--color-secondary-dark-3);
  --color-secondary-active:   var(--color-secondary-dark-2);

  /* ── Console colors ────────────────────────────────────────────────────── */
  --color-console-fg:          #e8e0f2;
  --color-console-fg-subtle:   #a89ec0;
  --color-console-bg:          #100d1e;
  --color-console-border:      #2d2850;
  --color-console-hover-bg:    #1e1935;
  --color-console-active-bg:   #252040;
  --color-console-menu-bg:     #1a1730;
  --color-console-menu-border: #363060;

  /* ── Named colors ──────────────────────────────────────────────────────── */
  --color-red:    #c04848;
  --color-orange: #c87030;
  --color-yellow: #c8a020;
  --color-olive:  #7a9020;
  --color-green:  #4a9e6a;
  --color-teal:   #208878;
  --color-blue:   #4898c8;
  --color-violet: #9b72d8;
  --color-purple: #b060c8;
  --color-pink:   #c84090;
  --color-brown:  #a47252;
  --color-black:  #1a1730;

  /* Light variants */
  --color-red-light:    #cc5a5a;
  --color-orange-light: #d88040;
  --color-yellow-light: #d8b030;
  --color-olive-light:  #8ca020;
  --color-green-light:  #5aae78;
  --color-teal-light:   #289898;
  --color-blue-light:   #58a8d8;
  --color-violet-light: #a880e0;
  --color-purple-light: #c070d8;
  --color-pink-light:   #d850a0;
  --color-brown-light:  #b08060;
  --color-black-light:  #2d2850;

  /* Dark-1 variants */
  --color-red-dark-1:    #b03838;
  --color-orange-dark-1: #b86020;
  --color-yellow-dark-1: #b09010;
  --color-olive-dark-1:  #6a8010;
  --color-green-dark-1:  #3a8e58;
  --color-teal-dark-1:   #187868;
  --color-blue-dark-1:   #3888b8;
  --color-violet-dark-1: #8560c8;
  --color-purple-dark-1: #a050b8;
  --color-pink-dark-1:   #b83080;
  --color-brown-dark-1:  #906040;
  --color-black-dark-1:  #141120;

  /* Dark-2 variants */
  --color-red-dark-2:    #a02828;
  --color-orange-dark-2: #a85010;
  --color-yellow-dark-2: #987800;
  --color-olive-dark-2:  #5a6e00;
  --color-green-dark-2:  #2a7e48;
  --color-teal-dark-2:   #106858;
  --color-blue-dark-2:   #2878a8;
  --color-violet-dark-2: #7050b8;
  --color-purple-dark-2: #9040a8;
  --color-pink-dark-2:   #a82070;
  --color-brown-dark-2:  #805030;
  --color-black-dark-2:  #0e0b18;

  /* ── ANSI (actions console & log files) ────────────────────────────────── */
  --color-ansi-black:         #1a1730;
  --color-ansi-red:           #c04848;
  --color-ansi-green:         #4a9e6a;
  --color-ansi-yellow:        #c8a020;
  --color-ansi-blue:          #4898c8;
  --color-ansi-magenta:       #9b72d8;
  --color-ansi-cyan:          #208878;
  --color-ansi-white:         var(--color-console-fg-subtle);
  --color-ansi-bright-black:  #2d2850;
  --color-ansi-bright-red:    #cc5a5a;
  --color-ansi-bright-green:  #5aae78;
  --color-ansi-bright-yellow: #d8b030;
  --color-ansi-bright-blue:   #58a8d8;
  --color-ansi-bright-magenta: #a880e0;
  --color-ansi-bright-cyan:   #289898;
  --color-ansi-bright-white:  var(--color-console-fg);

  /* ── Miscellaneous named ───────────────────────────────────────────────── */
  --color-grey:  #2d2850;
  --color-grey-light: #7870a0;
  --color-gold:  #d4a030;   /* Ineffa's brass jacket buttons & trim */
  --color-white: #ffffff;

  /* ── Diff colors ───────────────────────────────────────────────────────── */
  --color-diff-added-fg:          #4a9e6a;
  --color-diff-added-linenum-bg:  #1a3a28;
  --color-diff-added-row-bg:      #142a1e;
  --color-diff-added-row-border:  #2a4a34;
  --color-diff-added-word-bg:     #2a5838;
  --color-diff-moved-row-bg:      #3a3820;
  --color-diff-moved-row-border:  #6a6830;
  --color-diff-removed-fg:        #c04848;
  --color-diff-removed-linenum-bg: #3a1818;
  --color-diff-removed-row-bg:    #281414;
  --color-diff-removed-row-border: #4a2828;
  --color-diff-removed-word-bg:   #582828;
  --color-diff-inactive:          #1a1730;

  /* ── Status: error ─────────────────────────────────────────────────────── */
  --color-error-border:    #8a3030;
  --color-error-bg:        #3a1818;
  --color-error-bg-active: #4a2020;
  --color-error-bg-hover:  #421c1c;
  --color-error-text:      #f0b8b8;

  /* ── Status: success ───────────────────────────────────────────────────── */
  --color-success-border: #2a6a40;
  --color-success-bg:     #182a20;
  --color-success-text:   #4acc70;

  /* ── Status: warning (gold tones — Ineffa's trim) ──────────────────────── */
  --color-warning-border: #8a7000;
  --color-warning-bg:     #302a10;
  --color-warning-text:   #d4a030;

  /* ── Status: info (ice blue — Ineffa's hair) ───────────────────────────── */
  --color-info-border: #286888;
  --color-info-bg:     #162030;
  --color-info-text:   #8ec4dc;

  /* ── Badge colors ──────────────────────────────────────────────────────── */
  --color-red-badge:            #c04848;
  --color-red-badge-bg:         #c048481a;
  --color-red-badge-hover-bg:   #c048484d;
  --color-green-badge:          #4a9e6a;
  --color-green-badge-bg:       #4a9e6a1a;
  --color-green-badge-hover-bg: #4a9e6a4d;
  --color-yellow-badge:         #d4a030;
  --color-yellow-badge-bg:      #d4a0301a;
  --color-yellow-badge-hover-bg: #d4a0304d;
  --color-orange-badge:          #c87030;
  --color-orange-badge-bg:       #c870301a;
  --color-orange-badge-hover-bg: #c870304d;
  --color-git:  #f05133;
  --color-logo: #609926;

  /* ── Layout & surface colors ───────────────────────────────────────────── */
  --color-body:               #0f0d16;
  --color-box-header:         #16131f;
  --color-box-body:           #120f1c;
  --color-box-body-highlight: #1c1930;
  --color-text-dark:          #e8e0f2;
  --color-text:               #c8c0dc;
  --color-text-light:         #a89ec0;
  --color-text-light-1:       #9088ac;
  --color-text-light-2:       #7870a0;
  --color-text-light-3:       #604c78;
  --color-footer:             var(--color-nav-bg);
  --color-timeline:           #2d2850;
  --color-input-text:              var(--color-text-dark);
  --color-input-background:        #1a1730;
  --color-input-toggle-background: #2d2850;
  --color-input-border:            var(--color-secondary);
  --color-input-border-hover:      var(--color-secondary-dark-1);
  --color-light:              #1b005228;
  --color-light-mimic-enabled: rgba(0, 0, 24, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
  --color-light-border:       #e0d0ff28;
  --color-hover:              #9b72d819;
  --color-hover-opaque:       #1e1a30;
  --color-active:             #9b72d824;
  --color-menu:               #1a1730;
  --color-card:               #1a1730;
  --color-markup-table-row:   #e0d0ff0f;
  --color-markup-code-block:  #e0d0ff12;
  --color-markup-code-inline: #e0d0ff28;
  --color-button:             #1a1730;
  --color-code-bg:            #120f1c;
  --color-shadow:             #00001258;
  --color-shadow-opaque:      #000012;
  --color-secondary-bg:       #221e38;
  --color-expand-button:      #2d2850;
  --color-placeholder-text:   var(--color-text-light-3);
  --color-editor-line-highlight: var(--color-primary-light-5);
  --color-project-column-bg:  var(--color-secondary-light-2);
  --color-caret:              var(--color-text);
  --color-reaction-bg:        #e0d0ff12;
  --color-reaction-hover-bg:  var(--color-primary-light-4);
  --color-reaction-active-bg: var(--color-primary-light-5);
  --color-tooltip-text:       #f2eaff;
  --color-tooltip-bg:         #0a0614f0;
  --color-nav-bg:             #0d0b14;
  --color-nav-hover-bg:       var(--color-secondary-light-1);
  --color-nav-text:           var(--color-text);
  --color-secondary-nav-bg:   #12101c;
  --color-label-text:         var(--color-text);
  --color-label-bg:           #7060904b;
  --color-label-hover-bg:     #706090a0;
  --color-label-active-bg:    #706090ff;
  --color-accent:             var(--color-primary-light-1);
  --color-small-accent:       var(--color-primary-light-5);
  --color-highlight-fg:       #9b72d8;
  --color-highlight-bg:       #281858;
  --color-overlay-backdrop:   #08000cc0;
  --color-danger:             var(--color-red);
  --color-transparency-grid-light: #2a2050;
  --color-transparency-grid-dark:  #1a1030;
  accent-color: var(--color-accent);
  color-scheme: dark;
}

/* Invert emojis that are hard to read on dark backgrounds */
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label="copyright"],
.emoji[aria-label="registered"],
.emoji[aria-label="trade mark"],
.emoji[aria-label="multiply"],
.emoji[aria-label="plus"],
.emoji[aria-label="minus"],
.emoji[aria-label="divide"],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
  filter: invert(100%) hue-rotate(180deg);
}
