/* 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: #f6f8fa;
  --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: #222a35;
  --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); }
.bd-article .cell_output pre { background: var(--pst-color-background); color: var(--pst-color-text-base); }
.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); }
.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; }
html[data-theme="dark"] .bd-content div.cell_output .text_html,
html[data-theme="dark"] .bd-content div.cell_output .widget-subarea { background: var(--pst-color-background); color: var(--pst-color-text-base); }
/* 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; }
