/* ===== COGITO Documentation ===== */
@import url('https://fonts.googleapis.com/css?family=Arvo:400,700,400italic');

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* Core palette */
  --offwhite:      #f5f4f0;
  --charcoal:      #2e2e2e;
  --sidebar-light: #3a3a3a;  /* sidebar bg in light mode */
  --sidebar-dark:  #1e1e1e;  /* sidebar bg in dark mode */

  /* Furo brand */
  --color-brand-primary: #5b4abf;
  --color-brand-content: #5b4abf;

  /* Autodoc block colors */
  --cogito-class-bg: #92b9d1;
  --cogito-class-bg-hover: #aecfdf;
  --cogito-class-border: #1c4e6e;
  --cogito-method-bg: #e8eaeb;
  --cogito-method-border: #4c7791;
  --cogito-sig-color: #000;

  /* Light mode page colors */
  --color-background-primary:   var(--offwhite);
  --color-background-secondary: var(--offwhite);
  --color-foreground-primary:   var(--charcoal);
  --color-foreground-secondary: var(--charcoal);
  --color-foreground-muted:     var(--charcoal);

  /* Light mode sidebar (dark bg, offwhite text) */
  --color-sidebar-background:                      var(--sidebar-light);
  --color-sidebar-background-border:               var(--sidebar-dark);
  --color-sidebar-link-text:                       var(--offwhite);
  --color-sidebar-link-text--top-level:            var(--offwhite);
  --color-sidebar-caption-text:                    var(--offwhite);
  --color-sidebar-item-background--hover:          var(--charcoal);
  --color-sidebar-item-background--current:        var(--charcoal);
  --color-sidebar-item-expander-background--hover: var(--charcoal);
  --color-sidebar-search-background:               var(--sidebar-dark);
  --color-sidebar-search-background--focus:        var(--charcoal);
  --color-sidebar-search-border:                   var(--charcoal);
  --color-sidebar-search-foreground:               var(--offwhite);
  --color-sidebar-search-icon:                     var(--offwhite);
  --color-sidebar-brand-text:                      var(--offwhite);
}

/* Dark mode overrides */
body[data-theme="dark"] {
  --color-background-primary:   var(--charcoal);
  --color-background-secondary: var(--charcoal);
  --color-foreground-primary:   var(--offwhite);
  --color-foreground-secondary: var(--offwhite);
  --color-foreground-muted:     var(--offwhite);

  --color-sidebar-background:                      var(--sidebar-dark);
  --color-sidebar-background-border:               var(--sidebar-dark);
  --color-sidebar-link-text:                       var(--offwhite);
  --color-sidebar-link-text--top-level:            var(--offwhite);
  --color-sidebar-caption-text:                    var(--offwhite);
  --color-sidebar-item-background--hover:          var(--charcoal);
  --color-sidebar-item-background--current:        var(--charcoal);
  --color-sidebar-item-expander-background--hover: var(--charcoal);
  --color-sidebar-search-background:               var(--charcoal);
  --color-sidebar-search-background--focus:        var(--charcoal);
  --color-sidebar-search-border:                   var(--charcoal);
  --color-sidebar-search-foreground:               var(--offwhite);
  --color-sidebar-search-icon:                     var(--offwhite);

  --cogito-class-bg: #1c4e6e;
  --cogito-class-bg-hover: #143a52;
  --cogito-class-border: #0d3a52;
  --cogito-method-bg: #3a3d40;
  --cogito-method-border: #5a8aaa;
  --cogito-sig-color: #e0e0e0;
}

@media (prefers-color-scheme: dark) {
  body:not([data-theme="light"]) {
    --color-background-primary:   var(--charcoal);
    --color-background-secondary: var(--charcoal);
    --color-foreground-primary:   var(--offwhite);
    --color-foreground-secondary: var(--offwhite);
    --color-foreground-muted:     var(--offwhite);

    --color-sidebar-background:                      var(--sidebar-dark);
    --color-sidebar-background-border:               var(--sidebar-dark);
    --color-sidebar-link-text:                       var(--offwhite);
    --color-sidebar-link-text--top-level:            var(--offwhite);
    --color-sidebar-caption-text:                    var(--offwhite);
    --color-sidebar-item-background--hover:          var(--charcoal);
    --color-sidebar-item-background--current:        var(--charcoal);
    --color-sidebar-item-expander-background--hover: var(--charcoal);
    --color-sidebar-search-background:               var(--charcoal);
    --color-sidebar-search-background--focus:        var(--charcoal);
    --color-sidebar-search-border:                   var(--charcoal);
    --color-sidebar-search-foreground:               var(--offwhite);
    --color-sidebar-search-icon:                     var(--offwhite);

    --cogito-class-bg: #1c4e6e;
    --cogito-class-bg-hover: #143a52;
    --cogito-class-border: #0d3a52;
    --cogito-method-bg: #3a3d40;
    --cogito-method-border: #5a8aaa;
    --cogito-sig-color: #e0e0e0;
  }
}

/* --- Global heading font (Arvo for all headers/titles) --- */
h1, h2, h3, h4, h5, h6,
.sidebar-brand-text,
.toc-title {
  font-family: Arvo, Monaco, serif;
  font-weight: 400 !important;
}

/* --- Base typography --- */
article {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

/* --- Headings (combined: font from old custom.css, border/bg from Jekyll layout) --- */
article h1,
article h2,
article h3 {
  font-family: Arvo, Monaco, serif;
  letter-spacing: 0.01em;
  padding: 0.1em 0.2em;
  border-bottom: 1px solid currentColor;
  margin-top: 0.2em;
  border-radius: 0;
}


/* --- Inline code --- */
article code {
  color: #e74c3c;
  background: #f8f8f8;
  border: 1px solid #e1e4e8;
  border-radius: 3px;
  padding: 2px 4px;
  font-size: 0.9em;
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

/* --- Code blocks --- */
article pre {
  background: var(--cogito-method-bg);
  border: 1px solid var(--cogito-method-border);
  border-radius: 4px;
  padding: 12px;
  overflow-x: auto;
  font-size: 0.9em;
  line-height: 1.4;
  color: var(--color-foreground-primary);
  margin: 16px 0;
}

/* Override pygments .highlight background (pygments.css loads before custom.css,
   so higher specificity here wins without !important) */
article .highlight {
  background: var(--cogito-method-bg);
}

/* Zero out the pre's top/bottom margin when inside .highlight so no gap shows
   .highlight's background at a different color */
article .highlight pre {
  margin: 0;
  background: var(--cogito-method-bg);
  color: var(--color-foreground-primary);
}

article pre code {
  background: transparent;
  border: none;
  padding: 0;
  color: inherit;
}

/* --- Links --- */
article a { color: #2980b9; text-decoration: none; }
article a:hover { color: #3498db; text-decoration: underline; }

/* --- Lists --- */
article ul { line-height: 1.6; }
article li { margin: 8px 0; line-height: 1.6; }

/* --- Blockquotes --- */
article blockquote {
  background: #f8f9fa;
  border-left: 4px solid #2980b9;
  margin: 16px 0;
  padding: 12px 16px;
  color: #555;
  font-style: italic;
}

/* --- Tables --- */
article table { border-collapse: collapse; width: 100%; margin: 16px 0; }
article th, article td { border: 1px solid #e1e4e8; padding: 8px 12px; text-align: left; }
article th { background: #f8f9fa; font-weight: bold; color: #2c3e50; }

/* ===== Autodoc Styling ===== */


/* --- Class signature --- */
article dl.py.class > dt {
  font-family: monospace;
  font-weight: bold;
  color: var(--cogito-sig-color);
  background-color: var(--cogito-class-bg);
  /* padding-left must stay >= 2.5em to counteract Furo's text-indent: -2.5em */
  padding: 0.4em 0.5em 0.4em 3em;
  border-radius: 1px;
  border-top: 3px solid var(--cogito-class-border);
  line-height: 1.1;
}

article dl.py.class > dt .sig-param { color: #dfefff; font-size: 0.9em; }
article dl.py.class > dt .property { color: #dfefff; font-size: 0.95em; }
article dl.py.class > dt:hover { background-color: var(--cogito-class-bg-hover); }

/* --- Class/function name and description text color --- */
article dl.py dt .sig-name { color: var(--cogito-sig-color) !important; }
article dl.py.class > dd { font-size: 0.95em}

/* --- Method and function blocks --- */
article dl.py.method,
article dl.py.function { margin: 15px 0 10px 0; }

article dl.py.method > dt,
article dl.py.function > dt {
  font-family: monospace;
  font-weight: bold;
  font-style: normal;
  color: var(--cogito-sig-color);
  background-color: var(--cogito-method-bg);
  /* padding-left must stay >= 2.5em to counteract Furo's text-indent: -2.5em */
  padding: 0.4em 0.5em 0.4em 3em;
  border-left: 3px solid var(--cogito-method-border);
  border-radius: 1px;
  margin-bottom: 5px;
  line-height: 1.05;
  display: inline-block;
}

article dl.py.method > dt .sig-param,
article dl.py.function > dt .sig-param { color: #768760; font-size: 0.9em; }
article dl.py.method > dt .property,
article dl.py.function > dt .property { color: #666; font-size: 0.95em; }

/* --- Source links --- */
article .viewcode-link { font-size: 0.9em; margin-left: 15px; color: #e74c3c; }
article a .viewcode-link { color: #e74c3c; }
article .headerlink { display: none; }

/* --- Method/function description --- */
/* margin-left needs !important to override Furo's dl[class]:not(...) dd { margin-left: 2rem } */
article dl.py.method > dd,
article dl.py.function > dd {
  margin-left: 0 !important;
  padding-left: 0.5em;
  margin-top: 5px;
  margin-bottom: 0;
  font-size: 0.95em;
}

article dl.py.method > dd > p,
article dl.py.function > dd > p { margin: 5px 0; line-height: 1.2; }

/* --- Field lists (Parameters / Returns) --- */
article dl.py.method .field-list,
article dl.py.function .field-list {
  display: grid;
  grid-template-columns: minmax(90px, auto) 1fr;
  align-items: start;
  margin-top: 8px;
  gap: 4px 10px;
}

article dl.py.method .field-list dt,
article dl.py.method .field-list dd,
article dl.py.function .field-list dt,
article dl.py.function .field-list dd {
  margin: 0;
  padding: 0;
}

article dl.py.method .field-list dt,
article dl.py.function .field-list dt { font-weight: bold; }
article dl.py.method .field-list dt .colon,
article dl.py.function .field-list dt .colon { display: inline; }

article dl.py.method .field-list dd ul.simple,
article dl.py.function .field-list dd ul.simple {
  margin: 0;
  padding-left: 10px;
  line-height: 1.3;
}

article dl.py.method .field-list dd ul.simple li,
article dl.py.function .field-list dd ul.simple li { margin: 2px 0; padding: 0; line-height: 1.1; }
article dl.py.method .field-list dd ul.simple li p,
article dl.py.function .field-list dd ul.simple li p { margin: 0; padding: 0; line-height: 1.1; }


/* ===== Quick Guide image containers (home.md / tutorial.md) ===== */

.image-container {
  position: relative;
  display: inline-block;
  background-color: transparent;
  border-radius: 3px;
}

body[data-theme="dark"] .image-container {
  background-color: rgba(255, 255, 255, 0.75); /* fallback */
  background-color: color-mix(in srgb, white 75%, transparent);
}

@media (prefers-color-scheme: dark) {
  body:not([data-theme="light"]) .image-container {
    background-color: rgba(255, 255, 255, 0.75); /* fallback */
    background-color: color-mix(in srgb, white 75%, transparent);
  }
}

.image-container iframe {
  color-scheme: only light;
}

.image-hover {
  transition: opacity 0.3s ease;
  display: block;
}

.image-container:hover .image-hover,
.image-hover:hover {
  opacity: 0.3;
}

.overlay-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--color-foreground-primary);
  font-size: 16px;
  font-weight: bold;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.image-container:hover .overlay-text {
  opacity: 1;
  pointer-events: auto;
}


/* ===== Code blocks ===== */

/* Outer language wrapper (e.g. div.highlight-bash) inherits page background —
   no background needed here; inner rules handle the visible box */
