/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:#f4f6fa;color:#1a1f36;min-height:100vh}
:root{
  /* Palette navy-oro professionale */
  --navy:#0f2556;--navy-dark:#071539;--navy-mid:#1a3a7c;
  --navy-light:#e8eef8;--navy-xlight:#f4f6fa;
  --oro:#b8922a;--oro-dark:#7a5c12;--oro-mid:#d4a832;
  --oro-light:#fdf3d7;--oro-xlight:#fffbf0;
  --verde:#1a7a5e;--verde-dark:#0e4d3a;--verde-light:#d4f0e6;
  --blu:#1a4fa0;--blu-dark:#0c2d6b;--blu-light:#dce8f8;
  --ardesia:#4a5568;--ardesia-dark:#1a202c;--ardesia-light:#edf2f7;
  --cremisi:#b91c1c;--cremisi-dark:#7f1d1d;--cremisi-light:#fee2e2;
  --viola:#553c9a;--viola-dark:#322174;--viola-light:#ede9fe;
  --ambra:#c27803;--ambra-dark:#7d4e00;--ambra-light:#fef3c7;
  --bordo:#c3d3ee;--bianco:#ffffff;
  --ombra:0 2px 8px rgba(15,37,86,.08),0 1px 3px rgba(15,37,86,.05);
  --ombra-md:0 6px 22px rgba(15,37,86,.12),0 3px 8px rgba(15,37,86,.07);
  --ombra-lg:0 12px 40px rgba(15,37,86,.16),0 5px 14px rgba(15,37,86,.09);
  --r:8px;--rl:12px
}

/* ===== TOPBAR ===== */
.topbar{background:var(--navy-dark);color:#a8bede;font-size:.75rem;padding:7px 24px;display:flex;justify-content:flex-end;align-items:center;gap:18px;flex-wrap:wrap;border-bottom:2px solid var(--oro)}
.topbar a{color:#c8d8f0;text-decoration:none;display:inline-flex;align-items:center;gap:5px;transition:color .15s}
.topbar a:hover{color:var(--oro-mid)}
.topbar .sep{color:#3a5080;font-size:.65rem}

/* ===== HERO ===== */
.hero{background:linear-gradient(135deg,var(--navy-dark) 0%,var(--navy) 55%,var(--navy-mid) 100%);color:#fff;padding:30px 24px 26px;border-bottom:3px solid var(--oro)}
.hero-inner{max-width:1460px;margin:0 auto;display:flex;align-items:center;gap:22px}
.hero-logo{width:72px;height:72px;border-radius:10px;object-fit:contain;background:#fff;padding:5px;flex-shrink:0;box-shadow:0 4px 18px rgba(0,0,0,.4),0 0 0 2px var(--oro)}
.hero-text h1{font-size:1.52rem;font-weight:700;letter-spacing:-.01em;line-height:1.25;text-shadow:0 1px 4px rgba(0,0,0,.3)}
.hero-text p{margin-top:6px;font-size:.86rem;color:#c0d0eb;max-width:700px;line-height:1.55}
.hero-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.badge{background:rgba(184,146,42,.18);border:1px solid rgba(212,168,50,.45);color:#f0d98a;font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:20px;letter-spacing:.04em;text-transform:uppercase}

/* ===== PRINT HEADER ===== */
#print-header{display:none}

/* ===== MAIN ===== */
.main-wrap{max-width:1460px;margin:26px auto;padding:0 20px 40px}
.intro-tip{background:var(--navy-light);border:1px solid var(--bordo);border-left:4px solid var(--navy);border-radius:8px;padding:12px 16px;font-size:.81rem;color:var(--navy-dark);margin-bottom:20px;display:flex;align-items:flex-start;gap:10px}
.intro-tip i{margin-top:1px;flex-shrink:0;color:var(--navy)}

/* ===== GRIGLIA 3 COL ===== */
.form-grid{display:grid;grid-template-columns:400px 400px 1fr;gap:20px;align-items:start}
@media(max-width:1400px){.form-grid{grid-template-columns:360px 360px 1fr}}
@media(max-width:1160px){.form-grid{grid-template-columns:1fr 1fr}.results-col{grid-column:1/-1}}
@media(max-width:740px){.form-grid{grid-template-columns:1fr}}

/* ===== CARD ===== */
.card{background:var(--bianco);border-radius:var(--rl);box-shadow:var(--ombra);overflow:hidden;margin-bottom:16px;border:1px solid #dde4f0}
.card:last-child{margin-bottom:0}
.card-head{padding:13px 18px;display:flex;align-items:center;gap:10px;font-weight:700;font-size:.86rem;letter-spacing:.02em;color:#fff;text-transform:uppercase;font-size:.78rem}
.card-head.verde{background:linear-gradient(90deg,var(--navy-dark),var(--navy))}
.card-head.oro{background:linear-gradient(90deg,var(--oro-dark),var(--oro-mid))}
.card-head.blu{background:linear-gradient(90deg,var(--navy),var(--blu))}
.card-head.ardesia{background:linear-gradient(90deg,var(--ardesia-dark),var(--ardesia))}
.card-head.cremisi{background:linear-gradient(90deg,var(--cremisi-dark),var(--cremisi))}
.card-head.viola{background:linear-gradient(90deg,var(--viola-dark),var(--viola))}
.card-head.ambra{background:linear-gradient(90deg,var(--ambra-dark),var(--ambra))}
.card-body{padding:18px}

/* ===== FIELDS ===== */
.field-group{display:flex;flex-direction:column;gap:3px;margin-bottom:13px}
.field-group:last-child{margin-bottom:0}
.field-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:13px}
.field-row-2:last-child{margin-bottom:0}
.field-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:13px}
.field-row-3:last-child{margin-bottom:0}
@media(max-width:480px){.field-row-2,.field-row-3{grid-template-columns:1fr}}
label{font-size:.76rem;font-weight:600;color:#374151;display:flex;align-items:center;gap:5px;margin-bottom:3px;flex-wrap:wrap;line-height:1.3}
input[type="text"],input[type="number"],input[type="date"],select,textarea{
  width:100%;padding:8px 11px;border:1.5px solid #d1d5db;border-radius:7px;
  font-size:.83rem;color:#0f2d24;background:#fff;
  transition:border-color .15s,box-shadow .15s;
  -webkit-appearance:none;appearance:none;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,37,86,.12)}
select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%236b7280' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}
.hint{font-size:.69rem;color:#9ca3af;margin-top:2px;line-height:1.35}
textarea{resize:vertical;min-height:58px}

/* ===== TOOLTIP ===== */
.iBtn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:#8a98b8;font-size:.81rem;padding:0 2px;vertical-align:middle;flex-shrink:0}
.iBtn:hover{color:var(--navy)}
.iBtn .tt{display:none;position:fixed;z-index:9999;background:var(--navy-dark);color:#c8d8f0;font-size:.72rem;font-weight:400;padding:9px 13px;border-radius:7px;width:260px;line-height:1.45;pointer-events:none;box-shadow:0 6px 24px rgba(7,21,57,.45)}
.iBtn:hover .tt{display:block}

/* ===== SEZ LABEL ===== */
.sez-label{font-size:.70rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--navy-mid);padding:11px 0 7px;border-bottom:1px solid var(--navy-light);margin-bottom:12px;display:flex;align-items:center;gap:6px}

/* ===== TIP BOX ===== */
.tip{border-radius:8px;padding:10px 13px;font-size:.78rem;line-height:1.5;margin-bottom:12px;display:flex;gap:9px;align-items:flex-start}
.tip:last-child{margin-bottom:0}
.tip i{margin-top:2px;flex-shrink:0}
.tip.verde{background:var(--verde-light);color:var(--verde-dark);border-left:3px solid var(--verde)}
.tip.oro{background:var(--oro-light);color:var(--oro-dark);border-left:3px solid var(--oro)}
.tip.blu{background:var(--navy-light);color:var(--navy-dark);border-left:3px solid var(--navy)}
.tip.cremisi{background:var(--cremisi-light);color:var(--cremisi-dark);border-left:3px solid var(--cremisi)}
.tip.viola{background:var(--viola-light);color:var(--viola-dark);border-left:3px solid var(--viola)}
.tip.ardesia{background:var(--ardesia-light);color:var(--ardesia-dark);border-left:3px solid var(--ardesia)}
.tip.ambra{background:var(--ambra-light);color:var(--ambra-dark);border-left:3px solid var(--ambra)}

/* ===== TIPO RISCATTO ===== */
.tipo-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:13px}
.tipo-card{border:2px solid var(--navy-light);border-radius:9px;padding:9px 11px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;user-select:none}
.tipo-card:hover{border-color:var(--bordo);background:var(--navy-xlight)}
.tipo-card.sel{border-color:var(--oro-mid);background:var(--oro-xlight);box-shadow:0 0 0 3px rgba(184,146,42,.15)}
.tipo-card input[type=radio]{display:none}
.tipo-card .tc-ico{font-size:1.1rem;margin-bottom:3px;display:block}
.tipo-card .tc-nom{font-size:.73rem;font-weight:700;color:var(--navy-dark);line-height:1.25}
.tipo-card .tc-sub{font-size:.64rem;color:#6b7280;margin-top:2px;line-height:1.3}

/* ===== BTN ADD PERIODO ===== */
.btn-add-periodo{width:100%;padding:8px;border:2px dashed var(--bordo);border-radius:8px;background:var(--navy-xlight);color:var(--navy);font-size:.80rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,border-color .15s;margin-top:4px}
.btn-add-periodo:hover{background:var(--navy-light);border-color:var(--navy)}

/* ===== PERIODO ROW ===== */
.periodo-row{background:var(--navy-xlight);border:1px solid var(--navy-light);border-radius:9px;padding:13px;margin-bottom:9px;position:relative}
.p-tit{font-size:.77rem;font-weight:700;color:var(--navy);margin-bottom:9px;display:flex;align-items:center;gap:6px}
.btn-remove{position:absolute;top:9px;right:9px;background:none;border:1px solid #fca5a5;color:#ef4444;border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:.76rem;display:flex;align-items:center;justify-content:center;transition:background .15s}
.btn-remove:hover{background:#fee2e2}

/* ===== BOTTONI PRINCIPALI ===== */
.btn-calc{width:100%;padding:13px 20px;background:linear-gradient(135deg,var(--navy-dark),var(--navy-mid));color:#fff;border:none;border-radius:9px;font-size:.92rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 4px 16px rgba(15,37,86,.4);transition:transform .1s,box-shadow .1s;letter-spacing:.02em;margin-top:6px;border-bottom:3px solid var(--oro-mid)}
.btn-calc:hover{transform:translateY(-1px);box-shadow:0 7px 22px rgba(15,37,86,.5)}
.btn-calc:active{transform:translateY(0)}
.btn-reset-main{width:100%;padding:10px 20px;background:#fff;color:#6b7280;border:1.5px solid #d1d5db;border-radius:9px;font-size:.83rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,color .15s,border-color .15s;margin-top:8px}
.btn-reset-main:hover{background:#fff1f2;color:var(--cremisi);border-color:#fca5a5}

/* ===== LOADER ===== */
#loader{display:none;text-align:center;padding:50px 20px;color:var(--ardesia)}
.loader-spin{width:40px;height:40px;border:4px solid var(--navy-light);border-top-color:var(--navy);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 14px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== PLACEHOLDER ===== */
#placeholder{background:var(--bianco);border-radius:var(--rl);box-shadow:var(--ombra);padding:40px 24px;text-align:center;color:#9ca3af;border:1px solid #dde4f0}
#placeholder i{font-size:2.8rem;margin-bottom:14px;display:block;color:var(--bordo)}
#placeholder p{font-size:.87rem;line-height:1.65;max-width:300px;margin:0 auto}

/* ===== RISULTATI ===== */
#risultati{display:none}
.export-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding:13px 17px;background:var(--navy-dark);border-radius:var(--rl);box-shadow:var(--ombra-md);align-items:center;border:1px solid rgba(255,255,255,.08)}
.export-bar span{font-size:.78rem;font-weight:700;color:#a0b4d0;margin-right:4px}
.btn-exp{padding:7px 14px;border:none;border-radius:7px;font-size:.78rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px;transition:opacity .15s,transform .1s,box-shadow .1s}
.btn-exp:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.2)}
.btn-stampa{background:#e8eef8;color:var(--navy-dark)}
.btn-email{background:#d4e8ff;color:#0c3275}
.btn-wa{background:#d4f0e2;color:#0a5c33}
.btn-nuova{background:var(--oro-light);color:var(--oro-dark);border:1.5px solid var(--oro)}

/* ===== SUMMARY BOXES ===== */
.ris-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:11px;margin-bottom:16px}
.ris-box{background:var(--bianco);border-radius:var(--r);box-shadow:var(--ombra);padding:15px 13px;text-align:center;border:1px solid #dde4f0}
.ris-box .rb-label{font-size:.69rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.ris-box .rb-value{font-size:1.25rem;font-weight:800;color:var(--navy-dark)}
.ris-box .rb-sub{font-size:.70rem;color:#9ca3af;margin-top:2px}
.ris-box.accent{background:linear-gradient(135deg,var(--navy-dark),var(--navy-mid));border-color:var(--navy)}
.ris-box.accent .rb-label{color:rgba(255,255,255,.7)}
.ris-box.accent .rb-value{color:#f0d98a}
.ris-box.accent .rb-sub{color:rgba(255,255,255,.55)}

/* ===== TABELLE ===== */
.tbl-wrap{overflow-x:auto;margin-bottom:14px}
table{width:100%;border-collapse:collapse;font-size:.81rem}
th{background:var(--navy-xlight);font-weight:700;color:var(--navy-dark);padding:8px 11px;text-align:left;border-bottom:2px solid var(--bordo);white-space:nowrap;font-size:.78rem;letter-spacing:.02em;text-transform:uppercase}
td{padding:7px 11px;border-bottom:1px solid #eef1f8;vertical-align:top}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--navy-xlight)}
.td-num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.td-good{color:var(--verde-dark);font-weight:700}
.td-bad{color:var(--cremisi);font-weight:700}
.td-tot{font-weight:800;color:var(--navy-dark);background:var(--navy-light)}

/* ===== RELAZIONE ===== */
.relazione{padding:28px 32px;line-height:1.75;font-size:.87rem;color:#1a1f36}
.relazione h2{font-size:1.05rem;font-weight:700;color:var(--navy);margin:24px 0 10px;border-bottom:2px solid var(--oro-mid);padding-bottom:6px;letter-spacing:.01em}
.relazione h3{font-size:.93rem;font-weight:700;color:var(--navy-dark);margin:16px 0 7px;padding-left:10px;border-left:3px solid var(--oro)}
.relazione p{margin-bottom:10px}
.relazione ul,.relazione ol{margin-left:20px;margin-bottom:10px}
.relazione li{margin-bottom:4px}
.relazione .rel-box{background:var(--navy-xlight);border-left:4px solid var(--navy);border-radius:0 8px 8px 0;padding:12px 16px;margin:12px 0;font-size:.83rem}
.relazione .warn-box{background:var(--oro-xlight);border-left:4px solid var(--oro);border-radius:0 8px 8px 0;padding:12px 16px;margin:12px 0;font-size:.83rem;color:var(--oro-dark)}
.relazione .good-box{background:var(--verde-light);border-left:4px solid var(--verde);border-radius:0 8px 8px 0;padding:12px 16px;margin:12px 0;font-size:.83rem;color:var(--verde-dark)}
.relazione .info-box{background:var(--blu-light);border-left:4px solid var(--blu);border-radius:0 8px 8px 0;padding:12px 16px;margin:12px 0;font-size:.83rem;color:var(--blu-dark)}
/* intestazione relazione */
.rel-header{background:linear-gradient(135deg,var(--navy-dark),var(--navy-mid));color:#fff;padding:20px 24px;border-radius:8px;margin-bottom:20px}
.rel-header h1{font-size:1.15rem;font-weight:700;margin-bottom:6px;color:#f0d98a}
.rel-header p{font-size:.78rem;color:#c0d0eb;line-height:1.55}
.rel-sep{border:none;border-top:1px solid var(--bordo);margin:20px 0}

/* ===== FOOTER ===== */
.footer-riscatto{background:var(--navy-dark);color:#a8bede;padding:22px 32px;margin-top:40px;border-top:3px solid var(--oro)}
.footer-riscatto .footer-inner{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-riscatto .f-brand{color:#e2e8f0;font-weight:700;font-size:.95rem;margin-bottom:4px}
.footer-riscatto .f-meta{font-size:.78rem;color:#94a3b8}
.footer-riscatto .f-meta a{color:#c8d8f0;text-decoration:none}
.footer-riscatto .f-meta a:hover{color:var(--oro-mid)}
.footer-riscatto .f-right{font-size:.78rem;color:#64748b;text-align:right}

/* ===== PRINT ===== */
@media print{
  .topbar,.hero,.export-bar,.intro-tip,
  .col-sinistra,.col-centro,
  #loader,#placeholder,
  .btn-calc,.btn-reset-main,
  .tipo-grid{display:none!important}
  #print-header{display:block;margin-bottom:20px;padding-bottom:13px;border-bottom:2px solid #0d9488}
  #print-header h1{font-size:1.2rem;font-weight:700;color:#0f4c40}
  #print-header p{font-size:.78rem;color:#6b7280}
  .main-wrap{margin:0;padding:8px}
  .results-col{width:100%!important}
  .form-grid{display:block!important}
  #risultati{display:block!important}
  body{background:#fff!important}
  .card{box-shadow:none;border:1px solid #e5e7eb}
  .relazione{padding:16px}
}
