/* Tema Calicchia Design per MkDocs Material.
   Valori presi da apps/sito-v3/src/styles/tokens.css (commit e069927).
   Il tema scuro non esiste nel sito: è una traduzione dichiarata
   (fondo = inchiostro, testo = fondo chiaro, linee al 12% e 24%). */

:root {
  --cd-bg: #FAFAF7;
  --cd-bg-elev: #FFFFFF;
  --cd-line: #E6E4DC;
  --cd-line-strong: #C9C5B7;
  --cd-ink: #111111;
  --cd-ink-muted: #5C5C58;
  --cd-ink-subtle: #8C8C86;
  --cd-accent: #F57F44;
  --cd-font-display: 'Funnel Display', ui-sans-serif, system-ui, sans-serif;
  --cd-font-sans: 'Funnel Sans', ui-sans-serif, system-ui, sans-serif;
  --cd-font-mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --cd-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --cd-micro: 180ms;
}

[data-md-color-scheme="slate"] {
  --cd-bg: #111111;
  --cd-bg-elev: #1F1F1F;
  --cd-line: #2D2D2C;
  --cd-line-strong: #4A4A48;
  --cd-ink: #FAFAF7;
  --cd-ink-muted: #A8A8A6;
  --cd-ink-subtle: #7A7A78;
}

/* Collegamento ai token di Material */
[data-md-color-scheme="default"],
[data-md-color-scheme="slate"] {
  --md-default-bg-color: var(--cd-bg);
  --md-default-fg-color: var(--cd-ink);
  --md-default-fg-color--light: var(--cd-ink-muted);
  --md-default-fg-color--lighter: var(--cd-ink-subtle);
  --md-default-fg-color--lightest: var(--cd-line);
  --md-primary-fg-color: var(--cd-bg);
  --md-primary-bg-color: var(--cd-ink);
  --md-primary-bg-color--light: var(--cd-ink-muted);
  --md-accent-fg-color: var(--cd-accent);
  --md-typeset-color: var(--cd-ink);
  --md-typeset-a-color: var(--cd-ink);
  --md-code-bg-color: var(--cd-bg-elev);
  --md-code-fg-color: var(--cd-ink);
  --md-footer-bg-color: var(--cd-bg);
  --md-footer-bg-color--dark: var(--cd-bg);
  --md-footer-fg-color: var(--cd-ink);
  --md-footer-fg-color--light: var(--cd-ink-muted);
  --md-footer-fg-color--lighter: var(--cd-ink-subtle);
  --md-text-font: 'Funnel Sans';
  --md-code-font: ui-monospace;
  --md-shadow-z1: none;
  --md-shadow-z2: none;
  --md-shadow-z3: none;
}

body,
.md-typeset {
  font-family: var(--cd-font-sans);
}

.md-typeset {
  font-size: 0.8rem;
  line-height: 1.6;
}

/* Titoli: Funnel Display, allineati a sinistra, gerarchia netta */
.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-header__title {
  font-family: var(--cd-font-display);
  color: var(--cd-ink);
  letter-spacing: -0.01em;
}
.md-typeset h1 {
  font-weight: 600;
  font-size: clamp(1.75rem, 2.4vw + 0.6rem, 2.75rem);
  line-height: 1.05;
  margin-bottom: 1.2em;
}
.md-typeset h2 {
  font-weight: 600;
  font-size: 1.35rem;
  margin-top: 2.4em;
  padding-top: 1.2em;
  border-top: 1px solid var(--cd-line);
}
.md-typeset h3 {
  font-weight: 600;
  font-size: 1.05rem;
}

/* Testata e piè di pagina: fondo neutro con una linea sottile */
.md-header {
  background: var(--cd-bg);
  color: var(--cd-ink);
  border-bottom: 1px solid var(--cd-line);
  box-shadow: none;
}
.md-tabs {
  background: var(--cd-bg);
  color: var(--cd-ink);
  border-bottom: 1px solid var(--cd-line);
}
.md-footer,
.md-footer-meta {
  background: var(--cd-bg);
  border-top: 1px solid var(--cd-line);
}

/* Etichette in maiuscoletto spaziato (pattern MonoLabel / Eyebrow del sito) */
.md-tabs__link,
.md-nav__title,
.md-nav--primary .md-nav__item--section > .md-nav__link,
.md-typeset table:not([class]) th {
  font-family: var(--cd-font-mono);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--cd-ink-muted);
}
.md-tabs__link {
  opacity: 1;
}
.md-tabs__item--active .md-tabs__link {
  color: var(--cd-ink);
}

/* Navigazione */
.md-nav__link {
  color: var(--cd-ink-muted);
  transition: color var(--cd-micro) var(--cd-ease);
}
.md-nav__link:hover,
.md-nav__link:focus-visible {
  color: var(--cd-ink);
}
.md-nav__link--active,
.md-nav__item .md-nav__link--active {
  color: var(--cd-ink);
  font-weight: 600;
}

/* Collegamenti: inchiostro sottolineato, accento solo al passaggio */
.md-typeset a {
  color: var(--cd-ink);
  text-decoration: underline;
  text-decoration-color: var(--cd-line-strong);
  text-underline-offset: 0.2em;
  transition: text-decoration-color var(--cd-micro) var(--cd-ease);
}
.md-typeset a:hover,
.md-typeset a:focus-visible {
  color: var(--cd-ink);
  text-decoration-color: var(--cd-accent);
}
.md-typeset a.headerlink {
  text-decoration: none;
}
:focus-visible {
  outline: 2px solid var(--cd-ink);
  outline-offset: 3px;
}

/* Tabelle: linee sottili, niente schede né ombre */
.md-typeset table:not([class]) {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-size: 0.74rem;
  background: transparent;
  display: table;
  width: 100%;
}
.md-typeset table:not([class]) th {
  background: transparent;
  border-bottom: 1px solid var(--cd-ink);
  padding: 0.6em 0.9em 0.6em 0;
}
.md-typeset table:not([class]) td {
  border-top: 1px solid var(--cd-line);
  padding: 0.7em 0.9em 0.7em 0;
  vertical-align: top;
}
.md-typeset table:not([class]) tbody tr:hover {
  background: transparent;
  box-shadow: none;
}
.md-typeset__scrollwrap {
  margin: 1.2em 0;
}
.md-typeset__table {
  padding: 0;
  display: block;
}

/* Codice */
.md-typeset code,
.md-typeset pre > code {
  font-family: var(--cd-font-mono);
  border-radius: 0;
}
.md-typeset :not(pre) > code {
  background: transparent;
  border: 1px solid var(--cd-line);
  padding: 0.05em 0.35em;
  box-shadow: none;
}
.md-typeset pre > code {
  border: 1px solid var(--cd-line);
  background: var(--cd-bg-elev);
}

/* Note: metadato informativo, non allarme colorato */
.md-typeset .admonition,
.md-typeset details {
  border: 0;
  border-top: 1px solid var(--cd-ink) !important;
  border-bottom: 1px solid var(--cd-line) !important;
  border-radius: 0;
  box-shadow: none !important;
  background: transparent;
  font-size: 0.76rem;
  padding: 0;
}
.md-typeset .admonition-title,
.md-typeset summary {
  background: transparent !important;
  font-family: var(--cd-font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--cd-ink-muted);
  padding: 0.9em 0 0.2em 1.1em;
  margin: 0;
}
.md-typeset .admonition-title::before,
.md-typeset summary::before {
  /* punto d'accento al posto dell'icona */
  -webkit-mask-image: none;
  mask-image: none;
  background-color: var(--cd-accent) !important;
  width: 0.45em;
  height: 0.45em;
  border-radius: 50%;
  top: 1.25em;
  left: 0;
}
.md-typeset .admonition > :not(.admonition-title),
.md-typeset details > :not(summary) {
  margin-left: 0;
  margin-right: 0;
}

/* Diagrammi */
.md-typeset figure.diagramma {
  margin: 1.6em 0 2.4em;
  width: 100%;
  max-width: none;
}
.md-typeset figure.diagramma img {
  width: 100%;
  height: auto;
  border: 1px solid var(--cd-line);
  background: var(--cd-bg);
}
.md-typeset figure.diagramma figcaption {
  font-family: var(--cd-font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--cd-ink-muted);
  text-align: left;
  max-width: none;
  margin: 0.8em 0 0;
}

/* Ricerca e campi: angoli vivi */
.md-search__form,
.md-search__output,
.md-typeset .md-button,
.md-typeset kbd {
  border-radius: 0;
  box-shadow: none;
}
.md-search__form {
  background: transparent;
  border: 1px solid var(--cd-line);
}
.md-search__input {
  color: var(--cd-ink);
}
.md-search__input::placeholder,
.md-search__icon {
  color: var(--cd-ink-muted);
}

@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
  }
}

/* Mappa 3D incorporata */
.md-typeset iframe.mappa-3d {
  display: block;
  width: 100%;
  height: min(78vh, 760px);
  min-height: 460px;
  border: 1px solid var(--cd-line);
  background: var(--cd-bg);
}
