/* ============================================================================
   MANUALE — overrides che adattano il CSS dell'app a un documento di lettura.
   Il manuale carica gli stessi 6 file CSS dell'app (vars/layout/components/
   sections/themes/responsive) e poi questo override per:
     - larghezza contenuto stretta (50-72ch, ottima per leggibilità prosa)
     - formule in <pre.formula> con sfondo paper-2
     - esempi numerici in <table.example>
     - link interni del TOC più visibili
     - nascondere componenti dell'app che non servono (theme-switch, masthead state-toolbar)
   ============================================================================ */

/* Restringi il container principale per leggibilità tipografica */
.wrap{max-width:1080px;}

/* TOC del manuale: laterale su desktop, in cima su mobile */
.manual-layout{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:48px;
  align-items:start;
}
@media (max-width:900px){
  .manual-layout{grid-template-columns:1fr;}
}

.manual-toc{
  position:sticky;top:14px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;
  border:1px solid var(--rule);background:var(--paper-2);
  padding:14px 16px;
  max-height:calc(100vh - 40px);overflow-y:auto;
}
.manual-toc h3{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin:0 0 10px 0;font-weight:600;
}
.manual-toc ol{list-style:none;padding:0;margin:0;}
.manual-toc ol ol{padding-left:14px;margin-top:4px;}
.manual-toc li{padding:2px 0;line-height:1.4;}
.manual-toc a{
  color:var(--ink);text-decoration:none;
  border-bottom:1px solid transparent;transition:border-color .12s;
}
.manual-toc a:hover{border-bottom-color:var(--accent);}
.manual-toc a.active{color:var(--accent);font-weight:600;}
.manual-toc .toc-num{color:var(--muted);margin-right:6px;font-variant-numeric:tabular-nums;}

/* Manual content */
.manual-content{
  font-family:var(--font-serif);
  font-size:15.5px;line-height:1.65;color:var(--ink);
  overflow-wrap:break-word;
  word-break:break-word; /* fallback Safari < 15 */
}
.manual-content h2{
  font-family:var(--font-serif);font-weight:700;font-size:28px;
  border-bottom:2px solid var(--ink);padding-bottom:10px;margin:48px 0 18px;
}
.manual-content h2:first-of-type{margin-top:0;}
.manual-content h2 .ch-num{
  font-family:var(--font-mono);font-size:14px;letter-spacing:.18em;
  color:var(--accent);display:block;margin-bottom:2px;font-weight:400;
}
.manual-content h3{
  font-family:var(--font-serif);font-weight:600;font-size:20px;
  margin:32px 0 10px;color:var(--ink);
}
.manual-content h4{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin:22px 0 6px;font-weight:600;
}
.manual-content p{margin:0 0 14px;}
.manual-content ul, .manual-content ol{margin:0 0 16px;padding-left:24px;}
.manual-content li{margin-bottom:6px;}
.manual-content code{
  font-family:var(--font-mono);font-size:13px;
  background:var(--paper-2);padding:1px 5px;border:1px solid var(--rule);
}
.manual-content a{color:var(--accent);}

/* Formula blocks */
pre.formula{
  max-width: 100%;
  font-family:var(--font-mono);font-size:13px;line-height:1.6;
  background:var(--paper-2);
  border:1px solid var(--ink);border-left:3px solid var(--accent);
  padding:12px 16px;margin:14px 0;
  overflow-x:auto;white-space:pre;
  color:var(--ink);
}
pre.formula .formula-label{
  display:block;
  font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px;font-weight:600;
}

/* Example tables */
table.example{
  width:100%;border-collapse:collapse;margin:14px 0;
  font-family:var(--font-mono);font-size:12.5px;
}
table.example caption{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);text-align:left;padding:6px 0;font-weight:600;
}
table.example th, table.example td{
  border:1px solid var(--rule);padding:6px 10px;
  text-align:left;vertical-align:top;
}
table.example th{
  background:var(--paper-2);font-weight:600;
  font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
table.example td.num{text-align:right;font-variant-numeric:tabular-nums;}
table.example tr.highlight td{background:color-mix(in srgb, var(--accent) 8%, transparent);font-weight:600;}
table.example tfoot td{border-top:2px solid var(--ink);background:var(--paper-2);font-weight:600;}

/* Callout boxes (NOTA, ATTENZIONE, RIF) */
.callout{
  border:1px solid var(--ink);padding:12px 14px;margin:14px 0;
  background:var(--paper-2);
  font-size:14px;
}
.callout .callout-label{
  display:inline-block;font-family:var(--font-mono);font-size:9.5px;
  letter-spacing:.18em;text-transform:uppercase;font-weight:700;
  margin-right:8px;
}
.callout.note     .callout-label{color:var(--accent);}
.callout.warn     .callout-label{color:#9b2c1f;}
.callout.code-ref .callout-label{color:var(--muted);}
.callout p:last-child{margin-bottom:0;}

/* Code reference: link al codice sorgente */
.code-ref code{
  font-size:11.5px;background:transparent;border:none;padding:0;color:var(--muted);
}

/* Manual masthead specific overrides */
.manual-masthead{
  border-top:6px double var(--ink);
  border-bottom:1px solid var(--ink);
  padding:28px 0 18px;margin-bottom:28px;
  text-align:center;
}
.manual-masthead .m-title{
  font-family:var(--font-serif);font-weight:700;font-size:38px;
  letter-spacing:-.01em;margin:0;
}
.manual-masthead .m-subtitle{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);margin-top:6px;
}
.manual-masthead .m-back{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);text-decoration:none;
  border:1px solid var(--rule);padding:6px 12px;
  margin-top:14px;display:inline-block;
}
.manual-masthead .m-back:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}

/* Print: clean layout */
@media print{
  .manual-toc, .manual-masthead .m-back, .theme-switch{display:none !important;}
  .manual-layout{grid-template-columns:1fr;gap:0;}
  .manual-content{font-size:11pt;}
  .manual-content h2{page-break-before:always;}
  .manual-content h2:first-of-type{page-break-before:auto;}
  pre.formula{page-break-inside:avoid;}
  table.example{page-break-inside:avoid;}
}

/* Glossary: definition list with clear visual separation between terms */
.glossary{
  display:grid;grid-template-columns:max-content 1fr;column-gap:24px;row-gap:14px;
  margin:18px 0 24px;
}
.glossary dt{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;
  font-weight:600;color:var(--accent);text-transform:none;
  padding-top:2px;border-top:1px solid var(--rule);padding-right:8px;
  align-self:start;
}
.glossary dd{
  margin:0;border-top:1px solid var(--rule);padding-top:6px;
  font-size:13.5px;line-height:1.55;color:var(--ink);
}
.glossary dd em{color:var(--muted);font-style:italic;font-size:12.5px;}
@media (max-width:900px){
  .glossary{grid-template-columns:1fr;row-gap:8px;}
  .glossary dt{border-top:1px solid var(--rule);padding-top:8px;}
  .glossary dd{border-top:none;padding-top:2px;padding-bottom:8px;}
}

/* ============================================================
   MOBILE RESPONSIVE (≤ 680px)
   ============================================================ */
@media (max-width: 680px){

  /* Masthead */
  .manual-masthead{padding:18px 0 14px;}
  .manual-masthead .m-title{font-size:26px;letter-spacing:-.02em;}
  .manual-masthead .m-subtitle{font-size:10px;}

  /* Prosa: font leggermente ridotto, line-height più generosa */
  .manual-content{font-size:15px;line-height:1.72;}

  /* Headings più compatti */
  .manual-content h2{font-size:21px;margin:36px 0 14px;padding-bottom:8px;}
  .manual-content h3{font-size:17px;margin:26px 0 8px;}
  .manual-content h4{font-size:10px;}

  /* code inline: font leggermente più grande, padding aumentato per touch */
  .manual-content code{font-size:12.5px;padding:2px 6px;}

  /* Formula pre: wrapping su mobile invece di scroll orizzontale.
     white-space:pre-wrap mantiene l'indentazione ma va a capo invece di scrollare.
     font-size ridotto per stare nella colonna. */
  pre.formula{
    font-size:11.5px;
    line-height:1.55;
    white-space:pre-wrap;
    word-break:break-word;
    padding:10px 12px;
    /* Riduce il rientro visivo del bordo sinistro per guadagnare spazio */
    border-left-width:2px;
  }
  pre.formula .formula-label{font-size:9px;}

  /* Tabelle: layout card su mobile.
     Ogni <td> diventa un blocco fullwidth con la label della colonna in cima.
     Il <thead> viene nascosto perché le label vivono nei data-label. */
  table.example{font-size:12px;}
  table.example thead{display:none;}
  table.example tr{
    display:block;
    border:1px solid var(--rule);
    margin-bottom:10px;
    background:var(--paper);
  }
  table.example td{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:8px;
    border:none;
    border-bottom:1px solid var(--rule);
    padding:6px 10px;
    font-size:11.5px;
  }
  table.example td:last-child{border-bottom:none;}
  table.example td::before{
    content:attr(data-label);
    font-size:9px;letter-spacing:.12em;text-transform:uppercase;
    color:var(--muted);font-weight:600;font-family:var(--font-mono);
    white-space:nowrap;flex-shrink:0;
    max-width:45%;overflow:hidden;text-overflow:ellipsis;
  }
  table.example td.num{text-align:right;}
  table.example tfoot tr{background:var(--paper-2);}
  table.example tfoot td{border-top:2px solid var(--ink);font-weight:600;}

  /* Callout: padding ridotto */
  .callout{padding:10px 12px;font-size:13.5px;}

  /* TOC mobile: accordion in cima, max-height limitata, scroll interno */
  .manual-toc{
    position:static;
    max-height:220px;
    font-size:11px;
    padding:10px 12px;
  }
}

/* ============================================================
   VERY NARROW (≤ 380px — iPhone SE, small Android)
   ============================================================ */
@media (max-width: 380px){
  .manual-masthead .m-title{font-size:22px;}
  .manual-content{font-size:14.5px;}
  .manual-content h2{font-size:19px;}
  .manual-content h3{font-size:16px;}
  pre.formula{font-size:10.5px;}
}
