/* STMUD Wiki overrides — applied to every kiwix-served page via mod_substitute */

/* Base dark background on every page (kiwix viewer shell, content pages,
   search results, etc) — prevents white "halo" around iframes / footer. */
html, body {
  background: #0a0a0a !important;
}
/* The viewer's iframe should fill the viewport so no white peeks below it. */
iframe.book-iframe,
#book-content {
  background: #0a0a0a !important;
}

/* ================================================================
   ARTICLE DARK MODE — re-skin Wikipedia article body to match the rest
   of the site. Targets MediaWiki / Vector / Parsoid output classes.
   ================================================================ */

.mw-parser-output,
body.mediawiki,
body.skin-vector,
body.skin-vector-2022 {
  background: #0a0a0a !important;
  color: #F4ECD8 !important;
}
.mw-parser-output a,
body.mediawiki a {
  color: #00E5D6 !important;
}
.mw-parser-output a:visited,
body.mediawiki a:visited {
  color: #d18bff !important;
}
.mw-parser-output a.new,
body.mediawiki a.new {
  color: #ff6680 !important;
}
.mw-parser-output h1, .mw-parser-output h2, .mw-parser-output h3,
.mw-parser-output h4, .mw-parser-output h5, .mw-parser-output h6,
.mw-parser-output .mw-heading,
.firstHeading, .mw-page-title-main {
  color: #F4ECD8 !important;
  border-color: #333 !important;
}
.mw-parser-output table,
.infobox, .vertical-navbox, .navbox, .sidebar, .toc, #toc {
  background: #1a1a1a !important;
  color: #F4ECD8 !important;
  border-color: #333 !important;
}
.mw-parser-output table th,
.mw-parser-output table td {
  border-color: #333 !important;
  color: #F4ECD8 !important;
  background-color: transparent !important;
}
.mw-parser-output table th { background: #222 !important; }
.mw-parser-output code,
.mw-parser-output pre,
.mw-parser-output kbd,
.mw-parser-output samp {
  background: #1a1a1a !important;
  color: #F4ECD8 !important;
  border-color: #333 !important;
}
.mw-parser-output blockquote {
  border-left-color: #333 !important;
  color: #F4ECD8 !important;
}
.mw-parser-output .hatnote,
.mw-parser-output .dablink,
.mw-parser-output .thumbcaption,
.mw-parser-output figcaption {
  color: #aaa !important;
}
.mw-parser-output .thumb,
.mw-parser-output .thumbinner {
  background: #1a1a1a !important;
  border-color: #333 !important;
}
.mw-parser-output .reference { color: #00E5D6 !important; }
.mw-parser-output hr { border-color: #333 !important; }
.mw-parser-output mark { background: #4d3f00 !important; color: #F4ECD8 !important; }

/* ================================================================
   COLLAPSED JUNK SECTIONS (See also / External links / Further reading)
   article.js wraps these sections in <details class="stmud-collapsed">
   ================================================================ */
details.stmud-collapsed {
  border-top: 1px solid #333;
  margin: 1.5rem 0;
  padding: 0.5rem 0;
}
details.stmud-collapsed > summary {
  cursor: pointer;
  list-style: none;
  font-size: 1.4rem;
  font-weight: 600;
  padding: 0.5rem 0;
  color: #F4ECD8;
  user-select: none;
}
details.stmud-collapsed > summary::before { content: '▸ '; color: #00E5D6; }
details.stmud-collapsed[open] > summary::before { content: '▾ '; }
details.stmud-collapsed > summary::-webkit-details-marker { display: none; }

/* ================================================================
   READING-TIME PILL — inserted by article.js at top of article body
   ================================================================ */
#stmud-readtime {
  display: inline-block;
  margin: 0 0 1.25rem;
  padding: 0.3rem 0.85rem;
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  background: rgba(0, 229, 214, 0.08);
  color: #00E5D6 !important;
  border: 1px solid rgba(0, 229, 214, 0.3);
  border-radius: 999px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}


/* Hide external Wikipedia links + sister-projects block on Main_Page */
a.external,
a.extiw,
#mp-sister,
#mp-sister-content { display: none !important; }

/* Kiwix's mobile UI hides the home/library buttons behind a tiny caret toggle
   on screens <420px wide. Force them always visible on every viewport. */
.kiwix_button_cont,
.kiwix_button_cont > a {
  display: inline-block !important;
}
label[for="kiwix_button_show_toggle"] {
  display: none !important;
}

/* Mobile redesign of the kiwix taskbar — re-skin to dark/compact so it fits
   on phone screens without dominating the viewport. Same buttons, just
   tightened and colored to match the dark page. */
@media (max-width: 540px) {
  #kiwixtoolbar {
    background: #0a0a0a !important;
    border-bottom: 1px solid #222 !important;
    padding: 0.4rem 0.5rem !important;
  }
  #kiwixtoolbar .kiwix_centered {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 0.35rem;
    max-width: 100% !important;
  }
  #kiwixtoolbar .kiwix_searchform {
    float: none !important;
    width: auto !important;
    flex: 1;
    min-width: 0;
    margin: 0 !important;
  }
  #kiwixtoolbar .kiwix_searchform input[type=text],
  #kiwixtoolbar #kiwixsearchbox,
  #kiwixtoolbar #topbarsearchbox {
    width: 100% !important;
    background: transparent !important;
    border: 1px solid #333 !important;
    color: #F4ECD8 !important;
    padding: 0.45rem 0.6rem !important;
    font-size: 0.95rem !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
  }
  #kiwixtoolbar .kiwix_searchform label { display: none !important; }
  #kiwixtoolbar .kiwix_button_cont {
    flex: 0 0 auto;
    display: flex !important;
    align-items: center;
    gap: 0.25rem;
    margin: 0 !important;
  }
  #kiwixtoolbar .kiwix_button_cont > a,
  #kiwixtoolbar .kiwix_button_cont > span {
    display: inline-flex !important;
    margin: 0 !important;
  }
  #kiwixtoolbar .kiwix_button_cont button {
    background: transparent !important;
    border: 1px solid #333 !important;
    color: #00E5D6 !important;
    padding: 0.4rem 0.55rem !important;
    font-size: 0.95rem !important;
    border-radius: 4px !important;
    margin: 0 !important;
    line-height: 1 !important;
  }
  #kiwix_serve_taskbar_home_button { display: none !important; }
}

/* Floating Home + Search chrome injected by /wiki-chrome.js on every page.
   Provides consistent navigation regardless of which URL the user is on. */
#stmud-chrome {
  position: fixed;
  top: 0.6rem;
  right: 0.6rem;
  z-index: 999999;
  display: flex;
  gap: 0.4rem;
  align-items: flex-start;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
#stmud-chrome > a,
#stmud-chrome > button {
  display: inline-block;
  background: #0a0a0a;
  color: #00E5D6;
  text-decoration: none;
  padding: 0.45rem 0.7rem;
  border: 1px solid #222;
  border-radius: 4px;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  font-family: inherit;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}
#stmud-chrome > a:hover,
#stmud-chrome > button:hover {
  background: #00E5D6;
  color: #0a0a0a;
  border-color: #00E5D6;
}
#stmud-search-panel {
  position: fixed;
  top: 3.2rem;
  right: 0.6rem;
  width: min(22rem, calc(100vw - 1.2rem));
  background: #0a0a0a;
  border: 1px solid #222;
  border-radius: 4px;
  padding: 0.6rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6);
  z-index: 999998;
}
#stmud-q {
  width: 100%;
  padding: 0.7rem 0.9rem;
  background: transparent;
  border: 1px solid #222;
  color: #F4ECD8;
  font-size: 1rem;
  outline: none;
  font-family: inherit;
}
#stmud-q:focus { border-color: #00E5D6; }
#stmud-suggest {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  background: #0a0a0a;
  max-height: 60vh;
  overflow-y: auto;
}
#stmud-suggest li { margin: 0; padding: 0; }
#stmud-suggest a {
  display: block;
  padding: 0.6rem 0.8rem;
  color: #F4ECD8;
  text-decoration: none;
  border-bottom: 1px solid #222;
  font-size: 0.95rem;
}
#stmud-suggest li:last-child a { border-bottom: none; }
#stmud-suggest a:hover,
#stmud-suggest a.active {
  background: rgba(0, 229, 214, 0.08);
  color: #00E5D6;
}

/* ================================================================
   Search results page (kiwix `/search` endpoint)
   Selectors target kiwix's class names: .header, .results, cite,
   .informations, .book-title, .footer.
   ================================================================ */

body:has(> .header):has(> .results),
body:has(> .header):has(> ul.results) {
  background: #0a0a0a !important;
  color: #F4ECD8 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 16px !important;
  line-height: 1.55;
  max-width: 48rem;
  margin: 0 auto !important;
  padding: 2.5rem 1.5rem 4rem !important;
}
body:has(.results) a,
body:has(.results) a:visited {
  color: #00E5D6 !important;
  text-decoration: none !important;
}
body:has(.results) a:hover { text-decoration: underline !important; }

body:has(.results) .header {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.7rem !important;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #888 !important;
  border-bottom: 1px solid #222;
  padding-bottom: 1.25rem;
  margin-bottom: 0.5rem;
}
body:has(.results) .header form { margin-top: 1rem; display: flex; gap: 0.5rem; flex-wrap: wrap; }
body:has(.results) .header input[type=text] {
  flex: 1; min-width: 12rem;
  padding: 0.7rem 1rem;
  background: transparent !important;
  border: 1px solid #222 !important;
  color: #F4ECD8 !important;
  font-family: Georgia, serif;
  font-size: 1rem;
  outline: none;
}
body:has(.results) .header input[type=text]:focus { border-color: #00E5D6 !important; }
body:has(.results) .header input[type=submit] {
  padding: 0.6rem 1.2rem;
  background: #00E5D6 !important;
  color: #0a0a0a !important;
  border: none !important;
  font-family: ui-monospace, monospace;
  font-size: 0.8rem;
  letter-spacing: 0.25em;
  cursor: pointer;
}

body:has(.results) ul.results { padding: 0 !important; margin: 0 !important; }
body:has(.results) ul.results li {
  list-style: none !important;
  padding: 1.25rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid #222;
}
body:has(.results) ul.results li > a {
  display: inline-block;
  font-size: 1.2rem !important;
  font-style: italic;
  color: #F4ECD8 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: normal;
}
body:has(.results) ul.results li > a:hover { color: #00E5D6 !important; }

body:has(.results) cite {
  display: block !important;
  margin: 0.4rem 0 0 !important;
  color: #aaa !important;
  font-size: 0.92rem !important;
  font-style: normal !important;
  font-family: Georgia, serif !important;
  line-height: 1.55;
}
body:has(.results) .informations {
  color: #666 !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-family: ui-monospace, monospace;
  margin-top: 0.5rem;
}
body:has(.results) .book-title { display: none !important; }

body:has(.results) .footer {
  margin-top: 2rem !important;
  padding: 1.5rem 0 0 !important;
  border-top: 1px solid #222 !important;
  text-align: center;
  float: none !important;
  width: auto !important;
}
body:has(.results) .footer a,
body:has(.results) .footer span {
  display: inline-block !important;
  padding: 0.4rem 0.8rem !important;
  color: #888 !important;
  font-family: ui-monospace, monospace;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  margin: 0 0.2em !important;
}
body:has(.results) .footer span { color: #666 !important; }
