/* ===== Shell dell'app: sidebar fissa + colonna principale ===== */
.app-shell{display:flex; min-height:100vh;}

/* Sidebar in vetro: contenitore di layout, navigazione testuale minimale */
.sidebar{
  width:250px; flex-shrink:0; position:sticky; top:0; height:100vh;
  display:flex; flex-direction:column;
  background:var(--glass-bg); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border-right:1px solid rgba(255,255,255,.4);
  box-shadow:var(--glass-ombra); z-index:55;
}
.sidebar .brand{padding:18px 16px 6px;}
.sidebar .brand h1{font-size:16px; font-weight:700; color:var(--g90); line-height:1.25;}
.sidebar .brand h1 small{display:block; font-size:11px; font-weight:400; color:var(--g60); margin-top:2px;}

.area-principale{flex:1; min-width:0; display:flex; flex-direction:column;}

/* Header solido e pulito (bianco pieno + bordo sottile) */
header{
  position:sticky; top:0; z-index:50; background:var(--bianco); color:var(--g90);
  padding:10px 24px; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  border-bottom:1px solid var(--g10);
}
.header-contesto{display:flex; gap:8px; align-items:center; min-width:0;}
#hAziendaSel{max-width:280px; min-width:140px; text-overflow:ellipsis;}
#hAziendaSel:disabled{opacity:1; color:var(--g90); cursor:default;}
#hAnno{width:90px;}
.header-azioni{display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-left:auto;}
#statoSalvataggio{font-size:12px; color:var(--g60); min-width:130px; text-align:right;}
.header-utente{display:flex; align-items:center;}
#hUtente{font-size:12px; color:var(--g60); max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:inline-block; vertical-align:middle;}

/* Menu a tendina dell'header */
.dropdown{position:relative;}
.dd-menu{
  position:absolute; right:0; top:calc(100% + 6px); min-width:200px;
  background:var(--bianco); border:1px solid var(--g10); border-radius:12px;
  box-shadow:0 10px 30px rgba(31,41,55,.14);
  padding:6px; z-index:70;
}
.dd-menu button{
  display:block; width:100%; text-align:left; border:none; background:transparent;
  padding:9px 11px; font-size:13px; border-radius:8px; cursor:pointer; color:var(--g90);
}
.dd-menu button:hover{background:rgba(0,0,0,.05);}

/* ===== Navigazione della sidebar ===== */
nav{flex:1; padding:10px 12px 40px 16px; overflow-y:auto;}
nav .gruppo{font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--g60); margin:14px 8px 6px; font-weight:700;}
nav button.voce{display:flex; width:100%; text-align:left; align-items:center; gap:8px; background:none; border:none; border-radius:var(--radius-sm); padding:9px 11px; margin-bottom:3px; font-size:13.5px; cursor:pointer; color:var(--g60); transition:box-shadow .15s, color .15s;}
nav button.voce:hover{color:var(--g90); background:rgba(255,255,255,.55);}
nav button.voce.attiva{background:var(--bianco); box-shadow:var(--neu-out-sm); color:var(--verde-scuro); font-weight:600;}
nav .sigla{font-weight:700; font-size:11px; background:var(--g05); color:var(--g60); border-radius:7px; padding:2px 6px; min-width:32px; text-align:center; flex-shrink:0; border:1px solid var(--g10);}
nav button.voce.attiva .sigla{background:var(--verde); color:#fff; border-color:var(--verde);}
nav .prog{margin-left:auto; font-size:10.5px; color:var(--g60); flex-shrink:0; font-variant-numeric:tabular-nums;}
nav button.voce.attiva .prog{color:var(--verde-scuro);}
nav .prog.completo{color:var(--verde-scuro); font-weight:700;}

/* Sotto-voci del Questionario VSME */
nav .sotto-voci{margin:0 0 4px 10px; padding-left:8px; border-left:2px solid rgba(96,110,96,.18);}
nav .sotto-voci .gruppo{margin:10px 6px 5px;}
nav button.sotto-voce{display:flex; width:100%; text-align:left; align-items:center; gap:7px; background:none; border:none; border-radius:var(--radius-sm); padding:7px 9px; margin-bottom:2px; font-size:12.5px; cursor:pointer; color:var(--g60); transition:box-shadow .15s, color .15s;}
nav button.sotto-voce:hover{color:var(--g90); background:rgba(255,255,255,.55);}
nav button.sotto-voce.attiva{background:var(--bianco); box-shadow:var(--neu-out-sm); color:var(--verde-scuro); font-weight:600;}
nav button.sotto-voce .sigla{min-width:28px; font-size:10px;}
nav button.sotto-voce.attiva .sigla{background:var(--verde); color:#fff; border-color:var(--verde);}

main{flex:1; padding:28px 32px 80px; min-width:0; max-width:1100px; width:100%; margin:0 auto;}

/* ===== Pagina Accessi ===== */
.lista-accessi{margin-top:14px; display:flex; flex-direction:column; gap:10px;}
.riga-accesso{display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:var(--bianco); border:1px solid var(--g10); border-radius:var(--radius-sm); padding:12px 16px; box-shadow:var(--neu-out-sm);}
.ra-nome{font-weight:700; font-size:14px; color:var(--g90);}
.ra-dett{font-size:12px; color:var(--g60); margin-top:2px; overflow-wrap:anywhere;}

/* ===== Pagina Impostazioni ===== */
.imp-card{background:var(--bianco); border:1px solid var(--g10); border-radius:var(--radius-sm); padding:18px 20px; box-shadow:var(--neu-out-sm); margin-bottom:18px;}
.imp-card h3{font-size:15px; color:var(--g90); margin-bottom:12px;}
.imp-anni{display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 10px;}
.anno-chip{font-size:12px; font-weight:600; color:var(--g60); background:var(--bg); border-radius:999px; padding:5px 12px; box-shadow:var(--neu-out-sm);}
.anno-chip.corrente{color:#fff; background:var(--verde); box-shadow:none;}
.imp-email{font-size:13.5px; color:var(--g90); padding:4px 0 2px;}

.footer-nav{display:flex; justify-content:space-between; margin-top:20px;}
.footer-nav .btn{background:var(--verde); color:#fff; font-size:14px; padding:11px 20px;}
.footer-nav .btn:hover{background:var(--verde-scuro); color:#fff;}
.footer-nav .btn:disabled{opacity:.35; cursor:default;}

.dash-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:20px;}

/* ===== Blocco carbon del Cruscotto (modulo Emissioni) ===== */
.dash-carbon{margin:4px 0 24px; padding:16px 18px 18px; border-radius:var(--radius-lg); background:var(--glass-bg); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur); border:var(--glass-bordo); box-shadow:var(--glass-ombra);}
.dash-carbon-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px;}
.dash-carbon-head h2{font-size:16px; color:var(--g90); margin:0;}
.dash-carbon-badge{font-size:11px; font-weight:700; letter-spacing:.02em; color:var(--verde-scuro); background:var(--verde-tenue); border-radius:999px; padding:4px 10px;}
.dash-carbon .aiuto{font-size:13px; color:var(--g60); line-height:1.5;}
.dash-carbon .kpi-row{margin-bottom:16px;}
.dash-carbon .card{background:rgba(255,255,255,.72);}

.doc-chips{display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 18px;}

/* ===== Admin shell ===== */
#adminApp{max-width:1200px; margin:0 auto; padding:32px 16px;}
#adminApp header{display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; position:static; box-shadow:none; padding:0; background:none;}
#adminApp header h1{font-size:var(--fs-20); color:var(--g90);}
#logoutBtn{background:var(--bianco); border:1px solid var(--g10); border-radius:var(--radius-sm); padding:7px 15px; cursor:pointer; font-size:13px; color:var(--g60); font-weight:600; box-shadow:var(--neu-out-sm);}
#logoutBtn:hover{color:var(--g90); border-color:var(--g30);}

.toolbar{display:flex; gap:10px; margin-bottom:14px; flex-wrap:wrap; align-items:center;}

@media (max-width:900px){
  .app-shell{flex-direction:column;}
  .sidebar{width:100%; position:static; height:auto; border-right:none; border-bottom:1px solid rgba(255,255,255,.4);}
  .sidebar .brand{padding:14px 16px 0;}
  nav{width:100%; height:auto; display:flex; flex-wrap:wrap; gap:2px; padding:10px; overflow:visible;}
  nav .gruppo{width:100%;}
  nav button.voce, nav button.sotto-voce{width:auto;}
  nav .sotto-voci{width:100%; display:flex; flex-wrap:wrap; gap:2px; margin:0; padding-left:14px; border-left:none;}
  nav .sotto-voci .gruppo{width:100%;}
  nav button.voce.attiva{box-shadow:var(--neu-out-sm);}
  nav .prog{display:none;}
  header{position:static;}
  main{padding:16px;}
  section.disclosure{padding:18px;}
}

@media print{
  header, .sidebar, nav, .footer-nav, .btn-riga, .btn-del, .td-del, .doc-upload, .btn-mini, #sez-AZ, #sez-ACC, #sez-IMP{display:none !important;}
  body{background:#fff; font-size:11px;}
  section.disclosure{display:block !important; border:none; box-shadow:none; padding:10px 0; page-break-inside:avoid; border-bottom:1px solid #ccc; border-radius:0;}
  .app-shell, .area-principale{display:block;}
  main{padding:0; max-width:none;}
  #intestazioneStampa{display:block !important; margin-bottom:20px;}
  .dash-grid{grid-template-columns:1fr 1fr;}
}
#intestazioneStampa{display:none; text-align:center;}
#intestazioneStampa h1{font-size:20px; color:var(--g90);}
