/*
 * Andromeda Pastel — a standalone dark theme for Gitea
 * =====================================================
 * Target: Gitea 1.26.2 (full --color-* variable system)
 *
 * A soft, dark "deep-space" theme: a desaturated violet background with
 * champagne gold as the primary accent, plus sage, dusty slate-blue,
 * cool mauve and greyed lavender as supporting tones — an elegant,
 * cooler take on the original Andromeda Pastel mock-up.
 *
 * ---------------------------------------------------------------------
 * INSTALLATION
 * ---------------------------------------------------------------------
 * 1. Find your CustomPath:   gitea help   (look for "CustomPath")
 * 2. Place this file at:     <CustomPath>/public/assets/css/theme-andromeda-pastel.css
 *    (As of Gitea 1.21+, /assets points to custom/public/assets/*)
 * 3. In app.ini under [ui] add the theme to the list:
 *       THEMES = gitea-auto,gitea-light,gitea-dark,andromeda-pastel
 *    (optional) make it the default:
 *       DEFAULT_THEME = andromeda-pastel
 * 4. Restart Gitea, then pick "Andromeda Pastel" under
 *    Settings -> Appearance.
 *
 * The filename (theme-andromeda-pastel.css) must match the name listed in
 * THEMES (andromeda-pastel). The selector is :root, not the theme name.
 */

/* Syntax highlighting is defined INLINE at the bottom of this file (chroma +
   CodeMirror rules), so this theme is fully self-contained: a single .css
   file, no extra chroma/dark.css or codemirror/dark.css to copy alongside it.
   That also avoids the broken-@import side effect that was tinting the
   language bar. */

:root {
  --is-dark-theme: true;
  --theme-display-name: "Andromeda Pastel";

  /* ==================================================================
     PRIMARY  —  warm pastel apricot/peach
     dark-N  = lighter (toward white) ; light-N = darker (toward black)
     (Gitea's naming is inverted for dark themes, mirroring arc-green.)
     ================================================================== */
  --color-primary:            #d9c18a;
  --color-primary-contrast:   #241f1a;
  --color-primary-dark-1:     #dec896;
  --color-primary-dark-2:     #e3cfa3;
  --color-primary-dark-3:     #e8d6b1;
  --color-primary-dark-4:     #eddebf;
  --color-primary-dark-5:     #f2e8d4;
  --color-primary-dark-6:     #f8f2e8;
  --color-primary-dark-7:     #fdfbf6;
  --color-primary-light-1:    #cbb074;
  --color-primary-light-2:    #bd9e5f;
  --color-primary-light-3:    #a4884f;
  --color-primary-light-4:    #806b3f;
  --color-primary-light-5:    #514429;
  --color-primary-light-6:    #292215;
  --color-primary-light-7:    #100d08;
  --color-primary-alpha-10:   #d9c18a19;
  --color-primary-alpha-20:   #d9c18a33;
  --color-primary-alpha-30:   #d9c18a4b;
  --color-primary-alpha-40:   #d9c18a66;
  --color-primary-alpha-50:   #d9c18a80;
  --color-primary-alpha-60:   #d9c18a99;
  --color-primary-alpha-70:   #d9c18ab3;
  --color-primary-alpha-80:   #d9c18acc;
  --color-primary-alpha-90:   #d9c18ae1;
  --color-primary-hover:      var(--color-primary-dark-1);
  --color-primary-active:     var(--color-primary-dark-2);

  /* ==================================================================
     SECONDARY  —  muted lavender-grey (surfaces, borders, buttons)
     dark-N climbs toward light lavender ; light-N descends to violet-black
     ================================================================== */
  --color-secondary:          #393050;
  --color-secondary-dark-1:   #443a5e;
  --color-secondary-dark-2:   #50456d;
  --color-secondary-dark-3:   #67598a;
  --color-secondary-dark-4:   #7a6c9d;
  --color-secondary-dark-5:   #8c7faf;
  --color-secondary-dark-6:   #9d92bd;
  --color-secondary-dark-7:   #aea4c9;
  --color-secondary-dark-8:   #bdb5d3;
  --color-secondary-dark-9:   #ccc6dd;
  --color-secondary-dark-10:  #d9d4e6;
  --color-secondary-dark-11:  #e5e2ee;
  --color-secondary-dark-12:  #f0eef5;
  --color-secondary-dark-13:  #fbfbfc;
  --color-secondary-light-1:  #312942;
  --color-secondary-light-2:  #282135;
  --color-secondary-light-3:  #1f1929;
  --color-secondary-light-4:  #16111d;
  --color-secondary-alpha-10: #39305019;
  --color-secondary-alpha-20: #39305033;
  --color-secondary-alpha-30: #3930504b;
  --color-secondary-alpha-40: #39305066;
  --color-secondary-alpha-50: #39305080;
  --color-secondary-alpha-60: #39305099;
  --color-secondary-alpha-70: #393050b3;
  --color-secondary-alpha-80: #393050cc;
  --color-secondary-alpha-90: #393050e1;
  --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  —  used for Actions logs and console files
     ================================================================== */
  --color-console-fg:         #e6e1ef;
  --color-console-fg-subtle:  #9d92bd;
  --color-console-bg:         #16131f;
  --color-console-border:     #2d2740;
  --color-console-hover-bg:   #ffffff14;
  --color-console-active-bg:  #393050;
  --color-console-menu-bg:    #1c1827;
  --color-console-menu-border:#393050;

  /* ==================================================================
     NAMED COLORS  —  pastel-tuned
     ================================================================== */
  --color-red:    #dba8b8;   /* dusty champagne rose (bug label/danger) */
  --color-orange: #d9c18a;   /* matte gold/bronze                       */
  --color-yellow: #e0d3a0;   /* pale champagne                          */
  --color-olive:  #c4c89a;   /* soft moss                               */
  --color-green:  #a9c4a8;   /* sage / eucalyptus (success)             */
  --color-teal:   #9cc4bd;   /* muted grey-green                        */
  --color-blue:   #9cb4cc;   /* dusty slate blue (info)                 */
  --color-violet: #beb0d0;   /* greyed violet                           */
  --color-purple: #c0b4d0;   /* greyed lavender                         */
  --color-pink:   #d4a6c0;   /* cool mauve                              */
  --color-brown:  #bca890;   /* warm taupe                              */
  --color-black:  #16131f;

  /* light variants (+lightness ~10%) */
  --color-red-light:    #e3b8c5;
  --color-orange-light: #e1cc9e;
  --color-yellow-light: #e7dcb2;
  --color-olive-light:  #d0d3ad;
  --color-green-light:  #bcd1bb;
  --color-teal-light:   #b1d1cb;
  --color-blue-light:   #b1c5d9;
  --color-violet-light: #ccc1da;
  --color-purple-light: #cec4da;
  --color-pink-light:   #ddb9cf;
  --color-brown-light:  #cbbaa6;
  --color-black-light:  #221d30;

  /* dark-1 variants (-lightness ~10%) */
  --color-red-dark-1:    #d196a9;
  --color-orange-dark-1: #cdb279;
  --color-yellow-dark-1: #d6c78c;
  --color-olive-dark-1:  #b6ba88;
  --color-green-dark-1:  #97b896;
  --color-teal-dark-1:   #8ab8b0;
  --color-blue-dark-1:   #8aa6c2;
  --color-violet-dark-1: #b0a0c6;
  --color-purple-dark-1: #b2a4c6;
  --color-pink-dark-1:   #c994b1;
  --color-brown-dark-1:  #ad9980;
  --color-black-dark-1:  #110e18;

  /* dark-2 variants (-lightness ~20%) */
  --color-red-dark-2:    #c8849a;
  --color-orange-dark-2: #bfa368;
  --color-yellow-dark-2: #ccbb78;
  --color-olive-dark-2:  #a8ac77;
  --color-green-dark-2:  #85ab84;
  --color-teal-dark-2:   #78aba3;
  --color-blue-dark-2:   #7898b5;
  --color-violet-dark-2: #a290ba;
  --color-purple-dark-2: #a494ba;
  --color-pink-dark-2:   #bd82a2;
  --color-brown-dark-2:  #9e8a70;
  --color-black-dark-2:  #0c0a11;

  /* ==================================================================
     ANSI COLORS  —  Actions console / console files
     ================================================================== */
  --color-ansi-black:          var(--color-black);
  --color-ansi-red:            var(--color-red);
  --color-ansi-green:          var(--color-green);
  --color-ansi-yellow:         var(--color-yellow);
  --color-ansi-blue:           var(--color-blue);
  --color-ansi-magenta:        var(--color-pink);
  --color-ansi-cyan:           var(--color-teal);
  --color-ansi-white:          var(--color-console-fg-subtle);
  --color-ansi-bright-black:   var(--color-black-light);
  --color-ansi-bright-red:     var(--color-red-light);
  --color-ansi-bright-green:   var(--color-green-light);
  --color-ansi-bright-yellow:  var(--color-yellow-light);
  --color-ansi-bright-blue:    var(--color-blue-light);
  --color-ansi-bright-magenta: var(--color-pink-light);
  --color-ansi-bright-cyan:    var(--color-teal-light);
  --color-ansi-bright-white:   var(--color-console-fg);

  /* ==================================================================
     OTHER COLORS
     ================================================================== */
  --color-grey:       #6b6383;
  --color-grey-light: #a199b4;
  --color-gold:       #d9be7e;
  --color-white:      #ffffff;

  /* diff colours — subtle sage / dusty-rose to match the palette */
  --color-diff-removed-word-bg:    #5e3a45;
  --color-diff-added-word-bg:      #3a5447;
  --color-diff-removed-row-bg:     #2a1f24;
  --color-diff-moved-row-bg:       #5e5840;
  --color-diff-added-row-bg:       #1f2a24;
  --color-diff-removed-row-border: #463a40;
  --color-diff-moved-row-border:   #a89a6a;
  --color-diff-added-row-border:   #3a463f;
  --color-diff-inactive:           #1c1827;

  /* status surfaces */
  --color-error-border:   #8a5566;
  --color-error-bg:       #322028;
  --color-error-bg-active:#442b36;
  --color-error-bg-hover: #3b2630;
  --color-error-text:     #e8c4d0;
  --color-success-border: #5c8068;
  --color-success-bg:     #233029;
  --color-success-text:   #a9c4a8;
  --color-warning-border: #9a8a52;
  --color-warning-bg:     #34301f;
  --color-warning-text:   #e0d3a0;
  --color-info-border:    #5a708a;
  --color-info-bg:        #232c36;
  --color-info-text:      #9cb4cc;

  /* badges */
  --color-red-badge:           #dba8b8;
  --color-red-badge-bg:        #dba8b81a;
  --color-red-badge-hover-bg:  #dba8b84d;
  --color-green-badge:         #a9c4a8;
  --color-green-badge-bg:      #a9c4a81a;
  --color-green-badge-hover-bg:#a9c4a84d;
  --color-yellow-badge:        #e0d3a0;
  --color-yellow-badge-bg:     #e0d3a01a;
  --color-yellow-badge-hover-bg:#e0d3a04d;
  --color-orange-badge:        #d9c18a;
  --color-orange-badge-bg:     #d9c18a1a;
  --color-orange-badge-hover-bg:#d9c18a4d;

  --color-git: #d9c18a;

  /* ==================================================================
     TARGET-BASED COLORS  —  page chrome, boxes, text, inputs, nav
     ================================================================== */
  --color-body:                 #16131f;
  --color-box-header:           #221d30;
  --color-box-body:             #1c1827;
  --color-box-body-highlight:   #221d30;
  --color-text-dark:            #f3eff9;
  --color-text:                 #e6e1ef;
  --color-text-light:           #cfc8dd;
  --color-text-light-1:         #b8b0c9;
  --color-text-light-2:         #a199b4;
  --color-text-light-3:         #8a829e;
  --color-footer:               #110e18;
  --color-timeline:             #393050;
  --color-input-text:           #e6e1ef;
  --color-input-background:     #16131f;
  --color-input-toggle-background: #393050;
  --color-input-border:         var(--color-secondary);
  --color-input-border-hover:   var(--color-secondary-dark-1);
  --color-header-wrapper:       #110e18;
  --color-light:                #00000028;
  --color-light-mimic-enabled:  rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
  --color-light-border:         #ffffff22;
  --color-hover:                #ffffff12;
  --color-active:               #ffffff1f;
  --color-menu:                 #1c1827;
  --color-card:                 #1c1827;
  --color-markup-table-row:     #ffffff06;
  --color-markup-code-block:    #ffffff12;
  --color-button:               #1c1827;
  --color-code-bg:              #1c1827;
  --color-code-sidebar-bg:      #110e18;
  --color-shadow:               #00000066;
  --color-secondary-bg:         #1f1929;
  --color-text-focus:           #ffffff;
  --color-expand-button:        #2d2740;
  --color-placeholder-text:     #736b87;
  --color-editor-line-highlight: var(--color-primary-light-5);
  --color-project-board-bg:     var(--color-secondary-light-2);
  --color-caret:                var(--color-text);
  --color-reaction-bg:          #ffffff12;
  --color-reaction-hover-bg:    var(--color-primary-light-4);
  --color-reaction-active-bg:   var(--color-primary-light-5);
  --color-tooltip-text:         #16131f;
  --color-tooltip-bg:           #e6e1eff0;
  --color-nav-bg:               #110e18;
  --color-nav-hover-bg:         #221d30;
  --color-label-text:           #e6e1ef;
  --color-label-bg:             #67598a4b;
  --color-label-hover-bg:       #67598aa0;
  --color-label-active-bg:      #67598aff;
  --color-accent:               var(--color-primary-dark-1);
  --color-small-accent:         var(--color-primary-light-5);
  --color-active-line:          #4a3f1f;
  --color-overlay-backdrop:     #08060cc0;

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

/* invert emojis that are hard to read on a dark background
   (same set Gitea uses in its built-in dark themes) */
.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);
}

/* ======================================================================
   APRICOT EMPHASIS
   Push the primary accent into more places than the variables alone reach.
   These are intentionally scoped so body text stays readable.
   ====================================================================== */

/* Links and clickable file/branch/breadcrumb names in apricot */
andromeda-pastel a,
.repository .file-info a,
.repository #repo-files-table .name a,
.breadcrumb a,
.repo-path a {
  color: var(--color-primary);
}
andromeda-pastel a:hover,
.repository .file-info a:hover,
.repository #repo-files-table .name a:hover,
.breadcrumb a:hover {
  color: var(--color-primary-dark-2);
}

/* Repository title (owner / repo) — make the repo name pop in apricot */
.repository .repo-header .flex-item-title a,
.repository .repo-title a {
  color: var(--color-primary);
}

/* Active navigation tab & menu items use the accent more strongly */
.ui.menu .active.item,
.ui.tabular.menu .active.item,
.ui.secondary.menu .active.item {
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

/* Octicon / svg icons inside the active tab inherit the accent */
.ui.tabular.menu .active.item svg,
.ui.menu .active.item svg {
  color: var(--color-primary);
}

/* Counters / labels on the repo header buttons (stars, forks, watch) */
.repository .repo-buttons .ui.labeled.button > .label {
  color: var(--color-primary);
  border-color: var(--color-border);
}

/* Secondary (non-primary) buttons get an apricot-tinted hover border */
.ui.button:not(.primary):hover {
  border-color: var(--color-primary-alpha-50);
  color: var(--color-primary);
}

/* Selected line number / focused code line accent */
.lines-num .active,
.code-view .active-line .lines-num {
  color: var(--color-primary);
}

/* Section headers in the right sidebar (ÜBER, SPRACHEN, RELEASES …) */
.repository .repo-overview .ui.header,
.repository .home .sidebar h4 {
  color: var(--color-text-light);
}

/* Topic / tag chips on the repo description in apricot tint */
.repository .topic.ui.label,
.repo-topic .ui.label {
  background: var(--color-primary-alpha-10);
  color: var(--color-primary);
  border: 0.5px solid var(--color-primary-alpha-30);
}

/* ======================================================================
   INLINE SYNTAX HIGHLIGHTING  (replaces the former @import lines)
   Chroma token classes — pastel palette tuned to this theme.
   This keeps the theme to a single self-contained .css file.
   ====================================================================== */
.code-view,
.file-view.code-view,
.markup .highlight,
.markup pre,
.code-inner {
  color: var(--color-text);
}

/* Chroma tokens */
.chroma .k,  .chroma .kc, .chroma .kd, .chroma .kn,
.chroma .kp, .chroma .kr, .chroma .kt { color: #c0b4d0; }          /* keywords — lavender   */
.chroma .o,  .chroma .ow                { color: #d4a6c0; }        /* operators — pink      */
.chroma .nf, .chroma .fm                { color: #9cb4cc; }        /* functions — periwinkle*/
.chroma .nc, .chroma .nn, .chroma .nt   { color: #d9c18a; }        /* classes/tags — apricot*/
.chroma .nb, .chroma .bp                { color: #9cc4bd; }        /* builtins — teal       */
.chroma .nv, .chroma .vc, .chroma .vg,
.chroma .vi                              { color: #e6e1ef; }        /* variables — text      */
.chroma .s,  .chroma .s1, .chroma .s2,
.chroma .sb, .chroma .sc, .chroma .sd,
.chroma .se, .chroma .sh, .chroma .si,
.chroma .sx, .chroma .sr, .chroma .ss,
.chroma .dl                              { color: #a9c4a8; }        /* strings — mint        */
.chroma .m,  .chroma .mb, .chroma .mf,
.chroma .mh, .chroma .mi, .chroma .mo,
.chroma .il                              { color: #e0d3a0; }        /* numbers — sand        */
.chroma .c,  .chroma .ch, .chroma .cm,
.chroma .c1, .chroma .cs, .chroma .cp,
.chroma .cpf                             { color: #8a829e; font-style: italic; } /* comments */
.chroma .na                              { color: #d9c18a; }        /* attributes — apricot  */
.chroma .nd                              { color: #e0d3a0; }        /* decorators — sand     */
.chroma .gd                              { color: #dba8b8; }        /* diff deleted          */
.chroma .gi                              { color: #a9c4a8; }        /* diff inserted         */
.chroma .gh, .chroma .gu                 { color: #9cb4cc; font-weight: 500; } /* diff headers */
.chroma .err                             { color: #dba8b8; }        /* error                 */
.chroma .ln, .chroma .lnt                { color: #736b87; }        /* line numbers          */

/* CodeMirror (issue/PR comment editor, raw editor) */
.cm-editor .cm-content,
.CodeMirror { color: var(--color-text); }
.cm-keyword,   .CodeMirror .cm-keyword   { color: #c0b4d0; }
.cm-atom,      .CodeMirror .cm-atom      { color: #e0d3a0; }
.cm-number,    .CodeMirror .cm-number    { color: #e0d3a0; }
.cm-def,       .CodeMirror .cm-def       { color: #9cb4cc; }
.cm-variable,  .CodeMirror .cm-variable  { color: var(--color-text); }
.cm-variable-2,.CodeMirror .cm-variable-2{ color: #9cb4cc; }
.cm-string,    .CodeMirror .cm-string    { color: #a9c4a8; }
.cm-string-2,  .CodeMirror .cm-string-2  { color: #9cc4bd; }
.cm-comment,   .CodeMirror .cm-comment   { color: #8a829e; font-style: italic; }
.cm-operator,  .CodeMirror .cm-operator  { color: #d4a6c0; }
.cm-tag,       .CodeMirror .cm-tag       { color: #d9c18a; }
.cm-attribute, .CodeMirror .cm-attribute { color: #e0d3a0; }
.cm-property,  .CodeMirror .cm-property  { color: #9cb4cc; }
.cm-builtin,   .CodeMirror .cm-builtin   { color: #9cc4bd; }
