:root{
  --bg:#0f1115; --panel:#171a21; --line:#252a34; --txt:#e6e9ef; --dim:#8b93a3;
  --acc:#3fb0ff; --ok:#37c98b; --warn:#f0a92b; --err:#e8543f;
}
*{box-sizing:border-box}
body{margin:0;background:#0f1115;color:#e6e9ef;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:#3fb0ff;text-decoration:none}
a:hover{text-decoration:underline}

.topbar{display:flex;align-items:center;gap:24px;padding:12px 20px;background:#171a21;border-bottom:1px solid #252a34;flex-wrap:wrap}
.brand{font-weight:700;letter-spacing:.5px}
.brand span{color:#3fb0ff}
.topbar nav{display:flex;gap:18px;flex:1}
.topbar nav a{color:#e6e9ef;font-size:14px}
.who{font-size:13px;color:#8b93a3}
.who .logout{margin-left:12px}

.wrap{max-width:1100px;margin:0 auto;padding:24px 20px 60px}
h1{font-size:22px;margin:0 0 20px}
h2{font-size:17px;margin:32px 0 12px;color:#8b93a3;font-weight:600}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:8px}
.card{background:#171a21;border:1px solid #252a34;border-radius:10px;padding:16px;font-size:13px;color:#8b93a3}
.card .n{display:block;font-size:26px;font-weight:700;color:#e6e9ef;margin-bottom:4px}
.card.alert .n{color:#e8543f}

table{width:100%;border-collapse:collapse;background:#171a21;border:1px solid #252a34;border-radius:10px;overflow:hidden;font-size:14px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid #252a34}
th{background:#1c2029;color:#8b93a3;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
tr:last-child td{border-bottom:none}
td.empty{text-align:center;color:#8b93a3;padding:28px}

.bar{display:inline-block;width:90px;height:6px;background:#252a34;border-radius:3px;overflow:hidden;vertical-align:middle;margin-right:8px}
.bar span{display:block;height:100%;background:#3fb0ff}

.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;background:#252a34;color:#e6e9ef}
.t-restricted,.t-confidential{background:#4a2320;color:#ffb4a6}
.t-internal{background:#2a3140}
.t-public{background:#22322a;color:#9fdcb4}
.s-implemented,.s-verified{background:#22322a;color:#9fdcb4}
.s-partial,.s-planned{background:#3d3320;color:#f0c98b}
.s-not_started{background:#3a2426;color:#f0a6a6}

.score{display:inline-block;min-width:30px;text-align:center;padding:2px 6px;border-radius:4px;font-weight:600}
.risk-low{background:#22322a;color:#9fdcb4}
.risk-medium{background:#3d3320;color:#f0c98b}
.risk-high{background:#4a2f20;color:#f5b48a}
.risk-critical{background:#4a2320;color:#ff9d8a}

.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
input,select,textarea{background:#0f1115;border:1px solid #252a34;color:#e6e9ef;padding:9px 11px;border-radius:8px;font-size:14px;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:#3fb0ff}
button,.btn{background:#3fb0ff;color:#0f1115;border:none;padding:9px 16px;border-radius:8px;font-weight:600;cursor:pointer;font-size:14px}
.btn{display:inline-block}
.btn:hover{text-decoration:none;opacity:.9}
.btn.ghost{background:transparent;border:1px solid #252a34;color:#e6e9ef}

.form{background:#171a21;border:1px solid #252a34;border-radius:10px;padding:20px;max-width:760px}
.form label{display:block;margin-bottom:14px;font-size:13px;color:#8b93a3}
.form label input,.form label select,.form label textarea{display:block;width:100%;margin-top:5px;color:#e6e9ef}
.form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.form label.check{display:flex;align-items:center;gap:8px;margin-top:24px}
.form label.check input{width:auto;margin:0}
.actions{display:flex;gap:10px;margin-top:8px}

.flash{padding:11px 14px;border-radius:8px;margin-bottom:18px;font-size:14px}
.flash.ok{background:#1d3327;color:#9fdcb4;border:1px solid #2c4a37}
.flash.err{background:#3a2022;color:#f0a6a6;border:1px solid #5a3033}

.login-box{max-width:380px;margin:12vh auto;background:#171a21;border:1px solid #252a34;border-radius:12px;padding:32px}
.login-box h1{font-size:22px;margin-bottom:4px;letter-spacing:.5px}
.login-box h1 span{color:#3fb0ff}
.login-box .sub{color:#8b93a3;font-size:13px;margin:0 0 24px}
.login-box label{display:block;margin-bottom:14px;font-size:13px;color:#8b93a3}
.login-box input{display:block;width:100%;margin-top:5px}
.login-box button{width:100%;margin-top:8px;padding:11px}

/* --- patch 01: editing controlli --- */
.crumbs{font-size:13px;color:#8b93a3;margin-bottom:10px}
.statement{color:#b9c0cd;max-width:760px;margin:0 0 6px}
.meta{color:#8b93a3;font-size:13px;margin:0 0 20px}
.hint{color:#5f6878;font-weight:400}
tr.na td{opacity:.45}

/* --- patch 02: evidenze --- */
h2 .count{display:inline-block;background:#252a34;color:#8b93a3;border-radius:10px;padding:1px 9px;font-size:12px;vertical-align:middle;margin-left:6px}
.form.upload{margin-top:16px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.hash{color:#5f6878;margin-top:3px}
.btn.danger{background:transparent;border:1px solid #5a3033;color:#f0a6a6}
.btn.small{padding:4px 10px;font-size:12px}
table.evidences td{vertical-align:top}
table.evidences form{margin:0}
input[type=file]{padding:7px;font-size:13px}

/* --- patch 03: storico --- */
table.history .chg{display:block;font-size:13px;margin-bottom:2px}
table.history .chg:last-child{margin-bottom:0}
table.history em{color:#5f6878;font-style:normal}

/* --- patch 04: rischi --- */
h3{font-size:14px;color:#8b93a3;margin:22px 0 10px;text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.matrix-wrap{margin-bottom:26px}
table.matrix{width:auto;border-collapse:separate;border-spacing:3px;background:transparent;border:none}
table.matrix td.cell{width:52px;height:44px;text-align:center;border:none;border-radius:6px;padding:0;font-weight:700}
table.matrix td.cell a{color:inherit;display:block;line-height:44px}
table.matrix td.cell a:hover{text-decoration:none;outline:2px solid #3fb0ff;border-radius:6px}
table.matrix td.cell.selected{outline:2px solid #3fb0ff}
table.matrix .zero{color:#3a4150}
table.matrix th.axis{background:transparent;border:none;color:#5f6878;font-size:11px;text-align:center;padding:2px}
table.matrix th.corner{font-size:10px}
td.overdue{color:#f0a6a6;font-weight:600}

/* --- patch 05: documenti --- */
.doclinks{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.doclinks a{background:#171a21;border:1px solid #252a34;border-radius:10px;padding:14px 18px;color:#e6e9ef;min-width:200px}
.doclinks a:hover{border-color:#3fb0ff;text-decoration:none}
.doclinks .t{display:block;font-weight:600;margin-bottom:3px}
.doclinks .d{display:block;font-size:12px;color:#8b93a3}
