:root{font-family:Arial,sans-serif;color:#17212b;background:#f3f6f8}*{box-sizing:border-box}body{margin:0}header{background:#fff;padding:18px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #176b87}.brand{font-size:30px;font-weight:800;color:#176b87}.subtitle{font-size:13px}.device{font-size:14px}nav{background:#193b55;padding:12px 28px;display:flex;gap:20px}nav a{color:white;text-decoration:none;font-weight:bold}main{max-width:1400px;margin:auto;padding:24px}h1,h2{color:#193b55}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.card{background:white;border-radius:12px;padding:20px;text-decoration:none;color:inherit;box-shadow:0 2px 8px #0001}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:20px}section,form{background:#fff;border-radius:10px;padding:18px;margin-bottom:20px}label{display:block;font-weight:bold;margin:10px 0}input,select,textarea{width:100%;padding:10px;border:1px solid #aebbc4;border-radius:6px;margin-top:5px;font-size:16px}textarea{min-height:100px}.check{font-weight:normal}.check input{width:auto;margin-right:8px}.inline{display:flex;gap:10px;align-items:end}.inline select{min-width:300px}.row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}button{background:#176b87;color:#fff;border:0;border-radius:7px;padding:11px 16px;font-weight:bold;cursor:pointer;margin:4px}.secondary{background:#566b79}table{width:100%;border-collapse:collapse;background:white;margin-bottom:24px}th{background:#24597f;color:white}th,td{border:1px solid #bdc8cf;padding:9px;text-align:left;vertical-align:top}.flash{padding:12px;border-radius:7px;margin-bottom:14px}.flash.success{background:#dff4e5}.flash.error{background:#ffdede}.actions{margin-top:20px}@media(max-width:800px){header{padding:12px;display:block}.device{margin-top:8px}nav{padding:10px;overflow:auto}main{padding:12px}.grid2{grid-template-columns:1fr}.row{grid-template-columns:1fr}table{display:block;overflow-x:auto}button{padding:12px}}
button.danger,.danger{background:#a61b1b;color:white}.inline{display:inline-block;margin-left:.35rem}

/* v0.3.6 - amministrazione razionalizzata */
.lead,.hint,.muted{color:#5b6973}.admin-current-device{display:flex;justify-content:space-between;align-items:center;gap:24px}.admin-current-device h2{margin-top:0}.admin-device-form{background:transparent;margin:0;padding:0}.admin-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.admin-card{position:relative;background:#fff;border-radius:12px;padding:22px;text-decoration:none;color:inherit;box-shadow:0 2px 9px #0001;border:1px solid #dce5ea;min-height:150px}.admin-card:hover{border-color:#176b87;box-shadow:0 5px 15px #0002}.admin-card h2{margin-top:20px;margin-bottom:6px}.admin-card p{margin:0;color:#5b6973}.admin-count{position:absolute;right:18px;top:16px;background:#e7f2f6;color:#176b87;border-radius:999px;padding:6px 11px;font-weight:800}.warning-card{border-left:5px solid #b97913}.warning-card .admin-count{background:#fff0d5;color:#8d5a08}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.button-link{display:inline-block;padding:11px 16px;border-radius:7px;text-decoration:none;color:#fff;background:#176b87;font-weight:bold}.button-link.secondary{background:#566b79}.admin-split{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:22px;align-items:start}.wide-section{overflow-x:auto}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:bold;font-size:13px}.status-nuova{background:#dceeff;color:#155f8c}.status-aperta{background:#ffe1e1;color:#992424}.status-chiusa{background:#e1f2e6;color:#216a36}.check-actions{padding:0;margin:0;background:transparent}.cancel-finding{padding:8px 0 0;margin:6px 0 0;background:transparent;border-top:1px solid #e1e6e9}.cancel-finding input{font-size:13px;padding:7px}.danger-outline{background:#fff;color:#a61b1b;border:1px solid #a61b1b}.danger-outline:hover{background:#fff1f1}@media(max-width:900px){.admin-current-device,.page-head{display:block}.admin-split{grid-template-columns:1fr}.admin-device-form{margin-top:12px}.button-link{margin-top:10px}}
.info-box{background:#eef7fb;border-left:4px solid #147d98;padding:14px 16px;margin:14px 0;border-radius:6px}.dual-pane{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center}.dual-pane select{width:100%;min-height:310px;padding:8px}.dual-buttons{display:flex;flex-direction:column;gap:10px}.station-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:20px}.station-card{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:start;border:1px solid #d5dee5;border-radius:8px;padding:14px;background:white}.station-card input{grid-row:1/4}.station-card span,.station-card small{display:block}.check-grid{display:flex;flex-wrap:wrap;gap:18px}.check-grid .fixed{background:#eef7fb;padding:8px 12px;border-radius:6px}@media(max-width:800px){.dual-pane{grid-template-columns:1fr}.dual-buttons{flex-direction:row}.dual-pane select{min-height:220px}}
/* v0.4.0 - flusso nuovo controllo */
.control-type-choice{border:2px solid #d6e3ea}.type-buttons{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:16px}.type-card{display:flex;gap:12px;align-items:flex-start;border:2px solid #ccd8df;border-radius:10px;padding:18px;cursor:pointer;background:#fff;margin:0}.type-card:has(input:checked){border-color:#176b87;background:#eef8fb}.type-card input{width:auto;margin-top:3px}.type-card span{display:flex;flex-direction:column;gap:5px}.type-card small{font-weight:normal;color:#5b6973}.field-error{outline:3px solid #b42318;outline-offset:4px}.pending-check{scroll-margin-top:20px}.pending-check:focus-within{outline:3px solid #176b87;outline-offset:-3px}@media(max-width:800px){.type-buttons{grid-template-columns:1fr}}

.carry-over{display:inline-block;margin-top:4px;font-size:.78rem;font-weight:700;color:#9a5b00;background:#fff3cd;padding:2px 6px;border-radius:4px}.warning-text{color:#8a5200;font-weight:600}
.incomplete-box{border-left:6px solid #b7791f;background:#fff8e6}.carry-over{display:inline-block;margin-top:4px;padding:3px 6px;border-radius:4px;background:#fff1cc;color:#7a4b00;font-size:.82em}.warning-text{color:#7a4b00}.pending-check{scroll-margin-top:20px}

.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 14px;margin:8px 0 14px}.quick-grid .check{margin:0;padding:9px 10px;border:1px solid #d9dee7;border-radius:8px;background:#fafbfc}.quick-grid input{width:auto;margin-right:7px}

/* v0.5 - fotografie e allegati */
.upload-button{display:block;border:2px dashed #8eabb9;border-radius:9px;padding:13px;background:#f7fbfd;cursor:pointer;margin:10px 0}.upload-button input{display:block;margin-top:8px}.secondary-upload{background:#fafafa;border-color:#b8c1c7}.attachment-mini{margin-top:8px;border-top:1px solid #dde5e9;padding-top:7px;font-size:.86rem}.attachment-mini>a{display:block;margin:4px 0;word-break:break-word}.attachment-upload{padding:5px 0;margin:4px 0;background:transparent}.attachment-upload input{font-size:12px;padding:5px}.tiny{padding:5px 8px;font-size:12px;margin:2px}.inline-delete{display:inline;background:transparent;padding:0;margin:0}.attachment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.attachment-card{border:1px solid #d8e1e6;border-radius:8px;padding:11px;background:#fff}.attachment-card a{display:block;word-break:break-word}.attachment-card small{display:block;color:#667680;margin:5px 0}.attachment-card form{background:transparent;padding:0;margin:0}

.camera-modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}.camera-modal[hidden]{display:none}.camera-panel{width:min(720px,100%);background:#fff;border-radius:12px;padding:14px}.camera-title{display:flex;justify-content:space-between;align-items:center;font-size:1.2rem;margin-bottom:10px}.camera-close{background:transparent;color:#333;font-size:28px;padding:0 8px}.camera-panel video{width:100%;max-height:65vh;background:#111;border-radius:8px}.camera-actions{display:flex;gap:10px;margin-top:10px}.camera-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0}.camera-native-input{display:none}.attachment-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px}.attachment-actions a{display:inline-block}


/* v0.5.3 - allegati e stato invio */
.attachment-visible{margin-top:10px;padding:10px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;min-width:190px}
.attachment-visible .attachment-actions{display:flex;gap:10px;margin:4px 0 8px}
.attachment-chip{display:inline-block;margin:2px 4px 2px 0;padding:4px 7px;border-radius:7px;background:#e2e8f0;text-decoration:none;color:#0f172a;white-space:nowrap}
.sent-badge{display:inline-block;margin-top:4px;padding:3px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-size:.85em}
.pending-badge{display:inline-block;margin-top:4px;padding:3px 7px;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.85em}

/* v0.5.5 - allegati visibili nei controlli */
.attachment-thumb{display:block;width:96px;height:72px;object-fit:cover;border:1px solid #ccd5df;border-radius:6px;margin:6px 0;background:#f7f9fb}
.attachment-thumb-link{display:inline-block;text-decoration:none}
.home-attachment-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.home-attachment-item{max-width:150px;overflow-wrap:anywhere}
.attachment-visible{margin-top:8px;padding-top:8px;border-top:1px dashed #ccd5df}

/* v0.6 - supervisione e filtri */
.readonly-field{background:#eef2f5;border:1px solid #cbd5df;border-radius:6px;padding:10px 12px;min-height:20px;font-weight:600}
.filter-panel{background:#fff;border:1px solid #d6dee5;border-radius:10px;padding:14px;margin:16px 0}
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.filter-actions,.tab-links,.action-buttons{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.button-link{display:inline-block;padding:9px 12px;border-radius:6px;background:#18768c;color:#fff;text-decoration:none}.button-link.secondary{background:#66727c}.button-link.active{outline:3px solid rgba(24,118,140,.2)}
.table-wrap{overflow-x:auto}.status-chip{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef5f7;font-weight:700}.supervisor-note{margin-top:6px;font-size:.9rem;background:#fff8db;padding:6px;border-radius:5px}
.supervisor-actions{min-width:260px}.supervisor-actions textarea{width:100%;box-sizing:border-box}.action-buttons button.warning{background:#b7791f}.action-buttons button.danger{background:#b42318}

/* v0.6.2 - documenti restituiti */
.returned-row{outline:3px solid #c47a00;outline-offset:-3px;background:#fff7e6;}
.returned-alert{margin-top:6px;padding:8px;border-left:4px solid #c47a00;background:#fff1cc;color:#5d3900;border-radius:4px;}

.resubmitted-row{outline:3px solid #176b87;outline-offset:-3px;background:#eef8fb}.resubmitted-alert{margin-top:6px;padding:8px;border-left:4px solid #176b87;background:#e8f5fa;color:#164d60;border-radius:4px}

/* v0.7.2 - anteprima stampa senza download; v0.7.1 - azioni PDF disponibili in tutte le code e gli archivi */
.pdf-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}
.pdf-actions .button-link{padding:5px 8px;font-size:.86rem;white-space:nowrap}
.pdf-print-shell{width:100%;height:72vh;min-height:620px;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;background:#e5e7eb}
.pdf-print-shell iframe{width:100%;height:100%;border:0;background:#fff}
@media (max-width:700px){.pdf-print-shell{height:68vh;min-height:480px}}


.report-preview{max-width:1180px;margin:0 auto}.report-page{background:#fff;margin:0 auto 20px;padding:8px;box-shadow:0 1px 5px rgba(0,0,0,.22);break-after:page}.report-page img{display:block;width:100%;height:auto}.page-label{font-size:12px;color:#64748b;margin:0 0 6px}
@media print{
  .no-print,.topbar,.flash-stack{display:none!important}
  body,main,.container{margin:0!important;padding:0!important;max-width:none!important;background:#fff!important}
  .report-preview{max-width:none!important;margin:0!important;padding:0!important}
  .report-page{margin:0!important;padding:0!important;box-shadow:none!important;page-break-after:always;break-after:page}
  .report-page:last-child{page-break-after:auto;break-after:auto}
  .report-page img{width:100%!important;height:auto!important}
}

/* v0.7.3 - navigazione coerente e giornale criticita chiuse */
.global-back{display:flex;justify-content:flex-start;margin:0 0 14px}.global-back button{margin-left:0}

/* v0.7.4 - stampa giornale criticita chiuse */

/* v0.8.7 - navigazione e avanzamento operativo */
.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0}
.dashboard-card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid #b9c9d8;border-radius:10px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.dashboard-card strong{font-size:1.05rem}.dashboard-card span{color:#52606d;font-size:.92rem}
.control-progress{margin:12px 0 18px}.pending-check{border-left:5px solid #c88a00!important;background:#fffaf0!important}

/* v0.9.4 - competenze chiare e navigazione per ruolo */
.user-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px}.user-card-head h2{margin:0}.assignment-summary{margin-top:5px;color:#52606d;font-weight:700}.scope-columns{display:grid;grid-template-columns:1fr 1.45fr;gap:16px;margin:12px 0 16px}.scope-box{border:1px solid #cbd8df;border-radius:10px;padding:12px;background:#f9fbfc}.scope-box legend{padding:0 8px;font-weight:800;color:#193b55}.scope-actions{display:flex;gap:5px;margin-bottom:8px}.checkbox-list{display:grid;gap:5px;max-height:290px;overflow:auto;padding-right:4px}.scope-check{display:flex;gap:8px;align-items:flex-start;margin:0;padding:8px 9px;border:1px solid #dce5ea;border-radius:7px;background:#fff;font-weight:normal}.scope-check:hover{border-color:#176b87;background:#f4fafc}.scope-check input{width:auto;margin:2px 0 0}.scope-check span{line-height:1.25}.full-access-note{padding:14px 16px;background:#e9f6ed;border-left:5px solid #347a48;border-radius:7px;margin:12px 0 16px}.password-reset-row{display:grid;grid-template-columns:minmax(260px,420px) auto;gap:14px;align-items:end;background:#f7f9fb;border-top:1px solid #dce5ea;border-radius:0 0 10px 10px}.password-reset-row label{margin:0}.global-back{gap:8px;flex-wrap:wrap}.logout-link{margin-left:auto}.role-select{font-weight:700}
@media(max-width:850px){.scope-columns{grid-template-columns:1fr}.password-reset-row{grid-template-columns:1fr}.user-card-head{display:block}.logout-link{margin-left:0}}
