:root{
  --bg:#eef4f8;
  --bg-2:#dfeaf2;
  --card:#ffffff;
  --card-soft:#f8fbfd;
  --text:#13202b;
  --muted:#5b6f80;
  --line:#d4e1ea;
  --primary:#0b4f7a;
  --primary-2:#1478aa;
  --primary-3:#d9ebf6;
  --accent:#f2c94c;
  --accent-2:#ffefb8;
  --danger:#b42318;
  --ok:#14784a;
  --warning:#9a6700;
  --shadow:0 18px 45px rgba(13, 39, 61, .10);
  --radius:22px;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at top right, rgba(20,120,170,.12), transparent 28%),
    radial-gradient(circle at top left, rgba(242,201,76,.18), transparent 25%),
    linear-gradient(180deg,var(--bg),#f8fbfd 60%,#fff);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.topbar{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 24px;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(212,225,234,.9);
}
.brand{display:flex;align-items:center;gap:18px;min-width:0}
.crestImage{
  width:72px;
  height:72px;
  object-fit:contain;
  border-radius:18px;
  background:#fff;
  padding:8px;
  box-shadow:var(--shadow);
  border:1px solid rgba(11,79,122,.10);
}
.eyebrow{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800}
h1{margin:4px 0 6px;font-size:30px;line-height:1.05}
.brandSubtitle{margin:0;color:var(--muted);font-size:14px;max-width:780px}
.topActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}

.shell{width:100%;max-width:none;margin:0;padding:24px 24px 80px}
.card{
  background:linear-gradient(180deg,#fff,var(--card-soft));
  border:1px solid rgba(212,225,234,.95);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:22px;
}

.hero{
  display:grid;
  grid-template-columns:minmax(280px,1.3fr) minmax(300px,1fr);
  gap:22px;
  align-items:stretch;
  margin-bottom:18px;
}
.heroPanel{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:100%;
}
.heroPanel h2{margin:0 0 8px;font-size:30px;line-height:1.05}
.heroPanel p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}
.heroNote{
  margin-top:16px;
  padding:14px 16px;
  border-radius:16px;
  background:linear-gradient(135deg,rgba(11,79,122,.07),rgba(20,120,170,.04));
  border:1px solid rgba(11,79,122,.10);
}
.heroStats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.statCard{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  border-radius:18px;
  padding:18px;
  background:#fff;
  border:1px solid rgba(212,225,234,.95);
  box-shadow:0 10px 28px rgba(13,39,61,.08);
}
.statCard span{font-size:34px;font-weight:900;line-height:1;color:var(--primary)}
.statCard small{margin-top:8px;font-size:13px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}

.search{margin-bottom:18px}
label{display:block;font-weight:800;margin-bottom:8px;color:#163246}
.searchrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
input,textarea,select{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
  font:inherit;
  color:var(--text);
  background:#fff;
}
input:focus,textarea:focus,select:focus{outline:3px solid rgba(20,120,170,.16);border-color:var(--primary-2)}
button,.buttonLike{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff;
  border-radius:16px;
  padding:12px 18px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(20,120,170,.18);
}
button:hover,.buttonLike:hover{transform:translateY(-1px)}
button.ghost,.buttonLike.ghost{background:#edf5fb;color:var(--primary);box-shadow:none;border:1px solid rgba(11,79,122,.12)}
button.secondary{background:#fff;color:var(--primary);border:1px solid var(--line);box-shadow:none}
.hidden{display:none!important}

.status,.pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.01em;
}
.status{background:#edf4f8;color:var(--muted);white-space:nowrap}
.status.ok,.pill.ok{background:#e9f6ee;color:var(--ok)}
.status.warn,.pill.warn{background:#fff4da;color:var(--warning)}
.pill{background:#edf4f8;color:var(--primary)}

.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.chip{
  border:1px solid rgba(11,79,122,.14);
  background:#fff;
  color:var(--primary);
  padding:9px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}

.tabs{display:flex;gap:10px;overflow-x:auto;margin:14px 0 18px;padding-bottom:2px}
.tab{background:#e8f1f7;color:var(--muted);border-radius:999px;white-space:nowrap;box-shadow:none}
.tab.active{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff}
.panel{display:none}
.panel.active{display:block}

.sectionTitle{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:6px 0 14px}
.sectionTitle h2{margin:0;font-size:24px}
.muted{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}
.resultCard{
  background:linear-gradient(180deg,#fff,#fbfdff);
  border:1px solid rgba(212,225,234,.95);
  border-radius:24px;
  padding:18px;
  box-shadow:0 12px 30px rgba(13,39,61,.07);
  display:flex;
  flex-direction:column;
  gap:14px;
}
.resultCard h3{margin:0;font-size:20px;line-height:1.2}
.resultTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.regulationName{font-weight:700}
.meta{display:flex;flex-wrap:wrap;gap:8px}
.excerpt{
  margin:0;
  padding:14px 16px;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(20,120,170,.06),rgba(242,201,76,.08));
  border:1px solid rgba(20,120,170,.10);
  line-height:1.5;
}
.infoGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.infoItem{
  padding:12px 14px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(212,225,234,.95);
}
.infoItem span{display:block;font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.infoItem strong{display:block;font-size:15px;line-height:1.35}
.infoItem.highlight{grid-column:1/-1;background:linear-gradient(135deg,rgba(242,201,76,.20),rgba(255,239,184,.42));border-color:rgba(242,201,76,.45)}
.warningBox{
  padding:12px 14px;
  border-radius:16px;
  background:#fff7e6;
  color:#7a5600;
  border:1px solid #f0d48a;
  line-height:1.45;
  font-size:14px;
}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}

.notice{border:1px solid var(--line);background:#f7f9fb;border-radius:16px;padding:12px 14px;color:var(--muted);font-weight:700}
.notice.ok{background:#e8f5ed;color:var(--ok);border-color:#bbdec8}
.notice.warn{background:#fff7e6;color:#925f00;border-color:#f3d99a}

.adminGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.formGrid{display:grid;grid-template-columns:1fr;gap:12px}
.formGrid.two{grid-template-columns:1fr 1fr}
.editorBox{border:1px solid var(--line);border-radius:20px;padding:16px;background:#fbfdff}
.editorBox h3{margin:0 0 12px}
.prebox{
  max-height:320px;
  overflow:auto;
  background:#0f1b26;
  color:#d7e8f7;
  border-radius:18px;
  padding:14px;
  font-size:12px;
}
.prose{line-height:1.6}
.prose h2,.prose h3{margin-top:0}
code{background:#edf4f8;border-radius:8px;padding:2px 6px}
hr{border:0;border-top:1px solid var(--line);margin:18px 0}
.actions.compact{margin-top:8px}
.dangerText{color:var(--danger)}
input[type="file"]{background:#fff}

.detailTable{width:100%;border-collapse:collapse;margin-top:14px}
.detailTable td{border-top:1px solid var(--line);padding:12px;vertical-align:top}
.detailTable td:first-child{font-weight:800;color:var(--muted);width:210px}

dialog{
  border:0;
  border-radius:24px;
  box-shadow:var(--shadow);
  width:min(900px,calc(100vw - 28px));
  padding:0;
}
dialog::backdrop{background:rgba(5,15,25,.45)}
#detailContent{padding:22px}
dialog form{padding:0 22px 22px;text-align:right}

@media (max-width:1100px){
  .hero{grid-template-columns:1fr}
}
@media (max-width:860px){
  .grid{grid-template-columns:1fr}
  .adminGrid,.formGrid.two,.heroStats,.infoGrid{grid-template-columns:1fr}
  .infoItem.highlight{grid-column:auto}
}
@media (max-width:760px){
  .topbar{display:block;padding:16px}
  .topActions{justify-content:flex-start;margin-top:12px}
  .brand{align-items:flex-start}
  .crestImage{width:60px;height:60px}
  h1{font-size:24px}
  .shell{padding:16px 16px 64px}
  .heroPanel h2{font-size:26px}
  .searchrow{grid-template-columns:1fr}
  .card{padding:18px}
  .detailTable td:first-child{width:150px}
}
@media print{
  .topbar,.search,.tabs,.actions,#installBtn{display:none!important}
  .panel{display:block}
  .resultCard{break-inside:avoid;box-shadow:none}
  .shell{max-width:none;padding:0}
  .card,.resultCard{border:1px solid #999}
}
.dialogBody{padding:22px}
.checkRow{display:flex;align-items:center;gap:10px;margin:8px 0 0;font-weight:800;color:var(--primary)}
.checkRow input{width:auto}
.verifiedBadge{background:#e9f6ee;color:var(--ok);border:1px solid #bbdec8}
.reviewBadge{background:#fff4da;color:var(--warning);border:1px solid #f0d48a}
.adminMiniBar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
#documentsAdminPanel.hidden{display:none!important}


/* Generatore verbale */
.wideDialog{max-width:1180px}
.verbalePreview{
  margin-top:18px;
  border:1px dashed var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
  max-height:70vh;
  overflow:auto;
}
.verbalePrint{
  background:#fff;
  color:#000;
  font-family: Arial, Helvetica, sans-serif;
  font-size:13px;
  line-height:1.35;
  padding:18px;
  max-width:980px;
  margin:0 auto;
}
.verbaleHeader{
  display:grid;
  grid-template-columns:150px 1fr 180px;
  border:2px solid #222;
  align-items:center;
  text-align:center;
}
.verbaleHeader > div{
  min-height:110px;
  border-right:2px solid #222;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  padding:8px;
}
.verbaleHeader > div:last-child{border-right:0}
.verbaleHeader h1{font-size:34px;font-family: Georgia, serif;font-style:italic;margin:0;line-height:1.35}
.verbaleLogoBox img{width:74px;height:74px;object-fit:contain;margin-bottom:4px}
.verbalePrint h2{
  margin:10px 0 0;
  padding:8px;
  border:2px solid #222;
  border-top:0;
  text-align:center;
  font-size:18px;
}
.verbaleTable{width:100%;border-collapse:collapse;border-left:2px solid #222;border-right:2px solid #222;border-bottom:2px solid #222}
.verbaleTable th{
  width:115px;
  border-right:2px solid #222;
  border-top:2px solid #222;
  padding:8px;
  text-align:center;
  vertical-align:middle;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:12px;
}
.verbaleTable td{
  border-top:2px solid #222;
  padding:10px;
  vertical-align:top;
  min-height:70px;
}
.verbaleBand{
  margin-top:10px;
  background:#666;
  color:#fff;
  text-align:center;
  font-weight:800;
  padding:7px;
  letter-spacing:.02em;
}
.verbalePayment{
  display:grid;
  grid-template-columns:1fr 240px;
  gap:10px;
  border:1px solid #444;
  border-top:0;
  padding:10px;
}
.amountBox{
  border:1px solid #444;
  display:grid;
  gap:0;
}
.amountBox div{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:10px;
  border-bottom:1px solid #444;
}
.amountBox div:last-child{border-bottom:0}
.amountBox .total{font-size:18px;background:#f6f6f6}
.authorityList{line-height:1.75;margin:8px 0 14px 22px}
.signatures{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  text-align:center;
  margin:14px 0;
}
.verbaleBack{
  margin-top:24px;
  border-top:2px dashed #999;
  padding-top:14px;
  page-break-before:always;
}
.verbaleBack h3{margin:12px 0 6px;font-size:16px}
@media print{
  body{background:#fff!important}
  .verbalePrint{max-width:none;padding:0}
  .verbalePreview{border:0;max-height:none;overflow:visible;padding:0}
  .topbar,.shell > *:not(dialog),.actions,dialog form{display:none!important}
  dialog[open]{position:static;display:block;width:auto;max-width:none;box-shadow:none;border-radius:0}
  dialog::backdrop{display:none}
  .dialogBody > h2,.dialogBody > p,.dialogBody > .formGrid,.dialogBody > .actions{display:none!important}
}
@media (max-width:760px){
  .verbaleHeader{grid-template-columns:1fr}
  .verbaleHeader > div{border-right:0;border-bottom:2px solid #222}
  .verbaleHeader > div:last-child{border-bottom:0}
  .verbalePayment{grid-template-columns:1fr}
  .signatures{grid-template-columns:1fr}
}

/* Verbale v8: campi separati trasgressore/solidale e logo PL */
.partyFieldset{
  grid-column:1/-1;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fbfdff;
  margin:0;
}
.partyFieldset legend{
  padding:0 8px;
  font-weight:900;
  color:var(--primary);
}
.personGrid{
  display:grid;
  grid-template-columns:1.4fr 1fr 90px 170px;
  gap:12px;
  align-items:end;
}
.personGrid .wide{grid-column:span 2}
.verbaleLogoBox:first-child img{
  width:92px;
  height:92px;
}
@media (max-width:900px){
  .personGrid{grid-template-columns:1fr 1fr}
  .personGrid .wide{grid-column:1/-1}
}
@media (max-width:620px){
  .personGrid{grid-template-columns:1fr}
  .personGrid .wide{grid-column:auto}
}


/* Dashboard v9 */
.dashGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:14px;
  margin:14px 0 18px;
}
.dashboardBlock{margin-bottom:16px}
.dashboardBlock h3{margin:0 0 12px}
.miniCard{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:14px;
  margin:10px 0;
  box-shadow:0 6px 18px rgba(13,39,61,.05);
}
.miniCard strong{display:block;margin-bottom:4px}
.miniCard p{margin:4px 0;color:var(--muted);line-height:1.4}
.categoryFilters{padding-top:4px;border-top:1px dashed rgba(11,79,122,.14)}
.buttonLike.ghost{
  background:#edf5fb;
  color:var(--primary);
  box-shadow:none;
  border:1px solid rgba(11,79,122,.12);
}
@media print{
  .dashGrid,.dashboardBlock{display:none!important}
}


/* Home + disposizioni di servizio v10 */
.roundLogo{
  border-radius:999px;
  object-fit:cover;
  padding:0;
}
.homeHero{
  display:grid;
  grid-template-columns:minmax(320px, .9fr) minmax(420px, 1.1fr);
  gap:18px;
  align-items:stretch;
  margin-bottom:18px;
}
.homeIntro{
  background:
    radial-gradient(circle at top right, rgba(242,201,76,.24), transparent 30%),
    linear-gradient(180deg,#fff,#f7fbfe);
}
.homeIntro h2{
  margin:8px 0 10px;
  font-size:38px;
  line-height:1.05;
}
.homeIntro p{
  color:var(--muted);
  font-size:16px;
  line-height:1.55;
}
.homeLogos{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:14px;
}
.homeLogos img:first-child{
  width:112px;
  height:112px;
  border-radius:999px;
  object-fit:cover;
  box-shadow:0 16px 40px rgba(11,79,122,.16);
}
.homeLogos img:last-child{
  width:78px;
  height:78px;
  object-fit:contain;
  background:#fff;
  border-radius:18px;
  padding:8px;
  border:1px solid var(--line);
}
.homeStats{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.homeStats span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  background:#edf5fb;
  color:var(--primary);
  padding:10px 14px;
  font-weight:800;
}
.homeStats strong{
  font-size:20px;
}
.homeActionsGrid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
.homeActionCard{
  min-height:210px;
  text-align:left;
  align-items:flex-start;
  flex-direction:column;
  gap:12px;
  border-radius:28px;
  padding:28px;
  border:1px solid rgba(255,255,255,.75);
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg,#06335c,#0b6e9f);
  color:#fff;
  box-shadow:0 20px 50px rgba(6,51,92,.22);
}
.homeActionCard.service{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg,#0b4f7a,#167a64);
}
.homeActionCard strong{
  font-size:28px;
  line-height:1.1;
}
.homeActionCard small{
  font-size:15px;
  line-height:1.45;
  color:rgba(255,255,255,.88);
  max-width:720px;
}
.homeIcon{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border-radius:18px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.26);
  font-size:30px;
  font-weight:900;
}
.homeNotice{
  border-left:6px solid var(--accent);
}
.serviceCard .excerpt{
  min-height:92px;
}
@media (max-width:1000px){
  .homeHero{grid-template-columns:1fr}
}
@media (max-width:760px){
  .homeIntro h2{font-size:30px}
  .homeLogos img:first-child{width:86px;height:86px}
  .homeActionCard{min-height:180px;padding:22px}
  .homeActionCard strong{font-size:23px}
}


/* Manuali attrezzature v11 */
.homeActionCard.manuals{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg,#12213a,#7a5414);
}
.manualCard .excerpt{
  min-height:112px;
}
#manuals .prose{
  margin-bottom:18px;
}


/* Localizzazione GPS v12 */
.homeActionCard.gps{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg,#123c69,#7a1f48);
}
.gpsCard .excerpt{
  min-height:72px;
}
#gps .notice{
  margin-bottom:14px;
}
#gpsLocationsList.grid{
  margin-top:10px;
}
@media (max-width:760px){
  #gps .formGrid.two{grid-template-columns:1fr}
}


/* Integrazione catastale v13 */
.catastoBox{
  margin:18px 0;
  padding:18px;
  border-radius:20px;
  background:linear-gradient(135deg,rgba(11,79,122,.06),rgba(242,201,76,.10));
  border:1px solid rgba(11,79,122,.12);
}
.catastoBox h3{
  margin:0 0 6px;
}
.catastoBox textarea{
  font-size:13px;
}


/* Modulistica operativa v14 */
.homeActionCard.forms{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg,#1f3763,#61428f);
}
.formCard .excerpt{
  min-height:112px;
}
#forms .prose{
  margin-bottom:18px;
}


/* Veicoli abbandonati v15 */
.homeActionCard.abandoned{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg,#2a3348,#8a4c20);
}
.checkGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:8px 12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}
.inlineChecks{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}
.inlineChecks label,.checkGrid label{
  font-weight:700;
  color:var(--text);
  margin:0;
}
.photoPreview{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;
  padding:12px;
  border:1px dashed var(--line);
  border-radius:16px;
  background:#fff;
}
.photoThumb,.reportPhoto{
  margin:0;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.photoThumb img,.reportPhoto img{
  width:100%;
  height:140px;
  object-fit:cover;
}
.photoThumb figcaption,.reportPhoto figcaption{
  padding:8px;
  font-size:12px;
  color:var(--muted);
}
.abReport{
  background:#fff;
  color:#000;
  font-family:Arial, Helvetica, sans-serif;
  font-size:13px;
  line-height:1.35;
  padding:18px;
  max-width:980px;
  margin:0 auto;
}
.abReport h2{
  margin:10px 0 0;
  padding:8px;
  border:2px solid #222;
  border-top:0;
  text-align:center;
  font-size:17px;
}
.abTable th{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}
.photoGrid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  padding:12px;
  border:2px solid #222;
  border-top:0;
}
.photoGrid img{
  height:260px;
  object-fit:cover;
}
.abandonedDocCard .excerpt,.abandonedRecordCard .excerpt{
  min-height:96px;
}
@media print{
  .abReport{max-width:none;padding:0}
  .photoGrid{break-inside:avoid}
}
@media (max-width:760px){
  .photoGrid{grid-template-columns:1fr}
  .photoGrid img{height:auto}
}


/* PDF/reportistica v16 */
.printReport{
  background:#fff;
  color:#111;
  font-family:Arial, Helvetica, sans-serif;
  max-width:980px;
  margin:0 auto;
  padding:24px;
  line-height:1.45;
}
.printHeader{
  display:grid;
  grid-template-columns:90px 1fr 90px;
  gap:16px;
  align-items:center;
  border-bottom:3px solid #0b4f7a;
  padding-bottom:14px;
  margin-bottom:18px;
}
.printHeader img{
  width:80px;
  height:80px;
  object-fit:contain;
}
.printHeader img:first-child{
  border-radius:999px;
}
.printHeader h1{
  margin:0;
  font-size:26px;
  color:#0b4f7a;
}
.printHeader p{
  margin:4px 0 0;
  color:#536575;
}
.printTextBlock{
  white-space:pre-wrap;
  font-family:Arial, Helvetica, sans-serif;
  border:1px solid #ccd6df;
  border-radius:12px;
  padding:16px;
  background:#f8fbfd;
}
.printTable{
  width:100%;
  border-collapse:collapse;
  margin-top:10px;
}
.printTable th{
  width:210px;
  text-align:left;
  background:#edf5fb;
}
.printTable th,.printTable td{
  border:1px solid #ccd6df;
  padding:10px;
  vertical-align:top;
}
@media print{
  .printReport{max-width:none;padding:0}
  .printHeader{break-inside:avoid}
  .printTable{page-break-inside:auto}
  .printTable tr{page-break-inside:avoid}
}


/* Registro veicoli abbandonati v17 */
.tableScroll{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
}
.registryTable{
  width:100%;
  border-collapse:collapse;
  min-width:1200px;
}
.registryTable th{
  position:sticky;
  top:0;
  background:#edf5fb;
  color:var(--primary);
  z-index:1;
}
.registryTable th,.registryTable td{
  border-bottom:1px solid var(--line);
  padding:9px 10px;
  text-align:left;
  vertical-align:top;
  font-size:13px;
}
.registryTable tr:hover td{
  background:#f8fbfd;
}
.smallBtn{
  padding:6px 8px;
  font-size:12px;
  margin:2px;
}
.inlineSelect{
  min-width:280px;
  max-width:520px;
}
.registryPrintTable{
  font-size:11px;
}
.registryPrintTable th,.registryPrintTable td{
  padding:6px;
}
@media print{
  .registryPrintTable{
    font-size:9px;
  }
}


/* Layout ordinato v18 */
.appSystemBar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.compactHomeBtn{
  padding:8px 12px;
}
.compactTabs{
  display:none;
}
.homeOnly{
  min-height:calc(100vh - 170px);
  display:flex;
  flex-direction:column;
  gap:22px;
}
.homeWelcome{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:22px;
  align-items:center;
  background:
    radial-gradient(circle at 90% 10%, rgba(242,201,76,.20), transparent 34%),
    linear-gradient(135deg,#ffffff,#f2f8fc);
  border:1px solid var(--line);
  border-radius:30px;
  padding:28px;
  box-shadow:0 18px 50px rgba(11,79,122,.10);
}
.homeWelcome h2{
  margin:4px 0 8px;
  font-size:42px;
  line-height:1.05;
}
.homeWelcome p{
  color:var(--muted);
  font-size:17px;
  line-height:1.5;
  margin:0;
}
.homeSectionsGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;
}
.homeSectionsGrid .homeActionCard{
  min-height:190px;
}
.homeActionCard.dashboardHome{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg,#243b55,#141e30);
}
.homeActionCard.adminHome{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg,#3f2b56,#7b3f61);
}
.sectionHomeBar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(8px);
  box-shadow:0 8px 24px rgba(11,79,122,.06);
}
.sectionHomeBar strong{
  color:var(--primary);
  font-size:16px;
}
.sectionSearch{
  margin-bottom:18px;
}
.topbar .brand h1{
  font-size:28px;
}
.topbar .brandSubtitle{
  max-width:760px;
}
@media (max-width:760px){
  .homeWelcome{
    grid-template-columns:1fr;
    padding:20px;
  }
  .homeWelcome h2{
    font-size:32px;
  }
  .homeSectionsGrid{
    grid-template-columns:1fr;
  }
  .sectionHomeBar{
    align-items:flex-start;
    flex-direction:column;
  }
  .topbar .brand h1{
    font-size:22px;
  }
}


/* Template originali Allegato 1 / Allegato 2bis v19 */
.templateReport{
  background:#fff;
  color:#000;
  font-family:Arial, Helvetica, sans-serif;
}
.templatePage{
  position:relative;
  width:210mm;
  max-width:100%;
  margin:0 auto 12px;
  background:#fff;
  break-after:page;
  page-break-after:always;
  box-shadow:0 6px 24px rgba(0,0,0,.10);
}
.templateBg{
  display:block;
  width:100%;
  height:auto;
}
.tplField{
  position:absolute;
  font-family:Arial, Helvetica, sans-serif;
  font-size:9.5pt;
  line-height:1.15;
  color:#000;
  padding:1px 3px;
  overflow:hidden;
  white-space:normal;
  word-break:break-word;
}
.tplMark{
  position:absolute;
  font-family:Arial, Helvetica, sans-serif;
  font-size:12pt;
  font-weight:800;
  line-height:1;
  color:#000;
}
.templatePhotoPage{
  width:210mm;
  max-width:100%;
  margin:0 auto 12px;
  padding:18mm 14mm;
  background:#fff;
  color:#000;
  break-after:page;
  page-break-after:always;
  box-shadow:0 6px 24px rgba(0,0,0,.10);
}
.templatePhotoPage h2{
  margin:0 0 12px;
  text-align:center;
  font-size:18px;
}
@media print{
  .templatePage,.templatePhotoPage{
    width:210mm;
    max-width:none;
    margin:0;
    box-shadow:none;
  }
  .tplField{
    font-size:9pt;
  }
  .tplMark{
    font-size:11pt;
  }
}


/* Sottomenu interni sezioni v20 */
.moduleMenu{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px;
  margin:12px 0 18px;
}
.moduleBtn{
  min-height:74px;
  text-align:left;
  border-radius:20px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--primary);
  box-shadow:0 8px 24px rgba(11,79,122,.06);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:14px 16px;
  font-weight:900;
}
.moduleBtn span{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:14px;
  background:#edf5fb;
  font-size:20px;
  flex:0 0 auto;
}
.moduleBtn:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(11,79,122,.10);
}
.moduleBtn.active{
  background:linear-gradient(135deg,var(--primary),#0b6e9f);
  color:#fff;
  border-color:transparent;
}
.moduleBtn.active span{
  background:rgba(255,255,255,.18);
}
.sectionModule{
  display:none;
}
.sectionModule.active{
  display:block;
  animation:moduleFade .18s ease-out;
}
@keyframes moduleFade{
  from{opacity:.25; transform:translateY(6px)}
  to{opacity:1; transform:translateY(0)}
}
.sectionModule > .card:first-child,
.sectionModule > .adminGrid:first-child,
.sectionModule > .search:first-child{
  margin-top:0;
}
@media (max-width:760px){
  .moduleMenu{
    grid-template-columns:1fr;
  }
  .moduleBtn{
    min-height:62px;
  }
}


/* Home istituzionale v21 - pulsanti più coerenti */
.homeSectionsGrid{
  align-items:stretch;
}
.homeSectionsGrid .homeActionCard,
.homeSectionsGrid .homeActionCard.service,
.homeSectionsGrid .homeActionCard.manuals,
.homeSectionsGrid .homeActionCard.forms,
.homeSectionsGrid .homeActionCard.abandoned,
.homeSectionsGrid .homeActionCard.gps,
.homeSectionsGrid .homeActionCard.dashboardHome,
.homeSectionsGrid .homeActionCard.adminHome{
  position:relative;
  min-height:178px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,251,253,.98));
  color:var(--text);
  border:1px solid rgba(11,79,122,.18);
  box-shadow:0 12px 34px rgba(11,79,122,.10);
  overflow:hidden;
}
.homeSectionsGrid .homeActionCard::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:8px;
  background:linear-gradient(180deg,var(--primary),#0b6e9f);
}
.homeSectionsGrid .homeActionCard::after{
  content:"";
  position:absolute;
  right:-42px;
  top:-42px;
  width:120px;
  height:120px;
  border-radius:999px;
  background:rgba(11,79,122,.055);
}
.homeSectionsGrid .homeActionCard strong{
  color:var(--primary);
  font-size:24px;
  line-height:1.12;
  z-index:1;
}
.homeSectionsGrid .homeActionCard small{
  color:var(--muted);
  z-index:1;
}
.homeSectionsGrid .homeIcon{
  z-index:1;
  background:#edf5fb;
  color:var(--primary);
  border:1px solid rgba(11,79,122,.12);
  box-shadow:0 8px 18px rgba(11,79,122,.08);
}
.homeSectionsGrid .homeActionCard:hover{
  transform:translateY(-2px);
  border-color:rgba(11,79,122,.35);
  box-shadow:0 18px 42px rgba(11,79,122,.16);
}
.homeSectionsGrid .homeActionCard:focus-visible{
  outline:3px solid rgba(242,201,76,.75);
  outline-offset:3px;
}
.homeSectionsGrid .homeActionCard.service::before{background:linear-gradient(180deg,#0b4f7a,#167a64);}
.homeSectionsGrid .homeActionCard.manuals::before{background:linear-gradient(180deg,#0b4f7a,#9a6a1d);}
.homeSectionsGrid .homeActionCard.forms::before{background:linear-gradient(180deg,#0b4f7a,#61428f);}
.homeSectionsGrid .homeActionCard.abandoned::before{background:linear-gradient(180deg,#0b4f7a,#8a4c20);}
.homeSectionsGrid .homeActionCard.gps::before{background:linear-gradient(180deg,#0b4f7a,#7a1f48);}
.homeSectionsGrid .homeActionCard.dashboardHome::before{background:linear-gradient(180deg,#0b4f7a,#243b55);}
.homeSectionsGrid .homeActionCard.adminHome::before{background:linear-gradient(180deg,#0b4f7a,#3f2b56);}
@media (max-width:760px){
  .homeSectionsGrid .homeActionCard{
    min-height:148px;
  }
  .homeSectionsGrid .homeActionCard strong{
    font-size:22px;
  }
}


/* Polizia Giudiziaria v23 */
.homeSectionsGrid .homeActionCard.pgHome::before{
  background:linear-gradient(180deg,#0b4f7a,#6d4c1f);
}
.pgTable{
  min-width:1350px;
}
#pgStats.dashGrid{
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  margin-top:14px;
}
#pgStats .stat{
  border-left:4px solid var(--primary);
}
#pg .registryTable td:nth-child(6),
#pg .registryTable td:nth-child(7){
  max-width:280px;
}


/* v24 - verbali, registri compatti e simulazione PC */
.authoritySelected{
  border:1px solid #ccd6df;
  border-radius:12px;
  padding:10px 12px;
  background:#f8fbfd;
  font-weight:700;
}
.formCollapsed{
  display:none !important;
}
.compactActionCard{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.compactActionCard button{
  flex:0 0 auto;
}
.homeSectionsGrid .homeActionCard.pcHome::before{
  background:linear-gradient(180deg,#0b4f7a,#1f6b4f);
}
.pcTimerBox{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid rgba(11,79,122,.15);
  background:linear-gradient(135deg,#f8fbfd,#edf5fb);
  border-radius:20px;
  padding:18px;
  margin:16px 0;
}
.pcTimerBox span{
  color:var(--muted);
  font-weight:800;
}
.pcTimerBox strong{
  font-size:42px;
  color:var(--primary);
  font-variant-numeric:tabular-nums;
}
.pcEvent textarea{
  width:100%;
  margin-top:10px;
}
.miniRow{
  display:grid;
  grid-template-columns:76px 1fr;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.miniRow strong{
  color:var(--primary);
  font-variant-numeric:tabular-nums;
}
@media (max-width:760px){
  .pcTimerBox{
    align-items:flex-start;
    flex-direction:column;
  }
  .pcTimerBox strong{
    font-size:34px;
  }
  .compactActionCard{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* Stradario v25 */
.homeSectionsGrid .homeActionCard.streetsHome::before{
  background:linear-gradient(180deg,#0b4f7a,#2d6f8f);
}
.streetMapFrame{
  width:100%;
  height:520px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#edf5fb;
  margin-top:14px;
}
.streetCard .excerpt,
.streetRefCard .excerpt{
  min-height:84px;
}
.streetRefCard .muted{
  font-weight:700;
}
#streets .notice a{
  font-weight:900;
  color:var(--primary);
}
@media (max-width:760px){
  .streetMapFrame{
    height:380px;
  }
}


/* Ordinanze Polizia Locale v26 */
.homeSectionsGrid .homeActionCard.ordinancesHome::before{
  background:linear-gradient(180deg,#0b4f7a,#705124);
}
.ordinanceCard .excerpt{
  min-height:96px;
}
.ordinanceCard .muted{
  font-size:13px;
}
#ordinanceDetailBox .printTable th{
  width:180px;
}


/* v27 - Simulazione PC avanzata stile ERP */
.pc-erp-layout{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:18px;
  margin:16px 0;
}
.pc-config,.pc-runner{
  align-self:start;
}
.pc-big-timer{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.20), transparent 32%),
    linear-gradient(135deg,#0b4f7a,#07324e);
  color:#fff;
  border-radius:22px;
  padding:22px;
  margin-bottom:16px;
  box-shadow:0 18px 38px rgba(11,79,122,.22);
}
.pc-big-timer span{
  display:block;
  color:#d7ebf8;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:12px;
}
.pc-big-timer strong{
  display:block;
  font-size:58px;
  line-height:1.05;
  letter-spacing:.05em;
  margin:8px 0;
  font-variant-numeric:tabular-nums;
}
.pc-big-timer small{
  color:#f3fbff;
  line-height:1.35;
}
.pc-current-inject{
  border-left:5px solid #f2c94c;
}
.pc-current-inject p{
  margin:10px 0;
  font-size:1.02rem;
}
.pc-current-empty{
  border-left:5px solid var(--line);
}
.pc-control-actions{
  margin-bottom:18px;
}
.pc-action-box{
  margin-top:18px;
}
.pc-schedule{
  display:grid;
  gap:8px;
}
.pc-schedule-item{
  display:grid;
  grid-template-columns:84px 1fr;
  gap:8px 12px;
  align-items:start;
  border:1px solid var(--line);
  border-radius:14px;
  padding:10px 12px;
  background:#fff;
}
.pc-schedule-item strong{
  color:var(--primary);
  font-variant-numeric:tabular-nums;
}
.pc-schedule-item span{
  font-weight:900;
}
.pc-schedule-item small{
  grid-column:2;
  color:var(--muted);
  line-height:1.35;
}
.pc-schedule-item.done{
  opacity:.65;
  background:#f4faf6;
}
.pc-schedule-item.done strong::after{
  content:" ✓";
  color:#1f7a43;
}
.pc-schedule-item.current{
  border-color:#f2c94c;
  box-shadow:0 0 0 3px rgba(242,201,76,.18);
}
.pc-timeline-panel table,
.pc-actions-panel table,
.pc-history-panel table{
  min-width:1100px;
}
#pcKpis.dashGrid{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
#pcKpis .stat{
  border-left:4px solid var(--primary);
}
.pc-print-report{
  margin-top:18px;
}
@media (max-width:1100px){
  .pc-erp-layout{
    grid-template-columns:1fr;
  }
  .pc-big-timer strong{
    font-size:42px;
  }
}
@media (max-width:760px){
  .pc-schedule-item{
    grid-template-columns:1fr;
  }
  .pc-schedule-item small{
    grid-column:1;
  }
  .pc-big-timer strong{
    font-size:36px;
  }
}
@media print{
  .pc-config,.pc-runner,.pc-schedule-panel,.pc-history-panel{
    break-inside:avoid;
  }
  .pc-timeline-panel th,.pc-actions-panel th{
    position:static!important;
  }
}


/* Ordinanze v30 - archivio */
.ordinanceCard .pill.warn{
  background:#fff4d6;
  color:#7a5200;
}
.ordinanceCard .pill.ok{
  background:#e9f7ef;
  color:#146c38;
}
#ordinanceAlboStatus{
  margin-top:12px;
}


/* Manuale app v31 */
.homeSectionsGrid .homeActionCard.manualeHome::before{
  background:linear-gradient(180deg,#0b4f7a,#24558c);
}
.manualToolbar{
  margin-bottom:18px;
}
.manualBlock{
  scroll-margin-top:110px;
}
.manualBlock h3{
  color:var(--primary);
}
.manualHidden{
  display:none!important;
}
#manualeapp .sectionModule.manualSearchActive{
  display:block!important;
}
#manualContent .sectionModule.manualSearchActive{
  margin-bottom:14px;
}
@media print{
  #manualeapp .moduleMenu,
  #manualeapp .manualToolbar,
  #manualeapp .sectionHomeBar{
    display:none!important;
  }
  #manualeapp .sectionModule{
    display:block!important;
  }
}


/* Ordinanze v32 - riassunto operativo e parser Albo */
.ordinanceSummaryBox{
  border:1px solid rgba(11,79,122,.18);
  border-left:5px solid var(--primary);
  background:#f8fbfd;
  border-radius:16px;
  padding:12px 14px;
  margin:12px 0;
}
.ordinanceSummaryBox strong{
  display:block;
  color:var(--primary);
  margin-bottom:6px;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.ordinanceSummaryBox p{
  margin:0;
  color:var(--text);
  line-height:1.45;
}
.ordinanceSummaryBox.detailSummary{
  margin:14px 0 18px;
}


/* Gestione vestiario v33 */
.homeSectionsGrid .homeActionCard.clothingHome::before{
  background:linear-gradient(180deg,#0b4f7a,#6b7f22);
}
.clothingToolbar{
  margin-bottom:18px;
}
.formGrid.four{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
.checkStack{
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:end;
  font-weight:800;
}
#clothingKpis.dashGrid{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
#clothingKpis .stat{
  border-left:4px solid var(--primary);
}
.clothingTable{min-width:1100px;}
.clothingAgentCard .excerpt{min-height:68px;}
.clothingSheet table{min-width:1150px;}
.warnText{color:#9a3412;font-weight:900;}
#clothing .notice strong{color:var(--primary);}
@media(max-width:760px){
  .checkStack{justify-content:start;}
}


/* Vestiario v34 - risultati in app */
.clothingLoadedGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
  margin:12px 0 18px;
}
.miniInfo{
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:16px;
  background:#fff;
  padding:14px;
  box-shadow:0 8px 20px rgba(11,79,122,.06);
}
.miniInfo strong{
  display:block;
  color:var(--primary);
  font-size:28px;
  line-height:1;
}
.miniInfo span{
  color:var(--muted);
  font-weight:700;
}
.clothingSheet.compactSheet{
  margin:12px 0;
  border-left:5px solid var(--primary);
}
.clothingAgentTable{
  min-width:1250px;
}
.clothingAgentTable small{
  color:var(--muted);
}
.clothingTable small{
  color:var(--muted);
}
.warnText{
  color:#8a5a00;
  font-weight:800;
}
@media (max-width:760px){
  .clothingLoadedGrid{
    grid-template-columns:1fr 1fr;
  }
  .miniInfo strong{
    font-size:22px;
  }
}


/* v35 - Grafica più pulita e pulsanti più solidi */
:root{
  --cardShadowStrong: 0 18px 42px rgba(11,79,122,.12);
  --softBlue: #eef7fc;
  --softGold: #fff7df;
}
button, .buttonLike{
  border-radius: 14px;
  font-weight: 850;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
button:hover, .buttonLike:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(11,79,122,.14);
}
.homeActionCard{
  min-height: 164px;
  border-radius: 24px;
  border: 1px solid rgba(11,79,122,.12);
  box-shadow: var(--cardShadowStrong);
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(244,250,253,.94));
}
.homeActionCard strong{
  font-size: 1.05rem;
}
.sectionTitle{
  border-radius: 22px;
}
.panel > .sectionTitle{
  padding: 18px 20px;
  background: linear-gradient(135deg, #f7fbfe, #eef7fc);
  border: 1px solid rgba(11,79,122,.10);
  margin-bottom: 14px;
}
.moduleMenu{
  background: #fff;
  border: 1px solid rgba(11,79,122,.10);
  border-radius: 20px;
  padding: 10px;
  box-shadow: 0 8px 26px rgba(11,79,122,.08);
}
.moduleBtn{
  border-radius: 16px;
}
.moduleBtn.active{
  background: linear-gradient(135deg, #0b4f7a, #0f6fa8);
  color: #fff;
  box-shadow: 0 10px 24px rgba(11,79,122,.22);
}
.card{
  border-radius: 22px;
  box-shadow: 0 10px 30px rgba(11,79,122,.08);
}
.clothingLoadedGrid{
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
}
.clothingLoadedGrid .miniInfo{
  background: linear-gradient(135deg,#fff,#f7fbfe);
  border-left-width:6px;
}
#clothingImmediateResults table,
#clothingPlanTable table,
#clothingAllAgentSheets table{
  font-size: 13px;
}
.clothingSheet.compactSheet{
  background: linear-gradient(135deg,#fff,#fbfdff);
  margin: 16px 0;
}
.clothingSheet.compactSheet h3{
  color: var(--primary);
}
.clothingAgentCard{
  border-left: 6px solid var(--primary);
}
.cadastreAssistCard{
  border-left: 6px solid #1f6b4f;
  background: linear-gradient(135deg,#fff,#f4fbf7);
}
.cadastreQuickPanel{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:start;
  border:1px solid rgba(31,107,79,.16);
  border-radius:20px;
  padding:16px;
  background:#fff;
  margin:16px 0;
}
.verticalActions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
}
.verticalActions button{
  width:100%;
}
.homeSectionsGrid .homeActionCard.clothingHome::before,
.homeSectionsGrid .homeActionCard.vestiarioHome::before{
  background:linear-gradient(180deg,#0b4f7a,#76542a);
}
.warnText{
  color:#8a5a00;
  font-weight:900;
}
.statusLine{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
@media(max-width:900px){
  .cadastreQuickPanel{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  .homeActionCard{
    min-height:132px;
  }
}


/* v38 - Ordine acquisto vestiario */
.clothingOrderHero{
  border-left:6px solid #76542a;
  background:linear-gradient(135deg,#fff,#fffaf0);
}
.clothingOrderTable{
  min-width:1550px;
  font-size:13px;
}
.clothingOrderTable input,
.clothingOrderTable select{
  font-size:13px;
}
.compactInput{
  width:76px;
}
.clothingOrderRow.orderSelected{
  background:#f4fbf7;
  box-shadow: inset 5px 0 0 #1f7a43;
}
.clothingOrderRow:not(.orderSelected){
  opacity:.86;
}
.orderLineTotal{
  font-weight:900;
  color:var(--primary);
  white-space:nowrap;
}
.orderPreviewCard{
  border-left:6px solid #76542a;
}
.orderPreviewCard ul{
  padding-left:18px;
  margin:8px 0 0;
}
.orderActions{
  align-items:center;
  gap:8px;
}
.clothingOrderPrint h2{
  margin-top:20px;
}
.clothingOrderPrint .printTable td,
.clothingOrderPrint .printTable th{
  font-size:11px;
}
@media(max-width:760px){
  .orderActions{
    flex-direction:column;
    align-items:stretch;
  }
  .orderActions button{
    width:100%;
  }
}


/* v39 - Vestiario selezioni fornitura più chiare */
.clothingSummaryTop{
  border-left:6px solid var(--primary);
  background:linear-gradient(135deg,#fff,#f7fbfe);
}
.clothingSummaryAgentCard{
  border-left:6px solid #0b4f7a;
  background:linear-gradient(135deg,#fff,#fbfdff);
}
.summaryMiniGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}
.summaryMiniGrid span{
  border:1px solid var(--line);
  border-radius:14px;
  padding:10px;
  background:#fff;
}
.summaryMiniGrid strong{
  display:block;
  color:var(--primary);
  font-size:20px;
  line-height:1;
}
.summaryMiniGrid small{
  display:block;
  color:var(--muted);
  font-weight:700;
  margin-top:3px;
}
.orderHelpBox{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.clothingOrderTable{
  min-width:1780px;
}
.orderCheckCell{
  min-width:120px;
}
.orderCheckLabel{
  display:flex;
  align-items:center;
  gap:6px;
  font-weight:900;
}
.orderDueRow{
  box-shadow: inset 4px 0 0 rgba(180,50,50,.55);
}
.orderExtraRow{
  box-shadow: inset 4px 0 0 rgba(11,79,122,.25);
}
.yearInput{
  width:88px;
}
.wideInput{
  min-width:220px;
}
.clothingOrderRow.orderSelected{
  background:#f0fbf5;
}
.clothingOrderRow:not(.orderSelected) .orderCheckLabel{
  color:var(--muted);
}
.clothingOrderRow:not(.orderSelected){
  background:#fff;
  opacity:1;
}
@media(max-width:760px){
  .summaryMiniGrid{
    grid-template-columns:1fr;
  }
}


/* v40 - Veicoli abbandonati PDF semplificati e manuale completo */
.simplifiedVehicleReport{
  max-width: 980px;
  margin: 0 auto;
  background:#fff;
}
.simplifiedVehicleReport .pdfSection{
  border:1px solid #d8e4ec;
  border-radius:14px;
  padding:14px;
  margin:12px 0;
  break-inside:avoid;
}
.simplifiedVehicleReport h2{
  font-size:16px;
  color:#0b4f7a;
  margin:0 0 10px;
  border-bottom:1px solid #d8e4ec;
  padding-bottom:6px;
}
.pdfInfoTable{
  width:100%;
  border-collapse:collapse;
}
.pdfInfoTable th,
.pdfInfoTable td{
  border:1px solid #d8e4ec;
  padding:7px 9px;
  vertical-align:top;
  font-size:13px;
}
.pdfInfoTable th{
  width:28%;
  background:#f4f9fc;
  color:#18384d;
  text-align:left;
}
.pdfCheckGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 14px;
}
.pdfCheck{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-height:26px;
  border:1px solid #d8e4ec;
  border-radius:10px;
  padding:6px 8px;
  background:#fff;
  font-size:13px;
}
.pdfCheck .box{
  width:18px;
  height:18px;
  min-width:18px;
  border:2px solid #18384d;
  border-radius:3px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:14px;
  line-height:1;
}
.pdfCheck.checked{
  background:#f0fbf5;
}
.signaturesBlock{
  margin-top:20px;
}
.manualSectionGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;
  margin-top:14px;
}
.manualSectionGrid section{
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:16px;
  padding:12px;
  background:#fff;
}
.manualSectionGrid h4{
  margin:0 0 6px;
  color:var(--primary);
}
.manualSectionGrid p{
  margin:0;
  color:var(--text);
}
@media print{
  .simplifiedVehicleReport{
    max-width:none;
  }
  .pdfCheckGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .pdfCheckGrid{
    grid-template-columns:1fr;
  }
}


/* v41 - Manuale operativo completo */
.manualAppPro .manualHeroTitle{
  background:
    radial-gradient(circle at right top, rgba(11,79,122,.16), transparent 32%),
    linear-gradient(135deg,#f7fbfe,#edf7fc);
  border:1px solid rgba(11,79,122,.12);
}
.manualHeroBadge{
  min-width:160px;
  border-radius:18px;
  background:#fff;
  border:1px solid var(--line);
  padding:12px 14px;
  box-shadow:0 10px 26px rgba(11,79,122,.08);
}
.manualHeroBadge strong{
  display:block;
  color:var(--primary);
}
.manualHeroBadge span{
  color:var(--muted);
  font-weight:800;
}
.manualMenu{
  margin-bottom:16px;
}
.manualIntroBlock{
  border-left:6px solid var(--primary);
}
.manualCallout,
.manualWarning{
  border-radius:16px;
  padding:14px;
  margin:14px 0;
  border:1px solid rgba(11,79,122,.16);
  background:#f7fbfe;
}
.manualWarning{
  border-color:rgba(180,120,0,.25);
  background:#fff8e7;
}
.manualCallout strong,
.manualWarning strong{
  display:block;
  color:var(--primary);
  margin-bottom:4px;
}
.manualSteps{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;
  margin:14px 0;
}
.manualSteps div{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  background:#fff;
}
.manualSteps strong{
  width:28px;
  height:28px;
  border-radius:50%;
  background:var(--primary);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.bigManualGrid{
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}
.manualTable{
  width:100%;
  border-collapse:collapse;
  margin:12px 0;
}
.manualTable th,
.manualTable td{
  border:1px solid var(--line);
  padding:10px;
  text-align:left;
  vertical-align:top;
}
.manualTable th{
  background:#f4f9fc;
  color:var(--primary);
}
.manualAppPro .manualBlock{
  margin-bottom:14px;
}
.manualAppPro .manualBlock h3{
  color:var(--primary);
  border-bottom:1px solid var(--line);
  padding-bottom:8px;
}
.manualAppPro .manualBlock p,
.manualAppPro .manualBlock li{
  line-height:1.55;
}
@media print{
  .manualAppPro .moduleMenu,
  .manualAppPro .manualToolbar,
  .manualAppPro .sectionHomeBar{
    display:none!important;
  }
  .manualAppPro .sectionModule{
    display:block!important;
  }
  .manualAppPro .manualBlock{
    break-inside:avoid;
  }
}


/* v42 - Manuale dettagliato per funzione */
.manualV42 .manualFunctionCard{
  border-left:6px solid var(--primary);
  margin-bottom:18px;
}
.manualV42 .functionHeader{
  display:flex;
  flex-direction:column;
  gap:4px;
  border-bottom:1px solid var(--line);
  padding-bottom:10px;
  margin-bottom:12px;
}
.manualV42 .functionHeader span{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  background:#eef7fc;
  color:var(--primary);
  font-weight:900;
  padding:5px 10px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.manualV42 .functionHeader h3{
  margin:0;
  color:var(--primary);
}
.manualV42 .functionPurpose{
  font-size:1.02rem;
  background:#f8fbfd;
  border:1px solid rgba(11,79,122,.12);
  border-radius:14px;
  padding:12px;
}
.manualV42 .manualFunctionCard h5{
  color:#18384d;
  margin:16px 0 8px;
  font-size:1rem;
}
.manualFunctionTable{
  width:100%;
  border-collapse:collapse;
  margin:10px 0;
}
.manualFunctionTable th,
.manualFunctionTable td{
  border:1px solid var(--line);
  padding:9px;
  vertical-align:top;
  text-align:left;
}
.manualFunctionTable th{
  background:#f4f9fc;
  color:var(--primary);
}
.buttonIndexGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
  margin-top:14px;
}
.buttonIndexGrid section{
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:16px;
  background:#fff;
  padding:12px;
}
.buttonIndexGrid h4{
  margin:0 0 6px;
  color:var(--primary);
}
.buttonIndexGrid p{
  margin:0;
}
.manualV42 .manualSectionGrid.bigManualGrid{
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}
@media print{
  .manualV42 .moduleMenu,
  .manualV42 .manualToolbar,
  .manualV42 .sectionHomeBar{
    display:none!important;
  }
  .manualV42 .sectionModule{
    display:block!important;
  }
  .manualV42 .manualFunctionCard{
    break-inside:avoid;
  }
}


/* v43 - Manuale schede apribili e WebSIT Calderara */
.manualV43 details.manualFunctionDetail{
  border:1px solid var(--line);
  border-left:6px solid var(--primary);
  border-radius:18px;
  background:#fff;
  margin:12px 0;
  box-shadow:0 10px 28px rgba(11,79,122,.07);
  overflow:hidden;
}
.manualV43 details.manualFunctionDetail summary{
  cursor:pointer;
  list-style:none;
  display:grid;
  grid-template-columns: 180px 1fr auto;
  gap:12px;
  align-items:center;
  padding:16px;
  background:linear-gradient(135deg,#fff,#f7fbfe);
}
.manualV43 details.manualFunctionDetail summary::-webkit-details-marker{
  display:none;
}
.manualV43 details.manualFunctionDetail summary::before{
  content:'▶';
  color:var(--primary);
  font-weight:900;
  margin-right:4px;
}
.manualV43 details.manualFunctionDetail[open] summary::before{
  content:'▼';
}
.manualV43 .manualWhere{
  border-radius:999px;
  background:#eef7fc;
  color:var(--primary);
  font-weight:900;
  padding:6px 10px;
  font-size:12px;
  text-transform:uppercase;
}
.manualV43 details.manualFunctionDetail summary strong{
  color:var(--primary);
  font-size:1.04rem;
}
.manualV43 details.manualFunctionDetail summary em{
  color:var(--muted);
  font-style:normal;
  font-weight:800;
}
.manualV43 .manualDetailBody{
  padding:16px 18px 18px;
  border-top:1px solid var(--line);
}
.manualV43 .manualDetailBody h5{
  color:#18384d;
  margin:18px 0 8px;
}
.manualV43 .functionPurpose{
  border:1px solid rgba(11,79,122,.13);
  border-radius:14px;
  padding:12px;
  background:#f8fbfd;
}
.manualV43 .manualFunctionTable{
  width:100%;
  border-collapse:collapse;
  margin:10px 0;
}
.manualV43 .manualFunctionTable th,
.manualV43 .manualFunctionTable td{
  border:1px solid var(--line);
  padding:9px;
  text-align:left;
  vertical-align:top;
}
.manualV43 .manualFunctionTable th{
  background:#f4f9fc;
  color:var(--primary);
}
@media(max-width:800px){
  .manualV43 details.manualFunctionDetail summary{
    grid-template-columns:1fr;
  }
}
@media print{
  .manualV43 details.manualFunctionDetail{
    break-inside:avoid;
  }
  .manualV43 details.manualFunctionDetail:not([open]) .manualDetailBody{
    display:block!important;
  }
  .manualV43 details.manualFunctionDetail summary em{
    display:none;
  }
}


/* v44 - Manuale completo visibile per funzione */
.manualV44 .manualHeroTitle{
  background:
    radial-gradient(circle at right top, rgba(11,79,122,.14), transparent 35%),
    linear-gradient(135deg,#f7fbfe,#eef7fc);
  border:1px solid rgba(11,79,122,.12);
}
.manualV44 .manualVisibleIndex{
  border:1px solid var(--line);
  border-left:6px solid var(--primary);
  border-radius:18px;
  background:#fff;
  padding:14px;
  margin:14px 0;
  box-shadow:0 10px 28px rgba(11,79,122,.06);
}
.manualV44 .manualVisibleIndex h3{
  margin:0 0 10px;
  color:var(--primary);
}
.manualV44 .manualIndexChips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.manualV44 .manualIndexChips a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:34px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#f7fbfe;
  color:var(--primary);
  font-weight:900;
  text-decoration:none;
}
.manualV44 .manualVisibleGrid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}
.manualV44 .manualVisibleCard{
  border:1px solid var(--line);
  border-left:7px solid var(--primary);
  border-radius:22px;
  background:#fff;
  padding:18px;
  box-shadow:0 12px 34px rgba(11,79,122,.08);
  scroll-margin-top:110px;
}
.manualV44 .manualCardHead{
  display:flex;
  gap:14px;
  align-items:flex-start;
  border-bottom:1px solid var(--line);
  padding-bottom:12px;
  margin-bottom:12px;
}
.manualV44 .manualNumber{
  min-width:46px;
  height:46px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#0b4f7a,#0f6fa8);
  color:#fff;
  font-weight:900;
  font-size:18px;
}
.manualV44 .manualSectionName{
  margin:0 0 4px;
  color:var(--muted);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:12px;
}
.manualV44 .manualVisibleCard h3{
  margin:0;
  color:var(--primary);
}
.manualV44 .manualVisibleCard h4{
  color:#18384d;
  margin:18px 0 8px;
}
.manualV44 .manualPurpose{
  border:1px solid rgba(11,79,122,.13);
  border-radius:15px;
  background:#f8fbfd;
  padding:12px;
  font-weight:650;
}
.manualV44 .manualUseTable{
  width:100%;
  border-collapse:collapse;
  margin:10px 0;
}
.manualV44 .manualUseTable th,
.manualV44 .manualUseTable td{
  border:1px solid var(--line);
  padding:9px 10px;
  vertical-align:top;
  text-align:left;
}
.manualV44 .manualUseTable th{
  background:#f4f9fc;
  color:var(--primary);
}
.manualV44 .manualWarn,
.manualV44 .manualTip{
  border-radius:16px;
  padding:12px 14px;
  margin:14px 0 0;
  border:1px solid rgba(180,120,0,.22);
  background:#fff8e7;
}
.manualV44 .manualTip{
  border-color:rgba(11,79,122,.16);
  background:#f4fbff;
}
.manualV44 .manualWarn strong,
.manualV44 .manualTip strong{
  display:block;
  color:var(--primary);
  margin-bottom:6px;
}
.manualV44 .manualWarn ul,
.manualV44 .manualTip ul{
  margin:0;
}
@media print{
  .manualV44 .manualToolbar,
  .manualV44 .sectionHomeBar{
    display:none!important;
  }
  .manualV44 .manualVisibleCard{
    break-inside:avoid;
    box-shadow:none;
  }
}
@media(max-width:760px){
  .manualV44 .manualCardHead{
    flex-direction:column;
  }
  .manualV44 .manualUseTable{
    font-size:12px;
  }
}


/* v45/v54 - Cloud sync Cloudflare */
.cloudSyncPanel{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  border:1px solid var(--line);
  border-left:6px solid var(--primary);
  border-radius:18px;
  background:#fff;
  padding:14px;
  margin-top:14px;
  box-shadow:0 10px 28px rgba(11,79,122,.07);
}
.cloudSyncPanel strong{
  color:var(--primary);
}
.cloudSyncPanel p{
  margin:4px 0 0;
}
.cloudSyncPanel button[disabled]{
  opacity:.45;
  cursor:not-allowed;
}
.status.ok{
  background:#e7f7ed;
  color:#0f6b3a;
}
@media(max-width:850px){
  .cloudSyncPanel{
    flex-direction:column;
    align-items:stretch;
  }
  .cloudSyncPanel .actions{
    justify-content:flex-start;
  }
}


/* v46 - Ordini acquisto vestiario e catasto Cloudflare */
.clothingOrderPrint .agentOrderPage{
  break-inside:avoid;
  page-break-inside:avoid;
  margin-top:18px;
  padding-top:8px;
}
.clothingOrderPrint .agentOrderPage + .agentOrderPage{
  page-break-before:always;
}
.clothingOrderPrint .printTable td,
.clothingOrderPrint .printTable th{
  font-size:10.5px;
}
.pageBreak{
  page-break-before:always;
  break-before:page;
}
@media print{
  .clothingOrderPrint .agentOrderPage{
    break-inside:avoid;
  }
  .clothingOrderPrint h2{
    margin-top:12px;
  }
}


/* v47 - Versione APP in Home */
.homeVersionBox{
  display:inline-flex;
  flex-direction:column;
  gap:3px;
  margin-top:12px;
  padding:10px 14px;
  border:1px solid rgba(11,79,122,.16);
  border-left:5px solid var(--primary);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 24px rgba(11,79,122,.08);
}
.homeVersionBox span{
  font-weight:900;
  color:var(--primary);
}
.homeVersionBox small{
  color:var(--muted);
  font-weight:800;
}
.appVersionTop{
  background:#eef7fc;
  color:var(--primary);
  font-weight:900;
}


/* v48 - Home Cloud login e PDF robusti */
.homeCloudPanel{display:grid;gap:10px;margin-top:14px;padding:14px;border:1px solid rgba(11,79,122,.16);border-left:6px solid var(--primary);border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(11,79,122,.08)}
.homeCloudPanel strong{color:var(--primary)}
.homeCloudPanel p{margin:3px 0 0}
.homeCloudLoginFields{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}
.homeCloudLoginFields input{min-width:0}
#cloudStatusTop{cursor:pointer}
#cloudStatusTop:hover{text-decoration:underline}
@media(max-width:760px){.homeCloudLoginFields{grid-template-columns:1fr}.homeCloudPanel .actions{flex-direction:column;align-items:stretch}.homeCloudPanel button{width:100%}}


/* v49 - Fix stampe e ordinanze */
.ordinanceCard .ordinanceSummaryBox{
  border-left:5px solid var(--primary);
}


/* v50 - Accesso APP, Home pulita e controlli ordinanze */
.appLoginGate{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(8,31,46,.72);
  backdrop-filter:blur(8px);
  padding:20px;
}
.appLoginGate.hidden{
  display:none!important;
}
.appLoginCard{
  width:min(460px,100%);
  border-radius:28px;
  background:#fff;
  box-shadow:0 28px 80px rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.55);
  padding:28px;
  text-align:left;
}
.appLoginCard img{
  height:74px;
  width:auto;
  display:block;
  margin:0 auto 14px;
}
.appLoginCard h1{
  margin:0;
  color:var(--primary);
  text-align:center;
}
.appLoginCard p{
  color:var(--muted);
  text-align:center;
}
.appLoginFields{
  display:grid;
  gap:8px;
  margin:16px 0;
}
.appLoginFields label{
  font-weight:900;
  color:#18384d;
}
body.appLocked .topbar,
body.appLocked .shell{
  filter:blur(2px);
  pointer-events:none;
  user-select:none;
}
.homeWelcome{
  grid-template-columns:1fr!important;
}
.homeWelcome > div:first-child{
  max-width:980px;
}
.homeCloudPanel{
  border-left:6px solid var(--primary);
}
.simpleModal{
  position:fixed;
  inset:0;
  z-index:99990;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(8,31,46,.58);
  padding:18px;
}
.simpleModal.hidden{
  display:none!important;
}
.simpleModalCard{
  width:min(860px,100%);
  max-height:92vh;
  overflow:auto;
  background:#fff;
  border-radius:24px;
  padding:18px;
  box-shadow:0 24px 70px rgba(0,0,0,.25);
}
.ordinanceControlCard .sectionTitle{
  margin-bottom:12px;
}
.ordinanceControlsTable th,
.ordinanceControlsTable td{
  font-size:12px;
}
.ordinanceCard .pill.ok{
  background:#e7f7ed;
  color:#0f6b3a;
}
.ordinanceCard .pill.warn{
  background:#fff8e7;
  color:#775200;
}
@media(max-width:760px){
  .appLoginCard{
    padding:22px;
  }
}
@media print{
  .appLoginGate,
  .simpleModal{
    display:none!important;
  }
}


/* v51 - Smart sync, fornitori e flag controlli */
.ordinanceCard .pill.bad,
.pill.bad{
  background:#ffe8e8!important;
  color:#9f1d1d!important;
  border-color:rgba(159,29,29,.25)!important;
}
.clothingItemsSupplierTable select,
.clothingOrderTable .clothingOrderSupplierSelect{
  min-width:145px;
}
.supplierOrderPage{
  page-break-inside:avoid;
  break-inside:avoid;
  margin-bottom:22px;
}
.supplierOrderPage + .supplierOrderPage{
  page-break-before:always;
}
.agentOrderBlock{
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:16px;
  padding:10px;
  margin:12px 0;
  page-break-inside:avoid;
}
.clothingSuppliersBadge{
  display:inline-flex;
  gap:6px;
  flex-wrap:wrap;
}
@media print{
  .supplierOrderPage{
    page-break-inside:avoid;
  }
}


/* v52 - Pulsante installazione PWA */
.installTopBtn,
#homeInstallBtn{
  font-weight:900;
}
.installTopBtn.installReady,
#homeInstallBtn.installReady{
  background:#e7f7ed!important;
  color:#0f6b3a!important;
  border-color:rgba(15,107,58,.25)!important;
}
.homeInstallPanel{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-top:12px;
  padding:14px;
  border:1px solid rgba(11,79,122,.16);
  border-left:6px solid var(--primary);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 24px rgba(11,79,122,.08);
}
.homeInstallPanel strong{
  color:var(--primary);
}
.homeInstallPanel p{
  margin:3px 0 0;
}
.installHelpCard{
  width:min(980px,100%);
}
.installHelpGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  margin:16px 0;
}
.installHelpGrid article{
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:16px;
  background:#fff;
  padding:12px;
}
.installHelpGrid h3{
  margin-top:0;
  color:var(--primary);
}
.installDynamicNotice{
  border:1px solid rgba(11,79,122,.18);
  border-left:6px solid var(--primary);
  border-radius:16px;
  background:#f7fbfe;
  padding:12px;
  font-weight:800;
  color:#18384d;
}
#installStatusText.ok{
  color:#0f6b3a;
}
#installStatusText.warn{
  color:#775200;
}
@media(max-width:760px){
  .homeInstallPanel{
    flex-direction:column;
    align-items:stretch;
  }
}
@media print{
  .homeInstallPanel,
  .installTopBtn,
  #installHelpModal{
    display:none!important;
  }
}


/* v53 - Gestione APP e sincronizzazione 30 secondi */
.appInstallPanel{
  margin-top:14px;
  margin-bottom:14px;
}
#cloudIntervalStatus{
  margin-top:4px;
  font-weight:800;
  color:var(--primary);
}
#cloudSyncPanel{
  margin-top:14px;
}


/* v54 - Cloudflare only, utenti e vestiario semplificato */
.permissionGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:10px;
  margin:12px 0 18px;
}
.permRow{
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:14px;
  background:#fff;
  padding:10px;
}
.permRow label{
  display:block;
  font-weight:900;
  color:var(--primary);
  margin-bottom:6px;
}
.hiddenByPermission{
  display:none!important;
}
.readOnlySection{
  outline:2px dashed rgba(180,120,0,.18);
  outline-offset:6px;
}
.readOnlySection::before{
  content:'Modalità sola lettura: le modifiche non sono consentite per questo utente.';
  display:block;
  margin:0 0 12px;
  padding:10px 14px;
  border:1px solid rgba(180,120,0,.25);
  border-left:6px solid #b98200;
  border-radius:14px;
  background:#fff8e7;
  color:#775200;
  font-weight:800;
}
.userManagementCard .registryTable td{
  vertical-align:top;
}
.clothingWorkflowHelp{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:10px;
  margin:12px 0 16px;
  background:linear-gradient(135deg,#f7fbfe,#fff);
}
.workflowStep{
  display:flex;
  gap:10px;
  align-items:center;
  border:1px solid rgba(11,79,122,.12);
  border-radius:16px;
  background:#fff;
  padding:10px;
}
.workflowStep strong{
  width:36px;
  height:36px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--primary);
  color:#fff;
}
.workflowStep span{
  font-weight:850;
  color:#18384d;
}
#supabaseStatus::before{
  content:'';
}
@media(max-width:760px){
  .permissionGrid,
  .clothingWorkflowHelp{
    grid-template-columns:1fr;
  }
}


/* v55 - Vestiario: sezioni logiche e stampe complete */
.clothingToolbarCard{
  border-left:6px solid var(--primary);
}
#clothing .moduleMenu{
  margin-bottom:14px;
}
.clothingSheet .sectionTitle{
  align-items:flex-start;
}
.clothingFullPrintTable{
  width:100%;
  border-collapse:collapse;
  table-layout:auto;
}
.clothingFullPrintTable th,
.clothingFullPrintTable td{
  font-size:9.8px;
  vertical-align:top;
  white-space:normal;
  word-break:normal;
}
.clothingFullPrintTable .needRow td{
  background:#fff8e7;
}
.clothingSheetPrint h2{
  margin-top:18px;
  border-bottom:2px solid var(--line);
  padding-bottom:5px;
}
.fullClothingSheet .printHeader{
  margin-bottom:12px;
}
@media print{
  .clothingSheetPrint .tableScroll{
    overflow:visible!important;
    max-height:none!important;
  }
  .clothingFullPrintTable{
    page-break-inside:auto;
  }
  .clothingFullPrintTable tr{
    page-break-inside:avoid;
    break-inside:avoid;
  }
  .clothingFullPrintTable th,
  .clothingFullPrintTable td{
    font-size:8.5px;
    padding:4px;
  }
  .fullClothingSheet h2{
    page-break-after:avoid;
  }
}


/* v57 - Ufficio Mobile mercati */
.mobileOfficeHome{
  border-left:6px solid #2563eb;
}
.mobileOfficeCard h3{
  margin-top:18px;
}
.mobileOfficeOperatorsRows{
  display:grid;
  gap:10px;
}
.moOperatorRow{
  display:grid;
  grid-template-columns:80px minmax(220px,1fr) minmax(160px,220px) auto;
  gap:10px;
  align-items:end;
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:16px;
  padding:10px;
  background:#fff;
}
.moOperatorRow label{
  font-weight:900;
  color:var(--primary);
}
.moRowActions{
  display:flex;
  align-items:end;
}
.mobileOfficeActivities .registryTable input{
  width:100%;
}
.mobileOfficeActivities .moActivityQty{
  max-width:110px;
}
.mobileChartsGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:14px;
  margin-top:16px;
}
.chartCard{
  padding:14px;
}
.barChart{
  display:grid;
  gap:10px;
}
.barRow{
  display:grid;
  grid-template-columns:minmax(120px,1fr) 2fr auto;
  gap:10px;
  align-items:center;
}
.barLabel{
  font-weight:800;
  color:#18384d;
}
.barTrack{
  height:14px;
  border-radius:999px;
  background:#eaf2f7;
  overflow:hidden;
}
.barFill{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,var(--primary),#38bdf8);
}
.mobileChief{
  margin-top:26px;
  text-align:center;
  font-size:14px;
}
.mobileOfficePrint h2{
  margin-top:16px;
  border-bottom:2px solid var(--line);
  padding-bottom:5px;
}
@media(max-width:850px){
  .moOperatorRow{
    grid-template-columns:1fr;
  }
}
@media print{
  .mobileOfficePrint .printTable th,
  .mobileOfficePrint .printTable td{
    font-size:10px;
    padding:5px;
  }
  .mobileChartsGrid,
  .barChart{
    display:block;
  }
  .barRow{
    page-break-inside:avoid;
    margin-bottom:6px;
  }
}


/* v58 - Ufficio Mobile filtri, località automatica e stampe in pagina */
.moRegisterPrint{
  width:100%;
  overflow:hidden;
}
.moPrintTableFit{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
}
.moPrintTableFit th,
.moPrintTableFit td{
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
  vertical-align:top;
}
.moPrintPage{
  page-break-before:always;
}
.moPrintPage:first-of-type{
  page-break-before:auto;
}
#moFilterLocality,
#moFilterOperator,
#moFilterActivity,
#moPrintMode{
  min-height:42px;
}
@media print{
  .moRegisterPrint{
    max-width:100%;
  }
  .moPrintTableFit{
    max-width:100%;
    width:100%!important;
    table-layout:fixed;
  }
  .moPrintTableFit th,
  .moPrintTableFit td{
    font-size:7.6px!important;
    padding:3px!important;
    line-height:1.12!important;
  }
  .moRegisterPrint .printHeader h1{
    font-size:16px!important;
  }
  .moRegisterPrint .printHeader p{
    font-size:10px!important;
  }
  .moPrintPage{
    page-break-before:always;
  }
  @page{
    size:A4 landscape;
    margin:8mm;
  }
}


/* v59 - Import storico Ufficio Mobile 2025 */
#moImport2025Status{
  margin-top:8px;
}


/* v60 - Ufficio Mobile: capopattuglia sulla riga operatore */
.moOperatorRowV60{
  grid-template-columns:80px minmax(220px,1fr) minmax(150px,190px) minmax(130px,160px) auto;
}
.moChiefCell label:first-child{
  display:block;
  font-weight:900;
  color:var(--primary);
  margin-bottom:5px;
}
.flagLabel{
  display:inline-flex!important;
  align-items:center;
  gap:7px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#f7fbfe;
  font-weight:900!important;
  color:#18384d!important;
}
.flagLabel input{
  width:auto!important;
}
@media(max-width:980px){
  .moOperatorRowV60{
    grid-template-columns:1fr;
  }
}
@media print{
  .moChiefCell,
  .flagLabel{
    border:none!important;
    background:transparent!important;
  }
}


/* v61 - Auto-save Cloudflare immediato */
#cloudIntervalStatus{
  font-weight:900;
}
#cloudAutoBtn.ok,
#cloudAutoBtn.ghost.ok{
  background:#e7f7ed!important;
  color:#0f6b3a!important;
  border-color:rgba(15,107,58,.25)!important;
}

/* v63 - cache refresh */
.appVersionTop{font-weight:900;}


/* v64 - Backup JSON ed Excel */
.backupExcelCard{
  border-left:6px solid var(--primary);
  margin-bottom:16px;
}
.backupExcelGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:14px;
}
.backupExcelGrid .editorBox{
  min-height:100%;
}
.backupExcelGrid .actions{
  gap:8px;
}
#excelFilesList code{
  white-space:normal;
  word-break:break-word;
}


/* v65 - cambio password utenti e no-cache */
.ownPasswordCard{
  margin:12px 0 18px;
  border-left:5px solid var(--primary);
}
#changeOwnPasswordTopBtn.hidden{
  display:none!important;
}
.forceRefreshNotice{
  font-weight:900;
}

/* v66 - login PWA indipendente da Cloudflare */
.appVersionTop{font-weight:900;}


/* v67 - Grafica più moderna, residenze e anteprima PDF */
:root{
  --primary:#0b4b73;
  --primary2:#0ea5b7;
  --accent:#f59e0b;
  --surface:#ffffff;
  --soft:#eef7fb;
  --line:rgba(15,23,42,.10);
  --shadow:0 18px 45px rgba(2,8,23,.12);
}
body{
  background:
    radial-gradient(circle at top left, rgba(14,165,183,.24), transparent 34rem),
    radial-gradient(circle at top right, rgba(245,158,11,.18), transparent 30rem),
    linear-gradient(180deg,#f5fbff 0%,#eef6f9 42%,#f7fafc 100%);
}
.topbar{
  background:linear-gradient(135deg,rgba(11,75,115,.97),rgba(14,165,183,.92));
  color:#fff;
  border:0;
  box-shadow:var(--shadow);
}
.topbar .brand h1,.topbar .brandSubtitle,.topbar .eyebrow{color:#fff}
.status,.pill{
  border-radius:999px;
  box-shadow:0 3px 10px rgba(15,23,42,.08);
}
.tabs.compactTabs{
  background:rgba(255,255,255,.80);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:0 10px 30px rgba(15,23,42,.08);
  backdrop-filter:blur(10px);
  border-radius:22px;
  padding:8px;
}
.tab{
  border-radius:999px!important;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.tab:hover,.homeActionCard:hover,.card:hover{
  transform:translateY(-1px);
}
.tab.active{
  background:linear-gradient(135deg,var(--primary),var(--primary2))!important;
  color:#fff!important;
  box-shadow:0 8px 22px rgba(14,75,115,.24);
}
.card,.editorBox,.notice{
  border:1px solid rgba(255,255,255,.72);
  border-radius:22px;
  box-shadow:0 12px 38px rgba(15,23,42,.08);
}
.card{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
}
.homeWelcome{
  background:linear-gradient(135deg,#0b4b73,#0ea5b7);
  color:#fff;
  border-radius:28px;
  box-shadow:var(--shadow);
  overflow:hidden;
  position:relative;
}
.homeWelcome:after{
  content:"";
  position:absolute;
  right:-80px;
  top:-80px;
  width:260px;
  height:260px;
  border-radius:50%;
  background:rgba(255,255,255,.16);
}
.homeWelcome h2,.homeWelcome p,.homeWelcome .eyebrow{color:#fff}
.homeActionCard{
  border-radius:24px!important;
  border:1px solid rgba(255,255,255,.78)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(247,252,255,.92))!important;
  box-shadow:0 10px 30px rgba(15,23,42,.08)!important;
  transition:transform .15s ease, box-shadow .15s ease;
}
.homeActionCard:hover{
  box-shadow:0 18px 42px rgba(15,23,42,.14)!important;
}
.homeIcon{
  display:inline-grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:15px;
  background:linear-gradient(135deg,rgba(14,165,183,.16),rgba(245,158,11,.14));
}
button,.buttonLike{
  border-radius:999px!important;
}
button:not(.ghost):not(.secondary), .buttonLike:not(.ghost){
  background:linear-gradient(135deg,var(--primary),var(--primary2))!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 10px 24px rgba(11,75,115,.22);
}
.sectionTitle.residenceHero{
  background:linear-gradient(135deg,rgba(11,75,115,.97),rgba(14,165,183,.90));
  color:#fff;
  border-radius:26px;
  padding:22px;
  box-shadow:var(--shadow);
}
.residenceHero h2,.residenceHero p,.residenceHero .eyebrow{color:#fff}
.residenceFormCard{
  border-top:6px solid var(--primary2);
}
.residenceAgeBox{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
  margin:14px 0;
}
.residenceAgeBox>div{
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
}
.residenceAgeBox strong{
  display:block;
  color:#475569;
  font-size:.88rem;
  margin-bottom:4px;
}
.residenceAgeBox span{
  font-size:1.15rem;
  font-weight:900;
  color:#0f172a;
}
.residenceTable tr.yellow td{
  background:#fff7d6!important;
}
.residenceTable tr.red td{
  background:#ffe2e2!important;
}
.residenceTable tr.closed td{
  background:#ecfdf3!important;
}
.residenceTable tr.open td{
  background:#eff8ff!important;
}
.kpiCard{
  background:linear-gradient(180deg,#fff,#f8fafc);
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  box-shadow:0 10px 26px rgba(15,23,42,.08);
}
.kpiCard strong{
  display:block;
  font-size:2rem;
  margin-top:6px;
}
.kpiCard.warn{border-color:#facc15;background:#fffbeb}
.kpiCard.bad{border-color:#f87171;background:#fef2f2}
.kpiCard.ok{border-color:#34d399;background:#ecfdf5}
.kpiCard.info{border-color:#38bdf8;background:#eff6ff}
.residenceCharts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:16px;
  margin-top:18px;
}
.chartCard{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:16px;
  box-shadow:0 10px 28px rgba(15,23,42,.07);
}
.barLine{
  display:grid;
  grid-template-columns:minmax(120px,1fr) 2fr 48px;
  align-items:center;
  gap:10px;
  margin:8px 0;
}
.barLine div{
  height:12px;
  border-radius:999px;
  background:#e2e8f0;
  overflow:hidden;
}
.barLine div i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,var(--primary),var(--primary2));
}
.pdfPreviewToolbar button{
  background:#fff!important;
  color:#0f2537!important;
}
@media print{
  body{background:#fff!important}
  .card,.editorBox,.notice{box-shadow:none!important}
}


/* v68 - Vestiario ordini più leggibili */
.clothingOrderHero{
  background:linear-gradient(135deg,rgba(7,82,139,.08),rgba(25,135,84,.08));
  border:1px solid rgba(7,82,139,.18);
}
.orderDiagnostics{
  margin-top:14px;
  padding:12px;
  border-radius:18px;
  background:#f7fbff;
  border:1px solid rgba(7,82,139,.14);
}
.orderDiagGrid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom:8px;
}
.clothingOrderTableV68 th{
  position:sticky;
  top:0;
  z-index:2;
}
.clothingOrderTableV68 .orderDueRow{
  box-shadow:inset 5px 0 0 rgba(220,53,69,.7);
}
.clothingOrderTableV68 .orderCoveredRow{
  opacity:.78;
  box-shadow:inset 5px 0 0 rgba(25,135,84,.65);
}
.clothingOrderTableV68 .orderSelected{
  background:rgba(25,135,84,.075);
}
.orderCheckLabel{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-weight:900;
  white-space:nowrap;
}
.clothingOrderQty{
  max-width:90px;
}
@media(max-width:900px){
  .clothingOrderTableV68{
    min-width:1350px;
  }
}


/* v69 - avvio protetto ed export Excel tabelle */
#appLoginGate input,
#appLoginGate button{
  pointer-events:auto!important;
}
.excelExportV69Hint{
  border-left:5px solid var(--primary);
}
.startupSafeBadge{
  font-weight:900;
}


/* v70 - login locale sempre attivo */
#appLoginGate{
  pointer-events:auto!important;
}
#appLoginGate input,
#appLoginGate button,
.appLoginCard{
  pointer-events:auto!important;
  user-select:auto!important;
}
body.appLocked #appLoginGate{
  filter:none!important;
}
body.appLocked .topbar,
body.appLocked .shell{
  pointer-events:none;
}
.localStartupNoteV70{
  border-left:5px solid var(--primary);
}


/* v71 - pulsanti sezioni leggibili su sfondo blu */
.tabs.compactTabs,
.moduleMenu{
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.24);
  border-radius:22px;
  padding:8px;
  backdrop-filter:blur(8px);
}
.tabs.compactTabs .tab,
.moduleMenu .moduleBtn,
.sectionHomeBar .ghost,
.appSystemBar .ghost,
button.compactHomeBtn,
[data-go-section].ghost{
  background:rgba(255,255,255,.96)!important;
  color:#07385f!important;
  border:1px solid rgba(7,56,95,.22)!important;
  box-shadow:0 8px 22px rgba(4,32,55,.14)!important;
  font-weight:900!important;
}
.tabs.compactTabs .tab:hover,
.moduleMenu .moduleBtn:hover,
.sectionHomeBar .ghost:hover,
.appSystemBar .ghost:hover,
[data-go-section].ghost:hover{
  transform:translateY(-1px);
  background:#ffffff!important;
  color:#031f36!important;
  border-color:rgba(7,56,95,.42)!important;
}
.tabs.compactTabs .tab.active,
.moduleMenu .moduleBtn.active{
  background:linear-gradient(135deg,#ffffff,#e8f4ff)!important;
  color:#03294a!important;
  border:2px solid #ffffff!important;
  outline:3px solid rgba(255,214,10,.72);
  box-shadow:0 10px 26px rgba(0,0,0,.22)!important;
}
.shell .sectionHomeBar{
  background:linear-gradient(135deg,rgba(3,48,84,.95),rgba(7,82,139,.92));
  color:#fff;
  border-radius:18px;
  padding:10px 12px;
  margin-bottom:12px;
}
.sectionHomeBar strong{
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.homeCard .buttonLike,
.card .buttonLike,
.card button.ghost{
  border-color:rgba(7,56,95,.28);
}


/* v72 - Home sezioni chiare e vestiario leggero */
.homeWelcome,
.homeIntro{
  background:linear-gradient(135deg,#ffffff,#f2f8ff)!important;
  color:#0b2538!important;
  border:1px solid rgba(7,56,95,.12)!important;
}
.homeWelcome h2,
.homeIntro h2{
  color:#082e51!important;
}
.homeWelcome p,
.homeIntro p,
.homeActionCard small{
  color:#334e63!important;
}
.homeActionsGrid.homeSectionsGrid{
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;
  gap:16px!important;
}
.homeActionCard,
.homeActionCard.service,
.homeActionCard.manuals,
.homeActionCard.forms,
.homeActionCard.abandoned,
.homeActionCard.gps,
.homeActionCard.pgHome,
.homeActionCard.clothingHome,
.homeActionCard.streetsHome,
.homeActionCard.ordinancesHome,
.homeActionCard.mobileOfficeHome,
.homeActionCard.residenceHome,
.homeActionCard.pcHome,
.homeActionCard.manualeHome,
.homeActionCard.dashboardHome,
.homeActionCard.adminHome{
  min-height:150px!important;
  padding:22px!important;
  border-radius:24px!important;
  background:
    linear-gradient(90deg,rgba(7,82,139,.95) 0 8px,transparent 8px),
    linear-gradient(180deg,#ffffff,#f5faff)!important;
  color:#082e51!important;
  border:1px solid rgba(7,56,95,.18)!important;
  box-shadow:0 12px 30px rgba(7,56,95,.12)!important;
}
.homeActionCard:hover{
  transform:translateY(-2px);
  border-color:rgba(7,82,139,.42)!important;
  box-shadow:0 18px 42px rgba(7,56,95,.18)!important;
}
.homeActionCard strong{
  color:#082e51!important;
  font-size:22px!important;
  line-height:1.15!important;
}
.homeIcon{
  background:#e8f3ff!important;
  color:#08406f!important;
  border:1px solid rgba(7,82,139,.20)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);
}
.homeVersionBox{
  background:#e8f3ff!important;
  color:#082e51!important;
  border:1px solid rgba(7,82,139,.16)!important;
}
.clothingOrderTableV72{
  min-width:1350px;
}
.orderPagerV72{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 12px;
  padding:10px;
  border-radius:16px;
  background:#f4f9ff;
  border:1px solid rgba(7,82,139,.12);
}
.clothingOrderTableV72 .orderDueRow{
  box-shadow:inset 5px 0 0 rgba(220,53,69,.68);
}
.clothingOrderTableV72 .orderCoveredRow{
  opacity:.82;
  box-shadow:inset 5px 0 0 rgba(25,135,84,.62);
}
.clothingOrderTableV72 .orderSelected{
  background:rgba(25,135,84,.08);
}
@media(max-width:760px){
  .homeActionsGrid.homeSectionsGrid{grid-template-columns:1fr!important}
  .homeActionCard{min-height:132px!important}
}


/* v73 - Home riprogettata: massima leggibilità */
body{
  background:#eef4fa!important;
}
#home.panel{
  background:transparent!important;
}
.homeOnly{
  background:#eef4fa!important;
  border-radius:28px;
  padding:10px;
}
.homeWelcome,
.homeIntro{
  background:#ffffff!important;
  color:#0c2638!important;
  border:1px solid #d8e7f3!important;
  border-radius:28px!important;
  box-shadow:0 12px 32px rgba(16,55,84,.10)!important;
}
.homeWelcome .eyebrow,
.homeIntro .eyebrow{
  color:#0b4f7a!important;
  font-weight:900!important;
}
.homeWelcome h2,
.homeIntro h2{
  color:#082b49!important;
  font-weight:950!important;
}
.homeWelcome p,
.homeIntro p{
  color:#30495c!important;
}
.homeActionsGrid.homeSectionsGrid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
}
.homeActionCard,
.homeActionCard.service,
.homeActionCard.manuals,
.homeActionCard.forms,
.homeActionCard.abandoned,
.homeActionCard.gps,
.homeActionCard.pgHome,
.homeActionCard.clothingHome,
.homeActionCard.streetsHome,
.homeActionCard.ordinancesHome,
.homeActionCard.mobileOfficeHome,
.homeActionCard.residenceHome,
.homeActionCard.pcHome,
.homeActionCard.manualeHome,
.homeActionCard.dashboardHome,
.homeActionCard.adminHome{
  position:relative!important;
  display:grid!important;
  grid-template-columns:58px 1fr!important;
  grid-template-rows:auto auto!important;
  column-gap:16px!important;
  row-gap:4px!important;
  min-height:118px!important;
  padding:20px 22px!important;
  border-radius:22px!important;
  background:#ffffff!important;
  color:#0b273b!important;
  border:2px solid #d7e6f2!important;
  box-shadow:0 10px 24px rgba(8,47,79,.10)!important;
  text-align:left!important;
  overflow:hidden!important;
}
.homeActionCard::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:8px;
  background:#0b4f7a;
}
.homeActionCard:hover{
  transform:translateY(-2px)!important;
  background:#f9fcff!important;
  border-color:#0b6e9f!important;
  box-shadow:0 18px 38px rgba(8,47,79,.18)!important;
}
.homeIcon{
  grid-row:1/3!important;
  grid-column:1!important;
  width:54px!important;
  height:54px!important;
  border-radius:16px!important;
  background:#0b4f7a!important;
  color:#ffffff!important;
  border:0!important;
  box-shadow:none!important;
  font-size:27px!important;
}
.homeActionCard strong{
  grid-column:2!important;
  color:#082b49!important;
  font-size:20px!important;
  line-height:1.15!important;
  font-weight:950!important;
  text-shadow:none!important;
}
.homeActionCard small{
  grid-column:2!important;
  color:#36546a!important;
  font-size:14px!important;
  line-height:1.35!important;
  opacity:1!important;
  max-width:none!important;
}
.homeVersionBox{
  background:#f0f7fd!important;
  color:#082b49!important;
  border:1px solid #d7e6f2!important;
  border-radius:16px!important;
}
.homeVersionBox small{
  color:#36546a!important;
}
.tabs.compactTabs .tab,
.moduleMenu .moduleBtn,
.sectionHomeBar .ghost,
.appSystemBar .ghost,
[data-go-section].ghost{
  background:#ffffff!important;
  color:#082b49!important;
  border:2px solid #d7e6f2!important;
  box-shadow:0 8px 20px rgba(8,47,79,.10)!important;
}
.tabs.compactTabs .tab.active,
.moduleMenu .moduleBtn.active{
  background:#e8f3ff!important;
  color:#061f35!important;
  border-color:#0b6e9f!important;
  outline:0!important;
}
.orderPagerV73{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 12px;
  padding:10px;
  border-radius:16px;
  background:#f4f9ff;
  border:1px solid rgba(7,82,139,.12);
}
.clothingOrderTableV73{
  min-width:1340px;
}
.clothingOrderTableV73 .orderDueRow{
  box-shadow:inset 5px 0 0 rgba(220,53,69,.68);
}
.clothingOrderTableV73 .orderCoveredRow{
  opacity:.82;
  box-shadow:inset 5px 0 0 rgba(25,135,84,.62);
}
.clothingOrderTableV73 .orderSelected{
  background:rgba(25,135,84,.08);
}
@media(max-width:760px){
  .homeActionsGrid.homeSectionsGrid{grid-template-columns:1fr!important}
  .homeActionCard{grid-template-columns:50px 1fr!important;min-height:108px!important;padding:16px 18px!important}
  .homeIcon{width:48px!important;height:48px!important;font-size:24px!important}
}


/* v74 - forzatura definitiva Home chiara: nessuna card blu scura */
html body #home,
html body #home.panel,
html body #home .homeOnly{
  background:#f3f6fa!important;
  color:#111827!important;
}
html body #home .homeWelcome,
html body #home .homeIntro{
  background:#ffffff!important;
  background-image:none!important;
  color:#111827!important;
  border:1px solid #d1d5db!important;
  box-shadow:0 8px 22px rgba(15,23,42,.08)!important;
}
html body #home .homeWelcome *,
html body #home .homeIntro *{
  color:#111827!important;
  text-shadow:none!important;
}
html body #home .homeActionsGrid.homeSectionsGrid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(310px,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
  background:transparent!important;
}
html body #home .homeActionsGrid.homeSectionsGrid > button.homeActionCard,
html body #home button.homeActionCard,
html body button.homeActionCard.service,
html body button.homeActionCard.manuals,
html body button.homeActionCard.forms,
html body button.homeActionCard.abandoned,
html body button.homeActionCard.gps,
html body button.homeActionCard.pgHome,
html body button.homeActionCard.clothingHome,
html body button.homeActionCard.streetsHome,
html body button.homeActionCard.ordinancesHome,
html body button.homeActionCard.mobileOfficeHome,
html body button.homeActionCard.residenceHome,
html body button.homeActionCard.pcHome,
html body button.homeActionCard.manualeHome,
html body button.homeActionCard.dashboardHome,
html body button.homeActionCard.adminHome{
  background:#ffffff!important;
  background-image:none!important;
  color:#111827!important;
  border:1px solid #cbd5e1!important;
  box-shadow:0 8px 18px rgba(15,23,42,.08)!important;
  border-radius:18px!important;
  min-height:120px!important;
  padding:18px 20px!important;
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  gap:6px 14px!important;
  align-items:start!important;
  text-align:left!important;
  opacity:1!important;
  filter:none!important;
}
html body #home button.homeActionCard::before,
html body #home button.homeActionCard::after{
  display:none!important;
  content:none!important;
  background:transparent!important;
}
html body #home button.homeActionCard:hover{
  background:#f8fafc!important;
  background-image:none!important;
  color:#111827!important;
  border-color:#64748b!important;
  transform:translateY(-1px)!important;
  box-shadow:0 12px 26px rgba(15,23,42,.12)!important;
}
html body #home button.homeActionCard .homeIcon{
  grid-row:1 / span 2!important;
  grid-column:1!important;
  width:50px!important;
  height:50px!important;
  border-radius:14px!important;
  background:#e2e8f0!important;
  background-image:none!important;
  color:#0f172a!important;
  border:1px solid #cbd5e1!important;
  box-shadow:none!important;
  display:grid!important;
  place-items:center!important;
  font-size:25px!important;
  opacity:1!important;
  text-shadow:none!important;
}
html body #home button.homeActionCard strong{
  grid-column:2!important;
  color:#0f172a!important;
  font-size:20px!important;
  font-weight:900!important;
  line-height:1.15!important;
  text-shadow:none!important;
  opacity:1!important;
}
html body #home button.homeActionCard small{
  grid-column:2!important;
  color:#334155!important;
  font-size:14px!important;
  line-height:1.35!important;
  text-shadow:none!important;
  opacity:1!important;
  max-width:none!important;
}
html body #home .homeVersionBox,
html body #home .homeVersionBox *{
  background:#f8fafc!important;
  color:#111827!important;
  border-color:#cbd5e1!important;
  text-shadow:none!important;
}


/* v75 - Home ripensata chiara + Droni UAS + Backup */
html body #home{
  background:#f6f8fb!important;
  color:#0f172a!important;
}
html body #home .homeWelcome{
  background:#ffffff!important;
  background-image:none!important;
  color:#0f172a!important;
  border:1px solid #dbe4ef!important;
  box-shadow:0 12px 32px rgba(15,23,42,.08)!important;
}
html body #home .homeWelcome h2,
html body #home .homeWelcome p,
html body #home .homeVersionBox,
html body #home .homeVersionBox *{
  color:#0f172a!important;
}
html body #home .homeActionsGrid.homeSectionsGrid{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important;
  gap:14px!important;
  padding:8px 0 18px!important;
}
html body #home .homeActionsGrid.homeSectionsGrid > button.homeActionCard,
html body #home button.homeActionCard,
html body #home .homeActionCard.service,
html body #home .homeActionCard.manuals,
html body #home .homeActionCard.forms,
html body #home .homeActionCard.pgHome,
html body #home .homeActionCard.clothingHome,
html body #home .homeActionCard.streetsHome,
html body #home .homeActionCard.ordinancesHome,
html body #home .homeActionCard.mobileOfficeHome,
html body #home .homeActionCard.residenceHome,
html body #home .homeActionCard.dronesHome,
html body #home .homeActionCard.abandoned,
html body #home .homeActionCard.gps,
html body #home .homeActionCard.pcHome,
html body #home .homeActionCard.manualeHome,
html body #home .homeActionCard.dashboardHome,
html body #home .homeActionCard.adminHome{
  background:#ffffff!important;
  background-image:none!important;
  color:#0f172a!important;
  border:1px solid #d6dee9!important;
  border-left:7px solid #2563eb!important;
  border-radius:20px!important;
  box-shadow:0 8px 24px rgba(15,23,42,.075)!important;
  min-height:132px!important;
  padding:18px!important;
  text-align:left!important;
}
html body #home .homeActionCard strong{
  color:#0f172a!important;
  font-size:20px!important;
  line-height:1.15!important;
}
html body #home .homeActionCard small{
  color:#475569!important;
  font-size:14px!important;
  line-height:1.35!important;
}
html body #home .homeActionCard .homeIcon{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  border:1px solid #bfdbfe!important;
  box-shadow:none!important;
}
html body #home .homeActionCard:hover{
  transform:translateY(-2px)!important;
  border-color:#93c5fd!important;
  border-left-color:#1d4ed8!important;
  box-shadow:0 14px 34px rgba(37,99,235,.14)!important;
}
.dronesHero{background:linear-gradient(135deg,#ffffff,#eef6ff)!important;border:1px solid #d8e7f8!important}
.dronesMenu .moduleBtn{background:#fff!important;color:#0f172a!important;border:1px solid #d6dee9!important}
.dronesMenu .moduleBtn.active{background:#eff6ff!important;color:#1d4ed8!important;border-color:#93c5fd!important;outline:2px solid rgba(37,99,235,.18)!important}
.riskConsiderations table td{vertical-align:top}
.riskConsiderations input,.riskConsiderations select{min-width:130px;width:100%}
.riskPreviewGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0}
.riskTile{border-radius:18px;padding:14px;border:1px solid #d6dee9;background:#fff;display:flex;flex-direction:column;gap:6px}
.riskTile.ok{border-color:#86efac;background:#f0fdf4}.riskTile.warn{border-color:#fde68a;background:#fffbeb}.riskTile.orange{border-color:#fdba74;background:#fff7ed}.riskTile.bad{border-color:#fca5a5;background:#fef2f2}
.riskTile strong{font-size:13px;text-transform:uppercase;letter-spacing:.04em}.riskTile span{font-size:20px;font-weight:900}
.compactTable th,.compactTable td{font-size:13px;padding:8px 10px}.compactTable input,.compactTable select{font-size:13px;padding:7px 8px}
.backupCompleteV75Box{border:2px solid #bfdbfe!important;background:#f8fbff!important}
.restoreBoxV75{margin-top:12px;padding:12px;border:1px dashed #93c5fd;border-radius:16px;background:#fff}
.manualCard{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:14px;box-shadow:0 8px 18px rgba(15,23,42,.05)}
@media(max-width:760px){html body #home .homeActionsGrid.homeSectionsGrid{grid-template-columns:1fr!important}.compactTable{min-width:900px}.riskOperationCard .formGrid.four{grid-template-columns:1fr!important}}


/* v76 - Moduli UAS hazard/audit/moc */
.uasHazardCardV76,
.uasMocCardV76,
.uasSafetyCommunicationCardV76,
.uasauditPlanCardV76,
.uasAuditPlanCardV76{
  border-left:6px solid #0b4f7a;
}
.riskTile.orange,
.pill.orange{
  background:#fff4e5;
  color:#9a4b00;
  border-color:#ffd7a6;
}
.finding-pill{
  display:inline-flex;
  min-width:24px;
  height:24px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  font-weight:900;
  padding:0 7px;
  margin:2px;
  background:#eaf2ff;
  color:#0b4f7a;
}
.finding-pill.l1{background:#ffe4e6;color:#a9001b}
.finding-pill.l2{background:#fff4d6;color:#7c5200}
.finding-pill.im{background:#eaf7ee;color:#0d6b35}
.auditChecklistV76 textarea{
  min-height:86px;
  font-size:12px;
}
.auditChecklistV76 select{
  min-width:150px;
}
#droneHazardLogList .registryTable,
#droneGeneratedRiskList .registryTable,
#droneAuditPlanList .registryTable,
#droneAuditChecklistEditor .registryTable{
  font-size:12px;
}
#droneHazardLogList td,
#droneAuditChecklistEditor td{
  vertical-align:top;
}
.dronesMenu .moduleBtn{
  background:#fff!important;
  color:#08385f!important;
  border:1px solid #cfddec!important;
}
.dronesMenu .moduleBtn.active{
  outline:3px solid rgba(255,214,10,.75);
  color:#051f38!important;
}


/* v77 - Droni: sottosezioni, matrice rischio, PDF e compliance */
.subModuleHero{
  background:linear-gradient(180deg,#ffffff,#f6fbff)!important;
  border:1px solid rgba(7,82,139,.12)!important;
}
.droneSubNav{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
  margin-top:14px;
}
.droneSubNav button{
  background:#ffffff!important;
  color:#0b2d48!important;
  border:1px solid rgba(7,82,139,.22)!important;
  border-radius:16px!important;
  box-shadow:0 8px 20px rgba(7,56,95,.10)!important;
  font-weight:900!important;
  justify-content:center;
  text-align:center;
  min-height:52px;
}
.droneSubNav button:hover{
  background:#f0f8ff!important;
  border-color:#0b4f7a!important;
}
.droneSubNav button.active{
  background:#0b4f7a!important;
  color:#ffffff!important;
  border-color:#0b4f7a!important;
  box-shadow:0 12px 28px rgba(7,56,95,.22)!important;
}
.droneSafetySub,
.droneComplianceSub{
  display:none;
}
.droneSafetySub.active,
.droneComplianceSub.active{
  display:block;
}
.matrixClassicV77{
  overflow:auto;
  margin:14px 0;
  padding:14px;
  background:#fff;
  border:1px solid rgba(7,82,139,.14);
  border-radius:18px;
}
.matrixClassicV77 table{
  width:100%;
  border-collapse:separate;
  border-spacing:6px;
  min-width:720px;
}
.matrixClassicV77 th{
  background:#edf5fb;
  color:#0b2d48;
  padding:10px;
  border-radius:12px;
  font-size:12px;
}
.matrixClassicV77 td{
  text-align:center;
  border-radius:14px;
  padding:10px;
  color:#0b2d48;
  border:1px solid rgba(0,0,0,.08);
}
.matrixClassicV77 td strong{
  display:block;
  font-size:18px;
}
.matrixClassicV77 td small{
  display:block;
  font-weight:800;
}
.riskCell.ok{background:#dff5e7!important}
.riskCell.warn{background:#fff2c2!important}
.riskCell.orange{background:#ffe0bf!important}
.riskCell.bad{background:#ffd6d6!important}
.mitTableV77 textarea,
.auditChecklistV77 textarea{
  min-width:220px;
  min-height:54px;
  padding:8px;
  border-radius:10px;
}
.mitTableV77 input,
.mitTableV77 select,
.auditChecklistV77 input,
.auditChecklistV77 select{
  min-width:115px;
  padding:8px;
  border-radius:10px;
}
.auditChecklistV77{
  min-width:1320px;
}
.mitTableV77{
  min-width:1450px;
}
.pdfToolbar{
  font-family:Arial, Helvetica, sans-serif;
}
@media(max-width:760px){
  .droneSubNav{grid-template-columns:1fr}
}


/* v78 - Ufficio Mobile statistiche filtrabili, UAS ERP/SPI e Safety Report pubblico */
.moStatsFiltersV78{
  background:#f6fbff;
  border:1px solid rgba(7,82,139,.14);
  border-radius:18px;
  padding:12px;
  margin:12px 0 16px;
}
.publicSafetyBoxV78{
  display:grid;
  grid-template-columns:1fr auto;
  gap:16px;
  align-items:center;
  margin:18px 0;
  padding:16px;
  border-radius:20px;
  background:#f6fbff;
  border:1px solid rgba(7,82,139,.15);
}
.qrBoxV78{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  background:#fff;
  border:1px solid rgba(7,82,139,.16);
  border-radius:16px;
  padding:12px;
  min-width:210px;
}
.qrBoxV78 img{width:190px;height:190px;object-fit:contain;}
.smallCode{
  word-break:break-all;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  background:#fff;
  border:1px solid rgba(7,82,139,.14);
  border-radius:12px;
  padding:8px 10px;
}
.publicSrPageV78{
  min-height:100vh;
  padding:24px;
  background:linear-gradient(180deg,#eef6fc,#ffffff);
}
.publicSrCardV78{
  max-width:980px;
  margin:0 auto;
}
.spiTableV78{
  min-width:1280px;
}
.spiTableV78 input,
.spiTableV78 select,
.mocRiskGridV78 select{
  min-width:110px;
}
.spiMini textarea{min-height:86px;}
#droneErpTimerV78 strong{color:#07385f;}
@media(max-width:760px){
  .publicSafetyBoxV78{grid-template-columns:1fr;}
  .qrBoxV78{align-items:flex-start;}
}


/* v79 - Droni UAS RA, compliance annuale, ERP e PDF larghi */
.droneSubNav{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;margin-top:14px}.droneSubNav button{background:#fff!important;color:#0b2d48!important;border:1px solid rgba(7,82,139,.22)!important;border-radius:16px!important;box-shadow:0 8px 20px rgba(7,56,95,.10)!important;font-weight:900!important;justify-content:center;text-align:center;min-height:52px}.droneSubNav button.active{background:#0b4f7a!important;color:#fff!important;border-color:#0b4f7a!important}.droneSafetySub,.droneComplianceSub{display:none}.droneSafetySub.active,.droneComplianceSub.active{display:block}.matrixClassicV79{overflow:auto;margin:14px 0;padding:14px;background:#fff;border:1px solid rgba(7,82,139,.14);border-radius:18px}.matrixClassicV79 table{width:100%;border-collapse:separate;border-spacing:6px;min-width:760px}.matrixClassicV79 th{background:#edf5fb;color:#0b2d48;padding:10px;border-radius:12px;font-size:12px}.matrixClassicV79 td{text-align:center;border-radius:14px;padding:10px;color:#0b2d48;border:1px solid rgba(0,0,0,.08)}.matrixClassicV79 td strong{display:block;font-size:18px}.matrixClassicV79 td small,.matrixClassicV79 td em{display:block;font-weight:800;font-style:normal}.riskCell.ok{background:#dff5e7!important}.riskCell.warn{background:#fff2c2!important}.riskCell.orange{background:#ffe0bf!important}.riskCell.bad{background:#ffd6d6!important}.mitTableV79,.auditChecklistV79,.erpTimelineV79{min-width:1300px}.mitTableV79 textarea,.auditChecklistV79 textarea,.erpTimelineV79 textarea{min-width:220px;min-height:56px}.mitTableV79 input,.mitTableV79 select,.auditChecklistV79 input,.auditChecklistV79 select,.erpTimelineV79 input,.erpTimelineV79 select{min-width:105px}.erpTimerBigV79{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border-radius:20px;background:#0b4f7a;color:#fff;margin:12px 0;box-shadow:0 12px 28px rgba(7,56,95,.18)}.erpTimerBigV79 strong{font-size:20px}.erpTimerBigV79 span{font-size:34px;font-weight:1000;letter-spacing:1px}.spiStat.ok{border-left:6px solid #198754}.spiStat.warn{border-left:6px solid #ffc107}.spiStat.bad{border-left:6px solid #dc3545}.manualSearchHitV79{background:#fff;border:1px solid rgba(7,82,139,.14);border-radius:18px;padding:14px;margin:10px 0}.reviewBoxV79{background:#fff;border:1px solid rgba(7,82,139,.14);border-radius:18px;padding:14px}.widePrintV79 .printTable{table-layout:fixed}.matrixPdfTableV79 th,.matrixPdfTableV79 td{font-size:8px!important;line-height:1.15!important;word-break:break-word!important;overflow-wrap:anywhere!important}.raPrintV79 .printTable th{width:18%}@media(max-width:760px){.droneSubNav{grid-template-columns:1fr}.erpTimerBigV79{flex-direction:column;align-items:flex-start}.erpTimerBigV79 span{font-size:28px}}


/* v80 - dashboard accertamenti, PG/UAS e prevolo */
.resDashCardV80{appearance:none;border:1px solid rgba(7,82,139,.18);text-align:left;cursor:pointer;background:#fff;border-radius:20px;padding:18px;box-shadow:0 10px 28px rgba(7,56,95,.10);}
.resDashCardV80 strong{font-size:34px;display:block;color:#082e51}.resDashCardV80 span{font-weight:900;color:#0b4f7a}.resDashCardV80 small{display:block;color:#526d83;margin-top:4px}
.resDashCardV80.warn{background:#fff9e6}.resDashCardV80.bad{background:#fff0f0}.resDashCardV80.ok{background:#edfdf3}.resDashCardV80.info{background:#eef7ff}
.residenceChartV80,.dashboardPanelV80{background:#fff;border:1px solid rgba(7,82,139,.12);border-radius:22px;padding:16px;box-shadow:0 12px 30px rgba(7,56,95,.10)}
.uasKpiGridV80{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.uasHeroKpi{background:linear-gradient(180deg,#fff,#f5fbff);border:1px solid rgba(7,82,139,.15);border-radius:22px;padding:18px;box-shadow:0 12px 30px rgba(7,56,95,.10)}.uasHeroKpi strong{font-size:34px;color:#063457;display:block}.uasHeroKpi span{font-weight:900;color:#39566b}
.uasDashboardGridV80{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:16px}.dashboardPanelV80 h3{margin-top:0;color:#082e51}.dashboardPanelV80 p{color:#314b60}
.preflightCardV80{background:linear-gradient(180deg,#ffffff,#f4fbff)}.preflightItemsV80{overflow:auto}.preflightTableV80{min-width:900px}.preflightTableV80 select,.preflightTableV80 input{min-width:140px}
.missionRegistryPrint table,.annualReviewPrint table{font-size:10px}.missionRegistryPrint th,.missionRegistryPrint td{padding:5px;vertical-align:top}
.matrixCountsV80 .riskCell em{display:block;margin-top:4px;font-style:normal;font-weight:900;color:#102b3e;font-size:11px}
.annualReviewV80 .dashboardPanelV80{margin:12px 0}.annualReviewV80 ul{line-height:1.6}
@media print{.missionRegistryPrint{font-size:10px}.missionRegistryPrint table{table-layout:fixed;width:100%}.missionRegistryPrint td,.missionRegistryPrint th{word-break:break-word}.annualReviewPrint{font-size:10px}}


/* v81 - PG/NDR dashboard, UAS dashboard e render stabile */
.pgDashHeroV81{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:14px 0 18px}
.pgKpiV81{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;border:0;border-radius:22px;padding:18px;background:linear-gradient(135deg,#fff,#f5faff);box-shadow:0 12px 28px rgba(7,56,95,.12);color:#09283f;cursor:pointer;border-left:7px solid #0b4f7a}
.pgKpiV81 strong{font-size:34px;line-height:1;color:#082e51}.pgKpiV81 span{font-weight:900}.pgKpiV81 small{color:#56708a}.pgKpiV81.warn{border-left-color:#f6b500}.pgKpiV81.ok{border-left-color:#1f9d55}.pgKpiV81.bad{border-left-color:#dc3545}.pgKpiV81.purple{border-left-color:#7257d6}.pgKpiV81:hover{transform:translateY(-1px);box-shadow:0 18px 36px rgba(7,56,95,.18)}
.pgChartsGridV81{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.pgChartV81{background:#fff;border:1px solid rgba(7,82,139,.12);border-radius:18px;padding:14px;box-shadow:0 8px 22px rgba(7,56,95,.08)}
.uasCommandCardV81{background:linear-gradient(135deg,#ffffff,#f4f9ff);border:1px solid rgba(7,82,139,.14);border-left:7px solid #0b4f7a;border-radius:22px;padding:18px;box-shadow:0 12px 30px rgba(7,56,95,.12);color:#0a2a42}.uasCommandCardV81 strong{display:block;font-size:34px;color:#082e51;line-height:1}.uasCommandCardV81 span{font-weight:900}.uasCommandCardV81 small{color:#5a7288}.uasCommandCardV81.primary{background:linear-gradient(135deg,#eff8ff,#ffffff)}.uasCommandCardV81.warn{border-left-color:#f0b000}.uasCommandCardV81.bad{border-left-color:#dc3545}
.safetyCommandV81{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px}.safetyCommandV81>div{background:#fff;border:1px solid rgba(7,82,139,.13);border-radius:18px;padding:14px;box-shadow:0 8px 22px rgba(7,56,95,.08);border-left:6px solid #0b4f7a}.safetyCommandV81 strong{display:block;font-size:30px;color:#082e51}.safetyCommandV81 span{font-weight:900;color:#24465f}
.riskChecklistV81{min-width:950px}.riskChecklistV81 select,.riskChecklistV81 input{min-width:130px;border-radius:10px;padding:8px}.riskChecklistV81 td:first-child{max-width:380px}
.annualReviewV81{background:#fff;border:1px solid rgba(7,82,139,.12);border-radius:20px;padding:16px}.annualReviewV81 h4{margin-top:20px;color:#082e51}
.matrixCountsV80 em{display:block;font-size:11px;font-style:normal;margin-top:4px;color:#082e51;font-weight:800}
@media print{.riskChecklistV81,.auditChecklistV77,.missionRegistryPrint table,.annualReviewV81 table{font-size:9px}.printReport table{table-layout:fixed;width:100%}.printReport td,.printReport th{word-break:break-word;overflow-wrap:anywhere}}


/* v82 - UAS Risk Assessment separato da Valutazione Missione */
.standardRaNoticeV82{
  margin:14px 0;
  padding:14px;
  border-left:5px solid #0b4f7a;
  background:#f3f9ff;
  border-radius:14px;
  color:#15344c;
}
.missionEvalCardV82{
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
}
.missionEvalItemsV82 table,
.missionEvalTableV82,
.mitTableV82{
  min-width:1250px;
}
.missionEvalTableV82 textarea,
.mitTableV82 textarea{
  min-width:230px;
  min-height:58px;
}
.missionEvalTableV82 select,
.mitTableV82 select,
.mitTableV82 input{
  min-width:105px;
  padding:8px;
  border-radius:10px;
}
.hazardEditorV82{
  margin-top:18px;
  padding:16px;
  border:1px solid rgba(7,82,139,.18);
  border-radius:22px;
  background:linear-gradient(180deg,#ffffff,#f6fbff);
}
.raStandardV82 .printTable{
  table-layout:fixed;
  width:100%;
}
.raStandardV82 h1,
.raStandardV82 h2{
  text-align:center;
}
@media print{
  .raStandardV82,
  .widePrintV79{
    max-width:none!important;
    width:100%!important;
    font-size:10px!important;
  }
  .raStandardV82 .printTable th,
  .raStandardV82 .printTable td,
  .widePrintV79 .printTable th,
  .widePrintV79 .printTable td{
    padding:4px!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }
}


/* v83 - registro e valutazione Safety Report UAS */
.evaluationPanelV83{
  margin-top:16px;
  padding:16px;
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff,#f6fbff);
  border:1px solid rgba(7,82,139,.14);
}
.clickableStats .stat{cursor:pointer;transition:.15s ease;}
.clickableStats .stat:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(7,56,95,.16);}
.safetyStatusPill{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:900;font-size:12px;background:#eef3f8;color:#17324a;}
.safetyStatusPill.todo{background:#fff2c2;color:#6c5300;}
.safetyStatusPill.eval{background:#dff0ff;color:#084c7a;}
.safetyStatusPill.ra{background:#ffe0bf;color:#7a3600;}
.safetyStatusPill.open{background:#ffdada;color:#7b1515;}
.safetyStatusPill.follow{background:#eee4ff;color:#4d2e83;}
.safetyStatusPill.closed{background:#dff5e7;color:#135c2a;}
.safetyRowV83 strong{font-size:14px;}
.safetyRowV83 small{color:#52687d;}
.safetyActionsV83{display:flex;gap:6px;flex-wrap:wrap;}
.safetyActionsV83 button{padding:7px 10px;font-size:12px;}
@media print{.evaluationPanelV83{border:0;background:#fff;padding:0}.safetyActionsV83{display:none!important}}


/* v84 - SPO/SPI UAS editabili */
#droneSpoSpiStatusV84{margin:12px 0;background:#f5fbff;border:1px solid rgba(7,82,139,.14)}
.spoTableV84,.spiTableV84{min-width:1300px}
.spoTableV84 input,.spoTableV84 textarea,.spoTableV84 select,.spiTableV84 input,.spiTableV84 textarea,.spiTableV84 select{min-width:110px;border-radius:10px;padding:8px;border:1px solid rgba(7,82,139,.18);background:#fff;color:#0b2d48}
.spoTableV84 textarea{min-width:260px;min-height:58px}.spiTableV84 input[data-spi-field="name"]{min-width:230px}.spiTableV84 input[data-spi-field="note"]{min-width:230px}.spiDashV84{position:relative}.spiDashV84.ok{border-left:7px solid #198754}.spiDashV84.bad{border-left:7px solid #dc3545}.spiDashV84.orange{border-left:7px solid #fd7e14}.spiDashV84 b{display:inline-flex;margin-top:6px}


/* v85 - To-do, calendario e dashboard accertamenti */
.todoHome,.calendarHome{background:#fff!important;color:#0b2538!important}
.todoHeroV85,.calendarHeroV85,.todoDashboardCardV85{
  background:linear-gradient(135deg,#ffffff,#f3fbff)!important;
  border:1px solid rgba(7,82,139,.12)!important;
}
.todoKpisV85,.resDashV85{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:12px;
}
.todoKpi,.resHeroKpiV85{
  border:1px solid rgba(7,82,139,.14);
  border-radius:20px;
  padding:16px;
  background:#fff;
  color:#0b2538;
  box-shadow:0 10px 26px rgba(7,56,95,.10);
  text-align:left;
  cursor:pointer;
  min-height:104px;
}
.todoKpi span,.resHeroKpiV85 span{
  display:block;
  color:#49677f;
  font-weight:800;
  font-size:13px;
}
.todoKpi strong,.resHeroKpiV85 strong{
  display:block;
  font-size:34px;
  line-height:1.1;
  margin-top:8px;
}
.todoKpi.red,.resHeroKpiV85.red{border-color:#f3a6a6;background:#fff2f2}
.todoKpi.orange{border-color:#ffd18a;background:#fff7e7}
.todoKpi.yellow,.resHeroKpiV85.yellow{border-color:#ffe08b;background:#fffbed}
.todoKpi.green,.resHeroKpiV85.done{border-color:#9be0b2;background:#f0fff5}
.resHeroKpiV85.total{background:linear-gradient(135deg,#ffffff,#eef8ff)}
.resHeroKpiV85.open{background:linear-gradient(135deg,#ffffff,#f1f7ff)}
.resProgressV85{
  grid-column:1/-1;
  border:1px solid rgba(7,82,139,.14);
  border-radius:20px;
  padding:16px;
  background:#fff;
  box-shadow:0 10px 26px rgba(7,56,95,.08);
}
.resProgressV85 div{height:14px;background:#edf4fb;border-radius:999px;overflow:hidden;margin:10px 0}
.resProgressV85 div span{display:block;height:100%;background:#0b7c59;border-radius:999px}
.resGridV85{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
  margin-top:14px;
}
.resGridV85 article{
  background:#fff;
  border:1px solid rgba(7,82,139,.14);
  border-radius:20px;
  padding:16px;
  box-shadow:0 10px 26px rgba(7,56,95,.08);
}
.barRowV85{
  display:grid;
  grid-template-columns:minmax(110px,1.2fr) 2fr 45px;
  gap:8px;
  align-items:center;
  margin:8px 0;
}
.barRowV85 div{height:10px;background:#edf4fb;border-radius:999px;overflow:hidden}
.barRowV85 div i{display:block;height:100%;background:#0b4f7a;border-radius:999px}
.resMini.red{background:#fff1f1}.resMini.yellow{background:#fffbe7}.resMini.closed{background:#f1fff5}
.todoTableV85 tr{cursor:pointer}
.todoRow.red{background:#fff1f1}
.todoRow.orange{background:#fff7e7}
.todoRow.yellow{background:#fffde9}
.todoRow.green{background:#f0fff5}
.todoRow.blue{background:#eef8ff}
.todoRow.done{background:#f4f4f4;color:#64748b}
.todoDialogV85{
  width:min(1180px,96vw);
  max-height:92vh;
  border:0;
  border-radius:24px;
  padding:20px;
  box-shadow:0 30px 70px rgba(0,0,0,.28);
}
.todoDialogV85::backdrop{background:rgba(4,22,38,.52)}
.todoUpdatesListV85{
  max-height:360px;
  overflow:auto;
  padding-right:8px;
}
.todoUpdateItemV85{
  border:1px solid rgba(7,82,139,.14);
  border-radius:16px;
  padding:12px;
  margin-bottom:10px;
  background:#fff;
}
.todoUpdateItemV85 span{
  display:inline-block;
  margin-left:8px;
  padding:3px 8px;
  border-radius:999px;
  background:#eef6ff;
  color:#0b4f7a;
  font-size:12px;
  font-weight:800;
}
.miniCardV85{
  background:#fff;
  border:1px solid rgba(7,82,139,.12);
  border-radius:18px;
  padding:14px;
}
.stickyActionsV85{
  position:sticky;
  bottom:0;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);
  padding:12px 0 0;
  border-top:1px solid rgba(7,82,139,.10);
  margin-top:16px;
}
.calendarToolbarV85{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.calendarToolbarV85 h2{
  margin:0;
  text-transform:capitalize;
}
.calendarGridWrapV85{
  grid-template-columns:minmax(0,2fr) minmax(300px,1fr);
}
.calendarGridV85{
  display:grid;
  grid-template-columns:repeat(7, minmax(0,1fr));
  gap:8px;
}
.calHeadV85{
  text-align:center;
  font-weight:900;
  padding:10px;
  background:#edf6ff;
  border-radius:14px;
  color:#0b2538;
}
.calCellV85{
  min-height:118px;
  border:1px solid rgba(7,82,139,.14);
  border-radius:16px;
  background:#fff;
  padding:8px;
  cursor:pointer;
  overflow:hidden;
}
.calCellV85.empty{background:#f4f7fb;cursor:default}
.calCellV85.today{box-shadow:inset 0 0 0 2px #0b4f7a}
.calCellV85 strong{display:block;margin-bottom:6px;color:#0b2538}
.calEventV85{
  display:block;
  width:100%;
  border:0;
  border-radius:10px;
  margin:4px 0;
  padding:5px 6px;
  font-size:12px;
  font-weight:800;
  text-align:left;
  color:#0b2538;
  background:#eaf5ff;
}
.calEventV85.green{background:#e9fbe8}.calEventV85.yellow{background:#fff8d9}.calEventV85.orange{background:#fff0d8}.calEventV85.red{background:#ffe4e4}.calEventV85.purple{background:#f3e8ff}
@media(max-width:900px){
  .calendarGridWrapV85{grid-template-columns:1fr}
  .calendarGridV85{grid-template-columns:repeat(2,1fr)}
  .calHeadV85{display:none}
}
@media print{
  .resDashV85,.todoKpisV85{display:block}
}

/* v86 - fix login */
.loginNoticeV86{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:10px;color:#7c2d12}


/* v87 - KPI leggibili: niente pill blu, layout a card con testo separato dal numero */
.metricGridV87,
.todoKpisV85,
.resDashV85{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
}
.metricTileV87,
button.resHeroKpiV85,
button.todoKpi,
.resHeroKpiV85,
.todoKpi{
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr) auto!important;
  grid-template-areas:"icon text number"!important;
  gap:14px!important;
  align-items:center!important;
  width:100%!important;
  min-height:96px!important;
  padding:16px 18px!important;
  border-radius:20px!important;
  border:1px solid rgba(7,82,139,.16)!important;
  border-left:7px solid #0b4f7a!important;
  background:#ffffff!important;
  color:#0b2538!important;
  box-shadow:0 10px 26px rgba(7,56,95,.09)!important;
  text-align:left!important;
  white-space:normal!important;
  line-height:1.25!important;
  overflow:visible!important;
  transform:none!important;
}
.metricTileV87:hover,
button.resHeroKpiV85:hover,
button.todoKpi:hover,
.resHeroKpiV85:hover,
.todoKpi:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 16px 34px rgba(7,56,95,.15)!important;
  border-color:rgba(7,82,139,.30)!important;
}
.metricTileV87:focus-visible,
.resHeroKpiV85:focus-visible,
.todoKpi:focus-visible{
  outline:3px solid rgba(11,79,122,.25)!important;
  outline-offset:3px!important;
}
.metricTileIconV87{
  grid-area:icon!important;
  width:48px!important;
  height:48px!important;
  border-radius:16px!important;
  display:grid!important;
  place-items:center!important;
  font-weight:1000!important;
  font-size:18px!important;
  background:#eef7fc!important;
  color:#0b4f7a!important;
}
.metricTileTextV87{grid-area:text!important;min-width:0!important;}
.metricTileV87 span,
.metricTileV87 .metricTileTextV87 span,
button.resHeroKpiV85 span,
button.todoKpi span,
.resHeroKpiV85 span,
.todoKpi span{
  display:block!important;
  color:#27465d!important;
  font-size:14px!important;
  font-weight:950!important;
  letter-spacing:.01em!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  max-width:none!important;
}
.metricTileV87 small,
.metricTileV87 .metricTileTextV87 small,
button.resHeroKpiV85 small,
button.todoKpi small,
.resHeroKpiV85 small,
.todoKpi small{
  display:block!important;
  margin-top:4px!important;
  color:#5f768a!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.25!important;
  overflow:visible!important;
  white-space:normal!important;
}
.metricTileV87 strong,
button.resHeroKpiV85 strong,
button.todoKpi strong,
.resHeroKpiV85 strong,
.todoKpi strong{
  grid-area:number!important;
  display:block!important;
  justify-self:end!important;
  min-width:54px!important;
  text-align:right!important;
  color:#0b2538!important;
  font-size:38px!important;
  line-height:1!important;
  font-weight:1000!important;
  margin:0!important;
  white-space:nowrap!important;
}
.metricTileV87.total,
.resHeroKpiV85.total{border-left-color:#0b4f7a!important;background:linear-gradient(180deg,#ffffff,#f5fbff)!important;}
.metricTileV87.open,
.resHeroKpiV85.open{border-left-color:#2f80ed!important;background:linear-gradient(180deg,#ffffff,#f5f9ff)!important;}
.metricTileV87.yellow,
.todoKpi.yellow,
.resHeroKpiV85.yellow{border-left-color:#f2c94c!important;background:linear-gradient(180deg,#ffffff,#fffaf0)!important;}
.metricTileV87.orange,
.todoKpi.orange{border-left-color:#f2994a!important;background:linear-gradient(180deg,#ffffff,#fff7ed)!important;}
.metricTileV87.red,
.todoKpi.red,
.resHeroKpiV85.red{border-left-color:#eb5757!important;background:linear-gradient(180deg,#ffffff,#fff5f5)!important;}
.metricTileV87.done,
.metricTileV87.green,
.todoKpi.green,
.resHeroKpiV85.done{border-left-color:#27ae60!important;background:linear-gradient(180deg,#ffffff,#f2fff7)!important;}
.resDashboardV87{display:grid;gap:16px;}
.resSummaryV87{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px 18px!important;
  align-items:center!important;
  padding:18px!important;
  border-radius:22px!important;
  background:#fff!important;
  border:1px solid rgba(7,82,139,.16)!important;
  box-shadow:0 10px 26px rgba(7,56,95,.08)!important;
}
.resSummaryV87 span{display:block;color:#5f768a;font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:.05em;}
.resSummaryV87 strong{display:block;color:#0b2538;font-size:42px;line-height:1;font-weight:1000;margin-top:4px;}
.resSummaryV87 small{color:#5f768a;font-weight:800;}
.resProgressV87{grid-column:1/-1;height:16px;border-radius:999px;background:#edf4fb;overflow:hidden;}
.resProgressV87 b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0b4f7a,#27ae60);}
.resGridV87 article{background:#fff!important;border:1px solid rgba(7,82,139,.14)!important;border-radius:20px!important;box-shadow:0 10px 26px rgba(7,56,95,.08)!important;}
.barRowV87{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr 48px;gap:10px;align-items:center;margin:10px 0;}
.barRowV87 span{font-weight:850;color:#27465d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.barRowV87 div{height:12px;background:#edf4fb;border-radius:999px;overflow:hidden;}
.barRowV87 div i{display:block;height:100%;background:linear-gradient(90deg,#0b4f7a,#14a6b7);border-radius:999px;}
.barRowV87 strong{color:#0b2538;text-align:right;}
.priorityItemV87{border-left:5px solid #0b4f7a;background:#f8fbfd;border-radius:14px;padding:10px;margin:8px 0;}
.priorityItemV87.red{border-left-color:#eb5757;background:#fff5f5;}
.priorityItemV87.yellow{border-left-color:#f2c94c;background:#fffaf0;}
.priorityItemV87 strong{display:block;color:#0b2538;}
.priorityItemV87 span{display:block;color:#5f768a;font-size:12px;font-weight:800;margin-top:3px;}
/* neutralizza la regola globale button:not(.ghost):not(.secondary) sulle card KPI */
html body button.resHeroKpiV85:not(.ghost):not(.secondary),
html body button.todoKpi:not(.ghost):not(.secondary){
  background:#fff!important;
  color:#0b2538!important;
  border:1px solid rgba(7,82,139,.16)!important;
  border-left-width:7px!important;
  border-radius:20px!important;
}
/* KPI simili non devono mai diventare pillole compresse */
.clickableStats .stat,
#pgStats .stat,
#pcKpis .stat,
#clothingKpis .stat,
.spiStat,
.kpiCard{
  border-radius:18px!important;
  background:#fff!important;
  color:#0b2538!important;
  min-height:88px!important;
  overflow:visible!important;
}
.clickableStats .stat strong,
#pgStats .stat strong,
#pcKpis .stat strong,
#clothingKpis .stat strong,
.spiStat strong,
.kpiCard strong{color:#0b2538!important;line-height:1!important;}
.clickableStats .stat span,
#pgStats .stat span,
#pcKpis .stat span,
#clothingKpis .stat span,
.spiStat span,
.kpiCard span{color:#52687d!important;white-space:normal!important;}
@media(max-width:760px){
  .metricGridV87,.todoKpisV85,.resDashV85{grid-template-columns:1fr!important;}
  .metricTileV87,button.resHeroKpiV85,button.todoKpi,.resHeroKpiV85,.todoKpi{grid-template-columns:44px minmax(0,1fr) auto!important;min-height:84px!important;padding:14px!important;}
  .metricTileIconV87{width:42px!important;height:42px!important;}
  .metricTileV87 strong,button.resHeroKpiV85 strong,button.todoKpi strong,.resHeroKpiV85 strong,.todoKpi strong{font-size:30px!important;min-width:42px!important;}
  .resSummaryV87{grid-template-columns:1fr!important;}
  .barRowV87{grid-template-columns:1fr 2fr 42px;}
}


/* v88 - Utenti/To-do: badge qualifica e nota visibilità */
.userManagementCard .registryTable td .pill{
  white-space:nowrap;
}
.todoVisibilityNoteV88{
  margin:10px 2px 0;
  padding:10px 12px;
  border-radius:14px;
  background:#f8fbff;
  border:1px solid rgba(11,79,122,.12);
}
.permRow select,
#userQualification{
  min-height:40px;
}


/* v89 - To-do verticale e FTL */
.todoDialogV85{
  max-width:980px!important;
  width:min(980px,96vw)!important;
}
.todoFormVerticalV89{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin:14px 0;
}
.todoFormBlockV89{
  background:#ffffff;
  border:1px solid rgba(11,79,122,.12);
  border-radius:18px;
  padding:16px;
  box-shadow:0 8px 22px rgba(7,56,95,.07);
}
.todoFormBlockV89 h3{
  margin:0 0 12px;
}
.todoVerticalFieldsV89{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.todoLongInputV89{
  font-size:1.08rem!important;
  padding:14px!important;
  min-height:52px;
}
.todoLongTextV89{
  min-height:150px!important;
  line-height:1.45!important;
  font-size:1rem!important;
}
.todoPrimaryBlockV89 label,
.todoFormBlockV89 label{
  font-weight:800;
  color:#14324b;
}
.todoIconChoicesV89,
.todoCollaboratorChipsV89{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
}
.todoIconBtnV89,
.todoCollaboratorChipV89{
  border:1px solid rgba(11,79,122,.18)!important;
  background:#f8fbff!important;
  color:#12324a!important;
  border-radius:999px!important;
  padding:8px 11px!important;
  box-shadow:none!important;
  min-height:38px;
}
.todoIconBtnV89{
  font-size:1.25rem!important;
  min-width:46px;
}
.todoIconBtnV89.active,
.todoCollaboratorChipV89.active{
  background:#0b4f7a!important;
  color:#fff!important;
  border-color:#0b4f7a!important;
}
.todoCollaboratorsBlockV89 select{
  display:none!important;
}
.todoListIconV89{
  font-size:1.35rem;
  width:42px;
  text-align:center;
}
.todoTableV89 td{
  vertical-align:top;
}
.ftlCardV89 textarea{
  min-height:110px;
}
@media(min-width:900px){
  .todoVerticalFieldsV89{grid-template-columns:1fr 1fr;}
  .todoPrimaryBlockV89{padding:20px;}
}

/* v90 - fix Nuovo to-do */
#todoNewBtn{
  cursor:pointer;
}


/* v91 - Contatti pubblico */
.contactHeroV91{
  align-items:flex-start;
  gap:16px;
}
.contactDashboardCardV91{
  background:linear-gradient(180deg,#ffffff,#f7fbff)!important;
  border:1px solid rgba(11,79,122,.12)!important;
}
.contactMetricGridV91{
  margin-bottom:16px;
}
.contactTileV91 .metricTileIconV87{
  background:#edf7ff;
}
.contactFilterGridV91{
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}
.contactTableV91 td{
  vertical-align:top;
}
.contactDialogV91{
  width:min(1080px,96vw);
  max-height:92vh;
  border:0;
  border-radius:24px;
  padding:0;
  box-shadow:0 30px 80px rgba(0,0,0,.28);
}
.contactDialogV91::backdrop{
  background:rgba(4,24,38,.45);
}
.contactDialogV91 > form,
.contactDialogV91 > .sectionTitle{
  padding:18px 22px 0;
}
.contactFormVerticalV91{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:0 22px 22px;
}
.contactFormBlockV91{
  background:#fff;
  border:1px solid rgba(11,79,122,.14);
  border-radius:18px;
  padding:16px;
}
.contactPrimaryBlockV91{
  background:linear-gradient(180deg,#ffffff,#f6fbff);
}
.contactFormBlockV91 label{
  display:block;
  margin-top:10px;
  font-weight:800;
  color:#0b2d48;
}
.contactFormBlockV91 input,
.contactFormBlockV91 select,
.contactFormBlockV91 textarea{
  width:100%;
}
.contactDialogActionsV91{
  position:sticky;
  bottom:0;
  background:#ffffff;
  border-top:1px solid rgba(11,79,122,.12);
  padding-top:14px;
}
.contactPrintV91{
  max-width:1060px;
}
.contactPrintTableV91{
  table-layout:fixed;
  width:100%;
  font-size:10px;
}
.contactPrintTableV91 th,
.contactPrintTableV91 td{
  overflow-wrap:anywhere;
  word-break:normal;
}
@media print{
  .contactPrintTableV91{font-size:8.5px}
}

/* v92 - fix qualifica utenti */
#userQualification{min-height:40px;}
.userManagementCard .registryTable .pill{white-space:nowrap;}

/* v93 - Schede accertamenti anagrafici */
.residenceTableV93 .residenceRow, .residenceTableV93 .resMini{cursor:pointer}
.residenceTableV93 .residenceRow:hover, .residenceTableV93 .resMini:hover{outline:2px solid rgba(11,79,122,.18);outline-offset:-2px;background:#f8fbff}
.residenceNoticeV93{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* v94 - Navigazione stabile accertamenti residenza */
#residence .sectionModule:not(.active){ display:none; }
#residence .sectionModule.active{ display:block; }
#residence .moduleBtn.active{
  box-shadow:0 0 0 2px rgba(14,79,122,.18);
}
.residenceNoticeV93 button{
  margin-left:10px;
}

/* v95 - Salvataggio sicuro */
#cloudSyncPanel{
  border-color:rgba(14,122,69,.22);
}
#cloudSyncPanel strong::after{
  content:" · protezione v95";
  color:#19764a;
  font-weight:700;
}

/* v96 */
#cloudSyncPanel{
  border-color: rgba(25,118,74,.28);
}
#cloudSyncInfo::after{
  content: " · v96: eliminazione solo esplicita";
  color: #17653f;
  font-weight: 700;
}

/* v97 - recupero e anonimizzazione */
.recoveryCardV97 .notice{
  border-left:4px solid #19764a;
}
.recoveryCardV97 .metricGridV87{
  margin:12px 0;
}
.recoveryCardV97 table small{
  overflow-wrap:anywhere;
}
.privacyBadgeV97{
  display:inline-flex;
  gap:6px;
  align-items:center;
  padding:4px 9px;
  border-radius:999px;
  background:#eef8f2;
  color:#17653f;
  font-weight:700;
}

/* v98 - fix anonimizzazione accertamenti */
