/*
 * Hummingbird — Doxygen Awesome customization
 * ----------------------------------------------
 *
 * University of Illinois Urbana-Champaign inspired theme.
 *
 * Primary brand colors:
 *   Illini Blue   #13294B
 *   Illini Orange #FF5F05
 *
 * Supporting web colors:
 *   Industrial    #1D58A7
 *   Arches       #009FD4
 *   Altgeld      #C84113
 *   Storm        #707372
 *
 * This file is intentionally built around Doxygen Awesome's
 * CSS variables rather than overriding its internal layout.
 *
 * Loaded AFTER doxygen-awesome.css.
 */


/* ==========================================================================
   LIGHT MODE
   ========================================================================== */

html {
  /*
   * ------------------------------------------------------------------------
   * BRAND COLORS
   * ------------------------------------------------------------------------
   */

  /* Main theme color:
   * links, navigation, arrows, labels, etc.
   */
  --primary-color: #13294B;

  /* Darker Illini Blue for stronger UI elements */
  --primary-dark-color: #000033;

  /* Industrial blue gives links and interactive elements
   * a little more visual separation from the main blue.
   */
  --primary-light-color: #1D58A7;


  /*
   * ------------------------------------------------------------------------
   * PAGE
   * ------------------------------------------------------------------------
   */

  --page-background-color: #FFFFFF;

  /* Official web guidance uses #252525 for default body text. */
  --page-foreground-color: #252525;

  --page-secondary-foreground-color: #707372;


  /*
   * ------------------------------------------------------------------------
   * SEPARATORS
   * ------------------------------------------------------------------------
   */

  --separator-color: #C6C7C6;


  /*
   * ------------------------------------------------------------------------
   * CONTENT WIDTH
   * ------------------------------------------------------------------------
   *
   * Hummingbird has long function signatures, template parameters,
   * mathematical notation, and source listings. Give the documentation
   * a little more horizontal room than the Doxygen Awesome default.
   */

  --content-maxwidth: 1150px;


  /*
   * ------------------------------------------------------------------------
   * SPACING
   * ------------------------------------------------------------------------
   */

  --spacing-small: 5px;
  --spacing-medium: 10px;
  --spacing-large: 16px;
  --spacing-xlarge: 22px;


  /*
   * ------------------------------------------------------------------------
   * CORNERS
   * ------------------------------------------------------------------------
   *
   * Keep these fairly restrained. This is scientific software
   * documentation, not a consumer application.
   */

  --border-radius-small: 4px;
  --border-radius-medium: 6px;
  --border-radius-large: 8px;


  /*
   * ------------------------------------------------------------------------
   * CODE
   * ------------------------------------------------------------------------
   */

  --fragment-background: #F4F4F4;
  --fragment-foreground: #252525;

  --code-background: #F4F4F4;
  --code-foreground: #252525;


  /*
   * ------------------------------------------------------------------------
   * TABLES
   * ------------------------------------------------------------------------
   */

  --tablehead-background: #13294B;
  --tablehead-foreground: #FFFFFF;


  /*
   * ------------------------------------------------------------------------
   * SIDEBAR
   * ------------------------------------------------------------------------
   */

  --side-nav-background: #F4F4F4;
  --side-nav-foreground: #252525;

  /*
   * Keep the navigation arrows visible enough to make a large
   * API hierarchy easy to scan.
   */
  --side-nav-arrow-opacity: 0.35;
  --side-nav-arrow-hover-opacity: 1;


  /*
   * ------------------------------------------------------------------------
   * SEARCH
   * ------------------------------------------------------------------------
   */

  --searchbar-background: #F4F4F4;


  /*
   * ------------------------------------------------------------------------
   * BLOCKQUOTES / CALLOUTS
   * ------------------------------------------------------------------------
   */

  --blockquote-background: #F4F4F4;
  --blockquote-foreground: #252525;


  /*
   * ------------------------------------------------------------------------
   * STATUS COLORS
   * ------------------------------------------------------------------------
   *
   * Orange is deliberately used as an accent rather than normal body text.
   * Illinois' web guidance warns that Illini Orange on white is not
   * sufficiently accessible for small text.
   */

  --warning-color: #C84113;
  --warning-color-dark: #A72F10;
  --warning-color-darker: #983220;


  /*
   * ------------------------------------------------------------------------
   * TOP BAR
   * ------------------------------------------------------------------------
   *
   * This is the one place where we use Illini Orange strongly.
   */

  --top-height: 60px;
}


/* ==========================================================================
   DARK MODE
   ========================================================================== */

html.dark-mode {
  color-scheme: dark;

  /*
   * ------------------------------------------------------------------------
   * BRAND
   * ------------------------------------------------------------------------
   */

  --primary-color: #FF5F05;
  --primary-dark-color: #FF5F05;
  --primary-light-color: #009FD4;


  /*
   * ------------------------------------------------------------------------
   * PAGE
   * ------------------------------------------------------------------------
   */

  --page-background-color: #11181D;
  --page-foreground-color: #FFFFFF;
  --page-secondary-foreground-color: #C6C7C6;

  --separator-color: #474948;


  /*
   * ------------------------------------------------------------------------
   * SIDEBAR
   * ------------------------------------------------------------------------
   */

  --side-nav-background: #13294B;
  --side-nav-foreground: #FFFFFF;


  /*
   * ------------------------------------------------------------------------
   * CODE
   * ------------------------------------------------------------------------
   */

  --fragment-background: #000033;
  --fragment-foreground: #FFFFFF;

  --code-background: #000033;
  --code-foreground: #FFFFFF;


  /*
   * ------------------------------------------------------------------------
   * TABLES
   * ------------------------------------------------------------------------
   */

  --tablehead-background: #13294B;
  --tablehead-foreground: #FFFFFF;


  /*
   * ------------------------------------------------------------------------
   * SEARCH
   * ------------------------------------------------------------------------
   */

  --searchbar-background: #13294B;


  /*
   * ------------------------------------------------------------------------
   * BLOCKQUOTES
   * ------------------------------------------------------------------------
   */

  --blockquote-background: #252525;
  --blockquote-foreground: #FFFFFF;


  /*
   * ------------------------------------------------------------------------
   * STATUS
   * ------------------------------------------------------------------------
   */

  --warning-color: #FF5F05;
  --warning-color-dark: #C84113;
  --warning-color-darker: #A72F10;
}


/* ==========================================================================
   PROJECT HEADER
   ========================================================================== */

/*
 * The project header is where the Illinois identity should be strongest.
 *
 * Blue is the foundation.
 * Orange is a thin visual signal rather than a giant orange banner.
 */

#top {
  border-bottom: 4px solid #FF5F05;
}


/*
 * Project title.
 */

#projectname {
  font-weight: 700;
  letter-spacing: -0.015em;
}


/*
 * The project brief contains a lot of technical information, so keep it
 * subordinate to the project name.
 */

#projectbrief {
  opacity: 0.88;
}


/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */

body {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Helvetica,
    Arial,
    sans-serif;

  line-height: 1.6;
}


/*
 * Technical documentation benefits from relatively compact headings.
 */

h1 {
  font-size: 2rem;
  font-weight: 700;
  color: #13294B;
}

h2 {
  font-size: 1.45rem;
  font-weight: 700;
  color: #13294B;

  border-bottom: 2px solid #C6C7C6;
  padding-bottom: 0.35em;
}

h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #13294B;
}

h4,
h5,
h6 {
  color: #13294B;
}


/* Dark mode headings */

html.dark-mode h1,
html.dark-mode h2,
html.dark-mode h3,
html.dark-mode h4,
html.dark-mode h5,
html.dark-mode h6 {
  color: #FFFFFF;
}


/* ==========================================================================
   LINKS
   ========================================================================== */

/*
 * Industrial blue is the official Illinois web color intended for
 * body links on white backgrounds.
 */

a {
  color: #1D58A7;
}

a:hover,
a:focus {
  color: #C84113;
}


/*
 * In dark mode, orange is accessible against the dark blue/black
 * backgrounds and gives the documentation a distinctly Illinois feel.
 */

html.dark-mode a {
  color: #FF5F05;
}

html.dark-mode a:hover,
html.dark-mode a:focus {
  color: #009FD4;
}


/* ==========================================================================
   NAVIGATION TREE
   ========================================================================== */

/*
 * Selected navigation entry:
 * subtle blue tint rather than a large saturated block.
 */

#nav-tree .selected {
  background: #E1E7F1;
  border-left: 3px solid #FF5F05;
}

html.dark-mode #nav-tree .selected {
  background: #2F4668;
  border-left-color: #FF5F05;
}


/* ==========================================================================
   CODE FRAGMENTS
   ========================================================================== */

/*
 * Keep code blocks visually distinct but quiet.
 *
 * The orange accent on the left makes long source listings easier
 * to visually identify without covering the code in brand colors.
 */

div.fragment {
  border-left: 3px solid #FF5F05;
  border-radius: 4px;
}


/*
 * Inline code.
 */

code,
tt {
  border-radius: 3px;
}


/* ==========================================================================
   MEMBER DOCUMENTATION
   ========================================================================== */

/*
 * Doxygen's member definitions are extremely dense in a scientific
 * C++ project. A restrained blue header makes them easier to scan.
 */

.memproto {
  border-left: 3px solid #FF5F05;
}

.memname {
  font-weight: 600;
}


/* ==========================================================================
   TABLES
   ========================================================================== */

table.doxtable th {
  background: #13294B;
  color: #FFFFFF;
}

table.doxtable tr:hover td {
  background: #F4F4F4;
}

html.dark-mode table.doxtable tr:hover td {
  background: #252525;
}


/* ==========================================================================
   PARAMETERS
   ========================================================================== */

.paramname {
  color: #13294B;
  font-weight: 600;
}

html.dark-mode .paramname {
  color: #FF5F05;
}


/* ==========================================================================
   ENUMS / LABELS
   ========================================================================== */

.mlabel {
  border-radius: 3px;
}


/* ==========================================================================
   SOURCE BROWSER
   ========================================================================== */

/*
 * Your Doxyfile has SOURCE_BROWSER enabled, so source listings are an
 * important part of the documentation. Give them the same visual language
 * as the API documentation.
 */

div.line {
  line-height: 1.55;
}

span.lineno {
  color: #707372;
}

html.dark-mode span.lineno {
  color: #8E9090;
}


/* ==========================================================================
   MATH
   ========================================================================== */

/*
 * Hummingbird's documentation is fundamentally mathematical:
 * transport equations, angular flux, spectral elements, etc.
 *
 * Avoid applying UI colors to equations themselves.
 */

.MathJax,
.mjx-chtml {
  color: inherit;
}


/* ==========================================================================
   DIAGRAMS
   ========================================================================== */

.dotgraph {
  border-radius: 6px;
}


/* ==========================================================================
   SEARCH
   ========================================================================== */

#MSearchBox {
  border-radius: 5px;
}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media screen and (max-width: 767px) {

  h1 {
    font-size: 1.7rem;
  }

  h2 {
    font-size: 1.3rem;
  }

  #projectbrief {
    font-size: 0.9rem;
  }
}


/* ==========================================================================
   PRINT
   ========================================================================== */

@media print {

  #top {
    border-bottom: 2px solid #13294B;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    color: #13294B;
  }

  a {
    color: #13294B;
  }
}


/* ==========================================================================
   SCROLLBAR
   ========================================================================== */

/*
 * IMPORTANT:
 *
 * Doxygen notes that specifying HTML_EXTRA_STYLESHEET causes its default
 * scrollbar styling to be omitted. Therefore we explicitly provide it here.
 */

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: #F4F4F4;
}

::-webkit-scrollbar-thumb {
  background: #707372;
  border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
  background: #13294B;
}

html.dark-mode ::-webkit-scrollbar-track {
  background: #11181D;
}

html.dark-mode ::-webkit-scrollbar-thumb {
  background: #707372;
}

html.dark-mode ::-webkit-scrollbar-thumb:hover {
  background: #FF5F05;
}

