:root{--red:#e50000;--red-d:#c20000;--red-l:#ff3535;--red-wash:#fdecec;--ink:#0a0a0a;--ink-2:#1c1c1c;--ink-3:#333;--white:#fff;--paper:#fafafa;--paper-2:#f4f4f4;--line:#e6e6e6;--line-2:#d4d4d4;--muted:#6b6b6b;--muted-2:#9a9a9a;--ok:#0b8a3d;--ok-l:#e4f4ea;--warn:#b8860b;--warn-l:#f8f0d8;--bad:#e50000;--bad-l:#fdecec;--shadow:0 1px 2px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.04);--shadow-l:0 6px 20px rgba(0,0,0,.12);--r:8px;--r-s:6px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased}.mono,.num{font-family:SF Mono,JetBrains Mono,ui-monospace,Menlo,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:700}a{color:inherit;text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:228px;background:var(--ink);color:#fff;display:flex;flex-direction:column;position:fixed;height:100vh;z-index:50}.brand{padding:22px 20px 18px;border-bottom:1px solid hsla(0,0%,100%,.1)}.brand .logo{font-size:21px;font-weight:800;letter-spacing:-.04em;display:flex;align-items:center}.brand .logo b{color:var(--red);font-weight:800}.brand .sub{font-size:10px;color:var(--muted-2);margin-top:4px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}.nav{flex:1 1;padding:14px 12px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:var(--r-s);color:#c4c4c4;cursor:pointer;font-weight:550;font-size:13.5px;border:none;background:none;width:100%;text-align:left;transition:all .14s}.nav-item:hover{background:hsla(0,0%,100%,.07);color:#fff}.nav-item.active{background:var(--red);color:#fff;font-weight:650}.nav-item .ico{width:17px;height:17px;flex-shrink:0}.nav-foot{padding:13px 18px;border-top:1px solid hsla(0,0%,100%,.1);font-size:10.5px;color:var(--muted-2);line-height:1.6}.main{flex:1 1;margin-left:228px;min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:15px 28px;display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:40;box-shadow:var(--shadow)}.topbar h1{font-size:20px;font-weight:750}.topbar .crumb{font-size:12px;color:var(--muted);margin-top:2px}.topbar-actions{display:flex;gap:9px;align-items:center}.view{padding:24px 28px 60px;max-width:1520px}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:var(--r-s);font-weight:650;font-size:13px;cursor:pointer;border:1px solid transparent;transition:all .14s;font-family:inherit;white-space:nowrap}.btn-primary{background:var(--red);color:#fff}.btn-primary:hover{background:var(--red-d)}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:var(--ink-2)}.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line-2)}.btn-ghost:hover{border-color:var(--muted-2);background:var(--paper)}.btn-sm{padding:6px 11px;font-size:12px}.btn-xs{padding:4px 9px;font-size:11.5px;border-radius:5px}.section-title{font-size:11.5px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 13px}.section-title.mt{margin-top:32px}.section-title .accent{color:var(--red)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:13px;gap:13px}.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 17px;box-shadow:var(--shadow);position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red)}.kpi.ok:before{background:var(--ok)}.kpi.warn:before{background:var(--warn)}.kpi.neutral:before{background:var(--ink)}.kpi .label{font-size:10.5px;color:var(--muted);font-weight:650;letter-spacing:.05em;text-transform:uppercase}.kpi .value{font-size:24px;font-weight:780;margin-top:7px;letter-spacing:-.02em;line-height:1.08}.kpi .value small{font-size:13px;font-weight:650;color:var(--muted)}.kpi .delta{font-size:11px;margin-top:5px;font-weight:600}.kpi .delta.up{color:var(--ok)}.kpi .delta.down{color:var(--bad)}.kpi .delta.flat{color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.panel-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head h3{font-size:14.5px;font-weight:720}.panel-head .hint{font-size:11px;color:var(--muted)}.panel-body{padding:17px 18px}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media(max-width:1080px){.grid-2{grid-template-columns:1fr}}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;padding:10px 11px;font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--line-2);white-space:nowrap}table.tbl td.num,table.tbl th.num{text-align:right}table.tbl td{padding:10px 11px;border-bottom:1px solid var(--line);vertical-align:middle}table.tbl tr:last-child td{border-bottom:none}table.tbl tbody tr.clickable{cursor:pointer;transition:background .1s}table.tbl tbody tr.clickable:hover{background:var(--paper)}.tbl-name{font-weight:650}.tbl-sub{font-size:11px;color:var(--muted);margin-top:1px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:700;letter-spacing:.02em}.badge.attivo{background:var(--ok-l);color:var(--ok)}.badge.concluso{background:#ededed;color:var(--muted)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pill{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pill.ok{background:var(--ok-l);color:var(--ok)}.pill.warn{background:var(--warn-l);color:var(--warn)}.pill.bad{background:var(--bad-l);color:var(--bad)}.bar{height:7px;background:var(--line);overflow:hidden;position:relative}.bar,.bar>span{border-radius:6px}.bar>span{position:absolute;left:0;top:0;bottom:0;background:var(--red)}.bar.ok>span{background:var(--ok)}.bar.warn>span{background:var(--warn)}.bar.bad>span{background:var(--bad)}.barwrap{display:flex;align-items:center;gap:9px}.barwrap .bar{flex:1 1}.barwrap .pct{font-size:12px;font-weight:700;width:40px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px;flex-wrap:wrap}.detail-title h2{font-size:22px;font-weight:760}.detail-title .meta{font-size:12.5px;color:var(--muted);margin-top:5px;display:flex;gap:13px;flex-wrap:wrap;align-items:center}.detail-title .meta b{color:var(--ink-2);font-weight:650}.cmp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:13px;gap:13px;margin-bottom:20px}@media(max-width:900px){.cmp-grid{grid-template-columns:1fr}}.cmp{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:15px 17px;box-shadow:var(--shadow)}.cmp .ct{font-size:10.5px;font-weight:750;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.cmp .row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}.cmp .row:last-child{border-bottom:none}.cmp .row .k{color:var(--muted)}.cmp .row .v{font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cmp .row.big{padding-top:10px;margin-top:4px;border-top:2px solid var(--line-2);border-bottom:none}.cmp .row.big .k{color:var(--ink);font-weight:650}.cmp .row.big .v{font-size:16px}.field{margin-bottom:15px}.field label{display:block;font-size:12px;font-weight:650;color:var(--ink-2);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:9px 11px;border:1px solid var(--line-2);border-radius:var(--r-s);font-family:inherit;font-size:13.5px;background:#fff;color:var(--ink);transition:border .14s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(229,0,0,.1)}.field .hint{font-size:11px;color:var(--muted);margin-top:5px}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:13px;gap:13px}.field-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:13px;gap:13px}@media(max-width:700px){.field-row,.field-row-3{grid-template-columns:1fr}}.entry-input{width:110px;padding:6px 8px;border:1px solid var(--line-2);border-radius:5px;font-family:inherit;font-size:12.5px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.entry-input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(229,0,0,.1)}.mini-input{width:100%;padding:6px 7px;border:1px solid var(--line-2);border-radius:5px;font-family:inherit;font-size:12px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mini-input:focus{outline:none;border-color:var(--red)}.chk{width:17px;height:17px;cursor:pointer;accent-color:var(--red)}.note-inline{font-size:12px;color:var(--muted);background:var(--paper-2);border-left:3px solid var(--red);padding:10px 13px;border-radius:0 6px 6px 0;margin-top:13px;line-height:1.55}.divider{height:1px;background:var(--line);margin:22px 0}.empty{text-align:center;padding:46px 20px;color:var(--muted)}.empty .big{font-size:36px;margin-bottom:8px;opacity:.4}.filtro-anni{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.grafici-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media(max-width:900px){.grafici-2{grid-template-columns:1fr}}.grafico{display:flex;flex-direction:column;gap:6px}.grafico-barre{gap:3px}.grafico-barre,.grafico-col{display:flex;align-items:flex-end}.grafico-col{flex:1 1;justify-content:center;min-width:0;height:100%}.grafico-barra{display:block;width:100%;max-width:40px;min-height:2px;background:var(--red);border-radius:4px 4px 0 0;transition:opacity .1s}.grafico-col:hover .grafico-barra{opacity:.75}.grafico-assex{display:flex;gap:3px}.grafico-x{flex:1 1;text-align:center;font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}@media(max-width:840px){.sidebar{width:60px}.brand .sub,.nav-foot,.nav-item span{display:none}.nav-item{justify-content:center;padding:11px}.brand .logo{font-size:0}.brand .logo b{font-size:19px}.main{margin-left:60px}.view{padding:16px 14px}.topbar{padding:13px 14px}.cmp-grid{grid-template-columns:1fr}}