:root{
    --paper:#F6F4EE;
    --paper-dark:#EDEAE0;
    --ink:#211F1C;
    --ink-soft:#5A564E;
    --garnet:#7E1E2C;
    --garnet-dark:#5C1420;
    --gold:#A9832E;
    --green:#3E6B4E;
    --green-bg:#E8EFE7;
    --amber:#A8721F;
    --amber-bg:#F5EBD8;
    --red-bg:#F3E2E1;
    --rule: rgba(33,31,28,0.18);
    --serif: "Source Serif 4", "Iowan Old Style", Georgia, "Times New Roman", serif;
    --mono: "Courier New", ui-monospace, monospace;
    --sans: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{background:var(--garnet); color:#fff;}

  /* ---------- Letterhead / masthead ---------- */
  .masthead{
    border-bottom:3px solid var(--ink);
    padding:18px 32px 14px;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:10px;
  }
  .masthead-left{display:flex; align-items:center; gap:14px;}
  .seal{
    width:46px; height:46px; border-radius:50%;
    border:2px solid var(--garnet);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-weight:700; font-size:15px; color:var(--garnet);
    flex:none;
  }
  .masthead-title{font-family:var(--serif); font-size:15px; letter-spacing:.03em; color:var(--ink-soft); text-transform:uppercase;}
  .masthead-title strong{display:block; font-size:21px; color:var(--ink); letter-spacing:0; text-transform:none; font-weight:600;}
  .masthead-right{
    font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); text-align:right;
    line-height:1.7;
  }
  .masthead-right .proto{color:var(--garnet); font-weight:700;}

  /* ---------- Tab navigation styled as fascicolo dividers ---------- */
  .tabs{
    display:flex; gap:2px; padding:0 32px; background:var(--paper-dark);
    border-bottom:1px solid var(--rule); overflow-x:auto;
  }
  .tab{
    font-family:var(--serif); font-size:13.5px; padding:11px 20px;
    color:var(--ink-soft); cursor:pointer; border:none; background:transparent;
    border-bottom:3px solid transparent; white-space:nowrap;
  }
  .tab.active{color:var(--garnet); border-bottom-color:var(--garnet); font-weight:600; background:var(--paper);}
  .tab:hover:not(.active){color:var(--ink);}

  main{max-width:980px; margin:0 auto; padding:40px 32px 90px;}
  .view{display:none;}
  .view.active{display:block; animation:fade .35s ease;}
  @keyframes fade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

  /* ---------- Article numbering (regolamento style) ---------- */
  .art-label{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; color:var(--garnet);
    text-transform:uppercase; margin-bottom:6px; display:block;
  }
  h1.doc-title{
    font-family:var(--serif); font-size:34px; font-weight:600; margin:0 0 6px; line-height:1.15;
  }
  .doc-sub{color:var(--ink-soft); font-size:15px; max-width:60ch; margin:0 0 30px;}

  section.article{
    border-top:1px solid var(--rule); padding:28px 0;
  }
  section.article:first-of-type{border-top:none; padding-top:0;}
  h2.art-title{font-family:var(--serif); font-size:21px; font-weight:600; margin:0 0 14px;}

  /* ---------- Home / hero ---------- */
  .circular-box{
    border:1px solid var(--rule); background:var(--paper-dark);
    padding:22px 24px; margin-bottom:30px; position:relative;
  }
  .circular-box::before{
    content:"MODELLO A"; position:absolute; top:-9px; left:20px; background:var(--paper);
    padding:0 8px; font-family:var(--mono); font-size:10px; letter-spacing:.08em; color:var(--ink-soft);
  }
  .circular-box p{margin:0 0 10px; font-size:14.5px;}
  .circular-box p:last-child{margin-bottom:0;}

  .cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px;}
  .btn{
    font-family:var(--sans); font-size:14px; font-weight:600; padding:11px 22px;
    border-radius:2px; border:1.5px solid var(--ink); background:transparent; color:var(--ink);
    cursor:pointer; transition:.15s;
  }
  .btn.primary{background:var(--garnet); border-color:var(--garnet); color:#fff;}
  .btn.primary:hover{background:var(--garnet-dark);}
  .btn:not(.primary):hover{background:var(--ink); color:var(--paper);}

  /* ---------- Metrics quadro ---------- */
  .quadro{
    width:100%; border-collapse:collapse; margin:6px 0 8px; font-size:14px;
  }
  .quadro th{
    text-align:left; font-family:var(--mono); font-size:10.5px; letter-spacing:.07em;
    text-transform:uppercase; color:var(--ink-soft); font-weight:400;
    border-bottom:1.5px solid var(--ink); padding:0 12px 8px 0;
  }
  .quadro td{padding:12px 12px 12px 0; border-bottom:1px solid var(--rule); vertical-align:top;}
  .quadro tr:last-child td{border-bottom:1.5px solid var(--ink); font-weight:700;}
  .num{font-family:var(--mono); font-size:16px;}
  .num.big{font-size:22px;}

  .metric-strip{display:flex; gap:0; border:1px solid var(--rule); margin-bottom:26px; flex-wrap:wrap;}
  .metric{flex:1; min-width:150px; padding:16px 18px; border-right:1px solid var(--rule);}
  .metric:last-child{border-right:none;}
  .metric .label{font-family:var(--mono); font-size:10px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:6px;}
  .metric .value{font-family:var(--serif); font-size:30px; font-weight:600;}
  .metric.garnet .value{color:var(--garnet);}
  .metric.green .value{color:var(--green);}

  .progress-track{height:8px; background:var(--paper-dark); border:1px solid var(--rule); margin-top:4px;}
  .progress-fill{height:100%; background:var(--garnet);}

  /* ---------- Simulator form ---------- */
  .sim-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; margin-bottom:16px;}
  @media (max-width:640px){.sim-grid{grid-template-columns:1fr;}}
  .field{display:flex; flex-direction:column; gap:5px;}
  .field label{font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft);}
  .field input, .field select, .field textarea{
    font-family:var(--sans); font-size:14px; padding:9px 10px; border:1px solid var(--ink-soft);
    background:var(--paper); color:var(--ink); border-radius:0;
  }
  .field textarea{resize:vertical; min-height:56px; font-family:var(--sans);}
  .field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--garnet); outline-offset:1px;}
  .file-drop{
    border:1.5px dashed var(--ink-soft); padding:14px; text-align:center; font-size:13px; color:var(--ink-soft);
    cursor:pointer; margin-top:6px;
  }
  .file-drop.attached{border-style:solid; border-color:var(--green); color:var(--green); background:var(--green-bg);}

  /* ---------- Ledger table (valutazioni) ---------- */
  table.ledger{width:100%; border-collapse:collapse; font-size:13.5px; margin-top:6px;}
  table.ledger th{
    text-align:left; font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--ink-soft); font-weight:400; padding:8px 10px; border-bottom:1.5px solid var(--ink);
  }
  table.ledger td{padding:11px 10px; border-bottom:1px solid var(--rule); vertical-align:top;}
  table.ledger tr:hover td{background:rgba(0,0,0,0.015);}
  .chip{
    display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.03em;
    padding:3px 9px; border:1px solid; text-transform:uppercase;
  }
  .chip.verde{background:var(--green-bg); color:var(--green); border-color:var(--green);}
  .chip.giallo{background:var(--amber-bg); color:var(--amber); border-color:var(--amber);}
  .chip.rosso{background:var(--red-bg); color:var(--garnet); border-color:var(--garnet);}
  .empty-row td{color:var(--ink-soft); font-style:italic; text-align:center; padding:26px 10px;}

  /* ---------- Import status banner (libretto auto-import) ---------- */
  .import-status{
    display:none; font-size:13px; padding:10px 14px; margin-top:14px; border-left:3px solid var(--ink-soft);
    background:var(--paper-dark);
  }
  .import-status.show{display:block;}
  .import-status.ok{border-color:var(--green); color:var(--green); background:var(--green-bg);}
  .import-status.warn{border-color:var(--amber); color:var(--amber); background:var(--amber-bg);}
  .import-status.error{border-color:var(--garnet); color:var(--garnet); background:var(--red-bg);}
  #previewBody input{
    font-family:var(--sans); font-size:13px; padding:5px 7px; border:1px solid var(--ink-soft);
    background:var(--paper); color:var(--ink); width:100%;
  }
  .motiv{color:var(--ink-soft); font-size:12.5px; margin-top:3px; display:block;}

  /* ---------- Report / stamp ---------- */
  .report-sheet{
    background:var(--paper); border:1px solid var(--ink); padding:36px 36px 30px; position:relative;
    max-width:720px; margin:0 auto;
  }
  .report-sheet::before{
    content:""; position:absolute; top:6px; left:6px; right:6px; bottom:6px;
    border:1px solid var(--rule); pointer-events:none;
  }
  .report-head{text-align:center; border-bottom:2px solid var(--ink); padding-bottom:16px; margin-bottom:20px;}
  .report-head .k{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--ink-soft); text-transform:uppercase;}
  .report-head h3{font-family:var(--serif); font-size:22px; margin:6px 0 0;}
  .report-fields{display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; font-size:13.5px; margin-bottom:22px;}
  .report-fields div span{display:block; font-family:var(--mono); font-size:10px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em;}
  .stamp{
    position:absolute; right:34px; bottom:88px; width:118px; height:118px; border-radius:50%;
    border:2.5px solid var(--garnet); display:flex; align-items:center; justify-content:center;
    text-align:center; transform:rotate(-11deg); color:var(--garnet); font-family:var(--serif);
    font-size:10.5px; letter-spacing:.04em; line-height:1.35; opacity:.88; padding:8px;
  }
  .report-footer{border-top:1px solid var(--rule); margin-top:26px; padding-top:14px; font-size:11.5px; color:var(--ink-soft); font-family:var(--mono);}
  .perforation{
    height:1px; background-image:repeating-linear-gradient(90deg, var(--ink-soft) 0 6px, transparent 6px 12px);
    margin:22px 0; opacity:.5;
  }

  .print-only{display:none;}
  @media print{
    .masthead, .tabs, .btn, .no-print{display:none !important;}
    main{padding:0; max-width:none;}
    .report-sheet{border:none; box-shadow:none;}
    .print-only{display:block;}
    body{background:#fff;}
  }

  footer{border-top:1px solid var(--rule); padding:20px 32px; font-family:var(--mono); font-size:10.5px; color:var(--ink-soft); text-align:center;}
