/*
 * Kanagawa theme for the Analysis-Utilities API reference.
 *
 * Dark only, by design — there is no light variant and no theme toggle, so the
 * palette is stated once and applies unconditionally.
 *
 * The 16 semantic colours are the Kanagawa base16 scheme by Tommaso Laurenzi
 * (github.com/rebelot/kanagawa.nvim), used verbatim. base16 has no slot for the
 * muted callout fills doxygen-awesome needs, so those four come from the same
 * upstream palette's winter* / sumiInk* ramps rather than being invented here.
 *
 * The triple selector is deliberate. doxygen-awesome.css ships its own
 * `@media (prefers-color-scheme: dark) { html:not(.light-mode) { ... } }` block,
 * which outranks a bare `:root`. Matching that specificity here — and loading
 * after it — is what makes this palette win for visitors whose OS is set to
 * dark, rather than silently falling back to the theme's default blue.
 */

:root,
html:not(.light-mode),
html.dark-mode {
    /* --- Kanagawa base16 --------------------------------------------- */
    --kanagawa-base00: #1F1F28;  /* sumiInk3   - page background      */
    --kanagawa-base01: #16161D;  /* sumiInk0   - raised panels        */
    --kanagawa-base02: #223249;  /* waveBlue1  - selection, headers   */
    --kanagawa-base03: #54546D;  /* sumiInk6   - separators           */
    --kanagawa-base04: #727169;  /* fujiGray   - secondary text       */
    --kanagawa-base05: #DCD7BA;  /* fujiWhite  - body text            */
    --kanagawa-base06: #C8C093;  /* oldWhite   - headings             */
    --kanagawa-base07: #717C7C;  /* katanaGray                        */
    --kanagawa-base08: #C34043;  /* autumnRed                         */
    --kanagawa-base09: #FFA066;  /* surimiOrange                      */
    --kanagawa-base0A: #C0A36E;  /* carpYellow                        */
    --kanagawa-base0B: #76946A;  /* autumnGreen                       */
    --kanagawa-base0C: #6A9589;  /* waveAqua1                         */
    --kanagawa-base0D: #7E9CD8;  /* crystalBlue - links               */
    --kanagawa-base0E: #957FB8;  /* oniViolet                         */
    --kanagawa-base0F: #D27E99;  /* sakuraPink                        */

    /* Muted fills for the callout boxes. base16 has no equivalent slot. */
    --kanagawa-winter-blue:   #252535;
    --kanagawa-winter-yellow: #49443C;
    --kanagawa-winter-red:    #43242B;
    --kanagawa-winter-green:  #2B3328;
    --kanagawa-sumi-ink4:     #2A2A37;

    /* --- accents ------------------------------------------------------ */
    --primary-color:       var(--kanagawa-base0D);
    --primary-dark-color:  var(--kanagawa-base06);
    --primary-light-color: var(--kanagawa-base0C);
    --on-primary-color:    var(--kanagawa-base00);
    --link-color:          var(--kanagawa-base0D);

    /* --- surfaces ----------------------------------------------------- */
    --page-background-color:           var(--kanagawa-base00);
    --page-foreground-color:           var(--kanagawa-base05);
    --page-secondary-foreground-color: var(--kanagawa-base04);
    --separator-color:                 var(--kanagawa-base03);
    --side-nav-background:             var(--kanagawa-base01);
    --side-nav-foreground:             var(--kanagawa-base05);
    --header-background:               var(--kanagawa-base01);
    --header-foreground:               var(--kanagawa-base05);
    --toc-background:                  var(--kanagawa-base01);
    --tablehead-background:            var(--kanagawa-base02);
    --tablehead-foreground:            var(--kanagawa-base05);
    --blockquote-background:           var(--kanagawa-base01);
    --blockquote-foreground:           var(--kanagawa-base06);
    --odd-color:                       rgba(84, 84, 109, .12);
    --searchbar-background:            var(--kanagawa-base01);
    --searchbar-foreground:            var(--kanagawa-base05);
    --menu-focus-background:           var(--kanagawa-base02);
    --menu-focus-foreground:           var(--kanagawa-base05);
    --menu-selected-background:        var(--kanagawa-base02);

    /* --- code --------------------------------------------------------- */
    --code-background:  var(--kanagawa-base01);
    --code-foreground:  var(--kanagawa-base05);
    --section-code-background: var(--kanagawa-base01);
    --section-code-border:     var(--kanagawa-base03);

    --fragment-background:        var(--kanagawa-base01);
    --fragment-foreground:        var(--kanagawa-base05);
    --fragment-keyword:           var(--kanagawa-base0E);
    --fragment-keywordtype:       var(--kanagawa-base0A);
    --fragment-keywordflow:       var(--kanagawa-base0F);
    --fragment-token:             var(--kanagawa-base0B);
    --fragment-comment:           var(--kanagawa-base04);
    --fragment-link:              var(--kanagawa-base0D);
    --fragment-preprocessor:      var(--kanagawa-base09);
    --fragment-linenumber-color:      var(--kanagawa-base03);
    --fragment-linenumber-background: var(--kanagawa-base01);
    --fragment-linenumber-border:     var(--kanagawa-base02);

    /* --- callouts: fill / accent / text ------------------------------- */
    --note-color:        var(--kanagawa-winter-blue);
    --note-color-dark:   var(--kanagawa-base0D);
    --note-color-darker: var(--kanagawa-base05);

    --warning-color:        var(--kanagawa-winter-yellow);
    --warning-color-dark:   var(--kanagawa-base09);
    --warning-color-darker: var(--kanagawa-base05);

    --bug-color:        var(--kanagawa-winter-red);
    --bug-color-dark:   var(--kanagawa-base08);
    --bug-color-darker: var(--kanagawa-base05);

    --invariant-color:        var(--kanagawa-winter-green);
    --invariant-color-dark:   var(--kanagawa-base0B);
    --invariant-color-darker: var(--kanagawa-base05);

    --deprecated-color:        var(--kanagawa-sumi-ink4);
    --deprecated-color-dark:   var(--kanagawa-base03);
    --deprecated-color-darker: var(--kanagawa-base06);

    /* --- type --------------------------------------------------------- */
    --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                   "Helvetica Neue", Arial, sans-serif;
    --font-family-monospace: "SFMono-Regular", Menlo, Consolas,
                             "Liberation Mono", monospace;
    --content-maxwidth: 1050px;
}

/* Doxygen paints the page background on html, not body; without this the
 * viewport shows white above and below the content on short pages. */
html,
body {
    background-color: var(--kanagawa-base00);
    /* HTML_COLORSTYLE is LIGHT (the theme requires it), so without this the
     * browser paints scrollbars and form controls light against a dark page. */
    color-scheme: dark;
}

/* Doxygen's @name group headers (tr.groupHeader) carry no themed background,
 * so they render as a light bar across a dark member table. Style them as a
 * section label instead. */
/* The member table carries a light background from doxygen's own stylesheet.
 * Opaque member cells normally hide it, so it only became visible once the
 * group header row was made transparent — as a sliver in the border-spacing
 * gap at each edge. */
table.memberdecls {
    background-color: transparent;
}

tr.groupHeader,
tr.groupHeader > td {
    background-color: var(--kanagawa-base00);
    border: none;
}
tr.groupHeader > td {
    padding-top: var(--spacing-medium);
}
.groupHeader {
    color: var(--kanagawa-base06);
    font-weight: 600;
    border-bottom: 1px solid var(--kanagawa-base03);
    padding-bottom: 4px;
    margin-top: var(--spacing-small);
}
