@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&display=swap");

/* ═══════════════════════════════════════════════════════════════════════
   Ghid TAC — foaie de stil peste tema Material
   Serif pentru titluri, sans pentru text. Culoarea marchează structura:
   fiecare tip de casetă are tenta lui, tabelele au antet colorat,
   fiecare secțiune are un accent sub titlu.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── 1. Paletă ──────────────────────────────────────────────────────── */

:root {
  --tac-serif: "Source Serif 4", Georgia, "Times New Roman", serif;

  --tac-accent: #14508c;
  --tac-accent-soft: #e8f0f9;
  --tac-ink: #0e1620;
  --tac-muted: #56616f;
  --tac-rule: #d8dee7;
  --tac-rule-soft: #eaeef3;
  --tac-surface: #f4f7fa;
  --tac-code-bg: #eef1f6;
  --tac-ok: #0f7a45;
  --tac-no: #b3261e;

  --tac-tip: #0f7d6e;
  --tac-warn: #b46a00;
  --tac-abstract: #6244c5;
  --tac-note: #14508c;
  --tac-info: #0d7490;
}

[data-md-color-scheme="default"] {
  --md-primary-fg-color: #0e1620;
  --md-primary-bg-color: #ffffff;
  --md-accent-fg-color: var(--tac-accent);
  --md-typeset-a-color: var(--tac-accent);
  --md-default-fg-color--light: var(--tac-muted);
}

[data-md-color-scheme="slate"] {
  --tac-accent: #6fb2f0;
  --tac-accent-soft: #172436;
  --tac-ink: #e9edf4;
  --tac-muted: #94a0b2;
  --tac-rule: #2b3546;
  --tac-rule-soft: #212a38;
  --tac-surface: #1a212c;
  --tac-code-bg: #1f2733;
  --tac-ok: #4fca8b;
  --tac-no: #f2897f;

  --tac-tip: #3fc9b0;
  --tac-warn: #e2a54a;
  --tac-abstract: #a58cf5;
  --tac-note: #6fb2f0;
  --tac-info: #46b6d4;

  --md-primary-fg-color: #0c1119;
  --md-accent-fg-color: var(--tac-accent);
  --md-typeset-a-color: var(--tac-accent);
  --md-default-bg-color: #121821;
}

/* ── 2. Ritm tipografic ─────────────────────────────────────────────── */

.md-grid {
  max-width: 62rem;
}

.md-typeset {
  font-size: 0.82rem;
  line-height: 1.64;
  color: var(--tac-ink);
}

.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4 {
  font-family: var(--tac-serif);
  letter-spacing: -0.008em;
  color: var(--tac-ink);
}

.md-typeset h1 {
  font-size: 1.95rem;
  line-height: 1.15;
  font-weight: 700;
  margin: 0 0 1.4rem;
  padding-bottom: 0.7rem;
  border-bottom: 3px solid var(--tac-ink);
}

/* h2 = secțiune majoră: linie completă + accent colorat la stânga */
.md-typeset h2 {
  position: relative;
  font-size: 1.42rem;
  font-weight: 700;
  margin: 2.4rem 0 0.9rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--tac-rule);
}

.md-typeset h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 3rem;
  height: 3px;
  background: var(--tac-accent);
}

/* h3 = subsecțiune: colorată, ca să se vadă la derulare */
.md-typeset h3 {
  font-size: 1.12rem;
  font-weight: 600;
  color: var(--tac-accent);
  margin: 1.9rem 0 0.55rem;
}

/* h4 = sub-subsecțiune: clar mai mică, cu bară laterală */
.md-typeset h4 {
  font-size: 0.94rem;
  font-weight: 700;
  margin: 1.35rem 0 0.45rem;
  padding-left: 0.55rem;
  border-left: 3px solid var(--tac-rule);
  color: var(--tac-ink);
  text-transform: none;
  letter-spacing: 0;
}

.md-typeset h5,
.md-typeset h6 {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--tac-muted);
  margin: 1.1rem 0 0.35rem;
}

.md-typeset p,
.md-typeset ul,
.md-typeset ol {
  margin-top: 0.5rem;
  margin-bottom: 0.7rem;
}

.md-typeset li {
  margin-bottom: 0.18rem;
}

.md-typeset li > p {
  margin: 0.2rem 0;
}

.md-typeset hr {
  border-bottom: 1px solid var(--tac-rule-soft);
  margin: 1.7rem 0;
}

.md-typeset a {
  text-underline-offset: 0.15em;
}

.md-typeset .headerlink {
  opacity: 0;
  transition: opacity 120ms;
}
.md-typeset :hover > .headerlink,
.md-typeset .headerlink:focus {
  opacity: 0.4;
}

/* ── 3. Întrebările rezolvate ───────────────────────────────────────── */

.md-typeset h3[id^="n"],
.md-typeset h3[id^="w"],
.md-typeset h3[id^="l"],
.md-typeset h3[id^="v"],
.md-typeset h3[id^="c"] {
  scroll-margin-top: 4rem;
}

.md-typeset .qmeta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
  align-items: center;
  margin: 0.15rem 0 0.75rem;
  max-width: none;
}

.qmeta .yr {
  font-family: var(--md-code-font-family, monospace);
  font-size: 0.6rem;
  font-weight: 600;
  padding: 0.1rem 0.4rem;
  border: 1px solid var(--tac-rule);
  border-radius: 0.6rem;
  color: var(--tac-muted);
  background: var(--md-default-bg-color);
  white-space: nowrap;
}

.qmeta .rec {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.12rem 0.45rem;
  border-radius: 0.6rem;
  color: #fff;
  background: var(--tac-accent);
}

[data-md-color-scheme="slate"] .qmeta .rec {
  color: #0c1119;
}

/* Variantele a./b./c./d. — litera colorată, aliniată */
.md-typeset h3 ~ ul > li > strong:first-child,
.md-typeset .qcard > ul > li > strong:first-child {
  display: inline-block;
  min-width: 1.5em;
  color: var(--tac-accent);
  font-family: var(--md-code-font-family, monospace);
  font-size: 0.9em;
}

/* ── 4. Caseta de răspuns <details> ─────────────────────────────────── */

.md-typeset details.answer,
.md-typeset details.key {
  margin: 0.8rem 0 1.1rem;
  max-width: none;
  border: 1px solid var(--tac-rule);
  border-left: 4px solid var(--tac-ok);
  border-radius: 0.2rem;
  background: var(--tac-surface);
  box-shadow: none;
  font-size: inherit;
  padding: 0;
}

.md-typeset details.key {
  border-left-color: var(--tac-accent);
}

.md-typeset details.answer > summary,
.md-typeset details.key > summary {
  position: relative;
  font-family: var(--tac-serif);
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--tac-ok);
  background: transparent;
  padding: 0.5rem 0.8rem 0.5rem 1.85rem;
  border: 0;
  border-radius: 0;
  list-style: none;
  cursor: pointer;
}

.md-typeset details.key > summary {
  color: var(--tac-accent);
}

.md-typeset details.answer > summary::marker,
.md-typeset details.key > summary::marker,
.md-typeset details.answer > summary::-webkit-details-marker,
.md-typeset details.key > summary::-webkit-details-marker {
  display: none;
  content: "";
}

.md-typeset details.answer > summary::before,
.md-typeset details.key > summary::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.75rem;
  width: 0;
  height: 0;
  background: none;
  border-top: 0.3rem solid transparent;
  border-bottom: 0.3rem solid transparent;
  border-left: 0.42rem solid currentcolor;
  transform: translateY(-50%);
  transform-origin: 35% 50%;
  transition: transform 150ms ease;
}

.md-typeset details.answer[open] > summary::before,
.md-typeset details.key[open] > summary::before {
  transform: translateY(-50%) rotate(90deg);
}

.md-typeset details.answer > summary::after,
.md-typeset details.key > summary::after {
  display: none;
}

.md-typeset details.answer[open] > summary,
.md-typeset details.key[open] > summary {
  border-bottom: 1px solid var(--tac-rule);
}

.md-typeset details.answer > *:not(summary),
.md-typeset details.key > *:not(summary) {
  margin-left: 0.85rem;
  margin-right: 0.85rem;
  max-width: none;
}
.md-typeset details.answer > *:not(summary):first-of-type,
.md-typeset details.key > *:not(summary):first-of-type {
  margin-top: 0.7rem;
}
.md-typeset details.answer > *:not(summary):last-child,
.md-typeset details.key > *:not(summary):last-child {
  margin-bottom: 0.7rem;
}

/* Verdictul „Răspuns: a) …” */
.md-typeset details.answer > p:first-of-type > strong:first-child {
  display: inline-block;
  color: var(--tac-ok);
  font-size: 0.88rem;
}

/* ── 5. Fișele de examen (.qcard) ───────────────────────────────────── */

.md-typeset .qcard {
  max-width: none;
  margin: 0 0 0.7rem;
  padding: 0.85rem 1rem 0.55rem;
  border: 1px solid var(--tac-rule);
  border-left: 3px solid var(--tac-rule);
  border-radius: 0.2rem;
  background: var(--md-default-bg-color);
  transition: border-color 120ms;
}

.md-typeset .qcard:hover {
  border-left-color: var(--tac-accent);
}

.md-typeset .qcard > .qhead {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.35rem;
  max-width: none;
}

.qcard .qn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.28rem;
  border-radius: 0.15rem;
  background: var(--tac-accent);
  color: #fff;
  font-family: var(--md-code-font-family, monospace);
  font-size: 0.66rem;
  font-weight: 700;
}

[data-md-color-scheme="slate"] .qcard .qn {
  color: #0c1119;
}

.qcard .chg {
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.08rem 0.4rem;
  border-radius: 0.6rem;
  color: var(--tac-warn);
  border: 1px solid currentcolor;
}

.md-typeset .qcard > p,
.md-typeset .qcard > ul {
  max-width: none;
}

.md-typeset .qcard > ul {
  margin: 0.4rem 0 0.5rem;
  padding-left: 1rem;
}

.md-typeset .qcard pre {
  margin: 0.5rem 0;
}

/* ── 6. Marcaje ✓ / ✗ ───────────────────────────────────────────────── */

.md-typeset .ok,
.md-typeset .no {
  font-weight: 700;
}
.md-typeset .ok { color: var(--tac-ok); }
.md-typeset .no { color: var(--tac-no); }

/* ── 7. Casete (admonitions) — fiecare tip cu tenta lui ─────────────── */

.md-typeset .admonition {
  --tint: var(--tac-note);
  max-width: none;
  font-size: 0.79rem;
  margin: 0.9rem 0;
  padding: 0.1rem 0.8rem;
  border: 1px solid var(--tac-rule-soft);
  border-left: 4px solid var(--tint);
  border-radius: 0.2rem;
  box-shadow: none;
  background: var(--tac-surface);
  background: color-mix(in srgb, var(--tint) 6%, var(--md-default-bg-color));
}

.md-typeset .admonition.tip,
.md-typeset .admonition.hint,
.md-typeset .admonition.important { --tint: var(--tac-tip); }
.md-typeset .admonition.warning,
.md-typeset .admonition.caution,
.md-typeset .admonition.attention { --tint: var(--tac-warn); }
.md-typeset .admonition.abstract,
.md-typeset .admonition.summary { --tint: var(--tac-abstract); }
.md-typeset .admonition.note { --tint: var(--tac-note); }
.md-typeset .admonition.info,
.md-typeset .admonition.todo { --tint: var(--tac-info); }
.md-typeset .admonition.success,
.md-typeset .admonition.check { --tint: var(--tac-ok); }
.md-typeset .admonition.failure,
.md-typeset .admonition.danger { --tint: var(--tac-no); }

.md-typeset .admonition > .admonition-title {
  font-family: var(--tac-serif);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--tint);
  background: transparent !important;
  margin: 0.5rem 0 0.3rem;
  padding: 0 0 0 1.4rem;
  border: 0;
}

.md-typeset .admonition > .admonition-title::before {
  background-color: var(--tint);
  top: 0.12rem;
  left: 0;
  width: 1rem;
  height: 1rem;
}

.md-typeset .admonition > :last-child {
  margin-bottom: 0.55rem;
}

/* Casetă fără titlu — pornește direct cu textul */
.md-typeset .admonition > p:first-child {
  margin-top: 0.55rem;
}

/* ── 8. Tabele ──────────────────────────────────────────────────────── */

.md-typeset__table {
  overflow-x: auto;
  margin: 0.9rem 0 1.2rem;
}

.md-typeset table:not([class]) {
  display: table;
  width: 100%;
  font-size: 0.75rem;
  border: 1px solid var(--tac-rule);
  border-radius: 0;
  box-shadow: none;
}

.md-typeset table:not([class]) th {
  white-space: nowrap;
  font-family: var(--tac-serif);
  font-weight: 700;
  font-size: 0.76rem;
  background: var(--tac-accent-soft);
  color: var(--tac-accent);
  border-bottom: 2px solid var(--tac-accent);
  padding: 0.42rem 0.62rem;
}

.md-typeset table:not([class]) td {
  padding: 0.38rem 0.62rem;
  border-top: 1px solid var(--tac-rule-soft);
}

.md-typeset table:not([class]) tbody tr:nth-child(even) {
  background: var(--tac-surface);
}

.md-typeset table:not([class]) tbody tr:hover {
  background: var(--tac-accent-soft);
}

/* ── 9. Cod și diagrame ─────────────────────────────────────────────── */

.md-typeset code {
  font-size: 0.84em;
  padding: 0.1em 0.34em;
  border-radius: 0.15rem;
  background: var(--tac-code-bg);
  color: var(--tac-ink);
}

.md-typeset a code {
  color: inherit;
}

.md-typeset pre > code {
  font-size: 0.7rem;
  line-height: 1.5;
  color: inherit;
}

.md-typeset pre code,
.md-typeset .highlight code {
  background: none;
}

.md-typeset .highlight {
  border: 1px solid var(--tac-rule);
  border-radius: 0.2rem;
}

.md-typeset .mermaid {
  text-align: center;
  margin: 1.1rem 0;
  padding: 0.9rem;
  border: 1px solid var(--tac-rule);
  border-radius: 0.2rem;
  background: var(--tac-surface);
}

.md-typeset blockquote {
  border-left: 3px solid var(--tac-rule);
  color: var(--tac-muted);
}

/* ── 10. Navigație ──────────────────────────────────────────────────── */

.md-header__title,
.md-nav__title {
  font-family: var(--tac-serif);
  font-weight: 700;
}

.md-nav {
  font-size: 0.7rem;
}

.md-nav__link--active,
.md-nav__link:focus,
.md-nav__link:hover {
  color: var(--tac-accent);
}

/* Cuprinsul din dreapta: dens și discret */
.md-sidebar--secondary .md-nav {
  font-size: 0.63rem;
  line-height: 1.35;
}

.md-sidebar--secondary .md-nav__item {
  padding-top: 0.1rem;
}

.md-sidebar--secondary .md-nav__title {
  font-size: 0.63rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--tac-muted);
}

.md-sidebar--secondary .md-nav__link--active {
  font-weight: 700;
  border-left: 2px solid var(--tac-accent);
  margin-left: -0.4rem;
  padding-left: 0.4rem;
}

/* ── 11. Ecrane mici ────────────────────────────────────────────────── */

@media screen and (max-width: 44.9375em) {
  .md-typeset { font-size: 0.8rem; }
  .md-typeset h1 { font-size: 1.55rem; }
  .md-typeset h2 { font-size: 1.22rem; }
  .md-typeset h3 { font-size: 1.02rem; }
  .md-typeset table:not([class]) { font-size: 0.7rem; }
  .md-typeset pre > code { font-size: 0.64rem; }
  .md-typeset .qcard { padding: 0.7rem 0.7rem 0.4rem; }
}

/* ── 12. Tipar ──────────────────────────────────────────────────────── */

@media print {
  .md-typeset details.answer,
  .md-typeset details.key,
  .md-typeset .qcard { break-inside: avoid; }
}
