/* ═══════════════════════════════════════════════════════════════════
   AS AUTOMATION · as-compact.css · v1 · 01/08/2026
   Sistema di stile condiviso del gestionale, estratto dalla maschera
   impianti approvata da Daniela: variabili colore, Segoe UI 12px,
   tabelle dense (table.g / table.s), barre strumenti, KPI, pill,
   badge, bottoni, pannelli master/dettaglio, modali e stampa.
   Le pagine lo agganciano con:
     <link rel="stylesheet" href="as-compact.css?v=1">
   e vengono migrate UNA ALLA VOLTA. Il calendario NON lo usa.
═══════════════════════════════════════════════════════════════════ */
:root{
  --blu:#1F4E79; --blu2:#2C6394; --bord:#C00000;
  --lin:#c9d2dc; --lin2:#e7ecf1;
  --tx:#1a2733; --mu:#6b7a8a; --mu2:#9aa8b5;
  --bg:#eef1f5; --card:#fff; --alt:#f8fafc; --sel:#dce9f6;
  --ok:#1a7f4b; --wa:#b06a00; --ko:#C00000;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--tx);font:12px/1.35 "Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button,input,select{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}
.app{height:100vh;display:flex;flex-direction:column}

.top{background:var(--blu);color:#fffffe;height:40px;flex:none;display:flex;align-items:center;gap:12px;padding:0 12px}
.top b{font-size:13px;letter-spacing:.3px}
.top .cli{font-size:12px;opacity:.88}
.sp{flex:1}
.top .demo{font-size:10px;background:#fffffe;color:var(--blu);padding:1px 6px;border-radius:8px;font-weight:700;letter-spacing:.4px}

.body{flex:1;display:flex;min-height:0}

.rail{width:214px;flex:none;background:var(--card);border-right:1px solid var(--lin);display:flex;flex-direction:column;min-height:0}
.rh{height:26px;flex:none;display:flex;align-items:center;gap:6px;padding:0 8px;background:#f2f5f8;border-bottom:1px solid var(--lin);font-size:10px;font-weight:700;letter-spacing:.9px;color:var(--blu);text-transform:uppercase}
.rl{flex:1;overflow:auto}
.imp{padding:6px 8px;border-bottom:1px solid var(--lin2);cursor:pointer;border-left:3px solid transparent}
.imp:hover{background:var(--alt)}
.imp.on{background:var(--sel);border-left-color:var(--blu)}
.imp .c{font-family:Consolas,monospace;font-size:10px;color:var(--mu2)}
.imp .n{font-weight:600;font-size:12px;margin-top:1px}
.imp .i{font-size:10.5px;color:var(--mu)}
.imp .m{margin-top:3px;font-size:10px;color:var(--mu);display:flex;align-items:center;gap:5px}
.dot{width:7px;height:7px;border-radius:50%;flex:none;display:inline-block}
.d-ok{background:var(--ok)}.d-wa{background:#e0a300}.d-ko{background:var(--ko)}.d-na{background:#c3ccd5}

.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}
.bar{min-height:30px;flex:none;background:var(--card);border-bottom:1px solid var(--lin);display:flex;align-items:center;gap:6px;padding:3px 8px;flex-wrap:wrap}
.bc{font-size:11.5px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc b{color:var(--tx)}
.btn{height:21px;padding:0 8px;border:1px solid var(--lin);background:#fff;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}
.btn:hover{background:#f2f5f8;border-color:#a9b6c4}
.btn.pri{background:var(--blu);border-color:var(--blu);color:#fffffe}
.btn.pri:hover{background:var(--blu2)}
.btn.mini{height:18px;padding:0 6px;font-size:10.5px}
.q{height:21px;border:1px solid var(--lin);border-radius:3px;padding:0 6px;width:170px}
.sw{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--mu);cursor:pointer;white-space:nowrap}

.tabv{flex:none;display:flex;background:#f2f5f8;border-bottom:1px solid var(--lin)}
.tabv button{border:0;background:transparent;padding:5px 13px;cursor:pointer;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mu);border-bottom:2px solid transparent}
.tabv button.on{color:var(--blu);border-bottom-color:var(--blu);background:#fff}

.vis{flex:none;display:flex;align-items:center;gap:7px;padding:4px 8px;background:#f6f9fc;border-bottom:1px solid var(--lin);font-size:11px;flex-wrap:wrap}
.vis .et{color:var(--mu)}
.vis input{height:19px;border:1px solid var(--lin);border-radius:2px;background:#fff;padding:0 4px;width:46px;text-align:right}
.vis .div{width:1px;height:14px;background:var(--lin)}
.pill{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:9px;font-size:10px;font-weight:600;background:#eaf1f8;color:var(--blu);border:1px solid #c6d8ea}
.pill.al{background:#fdf2f2;color:var(--bord);border-color:#eecccc}

.rie{flex:none;display:flex;align-items:stretch;background:#fbfcfe;border-bottom:1px solid var(--lin);flex-wrap:wrap}
.kpi{padding:5px 12px;border-right:1px solid var(--lin2);min-width:74px}
.kpi .k{font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--mu);white-space:nowrap}
.kpi .v{font-size:17px;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums}
.kpi.ko .v{color:var(--ko)} .kpi.wa .v{color:var(--wa)} .kpi.na .v{color:var(--mu2)}
.rie .azioni-rie{margin-left:auto;display:flex;align-items:center;gap:6px;padding:0 10px}

.zona{flex:1;overflow:auto;background:var(--card)}
.piede{height:21px;flex:none;border-top:1px solid var(--lin);background:#f2f5f8;display:flex;align-items:center;gap:12px;padding:0 8px;font-size:10.5px;color:var(--mu)}
.piede b{color:var(--tx)}
.leg{margin-left:auto;display:flex;gap:9px}
.leg span{display:inline-flex;align-items:center;gap:4px}

table.g{border-collapse:separate;border-spacing:0;width:100%;min-width:930px;table-layout:fixed}
table.g thead th{position:sticky;top:0;z-index:3;background:#eaeff4;text-align:left;font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#41576d;padding:0 5px;height:21px;border-bottom:1px solid var(--lin);border-right:1px solid var(--lin2);white-space:nowrap}
table.g thead th.n{text-align:right}
table.g td{height:23px;padding:0 5px;border-bottom:1px solid var(--lin2);border-right:1px solid var(--lin2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
tr.r{cursor:pointer}
tr.r:nth-child(odd) td{background:var(--alt)}
tr.r:hover td{background:#eef4fa}
tr.r.on td{background:var(--sel)}
td.n{text-align:right;font-variant-numeric:tabular-nums}
td.ix{width:26px;text-align:center;background:#f2f5f8 !important;color:var(--mu2)}
.cod{font-family:Consolas,monospace;font-size:11px;color:var(--blu)}
table.g td[data-a="sch-dir"]:hover{text-decoration:underline}
table.s td.cod{padding-left:9px;text-indent:0;overflow:visible;max-width:none}
td.sc{font-variant-numeric:tabular-nums;font-weight:600}
.s-ko{color:var(--ko)} .s-wa{color:var(--wa)} .s-na{color:var(--mu2);font-weight:400}
tr.k-ko td:first-child{box-shadow:inset 3px 0 0 var(--ko)}
tr.k-wa td:first-child{box-shadow:inset 3px 0 0 #e0a300}
.fr{display:inline-block;width:10px;color:var(--mu);transition:transform .12s}
.fr.gg{transform:rotate(90deg)}
.grp td{background:#e9eff5 !important;font-weight:700;font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:var(--blu);height:20px}
.grp.ded td{background:#fbecec !important;color:var(--bord)}
.top{min-width:0}
.top .cli{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
@media (max-width:1420px){ .c-voce{display:none} }
@media (max-width:1220px){ .c-tipo{display:none} .rail{width:168px} }
@media (max-width:1180px){ table.g{min-width:830px} .c-voce{display:none} }
@media (max-width:1024px){ .rail{width:138px} .imp .i{display:none} .kpi{min-width:60px;padding:4px 8px} }

.ex td{padding:0 !important;height:auto !important;background:#fbfcfe !important;border-bottom:2px solid var(--lin) !important;box-shadow:inset 3px 0 0 var(--blu)}
.exin{padding:5px 6px 7px 24px;overflow-x:auto}
.lin{display:flex;gap:2px;margin-bottom:4px;border-bottom:1px solid var(--lin);align-items:flex-end}
.lin button{border:1px solid transparent;border-bottom:0;background:transparent;padding:3px 10px;cursor:pointer;font-size:11px;color:var(--mu);border-radius:3px 3px 0 0;position:relative;top:1px}
.lin button .c{color:var(--mu2);font-size:10px}
.lin button.on{background:#fff;border-color:var(--lin);color:var(--blu);font-weight:600}
.lin button.on .c{color:var(--bord)}
.lin .sp{flex:1}
.lin .tool{padding-bottom:3px;display:flex;gap:4px}

table.s{border-collapse:separate;border-spacing:0;width:100%;background:#fff;border:1px solid var(--lin);table-layout:fixed}
table.s th{background:#f2f5f8;text-align:left;font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#41576d;padding:0 5px;height:19px;border-bottom:1px solid var(--lin);border-right:1px solid var(--lin2);white-space:nowrap}
table.s th.n{text-align:right}
table.s td{height:22px;padding:0 5px;border-bottom:1px solid var(--lin2);border-right:1px solid var(--lin2);white-space:nowrap;overflow:hidden}
table.s tr:last-child td{border-bottom:0}
.ci{width:100%;height:19px;border:1px solid transparent;background:transparent;padding:0 3px;border-radius:2px}
.ci:hover{border-color:#c3cedb;background:#fff}
.ci:focus{border-color:var(--blu2);background:#fff;outline:1px solid var(--blu2);outline-offset:-1px}
select.ci{cursor:pointer}
input.ci[type=number]{text-align:right;font-variant-numeric:tabular-nums}
.vuota{background:#fffaf0 !important}

.tag{display:inline-block;padding:0 5px;height:14px;line-height:14px;border-radius:2px;font-size:9px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.imp.drop-hi{outline:2px dashed var(--blu);outline-offset:-2px;background:#eef4fb}
#zona tr.r[draggable=true]{cursor:grab}
#zona tr.r[draggable=true]:active{cursor:grabbing}
#schedaPrint{position:fixed;inset:0;background:#fff;z-index:5000;overflow:auto;padding:18px 26px;font-size:11px;color:#111;font-family:"Barlow",sans-serif}
#schedaPrint .sp-bar{display:flex;gap:8px;align-items:center;position:sticky;top:-18px;background:#f6f7f9;margin:-18px -26px 14px;padding:10px 18px;border-bottom:1px solid #d8dee6;z-index:2}
#schedaPrint h1{margin:0;font-size:20px;color:#1F4E79}
#schedaPrint .sp-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #1F4E79;padding-bottom:8px}
#schedaPrint .sp-cli{font-weight:700;font-size:14px;margin-top:2px}
#schedaPrint .sp-imp{color:#444}
#schedaPrint .sp-dx{text-align:right;font-size:11px;color:#444}
#schedaPrint .sp-leg{margin:8px 0 2px;font-size:11px;color:#444}
#schedaPrint .sp-att{font-size:13px;background:#eef2f7;color:#1F4E79;padding:4px 8px;margin:14px 0 0;border:1px solid #cfd8e3;border-bottom:none;page-break-after:avoid}
#schedaPrint table.sp-t{width:100%;border-collapse:collapse}
#schedaPrint .sp-t th{background:#f2f5f8;border:1px solid #b9c4d0;padding:3px 5px;font-size:10px;text-transform:uppercase;text-align:left}
#schedaPrint .sp-t td{border:1px solid #c9d2dc;padding:2px 4px}
#schedaPrint .sp-t th.sp-rot{writing-mode:vertical-rl;transform:rotate(180deg);padding:5px 1px;font-size:8.5px;white-space:nowrap;height:60px;vertical-align:middle;text-align:center}
#schedaPrint .sp-t td.c{font-size:11px;color:#1F4E79;font-weight:600}
#schedaPrint .sp-t td.n{text-align:right}
#schedaPrint .sp-t td.x{text-align:center;font-weight:700}
#schedaPrint td.sp-df{background:#fff7e6}
#schedaPrint .sp-t tr{page-break-inside:avoid}
#schedaPrint .sp-sto{margin-top:14px;border:1px solid #c9d2dc;padding:8px 10px}
#schedaPrint .sp-sto-r{margin-top:6px}
#schedaPrint .sp-note{font-size:10.5px;color:#333;margin-top:2px;white-space:pre-wrap}
@media print{
  @page{size:A4 portrait;margin:9mm}
  body>*:not(#schedaPrint){display:none!important}
  #schedaPrint{position:static;overflow:visible;padding:0}
  #schedaPrint .no-print{display:none!important}
}
.t-fg{background:#e6f4ec;color:var(--ok);border:1px solid #b9dfc9}
.t-so{background:#eef2f8;color:var(--blu);border:1px solid #ccd9e8}
.t-co{background:#f6eef8;color:#6b3a7a;border:1px solid #ddc7e4}
.t-ded{background:#fdf2f2;color:var(--bord);border:1px solid #eecccc}
.st{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600}
.az{border:1px solid var(--lin);background:#fff;width:18px;height:17px;border-radius:2px;cursor:pointer;color:var(--mu);font-size:10px;padding:0}
.az:hover{border-color:var(--bord);color:var(--bord);background:#fdf2f2}
.nores{padding:20px;text-align:center;color:var(--mu)}
.nores b{display:block;color:var(--tx);margin-bottom:3px}

#tst{position:fixed;right:12px;bottom:28px;z-index:60;display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.tt{background:var(--blu);color:#fffffe;padding:5px 10px;border-radius:3px;font-size:11px}
.tt.e{background:var(--bord)}

#mod{position:fixed;inset:0;background:rgba(20,30,40,.42);z-index:70;display:none;align-items:center;justify-content:center}
#mod.on{display:flex}
.mbox{background:#fff;border-radius:5px;width:560px;max-height:82vh;display:flex;flex-direction:column;overflow:hidden}
.mh{background:var(--blu);color:#fffffe;padding:7px 11px;font-size:12px;font-weight:600}
.mb{padding:11px;overflow:auto;font-size:12px}
.mf{padding:8px 11px;border-top:1px solid var(--lin);display:flex;gap:6px;justify-content:flex-end;background:#f6f9fc}
.mb label{display:block;font-size:11px;color:var(--mu);margin:7px 0 2px}
.mb input,.mb select{width:100%;height:24px;border:1px solid var(--lin);border-radius:3px;padding:0 5px}
.mb pre{background:#f6f8fa;border:1px solid var(--lin2);border-radius:3px;padding:7px;font:11px/1.5 Consolas,monospace;white-space:pre-wrap;margin:6px 0 0}
