/* ==========================================================================
   Sphinx / Immaterial docs — Custom styling with CSS variables
   ========================================================================== */

/* --------------------------------------------------------------------------
   0) Theme variables
   Define light (default) values here; override for slate below.
   You can tune just these and the whole look updates.
   -------------------------------------------------------------------------- */
:root,
[data-md-color-scheme="default"] {
  /* Surfaces */
  --doc-examples-bg: #D7DEE3;      /* Examples rubric bg */
  --doc-field-bg:    #D7DEE3;      /* Field dt odd/even bg */
  --doc-heading-divider: #717578;  /* h2 divider line */

  /* Signature/typing accents */
  --doc-param-ref:        #e5ba5e; /* .sig-param .reference */
  --doc-param-name-token: #89b6ad; /* .sig-param a.n.reference span.pre */
  --doc-return-ref:       #4b7183; /* .sig-return-typehint .reference */
  --doc-descriptor-token: #89b6ad; /* .desctype span.pre */

  /* Interaction defaults (fallback to theme tokens as needed) */
  --doc-link-hover-color: var(--md-primary-fg-color);
  --doc-token-hover-color: var(--md-accent-fg-color);

  /* Typography spacing */
  --doc-summary-opacity: 0.5;
  --doc-summary-pt: 5px;
  --doc-summary-fs: 15px;

  /* Term underline tweaks */
  --doc-term-underline-offset: 5px;
  --doc-term-underline-thickness: 1px;

  /* Compact padding for tinted blocks */
  --doc-pad-compact: 5px;
}

/* Dark palette overrides */
[data-md-color-scheme="slate"] {
  --doc-examples-bg: #071C2A;
  --doc-field-bg:    #071C2A;
  /* Keep other accents the same unless you want a different dark set */
}



.sig-param .default_value,
.sig-param code.default_value {
  border: none;
  background: none;
  padding: 0;
}
/* ==========================================================================
   1) API parameter term styling (dt elements in API fields)
   -------------------------------------------------------------------------- */
dl.simple.api-field.highlight dt {
  background: none;
  font-size: 12pt;
  text-decoration: underline;
  text-underline-offset: var(--doc-term-underline-offset);
  text-decoration-thickness: var(--doc-term-underline-thickness);
}

/* Hide noisy pieces inside the term, show only the name */
dl.simple.api-field.highlight dt span { display: none; }
dl.simple.api-field.highlight dt code { display: none; }
dl.simple.api-field.highlight dt span.sig-name { display: inline; }


/* ==========================================================================
   2) Themed blocks — backgrounds & padding
   -------------------------------------------------------------------------- */
/* 2a) Examples rubric block */
p.example.rubric#examples {
  background: var(--doc-examples-bg);
  padding: var(--doc-pad-compact);
}

/* 2b) Field terms (odd/even rows) */
dt.field-odd,
dt.field-even {
  background: var(--doc-field-bg);
  padding: var(--doc-pad-compact);
}

/* 2c) (Optional) Specific #parameters header tinting
   Uncomment if you want a distinct style for that one element.
 */
/*
dt.field-odd#parameters {
  background: var(--doc-field-bg);
  padding: var(--doc-pad-compact);
}
*/


/* ==========================================================================
   3) Python object summaries (class/function/method/property)
   -------------------------------------------------------------------------- */
/*.py.class.summary.objdesc dd p,*/
/*.py.function.summary.objdesc dd p,*/
/*.py.method.summary.objdesc dd p,*/
/*.py.property.summary.objdesc dd p {*/
/*  opacity: var(--doc-summary-opacity);*/
/*  padding-top: var(--doc-summary-pt);*/
/*  font-size: var(--doc-summary-fs);*/
/*  !* Examples:*/
/*     text-align: right;*/
/*     font-family: 'Courier New', Courier, monospace;*/
/*  *!*/
/*}*/


dl.py.summary.objdesc dd > p {
  opacity: var(--doc-summary-opacity);
  padding-top: var(--doc-summary-pt);
  font-size: var(--doc-summary-fs);
}
/* ==========================================================================
   4) Signature/typing colors (params, returns, descriptors)
   -------------------------------------------------------------------------- */
.sig-param .reference {
  color: var(--doc-param-ref);
  opacity: 0.8;
}

.sig-param a.n.reference span.pre {
  color: var(--doc-param-name-token);
}

.sig-param a.n.reference span.pre {
  color: #CD5C5C;
}

.sig-return-typehint .reference {
  color: var(--doc-return-ref);
  opacity: 0.8;
}



/* Hover state for param token inside reference */
.sig-param a.reference span .pre:hover {
  color: var(--doc-token-hover-color);
}

.desctype span.pre {
  color: #729C9C;
  opacity: 0.9;
}


/* (Optional debug helpers) */
.desctype a.reference.external span.pre { color:  var(--doc-descriptor-token); } /* EXTERNAL */
/*.desctype a.reference.internal span.pre { color: yellow; } !* INTERNAL *!*/
.desctype a.reference.internal span.pre {
  color: #d7d76b  !important;
    filter: brightness(0.80);
} /* INTERNAL */


/* ==========================================================================
   5) Headings
   -------------------------------------------------------------------------- */
/*.py.class.objdesc h2 {*/
/*  text-align: center;*/
/*  border-bottom: 0.5px solid var(--doc-heading-divider);*/
/*  padding-bottom: 5px;*/
/*}*/

h2 { opacity: 0.8; }


/* ==========================================================================
   6) Links / references
   -------------------------------------------------------------------------- */
a.reference:hover {
  text-decoration: underline;
  text-underline-offset: var(--doc-term-underline-offset);
  text-decoration-thickness: var(--doc-term-underline-thickness);
  color: var(--doc-link-hover-color);
  text-underline-color: var(--doc-link-hover-color);
}

/* --------------------------------------------------------------------------
   Notes / alternates you can enable later:
   [data-md-color-scheme="slate"] a.reference { color: var(--md-primary-fg-color); }
   .sig-name .pre { color: var(--md-primary-fg-color); }
   .sig-param a.reference span.pre { color: #77A681; }
   span.sig-name.descname span.pre { color: #9e3f96; }
   -------------------------------------------------------------------------- */
