:root{
  --bg:#f4f7fb;--panel:#fff;--text:#182333;--muted:#607086;--primary:#b5122a;--primary2:#0b7a45;--line:#dbe3ee;--ok:#2d7d46;--warn:#ab6b00;--bad:#b3261e;--soft:#eef5fb;--shadow:0 12px 30px rgba(17,43,72,.10)
}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
.topbar{height:82px;background:linear-gradient(135deg,var(--primary),#231f20);color:white;display:flex;align-items:center;justify-content:space-between;padding:14px 22px;position:sticky;top:0;z-index:5;box-shadow:var(--shadow)}
.brand{display:flex;gap:14px;align-items:center}.logo{width:48px;height:48px;border:2px solid rgba(255,255,255,.75);border-radius:50%;display:grid;place-items:center;font-weight:800;letter-spacing:.5px;background:rgba(255,255,255,.12)}
h1{font-size:22px;margin:0}.brand p{margin:3px 0 0;color:#d9e9f5}.top-actions{display:flex;gap:10px}
button{border:0;background:var(--primary2);color:white;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(15,76,129,.16)}button:hover{filter:brightness(1.05)}button.ghost{background:#e9f2f8;color:var(--primary);box-shadow:none;border:1px solid #c9dbe9}button.danger{background:var(--bad)}
.layout{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 82px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:18px;position:sticky;top:82px;height:calc(100vh - 82px)}.nav{display:block;width:100%;text-align:left;background:transparent;color:var(--text);box-shadow:none;border-radius:10px;padding:12px 14px;margin-bottom:6px}.nav:hover,.nav.active{background:var(--soft);color:var(--primary)}
.status-card{margin-top:22px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.label{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.status-card strong{display:block;margin-top:4px}.status-card small{color:var(--muted)}
.content{padding:24px;max-width:calc(100vw - 250px)}.view{display:none}.content>.view:not(.active){display:none!important;visibility:hidden!important}.content>.view.active{display:block!important;visibility:visible!important}.view-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.view-header h2{margin:0 0 4px;font-size:28px}.view-header p{margin:0;color:var(--muted)}.header-actions{display:flex;gap:10px;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:14px;margin-bottom:18px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.kpi b{display:block;font-size:28px;margin:6px 0}.kpi span{color:var(--muted);font-size:13px}.kpi.ok b{color:var(--ok)}.kpi.warn b{color:var(--warn)}.kpi.bad b{color:var(--bad)}
.panel-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.panel,.cards .panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.panel h3{margin-top:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cards p{color:var(--muted)}
.filters{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:10px;background:#fff;border:1px solid var(--line);padding:12px;border-radius:14px;margin-bottom:14px}input,select,textarea{width:100%;border:1px solid #cfd9e6;border-radius:10px;padding:10px;background:#fff;color:var(--text);font:inherit}textarea{resize:vertical}label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#344154}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:auto;box-shadow:var(--shadow)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{border-bottom:1px solid var(--line);padding:10px;vertical-align:top}th{position:sticky;top:0;background:#eef5fb;color:#20364e;text-align:left;z-index:1}tbody tr{cursor:pointer}tbody tr:hover{background:#f7fbff}tr.selected{background:#e8f3fd!important}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.clamp{max-width:360px;white-space:normal}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;background:#eef2f6;color:#344154}.pill.ok{background:#e6f4ea;color:var(--ok)}.pill.warn{background:#fff4df;color:var(--warn)}.pill.bad{background:#fdecea;color:var(--bad)}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.span2{grid-column:span 2}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.form-actions button{min-width:180px}
.matrix{display:grid;grid-template-columns:70px repeat(5,1fr);gap:6px}.matrix .cell{padding:12px;border-radius:10px;min-height:58px;background:#f5f7fa;border:1px solid var(--line);font-size:13px}.matrix .head{background:#e7eef7;font-weight:800}.matrix .risk-ok{background:#e6f4ea}.matrix .risk-warn{background:#fff4df}.matrix .risk-bad{background:#fdecea}.alerts{display:grid;gap:10px}.alert{border-left:4px solid var(--warn);background:#fff9ef;padding:10px 12px;border-radius:10px}.alert.bad{border-left-color:var(--bad);background:#fff1f0}.alert.ok{border-left-color:var(--ok);background:#eef9f0}.empty{padding:28px;text-align:center;color:var(--muted)}
@media (max-width:1050px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto;display:flex;gap:8px;overflow:auto}.nav{white-space:nowrap}.content{max-width:100vw}.kpis{grid-template-columns:repeat(2,1fr)}.panel-grid,.cards{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:span 1}}
.badText{color:var(--bad);font-weight:800}
.logo-img{width:300px;height:auto;max-height:84px;object-fit:contain;background:#fff;border-radius:12px;padding:8px 12px;border:1px solid rgba(255,255,255,.75);display:block;image-rendering:auto}
.role-badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:800;border:1px solid rgba(255,255,255,.5)}
.role-badge.viewer{background:#fff4df;color:#6f4500}.role-badge.editor{background:#e6f4ea;color:#1f6f3a}
.notice{margin-bottom:14px;border-left:4px solid var(--warn);background:#fff9ef;padding:12px 14px;border-radius:12px;color:#513600}
.flag-btn{padding:7px 9px;border-radius:999px;font-size:12px;background:#eef2f6;color:#344154;box-shadow:none;border:1px solid #ccd6e2}.flag-btn.flagged{background:#fff4df;color:var(--warn);border-color:#f0c36d}.flag-btn.closed{background:#e6f4ea;color:var(--ok);border-color:#9ed1aa}.flag-btn:disabled{opacity:.75;cursor:not-allowed}
.review-box{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fbfdff}.review-box legend{font-weight:800;color:var(--primary);padding:0 8px}.review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:8px 0}.checkline{display:flex;flex-direction:row;align-items:center;gap:10px}.checkline input{width:auto}
.is-viewer #newHazardBtn,.is-viewer #addStepBtn,.is-viewer #deleteBtn,.is-viewer #exportJsonBtn,.is-viewer #exportCsvBtn,.is-viewer #resetBtn,.is-viewer #importFile{opacity:.55;cursor:not-allowed}.is-viewer .editor-only{display:none!important}.is-editor .editor-only{display:table-cell}
.filters{grid-template-columns:2fr repeat(6,1fr)}.kpis{grid-template-columns:repeat(7,minmax(120px,1fr))}.cards{grid-template-columns:repeat(4,1fr)}
@media (max-width:1250px){.kpis{grid-template-columns:repeat(3,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.topbar{height:auto;align-items:flex-start;gap:12px;flex-direction:column}.top-actions{flex-wrap:wrap}.logo-img{width:300px;height:auto;max-height:84px;object-fit:contain;background:#fff;border-radius:12px;padding:8px 12px;border:1px solid rgba(255,255,255,.75);display:block;image-rendering:auto}.filters,.review-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr}}


.print-filters{grid-template-columns:2fr repeat(6,1fr) auto auto;align-items:center}
.checkline.compact{font-size:13px;font-weight:800;color:#344154;white-space:nowrap;background:#fbfdff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;height:100%;justify-content:center}
.filter-summary{display:flex;align-items:center;min-height:38px;color:var(--muted);font-weight:800;font-size:13px;padding:0 4px;white-space:nowrap}
.report-meta .wide{grid-column:span 3}
@media (max-width:1250px){.print-filters{grid-template-columns:1fr 1fr}.filter-summary{white-space:normal}.report-meta .wide{grid-column:span 2}}
@media (max-width:760px){.print-filters{grid-template-columns:1fr}.report-meta .wide{grid-column:span 1}}

.print-report{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.report-cover{break-inside:avoid}.report-head{display:flex;gap:18px;align-items:center;border-bottom:3px solid var(--primary);padding-bottom:12px;margin-bottom:12px}.report-head img{width:220px;max-height:88px;object-fit:contain;background:#fff;border:1px solid #d6dee8;border-radius:10px;padding:8px}.report-head h1{color:var(--primary);font-size:28px;margin:0}.report-head h2{font-size:18px;margin:3px 0;color:#344154}.report-head p{margin:0;color:var(--muted)}
.report-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.report-meta div{border:1px solid var(--line);background:#fbfdff;border-radius:10px;padding:8px;font-size:13px}.report-note{border-left:4px solid var(--primary);background:#eef5fb;border-radius:10px;padding:10px;margin:12px 0;font-size:13px}.print-title{margin-top:18px}
.report-table{font-size:10px}.report-table th,.report-table td{padding:5px;vertical-align:top}.report-table th{position:static;background:#e7eef7}.report-table td:nth-child(4),.report-table td:nth-child(5),.report-table td:nth-child(7),.report-table td:nth-child(9),.report-table td:nth-child(10),.report-table td:nth-child(11){min-width:120px}.center{text-align:center}.signature-page{break-inside:avoid;page-break-inside:avoid;margin-top:28px;border-top:3px solid var(--primary);padding-top:14px}.signature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}.signature-grid div{height:105px;border:1px solid #9ba9ba;border-radius:8px;padding:10px}.signature-grid span{display:block;margin-top:50px;border-top:1px solid #667;padding-top:6px;color:#445}.signature-date{margin-top:22px;font-weight:700}
@media print{
  @page{size:A4 landscape;margin:8mm}
  html,body{background:#fff!important;color:#000!important}
  .topbar,.sidebar,.no-print,.filters,.header-actions,#export,.form-actions,button{display:none!important}
  .layout{display:block!important;min-height:auto!important}.content{max-width:none!important;padding:0!important}.view{display:none!important}.view.active{display:block!important}.view#printReport.active,.view#singleRiskAssessmentPrint.active,.view#riskToolPrint.active{display:block!important}.print-report{border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important}.report-head{break-inside:avoid}.report-table{font-size:7.2pt;line-height:1.15;width:100%;border-collapse:collapse}.report-table th,.report-table td{border:0.35pt solid #9aa7b7!important;padding:2.5pt!important}.report-table th{background:#e8eef7!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-meta div,.report-note{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pill{border:0.35pt solid #777!important;background:#fff!important;color:#000!important}.signature-page{page-break-before:always}.signature-grid div{height:90px}.logo-img{width:300px;height:auto;max-height:84px;object-fit:contain;background:#fff;border-radius:12px;padding:8px 12px;border:1px solid rgba(255,255,255,.75);display:block;image-rendering:auto}.clamp{max-width:none!important}
}

.matrix-sets{display:grid;grid-template-columns:1fr;gap:18px}
.matrix-card h4{margin-bottom:8px}.matrix-card details{margin-top:12px}.matrix.mini{grid-template-columns:64px repeat(5,90px);overflow:auto;margin:12px 0}.matrix.mini .cell{min-height:52px;padding:9px;font-size:12px}
@media (max-width:1250px){.matrix.mini{grid-template-columns:64px repeat(5,1fr)}}


/* Risk Assessment Tool */
.risk-tool-form{display:grid;gap:16px}.risk-section{padding:16px}.risk-section h3{margin-top:0;color:var(--primary)}.compact-grid{grid-template-columns:repeat(4,1fr);box-shadow:none;border:0;padding:0;background:transparent}.checkbox-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfdff;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.checkbox-card legend{font-weight:800;color:var(--primary);padding:0 8px}.checkbox-card label{display:flex;flex-direction:row;align-items:center;font-weight:700;gap:8px}.checkbox-card input{width:auto}.mitigation-editor table input,.mitigation-editor table select,.mitigation-editor table textarea{font-size:12px;padding:6px;border-radius:8px}.mitigation-editor table textarea{min-width:280px}.mitigation-editor .mini-btn{padding:6px 8px;font-size:12px;box-shadow:none}.ra-tool-result{border-left:4px solid var(--primary);background:#eef5fb;border-radius:10px;padding:12px;font-weight:700;color:#20364e}.ra-tool-result.ok{border-color:var(--ok);background:#e6f4ea;color:#1f6f3a}.ra-tool-result.bad{border-color:var(--bad);background:#fdecea;color:#8b1d1d}@media (max-width:1100px){.compact-grid{grid-template-columns:1fr 1fr}.checkbox-card{grid-template-columns:1fr 1fr}}@media (max-width:760px){.compact-grid{grid-template-columns:1fr}.checkbox-card{grid-template-columns:1fr}}


/* v3.7 module landing and Information Security */
.nav-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6f7d90;font-weight:900;margin:16px 8px 6px}
.landing-view{max-width:1180px;margin:0 auto}.landing-hero{display:flex;align-items:center;gap:24px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:var(--shadow);margin-bottom:22px}.landing-hero img{width:260px;max-height:105px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.landing-hero h2{font-size:34px;margin:0;color:var(--primary)}.landing-hero p{font-size:17px;color:var(--muted);margin:6px 0 0}.module-cards{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:18px}.module-card{text-align:left;background:#fff;color:var(--text);border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;min-height:190px}.module-card:hover{filter:none;border-color:#8bb8dc;transform:translateY(-1px)}.module-card span{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-weight:900}.module-card strong{font-size:25px}.module-card small{font-size:15px;line-height:1.45;color:var(--muted)}
select[multiple]{min-height:88px;padding:8px}.print-filters select[multiple]{min-width:180px}
.bar-row{display:grid;grid-template-columns:190px 1fr 45px;align-items:center;gap:10px;margin:9px 0}.bar-row b{display:block;height:14px;border-radius:999px;background:var(--primary2);min-width:6px}.bar-row span{font-weight:800;color:#344154}.bar-row strong{text-align:right}
.is-bars{padding:8px 0}.is-matrix-table table,.is-print-matrix table{width:auto;min-width:520px}.is-matrix-table th,.is-matrix-table td{border:1px solid var(--line);padding:10px;text-align:center}.is-matrix-table th{background:#e7eef7;color:#20364e;position:static}.is-matrix-table td{background:#fbfdff}
@media (max-width:760px){.module-cards{grid-template-columns:1fr}.landing-hero{flex-direction:column;align-items:flex-start}.landing-hero img{width:260px}.logo-img{width:240px;max-height:76px}}
@media print{
  .view#printReport{display:none!important}.view#printReport.active{display:block!important}.view#isPrint.active{display:block!important}
  .landing-view,.nav-section-title{display:none!important}
  .is-print-matrix table{width:100%}
}

/* v3.8 refinements */
.ref-cell{max-width:260px;min-width:210px}.ref-preview{color:#344154}.inline-details{margin-top:4px}.inline-details summary{cursor:pointer;color:var(--primary);font-weight:800}.inline-details div{white-space:pre-wrap;background:#f7f9fc;border:1px solid var(--line);border-radius:8px;padding:8px;margin-top:6px;max-width:520px}.is-editor-form{margin-top:16px}.is-editor-form h3{margin-top:0;color:var(--primary)}.mitigation-editor table th:nth-child(6),.mitigation-editor table th:nth-child(7){min-width:88px}.muted{color:var(--muted)}
@media (max-width:760px){.logo-img{width:220px;max-height:72px}.ref-cell{min-width:160px}}
@media print{.report-head img{background:#fff!important;border:0.35pt solid #d6dee8!important;border-radius:6pt!important;padding:5pt!important}}

/* v3.9 risk tool and IS detail */
.inline-actions{justify-content:flex-start;margin:8px 0 12px 0}
.inline-actions button{min-width:130px}.inline-actions .muted{align-self:center;font-size:13px}
.detail-card{margin-bottom:16px}.detail-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}.detail-title-row h3{margin:0;color:var(--primary)}.detail-title-row p{margin:4px 0 0;color:var(--muted)}.sticky-actions{position:sticky;bottom:0;background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:var(--shadow);justify-content:flex-end;margin-top:12px}.sticky-actions .ghost{margin-right:auto}
.mitigation-editor table th:nth-child(8),.mitigation-editor table th:nth-child(9),.mitigation-editor table th:nth-child(10){min-width:96px;text-align:center}.mitigation-editor table td:nth-child(8),.mitigation-editor table td:nth-child(9),.mitigation-editor table td:nth-child(10){text-align:center}
@media (max-width:760px){.detail-title-row{flex-direction:column}.sticky-actions{position:static;flex-direction:column}.sticky-actions button{width:100%}}


/* v4.1 Safety Performance Indicators */
.spi-filters{grid-template-columns:180px 240px 1fr}
.spi-year-panel{margin-bottom:14px}
.spi-table input,.spi-table textarea{font-size:12px;padding:7px;border-radius:8px;min-width:90px}
.spi-table textarea{min-width:260px}
.spi-table th:nth-child(4),.spi-table td:nth-child(4){min-width:300px}
.spi-table th:nth-child(9),.spi-table td:nth-child(9){min-width:260px}
@media (max-width:1000px){.spi-filters{grid-template-columns:1fr}.module-cards{grid-template-columns:1fr}}
@media print{.spi-year-panel{break-inside:avoid}.spi-table input,.spi-table textarea{border:0!important;padding:0!important;background:transparent!important;resize:none}.spi-table th{position:static!important}}


/* v4.2 Safety Report register */
.sr-filters{grid-template-columns:2fr 150px 180px 190px 190px}
.safety-report-detail{margin-bottom:16px}
.safety-report-detail .form-grid{grid-template-columns:repeat(4,1fr)}
.linked-hazards{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.mini-link{padding:7px 10px;font-size:12px;box-shadow:none}
#srTable th:nth-child(8),#srTable td:nth-child(8),
#srTable th:nth-child(9),#srTable td:nth-child(9){min-width:320px}
#srTable th:nth-child(11),#srTable td:nth-child(11){min-width:150px}
@media (max-width:1100px){.sr-filters{grid-template-columns:1fr 1fr}.safety-report-detail .form-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.sr-filters,.safety-report-detail .form-grid{grid-template-columns:1fr}.linked-hazards{justify-content:flex-start}}
@media print{
  #safetyReports.active{display:block!important}
  .safety-report-detail,#srLockNotice,#srKpis,.sr-filters{break-inside:avoid}
  #srTable th{position:static!important}
}


/* v4.4 ERP exercise simulator - PAS maintenance/CAMO */
.erp-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin-bottom:16px}.erp-config,.erp-runner{align-self:start}.erp-timer-box{background:linear-gradient(135deg,#c8102e,#7f0b1e);color:#fff;border-radius:16px;padding:18px;margin-bottom:16px}.erp-timer-box .label{color:#ffe2e8}.erp-timer-box strong{display:block;font-size:42px;letter-spacing:.04em;margin:6px 0}.erp-timer-box small{color:#fff4f6}.erp-current-inject p{margin:8px 0}.erp-action-box{margin-top:16px}.erp-history-panel,.erp-timeline-panel,.erp-actions-panel{margin-top:16px}.erp-timeline-panel td:nth-child(6),.erp-timeline-panel td:nth-child(7),.erp-actions-panel td:nth-child(3),.erp-actions-panel td:nth-child(7){min-width:320px}.erp-print-report{margin-top:18px}.compact-header{margin-bottom:10px}.empty{padding:18px;color:var(--muted);background:#fff;border-radius:14px}.erp-runner .alert{white-space:normal}.erp-actions-panel .mini-btn{padding:6px 8px;font-size:12px;box-shadow:none}
@media (max-width:1100px){.erp-layout{grid-template-columns:1fr}.erp-timer-box strong{font-size:34px}}
@media print{#erpExercises.active{display:block!important}.erp-config,#erpLockNotice,#erpKpis,.erp-runner,.erp-history-panel{break-inside:avoid}.erp-print-report{display:block!important}.erp-timeline-panel,.erp-actions-panel{break-inside:auto}.erp-timeline-panel th,.erp-actions-panel th{position:static!important}}


/* Manual library and ERP expected-result reveal */
.expected-toggle{margin-top:10px;border:1px solid rgba(15,76,129,.18);border-radius:12px;background:rgba(255,255,255,.72);padding:8px 10px}.expected-toggle summary{cursor:pointer;font-weight:800;color:var(--primary)}.expected-toggle p{margin:8px 0 0}.expected-toggle.compact{font-size:.92em;min-width:190px}.manual-library-grid{display:grid;grid-template-columns:0.9fr 1.6fr;gap:18px;margin-bottom:18px}.manual-docs{display:grid;gap:10px}.manual-doc-card,.manual-link-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;text-align:left;display:grid;gap:4px;cursor:pointer;box-shadow:var(--shadow-soft)}.manual-doc-card:hover,.manual-link-card:hover,.manual-result:hover{border-color:var(--primary);transform:translateY(-1px)}.manual-doc-card b{font-size:1.15rem;color:var(--primary)}.manual-doc-card span,.manual-link-card span{font-weight:700}.manual-doc-card small,.manual-link-card small,.manual-result span{color:var(--muted)}.manual-search-controls{grid-template-columns:1fr 220px auto}.manual-search-results{display:grid;gap:10px;max-height:430px;overflow:auto;padding-right:4px}.manual-result{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;cursor:pointer}.manual-result div{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.manual-result p{margin:8px 0 0;color:var(--text);font-size:.94rem}.manual-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.manual-forms-list table td:first-child{white-space:nowrap}.manual-pdf-frame{width:100%;height:720px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}.compact-notice{margin:0}.manual-selected-panel{margin-bottom:18px}.manual-selected-text{border:1px solid var(--line);border-radius:16px;background:#fff;max-height:620px;overflow:auto;padding:0}.manual-selected-text pre{white-space:pre-wrap;font-family:inherit;line-height:1.5;margin:0;padding:16px;color:var(--text)}.manual-selected-text mark{background:#fff1a8;border-radius:4px;padding:0 2px}.manual-selected-panel .header-actions{align-items:center}.manual-result::after{content:"Clicca per visualizzare il testo";display:block;margin-top:8px;color:var(--primary);font-size:.82rem;font-weight:800}.manual-preview-panel{margin-top:18px}@media(max-width:980px){.manual-library-grid{grid-template-columns:1fr}.manual-search-controls{grid-template-columns:1fr}.manual-pdf-frame{height:520px}}
@media print{.expected-toggle summary{display:none}.expected-toggle{border:0;background:transparent;padding:0}.manual-preview-panel,.manual-docs-panel,.manual-search-panel,.manual-procedure-panel,.manual-forms-panel{break-inside:avoid}.manual-pdf-frame{display:none}}

.form-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.mini-link{font-size:.82rem;color:var(--primary);font-weight:800;text-decoration:none}.mini-link:hover{text-decoration:underline}.muted{color:var(--muted)}


/* v4.8 menu laterale riorganizzato */
.sidebar{overflow-y:auto;scrollbar-width:thin;padding:14px 14px 18px}.nav-home{margin-bottom:12px;background:#fff4f6;color:var(--primary);border:1px solid #f1cbd2;font-weight:900}.nav-home.active{background:linear-gradient(135deg,var(--primary),#7f0b1e);color:#fff}.nav-group{border:1px solid #e7edf5;border-radius:16px;background:#fbfdff;padding:8px;margin:0 0 12px}.nav-group-admin{background:#fffaf4;border-color:#f4dfbf}.nav-section-title{margin:4px 8px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#607086;font-weight:900}.nav-group .nav{margin-bottom:4px;padding:10px 12px;border-left:3px solid transparent}.nav-group .nav:last-child{margin-bottom:0}.nav.active{border-left-color:var(--primary);font-weight:900}.nav.is-nav.active{border-left-color:var(--primary2)}.nav:hover{transform:translateX(1px)}
@media (max-width:1050px){.sidebar{display:flex;align-items:flex-start;gap:10px;overflow:auto;height:auto;position:static;padding:12px}.nav-home{min-width:130px}.nav-group{display:inline-flex;flex-direction:column;min-width:210px;margin:0}.nav-section-title{white-space:nowrap}.status-card{min-width:220px;margin-top:0}.nav{white-space:normal}}
@media print{.nav-group{display:none!important}}
@media (min-width:1051px){.layout{grid-template-columns:290px 1fr}.content{max-width:calc(100vw - 290px)}}


.module-card.primary-module{border-color:rgba(200,16,46,.45);box-shadow:0 12px 28px rgba(200,16,46,.10)}
#publicSafetyReport .notice{margin-bottom:16px}
#publicSrFeedback{font-weight:700}


.button-like{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid rgba(11,122,69,.35);background:var(--primary2);color:#fff!important;font-weight:800;padding:10px 14px;cursor:pointer;box-shadow:0 4px 12px rgba(15,76,129,.16);text-decoration:none}
.tech-meta{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.tech-meta span{background:#fff;border:1px solid var(--border);border-radius:999px;padding:8px 12px;box-shadow:0 6px 16px rgba(0,0,0,.05)}
.tech-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);gap:16px;align-items:start}
.tech-table-wrap{max-height:560px;overflow:auto}
#techSourcesTable tbody tr{cursor:pointer}
#techSourcesTable td{vertical-align:top}
.tech-detail{position:sticky;top:88px}
.tech-detail-body h4{margin:14px 0 6px}
.tech-detail-status{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.tech-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tech-detail-row{border:1px solid var(--border);border-radius:10px;padding:8px;background:#fff}
.tech-detail-row span{display:block;font-size:.78rem;color:var(--muted);font-weight:700}
.tech-detail-row strong{font-size:.9rem}
.preserve-lines{white-space:pre-wrap;background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px}
@media(max-width:1100px){.tech-layout{grid-template-columns:1fr}.tech-detail{position:static}.tech-detail-grid{grid-template-columns:1fr}}


.app-manual-view .notice{margin-bottom:16px}
.manual-help-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}
.manual-help-toc{position:sticky;top:92px;max-height:calc(100vh - 120px);overflow:auto}
.manual-help-toc input{width:100%;margin:6px 0 12px}
.manual-help-toc nav{display:flex;flex-direction:column;gap:6px}
.manual-help-toc nav a{padding:7px 9px;border-radius:10px;text-decoration:none;color:inherit;background:rgba(0,0,0,.035);font-size:.92rem}
.manual-help-toc nav a:hover{background:rgba(200,16,46,.10)}
.manual-help-content{display:flex;flex-direction:column;gap:12px}
.manual-chapter{background:#fff;border:1px solid rgba(0,0,0,.09);border-radius:16px;box-shadow:0 8px 22px rgba(0,0,0,.04);overflow:hidden}
.manual-chapter summary{cursor:pointer;font-weight:800;padding:16px 18px;background:linear-gradient(90deg,rgba(200,16,46,.08),rgba(0,0,0,.02));list-style:none}
.manual-chapter summary::-webkit-details-marker{display:none}
.manual-chapter summary:before{content:"▸";display:inline-block;margin-right:8px;transition:.18s transform}
.manual-chapter[open] summary:before{transform:rotate(90deg)}
.manual-chapter-body{padding:16px 20px;line-height:1.58}
.manual-chapter-body h4{margin:14px 0 6px}
.manual-chapter-body p{margin:8px 0}
.manual-chapter-body ul,.manual-chapter-body ol{margin:8px 0 12px 22px}
.manual-chapter-body li{margin:4px 0}
@media(max-width:980px){.manual-help-layout{grid-template-columns:1fr}.manual-help-toc{position:static;max-height:none}}
@media print{.manual-help-toc,.app-manual-view .header-actions,.sidebar,.topbar{display:none!important}.manual-help-layout{display:block}.manual-chapter{break-inside:avoid;box-shadow:none}.manual-chapter[hidden]{display:none!important}.manual-chapter-body{padding:10px 0}.manual-chapter summary{padding:10px 0;background:none}}


.merl-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
.merl-tech-panel{position:sticky;top:92px;max-height:calc(100vh - 120px);overflow:auto}
.merl-tech-panel input{width:100%;margin-bottom:12px}
.merl-tech-list{display:flex;flex-direction:column;gap:8px}
.merl-tech-card{width:100%;text-align:left;border:1px solid rgba(0,0,0,.09);background:#fff;border-radius:14px;padding:12px;cursor:pointer;display:flex;flex-direction:column;gap:4px}
.merl-tech-card:hover{border-color:rgba(200,16,46,.4);box-shadow:0 8px 18px rgba(0,0,0,.06)}
.merl-tech-card.selected{border-color:#c8102e;background:rgba(200,16,46,.06)}
.merl-tech-card span,.merl-tech-card small{color:#555}
.merl-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.merl-filters{grid-template-columns:2fr repeat(4,1fr)}
.merl-table-wrap{max-height:460px;overflow:auto}
#merlTable th,#merlTable td{vertical-align:top}
#merlTable .num{text-align:right}
#merlTable tr.selected{outline:2px solid rgba(200,16,46,.4);background:rgba(200,16,46,.05)}
.merl-print-area{display:none}
.merl-print-header{display:flex;gap:18px;align-items:center;border-bottom:2px solid #111;padding-bottom:12px;margin-bottom:12px}
.merl-print-header img{width:210px;max-height:76px;object-fit:contain}
.merl-print-header h1{font-size:20px;margin:0 0 4px}
.merl-print-header h2{font-size:16px;margin:0 0 4px}
.merl-print-summary{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 12px;font-size:12px}
.merl-print-table{width:100%;border-collapse:collapse;font-size:8.5px}
.merl-print-table th,.merl-print-table td{border:1px solid #999;padding:3px 4px;vertical-align:top}
.merl-print-table th{background:#eee}
.merl-signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px;break-inside:avoid}
.merl-signatures div{border-top:1.5px solid #111;padding-top:8px;min-height:34px;text-align:center;font-size:11px}
@media(max-width:980px){.merl-layout{grid-template-columns:1fr}.merl-tech-panel{position:static;max-height:none}.merl-filters{grid-template-columns:1fr}}
@media print{
  body.print-merl .topbar, body.print-merl .sidebar{display:none!important}
  body.print-merl .content{padding:0!important;margin:0!important}
  body.print-merl .content>.view:not(#merl){display:none!important}
  body.print-merl #merl > :not(.merl-print-area){display:none!important}
  body.print-merl .merl-print-area{display:block!important}
  body.print-merl .merl-print-table{font-size:7.6px}
  body.print-merl .merl-print-table th, body.print-merl .merl-print-table td{padding:2px 3px}
}
@page{size:A4 landscape;margin:8mm}


/* Fix leggibilità sezione MERL */
.merl-tech-card{color:var(--text)!important;box-shadow:none}
.merl-tech-card strong{color:#000!important}
.merl-tech-card span,.merl-tech-card small{color:#374151!important}
.merl-tech-card.selected{color:var(--text)!important}
.merl-tech-card.selected strong{color:#000!important}
#merl label.button-like[for="merlImportFile"]{background:var(--primary)!important;color:#fff!important;border:2px solid #8f0f23!important;box-shadow:0 6px 16px rgba(181,18,42,.25)!important}
#merl label.button-like[for="merlImportFile"]:hover{filter:brightness(1.06)}


/* MOC ed ERP Activation */
.moc-layout{grid-template-columns:minmax(360px,1.1fr) minmax(360px,1fr)}
.compact-kpis{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px}
.compact-notice{padding:12px 14px;margin:4px 0}
.inline-check{display:inline-flex!important;align-items:center;gap:8px;margin-top:8px;font-weight:700}
.selected-row{outline:2px solid rgba(181,18,42,.35);background:rgba(181,18,42,.045)!important}
.erp-activation-grid{grid-template-columns:minmax(360px,1fr) minmax(360px,1fr)}
.erp-card-detail{background:#f8fbff;border:1px solid var(--line);border-radius:14px;padding:14px;line-height:1.5}
.erp-sheet-card h4{margin:0 0 8px;color:#000}
.erp-sheet-card p{margin:7px 0}
.erp-print-report h3,.print-report h3{margin-top:18px}
.signature-page{break-inside:avoid;margin-top:28px;border-top:2px solid #222;padding-top:14px}
.signature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:28px}
.signature-grid div{border-top:1.5px solid #111;min-height:48px;padding-top:8px;text-align:center}
.signature-grid span{display:block;color:#555;margin-top:4px}
.signature-date{margin-top:22px}
@media(max-width:980px){.moc-layout,.erp-activation-grid{grid-template-columns:1fr}.signature-grid{grid-template-columns:1fr 1fr}}


/* Sezioni SRB/SAG, Safety Information, Communication, Training */
.sms-record-grid{grid-template-columns:minmax(380px,1.05fr) minmax(420px,1fr)}
.sms-record-grid .panel{min-width:0}
.sms-record-grid textarea{min-height:72px}
.compact-kpis{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px}
.pill.bad{background:#fde7e9;color:#8f0f23;border:1px solid rgba(181,18,42,.22)}
.pill.warn{background:#fff4df;color:#805200;border:1px solid rgba(171,107,0,.22)}
.pill.ok{background:#e7f7ec;color:#176034;border:1px solid rgba(45,125,70,.22)}
.selected-row{outline:2px solid rgba(181,18,42,.35);background:rgba(181,18,42,.045)!important}
@media(max-width:980px){.sms-record-grid{grid-template-columns:1fr}}


/* Gestione partecipanti strutturati */
.hidden-participants-field{display:none!important}
.participant-manager{border:1px solid rgba(15,76,129,.16);border-radius:14px;padding:12px;background:rgba(248,251,255,.75)}
.participant-manager h4{margin:0 0 10px;color:#000}
.participant-entry-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr 1.4fr auto;gap:8px;align-items:end}
.participant-entry-grid input{width:100%;min-width:0}
.participant-table{margin-top:10px}
.participant-table table{width:100%;border-collapse:collapse}
.participant-table th,.participant-table td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.participant-table th{background:rgba(15,76,129,.06);text-align:left}
.small-btn{padding:6px 9px;font-size:.82rem;border-radius:8px}
@media(max-width:980px){.participant-entry-grid{grid-template-columns:1fr}.participant-entry-grid button{width:100%}}
@media print{.participant-manager .participant-entry-grid,.participant-manager .no-print{display:none!important}.hidden-participants-field{display:none!important}}


.signature-selector{border:1px solid rgba(15,76,129,.16);border-radius:14px;padding:12px;background:rgba(248,251,255,.75);display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 14px}
.signature-selector legend{font-weight:800;color:#000;padding:0 6px}
.signature-selector label{display:flex!important;align-items:center;gap:8px;font-weight:650}
.dynamic-signatures{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}


/* v7.4 Information Security / NIS extension */
#isAssets .panel-grid, #isNisAssessment .panel-grid { align-items: start; }
#isAssets .span2, #isNisAssessment .span2 { grid-column: span 2; }
.is-asset-editor textarea, #isNisAssessment textarea { min-height: 70px; }
.nis-questionnaire fieldset { border: 1px solid rgba(30,58,138,.18); border-radius: 12px; padding: 10px 12px; margin: 0 0 12px; background: rgba(248,250,252,.78); }
.nis-questionnaire legend { font-weight: 700; color: #1e3a8a; padding: 0 6px; }
.nis-questionnaire .checkline { align-items: flex-start; gap: 8px; margin: 8px 0; }
.nis-questionnaire .checkline span { line-height: 1.25; }
.muted { color: #64748b; font-size: .92rem; }
.table-wrap tr.selected-row td, .table-wrap tr.selected td { background: rgba(59,130,246,.10); }
.mini-btn { padding: 4px 8px; border-radius: 9px; border: 1px solid rgba(30,58,138,.18); background: #fff; cursor: pointer; }
@media (max-width: 1100px){ #isAssets .span2, #isNisAssessment .span2 { grid-column: span 1; } }


/* v7.5 - Documenti IS/NIS */
.is-docs-view .notice { margin-bottom: 12px; }
.is-doc-upload-panel { margin-top: 14px; }
.is-doc-upload-panel input[type="file"] { min-width: 280px; }
.manual-doc-card.uploaded-doc { border-style: dashed; }
.manual-doc-card .doc-type-badge { display:inline-block; margin-top:4px; padding:2px 6px; border-radius:999px; font-size:11px; background:rgba(15,23,42,.08); }
.manual-text-result .doc-search-actions { display:flex; gap:6px; align-items:center; }
@media (max-width: 900px){ .is-doc-upload-panel input[type="file"]{ min-width: 100%; } }

/* v7.6 - IS Report pubblico e registro ISM */
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.65rem;margin-top:.5rem}
.public-is-report-view .notice,.is-reports-view .notice{border-left:4px solid var(--primary,#0f4c81)}
.is-report-detail textarea{min-height:90px}
.is-report-row-open{background:rgba(15,76,129,.06)}
.is-report-status-urgent{font-weight:700}
.is-report-actions{display:flex;flex-wrap:wrap;gap:.4rem}
.linked-hazards .mini-link{margin:.15rem}
@media print{.public-is-report-view,.is-report-filters,#isReportLockNotice{display:none!important}}

#isPriorityActionsPanel table td,#isPriorityActionsPanel table th{vertical-align:top}
#isAnnex3SummaryPanel .alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}


/* Gestione PDF manuali e documenti IS/NIS */
.manual-upload-panel,.is-doc-upload-panel{border:1px solid rgba(15,76,129,.16);background:linear-gradient(180deg,rgba(248,251,255,.96),rgba(255,255,255,.98))}
.manual-doc-card.selected{outline:2px solid rgba(181,18,42,.45);background:rgba(181,18,42,.04)}
.manual-doc-card.uploaded-doc{border-color:rgba(15,76,129,.28)}
.doc-type-badge{display:inline-block;margin-top:6px;font-size:.76rem;font-weight:800;border-radius:999px;padding:3px 8px;background:rgba(15,76,129,.08);color:#0f4c81}
.manual-upload-panel input[type="file"],.is-doc-upload-panel input[type="file"]{padding:9px;background:#fff;border:1px dashed rgba(15,76,129,.35);border-radius:10px}
.manual-upload-panel .form-actions,.is-doc-upload-panel .filters{align-items:center;gap:8px;flex-wrap:wrap}
.manual-upload-panel button:disabled,.is-doc-upload-panel button:disabled{opacity:.55;cursor:not-allowed}


/* Follow-up Hazard Log */
.hazard-followup-grid{grid-template-columns:minmax(420px,1fr) minmax(320px,.85fr)}
.followup-summary{display:grid;gap:10px;margin-top:12px}
.followup-box{border:1px solid rgba(15,76,129,.16);background:rgba(248,251,255,.85);border-radius:14px;padding:12px}
.followup-box b{display:block;color:#000;margin-bottom:5px}
.followup-box span{color:#334155;line-height:1.45}
#hazardFollowUpTable tr.selected-row{outline:2px solid rgba(181,18,42,.35);background:rgba(181,18,42,.045)!important}
@media(max-width:980px){.hazard-followup-grid{grid-template-columns:1fr}}


/* Home per macro-sezioni */
.quick-report-links{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:16px;margin:18px 0 22px}
.section-heading{margin:14px 0 10px}
.section-heading h3{margin:0;color:#000;font-size:1.15rem}
.section-heading p{margin:4px 0 0;color:var(--muted)}
.macro-module-cards .section-module{min-height:178px;border-color:rgba(15,76,129,.20)}
.section-landing .compact-landing{padding:18px 20px}
.section-back-row{margin:0 0 16px}
.module-card-back{border-radius:12px;padding:10px 14px;font-weight:800}
.section-landing .module-cards{margin-top:10px}
@media(max-width:760px){.quick-report-links{grid-template-columns:1fr}}


/* Stampa singolo Risk Assessment */
.single-ra-controls{grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(160px,1fr));align-items:end}
.single-ra-report .report-meta{grid-template-columns:repeat(4,1fr)}
.single-ra-report .report-meta .wide{grid-column:span 2}
.single-ra-main-fields{margin-top:14px}
.single-ra-risk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.single-ra-risk-grid div{border:1px solid var(--line);border-radius:10px;background:#fbfdff;padding:10px}
.single-ra-risk-grid b{display:block;color:#000;margin-bottom:6px}
.single-ra-risk-grid span{display:block;line-height:1.35}
.single-ra-table th:nth-child(2),.single-ra-table td:nth-child(2){min-width:180px}
.single-ra-table th:nth-child(8),.single-ra-table td:nth-child(8){min-width:180px}
.single-ra-extra-signatures{margin-top:16px}
@media(max-width:980px){.single-ra-controls{grid-template-columns:1fr}.single-ra-risk-grid{grid-template-columns:1fr 1fr}.single-ra-report .report-meta{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.single-ra-risk-grid{grid-template-columns:1fr}.single-ra-report .report-meta{grid-template-columns:1fr}}


/* Hazard Log a schede: un rischio = una scheda con mitigazioni in sequenza */
.hazard-card-list{display:grid;gap:16px;margin-top:14px}
.hazard-card{background:#fff;border:1px solid rgba(15,76,129,.18);border-radius:18px;box-shadow:var(--shadow);padding:16px;transition:.15s ease}
.hazard-card:hover{border-color:rgba(15,76,129,.36);box-shadow:0 14px 34px rgba(15,23,42,.08)}
.hazard-card.selected-card{outline:2px solid rgba(181,18,42,.34);background:linear-gradient(180deg,rgba(255,250,251,.98),#fff)}
.hazard-card-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}
.hazard-card-kicker{text-transform:uppercase;font-size:.72rem;font-weight:900;letter-spacing:.08em;color:var(--primary)}
.hazard-card h3{margin:3px 0 6px;color:#000;font-size:1.25rem}
.hazard-card h3 span{font-size:.92rem;color:var(--muted);font-weight:700}
.hazard-card-header p{margin:0;color:#263244;line-height:1.45}
.hazard-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.hazard-card-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.hazard-card-meta div{border:1px solid var(--line);background:#fbfdff;border-radius:12px;padding:9px;min-width:0}
.hazard-card-meta b{display:block;color:#000;margin-bottom:5px;font-size:.84rem}
.hazard-card-meta span{display:block;color:#344154;line-height:1.35;white-space:pre-wrap}
.hazard-card-status{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
.hazard-card-sequence h4{margin:8px 0 8px;color:#000}
.hazard-card-table-wrap{border:1px solid var(--line);border-radius:12px;box-shadow:none}
.hazard-sequence-table{width:100%;border-collapse:collapse;font-size:.88rem}
.hazard-sequence-table th,.hazard-sequence-table td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
.hazard-sequence-table th{background:rgba(15,76,129,.07);text-align:left;color:#101827}
.hazard-sequence-table tr.selected-step{background:rgba(181,18,42,.055)}
.hazard-step-actions{display:flex;gap:6px;flex-wrap:wrap}
.hazard-card-details{margin-top:12px;border:1px solid rgba(15,76,129,.14);border-radius:12px;background:#fbfdff;padding:8px 10px}
.hazard-card-details summary{cursor:pointer;font-weight:850;color:#0f4c81}
.hazard-card-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.hazard-card-notes div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}
.hazard-card-notes b{display:block;color:#000;margin-bottom:5px}
.hazard-card-notes p{margin:0;white-space:pre-wrap;color:#334155;line-height:1.38}
.small-btn{padding:6px 9px;font-size:.82rem;border-radius:8px}
@media(max-width:1100px){.hazard-card-meta,.hazard-card-notes{grid-template-columns:1fr 1fr}.hazard-card-header{flex-direction:column}.hazard-card-actions{justify-content:flex-start}}
@media(max-width:760px){.hazard-card-meta,.hazard-card-notes{grid-template-columns:1fr}.hazard-sequence-table{font-size:.78rem}.hazard-card{padding:12px}}
@media print{.hazard-card{break-inside:avoid;box-shadow:none}.hazard-card-actions,.hazard-step-actions,.no-print{display:none!important}.hazard-card-meta{grid-template-columns:repeat(3,1fr)}}


/* Stampa RA - firme condizionali rischio residuo */
.single-ra-signature-alert{border-radius:12px;padding:10px 12px;margin:12px 0;border:1px solid var(--line);background:#f8fbff;color:#1f2937}
.single-ra-signature-alert.ok{border-color:rgba(45,125,70,.28);background:#ecfdf3;color:#176034}
.single-ra-signature-alert.warn{border-color:rgba(171,107,0,.30);background:#fff7e6;color:#805200}
.single-ra-signature-alert.bad{border-color:rgba(181,18,42,.30);background:#fff0f3;color:#8f0f23}
.single-ra-signature-page .required-signature{outline:2px solid rgba(181,18,42,.25);background:rgba(181,18,42,.035)}


/* Codice colori rischio verde / giallo / rosso */
.risk-green{background:#e7f7ec!important;color:#176034!important;border-color:rgba(45,125,70,.35)!important}
.risk-yellow{background:#fff4df!important;color:#805200!important;border-color:rgba(171,107,0,.35)!important}
.risk-red{background:#fde7e9!important;color:#8f0f23!important;border-color:rgba(181,18,42,.35)!important}
.risk-input-green{background:#e7f7ec!important;color:#176034!important;border:1px solid rgba(45,125,70,.45)!important;font-weight:800}
.risk-input-yellow{background:#fff4df!important;color:#805200!important;border:1px solid rgba(171,107,0,.45)!important;font-weight:800}
.risk-input-red{background:#fde7e9!important;color:#8f0f23!important;border:1px solid rgba(181,18,42,.45)!important;font-weight:800}
.risk-badge{display:inline-block;border-radius:999px;padding:4px 9px;font-weight:900;border:1px solid var(--line)}
.ra-tool-print-report .report-meta .wide{grid-column:span 2}
@media print{.risk-green,.risk-yellow,.risk-red{print-color-adjust:exact;-webkit-print-color-adjust:exact}}


.field-hint{display:block;margin-top:4px;font-size:.78rem;color:var(--muted);font-weight:650}


/* Feedback visivo: input/comando acquisito */
.app-feedback-toast{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:99999;
  display:flex;
  align-items:center;
  gap:10px;
  max-width:min(420px, calc(100vw - 32px));
  padding:12px 14px;
  border-radius:14px;
  background:rgba(15,23,42,.94);
  color:#fff;
  box-shadow:0 18px 40px rgba(15,23,42,.28);
  transform:translateY(18px);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  font-weight:800;
  line-height:1.35;
}
.app-feedback-toast.show{opacity:1;transform:translateY(0)}
.feedback-check{
  display:inline-grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:#22c55e;
  color:#052e16;
  font-weight:950;
  flex:0 0 auto;
}
button.button-input-accepted{
  position:relative;
  outline:3px solid rgba(34,197,94,.34)!important;
  box-shadow:0 0 0 5px rgba(34,197,94,.16)!important;
  transform:translateY(-1px);
}
button.button-input-accepted::after{
  content:"✓ acquisito";
  position:absolute;
  right:8px;
  top:-11px;
  z-index:3;
  padding:2px 7px;
  border-radius:999px;
  background:#22c55e;
  color:#052e16;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.01em;
  white-space:nowrap;
  box-shadow:0 6px 14px rgba(15,23,42,.16);
}
input.field-input-accepted,
select.field-input-accepted,
textarea.field-input-accepted{
  outline:3px solid rgba(34,197,94,.24)!important;
  border-color:rgba(34,197,94,.55)!important;
  transition:outline .12s ease, border-color .12s ease;
}
@media(max-width:760px){
  .app-feedback-toast{left:12px;right:12px;bottom:14px;max-width:none}
  button.button-input-accepted::after{top:-10px;right:4px;font-size:.62rem}
}
@media print{
  .app-feedback-toast,
  button.button-input-accepted::after{display:none!important}
}


/* Etichette letterali gravità/frequenza */
select#raInitialSeverity,select#raInitialLikelihood,select#gravitaIniziale,select#gravitaFinale,select#probIniziale,select#probFinale{font-weight:700}
.report-table small,.hazard-card-meta small{font-weight:700;color:#475569}


/* Scheda completa Hazard Log */
.hazard-detail-view .view-header{align-items:flex-start}
.hazard-detail-content{display:grid;gap:18px}
.hazard-detail-hero{background:linear-gradient(180deg,#ffffff,rgba(248,251,255,.98));border:1px solid rgba(15,76,129,.18);border-radius:20px;box-shadow:var(--shadow);padding:18px}
.hazard-detail-hero h3{margin:4px 0 8px;color:#000;font-size:1.55rem}
.hazard-detail-hero h3 span{font-size:1rem;color:var(--muted);font-weight:750}
.hazard-detail-hero p{margin:0;color:#263244;line-height:1.5}
.hazard-detail-status{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.hazard-detail-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.hazard-detail-meta div,.hazard-detail-risk-summary>div{border:1px solid var(--line);background:#fbfdff;border-radius:14px;padding:11px;min-width:0}
.hazard-detail-meta b,.hazard-detail-risk-summary b{display:block;color:#000;margin-bottom:6px}
.hazard-detail-meta span{display:block;white-space:pre-wrap;color:#334155;line-height:1.38}
.hazard-detail-risk-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.risk-value-block{border:1px solid var(--line);border-radius:12px;padding:9px;background:#fff}
.risk-value-block b{font-size:1.25rem;color:#000;margin:0 0 4px}
.risk-value-block span{font-weight:900;display:block}
.risk-value-block small{display:block;margin-top:4px;color:inherit;opacity:.88}
.hazard-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}
.hazard-detail-timeline{display:grid;gap:12px}
.hazard-detail-timeline h3{margin:0;color:#000}
.mitigation-step-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;position:relative}
.mitigation-step-card::before{content:"";position:absolute;left:26px;top:52px;bottom:-14px;border-left:2px dashed rgba(15,76,129,.24)}
.mitigation-step-card:last-child::before{display:none}
.step-card-marker{display:flex;justify-content:center;align-items:flex-start;padding-top:8px}
.step-card-marker span{display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:#0f4c81;color:#fff;font-weight:950;box-shadow:0 10px 18px rgba(15,76,129,.18)}
.step-card-body{background:#fff;border:1px solid rgba(15,76,129,.16);border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.06);padding:14px}
.mitigation-step-card.active-step .step-card-body{outline:2px solid rgba(181,18,42,.30);background:linear-gradient(180deg,#fff,rgba(255,250,251,.98))}
.step-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}
.step-card-head h4{margin:0 0 5px;color:#000}
.step-card-head p{margin:0;color:#263244;line-height:1.45;white-space:pre-wrap}
.step-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.step-risk-flow{display:grid;grid-template-columns:1fr auto 1fr 160px;gap:10px;align-items:stretch;margin:10px 0}
.step-risk-flow>div{border:1px solid var(--line);border-radius:12px;background:#fbfdff;padding:10px}
.step-risk-flow>div> b{display:block;margin-bottom:6px;color:#000}
.step-risk-flow .step-arrow{display:grid;place-items:center;border:none;background:transparent;font-size:1.7rem;font-weight:950;color:#0f4c81;padding:0}
.step-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}
.step-card-grid.two{grid-template-columns:repeat(2,1fr)}
.step-card-grid>div{background:#fbfdff;border:1px solid var(--line);border-radius:12px;padding:10px;min-width:0}
.step-card-grid b{display:block;color:#000;margin-bottom:5px}
.step-card-grid span,.step-card-grid p{display:block;color:#334155;line-height:1.38;white-space:pre-wrap;margin:0}
.step-card-more{margin-top:12px;border:1px solid rgba(15,76,129,.14);border-radius:12px;background:#fbfdff;padding:8px 10px}
.step-card-more summary{cursor:pointer;font-weight:850;color:#0f4c81}
.hazard-detail-side{position:sticky;top:82px;background:#fff;border:1px solid rgba(15,76,129,.16);border-radius:18px;box-shadow:var(--shadow);padding:14px;display:grid;gap:10px}
.hazard-detail-side h3{margin:0;color:#000}
.hazard-detail-side button{width:100%}
.hazard-detail-help{border:1px solid var(--line);border-radius:12px;background:#fbfdff;padding:10px}
.hazard-detail-help p{margin:5px 0 0;color:#334155;line-height:1.38}
@media(max-width:1100px){.hazard-detail-layout{grid-template-columns:1fr}.hazard-detail-side{position:static}.hazard-detail-meta{grid-template-columns:1fr 1fr}.step-risk-flow{grid-template-columns:1fr 1fr}.step-risk-flow .step-arrow{display:none}.step-card-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.hazard-detail-meta,.hazard-detail-risk-summary,.step-risk-flow,.step-card-grid,.step-card-grid.two{grid-template-columns:1fr}.mitigation-step-card{grid-template-columns:1fr}.mitigation-step-card::before{display:none}.step-card-marker{justify-content:flex-start}.step-card-head{flex-direction:column}.step-card-actions{justify-content:flex-start}}
@media print{.hazard-detail-side,.step-card-actions,.hazard-detail-view .header-actions{display:none!important}.hazard-detail-layout{grid-template-columns:1fr}.mitigation-step-card{break-inside:avoid}.step-card-body,.hazard-detail-hero{box-shadow:none}}


/* Modifiche UI: hazard editor, partecipanti, link pubblico, colori rischio */
.editor-mitigation-overview{border:1px solid rgba(15,76,129,.16);border-radius:16px;background:linear-gradient(180deg,rgba(248,251,255,.96),#fff);padding:14px;margin:2px 0 8px}
.editor-mitigation-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}
.editor-mitigation-head h3{margin:0;color:#000}.editor-mitigation-head p{margin:4px 0 0;color:#334155}.editor-mitigation-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.editor-step-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.editor-step-card{display:grid;gap:6px;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;min-height:110px;color:#172033}.editor-step-card.active{outline:3px solid rgba(181,18,42,.22);background:#fff8fa}.editor-step-card .step-no{font-weight:900;color:#0f4c81}.editor-step-card .step-mitigation{line-height:1.35}.editor-step-card .step-risk{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.editor-step-card .step-risk em{font-style:normal}.participant-entry-grid{grid-template-columns:1fr 1fr 1.3fr 1.5fr auto!important;align-items:stretch}.participant-entry-grid input{min-height:42px;font-size:.94rem;padding:10px 12px}.participant-entry-grid button{min-height:42px;white-space:nowrap}.participant-generic-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:8px;border:1px dashed rgba(15,76,129,.22);border-radius:12px;background:#fbfdff}.participant-generic-buttons span{font-weight:900;color:#000}.public-link-box{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:16px;align-items:center;border:1px solid rgba(15,76,129,.18);border-radius:16px;background:linear-gradient(180deg,rgba(248,251,255,.96),#fff);padding:14px;margin:14px 0}.public-link-box h3{margin:0 0 4px;color:#000}.public-link-box p{margin:0 0 10px;color:var(--muted)}.public-link-box input{width:100%;font-family:ui-monospace,Consolas,monospace}.qr-box{display:grid;place-items:center;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px}.qr-box img{width:180px;height:180px}.risk-input-yellow,.risk-yellow{background:#fff4df!important;color:#805200!important;border-color:rgba(171,107,0,.45)!important}.risk-input-red,.risk-red{background:#fde7e9!important;color:#8f0f23!important;border-color:rgba(181,18,42,.45)!important}.risk-input-green,.risk-green{background:#e7f7ec!important;color:#176034!important;border-color:rgba(45,125,70,.45)!important}@media(max-width:900px){.editor-mitigation-head,.public-link-box{grid-template-columns:1fr;display:grid}.participant-entry-grid{grid-template-columns:1fr!important}.qr-box{justify-content:start}}


/* Migliorie destinatari Safety Communication e link pubblico Safety Report */
.safety-comm-recipient-grid{
  grid-template-columns: minmax(220px,1fr) minmax(220px,1fr) minmax(280px,1.3fr) minmax(280px,1.3fr) auto!important;
  align-items:stretch;
}
.safety-comm-recipient-grid label{
  display:flex!important;
  flex-direction:column;
  gap:5px;
  font-size:.86rem;
  font-weight:850;
  color:#0f172a;
}
.safety-comm-recipient-grid input,
.safety-comm-recipient-grid textarea{
  width:100%;
  min-height:54px;
  font-size:.98rem;
  line-height:1.35;
  padding:11px 12px;
  resize:vertical;
}
.safety-comm-recipient-grid textarea{
  min-height:76px;
}
.safety-comm-recipient-grid button{
  align-self:end;
  min-height:54px;
  padding-inline:16px;
}
.public-link-box{
  grid-column:1 / -1;
}
.public-link-box input{
  min-height:42px;
  font-size:.92rem;
}
.qr-box a{
  display:grid;
  place-items:center;
  color:inherit;
  text-decoration:none;
}
.qr-box img{
  display:block;
  width:220px;
  height:220px;
  object-fit:contain;
}
.qr-fallback{
  display:none;
  align-items:center;
  justify-content:center;
  width:220px;
  min-height:220px;
  padding:14px;
  border:2px dashed rgba(15,76,129,.35);
  border-radius:10px;
  background:#f8fbff;
  color:#0f4c81;
  font-weight:900;
  text-align:center;
}
body.public-safety-only .topbar,
body.public-safety-only .sidebar{
  display:none!important;
}
body.public-safety-only .layout{
  display:block!important;
}
body.public-safety-only .content{
  width:100%!important;
  max-width:980px;
  margin:0 auto;
  padding:22px;
}
body.public-safety-only .view{
  display:none!important;
}
body.public-safety-only #publicSafetyReport.view{
  display:block!important;
}
body.public-safety-only #publicSafetyReport .view-header{
  border-radius:18px;
  padding:18px 20px;
  background:#fff;
  box-shadow:var(--shadow);
  border:1px solid rgba(15,76,129,.14);
}
body.public-safety-only #publicSafetyReport .view-header .header-actions{
  display:flex!important;
}
body.public-safety-only #appFeedbackToast{
  display:flex;
}
@media(max-width:1100px){
  .safety-comm-recipient-grid{grid-template-columns:1fr 1fr!important}
  .safety-comm-recipient-grid button{grid-column:1 / -1}
}
@media(max-width:760px){
  .safety-comm-recipient-grid{grid-template-columns:1fr!important}
  body.public-safety-only .content{padding:12px}
}
@media print{
  body.public-safety-only .topbar,
  body.public-safety-only .sidebar,
  .qr-fallback{display:none!important}
}


/* Layout leggibile per moduli SMS/IS con compilazione estesa */
#srbSag .sms-record-grid,
#safetyInformation .sms-record-grid,
#safetyCommunications .sms-record-grid,
#safetyTraining .sms-record-grid,
#isCommunications .sms-record-grid{
  grid-template-columns:1fr!important;
  gap:18px;
}
#srbSag .sms-record-grid>.panel,
#safetyInformation .sms-record-grid>.panel,
#safetyCommunications .sms-record-grid>.panel,
#safetyTraining .sms-record-grid>.panel,
#isCommunications .sms-record-grid>.panel{
  min-width:0;
}
#srbSag .sms-record-grid>.panel:nth-child(2),
#safetyInformation .sms-record-grid>.panel:nth-child(2),
#safetyCommunications .sms-record-grid>.panel:nth-child(2),
#safetyTraining .sms-record-grid>.panel:nth-child(2),
#isCommunications .sms-record-grid>.panel:nth-child(2){
  border-left:5px solid rgba(15,76,129,.16);
}
#srbSag .sms-record-grid>.panel:nth-child(2) .form-grid,
#safetyInformation .sms-record-grid>.panel:nth-child(2) .form-grid,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) .form-grid,
#safetyTraining .sms-record-grid>.panel:nth-child(2) .form-grid,
#isCommunications .sms-record-grid>.panel:nth-child(2) .form-grid,
.readable-form-grid{
  grid-template-columns:minmax(0,1fr)!important;
  gap:14px!important;
}
#srbSag .sms-record-grid>.panel:nth-child(2) .form-grid label,
#safetyInformation .sms-record-grid>.panel:nth-child(2) .form-grid label,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) .form-grid label,
#safetyTraining .sms-record-grid>.panel:nth-child(2) .form-grid label,
#isCommunications .sms-record-grid>.panel:nth-child(2) .form-grid label,
#srbSag .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#safetyInformation .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#safetyTraining .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#isCommunications .sms-record-grid>.panel:nth-child(2) .form-grid .span2{
  grid-column:1 / -1!important;
}
#srbSag .sms-record-grid>.panel:nth-child(2) input,
#safetyInformation .sms-record-grid>.panel:nth-child(2) input,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) input,
#safetyTraining .sms-record-grid>.panel:nth-child(2) input,
#isCommunications .sms-record-grid>.panel:nth-child(2) input,
#srbSag .sms-record-grid>.panel:nth-child(2) select,
#safetyInformation .sms-record-grid>.panel:nth-child(2) select,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) select,
#safetyTraining .sms-record-grid>.panel:nth-child(2) select,
#isCommunications .sms-record-grid>.panel:nth-child(2) select{
  min-height:46px;
  font-size:1rem;
}
#srbSag .sms-record-grid>.panel:nth-child(2) textarea,
#safetyInformation .sms-record-grid>.panel:nth-child(2) textarea,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) textarea,
#safetyTraining .sms-record-grid>.panel:nth-child(2) textarea,
#isCommunications .sms-record-grid>.panel:nth-child(2) textarea{
  min-height:96px;
  font-size:1rem;
  line-height:1.45;
  resize:vertical;
}
#srbSag .participant-entry-grid,
#safetyCommunications .participant-entry-grid,
#safetyTraining .participant-entry-grid{
  grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(280px,1.25fr) minmax(280px,1.25fr) auto!important;
}
#srbSag .participant-entry-grid input,
#safetyTraining .participant-entry-grid input{
  min-height:54px;
  font-size:1rem;
}
#isCommunications .is-comm-recipient-grid{
  grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(280px,1.25fr) minmax(280px,1.25fr) auto!important;
  align-items:stretch;
}
#isCommunications .is-comm-recipient-grid label{
  display:flex!important;
  flex-direction:column;
  gap:5px;
  font-size:.86rem;
  font-weight:850;
  color:#0f172a;
}
#isCommunications .is-comm-recipient-grid input,
#isCommunications .is-comm-recipient-grid textarea{
  min-height:54px;
  font-size:1rem;
  padding:11px 12px;
}
#isCommunications .is-comm-recipient-grid textarea{
  min-height:76px;
}
#isCommunications .is-comm-recipient-grid button{
  align-self:end;
  min-height:54px;
  padding-inline:16px;
}
#isCommunications .selected-row{
  outline:2px solid rgba(15,76,129,.28);
  background:rgba(15,76,129,.04)!important;
}
@media(max-width:1200px){
  #srbSag .participant-entry-grid,
  #safetyCommunications .participant-entry-grid,
  #safetyTraining .participant-entry-grid,
  #isCommunications .is-comm-recipient-grid{
    grid-template-columns:1fr 1fr!important;
  }
  #srbSag .participant-entry-grid button,
  #safetyCommunications .participant-entry-grid button,
  #safetyTraining .participant-entry-grid button,
  #isCommunications .is-comm-recipient-grid button{
    grid-column:1 / -1;
  }
}
@media(max-width:760px){
  #srbSag .participant-entry-grid,
  #safetyCommunications .participant-entry-grid,
  #safetyTraining .participant-entry-grid,
  #isCommunications .is-comm-recipient-grid{
    grid-template-columns:1fr!important;
  }
}


/* Stampa Hazard Log raggruppato per scheda */
.print-hazard-group{
  break-inside:avoid;
  page-break-inside:avoid;
  margin:18px 0 22px;
  border:1px solid rgba(15,76,129,.20);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
.print-hazard-group-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  background:linear-gradient(180deg,#f8fbff,#fff);
  border-bottom:1px solid rgba(15,76,129,.14);
}
.print-hazard-group-head h3{margin:0 0 6px;color:#000;font-size:1.05rem}
.print-hazard-group-head p{margin:0;color:#374151}
.print-hazard-badges{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;justify-content:flex-end;min-width:220px}
.print-hazard-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  padding:10px 14px;
  border-bottom:1px solid rgba(15,76,129,.12);
}
.print-hazard-summary>div{
  padding:8px;
  border:1px solid rgba(15,76,129,.10);
  border-radius:10px;
  background:#fbfdff;
}
.print-hazard-riskline{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:10px 14px;
  border-bottom:1px solid rgba(15,76,129,.12);
}
.print-risk-cell{
  display:flex;
  flex-direction:column;
  gap:2px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(15,76,129,.16);
  border-radius:12px;
  padding:7px;
  background:#f8fafc;
  min-width:86px;
}
.print-risk-cell small{font-weight:900;text-transform:uppercase;color:#4b5563}
.print-risk-cell b{font-size:1.05rem;color:#000}
.print-risk-cell span{font-weight:900}
.print-risk-cell em{font-size:.75rem;color:#374151;font-style:normal;text-align:center}
.print-risk-cell.ok{background:#e7f7ec;color:#176034;border-color:rgba(45,125,70,.35)}
.print-risk-cell.warn{background:#fff4df;color:#805200;border-color:rgba(171,107,0,.35)}
.print-risk-cell.bad{background:#fde7e9;color:#8f0f23;border-color:rgba(181,18,42,.35)}
.grouped-hazard-table th,
.grouped-hazard-table td{vertical-align:top}
.grouped-hazard-table .print-risk-cell{min-width:96px;padding:5px}
@media(max-width:1000px){
  .print-hazard-summary{grid-template-columns:1fr 1fr}
  .print-hazard-riskline{grid-template-columns:1fr}
  .print-hazard-group-head{display:block}
  .print-hazard-badges{justify-content:flex-start;margin-top:10px}
}
@media print{
  .print-hazard-group{break-inside:avoid;page-break-inside:avoid}
  .print-hazard-summary{grid-template-columns:repeat(5,1fr)}
  .print-risk-cell.ok,.print-risk-cell.warn,.print-risk-cell.bad{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}


/* Link pubblico IS Report e modulo pubblico isolato */
body.public-is-only .topbar,
body.public-is-only .sidebar{display:none!important;}
body.public-is-only .layout{display:block!important;}
body.public-is-only .content{width:100%!important;max-width:980px;margin:0 auto;padding:22px;}
body.public-is-only .view{display:none!important;}
body.public-is-only #publicIsReport.view{display:block!important;}
body.public-is-only #publicIsReport .view-header{border-radius:18px;padding:18px 20px;background:#fff;box-shadow:var(--shadow);border:1px solid rgba(15,76,129,.14);}
body.public-is-only #publicIsReport .view-header .header-actions{display:flex!important;}
body.public-is-only #appFeedbackToast{display:flex;}

/* Layout di compilazione più equilibrato: campi brevi compatti, testi estesi larghi */
#srbSag .sms-record-grid>.panel:nth-child(2) .form-grid,
#safetyInformation .sms-record-grid>.panel:nth-child(2) .form-grid,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) .form-grid,
#safetyTraining .sms-record-grid>.panel:nth-child(2) .form-grid,
#isCommunications .sms-record-grid>.panel:nth-child(2) .form-grid{
  grid-template-columns:repeat(4,minmax(150px,1fr))!important;
  align-items:start;
}
#srbSag .sms-record-grid>.panel:nth-child(2) .form-grid label,
#safetyInformation .sms-record-grid>.panel:nth-child(2) .form-grid label,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) .form-grid label,
#safetyTraining .sms-record-grid>.panel:nth-child(2) .form-grid label,
#isCommunications .sms-record-grid>.panel:nth-child(2) .form-grid label{
  grid-column:auto!important;
}
#srbSag .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#safetyInformation .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#safetyTraining .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#isCommunications .sms-record-grid>.panel:nth-child(2) .form-grid .span2,
#srbSag .participant-manager,
#safetyInformation .participant-manager,
#safetyCommunications .participant-manager,
#safetyTraining .participant-manager,
#isCommunications .participant-manager,
#srbSag .signature-selector,
#safetyCommunications .signature-selector,
#safetyTraining .signature-selector{
  grid-column:1 / -1!important;
}
#srbSag .sms-record-grid>.panel:nth-child(2) textarea,
#safetyInformation .sms-record-grid>.panel:nth-child(2) textarea,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) textarea,
#safetyTraining .sms-record-grid>.panel:nth-child(2) textarea,
#isCommunications .sms-record-grid>.panel:nth-child(2) textarea{
  min-height:92px;
}
#srbSag .sms-record-grid>.panel:nth-child(2) input[type="date"],
#safetyInformation .sms-record-grid>.panel:nth-child(2) input[type="date"],
#safetyCommunications .sms-record-grid>.panel:nth-child(2) input[type="date"],
#safetyTraining .sms-record-grid>.panel:nth-child(2) input[type="date"],
#isCommunications .sms-record-grid>.panel:nth-child(2) input[type="date"],
#srbSag .sms-record-grid>.panel:nth-child(2) input[type="time"],
#safetyInformation .sms-record-grid>.panel:nth-child(2) input[type="time"],
#safetyCommunications .sms-record-grid>.panel:nth-child(2) input[type="time"],
#safetyTraining .sms-record-grid>.panel:nth-child(2) input[type="time"],
#isCommunications .sms-record-grid>.panel:nth-child(2) input[type="time"]{
  max-width:210px;
}
#srbSag .sms-record-grid>.panel:nth-child(2) select,
#safetyInformation .sms-record-grid>.panel:nth-child(2) select,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) select,
#safetyTraining .sms-record-grid>.panel:nth-child(2) select,
#isCommunications .sms-record-grid>.panel:nth-child(2) select{
  max-width:360px;
}
#srbSag .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
#safetyCommunications .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
#safetyTraining .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
#isCommunications .sms-record-grid>.panel:nth-child(2) .is-comm-recipient-grid{
  grid-template-columns:minmax(210px,1fr) minmax(180px,.8fr) minmax(260px,1.1fr) minmax(260px,1.1fr) auto!important;
}
@media(max-width:1100px){
  #srbSag .sms-record-grid>.panel:nth-child(2) .form-grid,
  #safetyInformation .sms-record-grid>.panel:nth-child(2) .form-grid,
  #safetyCommunications .sms-record-grid>.panel:nth-child(2) .form-grid,
  #safetyTraining .sms-record-grid>.panel:nth-child(2) .form-grid,
  #isCommunications .sms-record-grid>.panel:nth-child(2) .form-grid{grid-template-columns:1fr 1fr!important;}
  #srbSag .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
  #safetyCommunications .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
  #safetyTraining .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
  #isCommunications .sms-record-grid>.panel:nth-child(2) .is-comm-recipient-grid{grid-template-columns:1fr 1fr!important;}
}
@media(max-width:760px){
  #srbSag .sms-record-grid>.panel:nth-child(2) .form-grid,
  #safetyInformation .sms-record-grid>.panel:nth-child(2) .form-grid,
  #safetyCommunications .sms-record-grid>.panel:nth-child(2) .form-grid,
  #safetyTraining .sms-record-grid>.panel:nth-child(2) .form-grid,
  #isCommunications .sms-record-grid>.panel:nth-child(2) .form-grid,
  #srbSag .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
  #safetyCommunications .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
  #safetyTraining .sms-record-grid>.panel:nth-child(2) .participant-entry-grid,
  #isCommunications .sms-record-grid>.panel:nth-child(2) .is-comm-recipient-grid{grid-template-columns:1fr!important;}
  body.public-is-only .content{padding:12px;}
}
@media print{body.public-is-only .topbar,body.public-is-only .sidebar{display:none!important;}}


/* Redazione e revisioni Risk Assessment / Hazard Log */
.ra-revision-panel{
  border:1px solid rgba(15,76,129,.16);
  border-radius:16px;
  padding:14px;
  background:linear-gradient(180deg,#fbfdff,#fff);
}
.ra-revision-head h3,
.ra-revision-panel h3{
  margin:0 0 4px;
}
.ra-revision-head p,
.ra-revision-panel p{
  margin:0 0 12px;
  color:var(--muted);
}
.ra-revision-entry-grid{
  margin-bottom:12px;
}
.ra-revision-history-table table,
.ra-revision-print-table{
  table-layout:auto;
}
.ra-revision-summary,
.hazard-revision-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:10px;
  margin:10px 0 12px;
}
.ra-revision-summary div,
.hazard-revision-summary div{
  border:1px solid rgba(15,76,129,.14);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
}
.ra-revision-summary b,
.hazard-revision-summary b{
  display:block;
  color:#0f4c81;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.03em;
  margin-bottom:4px;
}
.ra-revision-summary span,
.hazard-revision-summary span{
  display:block;
  color:#000;
  font-weight:800;
}
.hazard-revision-box{
  margin:16px 0;
  border:1px solid rgba(15,76,129,.18);
  border-radius:18px;
  background:#fff;
  padding:14px;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
}
.hazard-revision-box h3{
  margin:0 0 8px;
}
.print-revision-details{
  margin:12px 0 16px;
  border:1px solid rgba(15,76,129,.16);
  border-radius:12px;
  padding:10px;
  background:#fbfdff;
}
.print-revision-details summary{
  cursor:pointer;
  font-weight:900;
  color:#0f4c81;
  margin-bottom:8px;
}
@media(max-width:900px){
  .ra-revision-summary,
  .hazard-revision-summary{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:620px){
  .ra-revision-summary,
  .hazard-revision-summary{
    grid-template-columns:1fr;
  }
}
@media print{
  .hazard-revision-box,
  .print-revision-details{
    break-inside:avoid;
    box-shadow:none!important;
  }
  .ra-revision-summary div,
  .hazard-revision-summary div{
    print-color-adjust:exact;
    -webkit-print-color-adjust:exact;
  }
}


/* Registro MOC */
#mocRegister .sms-record-grid,
#mocRegister .moc-register-grid{
  grid-template-columns:1fr!important;
  gap:18px;
}
#mocRegister .detail-panel .form-grid{
  grid-template-columns:repeat(4,minmax(150px,1fr))!important;
  align-items:start;
}
#mocRegister .detail-panel .form-grid .span2,
#mocRegister .participant-manager,
#mocRegister .signature-selector{
  grid-column:1 / -1!important;
}
#mocRegister textarea{
  min-height:88px;
  resize:vertical;
}
#mocRegister .moc-participant-grid{
  grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(240px,1.2fr) minmax(240px,1.2fr) auto!important;
}
#mocRegister .selected-row{
  outline:2px solid rgba(15,76,129,.28);
  background:rgba(15,76,129,.04)!important;
}
@media(max-width:1100px){
  #mocRegister .detail-panel .form-grid{grid-template-columns:1fr 1fr!important}
  #mocRegister .moc-participant-grid{grid-template-columns:1fr 1fr!important}
  #mocRegister .moc-participant-grid button{grid-column:1 / -1}
}
@media(max-width:760px){
  #mocRegister .detail-panel .form-grid,
  #mocRegister .moc-participant-grid{grid-template-columns:1fr!important}
}


body.public-is-only .nav,
body.public-is-only .module-card,
body.public-is-only .section-back-row,
body.public-is-only .landing-view,
body.public-is-only .quick-report-links{
  display:none!important;
}
body.public-is-only #publicIsReport .module-card,
body.public-is-only #publicIsReport .section-back-row{
  display:none!important;
}


/* Stampa solo Registro Safety Communication */
@media print{
  body.print-safety-communications .topbar,
  body.print-safety-communications .sidebar{
    display:none!important;
  }
  body.print-safety-communications .layout{
    display:block!important;
    min-height:auto!important;
  }
  body.print-safety-communications .content{
    max-width:none!important;
    padding:0!important;
    margin:0!important;
  }
  body.print-safety-communications .content>.view{
    display:none!important;
  }
  body.print-safety-communications #safetyCommunications{
    display:block!important;
  }
  body.print-safety-communications #safetyCommunications > :not(#safetyCommPrintContent){
    display:none!important;
  }
  body.print-safety-communications #safetyCommPrintContent{
    display:block!important;
    border:0!important;
    box-shadow:none!important;
    padding:0!important;
    margin:0!important;
  }
  body.print-safety-communications #safetyCommPrintContent .report-table{
    font-size:8pt;
  }
}


/* Gestione utenti e login obbligatorio */
.login-overlay{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(15,23,42,.58);
  backdrop-filter:blur(7px);
}
.login-overlay[hidden]{display:none!important}
.login-card{
  width:min(560px,96vw);
  border-radius:22px;
  background:#fff;
  box-shadow:0 30px 90px rgba(15,23,42,.28);
  border:1px solid rgba(15,76,129,.18);
  padding:26px;
}
.login-card img{
  max-width:260px;
  height:auto;
  display:block;
  margin:0 0 14px;
}
.login-card h2{
  margin:0 0 8px;
  color:#001b39;
  font-size:1.55rem;
}
.login-card p{
  margin:0 0 16px;
  color:#475569;
}
.login-card label{
  display:block;
  margin:12px 0;
  font-weight:900;
  color:#0f172a;
}
.login-card input{
  width:100%;
  min-height:48px;
  margin-top:6px;
  font-size:1.05rem;
}
.login-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin:16px 0 10px;
}
.login-actions button{
  min-height:48px;
}
.login-error{
  border:1px solid rgba(181,18,42,.25);
  border-left:5px solid #b5122a;
  border-radius:12px;
  background:#fde7e9;
  color:#8f0f23;
  padding:10px 12px;
  font-weight:800;
  margin:10px 0;
}
body.login-required .layout,
body.login-required .topbar{
  filter:blur(2px);
  pointer-events:none;
  user-select:none;
}
.user-management-grid{
  grid-template-columns:minmax(360px,.85fr) minmax(480px,1.15fr);
  align-items:start;
}
.permissions-box{
  border:1px solid rgba(15,76,129,.18);
  border-radius:14px;
  padding:12px;
  background:#fbfdff;
}
.permissions-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(220px,1fr));
  gap:8px 14px;
}
.permissions-grid label{
  display:flex!important;
  align-items:flex-start;
  gap:8px;
  padding:8px;
  border:1px solid rgba(15,76,129,.1);
  border-radius:10px;
  background:#fff;
  font-weight:800;
}
.permissions-grid input{
  margin-top:2px;
}
#usersTable tr{
  cursor:pointer;
}
#usersTable .selected-row{
  outline:2px solid rgba(15,76,129,.28);
  background:rgba(15,76,129,.06)!important;
}
body.is-guest .nav-group-admin .nav:not([data-view="userManagement"]):not([data-view="export"]){
  opacity:.7;
}
@media(max-width:1050px){
  .user-management-grid{grid-template-columns:1fr}
  .permissions-grid{grid-template-columns:1fr}
}
@media print{
  .login-overlay,
  #userManagement{display:none!important}
}


/* Governance estesa: audit trail, scadenziario, approvazioni, allegati, ricerca */
.governance-view .view-header{
  border-left:6px solid rgba(15,76,129,.3);
}
.governance-grid{
  grid-template-columns:minmax(360px,.9fr) minmax(480px,1.1fr);
  align-items:start;
}
.governance-dashboard{
  display:grid;
  gap:16px;
}
.profile-card{
  border:1px solid rgba(15,76,129,.14);
  border-radius:16px;
  padding:14px;
  background:linear-gradient(180deg,#fbfdff,#fff);
}
.permission-pills{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.large-search{
  width:100%;
  min-height:54px;
  font-size:1.08rem;
  padding:12px 14px;
}
.global-search-results{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.search-result-card{
  border:1px solid rgba(15,76,129,.16);
  border-radius:14px;
  padding:12px 14px;
  background:#fff;
  cursor:pointer;
  transition:.15s ease;
}
.search-result-card:hover{
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  transform:translateY(-1px);
}
.search-result-card span{
  display:inline-block;
  color:#0f4c81;
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:4px;
}
.search-result-card h3{
  margin:0 0 5px;
  color:#001b39;
}
.search-result-card p{
  margin:0;
  color:#475569;
}
.audit-pack-grid{
  margin-bottom:16px;
}
.audit-checklist{
  line-height:1.75;
}
#actionCenterTable tr[data-action-view],
#auditModeContent .module-card{
  cursor:pointer;
}
#approvalsTable table,
#attachmentsTable table,
#auditTrailTable table,
#actionCenterTable table,
#numberingTable table{
  table-layout:auto;
}
#annualReviewContent{
  background:#fff;
  border:1px solid rgba(15,76,129,.12);
  border-radius:16px;
  padding:14px;
}
#cloudChecklist table td:first-child{
  font-weight:800;
}
@media(max-width:1050px){
  .governance-grid{grid-template-columns:1fr}
}
@media print{
  #userProfile,
  #approvals,
  #attachments,
  #globalSearch,
  #auditTrail,
  #auditMode,
  #annualReview,
  #actionCenter{
    display:block;
  }
  .governance-view .header-actions,
  .governance-view .filters,
  .governance-view input,
  .governance-view select,
  .governance-view button,
  #loginOverlay{
    display:none!important;
  }
  #annualReviewContent,
  #actionCenterTable,
  #approvalsTable,
  #auditTrailTable{
    border:0;
    padding:0;
  }
}


/* Diagnostica, import intelligente, qualità dati */
#diagnosticsContent .panel,
#auditReadinessContent .panel,
#smartImport .panel{
  border:1px solid rgba(15,76,129,.14);
}
#dataQualityTable tr[data-quality-view],
#smartImportPreview tr{
  cursor:pointer;
}
#diagnosticsContent table,
#smartImportPreview table,
#dataQualityTable table,
#auditReadinessContent table{
  table-layout:auto;
}
.notice.compact,
.success,
.error{
  margin-top:12px;
}
.success{
  border-left:5px solid #0b7a3d;
  background:#e8f7ee;
  color:#064e3b;
  border-radius:12px;
  padding:12px 14px;
  font-weight:800;
}
.error{
  border-left:5px solid #b5122a;
  background:#fde7e9;
  color:#8f0f23;
  border-radius:12px;
  padding:12px 14px;
  font-weight:800;
}
#smartImport .checkline{
  align-self:end;
}
@media print{
  #systemDiagnostics .header-actions,
  #smartImport,
  #dataQuality .header-actions,
  #dataQuality .filters{
    display:none!important;
  }
  #dataQuality,
  #systemDiagnostics{
    display:block;
  }
}


/* Migliorie residue: workflow, hardening allegati, versionamento dati, approvazioni integrate */
#workflowStatesPolicy .pill,
.permission-pills .pill{
  margin:2px 4px 2px 0;
}
#workflowStatesIssues table,
#attachmentSecurityContent table,
#dataVersionHistory table{
  table-layout:auto;
}
.linked-approval-panel{
  margin:12px 0 16px;
  border:1px solid rgba(15,76,129,.18);
  border-left:6px solid rgba(15,76,129,.45);
  border-radius:16px;
  padding:12px 14px;
  background:linear-gradient(180deg,#fbfdff,#fff);
  box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.linked-approval-panel h3{
  margin:0 0 4px;
  color:#001b39;
}
.linked-approval-panel p{
  margin:0;
  color:#475569;
}
.linked-approval-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:10px 0;
}
#attachmentSecurityContent .audit-checklist,
#workflowStatesPolicy td{
  line-height:1.7;
}
#dataVersionSummary th{
  width:220px;
}
@media(max-width:760px){
  .linked-approval-actions{display:block}
  .linked-approval-actions button{margin-top:10px;width:100%}
}
@media print{
  #workflowStates .header-actions,
  #attachmentSecurity .header-actions,
  #dataVersioning .header-actions,
  .linked-approval-panel.no-print{
    display:none!important;
  }
}


/* Compliance Monitoring */
.compliance-view .view-header{
  border-left:6px solid rgba(200,16,46,.28);
}
.compliance-grid{
  grid-template-columns:minmax(420px,1fr) minmax(520px,1.2fr);
  align-items:start;
}
.compliance-view table{
  table-layout:auto;
}
.compliance-nav.active,
.compliance-nav:hover{
  border-color:rgba(200,16,46,.35);
}
.record-summary{
  border:1px solid rgba(15,76,129,.15);
  border-radius:14px;
  padding:12px;
  background:#fbfdff;
}
.record-summary h3{
  margin:0 0 8px;
  color:#001b39;
}
#compDashboardContent .panel,
#compAnnualReviewContent,
#compRcaFindingSummary{
  margin-top:12px;
}
#compChecklistTable tr,
#compAuditTable tr,
#compFindingTable tr,
#compPersonnelTable tr,
#compSupplierTable tr,
#compSubTable tr,
#compActionTable tr{
  cursor:pointer;
}
.compliance-view .selected-row{
  outline:2px solid rgba(200,16,46,.25);
  background:rgba(200,16,46,.055)!important;
}
@media(max-width:1120px){
  .compliance-grid{grid-template-columns:1fr}
}
@media print{
  .compliance-view .header-actions,
  .compliance-view .filters,
  .compliance-view input,
  .compliance-view select,
  .compliance-view button{
    display:none!important;
  }
  .compliance-view{
    display:block!important;
  }
}

/* Compliance layout revisione leggibilità/compilazione v53 */
.compliance-view .view-header{
  align-items:flex-start;
  gap:18px;
}
.compliance-view .header-actions{
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.compliance-grid{
  grid-template-columns:1fr!important;
  gap:18px!important;
  align-items:stretch!important;
}
.compliance-grid > .panel{
  width:100%;
  min-width:0;
}
.compliance-view .panel h3{
  margin-bottom:12px;
  color:#001b39;
}
.compliance-view form.form-grid,
.compliance-view .form-grid.compact-grid{
  grid-template-columns:repeat(3,minmax(220px,1fr));
  gap:14px 16px;
}
.compliance-view .form-grid label{
  min-width:0;
}
.compliance-view .form-grid label.span2,
.compliance-view .form-grid .span2{
  grid-column:1/-1!important;
}
.compliance-view textarea{
  min-height:135px;
  line-height:1.45;
  resize:vertical;
}
.compliance-view input,
.compliance-view select,
.compliance-view textarea{
  font-size:1rem;
}
.compliance-view .filters{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(220px,.35fr);
  gap:12px;
  align-items:end;
}
.compliance-view .table-wrap{
  margin-top:10px;
  overflow:auto;
  max-width:100%;
}
.compliance-view table th,
.compliance-view table td{
  vertical-align:top;
}
.compliance-layout-notice{
  margin:0 0 16px;
}
#refreshViewBtn{
  border-color:rgba(15,76,129,.28);
}
.compliance-refresh-btn{
  border-color:rgba(200,16,46,.28)!important;
  background:#fff!important;
}
@media(max-width:1180px){
  .compliance-view form.form-grid,
  .compliance-view .form-grid.compact-grid{
    grid-template-columns:repeat(2,minmax(220px,1fr));
  }
  .compliance-view .filters{grid-template-columns:1fr;}
}
@media(max-width:720px){
  .compliance-view form.form-grid,
  .compliance-view .form-grid.compact-grid{
    grid-template-columns:1fr;
  }
  .compliance-view .header-actions button,
  .compliance-view .header-actions label{
    width:100%;
  }
}


/* Refresh universale PWA */
#refreshViewBtn.pwa-refresh-btn{
  border-color:rgba(15,76,129,.28);
  font-weight:900;
}
#refreshViewBtn.pwa-refresh-btn::before{
  content:"↻ ";
  font-weight:900;
}
body[data-last-view-refresh] #refreshViewBtn.pwa-refresh-btn{
  box-shadow:0 0 0 2px rgba(15,76,129,.06) inset;
}


/* Fix checklist compliance: item multipli e link finding */
#compChecklistTable .checklist-finding-row{
  background:rgba(200,16,46,.045);
}
#compChecklistTable .checklist-finding-row:hover{
  background:rgba(200,16,46,.085);
}
#compChecklistTable [data-comp-action-cell]{
  min-width:150px;
}
.small-btn{
  padding:6px 9px!important;
  border-radius:9px!important;
  font-size:.82rem!important;
}
.open-finding-btn{
  border-color:rgba(200,16,46,.35)!important;
}
.focus-flash{
  animation:focusFlash 1.2s ease-out 1;
}
@keyframes focusFlash{
  0%{box-shadow:0 0 0 0 rgba(200,16,46,.45)}
  55%{box-shadow:0 0 0 6px rgba(200,16,46,.18)}
  100%{box-shadow:0 0 0 0 rgba(200,16,46,0)}
}
.linked-audit-hint{
  margin:8px 0 12px;
}


/* Audit Plan 2026 importato e filtri mese/certificazione */
.comp-audit-filters{
  display:grid;
  grid-template-columns:minmax(220px,1.3fr) minmax(160px,.8fr) minmax(150px,.8fr) minmax(230px,1fr);
  gap:10px;
  align-items:end;
}
.comp-audit-source-banner{
  margin:10px 0 14px;
}
#compAuditTable table th:nth-child(3),
#compAuditTable table td:nth-child(3){
  min-width:180px;
}
#compAuditTable table th:nth-child(4),
#compAuditTable table td:nth-child(4){
  min-width:110px;
}
#compAuditCertificate,
#compAuditScheduledMonth,
#compAuditChecklist{
  min-height:38px;
}
@media(max-width:1050px){
  .comp-audit-filters{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .comp-audit-filters{grid-template-columns:1fr}
}


/* Audit Plan: conteggio finding per livello */
.comp-audit-level-kpis{
  margin:10px 0 12px;
}
#compAuditTable table th:nth-child(10),
#compAuditTable table td:nth-child(10),
#compAuditTable table th:nth-child(11),
#compAuditTable table td:nth-child(11),
#compAuditTable table th:nth-child(12),
#compAuditTable table td:nth-child(12),
#compAuditTable table th:nth-child(13),
#compAuditTable table td:nth-child(13){
  text-align:center;
  min-width:64px;
}
#compAuditTable table th:nth-child(14),
#compAuditTable table td:nth-child(14){
  text-align:center;
  min-width:96px;
}


/* Dashboard click-through */
.dashboard-clickable{
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, outline-color .12s ease;
}
.dashboard-clickable:hover,
.dashboard-clickable:focus{
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(15,23,42,.12);
  outline:2px solid rgba(15,76,129,.25);
  outline-offset:2px;
}
.dashboard-clickable::after{
  content:"";
}
.kpi.dashboard-clickable span:first-child::after,
.alert.dashboard-clickable b:first-child::after{
  content:"  ↗";
  font-weight:900;
  opacity:.68;
}
#compDashboardContent tr.dashboard-clickable:hover,
#compActionTable tr.dashboard-clickable:hover,
#isReviewTable tr.dashboard-clickable:hover{
  background:rgba(15,76,129,.055)!important;
}


/* Protocollo documentale */
.protocol-view .view-header{
  border-left:6px solid rgba(15,76,129,.32);
}
.protocol-panel{
  margin-bottom:16px;
}
.protocol-form-grid{
  grid-template-columns:repeat(2,minmax(260px,1fr));
}
.inline-input-button{
  display:flex;
  gap:8px;
  align-items:center;
}
.inline-input-button input{
  flex:1;
}
.inline-input-button button{
  white-space:nowrap;
  padding:8px 10px;
}
.protocol-cert-fieldset{
  border:1px solid rgba(15,76,129,.18);
  border-radius:14px;
  padding:12px 14px;
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
}
.protocol-cert-fieldset legend{
  font-weight:900;
  color:#001b39;
  padding:0 6px;
}
.protocol-cert-fieldset label{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  font-weight:800;
}
.protocol-cert-fieldset input{
  width:auto;
  margin:0;
}
.protocol-filters{
  display:grid;
  grid-template-columns:minmax(260px,1fr) 160px 190px;
  gap:10px;
  align-items:end;
}
#protocolTable tr[data-protocol-uid]{
  cursor:pointer;
}
#protocolTable tr[data-protocol-uid]:hover{
  background:rgba(15,76,129,.055);
}
#protocolTable .selected-row{
  outline:2px solid rgba(15,76,129,.22);
  background:rgba(15,76,129,.055)!important;
}
.protocol-print-area{
  display:none;
}
.protocol-print-notes{
  margin-top:16px;
}
.protocol-print-table{
  font-size:.82rem;
}
.protocol-nav.active,
.protocol-nav:hover{
  border-color:rgba(15,76,129,.35);
}
@media(max-width:900px){
  .protocol-form-grid,
  .protocol-filters{
    grid-template-columns:1fr;
  }
}
@media print{
  body.print-protocol > *:not(.app-shell),
  body.print-protocol .topbar,
  body.print-protocol .sidebar,
  body.print-protocol .content > .view:not(#protocolRegister),
  body.print-protocol #protocolRegister > *:not(#protocolPrintArea){
    display:none!important;
  }
  body.print-protocol #protocolRegister,
  body.print-protocol #protocolPrintArea{
    display:block!important;
  }
  body.print-protocol .app-shell,
  body.print-protocol .content{
    display:block!important;
    margin:0!important;
    padding:0!important;
    width:100%!important;
  }
}


/* V61 - mitigazioni combinate e stampe modulo singolo */
.combined-mitigation-help{margin:8px 0 12px}
.ra-combined-table th,.ra-combined-table td{vertical-align:top}
.ra-combined-table input,.ra-combined-table select,.ra-combined-table textarea{min-width:92px}
.ra-combined-table textarea{min-width:260px}
.ra-combined-table tr.combined-pending{background:rgba(255,244,223,.55)}
.ra-combined-table tr.combined-applied{background:rgba(231,247,236,.62)}
.combined-editor-panel{border:1px solid rgba(15,76,129,.18);border-radius:16px;padding:14px;background:#fbfdff;margin:10px 0}
.combined-editor-panel h3{margin:0 0 6px;color:#001b39}.combined-editor-panel p{margin:0 0 10px;color:#475569}.safety-report-print-content{display:none}
@media print{
  body.print-risk-tool-only .topbar,body.print-risk-tool-only .sidebar,
  body.print-single-ra-only .topbar,body.print-single-ra-only .sidebar,
  body.print-hazard-log-only .topbar,body.print-hazard-log-only .sidebar,
  body.print-safety-report-single .topbar,body.print-safety-report-single .sidebar,
  body.print-safety-reports-register .topbar,body.print-safety-reports-register .sidebar{display:none!important}
  body.print-risk-tool-only .content,body.print-single-ra-only .content,body.print-hazard-log-only .content,body.print-safety-report-single .content,body.print-safety-reports-register .content{padding:0!important;margin:0!important;max-width:none!important}
  body.print-risk-tool-only .content>.view:not(#riskToolPrint),
  body.print-single-ra-only .content>.view:not(#singleRiskAssessmentPrint),
  body.print-hazard-log-only .content>.view:not(#printReport),
  body.print-safety-report-single .content>.view:not(#safetyReports),
  body.print-safety-reports-register .content>.view:not(#safetyReports){display:none!important}
  body.print-risk-tool-only #riskToolPrint .no-print, body.print-single-ra-only #singleRiskAssessmentPrint .no-print, body.print-hazard-log-only #printReport .no-print{display:none!important}
  body.print-risk-tool-only #riskToolPrint,body.print-single-ra-only #singleRiskAssessmentPrint,body.print-hazard-log-only #printReport,body.print-safety-report-single #safetyReports,body.print-safety-reports-register #safetyReports{display:block!important}
  body.print-safety-report-single #safetyReports > :not(#srPrintContent){display:none!important}
  body.print-safety-report-single #srPrintContent{display:block!important}
  body.print-safety-reports-register #safetyReports .view-header, body.print-safety-reports-register #srLockNotice, body.print-safety-reports-register #srKpis, body.print-safety-reports-register .filters, body.print-safety-reports-register .safety-report-detail, body.print-safety-reports-register #srPrintContent{display:none!important}
  body.print-safety-reports-register #safetyReports .table-wrap{display:block!important}
}



/* V62 - stampa isolata universale: stampa solo la vista attiva */
@media print{
  body.pas-print-active-only .topbar,
  body.pas-print-active-only .sidebar,
  body.pas-print-active-only #loginOverlay,
  body.pas-print-active-only .header-actions,
  body.pas-print-active-only .filters,
  body.pas-print-active-only .no-print{
    display:none!important;
  }

  body.pas-print-active-only .app-shell,
  body.pas-print-active-only .layout,
  body.pas-print-active-only .content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:#fff!important;
    box-shadow:none!important;
  }

  body.pas-print-active-only .content > section.view:not(.active),
  body.pas-print-active-only .content > div.view:not(.active),
  body.pas-print-active-only .content > .view.compliance-view:not(.active),
  body.pas-print-active-only .content > .view.governance-view:not(.active),
  body.pas-print-active-only .content > .view.protocol-view:not(.active){
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    overflow:hidden!important;
    opacity:0!important;
    position:absolute!important;
    left:-99999px!important;
    top:auto!important;
  }

  body.pas-print-active-only .content > section.view.active,
  body.pas-print-active-only .content > div.view.active,
  body.pas-print-active-only .content > .view.active{
    display:block!important;
    visibility:visible!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    opacity:1!important;
    position:static!important;
    left:auto!important;
    top:auto!important;
    page-break-before:auto!important;
  }

  body.pas-print-active-only .content > .view.active .panel,
  body.pas-print-active-only .content > .view.active .print-report,
  body.pas-print-active-only .content > .view.active .report-cover{
    page-break-inside:auto;
  }

  body.pas-print-active-only .content > .view.active input,
  body.pas-print-active-only .content > .view.active select,
  body.pas-print-active-only .content > .view.active textarea{
    print-color-adjust:exact;
    -webkit-print-color-adjust:exact;
  }
}


/* V63 - Hazard Log mitigazioni combinate, RA eseguiti e Supabase */
.combined-quick-actions{
  margin:8px 0 10px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.ra-combined-table tr.combined-pending td{
  border-left:4px solid #d69e2e;
}
.ra-combined-table tr.combined-applied td{
  border-left:4px solid #0b7a3d;
}
#riskAssessmentExecuted .record-summary table{
  table-layout:auto;
}
.ra-executed-filters{
  display:grid;
  grid-template-columns:minmax(260px,1fr) repeat(3,minmax(140px,.35fr));
  gap:10px;
}
#raExecutedTable tr[data-ra-executed]{
  cursor:pointer;
}
#raExecutedTable tr[data-ra-executed]:hover{
  background:rgba(15,76,129,.055);
}
#raExecutedTable .selected-row{
  outline:2px solid rgba(15,76,129,.22);
  background:rgba(15,76,129,.055)!important;
}
#raExecutedDetail h3{
  margin-top:0;
}
#raExecutedPrintArea{
  display:none;
}
.cloud-sync-box{
  margin-top:14px;
  padding:12px;
  border:1px solid rgba(15,76,129,.16);
  border-radius:14px;
  background:#fbfdff;
}
.cloud-sync-box button{
  width:100%;
  min-height:44px;
}
@media(max-width:980px){
  .ra-executed-filters{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .ra-executed-filters{grid-template-columns:1fr}
}
@media print{
  body.print-ra-executed #riskAssessmentExecuted > :not(#raExecutedPrintArea){
    display:none!important;
  }
  body.print-ra-executed #raExecutedPrintArea{
    display:block!important;
  }
}

/* V67 MOC 2026 */
#moc2026ImportNotice{margin:10px 0 14px;}
#mocTable td a{font-weight:900;text-decoration:none;}
#mocTable td a:hover{text-decoration:underline;}
#mocYearFilter{min-height:38px;}


/* V68 - Tracciabilità aggiornamenti normativi e Netlify-only */
.regulatory-view .view-header{
  border-left:6px solid rgba(15,76,129,.32);
}
.regulatory-form-grid{
  grid-template-columns:repeat(2,minmax(280px,1fr));
}
.regulatory-form-grid select[multiple]{
  min-height:116px;
}
.regulatory-filters{
  display:grid;
  grid-template-columns:minmax(280px,1fr) 160px 210px 160px;
  gap:10px;
  align-items:end;
}
#regUpdateTable tr[data-reg-update]{
  cursor:pointer;
}
#regUpdateTable tr[data-reg-update]:hover{
  background:rgba(15,76,129,.055);
}
#regUpdateTable .selected-row{
  outline:2px solid rgba(15,76,129,.22);
  background:rgba(15,76,129,.055)!important;
}
.regulatory-print-area{
  display:none;
}
@media(max-width:950px){
  .regulatory-form-grid,
  .regulatory-filters{
    grid-template-columns:1fr;
  }
}
@media print{
  body.print-regulatory-updates #regulatoryUpdates{
    display:block!important;
  }
  body.print-regulatory-updates #regulatoryUpdates > *:not(#regUpdatePrintArea){
    display:none!important;
  }
  body.print-regulatory-updates #regUpdatePrintArea{
    display:block!important;
  }
}


/* V70 - pagina iniziale operativa stile portale */
.landing-dashboard-v70{
  max-width:1280px;
  margin:0 auto;
}
.pas-start-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:18px;
  padding:0;
  margin-bottom:18px;
}
.pas-start-brand{
  display:flex;
  align-items:center;
  gap:24px;
  background:linear-gradient(135deg,#ffffff 0%,#f7f9fc 52%,#eef4fb 100%);
  border:1px solid var(--line);
  border-radius:28px;
  padding:28px;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.pas-start-brand:after{
  content:"";
  position:absolute;
  right:-80px;
  bottom:-120px;
  width:260px;
  height:260px;
  border-radius:999px;
  background:rgba(200,16,46,.08);
}
.pas-start-logo-wrap{
  flex:0 0 260px;
  min-height:125px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:14px;
  box-shadow:0 10px 30px rgba(31,54,79,.08);
  z-index:1;
}
.pas-start-logo-wrap img{
  max-width:100%;
  max-height:100px;
  object-fit:contain;
}
.pas-start-brand > div:last-child{
  position:relative;
  z-index:1;
}
.pas-start-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--primary);
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.pas-start-brand h2{
  margin:0;
  font-size:42px;
  line-height:1.05;
  color:#17253a;
}
.pas-start-brand p{
  margin:10px 0 0;
  color:#526174;
  font-size:17px;
  line-height:1.45;
  max-width:740px;
}
.pas-start-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}
.pas-start-pills span{
  border:1px solid #d7e0eb;
  background:#fff;
  color:#334b66;
  border-radius:999px;
  padding:7px 11px;
  font-weight:800;
  font-size:12px;
}
.pas-start-side{
  display:grid;
  gap:10px;
  background:#17253a;
  border-radius:28px;
  padding:18px;
  box-shadow:var(--shadow);
}
.pas-start-side button{
  border:1px solid rgba(255,255,255,.18);
  background:#fff;
  color:#17253a;
  border-radius:16px;
  padding:15px 16px;
  font-weight:900;
  text-align:left;
  cursor:pointer;
}
.pas-start-side button.ghost{
  background:rgba(255,255,255,.08);
  color:#fff;
}
.pas-start-kpis{
  display:grid;
  grid-template-columns:repeat(7,minmax(135px,1fr));
  gap:12px;
  margin:0 0 18px;
}
.pas-start-kpi{
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  border-radius:20px;
  padding:15px;
  text-align:left;
  box-shadow:0 8px 22px rgba(31,54,79,.07);
  cursor:pointer;
  min-height:112px;
}
.pas-start-kpi span{
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#647489;
  font-weight:900;
}
.pas-start-kpi strong{
  display:block;
  font-size:25px;
  line-height:1.1;
  margin:8px 0 4px;
  color:#17253a;
}
.pas-start-kpi small{
  color:#607084;
  font-weight:700;
  line-height:1.25;
}
.pas-start-kpi.ok{border-color:#b7dfc3;background:#f4fbf6}
.pas-start-kpi.warn{border-color:#f0d18d;background:#fffaf0}
.pas-start-kpi.bad{border-color:#efaaa5;background:#fff5f4}
.pas-start-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(210px,1fr));
  gap:14px;
}
.pas-start-card{
  position:relative;
  min-height:188px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:24px;
  padding:22px;
  background:#fff;
  color:#17253a;
  text-align:left;
  box-shadow:var(--shadow);
  cursor:pointer;
}
.pas-start-card:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:7px;
  background:#7b8794;
}
.pas-start-card:hover,
.pas-start-kpi:hover,
.pas-focus-item:hover,
.pas-quick-actions button:hover,
.pas-start-side button:hover{
  transform:translateY(-1px);
  filter:none;
  border-color:#86b4db;
}
.pas-start-card span{
  display:block;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:#65758a;
  margin-bottom:8px;
}
.pas-start-card strong{
  display:block;
  font-size:25px;
  line-height:1.15;
  margin-bottom:8px;
}
.pas-start-card small{
  color:#5a697c;
  font-size:14px;
  line-height:1.42;
}
.pas-start-card.accent-red:before{background:#c8102e}
.pas-start-card.accent-blue:before{background:#2f80c9}
.pas-start-card.accent-gold:before{background:#d99b28}
.pas-start-card.accent-purple:before{background:#7856d6}
.pas-start-card.accent-green:before{background:#299b61}
.pas-start-card.accent-slate:before{background:#55677a}
.pas-start-card.accent-teal:before{background:#128b8b}
.pas-start-card.accent-dark:before{background:#17253a}
.pas-start-lower{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:16px;
  margin-top:18px;
}
.pas-start-panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:18px;
  box-shadow:var(--shadow);
}
.panel-headline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.panel-headline h3{
  margin:0;
  color:#17253a;
}
.panel-headline p{
  margin:4px 0 0;
  color:#66768a;
}
.pas-start-focus{
  display:grid;
  gap:10px;
}
.pas-focus-item{
  width:100%;
  text-align:left;
  border:1px solid #dce4ee;
  background:#f9fbfd;
  color:#17253a;
  border-radius:16px;
  padding:13px 14px;
  cursor:pointer;
}
.pas-focus-item span{
  display:block;
  color:#66768a;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:4px;
}
.pas-focus-item strong{
  display:block;
  font-size:14px;
  line-height:1.35;
}
.pas-focus-item.ok{border-color:#b7dfc3;background:#f4fbf6}
.pas-focus-item.warn{border-color:#f0d18d;background:#fffaf0}
.pas-focus-item.bad{border-color:#efaaa5;background:#fff5f4}
.pas-quick-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.pas-quick-actions button{
  text-align:left;
  border:1px solid #dce4ee;
  background:#f8fbff;
  color:#17253a;
  border-radius:15px;
  padding:13px;
  font-weight:900;
  cursor:pointer;
}
@media (max-width:1180px){
  .pas-start-hero{grid-template-columns:1fr}
  .pas-start-side{grid-template-columns:repeat(4,1fr)}
  .pas-start-kpis{grid-template-columns:repeat(4,1fr)}
  .pas-start-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .pas-start-brand{flex-direction:column;align-items:flex-start}
  .pas-start-logo-wrap{flex-basis:auto;width:100%}
  .pas-start-brand h2{font-size:32px}
  .pas-start-side{grid-template-columns:1fr}
  .pas-start-kpis{grid-template-columns:1fr 1fr}
  .pas-start-grid{grid-template-columns:1fr}
  .pas-start-lower{grid-template-columns:1fr}
  .pas-quick-actions{grid-template-columns:1fr}
}
@media print{
  .landing-dashboard-v70{display:none!important}
}



/* V73 - Information Security Risk Assessment: mitigazioni successive/combinate e PDF singolo */
.is-mitigation-panel{
  margin-top:18px;
  border-left:6px solid #7856d6;
}
.is-mitigation-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:10px;
  margin:12px 0 14px;
}
.is-mitigation-summary > div{
  background:#f8fbff;
  border:1px solid #dce4ee;
  border-radius:16px;
  padding:12px;
  color:#17253a;
}
.is-mitigation-summary b{
  display:block;
  color:#55677a;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.is-mitigation-table-wrap{
  max-height:520px;
}
.is-mitigation-table th,
.is-mitigation-table td{
  vertical-align:top;
}
.is-mitigation-table input,
.is-mitigation-table select,
.is-mitigation-table textarea{
  width:100%;
  min-width:105px;
  font-size:12px;
}
.is-mitigation-table textarea{
  min-width:220px;
}
.is-mitigation-table .inline-mini{
  display:grid;
  grid-template-columns:1fr 70px;
  gap:6px;
  margin-top:6px;
}
.is-mitigation-table .actions-cell{
  min-width:96px;
}
.is-mitigation-table .actions-cell button{
  width:100%;
  margin:2px 0;
  padding:7px 8px;
}
.is-risk-single-print .report-table th{
  width:17%;
}
.is-risk-single-print .report-note{
  white-space:pre-wrap;
}
.is-mitigation-print-table td{
  white-space:pre-wrap;
}
@media (max-width:1100px){
  .is-mitigation-summary{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .is-mitigation-summary{grid-template-columns:1fr}
}
@media print{
  body.pas-print-active-only.print-is-risk-single .view:not(#isRiskSinglePrint){display:none!important}
  body.pas-print-active-only.print-is-risk-single #isRiskSinglePrint{display:block!important}
  #isRiskSinglePrint .no-print{display:none!important}
  .is-risk-single-print .report-table{font-size:10.5px}
}



/* V74 - backup avanzati e persistenza aggiornamenti */
.backup-panel-v74 .backup-actions-v74{
  display:grid;
  grid-template-columns:repeat(2,minmax(160px,1fr));
  gap:10px;
  margin:12px 0;
}
.backup-panel-v74 .backup-actions-v74 button{
  min-height:42px;
  font-weight:900;
}
.backup-status-v74{
  border:1px solid var(--line);
  background:#f8fbff;
  border-radius:14px;
  padding:10px 12px;
  margin-top:10px;
  font-weight:800;
}
.backup-status-v74.success{
  border-color:#b7dfc3;
  background:#f4fbf6;
  color:#1f6f3a;
}
.backup-status-v74.bad{
  border-color:#efaaa5;
  background:#fff5f4;
  color:#8b1d1d;
}
.persistence-panel-v74{
  border-left:6px solid #299b61;
}
.compact-list{
  margin:10px 0 0;
  padding-left:18px;
  color:#526174;
}
.compact-list li{
  margin:5px 0;
}
@media (max-width:760px){
  .backup-panel-v74 .backup-actions-v74{
    grid-template-columns:1fr;
  }
}



/* V75 - IS Risk: livello iniziale, mitigazioni in sequenza e PDF completo */
.is-sequence-panel-v75{
  margin-top:18px;
  border-left:6px solid #4b66d9;
}
.is-flow-summary-v75{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:14px;
  align-items:stretch;
  margin:14px 0;
}
.is-level-card-v75{
  border:1px solid var(--line);
  background:#f8fbff;
  border-radius:18px;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.is-level-card-v75.initial{
  background:#fffaf3;
  border-color:#f0d7a7;
}
.is-level-card-v75.final{
  background:#f5fbf7;
  border-color:#bfe3c9;
}
.is-level-card-v75 b{
  color:#526174;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
}
.big-risk-score{
  font-size:32px;
  font-weight:950;
  color:#10213a;
  line-height:1.05;
}
.is-flow-arrow-v75{
  min-width:150px;
  border-radius:16px;
  background:linear-gradient(135deg,#eaf0ff,#f6f8fb);
  border:1px solid #d6dff3;
  color:#334568;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:10px;
  font-weight:900;
}
.is-sequence-table-v75 th,
.is-sequence-table-v75 td{
  vertical-align:top;
}
.is-sequence-table-v75 input,
.is-sequence-table-v75 select,
.is-sequence-table-v75 textarea{
  width:100%;
  min-width:105px;
  font-size:12px;
}
.is-sequence-table-v75 textarea{
  min-width:240px;
}
.is-sequence-table-v75 .inline-mini{
  display:grid;
  grid-template-columns:1fr 68px;
  gap:6px;
  margin-top:6px;
}
.step-badge-v75{
  width:34px;
  height:34px;
  border-radius:50%;
  background:#23395d;
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  margin-bottom:6px;
}
.primary-mitigation-v75{
  background:#fbfdff;
}
.risk-flow-mini-v75{
  display:flex;
  gap:8px;
  align-items:center;
  font-size:14px;
  margin-bottom:4px;
}
.risk-flow-mini-v75 b{
  background:#eef4ff;
  color:#183154;
  border-radius:10px;
  padding:4px 8px;
}
.is-print-flow-v75{
  display:grid;
  grid-template-columns:1fr 160px 1fr;
  gap:12px;
  margin:14px 0;
  page-break-inside:avoid;
}
.is-print-flow-v75 > div{
  border:1px solid #d7e0ef;
  background:#f9fbff;
  border-radius:14px;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.is-print-flow-v75 .flow-mid{
  align-items:center;
  justify-content:center;
  text-align:center;
  font-weight:900;
  background:#eef4ff;
}
.is-print-flow-v75 .score{
  font-size:28px;
  font-weight:950;
}
.is-risk-analysis-block-v75{
  margin:18px 0 22px;
  page-break-inside:avoid;
}
.compact-report-table-v75 th{
  width:18%;
}
.is-print-sequence-v75 td{
  vertical-align:top;
  white-space:pre-wrap;
}
.is-full-sequence-summary-v75{
  margin-top:20px;
}
@media (max-width:900px){
  .is-flow-summary-v75,
  .is-print-flow-v75{
    grid-template-columns:1fr;
  }
  .is-flow-arrow-v75{
    min-width:0;
  }
}
@media print{
  body.pas-print-active-only.print-is-risk-full-analysis .view:not(#isRiskFullAnalysisPrint){display:none!important}
  body.pas-print-active-only.print-is-risk-full-analysis #isRiskFullAnalysisPrint{display:block!important}
  #isRiskFullAnalysisPrint .no-print{display:none!important}
  .page-break-before{page-break-before:always}
  .is-risk-analysis-block-v75{page-break-inside:avoid}
  .is-print-flow-v75{grid-template-columns:1fr 120px 1fr}
  .is-print-sequence-v75, .compact-report-table-v75{font-size:10px}
}



/* V76 - menu per sezioni, ACL, To-Do e calendario */
.sidebar-v76{
  padding:14px 12px;
}
.menu-user-card-v76{
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.04));
  border-radius:18px;
  padding:12px;
  color:#fff;
  margin-bottom:12px;
}
.menu-user-title{
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.75;
}
.menu-user-name{
  font-size:15px;
  font-weight:950;
  margin-top:4px;
}
.menu-user-perm{
  font-size:12px;
  opacity:.8;
  margin-top:2px;
}
.nav-accordion-v76{
  margin:8px 0;
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,.05);
}
.nav-accordion-v76 summary{
  cursor:pointer;
  color:#fff;
  font-weight:950;
  padding:11px 12px;
  list-style:none;
}
.nav-accordion-v76 summary::-webkit-details-marker{display:none}
.nav-accordion-v76 summary::after{
  content:'▾';
  float:right;
  opacity:.8;
}
.nav-accordion-v76:not([open]) summary::after{content:'▸'}
.nav-accordion-v76 .nav{
  width:calc(100% - 16px);
  margin:4px 8px;
  text-align:left;
  font-size:13px;
  border-radius:12px;
}
.nav-subtitle-v76{
  color:rgba(255,255,255,.68);
  font-size:10px;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:900;
  padding:10px 12px 3px;
}
.nav[data-access-mode-v76="view"]::after{
  content:'solo lettura';
  float:right;
  font-size:9px;
  opacity:.72;
  text-transform:uppercase;
  padding-top:2px;
}
.acl-viewonly-v76 .view.active::before{
  content:'Modalità sola visualizzazione: puoi consultare questa sezione ma non modificare i dati.';
  display:block;
  border:1px solid #f0d398;
  background:#fff9ec;
  color:#6e4a12;
  border-radius:14px;
  padding:10px 12px;
  margin:0 0 12px;
  font-weight:850;
}
.todo-layout-v76{
  display:grid;
  grid-template-columns:minmax(420px,1.05fr) minmax(420px,1.1fr);
  gap:16px;
  align-items:start;
}
.todo-list-panel-v76,
.todo-detail-panel-v76{
  min-height:520px;
}
.compact-filters-v76{
  grid-template-columns:1.4fr .8fr .8fr;
}
.due-pill-v76{
  display:inline-block;
  border-radius:12px;
  padding:6px 9px;
  font-weight:950;
  line-height:1.15;
  min-width:96px;
  text-align:center;
}
.due-pill-v76 small{
  display:block;
  font-weight:800;
  opacity:.82;
}
.due-pill-v76.bad,
.deadline-item-v76.bad,
.cal-event-v76.bad{
  background:#fff1f0;
  color:#9b1c1c;
  border:1px solid #f3aaa5;
}
.due-pill-v76.warn,
.deadline-item-v76.warn,
.cal-event-v76.warn{
  background:#fff8e7;
  color:#8a5a00;
  border:1px solid #f0d28a;
}
.due-pill-v76.ok,
.deadline-item-v76.ok,
.cal-event-v76.ok{
  background:#effaf3;
  color:#1c6938;
  border:1px solid #b7dfc3;
}
.due-pill-v76.muted,
.deadline-item-v76.muted,
.cal-event-v76.muted{
  background:#f5f7fb;
  color:#526174;
  border:1px solid #dce4ee;
}
.todo-action-box-v76{
  border:1px solid #dfe7f2;
  background:#f8fbff;
  border-radius:18px;
  padding:12px;
  margin:14px 0;
}
.timeline-v76{
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:360px;
  overflow:auto;
  padding-right:4px;
}
.timeline-item-v76{
  display:grid;
  grid-template-columns:18px 1fr;
  gap:10px;
  border:1px solid #e3e9f3;
  background:#fff;
  border-radius:14px;
  padding:10px;
}
.timeline-dot-v76{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#c8102e;
  margin-top:5px;
}
.timeline-item-v76 p{
  margin:5px 0;
}
.calendar-title-v76{
  font-size:22px;
  font-weight:950;
  text-transform:capitalize;
  margin:4px 0 12px;
}
.calendar-grid-v76{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
  margin:14px 0;
}
.calendar-head-v76{
  font-weight:950;
  text-align:center;
  color:#526174;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
}
.calendar-cell-v76{
  min-height:132px;
  border:1px solid #dfe7f2;
  background:#fff;
  border-radius:16px;
  padding:9px;
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:6px;
  cursor:pointer;
}
.calendar-cell-v76.empty{
  background:transparent;
  border:0;
  pointer-events:none;
}
.calendar-cell-v76.today{
  box-shadow:0 0 0 2px rgba(200,16,46,.24) inset;
}
.calendar-cell-v76.selected{
  border-color:#c8102e;
  background:#fff8f9;
}
.calendar-event-list-v76{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-height:0;
}
.cal-event-v76{
  display:block;
  border-radius:10px;
  padding:4px 6px;
  font-size:11px;
  font-weight:850;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.cal-more-v76{
  color:#526174;
  font-size:11px;
  font-weight:900;
}
.calendar-day-detail-v76 table td{
  vertical-align:top;
}
.user-deadlines-panel-v76{
  border-left:6px solid #c8102e;
}
.deadline-list-v76{
  display:grid;
  gap:8px;
}
.deadline-item-v76{
  display:grid;
  grid-template-columns:100px 1fr 90px;
  gap:10px;
  align-items:center;
  text-align:left;
  border-radius:14px;
  padding:9px 10px;
  cursor:pointer;
}
.deadline-item-v76 b{
  font-size:13px;
}
.deadline-item-v76 span{
  font-weight:850;
}
.deadline-item-v76 small{
  text-align:right;
}
.user-access-matrix-v76{
  margin-top:14px;
  border-top:1px solid #dfe7f2;
  padding-top:12px;
}
.access-section-v76{
  border:1px solid #dfe7f2;
  border-radius:14px;
  margin:8px 0;
  background:#fff;
  overflow:hidden;
}
.access-section-v76 summary{
  cursor:pointer;
  font-weight:950;
  padding:10px 12px;
  background:#f8fbff;
}
.access-grid-v76{
  display:grid;
  grid-template-columns:repeat(2,minmax(240px,1fr));
  gap:8px;
  padding:10px;
}
.access-grid-v76 label{
  display:grid;
  grid-template-columns:1fr 150px;
  gap:8px;
  align-items:center;
  border:1px solid #eef2f7;
  border-radius:12px;
  padding:8px;
}
.access-grid-v76 span{
  font-weight:850;
  font-size:12px;
}
@media (max-width:1180px){
  .todo-layout-v76{grid-template-columns:1fr}
  .access-grid-v76{grid-template-columns:1fr}
}
@media (max-width:760px){
  .compact-filters-v76{grid-template-columns:1fr}
  .calendar-grid-v76{gap:5px}
  .calendar-cell-v76{min-height:98px;padding:6px;border-radius:12px}
  .cal-event-v76{font-size:10px}
  .deadline-item-v76{grid-template-columns:1fr}
  .deadline-item-v76 small{text-align:left}
}
@media print{
  .todo-view-v76 .view-header,
  .calendar-view-v76 .view-header{display:none!important}
}



/* V77 - To-Do popup, calendario leggibile/eventi, menu-sezioni come pulsanti */
.nav-accordion-v76 summary{
  padding:8px;
}
.nav-section-button-v77{
  display:block;
  width:100%;
  border-radius:14px;
  padding:10px 11px;
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.07));
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-weight:950;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}
.nav-section-hint-v77{
  display:block;
  font-size:10px;
  color:rgba(255,255,255,.62);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:5px 0 0 10px;
}
.todo-layout-listonly-v77{
  grid-template-columns:1fr!important;
}
.todo-v77-list-mode .todo-detail-panel-v76{
  display:none!important;
}
.todo-table-v77 tbody tr{
  cursor:pointer;
}
.todo-table-v77 tbody tr.editable:hover{
  background:#f5fbf7;
}
.todo-table-v77 tbody tr.readonly:hover{
  background:#fff9ec;
}
.modal-overlay-v77{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(10,22,38,.58);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.modal-overlay-v77[hidden]{
  display:none!important;
}
.modal-card-v77{
  width:min(1120px,96vw);
  max-height:92vh;
  overflow:auto;
  background:#fff;
  color:#17253a;
  border-radius:24px;
  border:1px solid #dfe7f2;
  box-shadow:0 24px 80px rgba(10,22,38,.28);
  padding:18px;
}
.modal-header-v77{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid #e6edf6;
  padding-bottom:12px;
  margin-bottom:14px;
}
.modal-header-v77 h2{
  margin:0;
  font-size:22px;
}
.modal-header-v77 p{
  margin:4px 0 0;
  color:#526174;
}
.modal-footer-v77{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  border-top:1px solid #e6edf6;
  padding-top:14px;
  margin-top:16px;
}
.todo-modal-card-v77 .todo-modal-body-v77{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:16px;
  align-items:start;
}
.todo-modal-card-v77 .form-grid{
  grid-column:1 / 2;
}
.todo-modal-card-v77 .todo-action-box-v77,
.todo-modal-card-v77 h3,
.todo-modal-card-v77 .timeline-modal-v77{
  grid-column:2 / 3;
}
.todo-action-box-v77{
  border:1px solid #dfe7f2;
  background:#f8fbff;
  border-radius:18px;
  padding:12px;
}
.timeline-modal-v77{
  max-height:430px;
  overflow:auto;
}
.calendar-v77-fixed .calendar-grid-v76{
  align-items:stretch;
}
.calendar-cell-v77{
  color:#17253a!important;
  position:relative;
  overflow:hidden;
}
.calendar-cell-v77 .day-number-v77{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#eef4ff;
  color:#152b4f;
  font-weight:950;
  margin-bottom:2px;
}
.calendar-cell-v77.today .day-number-v77{
  background:#c8102e;
  color:#fff;
}
.day-add-v77{
  position:absolute;
  right:7px;
  top:8px;
  font-size:10px;
  font-weight:950;
  color:#526174;
  opacity:.72;
}
.calendar-cell-v77:hover .day-add-v77{
  opacity:1;
  color:#c8102e;
}
.day-detail-head-v77{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.day-detail-head-v77 h3{
  margin:0;
  text-transform:capitalize;
}
.calendar-modal-card-v77{
  width:min(760px,94vw);
}
.dashboard-user-deadlines-v77{
  margin:14px 0;
}
@media (max-width:960px){
  .todo-modal-card-v77 .todo-modal-body-v77{
    grid-template-columns:1fr;
  }
  .todo-modal-card-v77 .form-grid,
  .todo-modal-card-v77 .todo-action-box-v77,
  .todo-modal-card-v77 h3,
  .todo-modal-card-v77 .timeline-modal-v77{
    grid-column:auto;
  }
}
@media (max-width:760px){
  .modal-overlay-v77{
    padding:10px;
    align-items:flex-start;
  }
  .modal-card-v77{
    border-radius:18px;
    max-height:96vh;
    padding:13px;
  }
  .modal-footer-v77{
    flex-direction:column;
  }
  .modal-footer-v77 button{
    width:100%;
  }
  .day-detail-head-v77{
    flex-direction:column;
    align-items:stretch;
  }
}



/* V78 - menu laterale realmente leggibile e popup To-Do verticale */
.sidebar-v78{
  padding:14px 12px;
  background:linear-gradient(180deg,#12223a,#172b49 55%,#102036);
}
.menu-user-card-v78{
  border:1px solid rgba(255,255,255,.22);
  background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.06));
  border-radius:18px;
  padding:13px;
  color:#fff;
  margin-bottom:12px;
}
.sidebar-v78 .nav-home-v78{
  min-height:56px;
  background:#ffffff!important;
  color:#11213a!important;
  border:0!important;
  border-radius:16px!important;
  padding:10px 12px!important;
  box-shadow:0 8px 20px rgba(5,12,23,.20);
}
.sidebar-v78 .nav-home-v78 .nav-main-v78{
  display:block;
  font-size:15px;
  font-weight:950;
}
.sidebar-v78 .nav-home-v78 small{
  display:block;
  margin-top:2px;
  color:#526174;
  font-weight:750;
}
.nav-section-card-v78{
  margin:10px 0!important;
  border:0!important;
  border-radius:18px!important;
  background:transparent!important;
  overflow:visible!important;
}
.nav-section-card-v78 > summary{
  list-style:none;
  cursor:pointer;
  min-height:74px;
  padding:0!important;
  border-radius:18px;
  color:#fff;
  background:linear-gradient(135deg,#c8102e,#8f1426);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 10px 24px rgba(5,12,23,.22);
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:center;
}
.nav-section-card-v78 > summary::-webkit-details-marker{
  display:none;
}
.nav-section-card-v78 > summary::after{
  content:'';
}
.nav-section-card-v78 > summary .section-title-v78{
  display:block;
  font-size:15px;
  line-height:1.15;
  font-weight:1000;
  padding:13px 12px 0;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.nav-section-card-v78 > summary small{
  grid-column:1 / 2;
  display:block;
  font-size:11px;
  font-weight:760;
  color:rgba(255,255,255,.88);
  padding:0 12px 13px;
  line-height:1.25;
}
.section-toggle-v78{
  grid-row:1 / span 2;
  grid-column:2 / 3;
  align-self:stretch;
  min-width:74px;
  border-left:1px solid rgba(255,255,255,.22);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:950;
  color:rgba(255,255,255,.92);
  padding:0 8px;
}
.nav-section-card-v78[open] > summary .section-toggle-v78::after{
  content:'  ▲';
}
.nav-section-card-v78:not([open]) > summary .section-toggle-v78::after{
  content:'  ▼';
}
.sidebar-v78 .nav-subtitle-v76{
  margin-top:9px;
  color:#dbe6f4;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:950;
  padding:8px 10px 2px;
}
.sidebar-v78 .nav-section-card-v78 .nav{
  display:block;
  width:calc(100% - 16px);
  margin:5px 8px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.13);
  color:#f8fbff;
  border-radius:13px;
  padding:9px 10px;
  text-align:left;
  font-size:13px;
  font-weight:850;
}
.sidebar-v78 .nav-section-card-v78 .nav:hover{
  background:rgba(255,255,255,.18);
}
.sidebar-v78 .nav-section-card-v78 .nav.active{
  background:#ffffff;
  color:#10213a;
}
.sidebar-v78 .nav[data-access-mode-v76="view"]::after{
  content:'lettura';
  float:right;
  font-size:9px;
  opacity:.86;
  text-transform:uppercase;
  padding-top:2px;
}
.todo-modal-card-v77{
  width:min(860px,96vw)!important;
}
.todo-modal-card-v77 .todo-modal-body-v77{
  display:block!important;
}
.todo-modal-card-v77 .todo-modal-form-v78,
.todo-modal-card-v77 .form-grid.todo-modal-form-v78{
  display:flex!important;
  flex-direction:column!important;
  gap:14px!important;
}
.todo-modal-section-v78{
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  border:1px solid #dfe7f2;
  background:#fbfdff;
  border-radius:18px;
  padding:14px;
  margin:12px 0;
}
.todo-modal-section-v78 h3{
  margin:0!important;
  font-size:16px;
  color:#17253a;
}
.todo-modal-section-v78 p{
  margin:0 0 4px!important;
  color:#526174;
}
.todo-modal-section-v78 label{
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
  width:100%!important;
  grid-column:auto!important;
}
.todo-modal-section-v78 input,
.todo-modal-section-v78 select,
.todo-modal-section-v78 textarea{
  width:100%!important;
  min-height:42px;
  font-size:15px;
}
.todo-modal-section-v78 textarea{
  min-height:92px;
}
.todo-modal-summary-v78{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:12px 0;
}
.todo-modal-summary-v78 div{
  border:1px solid #dfe7f2;
  background:#f8fbff;
  border-radius:14px;
  padding:10px;
}
.todo-modal-summary-v78 b{
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#526174;
  margin-bottom:3px;
}
.todo-modal-summary-v78 span{
  display:block;
  font-size:14px;
  font-weight:950;
  color:#17253a;
}
.todo-modal-card-v77 .modal-footer-v77{
  position:sticky;
  bottom:0;
  background:#fff;
  z-index:4;
  box-shadow:0 -8px 20px rgba(10,22,38,.06);
}
@media (max-width:760px){
  .nav-section-card-v78 > summary{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .section-toggle-v78{
    grid-row:auto;
    grid-column:auto;
    min-width:0;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.2);
    padding:8px;
  }
  .todo-modal-summary-v78{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:520px){
  .todo-modal-summary-v78{
    grid-template-columns:1fr;
  }
}



/* V79 - gestione utenti elenco + popup autorizzazioni */
.user-management-v79 .user-management-grid{
  display:none!important;
}
.user-list-panel-v79{
  border-left:6px solid #2f68d8;
}
.user-kpi-row-v79{
  display:grid;
  grid-template-columns:repeat(4,minmax(120px,1fr));
  gap:10px;
  margin:12px 0;
}
.user-kpi-row-v79 div{
  border:1px solid #dfe7f2;
  background:#f8fbff;
  border-radius:16px;
  padding:12px;
}
.user-kpi-row-v79 b{
  display:block;
  font-size:26px;
  line-height:1;
  color:#17253a;
}
.user-kpi-row-v79 span{
  display:block;
  margin-top:4px;
  color:#526174;
  font-size:12px;
  font-weight:850;
}
.user-cards-v79{
  display:grid;
  gap:10px;
}
.user-card-v79{
  display:grid;
  grid-template-columns:46px 1fr auto minmax(180px,auto);
  gap:12px;
  align-items:center;
  width:100%;
  border:1px solid #dfe7f2;
  background:#fff;
  color:#17253a;
  border-radius:18px;
  padding:12px;
  text-align:left;
  cursor:pointer;
}
.user-card-v79:hover{
  background:#f8fbff;
  border-color:#b8c9ea;
  transform:translateY(-1px);
}
.user-card-v79.suspended{
  opacity:.72;
}
.avatar-v79{
  width:46px;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#eaf0ff;
  color:#1e3d7a;
  font-size:20px;
  font-weight:950;
}
.user-card-main-v79 b{
  display:block;
  font-size:15px;
}
.user-card-main-v79 small{
  color:#526174;
  font-weight:800;
}
.user-access-mini-v79{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.user-access-mini-v79 em{
  font-style:normal;
  font-size:11px;
  font-weight:900;
  border-radius:999px;
  padding:4px 7px;
  background:#f2f5fa;
  color:#526174;
}
.user-modal-card-v79{
  width:min(1180px,96vw)!important;
}
.user-modal-layout-v79{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.user-modal-block-v79{
  border:1px solid #dfe7f2;
  background:#fbfdff;
  border-radius:18px;
  padding:14px;
}
.user-modal-block-v79 h3{
  margin:0 0 10px;
}
.permission-legend-v79{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:10px 0 14px;
}
.permission-legend-v79 span{
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:900;
  border:1px solid #dfe7f2;
}
.permission-legend-v79 .none{
  background:#f5f7fb;
  color:#526174;
}
.permission-legend-v79 .view{
  background:#fff8e7;
  color:#8a5a00;
}
.permission-legend-v79 .edit{
  background:#effaf3;
  color:#1c6938;
}
.user-access-editor-v79{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.user-access-section-v79{
  border:1px solid #dfe7f2;
  border-radius:18px;
  background:#fff;
  overflow:hidden;
}
.user-access-section-v79 summary{
  cursor:pointer;
  list-style:none;
  display:grid;
  grid-template-columns:1fr minmax(250px,340px);
  gap:12px;
  align-items:center;
  padding:12px 14px;
  background:#f8fbff;
}
.user-access-section-v79 summary::-webkit-details-marker{
  display:none;
}
.user-access-section-v79 summary b{
  display:block;
  color:#17253a;
  font-size:15px;
}
.user-access-section-v79 summary small{
  display:block;
  color:#526174;
  margin-top:2px;
  font-weight:750;
}
.user-access-section-v79 summary label{
  display:grid;
  grid-template-columns:1fr 150px;
  gap:8px;
  align-items:center;
  font-size:12px;
  font-weight:900;
  color:#526174;
}
.user-access-subgrid-v79{
  display:grid;
  grid-template-columns:repeat(2,minmax(280px,1fr));
  gap:8px;
  padding:12px;
}
.access-row-v79{
  display:grid;
  grid-template-columns:1fr 150px;
  gap:8px;
  align-items:center;
  border:1px solid #edf2f8;
  border-radius:14px;
  padding:9px;
}
.access-row-v79 span{
  font-size:13px;
  font-weight:850;
  color:#17253a;
}
.access-row-v79 select,
.user-access-section-v79 summary select{
  min-height:36px;
}
@media (max-width:960px){
  .user-card-v79{
    grid-template-columns:42px 1fr;
  }
  .user-card-v79 .pill,
  .user-access-mini-v79{
    grid-column:2 / 3;
    justify-content:flex-start;
  }
  .user-kpi-row-v79{
    grid-template-columns:1fr 1fr;
  }
  .user-access-section-v79 summary,
  .user-access-subgrid-v79{
    grid-template-columns:1fr;
  }
  .user-access-section-v79 summary label,
  .access-row-v79{
    grid-template-columns:1fr;
  }
}
@media (max-width:560px){
  .user-kpi-row-v79{
    grid-template-columns:1fr;
  }
}



/* V80 - Ricerca rapida funzioni PWA in dashboard */
.function-search-card-v80{
  border:1px solid #dfe7f2;
  background:linear-gradient(135deg,#ffffff,#f7fbff);
  border-left:6px solid #2f68d8;
  border-radius:22px;
  padding:16px;
  margin:14px 0 18px;
  box-shadow:0 10px 28px rgba(12,25,45,.08);
}
.landing-dashboard-v70 > .function-search-card-v80{
  margin:16px 0 20px;
}
.function-search-card-v80 h3{
  margin:0 0 4px;
  font-size:19px;
}
.function-search-card-v80 p{
  margin:0 0 12px;
  color:#526174;
}
.function-search-box-v80{
  display:grid;
  grid-template-columns:1fr 120px;
  gap:10px;
}
.function-search-input-v80{
  min-height:48px;
  border-radius:16px;
  font-size:17px;
  font-weight:850;
  padding:0 14px;
}
.function-search-box-v80 button{
  min-height:48px;
  border-radius:16px;
  font-weight:950;
}
.function-search-results-v80{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:8px;
  margin-top:12px;
}
.function-result-v80{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  text-align:left;
  border:1px solid #dfe7f2;
  background:#fff;
  color:#17253a;
  border-radius:16px;
  padding:10px 12px;
  cursor:pointer;
}
.function-result-v80:hover{
  background:#f8fbff;
  border-color:#b7c9e9;
  transform:translateY(-1px);
}
.function-result-v80 b{
  display:block;
  font-size:14px;
}
.function-result-v80 small{
  display:block;
  color:#526174;
  font-weight:800;
  margin-top:2px;
}
.function-result-v80 em{
  font-style:normal;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#2f68d8;
  font-weight:950;
}
.function-search-highlight-v80{
  animation:functionSearchPulseV80 1.6s ease-in-out;
}
@keyframes functionSearchPulseV80{
  0%,100%{box-shadow:none}
  20%,70%{box-shadow:0 0 0 4px rgba(47,104,216,.45)}
}
@media (max-width:760px){
  .function-search-box-v80{
    grid-template-columns:1fr;
  }
  .function-search-results-v80{
    grid-template-columns:1fr;
  }
}



/* V81 - fix esplicito salvataggio Non abilitato */
.acl-none-fix-notice-v81{
  border-color:#b7dfc3!important;
  background:#f4fbf6!important;
  color:#1f6f3a!important;
  margin:10px 0 12px;
}



/* V82 - menu e autorizzazioni utenti raggruppati di default */
.user-access-grouped-notice-v82{
  border-color:#b7c9e9!important;
  background:#f7fbff!important;
  color:#24456f!important;
  margin:8px 0 12px;
}
#userAccessCollapseBtnV82,
#userAccessExpandBtnV82{
  font-weight:950;
}
.sidebar-v78 details.nav-section-card-v78:not([open]) > summary{
  margin-bottom:8px;
}



/* V83 - ACL utenti esplicito e ruolo libero */
.role-custom-notice-v83{
  border-color:#b7c9e9!important;
  background:#f7fbff!important;
  color:#24456f!important;
  margin:0 0 12px;
}



/* V84 - apertura popup To-Do da elenco */
.todo-row-openable-v84{
  cursor:pointer;
}
.todo-row-openable-v84:hover{
  outline:2px solid rgba(47,104,216,.22);
  outline-offset:-2px;
}
.todo-open-button-v84{
  margin-left:8px!important;
  padding:5px 8px!important;
  font-size:11px!important;
  border-radius:10px!important;
  white-space:nowrap;
}



/* V85 - hard fix apertura popup To-Do */
#todoModalV77:not([hidden]){
  display:flex!important;
}
.todo-row-openable-v84,
#todoTableV76 [data-todo-open-v77],
#todoTableV76 [data-todo-uid-v76]{
  cursor:pointer;
}



/* V86 - eventi calendario multi-giorno */
.calendar-multiday-notice-v86{
  border-color:#b7c9e9!important;
  background:#f7fbff!important;
  color:#24456f!important;
  margin:10px 0 12px;
}
.cal-event-v76.multi-day-v86{
  border-style:dashed!important;
  position:relative;
}
.cal-event-v76.multi-day-v86::before{
  content:'↔';
  font-weight:1000;
  margin-right:4px;
}
#calendarEventEndDateV86{
  border-color:#b7c9e9;
}



/* V87 - To-Do salvataggio robusto e protezione dati */
.todo-v87-stable .todo-table-v87 tbody tr{
  cursor:pointer;
}
.todo-v87-stable .todo-table-v87 tbody tr:hover{
  outline:2px solid rgba(47,104,216,.25);
  outline-offset:-2px;
  background:#f8fbff;
}
.todo-open-button-v87{
  white-space:nowrap;
  padding:6px 9px!important;
  border-radius:11px!important;
  font-size:12px!important;
}
#todoModalV77:not([hidden]){
  display:flex!important;
}


/* V88 - SRB/SAG PDF isolato, a capo preservati e salva scheda */
.preserve-lines-v88{white-space:pre-wrap;line-height:1.42;display:block}
.srb-sag-report-table-v88 td{white-space:pre-wrap;line-height:1.42}
.section-save-btn-v88{font-weight:950;border-color:#b7c9e9!important;background:#f7fbff!important;color:#24456f!important}
@media print{
  body.pas-print-active-only.print-srb-sag-only-v88 #srbSag .view-header,
  body.pas-print-active-only.print-srb-sag-only-v88 #srbSag .panel-grid,
  body.pas-print-active-only.print-srb-sag-only-v88 #srbSag #srbSagLockNotice{display:none!important}
  body.pas-print-active-only.print-srb-sag-only-v88 #srbSag{display:block!important;visibility:visible!important;position:static!important;padding:0!important;margin:0!important;background:#fff!important}
  body.pas-print-active-only.print-srb-sag-only-v88 #srbSagPrintContent{display:block!important;visibility:visible!important;margin:0!important;padding:0!important;background:#fff!important}
  body.pas-print-active-only.print-srb-sag-only-v88 #srbSagPrintContent .report-table td{white-space:pre-wrap!important;line-height:1.35!important}
}


/* V89 - scheda editabile RA eseguiti e nuovo To-Do robusto */
.ra-edit-card-v89{width:min(1180px,96vw)!important;}
.ra-edit-body-v89{display:flex;flex-direction:column;gap:12px;}
.ra-edit-section-v89{border:1px solid #dfe7f2;background:#fff;border-radius:18px;overflow:hidden;}
.ra-edit-section-v89>summary{cursor:pointer;font-weight:950;padding:12px 14px;background:#f8fbff;color:#17253a;}
.ra-edit-section-v89 .form-grid{padding:14px;}
.ra-edit-section-v89 p.muted{padding:0 14px;color:#526174;font-size:13px;}
#raEditFullJsonV89{width:calc(100% - 28px);margin:0 14px 14px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;}
#raEditMitigationsJsonV89{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;}
.ra-executed-openable-v89{cursor:pointer;}
.ra-executed-openable-v89:hover{outline:2px solid rgba(47,104,216,.25);outline-offset:-2px;background:#f8fbff;}
.ra-open-button-v89{margin-top:4px!important;padding:5px 8px!important;font-size:11px!important;border-radius:10px!important;white-space:nowrap;}



/* V90 - Esegui RA / Registro RA eseguiti unificato */
.ra-tool-registry-notice-v90{border-left:5px solid #2f68d8;background:#f7fbff;color:#17365d;margin:10px 0 14px;}
.ra-executed-openable-v90{cursor:pointer;}
.ra-executed-openable-v90:hover{outline:2px solid rgba(47,104,216,.22);outline-offset:-2px;background:#f8fbff;}
.ra-open-full-v90{margin-top:5px!important;padding:5px 8px!important;font-size:11px!important;border-radius:10px!important;}
.ra-detail-actions-v90{margin:0 0 10px;gap:8px;flex-wrap:wrap;}



/* V91 - migrazione RA 08/2026 visibile */
.ra08-migration-notice-v91{
  border-color:#b7dfc3!important;
  background:#f4fbf6!important;
  color:#1f6f3a!important;
  margin:10px 0 12px;
  display:flex;
  align-items:center;
  gap:12px;
  justify-content:space-between;
  flex-wrap:wrap;
}



/* V96 - To-Do ricostruito da capo */
.todo-rebuild-v96 .todo-detail-panel-v76{display:none!important;}
.todo-rebuild-v96 .todo-layout-v76{grid-template-columns:1fr!important;}
.todo-rebuild-notice-v96,.todo-modal-notice-v96{border-color:#b7dfc3!important;background:#f4fbf6!important;color:#1f6f3a!important;margin:10px 0 12px;}
.todo-table-v96 .todo-row-v96{cursor:pointer;}
.todo-table-v96 .todo-row-v96:hover{background:#f7fbff;outline:2px solid rgba(47,104,216,.18);outline-offset:-2px;}
.todo-table-v96 button{white-space:nowrap;}
.todo-modal-card-v96{max-width:1040px;width:min(1040px,96vw);max-height:94vh;overflow:auto;}
.todo-modal-body-v96{display:flex;flex-direction:column;gap:16px;}
.todo-action-box-v96{border:1px solid var(--border);border-radius:16px;padding:14px;background:#f8fafc;}
#todoModalV96:not([hidden]){display:flex!important;}
#todoNewBtnV76[hidden],#todoSaveBtnV76[hidden],#todoCloseBtnV76[hidden],#todoDeleteBtnV76[hidden]{display:none!important;}


/* V97 - To-Do riscritto da zero */
.todo-view-v97 .todo-panel-v97{
  margin-top:12px;
}
.todo-table-v97 tr[data-todo-row-v97]{
  cursor:pointer;
}
.todo-table-v97 tr[data-todo-row-v97]:hover{
  background:#f7fbff;
  outline:2px solid rgba(47,104,216,.16);
  outline-offset:-2px;
}
.todo-modal-overlay-v97{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.42);
  z-index:10000;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.todo-modal-overlay-v97:not([hidden]){
  display:flex!important;
}
.todo-modal-card-v97{
  max-width:980px;
  width:min(980px, calc(100vw - 32px));
  max-height:92vh;
  overflow:auto;
}
.todo-modal-body-v97{
  padding:14px 18px;
}
.todo-action-box-v97{
  margin:14px 0;
  padding:12px;
  border:1px solid var(--border, #d8dee9);
  border-radius:14px;
  background:#f8fafc;
}
.todo-notice-v97{
  border-color:#b7dfc3!important;
  background:#f4fbf6!important;
  color:#1f6f3a!important;
  margin:10px 0 12px;
}
.todo-toast-v97{
  position:fixed;
  right:18px;
  bottom:18px;
  padding:10px 14px;
  border-radius:12px;
  background:#10233f;
  color:#fff;
  opacity:0;
  transform:translateY(8px);
  transition:.2s ease;
  z-index:20000;
  box-shadow:0 12px 32px rgba(15,23,42,.25);
}
.todo-toast-v97.show{
  opacity:1;
  transform:translateY(0);
}



/* V98 - To-Do semplice senza popup */
.todo-simple-view-v98 .todo-simple-grid-v98{
  display:grid;
  grid-template-columns:minmax(260px, 0.9fr) minmax(360px, 1.35fr);
  gap:16px;
  align-items:start;
}
.todo-simple-list-v98,
.todo-simple-form-v98{
  min-height:300px;
}
.todo-card-list-v98{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.todo-card-v98{
  text-align:left;
  border:1px solid var(--border, #d8dee9);
  background:#fff;
  border-radius:14px;
  padding:10px 12px;
  cursor:pointer;
  width:100%;
  color:inherit;
}
.todo-card-v98:hover,
.todo-card-v98.selected{
  outline:2px solid rgba(47,104,216,.25);
  border-color:rgba(47,104,216,.38);
  background:#f7fbff;
}
.todo-card-title-v98{
  display:block;
  font-weight:800;
  margin-bottom:4px;
}
.todo-card-meta-v98,
.todo-card-bottom-v98{
  display:block;
  font-size:.86rem;
  color:var(--muted, #65758b);
  line-height:1.35;
}
.todo-form-fields-v98 input,
.todo-form-fields-v98 select,
.todo-form-fields-v98 textarea{
  width:100%;
}
.todo-simple-actions-v98{
  margin-top:14px;
  padding:12px;
  border:1px dashed var(--border, #d8dee9);
  border-radius:14px;
  background:#fbfcff;
}
.todo-simple-actions-v98 textarea{
  width:100%;
  margin-bottom:8px;
}
.todo-simple-notice-v98{
  margin-top:12px;
}
.todo-toast-v98{
  position:fixed;
  right:18px;
  bottom:18px;
  background:#1f2937;
  color:white;
  padding:10px 14px;
  border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
  opacity:0;
  transform:translateY(8px);
  transition:.2s ease;
  z-index:99999;
}
.todo-toast-v98.show{
  opacity:1;
  transform:translateY(0);
}
@media (max-width: 980px){
  .todo-simple-view-v98 .todo-simple-grid-v98{
    grid-template-columns:1fr;
  }
}


/* V99 - To-Do semplice definitivo */
.todo-v99-view .todo-head-v99{align-items:flex-start;gap:16px}.todo-grid-v99{display:grid;grid-template-columns:minmax(280px,0.85fr) minmax(360px,1.15fr);gap:16px;align-items:start}.todo-list-v99,.todo-form-panel-v99{min-height:420px}.todo-card-v99{width:100%;display:block;text-align:left;border:1px solid var(--border,#d6dce8);background:#fff;border-radius:14px;padding:12px 13px;margin:0 0 9px;cursor:pointer;box-shadow:0 2px 10px rgba(15,23,42,.04)}.todo-card-v99:hover{outline:2px solid rgba(47,104,216,.2);outline-offset:0}.todo-card-v99.selected{border-color:#2f68d8;background:#f5f8ff}.todo-title-v99{display:block;font-weight:800;color:#152238;margin-bottom:4px}.todo-meta-v99{display:block;font-size:.84rem;color:#596273;margin-bottom:5px}.todo-bottom-v99{display:block;font-size:.82rem;color:#374151}.todo-form-v99 textarea{min-height:76px}.todo-form-v99 select[multiple]{height:auto;min-height:96px}.todo-history-add-v99{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin:12px 0}.todo-msg-v99{position:fixed;right:18px;bottom:18px;background:#0f5132;color:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(10px);transition:.22s;z-index:99999}.todo-msg-v99.show{opacity:1;transform:translateY(0)}@media(max-width:900px){.todo-grid-v99{grid-template-columns:1fr}.todo-history-add-v99{grid-template-columns:1fr}}


/* V100 - To-Do semplice autonomo */
.todo-v100-view .todo-root100{display:flex;flex-direction:column;gap:14px;}
.todo-head100{align-items:flex-start;gap:14px;}
.todo-grid100{display:grid;grid-template-columns:minmax(280px,0.9fr) minmax(360px,1.35fr);gap:14px;align-items:start;}
.todo-list100{display:flex;flex-direction:column;gap:8px;max-height:68vh;overflow:auto;padding-right:4px;}
.todo-card100{width:100%;border:1px solid #dfe6f3;background:#fff;border-radius:14px;padding:10px;text-align:left;display:flex;flex-direction:column;gap:5px;cursor:pointer;color:#1d2740;}
.todo-card100:hover{background:#f7fbff;border-color:#9db7f0;}
.todo-card100.selected{background:#eef5ff;border-color:#2f68d8;box-shadow:0 0 0 2px rgba(47,104,216,.15);}
.todo-title100{font-weight:800;font-size:0.98rem;}
.todo-meta100{font-size:0.82rem;color:#5b677d;}
.todo-form100 textarea{resize:vertical;}
.todo-form100 select[multiple]{min-height:96px;}
.todo-history-add100{border:1px dashed #cad7ea;border-radius:14px;padding:12px;margin:12px 0;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;}
.todo-message100{position:fixed;right:18px;bottom:18px;background:#18325f;color:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 12px 28px rgba(0,0,0,.2);opacity:0;transform:translateY(8px);transition:.18s;z-index:9999;font-weight:700;}
.todo-message100.show{opacity:1;transform:translateY(0);}
@media(max-width:900px){.todo-grid100{grid-template-columns:1fr}.todo-history-add100{grid-template-columns:1fr}}



/* V101 - salvataggio sicuro e recupero cancellati */
.deleted-recovery-v101 .notice.compact{margin:10px 0 14px;}
.deleted-recovery-v101 .recovery-row-v101{cursor:pointer;}
.deleted-recovery-v101 .recovery-row-v101:hover{background:#f7fbff;outline:2px solid rgba(47,104,216,.18);outline-offset:-2px;}
.deleted-recovery-v101 .recovery-row-v101.selected{background:#eef5ff;}
.deleted-recovery-v101 .recovery-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;background:#f1f5f9;color:#334155;font-size:.8rem;font-weight:700;}
.deleted-recovery-v101 .recovery-badge.active{background:#fff7ed;color:#9a3412;}
.deleted-recovery-v101 .recovery-badge.restored{background:#ecfdf5;color:#166534;}
.deleted-recovery-v101 pre{white-space:pre-wrap;word-break:break-word;max-height:55vh;overflow:auto;}
.safe-save-v101-status{border-color:#b7dfc3!important;background:#f4fbf6!important;color:#1f6f3a!important;}


/* V102 - Live sync multi-device */
.pas-live-sync-v102{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:99999;
  max-width:360px;
  padding:9px 12px;
  border-radius:999px;
  box-shadow:0 8px 24px rgba(15,23,42,.18);
  font-size:12px;
  font-weight:700;
  border:1px solid rgba(15,23,42,.12);
  cursor:pointer;
  user-select:none;
}
.pas-live-sync-v102.ok{ background:#ecfdf5; color:#065f46; border-color:#a7f3d0; }
.pas-live-sync-v102.warn{ background:#fff7ed; color:#9a3412; border-color:#fed7aa; }
.pas-live-sync-v102.bad{ background:#fef2f2; color:#991b1b; border-color:#fecaca; }
@media print{ .pas-live-sync-v102{ display:none!important; } }

/* V104 - Compliance Management System strutturato */
.comp-v104-tools,.comp-v104-accept-panel,.comp-v104-matrix{border:1px solid #d8e2ef;background:#fff;border-radius:18px;box-shadow:0 8px 28px rgba(15,23,42,.06);}
.comp-v104-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:14px;}
.comp-v104-toolbar label,.comp-sign-box label{min-width:155px;flex:1 1 155px;}
.comp-v104-toolbar select,.comp-v104-toolbar input,.comp-sign-box select,.comp-sign-box input{width:100%;}
.comp-v104-accept-panel .view-header.mini{align-items:flex-start;gap:16px;}
.comp-v104-accept-panel .view-header.mini h3{margin-bottom:4px;}
.comp-sign-box{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-top:14px;padding:14px;border-radius:14px;background:#f7fafc;border:1px solid #e2e8f0;}
.comp-sign-box .muted{flex:1 1 100%;}
.compact-kpis{grid-template-columns:repeat(4,minmax(120px,1fr));margin:12px 0;}
#compPlanOverviewV104 tr[data-v104-audit],#compMatrixTableV104 tr[data-rule]{cursor:pointer;}
#compPlanOverviewV104 tr[data-v104-audit]:hover,#compMatrixTableV104 tr[data-rule]:hover{background:#f4f8ff;}
.comp-v104-history{max-height:52vh;overflow:auto;}
.comp-v104-hash{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;word-break:break-all;font-size:.78rem;}
.comp-v104-coverage-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:12px 0;}
.comp-v104-coverage-summary>div{padding:12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;}
.comp-v104-coverage-summary b{display:block;font-size:1.25rem;}
@media(max-width:820px){.compact-kpis{grid-template-columns:repeat(2,minmax(120px,1fr));}.comp-v104-toolbar>*{flex:1 1 100%;}}
@media print{.comp-v104-toolbar,.comp-sign-box button,.comp-v104-accept-panel .header-actions{display:none!important}.comp-v104-tools,.comp-v104-accept-panel,.comp-v104-matrix{box-shadow:none;border:0;padding:0}.comp-v104-history{max-height:none;overflow:visible}}

.contents-v104{display:contents;}
#compChecklistFindingNoV104{background:#f8fafc;}

/* V105 - Compliance UX semplificata */
.v105-hide{display:none!important}
.comp-v105-plan{margin-top:14px}
.comp-v105-planbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:14px}
.comp-v105-planbar label{min-width:130px}.comp-v105-planbar .grow{flex:1 1 280px}.comp-v105-planbar input,.comp-v105-planbar select{width:100%}
.comp-v105-plan-table{min-width:1380px}.comp-v105-plan-table tbody tr{cursor:pointer}.comp-v105-plan-table tbody tr:hover{background:#f4f8ff}
.comp-v105-plan-table td{vertical-align:top;line-height:1.35}
#complianceAuditDetailV105 .view-header>div:first-child{min-width:0}
#complianceAuditDetailV105 #compBackPlanV105{margin-bottom:8px}
#compAuditMetaV105 textarea,#compItemEditorV105 textarea{min-height:82px}
.comp-v105-check-table{min-width:1280px}.comp-v105-check-table td{vertical-align:top;white-space:normal}.comp-v105-check-table th:nth-child(3){min-width:360px}.comp-v105-check-table th:nth-child(4){min-width:220px}.comp-v105-check-table select{min-width:145px}
.comp-v105-item-editor{margin-top:16px;padding-top:16px;border-top:1px solid #dbe4ee}
.comp-v105-item-editor h4{margin:0 0 12px;color:#17365d}
#compAuditFindingsV105 tbody tr,#compRcaTableV105 tbody tr{cursor:pointer}#compAuditFindingsV105 tbody tr:hover,#compRcaTableV105 tbody tr:hover{background:#f4f8ff}
#compRcaRegisterV105{margin-bottom:14px}#compRcaTableV105 table{min-width:1050px}
#compAcceptV105 .comp-sign-box{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:14px;padding:12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0}#compAcceptV105 .comp-sign-box label{min-width:180px;flex:1 1 180px}
.link-btn{border:0;background:transparent;color:#1557a0;text-decoration:underline;padding:2px 4px;cursor:pointer}
@media(max-width:900px){.comp-v105-planbar>*{flex:1 1 100%}.comp-v105-plan-table,.comp-v105-check-table{font-size:.82rem}}
@media print{.comp-v105-planbar,#complianceAuditDetailV105 .header-actions,#compBackPlanV105,.comp-v105-item-editor{display:none!important}}

/* V106 - Audit detail responsive/readable */
.comp-v106-audit-view{max-width:100%;min-width:0}
.comp-v106-audit-header{align-items:center;border-left:6px solid rgba(200,16,46,.28);padding-left:14px}
.comp-v106-audit-header h2{overflow-wrap:anywhere}
.comp-v106-panel{margin-top:16px;min-width:0;overflow:visible}
.comp-v106-section-head{align-items:flex-start;margin-bottom:12px!important}
.comp-v106-section-head h3{margin:0 0 4px!important}.comp-v106-section-head p{margin:0;color:var(--muted)}
.comp-v106-quick{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px;margin:0 0 16px}
.comp-v106-quick>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow-soft)}
.comp-v106-quick span,.comp-v106-label{display:block;color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}
.comp-v106-quick b{display:block;color:#17365d;font-size:.98rem;overflow-wrap:anywhere}
.comp-v106-meta-sections{display:grid;gap:12px}.comp-v106-meta-sections.compact{gap:10px}
.comp-v106-meta-card{border:1px solid #dbe4ee;background:#fbfdff;border-radius:14px;padding:14px;min-width:0}
.comp-v106-meta-card h4{margin:0 0 10px;color:#17365d;font-size:1rem}
.comp-v106-fields{display:grid;gap:12px;min-width:0}.comp-v106-fields-4{grid-template-columns:repeat(4,minmax(0,1fr))}.comp-v106-fields-3{grid-template-columns:repeat(3,minmax(0,1fr))}.comp-v106-fields-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.comp-v106-fields label{min-width:0}.comp-v106-fields .wide{grid-column:span 2}.comp-v106-fields .full{grid-column:1/-1}
.comp-v106-fields input,.comp-v106-fields select,.comp-v106-fields textarea{min-width:0;width:100%}
.comp-v106-check-panel{overflow:hidden}
.comp-v106-item-editor{margin:0 0 14px!important;padding:14px!important;border:1px solid #cddbeb!important;border-radius:14px;background:#f8fbff;scroll-margin-top:16px}
.comp-v106-editor-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.comp-v106-editor-head h4{margin:0 0 3px}.comp-v106-editor-head p{margin:0;color:var(--muted)}
.comp-v106-editor-actions{justify-content:flex-end;margin-top:12px}
.comp-v106-checklist-list{display:grid;gap:10px;min-width:0}
.comp-v106-check-card{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(160px,190px) 110px;gap:12px;align-items:start;border:1px solid #dbe4ee;border-radius:14px;padding:12px;background:#fff;min-width:0;box-shadow:0 2px 10px rgba(15,23,42,.03)}
.comp-v106-check-card.selected{border-color:#4f83bd;box-shadow:0 0 0 2px rgba(79,131,189,.12)}
.comp-v106-check-seq{width:40px;height:40px;border-radius:12px;background:#eef5fb;color:#17365d;display:flex;align-items:center;justify-content:center;font-weight:900}
.comp-v106-check-main{min-width:0}.comp-v106-check-main p{margin:8px 0 0;line-height:1.45;overflow-wrap:anywhere;white-space:normal}
.comp-v106-check-top{display:grid;grid-template-columns:minmax(140px,.75fr) minmax(180px,1fr);gap:12px}.comp-v106-check-top>div{min-width:0}.comp-v106-check-top b{display:block;overflow-wrap:anywhere}
.comp-v106-check-result{min-width:0}.comp-v106-check-result select{width:100%;min-width:0;margin-bottom:6px}.comp-v106-check-result .link-btn{display:block;text-align:left}
.comp-v106-check-action{display:flex;justify-content:flex-end}.comp-v106-check-action button{width:100%;white-space:normal}
.comp-v106-finding-list{display:grid;gap:9px}.comp-v106-finding-card{display:grid;grid-template-columns:120px minmax(220px,1fr) minmax(140px,.45fr) 110px auto;gap:12px;align-items:center;border:1px solid #dbe4ee;border-radius:12px;padding:11px 12px;background:#fff;cursor:pointer;min-width:0}.comp-v106-finding-card:hover{background:#f5f9ff}.comp-v106-finding-card>div{min-width:0}.comp-v106-finding-card b,.comp-v106-finding-card small{display:block;overflow-wrap:anywhere}.comp-v106-finding-card small{margin-top:3px;color:var(--muted)}
#compAcceptV105 .table-wrap{max-width:100%}#compAcceptV105 table{min-width:720px}
@media(max-width:1250px){.comp-v106-quick{grid-template-columns:repeat(3,minmax(140px,1fr))}.comp-v106-fields-4{grid-template-columns:repeat(2,minmax(0,1fr))}.comp-v106-fields-3{grid-template-columns:repeat(2,minmax(0,1fr))}.comp-v106-check-card{grid-template-columns:46px minmax(0,1fr) 170px}.comp-v106-check-action{grid-column:2/4;justify-content:flex-start}.comp-v106-check-action button{width:auto}.comp-v106-finding-card{grid-template-columns:110px minmax(200px,1fr) minmax(130px,.5fr) 100px}.comp-v106-finding-card>div:last-child{grid-column:4}}
@media(max-width:760px){.comp-v106-audit-header{align-items:flex-start}.comp-v106-audit-header,.comp-v106-editor-head{flex-direction:column}.comp-v106-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.comp-v106-fields-4,.comp-v106-fields-3,.comp-v106-fields-2{grid-template-columns:1fr}.comp-v106-fields .wide,.comp-v106-fields .full{grid-column:1}.comp-v106-check-card{grid-template-columns:42px minmax(0,1fr);gap:9px}.comp-v106-check-result,.comp-v106-check-action{grid-column:2}.comp-v106-check-top{grid-template-columns:1fr}.comp-v106-check-action button{width:100%}.comp-v106-finding-card{grid-template-columns:1fr}.comp-v106-finding-card>div:last-child{grid-column:auto}.comp-v106-panel{padding:13px}.comp-v106-item-editor{padding:12px!important}}
@media(max-width:440px){.comp-v106-quick{grid-template-columns:1fr}}
@media print{.comp-v106-quick{grid-template-columns:repeat(3,1fr)}.comp-v106-check-card{break-inside:avoid;box-shadow:none}.comp-v106-item-editor{display:none!important}}

/* PAS V128 - accettazioni personali in evidenza su dashboard */
.pending-acceptances-v128{margin-top:14px;border:1px solid #d7e0eb;background:#fbfdff}.pending-acceptances-v128 .panel-headline{display:flex;align-items:center;justify-content:space-between;gap:14px}.pending-acceptances-v128 .panel-headline h3{margin:0 0 4px}.pending-acceptances-v128 .panel-headline p{margin:0;color:var(--muted)}.pending-count-v128{display:inline-flex;min-width:38px;height:38px;align-items:center;justify-content:center;border-radius:999px;font-weight:900;font-size:1rem;border:1px solid #d4dde8;background:#eef4fb;color:#17365d}.pending-count-v128.warn{background:#fff3c9;border-color:#e6c96d;color:#725000}.pending-count-v128.ok{background:#e8f5ed;border-color:#b4d7c0;color:#176737}.pending-list-v128{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.pending-list-v128 button{display:grid;grid-template-columns:minmax(110px,.4fr) minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid #dbe3ee;border-radius:11px;background:#fff;padding:10px 12px;color:inherit}.pending-list-v128 button:hover{background:#f5f9ff;border-color:#b9cde3}.pending-list-v128 button b{color:#17365d}.pending-list-v128 button span{overflow-wrap:anywhere}.pending-list-v128 button small{color:#725000;font-weight:800;text-align:right}
@media(max-width:850px){.pending-list-v128{grid-template-columns:1fr}.pending-list-v128 button{grid-template-columns:1fr}.pending-list-v128 button small{text-align:left}}

/* PAS v135 - Safety Report modal + ordinamento registro */
.sr-modal-card-v135{
  width:min(1380px,97vw);
  max-height:94vh;
}
.sr-modal-detail-v135{
  margin:0;
  box-shadow:none;
  border:1px solid #e2e8f0;
}
.sr-modal-footer-v135{
  position:sticky;
  bottom:0;
  background:#fff;
  z-index:2;
}
#srTable tbody tr[data-sr-uid]{ cursor:pointer; }
#srTable tbody tr[data-sr-uid]:hover{ background:#f7fafc; }
#srSortOrder{ min-width:190px; }
@media (max-width:760px){
  .sr-modal-card-v135{ width:100%; max-height:96vh; }
  #srSortOrder{ min-width:0; width:100%; }
}
