/* nova_norme.css — Tabella Norme acquistate (L050, cap 07.01 AssQ Tabelle). */

.norme-shell {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0; /* permette al figlio scroller di restringersi (sticky header) */
  font-size: 13px;
  color: #1f2933;
}

.norme-list-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  border-bottom: 1px solid #e2e8f0;
}

/* rev 1.9.48 — header SEMPRE fisso allo scroll: la lista interna dev'essere lo
   scroller, NON il body finestra (che di default ha overflow:auto → trascinava via
   l'header sticky). Stesso pattern delle tabelle AQL (shell_window.css). */
.nova-window[data-form-id="norme-tabella"] .nova-window-body {
  overflow: hidden;
  min-height: 0;
}

/* rev 1.9.50 — schede in alto (la voce «Norme» è la prima; altre AssQ in futuro) */
.norme-tabs {
  flex: 0 0 auto;
  display: flex;
  gap: 4px;
  padding: 6px 8px 0;
  border-bottom: 1px solid #e2e8f0;
  background: #f1f5f9;
}
.norme-tab {
  border: 1px solid transparent;
  border-bottom: none;
  background: none;
  padding: 6px 16px;
  font-size: 13px;
  cursor: pointer;
  border-radius: 7px 7px 0 0;
  color: #475569;
}
.norme-tab:hover { color: #0f172a; }
.norme-tab.is-active {
  background: #fff;
  border-color: #e2e8f0;
  color: #0f172a;
  font-weight: 600;
  margin-bottom: -1px;
}
.norme-tabpanel {
  display: none;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
}
.norme-tabpanel.is-active { display: flex; }
.norme-tab-placeholder {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 14px;
}

.norme-table {
  width: 100%;
  /* rev 1.9.49 — separate (non collapse): in WebKit/WKWebView `position:sticky`
     sul <th> NON funziona con border-collapse:collapse → header scrollava via. */
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed; /* rispetta le larghezze colonna sotto → Nome prende il resto */
}

.norme-table thead th {
  /* !important per battere lo `style="position:relative"` inline che NovaTableEnhance
     mette su ogni <th> (per la maniglia resize) e che annullava lo sticky. */
  position: sticky !important;
  top: 0 !important;
  z-index: 2;
  background: #f8fafc;
  text-align: left;
  font-weight: 500; /* header NON bold — memory feedback_header_tabelle_no_bold */
  font-size: 10px;
  padding: 5px 5px; /* rev 1.9.48: +altezza riga titoli (~+20%) */
  border-bottom: 1px solid #e2e8f0;
  vertical-align: bottom;
}

.norme-table tbody td {
  padding: 2px 5px;
  font-size: 11px;
  vertical-align: middle;
  border-bottom: 1px solid #f1f5f9;
}

/* rev 1.9.45 — larghezze colonne compatte (Col/Ente/Anno/Applicabile/Attivo/Superata
   strette; Nome = resto). Codice e Nome possono andare a capo; il resto nowrap. */
.norme-table th:nth-child(1), .norme-table td:nth-child(1) { width: 26px; text-align: center; } /* Col */
.norme-table th:nth-child(2), .norme-table td:nth-child(2) { width: 120px; white-space: normal; word-break: break-word; } /* Codice */
.norme-table td:nth-child(3) { white-space: normal; }                                            /* Nome = resto */
.norme-table th:nth-child(4), .norme-table td:nth-child(4) { width: 30px; text-align: center; }   /* 🔎 Lente */
.norme-table th:nth-child(5), .norme-table td:nth-child(5) { width: 44px; }                       /* Ente */
.norme-table th:nth-child(6), .norme-table td:nth-child(6) { width: 40px; }                       /* Anno */
.norme-table th:nth-child(7), .norme-table td:nth-child(7) { width: 62px; text-align: center; }   /* Applicabile */
.norme-table th:nth-child(8), .norme-table td:nth-child(8) { width: 42px; text-align: center; }   /* Attivo */
.norme-table th:nth-child(9), .norme-table td:nth-child(9) { width: 58px; text-align: center; }   /* Superata */
.norme-table th:nth-child(10), .norme-table td:nth-child(10) { width: 34px; text-align: center; }  /* Ad. (rev 2.0.7) */
.norme-table th:nth-child(11), .norme-table td:nth-child(11) { width: 42px; text-align: center; }  /* Cond. (rev 2.0.7) — Nome (col 3) prende lo spazio restante */

/* lente per-riga (apre il PDF allegato via CMP-025) */
.norme-lens {
  border: none;
  background: none;
  cursor: pointer;
  font-size: 10px;
  line-height: 1;
  padding: 0;
  opacity: 0.7;
}
.norme-lens:hover { opacity: 1; }
.norme-lens-menu {
  position: fixed;
  z-index: 10000;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
  padding: 3px;
  max-height: 240px;
  overflow: auto;
  font-size: 12px;
}
.norme-lens-item {
  padding: 4px 10px;
  cursor: pointer;
  white-space: nowrap;
  border-radius: 4px;
}
.norme-lens-item:hover { background: #e3f2fa; }

/* finestra anteprima allegato aperta dalla lente (embed sincrono) */
.norme-pdf-host { height: 100%; }
.norme-pdf-unsupported {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #64748b;
  font-size: 14px;
  line-height: 1.7;
}

/* rev 1.9.55 — header dedicato finestra anteprima allegato: dots −15%, titolo −20% */
.nova-window[data-form-id^="norme-pdf-"] .nova-window-dot {
  transform: scale(0.85);
  transform-origin: center;
}
.nova-window[data-form-id^="norme-pdf-"] .nova-window-app-title { font-size: 80%; }

/* pulsanti icona del header anteprima (Download · Stampa · Mail · Indietro) */
.norme-prevbtn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  color: #475569;
  display: inline-flex;
  align-items: center;
}
.norme-prevbtn svg { width: 18px; height: 18px; display: block; }
.norme-prevbtn:hover { color: #0f172a; }
.norme-prevbtn--off { color: #cbd5e1; cursor: default; }
.norme-prevbtn--back { color: #16a34a; }
.norme-prevbtn--back:hover { color: #15803d; }

/* enhancer NovaTableEnhance — frecce/imbuto piccoli e vicini (solo in questa tabella) */
.norme-table .nlh-name { font-size: 10px; white-space: normal; }
.norme-table .nlh-sort-asc,
.norme-table .nlh-sort-desc { font-size: 7px; padding: 0; }
.norme-table .nlh-filter { padding: 0 1px; }
.norme-table .nlh-filter svg { width: 8px; height: 8px; }

.norme-table tbody tr {
  cursor: pointer;
}

.norme-table tbody tr.norme-row--sel {
  background: #e3f2fa;
}

.norme-table tbody tr:hover {
  background: #f1f5f9;
}

.norme-flag-on  { color: #16a34a; }
.norme-flag-off { color: #cbd5e1; }

/* rev 1.9.39 — pastiglia colore norma (legenda ruota HLS) */
.norme-swatch {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 3px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  vertical-align: middle;
}

.norme-hint {
  font-size: 10px;
  color: #94a3b8;
  font-weight: 400;
}

/* rev 2.0.7 — riga norma superata = sfondo rosso (standard CMP Nova §3-bis `tr.is-superata`) */
.norme-row--superata td {
  background: #fee2e2;
  color: #7f1d1d;
}
.norme-row--superata .norme-swatch { text-decoration: none; }

/* rev 1.9.41 — pulsante Allegato PDF */
.norme-allegato-row {
  flex-direction: row;
  align-items: center;
  gap: 10px;
}
.norme-btn-allegato {
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  background: #f8fafc;
  padding: 3px 10px;
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}
.norme-btn-allegato:hover {
  background: #e3f2fa;
  border-color: #0ea5e9;
}
.norme-allegati-host {
  height: 100%;
  overflow: auto;
  padding: 8px;
}

/* rev 1.9.45/47 — form su 2 righe: riga1 Nome+Allegato · riga2 campi+flag+colore */
.norme-form {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 6px 10px;
  background: #fbfdff;
}
.norme-frow {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 3px 10px;
}
.norme-frow1 .norme-field--nome { flex: 1 1 auto; }
.norme-frow1 .norme-btn-allegato { flex: 0 0 auto; margin-left: auto; } /* Allegato a destra */

.norme-field {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.norme-field label {
  font-size: 10px;
  line-height: 1.1;
  color: #64748b;
}

.norme-field input[type="text"],
.norme-field input[type="number"],
.norme-field input[type="date"] {
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  padding: 2px 5px;
  font-size: 12px;
}

.norme-field input:disabled {
  background: #f1f5f9;
  color: #475569;
}

/* larghezze campi (rev 1.9.47: codice/ente −40%, data = max+5%, prezzo −15%) */
.norme-field--nome   { flex: 1 1 auto; min-width: 240px; }
/* rev 2.0.7 — descrizione norma SCROLLABILE (testo lungo): textarea read-only invece di input single-line */
.norme-field--nome textarea {
  width: 100%;
  height: 42px;
  resize: vertical;
  overflow-y: auto;
  box-sizing: border-box;
  font: inherit;
  line-height: 1.35;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  padding: 3px 6px;
  background: #fff;
}
.norme-field--nome textarea:disabled { background: #f8fafc; color: #1f2937; }
/* rev 2.0.7 — toggle «Vedi superate» nella barra schede (default OFF → superate nascoste) */
.norme-show-superate {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: #475569;
  cursor: pointer;
  white-space: nowrap;
}
.norme-field--codice { flex: 0 0 138px; }
.norme-field--ente   { flex: 0 0 66px; }
.norme-field--anno input   { width: 64px; }
.norme-field--data input   { width: 112px; }
.norme-field--prezzo input { width: 82px; }
/* colore: swatch + etichetta a destra su 2 righe (sotto «Attivo» nella griglia flag) */
.norme-field--colore {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 5px;
}
.norme-field--colore input[type="color"] { width: 42px; height: 22px; padding: 1px; }
.norme-field--colore label { font-size: 10px; line-height: 1.05; color: #64748b; white-space: nowrap; }

.norme-field--check {
  flex-direction: row;
  align-items: center;
  gap: 5px;
}
.norme-field--check label { font-size: 12px; }

/* rev 1.9.46 — 3 flag in colonna stretta su 2 righe (2+1), blocco compatto */
.norme-flags {
  display: grid;
  grid-template-columns: auto auto;
  column-gap: 16px;
  row-gap: 1px;
  align-content: flex-end;
}

/* colore + pulsante Allegato affiancati (Allegato a dx del colore) */
.norme-color-allegato {
  display: flex;
  align-items: flex-end;
  gap: 10px;
}

.norme-empty {
  padding: 24px;
  text-align: center;
  color: #94a3b8;
}
