/* Computo — foglio di stile (sopra Bootstrap 5.3) */
:root { --blu: #1f4e79; --blu-chiaro: #e8f0f8; --grigio: #6b7280; --bordo: #d8dee6; --ambra: #b45309; }
body { background: #f4f6f9; color: #1f2937; font-size: .95rem; }
.fascia-istanza { background: var(--ambra); color: #fff; text-align: center; font-size: .8rem; padding: .15rem; }
.barra { background: var(--blu); padding: .35rem .75rem; }
.barra .navbar-brand, .barra .nav-link, .barra .btn-link { color: #fff; }
.barra .nav-link { opacity: .85; padding: .35rem .7rem; border-radius: .3rem; text-decoration: none; }
.barra .nav-link:hover, .barra .nav-link.attiva { opacity: 1; background: rgba(255,255,255,.14); color: #fff; }
.barra .marchio { font-weight: 700; letter-spacing: .02em; }
.barra .nome-azienda { font-weight: 400; opacity: .8; margin-left: .6rem; font-size: .9rem; }
.barra .logo-barra { height: 26px; width: auto; margin-right: .5rem; background: #fff; border-radius: 3px; padding: 1px; }
.barra .navbar-toggler { color: #fff; border: 1px solid rgba(255,255,255,.4); padding: .1rem .5rem; }
.contenuto { padding: 1rem 1.25rem 3rem; max-width: 1500px; }
.piede { color: var(--grigio); font-size: .75rem; text-align: center; padding: 1rem; }
.scheda { background: #fff; border: 1px solid var(--bordo); border-radius: .5rem; padding: 1.25rem; margin: 0 auto 1rem; }
.scheda.stretta { max-width: 430px; margin-top: 2rem; }
.scheda.media { max-width: 760px; }
.nota { color: var(--grigio); font-size: .85rem; }
h1.h4 { color: var(--blu); }
.intestazione { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-bottom: 1rem; }
.intestazione h1 { margin: 0; font-size: 1.35rem; color: var(--blu); }
.intestazione .azioni { margin-left: auto; display: flex; gap: .5rem; flex-wrap: wrap; }
.tabella { background: #fff; border: 1px solid var(--bordo); border-radius: .5rem; overflow: hidden; }
.tabella table { margin: 0; }
.tabella th { background: var(--blu-chiaro); font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: #374151; white-space: nowrap; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.schede-computo { border-bottom: 1px solid var(--bordo); margin-bottom: 1rem; display: flex; flex-wrap: wrap; gap: .25rem; }
.schede-computo a { padding: .45rem .9rem; text-decoration: none; color: #374151; border: 1px solid transparent; border-bottom: none; border-radius: .4rem .4rem 0 0; }
.schede-computo a.attiva { background: #fff; border-color: var(--bordo); color: var(--blu); font-weight: 600; margin-bottom: -1px; }
.totali { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.totali .cifra { background: #fff; border: 1px solid var(--bordo); border-radius: .5rem; padding: .5rem .9rem; min-width: 170px; }
.totali .cifra small { display: block; color: var(--grigio); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.totali .cifra strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.capitolo { margin: 1rem 0 .4rem; padding: .4rem .7rem; background: var(--blu-chiaro); border-left: 4px solid var(--blu); border-radius: .25rem; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.capitolo.livello-2 { margin-left: 1rem; border-left-color: #5b8bbd; }
.capitolo.livello-3 { margin-left: 2rem; border-left-color: #9db8d6; background: #f3f7fb; }
.capitolo .titolo { font-weight: 600; }
.capitolo .importo { margin-left: auto; font-variant-numeric: tabular-nums; font-weight: 600; }
.voce { background: #fff; border: 1px solid var(--bordo); border-radius: .4rem; margin: .4rem 0; }
.voce > summary { list-style: none; cursor: pointer; padding: .5rem .7rem; display: grid; grid-template-columns: 3rem 9rem 1fr 4rem 7rem 7rem 8rem; gap: .5rem; align-items: baseline; }
.voce > summary::-webkit-details-marker { display: none; }
.voce > summary .cod { font-family: ui-monospace, monospace; font-size: .8rem; color: var(--blu); overflow-wrap: anywhere; }
.voce > summary .des { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.voce[open] > summary .des { -webkit-line-clamp: unset; }
.voce > summary .n { color: var(--grigio); }
.voce .corpo { border-top: 1px solid var(--bordo); padding: .6rem .7rem; background: #fbfcfd; }
.voce .etichette { font-size: .72rem; }
.misure input { font-size: .85rem; padding: .15rem .35rem; }
.misure th { font-size: .72rem; font-weight: 600; color: var(--grigio); text-transform: uppercase; }
.misure td { padding: .1rem .15rem; vertical-align: middle; }
.misure .c-des { width: 40%; }
.misure .q { text-align: right; font-variant-numeric: tabular-nums; padding-right: .5rem; white-space: nowrap; }
.anomalia { background: #fff7ed; }
.anomalia-nota { color: var(--ambra); font-size: .78rem; }
.evidenzia mark, mark { background: #fde68a; padding: 0 .1rem; }
.albero a { text-decoration: none; }
.albero .attivo { font-weight: 700; }
.risultato { padding: .5rem .7rem; border-bottom: 1px solid var(--bordo); background: #fff; }
.risultato .cod { font-family: ui-monospace, monospace; font-size: .8rem; color: var(--blu); }
.risultato .prezzo { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.collegamento-invito { font-family: ui-monospace, monospace; font-size: .8rem; word-break: break-all; background: #f3f4f6; padding: .5rem; border-radius: .3rem; }
.manuale h2 { margin-top: 1.6rem; color: var(--blu); font-size: 1.25rem; }
.manuale h3 { margin-top: 1.1rem; font-size: 1.05rem; }
.manuale table { width: auto; margin-bottom: 1rem; }
.manuale td, .manuale th { border: 1px solid var(--bordo); padding: .3rem .6rem; }
.manuale code { color: #111827; background: #f3f4f6; padding: 0 .2rem; border-radius: .2rem; }
.chat { max-width: 820px; }
.chat .messaggio { padding: .5rem .8rem; border-radius: .6rem; margin: .4rem 0; white-space: pre-wrap; }
.chat .utente { background: var(--blu-chiaro); margin-left: 3rem; }
.chat .assistente { background: #fff; border: 1px solid var(--bordo); margin-right: 3rem; }
@media (max-width: 900px) {
  .voce > summary { grid-template-columns: 2.2rem 1fr 6rem; }
  .voce > summary .cod { grid-column: 2; }
  .voce > summary .des { grid-column: 1 / -1; }
  .voce > summary .um, .voce > summary .pu { display: none; }
  .contenuto { padding: .75rem .6rem 3rem; }
}
@media print { .barra, .piede, .azioni, .fascia-istanza { display: none; } }
