:root{
  --verde:#1a3a2a; --verde2:#2a5a40; --crema:#f7f5ee; --carta:#fff; --linea:#d8d2bd; --testo:#1a3a2a;
  --muto:#6b705f; --oro:#b8860b; --blu:#2f6f9f; --rosso:#a33; --ok:#2e7d4f; --evid:#e6efe0;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--crema);color:var(--testo);font-size:15px;line-height:1.4}
header.top{background:var(--verde);color:var(--crema);display:flex;align-items:center;gap:1rem;padding:.7rem 1.25rem;flex-wrap:wrap}
header.top h1{font-size:1.15rem;margin:0;font-weight:650;letter-spacing:.2px}
header.top .sp{flex:1}
header.top a,header.top .utente{color:var(--crema);font-size:.85rem;opacity:.85;text-decoration:none}
header.top a:hover{opacity:1;text-decoration:underline}
.logo{width:32px;height:32px;border-radius:7px;background:var(--crema);color:var(--verde);display:grid;place-items:center;font-weight:700}
nav.tabs{display:flex;gap:.25rem;padding:.6rem 1.25rem 0;max-width:1200px;margin:0 auto}
nav.tabs button{border:1px solid var(--linea);border-bottom:none;background:#ece8d8;color:var(--testo);padding:.5rem 1rem;border-radius:8px 8px 0 0;cursor:pointer;font:inherit}
nav.tabs button.on{background:var(--carta);font-weight:600}
main{max-width:1200px;margin:0 auto;padding:0 1.25rem 3rem}
.pannello{background:var(--carta);border:1px solid var(--linea);border-radius:0 10px 10px 10px;padding:1.1rem 1.25rem}
h2{font-size:1.02rem;margin:1.1rem 0 .6rem;padding-bottom:.3rem;border-bottom:2px solid var(--verde)}
h2:first-child{margin-top:0}
h3{font-size:.95rem;margin:.2rem 0 .5rem}
.griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem .8rem}
.campo{display:flex;flex-direction:column;gap:.2rem;font-size:.82rem}
.campo>span.l{color:var(--muto)}
.campo .in{display:flex;align-items:center;gap:.3rem}
.campo input[type=text],.campo input[type=number],.campo select{width:100%;padding:.42rem .5rem;border:1px solid var(--linea);border-radius:6px;font:inherit;background:#fff;color:var(--testo)}
.campo input:focus,.campo select:focus{outline:2px solid var(--verde2);outline-offset:0}
.campo .u{color:var(--muto);font-size:.78rem;min-width:1.6rem}
.campo.chk{flex-direction:row;align-items:center;gap:.45rem;font-size:.85rem}
.campo.chk input{width:auto}
.campo .h{font-size:.72rem;color:var(--muto)}
.schede{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.9rem}
.scheda{border:1px solid var(--linea);border-radius:10px;padding:.8rem .9rem;background:#fcfbf6}
.scheda.off .griglia,.scheda.off .servizi{opacity:.35;pointer-events:none}
.scheda header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.scheda header h3{margin:0}
.servizi{display:flex;flex-wrap:wrap;gap:.2rem .9rem;margin-top:.6rem;font-size:.82rem}
.servizi label{display:flex;align-items:center;gap:.3rem}
.azioni{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0 .2rem}
button.b{background:var(--verde);color:var(--crema);border:none;padding:.55rem 1.1rem;border-radius:7px;cursor:pointer;font:inherit;font-weight:600}
button.b:hover{background:var(--verde2)}
button.b.sec{background:#fff;color:var(--verde);border:1px solid var(--verde)}
button.b.pic{padding:.25rem .6rem;font-size:.8rem}
button.b.rosso{background:#fff;color:var(--rosso);border:1px solid var(--rosso)}
button.b:disabled{opacity:.5;cursor:default}
.msg{font-size:.85rem;margin:.4rem 0}
.msg.ko{color:var(--rosso)} .msg.ok{color:var(--ok)}
.linkbox{display:flex;gap:.5rem;align-items:center;margin-top:.5rem}
.linkbox input{flex:1;padding:.4rem .5rem;border:1px solid var(--linea);border-radius:6px;font:inherit;font-size:.82rem}
.risultati{margin-top:1.3rem}
.sintesi{background:var(--evid);border-left:4px solid var(--verde);border-radius:6px;padding:.7rem .9rem;margin-bottom:1rem}
.sintesi p{margin:.25rem 0}
.sintesi .tit{font-weight:700;margin-bottom:.2rem}
.avvisi{background:#fdf6e3;border:1px solid #e5d49b;border-radius:6px;padding:.5rem .9rem;margin:.6rem 0;font-size:.83rem}
.avvisi ul{margin:.2rem 0;padding-left:1.1rem}
.duepanel{display:grid;grid-template-columns:1fr;gap:1rem}
.box{border:1px solid var(--linea);border-radius:10px;padding:.8rem .9rem;overflow-x:auto}
.box h3{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.3rem}
.box h3 small{font-weight:400;color:var(--muto);font-size:.75rem}
table.t{border-collapse:collapse;width:100%;font-size:.85rem}
table.t th,table.t td{padding:.35rem .5rem;border-bottom:1px solid #ece8d8;text-align:right;white-space:nowrap}
table.t th:first-child,table.t td:first-child{text-align:left;white-space:normal}
table.t thead th{border-bottom:2px solid var(--verde);font-size:.8rem}
table.t td.best{background:var(--evid);font-weight:700}
table.t tr.chiave td{font-weight:600}
.badge{display:inline-block;background:var(--verde);color:var(--crema);border-radius:10px;font-size:.68rem;padding:0 .45rem;margin-left:.3rem;vertical-align:middle}
.grafico{margin-top:1rem}
.grafico .sw{display:flex;gap:1rem;flex-wrap:wrap;font-size:.82rem;margin:.3rem 0}
.grafico .sw i{display:inline-block;width:20px;height:0;border-top:3px solid;margin-right:.3rem;vertical-align:middle}
.grafico svg{width:100%;height:auto;max-height:380px;display:block}
.modo{display:flex;gap:.9rem;font-size:.85rem;margin-bottom:.3rem}
.nota{font-size:.75rem;color:var(--muto);margin-top:.5rem}
.archivio .cerca{display:flex;gap:.5rem;margin-bottom:.8rem}
.archivio .cerca input{flex:1;padding:.45rem .6rem;border:1px solid var(--linea);border-radius:6px;font:inherit}
table.arch{width:100%;border-collapse:collapse;font-size:.88rem}
table.arch th,table.arch td{padding:.45rem .5rem;border-bottom:1px solid #ece8d8;text-align:left}
table.arch td.az{text-align:right;white-space:nowrap}
.vuoto{color:var(--muto);padding:1rem 0}
.nascosto{display:none!important}
@media(max-width:640px){
  main{padding:0 .6rem 2rem} .pannello{padding:.8rem .75rem}
  .duepanel{grid-template-columns:1fr} .schede{grid-template-columns:1fr}
  nav.tabs{padding:.5rem .6rem 0}
}
.relazione{background:#fff;color:var(--testo)}
.relazione-stampa{display:none}
.rel-head{display:flex;justify-content:space-between;gap:1rem;border-bottom:3px solid var(--verde);padding-bottom:.6rem;margin-bottom:.8rem}
.rel-nome{font-size:1.25rem;font-weight:700}
.rel-sub{font-size:.82rem;color:var(--muto)}
.rel-dx{font-size:.78rem;text-align:right;color:var(--muto);line-height:1.5}
.rel-titolo{font-size:1.3rem;margin:.4rem 0}
.rel-meta{display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.9rem;margin-bottom:.4rem}
.rel-due{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.8rem}
.rel-tre{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem}
.rel-note{font-size:.72rem;color:var(--muto);border-top:1px solid var(--linea);margin-top:1.2rem;padding-top:.5rem}
table.t.kv td{white-space:normal;border-bottom:1px solid #ece8d8;font-size:.82rem}
table.t.kv td:last-child{text-align:right;font-weight:600;white-space:normal}
.pagina-cliente{max-width:980px;margin:1.2rem auto;padding:1.2rem 1.4rem;border:1px solid var(--linea);border-radius:10px}
@page{size:A4;margin:12mm}
@media print{
  body{background:#fff;font-size:12px}
  body>*:not(.relazione-stampa):not(.pagina-cliente){display:none!important}
  .relazione-stampa{display:block!important}
  .pagina-cliente{border:none;margin:0;padding:0;max-width:none}
  .noprint,.modo{display:none!important}
  .pannello,.box{border-color:#ccc}
  .box,.sintesi,.avvisi,.rel-head,table.t tr,.grafico{break-inside:avoid}
  h2{break-after:avoid}
  .grafico svg{max-height:200px}
  table.t.kv td{font-size:11px;padding:.12rem .35rem}
  .box{padding:.5rem .65rem}
  table.t th,table.t td{padding:.22rem .4rem}
  h2{margin:.7rem 0 .4rem}
  .rel-due,.rel-tre{gap:.5rem}
}
