[FIX] #384 p.4 — allineamento label/campi modale Policy (override floating-label BI) + cache-buster style.css 20260618

La modale 'Modifica Policy' (e ogni modale con form legacy .form-label) mostrava
l'etichetta sovrapposta al valore: BI definisce .form-group label{position:absolute}
(spec. 0,1,1) che vinceva sulla .form-label legacy. Aggiunto override
.form-group .form-label{position:static} (spec. 0,2,0). Bumpato ?v= di style.css
su 38 pagine. version.json -> 1.23.2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-18 18:00:55 +02:00
co-authored by Claude Opus 4.8
parent abcec0de30
commit d739f0e678
40 changed files with 55 additions and 39 deletions
+1 -1
View File
@@ -9,7 +9,7 @@
<link rel="stylesheet" href="vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<!-- Stile applicativo NIS2: fornisce le classi della sidebar (.sidebar-nav, .sidebar-brand, ecc.)
riusate dal markup BI per parità visiva con la chrome di produzione -->
<link rel="stylesheet" href="css/style.css?v=20260613b">
<link rel="stylesheet" href="css/style.css?v=20260618">
<style>
/* Solo layout della pagina demo: niente colori custom (vengono da BI/style.css) */
body { margin: 0; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css resta autorevole per i widget renderizzati via JS -> parita' funzionale.
Pagina in /admin/: gli asset usano path ASSOLUTI (/vendor, /js, /css) serviti dal web root. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.admin-stats-grid {
display: grid;
+1 -1
View File
@@ -9,7 +9,7 @@
via JS (tabella org/paginazione/badge) -> parita' funzionale assoluta. BI veste la chrome.
Path relativi ../ perche' la pagina vive sotto public/admin/. -->
<link rel="stylesheet" href="../vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="../css/style.css?v=20260613b">
<link rel="stylesheet" href="../css/style.css?v=20260618">
<style>
.entity-type-badge {
display: inline-flex;
+1 -1
View File
@@ -9,7 +9,7 @@
via JS (tabella utenti/azioni) -> parita' funzionale assoluta. BI veste la chrome.
Path ../ perche' questa pagina vive in /admin/. -->
<link rel="stylesheet" href="../vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="../css/style.css?v=20260613b">
<link rel="stylesheet" href="../css/style.css?v=20260618">
<style>
.role-badge {
display: inline-flex;
+1 -1
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Architettura - NIS2 Agile</title>
<link rel="stylesheet" href="css/style.css?v=20260613b">
<link rel="stylesheet" href="css/style.css?v=20260618">
<style>
/* ── Architecture Page Styles ────────────────────────────────── */
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (wizard/form/gauge) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<!-- PWA:start -->
<link rel="manifest" href="/manifest.webmanifest">
<meta name="theme-color" content="#0066CC">
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (tabelle/modali/form) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
/* ── Stats Cards ────────────────────────────────────────── */
.asset-stats {
+1 -1
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Calendario scadenze - NIS2 Agile</title>
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260631">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.cal-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:12px; font-size:.92rem; line-height:1.6; }
.cal-note { font-size:.82rem; color:#3730a3; background:#eef2ff; border:1px solid #c7d2fe; border-radius:8px; padding:10px 12px; margin:0 0 16px; }
+1 -1
View File
@@ -6,7 +6,7 @@
<title>Le Mie Aziende - NIS2 Agile</title>
<!-- Bootstrap Italia v2.18.1 self-hostato (MAI CDN). Caricato PRIMA di style.css: BI veste la chrome/sidebar, style.css resta autorevole per i widget. -->
<link rel="stylesheet" href="vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="css/style.css?v=20260613b">
<link rel="stylesheet" href="css/style.css?v=20260618">
<style>
.companies-header {
display: flex;
+1 -1
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Competenze - NIS2 Agile</title>
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260617">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.cmp-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:16px; font-size:.92rem; line-height:1.6; }
.cmp-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 18px; }
+1 -1
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Controlli periodici - NIS2 Agile</title>
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260631">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.pc-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:12px; font-size:.92rem; line-height:1.6; }
.pc-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 16px; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (chat/portfolio/storico) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
:root {
--nis2-cyan: #06B6D4;
+16
View File
@@ -641,6 +641,22 @@ img {
margin-left: 2px;
}
/* Override Bootstrap Italia floating-label su form legacy (classe .form-label).
BI definisce `.form-group label{position:absolute;top:0;line-height:calc(2.5rem-1px);padding:0 .5rem}`
(specificita' 0,1,1) che vince sulla nostra `.form-label` (0,1,0) e sovrappone l'etichetta
al valore del campo (ticket #384, screenshot policy01.png). Riportiamo le etichette legacy
nel flusso normale, sopra il campo. Non tocca le label BI native (bare <label>, senza .form-label). */
.form-group .form-label {
position: static;
line-height: 1.4;
padding: 0;
width: auto;
max-width: none;
z-index: auto;
background-color: transparent;
cursor: default;
}
.form-input,
.form-select,
.form-textarea {
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (card/gauge/stat/modali) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<!-- PWA:start -->
<link rel="manifest" href="/manifest.webmanifest">
<meta name="theme-color" content="#0066CC">
+1 -1
View File
@@ -7,7 +7,7 @@
<!-- Bootstrap Italia v2.18.1 self-hostato (regola: MAI CDN). Caricato PRIMA di style.css
cosi' style.css resta autorevole per la chrome (sidebar/widget). BI veste la guida. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
/* ── Stili specifici guida (callout normativi/esempi) ──────── */
.guide-wrap { max-width: 940px; margin: 0 auto; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (tabelle/decision-tree/modali) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
/* ── Filters Bar ─────────────────────────────────────── */
.filters-bar {
+1 -1
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>NIS2 Agile — Integrazioni Esterne</title>
<link rel="stylesheet" href="css/style.css?v=20260613b">
<link rel="stylesheet" href="css/style.css?v=20260618">
<style>
/* ── Page-specific overrides ── */
.integ-hero {
+1 -1
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Audit interni - NIS2 Agile</title>
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260631">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.ia-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:12px; font-size:.92rem; line-height:1.6; }
.ia-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 16px; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (wizard/SoA/tabelle) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.isms-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:20px; font-size:.92rem; line-height:1.6; }
.isms-steps { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:20px; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (lista doc, search) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.kb-scope-radios { display: flex; gap: 18px; flex-wrap: wrap; font-size: .9rem; }
.kb-scope-radios label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
+1 -1
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>NIS2 Agile — Gestione Licenze</title>
<link rel="stylesheet" href="css/style.css?v=20260613b">
<link rel="stylesheet" href="css/style.css?v=20260618">
<style>
/* ── Layout ── */
body { background: var(--bg-main); }
+1 -1
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Riesame di Direzione - NIS2 Agile</title>
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260631">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.mr-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:12px; font-size:.92rem; line-height:1.6; }
.mr-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 16px; }
+1 -1
View File
@@ -6,7 +6,7 @@
<title>Misure e Requisiti - NIS2 Agile</title>
<!-- Bootstrap Italia v2.18.1 self-hostato (regola: MAI CDN). Caricato PRIMA di style.css. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260631">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.mr-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:14px; font-size:.92rem; line-height:1.6; }
.mr-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 16px; }
+1 -1
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>NIS2 Agile — License API · Documentazione Marketing</title>
<link rel="stylesheet" href="css/style.css?v=20260613b">
<link rel="stylesheet" href="css/style.css?v=20260618">
<style>
.doc-layout { max-width: 860px; margin: 0 auto; padding: 2rem 1.5rem; }
.doc-hero {
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (card aggiornamenti/badge/modali) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.impact-badge { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 12px; font-size: 0.7rem; font-weight: 700; }
.impact-critical { background: var(--danger-bg); color: var(--danger); }
+1 -1
View File
@@ -6,7 +6,7 @@
<title>Organigramma - NIS2 Agile</title>
<!-- Bootstrap Italia v2.18.1 self-hostato (regola: MAI CDN). Caricato PRIMA di style.css. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260617">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.org-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:18px; font-size:.92rem; line-height:1.6; }
.org-gov-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:12px 0 18px; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (tabelle/editor/modali) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
/* ── Policy Page Styles ──────────────────────────────────── */
.filters-bar {
+1 -1
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Matrice RACI - NIS2 Agile</title>
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260617">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.raci-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:16px; font-size:.92rem; line-height:1.6; }
.raci-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 18px; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (tabelle/modali/form) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
/* ── Tab Navigation ─────────────────────────────────────── */
.tab-nav {
+1 -1
View File
@@ -6,7 +6,7 @@
<title>Scadenziario - NIS2 Agile</title>
<!-- Bootstrap Italia v2.18.1 self-hostato (regola: MAI CDN). Caricato PRIMA di style.css. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260617">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.rev-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:16px; font-size:.92rem; line-height:1.6; }
.rev-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 18px; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (tabelle/matrice/modali) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
/* ── View Toggle ─────────────────────────────────────── */
.view-toggle {
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (tabelle/modali/form) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.settings-tabs {
display: flex;
+1 -1
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Configura Organizzazione - NIS2 Agile</title>
<link rel="stylesheet" href="css/style.css?v=20260613b">
<link rel="stylesheet" href="css/style.css?v=20260618">
<!-- PWA:start -->
<link rel="manifest" href="/manifest.webmanifest">
<meta name="theme-color" content="#0066CC">
+1 -1
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Attività stakeholder - NIS2 Agile</title>
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260631">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.sa-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:12px; font-size:.92rem; line-height:1.6; }
.sa-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 16px; }
+1 -1
View File
@@ -6,7 +6,7 @@
<title>Stakeholder - NIS2 Agile</title>
<!-- Bootstrap Italia v2.18.1 self-hostato (regola: MAI CDN). Caricato PRIMA di style.css. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260631">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.stk-intro { background:#eff6ff; border-left:4px solid var(--primary,#2563eb); padding:14px 18px; border-radius:8px; margin-bottom:12px; font-size:.92rem; line-height:1.6; }
.stk-note { font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin:0 0 16px; }
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (tabelle/modali/form) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
/* ── Supply Chain Page Styles ─────────────────────────── */
.filters-bar {
+1 -1
View File
@@ -8,7 +8,7 @@
cosi' style.css (design system esistente) resta autorevole per i widget renderizzati
via JS (tabelle/modali/form) -> parita' funzionale assoluta. BI veste la chrome. -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
/* ── Tab Navigation ─────────────────────────────────────── */
.tab-nav {
+1 -1
View File
@@ -1 +1 @@
{"version": "1.23.1", "build": "2026-06-18-v1.23.1", "date": "2026-06-18", "changelog": "Hardening integrità DB (mig.058, estende l'audit mig.039 ai moduli 040-057): +4 UNIQUE su chiavi naturali (internal_audits/management_reviews codice per-org, kb_uploaded_documents.qdrant_doc_uuid, whistleblowing_reports.anonymous_token) + retry-on-1062 nei controller Audit interni/Riesame Direzione; +6 FK mancanti (consulting_firm_id su organizations/users/kb, isms_soa.linked_control_id, isms_documents.linked_policy_id, management_review_decisions.capa_id); bonifica 16 righe stale (firm_org_assignments verso org 126-129 eliminate + active_sessions scadute) + 2 FK CASCADE. FK totali 196->204. Sonda diagnostica db_integrity_probe.php. Nessun impatto funzionale per l'utente."}
{"version": "1.23.2", "build": "2026-06-18-v1.23.2", "date": "2026-06-18", "changelog": "Fix allineamento etichette/campi nella modale 'Modifica Policy' (ticket #384 punto 4): override del floating-label di Bootstrap Italia che, su tutte le modali con form legacy (.form-label), sovrapponeva l'etichetta al valore del campo. Le etichette tornano sopra il campo. Cache-buster style.css -> 20260618 su 38 pagine. NB: l'unificazione degli archivi Policy/Procedure, i link M:N requisito<->policy, gli allegati e la matrice RACI per policy (restanti punti del ticket #384) sono in lavorazione a fasi."}
+1 -1
View File
@@ -9,7 +9,7 @@
renderizzati via JS (tabelle/modali/timeline) -> parita' funzionale assoluta.
BI veste la chrome (sidebar + font istituzionale). -->
<link rel="stylesheet" href="/vendor/bootstrap-italia/dist/css/bootstrap-italia.min.css">
<link rel="stylesheet" href="/css/style.css?v=20260613b">
<link rel="stylesheet" href="/css/style.css?v=20260618">
<style>
.priority-badge { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 12px; font-size: 0.7rem; font-weight: 700; }
.priority-critical { background: var(--danger-bg); color: var(--danger); }
+1 -1
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Compliance Journey - NIS2 Agile</title>
<link rel="stylesheet" href="css/style.css?v=20260613b">
<link rel="stylesheet" href="css/style.css?v=20260618">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
:root {