/* Waterloo yellow and Mathematics pink accents in both reading themes. */
html {
  --pst-font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --pst-font-family-heading: var(--pst-font-family-base);
  --pst-font-family-monospace: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

html,
html[data-theme="light"] {
  color-scheme: light;
  --pst-color-primary: #a2006e;
  --pst-color-secondary: #705600;
  --pst-color-link: #a2006e;
  --pst-color-link-hover: #70004d;
  --pst-color-background: #ffffff;
  --pst-color-on-background: #ffffff;
  --pst-color-surface: #f5f7f9;
  --pst-color-on-surface: #303842;
  --pst-color-muted: #303842;
  --pst-heading-color: #243345;
  --pst-color-link-higher-contrast: #790052;
  --pst-color-primary-bg: #fbeaf5;
  --pst-color-secondary-bg: #fff7d4;
  --pst-color-table-row-zebra-high-bg: #fff;
  --pst-color-table-row-zebra-low-bg: #f8f9fa;
  --pst-color-text-base: #303842;
  --pst-color-text-muted: #5e6976;
  --pst-color-heading: #243345;
  --pst-color-border: #dce2e8;
  --pst-color-border-muted: #e8edf2;
  --pst-color-shadow: rgba(36, 51, 69, .08);
  --pst-color-info: #a2006e;
  --pst-color-info-bg: #fff7d4;
  --pst-color-success: #790052;
  --pst-color-success-bg: #fbeaf5;
  --pst-color-warning: #775b26;
  --pst-color-warning-bg: #faf7ef;
  --pst-color-danger: #934447;
  --pst-color-danger-bg: #fcf3f3;
  --pst-color-attention: #775b26;
  --pst-color-attention-bg: #faf7ef;
  --pst-color-target: #fff7d4;
  --pst-color-inline-code: #790052;
  --pst-color-inline-code-links: #a2006e;
  --pst-color-table: #303842;
  --pst-color-table-heading-bg: #f5f7f9;
  --pst-color-table-row-hover-bg: #f1f5f8;
  --pst-color-table-inner-border: #e8edf2;
  --pst-color-table-outer-border: #dce2e8;
  --pst-color-blockquote-notch: #fed34c;
  --course-color-nav: #4b5968;
  --course-color-code-bg: #fdf0f8;
  --course-color-output-bg: #fffbee;
  --course-color-output-border: #e7d99f;
  --course-color-output-accent: #c49b2c;
  --course-color-example-bg: #f5fafb;
  --course-color-example-title-bg: #e9f3f5;
  --course-color-example-border: #c6dde2;
  --course-color-example-accent: #346774;
  --course-color-hero-border: #e4e1dd;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --pst-color-primary: #ff8fd3;
  --pst-color-secondary: #fed34c;
  --pst-color-link: #ff8fd3;
  --pst-color-link-hover: #ffc2e8;
  --pst-color-background: #171c24;
  --pst-color-on-background: #171c24;
  --pst-color-surface: #222a35;
  --pst-color-on-surface: #e5ebf3;
  --pst-color-muted: #e5ebf3;
  --pst-heading-color: #f0f3f8;
  --pst-color-link-higher-contrast: #ffb4e2;
  --pst-color-primary-bg: #382335;
  --pst-color-secondary-bg: #332e20;
  --pst-color-table-row-zebra-high-bg: #171c24;
  --pst-color-table-row-zebra-low-bg: #202732;
  --pst-color-text-base: #e5ebf3;
  --pst-color-text-muted: #b2bfce;
  --pst-color-heading: #f0f3f8;
  --pst-color-border: #465366;
  --pst-color-border-muted: #354152;
  --pst-color-shadow: rgba(0, 0, 0, .25);
  --pst-color-info: #ff8fd3;
  --pst-color-info-bg: #332e20;
  --pst-color-success: #ffb4e2;
  --pst-color-success-bg: #382335;
  --pst-color-warning: #e9c878;
  --pst-color-warning-bg: #332e20;
  --pst-color-danger: #ffa6a6;
  --pst-color-danger-bg: #3b252c;
  --pst-color-attention: #e9c878;
  --pst-color-attention-bg: #332e20;
  --pst-color-target: #332e20;
  --pst-color-inline-code: #ffb4e2;
  --pst-color-inline-code-links: #ff8fd3;
  --pst-color-table: #e5ebf3;
  --pst-color-table-heading-bg: #222a35;
  --pst-color-table-row-hover-bg: #2b3543;
  --pst-color-table-inner-border: #354152;
  --pst-color-table-outer-border: #465366;
  --pst-color-blockquote-notch: #fed34c;
  --course-color-nav: #c4cfdd;
  --course-color-code-bg: #302430;
  --course-color-output-bg: #2c291f;
  --course-color-output-border: #695c36;
  --course-color-output-accent: #d9b443;
  --course-color-example-bg: #202c34;
  --course-color-example-title-bg: #293d47;
  --course-color-example-border: #48636e;
  --course-color-example-accent: #a8d9e3;
  --course-color-hero-border: #465366;
}

body { background: var(--pst-color-background); font-weight: 400; }
.bd-sidebar-primary,
.bd-sidebar-secondary,
.bd-header,
.bd-header-article { background: var(--pst-color-background); }
.bd-sidebar-primary { border-right: 2px solid #fed34c; }
.bd-sidebar-primary .logo__title {
  color: var(--pst-color-primary);
  font-size: 1.2rem;
  font-weight: 650;
  line-height: 1.45;
  text-align: left;
}
.bd-sidebar-primary .caption-text { color: var(--pst-color-text-muted); font-weight: 600; }
.bd-sidebar-primary .navbar-nav li a { color: var(--course-color-nav); line-height: 1.55; }
.bd-sidebar-primary .navbar-nav li a:hover { color: var(--pst-color-primary); background: var(--pst-color-surface); }
.bd-sidebar-primary .navbar-nav li.active > a {
  color: var(--pst-color-primary);
  background: var(--pst-color-secondary-bg);
  box-shadow: inset 2px 0 #df1aa0;
  font-weight: 600;
}
.bd-sidebar-primary .search-button-field {
  background: var(--pst-color-surface);
  color: var(--pst-color-text-muted);
  border: 1px solid var(--pst-color-border);
  border-radius: .35rem;
}
.bd-sidebar-primary .search-button__kbd-shortcut { color: var(--pst-color-text-muted); }
.bd-header-article { border-top: 3px solid #fed34c; border-bottom: 1px solid var(--pst-color-border-muted); }
.bd-article-container { max-width: 58rem; }
.bd-article { font-size: 1rem; }
.bd-article p, .bd-article li { line-height: 1.75; }
.bd-article h1 { font-size: 2.15rem; font-weight: 650; letter-spacing: -.025em; line-height: 1.25; }
.bd-article h2 { margin-top: 2.2rem; padding-bottom: .45rem; border-bottom: 2px solid #fed34c; font-size: 1.55rem; font-weight: 600; }
.bd-article h3 { margin-top: 1.6rem; font-size: 1.25rem; font-weight: 600; }
.bd-article a { text-underline-offset: .18em; }
.bd-article pre { font-size: .88rem; line-height: 1.6; }
.bd-article div.highlight,
.bd-article div[class^="highlight-"] { background: var(--course-color-code-bg); border-color: var(--pst-color-border-muted); border-radius: .35rem; }
.bd-article .highlight pre { background: var(--course-color-code-bg); }
/* A quiet yellow frame identifies results separately from the pink Code control. */
.bd-article .cell_output {
  margin: .35rem 0 1.1rem;
  padding: .6rem .85rem;
  background: var(--course-color-output-bg);
  border: 1px solid var(--course-color-output-border);
  border-left: 3px solid var(--course-color-output-accent);
  border-radius: .35rem;
}
.bd-article .cell_output > .course-output-label {
  margin: 0 0 .35rem;
  color: var(--pst-color-secondary);
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.4;
}
.bd-article .cell_output .output.stream,
.bd-article .cell_output .output.text_plain,
.bd-article .cell_output .output > .highlight {
  background: transparent;
  border: 0;
}
.bd-article .cell_output pre {
  background: transparent;
  color: var(--pst-color-text-base);
}
.bd-article .cell_output .text_html,
.bd-article .cell_output .widget-subarea {
  background: transparent;
  color: var(--pst-color-text-base);
}
/* Match the other courses: a compact, native Code disclosure, closed by default. */
.bd-article .cell > .cell_input:has(.course-code-fold) {
  background: transparent;
  border: 0;
  padding: 0;
}
.bd-article details.course-code-fold { margin: .5rem 0 1rem; }
.bd-article details.course-code-fold > summary {
  display: list-item;
  width: fit-content;
  padding: .3rem .7rem;
  color: var(--pst-color-link-higher-contrast);
  background: var(--pst-color-primary-bg);
  border: 1px solid var(--pst-color-primary);
  border-radius: .35rem;
  cursor: pointer;
  font-size: .9rem;
  font-weight: 600;
}
.bd-article details.course-code-fold > summary::marker { color: var(--pst-color-primary); }
.bd-article details.course-code-fold > summary:hover { color: var(--pst-color-link-hover); }
.bd-article details.course-code-fold > summary:focus-visible {
  outline: 2px solid var(--pst-color-primary);
  outline-offset: 3px;
}
.bd-article details.course-code-fold[open] > summary { margin-bottom: .4rem; }
.bd-article table { font-size: .94rem; }
.bd-article .admonition { background: var(--pst-color-background); box-shadow: none; border: 1px solid var(--pst-color-border); border-left: 3px solid #fed34c; border-radius: .3rem; }
.bd-article .admonition > .admonition-title { background: var(--pst-color-secondary-bg); color: var(--pst-color-primary); }
.bd-article .admonition.tip { border-left-color: var(--pst-color-primary); }
.bd-article .admonition.tip > .admonition-title { background: var(--pst-color-primary-bg); color: var(--pst-color-link-higher-contrast); }
/* Worked examples remain open and distinct from pink code and yellow output. */
.bd-article .admonition.course-example {
  margin: 1.4rem 0;
  background: var(--course-color-example-bg);
  border-color: var(--course-color-example-border);
  border-left-color: var(--course-color-example-accent);
}
.bd-article .admonition.course-example > .admonition-title {
  padding-left: 1rem;
  background: var(--course-color-example-title-bg);
  color: var(--course-color-example-accent);
  font-weight: 650;
}
.bd-article .admonition.course-example > .admonition-title::before,
.bd-article .admonition.course-example > .admonition-title::after { content: none; }
.bd-article .admonition.course-example > p:last-child { margin-bottom: .65rem; }
.course-hero { background: var(--pst-color-background); color: var(--course-color-nav); border: 1px solid var(--course-color-hero-border); border-top: 5px solid #fed34c; border-bottom: 3px solid #df1aa0; padding: 1.4rem 1.6rem; border-radius: .35rem; margin: 1.2rem 0 1.6rem; }
.course-hero h2 { color: var(--pst-color-secondary); border: none; margin: .5rem 0 .8rem; padding: 0; font-size: 1.65rem; line-height: 1.4; }
.course-hero .eyebrow { color: var(--pst-color-primary); font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.course-hero p:last-child { margin-bottom: 0; }
html[data-theme="dark"] img { filter: none !important; }
/* Rendered plots keep their original light canvas and labels. */
html[data-theme="dark"] .bd-content div.cell_output img { background: #fff; color: #303842; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--pst-color-primary); outline-offset: 3px; }
@media (max-width: 700px) {
  .course-hero { padding: 1rem; }
  .course-hero h2 { font-size: 1.4rem; }
  .bd-article h1 { font-size: 1.8rem; }
  .bd-article pre { font-size: .82rem; }
}
@media print { .course-hero { break-inside: avoid; } }

.bd-header-article .header-article-items__end { display: flex; align-items: center; }
.bd-header-article .course-pdf-button { display: inline-flex; align-items: center; gap: .35rem; color: var(--pst-color-primary); white-space: nowrap; font-size: .9rem; font-weight: 600; }

.course-learning-controls { margin: 1rem 0 1.5rem; padding: .75rem; border-left: 4px solid #ffd54f; background: var(--pst-color-surface); font-size: .9rem; }
.course-learning-controls button { color: var(--pst-color-text-base); border: 1px solid #a2006e; font-weight: 650; margin-right: .5rem; }
.course-learning-controls button:focus-visible { outline: 3px solid #a2006e; outline-offset: 2px; }

