/* ── UGR Brand Colors ─────────────────────────────── */
:root {
  --ugr-blue:   #00488C;
  --ugr-green:  #008050;
  --ugr-orange: #D26400;
  --ugr-gray:   #646464;
  --ugr-light:  #E8EDF5;
}

/* ── Theorem / Definition / Example Callouts ──────── */
div.theorem,
div.definition,
div.example,
div.exercise,
div.proof,
div.remark {
  padding: 0.75em 1.25em;
  margin: 1.5em 0;
  border-radius: 6px;
  border-left: 5px solid;
}

div.theorem::before,
div.definition::before,
div.example::before,
div.exercise::before,
div.proof::before,
div.remark::before {
  font-weight: 700;
  display: block;
  margin-bottom: 0.35em;
}

div.theorem {
  border-left-color: #C53030;
  background: #FFF5F5;
}
div.theorem::before {
  content: "Theorem";
  color: #C53030;
}

div.definition {
  border-left-color: var(--ugr-blue);
  background: #EBF4FF;
}
div.definition::before {
  content: "Definition";
  color: var(--ugr-blue);
}

div.example {
  border-left-color: var(--ugr-green);
  background: #E6F4EE;
}
div.example::before {
  content: "Example";
  color: var(--ugr-green);
}

div.exercise {
  border-left-color: var(--ugr-orange);
  background: #FFF5EB;
}
div.exercise::before {
  content: "Exercise";
  color: var(--ugr-orange);
}

div.proof {
  border-left-color: #6B46C1;
  background: #F5F0FF;
}
div.proof::before {
  content: "Proof";
  color: #6B46C1;
  font-style: italic;
}

div.remark {
  border-left-color: var(--ugr-gray);
  background: #F7FAFC;
}
div.remark::before {
  content: "Remark";
  color: var(--ugr-gray);
}

/* ── Glossary ─────────────────────────────────────── */
dl.glossary dt {
  font-weight: 700;
  color: var(--ugr-blue);
  margin-top: 0.6em;
}
dl.glossary dd {
  margin-left: 1.5em;
  margin-bottom: 0.4em;
}
dl.glossary dd p {
  margin: 0;
}

/* ── Code blocks ──────────────────────────────────── */
div.sourceCode {
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  background: #F8FAFC;
}

pre.sourceCode {
  margin: 0;
}

/* ── Tables ───────────────────────────────────────── */
table {
  font-size: 0.92em;
}
table caption {
  font-weight: 600;
  color: var(--ugr-blue);
}

/* ── Figures ──────────────────────────────────────── */
figure figcaption {
  font-size: 0.9em;
  color: var(--ugr-gray);
  text-align: center;
}

/* ── Chapter titles ───────────────────────────────── */
h1.title {
  color: var(--ugr-blue);
}

/* ── Part titles ──────────────────────────────────── */
h1:first-of-type {
  border-bottom: 2px solid var(--ugr-light);
  padding-bottom: 0.5em;
}

/* ── Key / highlight boxes ────────────────────────── */
div.keybox {
  padding: 0.75em 1.25em;
  margin: 1.5em 0;
  border-radius: 6px;
  border-left: 5px solid var(--ugr-orange);
  background: #FFF8F0;
}
div.keybox::before {
  content: "Key Point";
  font-weight: 700;
  display: block;
  margin-bottom: 0.35em;
  color: var(--ugr-orange);
}

/* ── Navigation / sidebar ─────────────────────────── */
nav[role="doc-toc"] {
  font-size: 0.9em;
}

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 768px) {
  div.theorem, div.definition, div.example,
  div.exercise, div.proof, div.remark, div.keybox {
    margin: 1em 0;
    padding: 0.6em 1em;
  }
  table {
    font-size: 0.82em;
  }
}
