:root{--ink:#19303c;--nav:#142331;--muted:#667784;--line:#dce4e9;--teal:#007a73;--soft:#eff7f5;--bg:#f5f7f9;--warn:#8c570d}*{box-sizing:border-box}html{font:15px -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink)}body{margin:0;background:var(--bg)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{background:white;border:1px solid #ccd9df;padding:11px 12px;border-radius:9px;min-width:0;width:100%;color:var(--ink)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #75c8bb;outline-offset:2px}label{font-weight:650;font-size:13px;display:flex;flex-direction:column;gap:7px;min-width:0}a{color:inherit}.sm{font-size:13px}.muted{color:var(--muted);line-height:1.5}h1{font-size:34px;letter-spacing:-.045em;margin:0 0 8px}h2{font-size:21px;letter-spacing:-.03em;margin:0}h3{font-size:15px;margin:0 0 12px}.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:850;color:var(--teal);margin-bottom:10px}.btn{background:#fff;border:1px solid #d4e0e3;border-radius:10px;padding:11px 15px;color:var(--ink);font-weight:740;white-space:nowrap}.btn:hover{background:#f0f6f5}.btn.primary{color:white;background:#00796f;border-color:#00796f}.btn.primary:hover{background:#006459}.btn.danger{border-color:#edc9c5;color:#a93432;background:#fff7f6}.layout{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.side{background:var(--nav);color:#ccdcdf;padding:30px 19px}.brand{display:flex;align-items:center;gap:12px;margin:4px 8px 44px}.mark{width:42px;height:42px;display:grid;place-items:center;background:#007d74;border-radius:12px;color:white;font-size:25px;font-weight:900}.brand strong,.brand small{display:block}.brand strong{color:white}.brand small{margin-top:5px;color:#a3b8bd;font-size:12px}.navlink{display:block;color:#b5c7cb;text-decoration:none;padding:14px 13px;border-radius:11px;margin:5px 0}.navlink:hover,.navlink.active{background:#203847;color:#fff}.sidefoot{line-height:1.6;font-size:12px;margin:50px 12px;color:#94a7ad}main{padding:38px clamp(20px,4vw,60px) 55px;min-width:0;max-width:1520px;width:100%;margin:auto}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.topactions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.pill{font-size:12px;border:1px solid #b8dbca;background:#e5f5eb;color:#28644d;padding:9px 12px;border-radius:99px;font-weight:700}.notice,.locknotice{border:1px solid #e7d18f;background:#fff7e6;color:#765921;padding:14px 17px;border-radius:13px;line-height:1.5;margin:0 0 23px}.feedback{border-radius:11px;padding:12px 15px;background:#e8f7ef;color:#0d5e4e;border:1px solid #b9dfcf;margin:14px 0}.feedback.error{background:#fff0ed;color:#a33835;border-color:#eec8c3}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:29px}.metric{padding:20px;border:1px solid var(--line);background:white;border-radius:14px;display:grid;gap:10px}.metric small,.metric span{color:var(--muted);font-size:12px}.metric strong{font-size:28px;letter-spacing:-.045em}.listhead{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:14px}.listhead p{margin:6px 0 0}.tablebox{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 6px 30px rgba(22,47,57,.04);overflow:hidden}.filters{padding:17px;display:flex;flex-wrap:wrap;gap:11px;align-items:flex-end;border-bottom:1px solid var(--line)}.filters label{min-width:175px;flex:1}.filters button{margin-bottom:0}.summary{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;padding:12px 18px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:14px 15px;border-bottom:1px solid #edf1f2;vertical-align:middle}th{background:#f7f9fa;color:#596b77;font-size:11px;text-transform:uppercase;letter-spacing:.07em}tr:last-child td{border:0}td small{color:#657983;display:block;margin-top:4px}td strong{font-size:14px}.tag{display:inline-block;border-radius:99px;padding:5px 9px;font-size:11px;background:#f0f4f6;border:1px solid #e1e8eb;white-space:nowrap}.tag.ok{background:#e8f7ef;color:#1a7247;border-color:#b8dfcb}.tag.warn{background:#fff4dc;color:#865716;border-color:#e9d7ac}.tag.bad{background:#fff0ec;color:#a53d38;border-color:#eed0c7}.empty{padding:52px 22px;text-align:center;color:var(--muted)}.footnote{margin-top:22px}.overlay{position:fixed;inset:0;background:rgba(7,24,35,.55);display:grid;place-items:center;z-index:30;padding:16px}.dialog{width:min(850px,100%);max-height:min(92vh,980px);background:#fff;border-radius:18px;overflow:auto;box-shadow:0 25px 70px rgba(0,0,0,.22)}.modalheader{display:flex;justify-content:space-between;gap:18px;padding:23px 28px;border-bottom:1px solid var(--line)}.modalheader p{margin:5px 0 0}.x{border:0;border-radius:10px;background:#f0f4f5;font-size:28px;width:44px;height:44px;flex-shrink:0;color:var(--ink)}.formbody{padding:22px 28px;display:grid;gap:20px}.formbody hr{border:0;border-top:1px solid #e7edef;width:100%;margin:0}.grid2,.grid3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.helper{background:#f3f8f8;border:1px solid #e1eaeb;border-radius:10px;display:flex;flex-direction:column;justify-content:center;padding:12px;gap:4px}.helper small{color:var(--muted);font-size:12px}.subpanel{padding:15px;background:#f8fafb;border:1px solid #e2e9ec;border-radius:12px}.formfooter{padding:16px 28px 22px;border-top:1px solid #e6ecee;display:flex;justify-content:flex-end;gap:9px}.formfooter .danger{margin-right:auto}.history{border-top:1px solid #e8edee;padding-top:18px}.history-item{border-bottom:1px solid #ecf0f0;padding:9px 0;font-size:12px}.history-item strong{display:block}.gate{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#112934,#1d5560)}.login{max-width:460px;width:100%;padding:34px 30px;background:white;border-radius:18px;display:grid;gap:17px;box-shadow:0 18px 70px rgba(0,0,0,.15)}.login p{margin:0}.error{color:#a23c31;font-size:13px}.login .btn{width:100%}@media(max-width:1000px){.layout{grid-template-columns:190px minmax(0,1fr)}main{padding:27px 23px}.side{padding:22px 12px}.metrics{gap:9px}.metric{padding:14px}}@media(max-width:760px){.layout{display:block}.side{padding:12px 16px}.brand{margin:0 0 10px}.side nav{display:flex;gap:5px;overflow-x:auto}.navlink{font-size:12px;white-space:nowrap;margin:0}.sidefoot{display:none}.top{flex-direction:column}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.listhead{align-items:flex-start;flex-direction:column}.grid3{grid-template-columns:1fr 1fr}.dialog{max-height:96vh}.modalheader,.formbody{padding:18px}.formfooter{padding:15px}.filters label{min-width:130px}}@media(max-width:480px){.grid2,.grid3{grid-template-columns:1fr}.filters label{min-width:100%}.metrics{grid-template-columns:1fr 1fr}.metric strong{font-size:22px}.top h1{font-size:28px}.formfooter{flex-wrap:wrap}.formfooter .btn{flex:1}.formfooter .danger{flex:1 0 100%}}
/* V0.5.1: pratiche multiprodotto */
.dialog{width:min(1000px,100%)}.formsection{display:grid;gap:14px}.formsection h3{margin:0}.formsection p{margin:5px 0}.service-stack{display:grid;gap:12px}.servicecard{border:1px solid #dce4e9;border-radius:13px;background:#fff;overflow:hidden}.servicecard[aria-disabled=true]{opacity:.75}.servicehead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:#f7fafb;border-bottom:1px solid #e6edef}.servicehead strong{font-size:15px}.servicehead small{font-size:12px;color:var(--muted);display:block;margin-top:4px}.servicebody{padding:16px;display:grid;gap:12px}.servicecard details{border-top:1px solid #e8eeef;padding-top:11px}.servicecard summary{font-weight:750;cursor:pointer;color:#006e68}.detailbody{display:grid;gap:12px;padding:14px 0 4px}.addbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;padding:14px;background:#f3f8f7;border:1px dashed #a7cfc6;border-radius:12px}.addbar label{flex:1;min-width:130px}.addbar label:nth-child(2){max-width:95px;min-width:75px}.addbar button{min-width:160px}.service-tag{font-size:12px;color:#647785}.servicehead .btn{padding:7px 12px}.warnline{font-size:12px;color:#80591c;background:#fff7e7;border-radius:8px;padding:7px 10px}.okline{font-size:12px;color:#177458;background:#e8f6ef;border-radius:8px;padding:7px 10px}.badline{font-size:12px;color:#a43d3d;background:#fff0ed;border-radius:8px;padding:7px 10px}.locked-field{background:#f0f4f5}.summaryline{white-space:nowrap}.subtle-note{font-size:12px;color:var(--muted)}@media(max-width:650px){.servicehead{align-items:flex-start}.addbar{display:grid;grid-template-columns:1fr 90px}.addbar label{min-width:0}.addbar button{grid-column:1/-1}.servicebody{padding:13px}.dialog{max-height:98vh}}

.svcVolturaRow{align-items:flex-start;gap:12px;padding:9px 13px;background:#f0f8f5;border:1px solid #c8e4dc;border-radius:9px}.svcVolturaRow label{width:min(100%,220px)}

/* v0.5.4: scheda snella */
.fieldlabel{font-size:13px;font-weight:700;display:block;margin-bottom:8px}
.segmentpick{display:flex;gap:9px;flex-wrap:wrap}.segmentpick label,.quickselect label{cursor:pointer;display:flex;align-items:center;gap:8px;border:1px solid #ccdfe1;border-radius:11px;padding:12px 15px;background:#f7fafb;font-weight:700}
.segmentpick input,.quickselect input{accent-color:#007b74;width:17px;height:17px}
.quickselect{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.quickselect label:has(input:checked),.segmentpick label:has(input:checked){border-color:#00857a;background:#e9f8f3}
.smallrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.extra{border:1px solid #e4e9ee;border-radius:9px;padding:12px}.extra summary{cursor:pointer;color:#006e68;font-weight:700}.extra>div{margin-top:12px}
.fastrow{display:grid;grid-template-columns:minmax(0,1fr) 145px 115px auto;gap:10px;align-items:center;padding:11px;background:#fff;border:1px solid #dce5e7;border-radius:11px}.fastrow.excluded{background:#f6eeee;opacity:.8}
.fastrow strong{display:block}.fastrow .meta{font-size:11px;color:#657983}.fastrow .inputtiny{width:100%;min-width:0}.fastrow .mini{font-size:12px}.fastrow .controls{display:flex;gap:6px}.fastrow button{padding:7px 11px}.fastrow .reason{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:6px 0}.fastrow .reason select{max-width:310px}
.fastrow .verify{grid-column:1/-1;border-top:1px solid #e8eeee;padding-top:9px}.fastrow .verify .grid3{margin-top:10px}.totalsheet{background:#eaf7f3;border:1px solid #b8ddd0;border-radius:12px;padding:16px;display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:14px}.totalsheet strong{font-size:21px}.totalsheet .small{color:#557269;font-size:12px}
@media(max-width:750px){.quickselect{grid-template-columns:repeat(2,minmax(0,1fr))}.fastrow{grid-template-columns:1fr 1fr}.fastrow .prod{grid-column:1/-1}.fastrow .controls{justify-content:flex-end}.smallrow{grid-template-columns:1fr}.fastrow .verify .grid3{grid-template-columns:1fr}}
@media(max-width:440px){.quickselect{grid-template-columns:1fr 1fr}.fastrow{grid-template-columns:1fr 1fr}.fastrow .controls{grid-column:1/-1;justify-content:flex-start}.fastrow .reason{display:block}}

/* v0.5.4 final: actions only remove or cancel; canceled items retain history */
.fastrow .controls{flex-wrap:wrap}.fastrow .cancelledmark{font-weight:800;color:#9a3328;background:#fae7e5;border-radius:8px;padding:8px 11px;font-size:12px}
.fastrow .cancelreason{font-weight:700;color:#913d32;font-size:12px}.fastrow details.verify{grid-column:1/-1;border-top:1px solid #edf0f2;padding:8px 2px 0}.fastrow details.verify>summary{cursor:pointer;color:#006d65;font-size:12px;font-weight:700}.fastrow details.verify>.grid3{margin-top:10px}
.fastrow button.svcCancel{border-color:#d69f97;color:#97453b;background:#fff8f7}
.fastrow .reason label{font-size:12px}.fastrow .reason select{margin-left:8px}

/* v0.5.6: consumi visibili prima dell'aggiunta e chiaramente editabili dopo */
.quickcons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quickcons label{border:1px solid #a9cec7;background:#edf8f4;padding:14px;border-radius:12px}
.quickcons label small{font-weight:400;color:#587168}
.fastrow .svcConsumption{background:#f2fff8;border:2px solid #72b9a6;font-size:17px;font-weight:700}
@media(max-width:580px){.quickcons{grid-template-columns:1fr}}

/* v0.5.7: anteprima punti e fascia Suite in tempo reale */
.totalsheet{gap:14px 20px}.totalsheet .calcnote{flex-basis:100%;font-size:12px;line-height:1.5;padding:10px 13px;border-radius:8px;background:#eaf5f6;color:#285f60}
.totalsheet .suitecalc{background:#d7f1e8;color:#125b46;border:1px solid #9bcfba}
.totalsheet .previewcalc{background:#e7eefc;color:#26558a;border:1px solid #b4c9ee}
.totalsheet .warningcalc{background:#fff4de;color:#7e5518;border:1px solid #eed6a5}
.totalsheet .confirmednote{font-size:12px;border-top:1px dashed #9ccec0;padding-top:10px;flex-basis:100%;color:#396f62}

/* v0.5.9: totale fisso nella maschera, servizi confermati sotto */
.stored-head{margin:6px 0 0;display:flex;gap:8px 18px;align-items:baseline;flex-wrap:wrap;border-top:1px solid #dce7e7;padding-top:16px}
.stored-head strong{font-size:15px;color:#17413f}
.totalsheet{order:initial}
.totalsheet .grandpoints{background:#d3f3e6;border:1px solid #93d4b9;border-radius:10px;padding:8px 12px}
.totalsheet .grandpoints strong{font-size:25px;color:#065647}
.fastrow .pointRuleLabel{display:block;color:#557269;line-height:1.3;margin-top:4px;font-size:10px;font-weight:600}
@media(max-width:750px){.stored-head{display:block}.stored-head span{display:block;margin-top:5px}}

/* v0.6.0: base solo sopra, sotto solo aggiuntivi */
.quickselect label{position:relative;min-height:70px;justify-content:center;flex-wrap:wrap;align-content:center;text-align:center}
.quickselect .quickPoint{display:block;width:100%;font-size:11px;color:#006b5a;font-weight:650;margin:0}
.quickselect label:not(:has(input:checked)) .quickPoint{display:none}
.quickcons{margin-top:-2px}
.extra-panel{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:14px;border:1px solid #bedbd3;border-radius:12px;background:#f6fbf9}
.extra-panel[hidden]{display:none}
.extra-panel label{flex:1 1 135px;min-width:120px}
.extra-panel label:nth-child(2){max-width:100px;min-width:86px}
.extra-panel button{flex:0 0 auto}
.stored-head[hidden]{display:none}
#baseServices[hidden]{display:none}
.totalsheet{margin-top:0}
@media(max-width:600px){.extra-panel{display:grid;grid-template-columns:minmax(0,1fr) 90px}.extra-panel label{min-width:0}.extra-panel button{grid-column:1/-1;width:100%}}

/* Gruppi aggiuntivi compatti: dettagli individuali solo se richiesti */
.extraGroup{border:1px solid #d4e3e1;border-radius:10px;overflow:hidden;background:#fff}
.extraGroup>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;color:#17584e;font-weight:750}
.extraGroup>summary::-webkit-details-marker{display:none}
.extraGroup>summary::before{content:'▸';margin-right:4px;color:#008073}
.extraGroup[open]>summary::before{content:'▾'}
.extraGroup .extraGroupTitle{flex:1}
.extraGroupOpen{font-size:11px;color:#65827b;font-weight:500}
.extraGroupItems{padding:0 12px 12px;display:grid;gap:8px}
.extraGroupItems .fastrow{box-shadow:none;border-radius:8px;padding:9px}
