/* User Provided Stylesheet */

/* MIT Missing Semester-inspired theme for JupyterBook */

@import url('https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,400;0,600;1,400&family=Source+Sans+3:ital,wght@0,300;0,400;0,600;0,700;1,400&display=swap');

/* ── Color palette (matches MIT Missing Semester) ── */
:root {
  --ms-purple-dark:   #24008c;
  --ms-purple:        #54008c;
  --ms-purple-light:  #f2deff;
  --ms-purple-tint:   rgba(84, 0, 140, 0.08);
  --ms-red:           #8c0038;
  --pst-color-primary: 84, 0, 140;
  --pst-color-link:   #54008c;
}

/* ── Typography ── */
body,
.bd-content p,
.bd-content li {
  font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
  font-size: 14pt;
  line-height: 1.5;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
  font-weight: 600;
  line-height: 1.25;
}

code, pre, kbd, samp,
.highlight,
.highlight pre {
  font-family: "Source Code Pro", "Menlo", "DejaVu Sans Mono", monospace !important;
  font-size: 11pt;
}

/* ── Top navigation bar — dark purple ── */
.bd-header {
  background-color: var(--ms-purple-dark) !important;
  border-bottom: none !important;
}

.bd-header .navbar-brand,
.bd-header .navbar-brand:hover,
.bd-header .nav-link,
.bd-header .nav-link:hover,
.bd-header button {
  color: #ffffff !important;
}

.bd-header .navbar-brand {
  font-weight: 700;
  letter-spacing: 0.01em;
}

/* Icon buttons in navbar */
.bd-header .btn,
.bd-header a[class*="icon"] {
  color: var(--ms-purple-light) !important;
}

.bd-header a[class*="icon"]:hover {
  color: #ffffff !important;
  background: transparent !important;
}

/* ── Sidebar ── */
.bd-sidebar-primary {
  border-right: 1px solid #e0d0f0;
  font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
  font-size: 13pt;
}

/* Active sidebar link */
.bd-sidebar-primary .nav-link.active,
.bd-sidebar-primary .nav-link.current {
  color: var(--ms-purple) !important;
  background-color: var(--ms-purple-tint) !important;
  border-left: 3px solid var(--ms-purple);
  font-weight: 600;
}

.bd-sidebar-primary .nav-link:hover {
  color: var(--ms-purple) !important;
  background-color: var(--ms-purple-tint) !important;
}

/* Sidebar caption (module group label) */
.bd-sidebar-primary .caption-text,
.bd-sidebar-primary p.caption {
  color: var(--ms-purple-dark);
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* ── Links ── */
.bd-content a,
a {
  color: var(--ms-purple);
  text-decoration: underline;
}

.bd-content a:hover,
a:hover {
  color: #ffffff;
  background-color: var(--ms-purple);
  text-decoration: none;
}

/* ── Inline code ── */
.bd-content code.literal,
.bd-content p code,
.bd-content li code {
  background-color: rgba(27, 31, 35, 0.05);
  border-radius: 3px;
  padding: 0.1em 0.35em;
  font-size: 0.9em;
}

/* ── Code blocks ── */
.bd-content div.highlight {
  border: 1px dashed #c8b0e0;
  border-radius: 4px;
}

/* ── Blockquotes ── */
.bd-content blockquote {
  background-color: var(--ms-purple-tint);
  border-left: 4px solid var(--ms-purple);
  padding: 0.75em 1em;
  margin: 1.5em 0;
  border-radius: 0 4px 4px 0;
}

/* ── Admonition/note boxes ── */
.bd-content .admonition {
  border-left-color: var(--ms-purple) !important;
}

.bd-content .admonition .admonition-title {
  background-color: var(--ms-purple-tint) !important;
  color: var(--ms-purple-dark) !important;
}

/* ── Tables ── */
.bd-content table {
  font-size: 13pt;
}

.bd-content table thead tr {
  background-color: var(--ms-purple-tint);
}

.bd-content table thead th {
  color: var(--ms-purple-dark);
  border-bottom: 2px solid var(--ms-purple);
}

/* ── Previous / Next navigation ── */
.prev-next-area a {
  color: var(--ms-purple) !important;
}

.prev-next-area a:hover {
  background-color: var(--ms-purple) !important;
  color: white !important;
}

/* ── Footer ── */
footer {
  font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
  font-size: 11pt;
  color: #666;
}

/* ── Dark mode overrides ── */
@media (prefers-color-scheme: dark) {
  :root {
    --pst-color-link: #c084fc;
  }

  .bd-header {
    background-color: #1a0066 !important;
  }

  .bd-content a,
  a {
    color: #c084fc;
  }

  .bd-content a:hover,
  a:hover {
    background-color: #c084fc;
    color: #000;
  }

  .bd-content code.literal,
  .bd-content p code,
  .bd-content li code {
    background-color: rgba(255, 255, 255, 0.08);
  }
}
