/*
 * PlanLab – interfaccia del simulatore (questionario, esito, modulo report), pagina del report e area riservata.
 * Solo colori PlanLab (#042447, #50B2F8) e Plus Jakarta Sans. Scala tipografica del sito: 12 13 14 15 16 18 20 24 32 44.
 */
:root{--pl:#042447;--pl-acc:#50B2F8;--pl-soft:#EAF5FE;--pl-bord:#DCE6F2;--txt:#0A1A33;--txt2:#475467;--bord:#E6EAF0;--alt:#F4F7FB;
  --ok:#1E6B3A;--ok-bg:#E3F2E8;--warn:#8A5A00;--warn-bg:#FFF3D1;--next:#0B4A7A;--next-bg:#E6F1FB;--ko:#344054;--ko-bg:#EEF0F3;--err:#B42318;--err-bg:#FEF3F2}

/* pagine stand-alone (report, admin) */
body.plpage{margin:0;font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--txt);background:var(--alt);line-height:1.55;-webkit-font-smoothing:antialiased}
body.plpage *{box-sizing:border-box}
.plbar{background:#fff;border-bottom:1px solid var(--bord)}
.plbar .in{max-width:1200px;margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.plbar img{height:28px;width:auto;display:block}
.plbar a{font-size:14px;font-weight:600;color:var(--txt2);text-decoration:none}
.plmain{max-width:880px;margin:0 auto;padding:40px 24px 80px}
.plmain.wide{max-width:1200px}
.plfoot{font-size:13px;color:var(--txt2);border-top:1px solid var(--bord);padding-top:20px;margin-top:40px}
.plfoot a{color:var(--pl)}

/* contenitore del simulatore nella pagina planlab/simulatore */
.plapp{max-width:820px;margin:0 auto;padding:48px 24px 96px}
.plapp *,.plmain *{box-sizing:border-box}
.plapp h2,.plmain h1,.plmain h2{color:var(--pl);letter-spacing:-.03em;margin:0}
.plapp h2{font-size:32px;font-weight:800;line-height:1.1;margin-bottom:24px}
.plmain h1{font-size:32px;font-weight:800;line-height:1.1}
.plmain h2{font-size:24px;font-weight:800;line-height:1.2;margin:32px 0 16px}

/* avanzamento */
.pl-prog{margin-bottom:28px}
.pl-prog .t{display:flex;justify-content:space-between;font-size:14px;color:var(--txt2);margin-bottom:8px}
.pl-prog .b{height:8px;background:var(--bord);border-radius:999px;overflow:hidden}
.pl-prog .b i{display:block;height:100%;background:var(--pl-acc);border-radius:999px;transition:width .3s}

/* domande */
.pl-q{background:#fff;border:1px solid var(--bord);border-radius:18px;padding:24px;margin:0 0 16px;min-width:0}
.pl-q.err{border-color:var(--err)}
.pl-q legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pl-q .tx{font-size:16px;font-weight:700;color:var(--txt);margin:0}
.pl-q .tx small{font-weight:400;color:var(--txt2);font-size:14px}
.pl-q details{margin:6px 0 0;font-size:14px;color:var(--txt2)}
.pl-q summary{cursor:pointer;color:var(--pl);font-weight:600;min-height:32px;display:inline-flex;align-items:center}
.pl-q details p{margin:6px 0 0}
.pl-opts{display:grid;gap:8px;margin-top:14px}
.pl-opt{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--bord);border-radius:12px;padding:12px 16px;cursor:pointer;font-size:15px;min-height:48px;transition:border-color .15s,background .15s}
.pl-opt:hover{border-color:var(--pl-acc)}
.pl-opt.sel{border-color:var(--pl-acc);background:var(--pl-soft)}
.pl-opt input{margin:3px 0 0;width:18px;height:18px;accent-color:var(--pl);flex-shrink:0}
.pl-num{display:flex;align-items:center;gap:10px;margin-top:14px;max-width:320px}
.pl-num span{font-size:14px;color:var(--txt2)}
.pl-in,.pl-q select,.pl-form input[type=text],.pl-form input[type=email],.pl-form input[type=tel],.pl-form select,.pl-form textarea{width:100%;font:inherit;font-size:16px;color:var(--txt);background:#fff;border:1px solid #D0D5DD;border-radius:10px;padding:12px 14px;min-height:48px}
.pl-q select{margin-top:14px}
.pl-in:focus,.pl-q select:focus,.pl-form input:focus,.pl-form select:focus,.pl-form textarea:focus{outline:2px solid var(--pl-acc);outline-offset:1px;border-color:var(--pl-acc)}
.pl-errmsg{color:var(--err);font-size:14px;margin:10px 0 0}

/* pulsanti */
.pl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 16px 'Plus Jakarta Sans',system-ui,sans-serif;padding:14px 24px;border-radius:12px;border:0;cursor:pointer;text-decoration:none;min-height:48px}
.pl-btn-p{background:var(--pl);color:#fff}
.pl-btn-p:hover{background:#0B3A6B}
.pl-btn-s{background:#fff;color:var(--pl);border:1px solid #BFD3EA}
.pl-btn-l{background:var(--pl-acc);color:var(--pl)}
.pl-btn:disabled{opacity:.6;cursor:default}
.pl-nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
.pl-actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}

/* esito */
.pl-sum{font-size:18px;color:var(--txt2);margin:-8px 0 28px}
.pl-card{background:#fff;border:1px solid var(--bord);border-left:6px solid var(--ko-bg);border-radius:18px;padding:22px 24px;margin:0 0 14px}
.pl-card.compatibile{border-left-color:var(--ok)}
.pl-card.attenzione{border-left-color:#3E8E5C}
.pl-card.da_verificare{border-left-color:#C08A00}
.pl-card.non_compatibile{border-left-color:#98A2B3}
.pl-card.focus{box-shadow:0 0 0 2px var(--pl-acc)}
.pl-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pl-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px}
.pl-badge.compatibile{color:var(--ok);background:var(--ok-bg)}
.pl-badge.attenzione{color:var(--ok);background:var(--ok-bg)}
.pl-badge.da_verificare{color:var(--warn);background:var(--warn-bg)}
.pl-badge.non_compatibile,.pl-badge.non_pertinente{color:var(--ko);background:var(--ko-bg)}
.pl-badge.fin{color:var(--next);background:var(--next-bg)}
.pl-badge.scelto{color:var(--pl);background:var(--pl-soft)}
.pl-card h3{font-size:20px;font-weight:800;letter-spacing:-.01em;line-height:1.3;color:var(--txt);margin:0}
.pl-card .sub{font-size:14px;color:var(--txt2);margin:2px 0 10px}
.pl-card .breve{font-size:14px;color:var(--txt);background:var(--alt);border-radius:10px;padding:10px 14px;margin:0 0 10px}
.pl-card .breve b{color:var(--pl)}
.pl-card p{font-size:15px;margin:0}
.pl-stima{margin-top:12px;background:var(--pl-soft);border-radius:12px;padding:14px 16px}
.pl-stima .l{font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--next)}
.pl-stima ul{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:4px}
.pl-stima li{font-size:16px;font-weight:700;color:var(--pl)}
.pl-stima li span{font-weight:400;font-size:14px;color:var(--txt2)}
.pl-stima small{display:block;font-size:12px;color:var(--txt2);margin-top:6px}
.pl-nota{font-size:13px;color:var(--txt2);margin-top:10px}
.pl-avviso{font-size:13px;color:var(--txt2);border-left:3px solid var(--pl-bord);padding-left:12px;margin-top:12px}
.pl-altri{background:#fff;border:1px solid var(--bord);border-radius:18px;padding:18px 24px;margin-bottom:14px}
.pl-altri summary{cursor:pointer;font-weight:700;color:var(--pl);min-height:32px;display:flex;align-items:center}

/* riquadro report */
.pl-report{background:var(--pl);color:#fff;border-radius:24px;padding:32px;margin:32px 0}
.pl-report h2{color:#fff;font-size:24px;margin:0 0 8px}
.pl-report p{color:#B7C4D6;margin:0 0 20px;font-size:16px}
.pl-form{background:#fff;color:var(--txt);border-radius:18px;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pl-form label.f{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.pl-form .full{grid-column:1/-1}
.pl-form .chk{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:400;color:var(--txt2)}
.pl-form .chk input{width:18px;height:18px;margin-top:2px;accent-color:var(--pl);flex-shrink:0}
.pl-form .chk a{color:var(--pl);font-weight:700}
.pl-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pl-msg{border-radius:10px;padding:12px 14px;font-size:14px}
.pl-msg.err{color:var(--err);background:var(--err-bg)}
.pl-msg.ok{color:var(--ok);background:var(--ok-bg)}
.pl-cta{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:28px}
.pl-cta>div{background:#fff;border:1px solid var(--pl-bord);border-radius:18px;padding:24px}
.pl-cta>div.hi{border:2px solid var(--pl)}
.pl-cta h3{font-size:20px;font-weight:800;color:var(--pl);margin:0 0 6px}
.pl-cta p{font-size:15px;color:var(--txt2);margin:0 0 16px}
.pl-legal{font-size:13px;color:var(--txt2);border-top:1px solid var(--bord);padding-top:20px;line-height:1.6}

/* report completo */
.pl-voci h4{font-size:15px;font-weight:700;color:var(--pl);margin:16px 0 8px}
.pl-voci ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.pl-voci li{font-size:15px;border-left:2px solid var(--bord);padding-left:12px}
.pl-voci li small{display:block;font-size:13px;color:var(--txt2)}
.pl-voci a{color:var(--pl)}
.pl-tab{width:100%;border-collapse:collapse;font-size:14px}
.pl-tab td,.pl-tab th{padding:10px 8px;border-bottom:1px solid var(--bord);text-align:left;vertical-align:top}
.pl-tab th{font-size:12px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:1px}
.pl-tab td:first-child{color:var(--txt2)}
.pl-box{background:#fff;border:1px solid var(--bord);border-radius:18px;padding:24px;margin-bottom:20px}
.pl-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;text-align:center}
.pl-kpi b{display:block;font-size:32px;font-weight:800;color:var(--pl);line-height:1.1}
.pl-kpi span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--txt2)}
.pl-scroll{overflow-x:auto}

@media (max-width:680px){
  .plapp{padding:32px 20px 120px}
  .plapp h2{font-size:24px}
  .pl-q{padding:18px}
  .pl-nav .pl-btn{flex:1}
  .pl-form,.pl-cta{grid-template-columns:1fr}
  .pl-report{padding:22px}
  .pl-actions .pl-btn{width:100%}
  .pl-kpi{grid-template-columns:repeat(2,1fr)}
}
@media print{
  .plbar,.no-print,header,footer{display:none!important}
  body.plpage{background:#fff}
  .pl-card,.pl-box{break-inside:avoid}
}
