@font-face{font-family:"Outfit";font-style:normal;font-weight:400 700;font-display:swap;src:url(outfit.woff2) format("woff2")}
:root{--bg:#f5f6f8;--card:#fff;--fg:#1d2330;--muted:#6b7280;--line:#e3e6eb;--pri:#2457c5;--pri-h:#1b449c;--err:#b42318;--err-bg:#fdecea;--ok:#146c43;--ok-bg:#e6f4ea;--warn-bg:#fff6e0}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 "Outfit",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--fg)}
a{color:var(--pri);text-decoration:none}a:hover{text-decoration:underline}
header{background:#1d2330;color:#fff;padding:0 20px;display:flex;align-items:center;gap:20px;min-height:52px;flex-wrap:wrap}
header .brand{font-weight:600;font-size:16px;color:#fff}
header nav{display:flex;gap:16px;flex:1;flex-wrap:wrap}
header nav a{color:#cfd5e1}header nav a.on,header nav a:hover{color:#fff;text-decoration:none}
header .who{color:#cfd5e1;display:flex;gap:10px;align-items:center}
header .who button{background:none;border:1px solid #4b5566;color:#cfd5e1;padding:4px 10px}
main{max-width:1400px;margin:24px auto;padding:0 16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px;margin-bottom:20px}
h1{font-size:20px;margin:0 0 16px}h2{font-size:16px;margin:0 0 12px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.toolbar .grow{flex:1}
input[type=text],input[type=password],input[type=email],input[type=search],select{font:inherit;padding:7px 10px;border:1px solid #c9ced6;border-radius:6px;background:#fff;min-width:0}
input:focus,select:focus{outline:2px solid #a9c1f5;border-color:var(--pri)}
button,.btn{font:inherit;display:inline-block;padding:7px 14px;border-radius:6px;border:1px solid var(--pri);background:var(--pri);color:#fff;cursor:pointer;white-space:nowrap}
button:hover,.btn:hover{background:var(--pri-h);text-decoration:none}
.btn.sec,button.sec{background:#fff;color:var(--pri)}.btn.sec:hover,button.sec:hover{background:#eef2fb}
button.danger{background:#fff;color:var(--err);border-color:#e5a29b}button.danger:hover{background:var(--err-bg)}
button.small,.btn.small{padding:3px 9px;font-size:13px}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
th a{color:inherit}
tr:hover td{background:#fafbfc}
.pwd{font-family:ui-monospace,Menlo,monospace}
.muted{color:var(--muted)}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:14px}
.flash.error{background:var(--err-bg);color:var(--err)}.flash.ok{background:var(--ok-bg);color:var(--ok)}
.form{display:grid;grid-template-columns:180px minmax(0,420px);gap:12px 16px;align-items:center}
.form label{font-weight:500}
@media(max-width:600px){.form{grid-template-columns:1fr}}
.actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.pager{display:flex;gap:6px;justify-content:center;margin-top:14px;align-items:center}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;background:#eef2fb;color:var(--pri)}
.badge.w{background:var(--ok-bg);color:var(--ok)}.badge.off{background:#eee;color:#777}
.stats{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
.stat{border:1px solid var(--line);border-radius:8px;padding:10px 16px;min-width:150px}
.stat b{display:block;font-size:22px}
.diff{background:var(--warn-bg)}
.login{max-width:360px;margin:80px auto}
.login input{width:100%;margin-bottom:12px}.login button{width:100%}
details summary{cursor:pointer;font-weight:600;margin:8px 0}
.inline{display:inline}
.derived{background:#e3edff;font-style:italic}
table.edit td{padding:3px 4px}
table.edit input[type=text]{width:100%;min-width:110px;padding:4px 6px;border-color:transparent;background:transparent}
table.edit input[type=text]:hover{border-color:#c9ced6;background:#fff}
table.edit input[type=text]:focus{background:#fff}
table.edit td.edited{background:#fff3b0}
table.edit td.note{font-size:13px;color:var(--muted);min-width:140px}
.diff{background:#ffe7cc}
[hidden]{display:none!important}
/* ---- tabella record ---- */
.grid-card{padding:0;overflow:clip;border-radius:12px;box-shadow:0 1px 3px rgba(16,24,40,.06)}
.grid-top{padding:18px 24px;margin:0;border-bottom:1px solid var(--line);gap:12px}
.grid-title{margin:0;font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px}
.grid-title .count{font-size:12px;font-weight:600;background:#eef2fb;color:var(--pri);padding:2px 10px;border-radius:999px}
.searchbox{display:flex;align-items:center;gap:8px;position:relative;margin:0}
.searchbox .sicon{position:absolute;left:11px;color:var(--muted);pointer-events:none}
.searchbox input[type=search]{width:260px;max-width:60vw;padding:8px 10px 8px 34px;border-radius:8px}
.searchbox input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.grid{overflow:visible}
@media(max-width:1000px){.grid{overflow-x:auto}}
table.data{border-collapse:separate;border-spacing:0}
table.data thead th{position:sticky;top:0;z-index:2;background:#f7f8fa;color:#6b7280;border-bottom:1px solid var(--line);padding:0;
  font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
table.data thead th a{display:flex;gap:6px;align-items:center;padding:16px 16px;color:inherit}
table.data thead th a:hover{color:var(--fg);text-decoration:none}
table.data thead th.sorted{color:var(--pri)}
table.data thead th.act{padding:16px 16px;text-align:right}
table.data .arrow{font-size:9px;opacity:0}
table.data thead th a:hover .arrow{opacity:.5}
table.data th.sorted .arrow{opacity:1}
table.data td{padding:14px 16px;border-bottom:1px solid #eceef2;background:#fff;vertical-align:middle}
table.data tbody tr:last-child td{border-bottom:0}
table.data tbody tr[data-href]{cursor:pointer}
table.data tbody tr[data-href]:hover td{background:#f8faff}
table.data tbody tr[data-href]:focus{outline:2px solid #a9c1f5;outline-offset:-2px}
table.data tr.empty td{text-align:center;color:var(--muted);padding:56px}
table.data td.main{font-weight:600;font-size:15px;color:#111827}
table.data td.t-name{font-weight:500;color:#1f2937}
table.data .t1{font-weight:600;color:#1f2937}
table.data .t2{font-size:12px;color:var(--muted);margin-top:2px}
table.data .none{color:#c3c8d1}
table.data td.act{width:1%;white-space:nowrap}
.acts{display:flex;gap:8px;justify-content:flex-end}
.acts form{margin:0}
.chip{display:inline-block;padding:4px 10px;border-radius:6px;border:1px solid #e2e5ea;background:#f7f8fa;font-family:ui-monospace,Menlo,monospace;font-size:13px;color:#374151;min-width:96px;vertical-align:middle;margin-right:6px}
.ib{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:8px;border:1px solid #dfe3e8;background:#fff;color:#4b5563;vertical-align:middle;cursor:pointer}
td.pwd .ib{width:30px;height:30px;margin-left:2px}
.ib:hover{background:#f1f4f9;border-color:#c9d0da;color:var(--pri);text-decoration:none}
.ib.danger{background:#fdecec;border-color:#f6caca;color:#c62828}
.ib.danger:hover{background:#dc2626;border-color:#dc2626;color:#fff}
.nowrap{white-space:nowrap}
mark{background:#fde68a;color:inherit;padding:0 1px;border-radius:2px}
.grid-foot{position:sticky;bottom:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:10px 20px;background:#eef1f6;border-top:2px solid #c9d1de;color:#4a5263}
.grid-foot .per{margin-left:auto;display:flex;gap:6px;align-items:center}
.grid-foot select{padding:3px 6px}
.pages{display:flex;gap:3px;align-items:center}
.pg{min-width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;border-radius:6px;border:1px solid #c9d1de;background:#fff;color:var(--pri)}
a.pg:hover{background:#e2e9f8;text-decoration:none}
.pg.cur{background:var(--pri);border-color:var(--pri);color:#fff;font-weight:600}
.pg.off{color:#b8bfcb;background:transparent}
.gap{padding:0 4px;color:var(--muted)}
#results.loading tbody{opacity:.55;transition:opacity .15s}
#toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:#1d2330;color:#fff;padding:8px 16px;border-radius:6px;z-index:10}
@media(max-width:700px){.grid-foot .per{margin-left:0}.searchbox input[type=search]{width:100%}}
/* ---- finestra modale ---- */
dialog.modal{border:0;border-radius:14px;padding:28px 28px 22px;width:min(420px,calc(100vw - 32px));box-shadow:0 20px 50px rgba(16,24,40,.25);color:var(--fg);font:inherit}
dialog.modal::backdrop{background:rgba(17,24,39,.45);backdrop-filter:blur(2px)}
dialog.modal[open]{animation:modal-in .16s ease-out}
@keyframes modal-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.modal-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.modal-icon.danger{background:#fdecec;color:#dc2626}
.modal-icon.warn{background:#fff4dc;color:#b45309}
dialog.modal h2{font-size:18px;margin:0 0 6px}
dialog.modal p{margin:0 0 22px;color:#4b5563;word-break:break-word}
.modal-actions{display:flex;justify-content:flex-end;gap:10px}
button.danger-solid{background:#dc2626;border-color:#dc2626}
button.danger-solid:hover{background:#b91c1c;border-color:#b91c1c}
/* ---- campo password: generatore e robustezza ---- */
.pwfield{display:flex;flex-direction:column;gap:6px;min-width:0}
.pwrow{display:flex;gap:6px;align-items:center}
.pwrow input{flex:1;min-width:0}
.meter{display:flex;align-items:center;gap:10px}
.meter .bars{display:flex;gap:4px;flex:1}
.meter .bars i{flex:1;height:6px;border-radius:3px;background:#e5e7eb}
.meter .mlabel{font-size:12px;font-weight:600;min-width:80px;text-align:right}
.meter.s0 .bars i:nth-child(-n+1){background:#dc2626}.meter.s0 .mlabel{color:#dc2626}
.meter.s1 .bars i:nth-child(-n+2){background:#ea580c}.meter.s1 .mlabel{color:#ea580c}
.meter.s2 .bars i:nth-child(-n+3){background:#ca8a04}.meter.s2 .mlabel{color:#a16207}
.meter.s3 .bars i:nth-child(-n+4){background:#65a30d}.meter.s3 .mlabel{color:#4d7c0f}
.meter.s4 .bars i{background:#16a34a}.meter.s4 .mlabel{color:#15803d}
.hints{margin:0;padding-left:18px;font-size:12px;color:var(--muted)}
.hints:empty{display:none}
.form > label{align-self:start;padding-top:8px}
/* ---- aziende ---- */
table.data th.plain{padding:16px 20px}
.inline-edit{border-color:transparent!important;background:transparent;font-weight:600;font-size:15px;width:100%;max-width:420px;padding:6px 8px;margin-left:-8px}
.inline-edit:hover{border-color:#c9ced6!important;background:#fff}
.inline-edit:focus{border-color:var(--pri)!important;background:#fff}
form.rename{display:flex;gap:8px;align-items:center;margin:0}
.ib:disabled{opacity:.35;cursor:not-allowed}
.ib.danger:disabled:hover{background:#fdecec;border-color:#f6caca;color:#c62828}
.selrow{display:flex;gap:12px;align-items:center}
.selrow select{flex:1;min-width:0}
.small-link{font-size:12px;white-space:nowrap}
.selrow .small-link{width:86px}
.azfilter{max-width:170px}
td .tag{display:inline-block;padding:3px 10px;border-radius:6px;background:#eef2fb;color:#2447a6;font-size:13px;font-weight:600;white-space:nowrap}
table.edit select{font:inherit;padding:4px 6px;max-width:200px;border-color:transparent;background:transparent}
table.edit select:hover,table.edit select:focus{border-color:#c9ced6;background:#fff}
/* ---- installazioni ---- */
section.inst{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);max-width:780px}
section.inst h2{display:flex;align-items:center;gap:10px;font-size:16px;margin:0 0 14px}
section.inst h2 .count{font-size:12px;font-weight:600;background:#eef2fb;color:var(--pri);padding:2px 10px;border-radius:999px}
.inst-head,.inst-row{display:grid;grid-template-columns:1fr 1fr 1fr 34px;gap:8px;align-items:center}
.inst-head{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;padding-left:2px}
.inst-row{margin-bottom:8px}
.inst-row input{width:100%}
#inst-add{margin-top:4px}
table.inst-ro{max-width:780px}
@media(max-width:600px){.inst-head{display:none}.inst-row{grid-template-columns:1fr 1fr;padding-bottom:8px;border-bottom:1px solid var(--line)}}
table.edit input.wide{min-width:260px}
.inst-head,.inst-row{grid-template-columns:1fr 1fr 1fr 76px}
.inst-btns{display:flex;gap:6px;justify-content:flex-end}
.inst-row.text{padding:6px 0 6px 2px;border-bottom:1px solid #eceef2;margin-bottom:0;min-height:48px}
.inst-row.text span{overflow-wrap:anywhere}
.inst-row.text .pdl{font-weight:600}
.inst-row.edit{margin:8px 0}
.ib.ok{color:#15803d;border-color:#bfe3cb;background:#effaf3}
.ib.ok:hover{background:#16a34a;border-color:#16a34a;color:#fff}
@media(max-width:600px){.inst-row{grid-template-columns:1fr 1fr}}
/* ---- selezione e aggiornamento massivo ---- */
table.data th.selc,table.data td.selc{width:1%;padding-right:0;padding-left:20px}
table.data th.selc{padding-top:16px;padding-bottom:16px}
td.selc input,th.selc input{width:16px;height:16px;cursor:pointer;accent-color:var(--pri);vertical-align:middle}
table.data tbody tr.selected td{background:#eef3fd}
.bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 24px;background:#e8eefb;border-bottom:1px solid #c8d5f2;color:#1e3a8a}
.bulk-info{margin-right:auto}
.bulk-form{display:flex;align-items:center;gap:8px;margin:0;flex-wrap:wrap}
.bulk-form label{font-weight:500}
.bulk-form select{min-width:200px}
.bulkbar button:disabled{opacity:.5;cursor:not-allowed}
/* ---- import: passi e associazione colonne ---- */
.steps{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 16px;flex-wrap:wrap}
.steps li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--muted);font-weight:500}
.steps .num{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eef1f6;font-size:12px;font-weight:700}
.steps li.cur{border-color:var(--pri);color:var(--pri)}
.steps li.cur .num{background:var(--pri);color:#fff}
.steps li.done{color:#15803d}.steps li.done .num{background:#dcfce7;color:#15803d}
.hdrtoggle{display:flex;gap:8px;align-items:center;font-weight:500;white-space:nowrap}
.hdrtoggle input{width:16px;height:16px;accent-color:var(--pri)}
table.colmap td{vertical-align:top}
table.colmap tr:not(.mapped) td{background:#fafbfc}
table.colmap tr:not(.mapped) .t1{color:#9aa2b0}
table.colmap .samples code{display:inline-block;margin:0 6px 4px 0;padding:2px 8px;border-radius:6px;background:#f3f4f6;border:1px solid #e5e7eb;font-size:12px;color:#374151;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}
table.colmap select{min-width:220px}
table.colmap tr.mapped select{border-color:var(--pri);font-weight:600;color:var(--pri)}
select.bad{border-color:#dc2626!important;color:#dc2626!important}
.colwarn{color:#dc2626;font-size:12px;margin-top:4px}
#colmap .hdr-off{display:none}
#colmap.no-header .hdr-off{display:inline}
#colmap.no-header .hdr-on{display:none}
#map-status .err{color:#dc2626;font-weight:600}
#map-go:disabled{opacity:.5;cursor:not-allowed}
/* ---- modifica in sequenza ---- */
.wizbar{background:#fff;border:1px solid #c8d5f2;border-radius:12px;padding:14px 20px 12px;margin-bottom:16px;box-shadow:0 1px 3px rgba(16,24,40,.06)}
.wiz-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.wiz-title{font-weight:700;color:var(--pri)}
.wiz-pos{color:#374151}
.wiz-exit{margin-left:auto;font-size:13px}
.wiz-progress{height:6px;border-radius:3px;background:#e5e7eb;overflow:hidden}
.wiz-progress i{display:block;height:100%;background:var(--pri);border-radius:3px;transition:width .2s}
.wiz-email{font-size:15px;font-weight:500;margin-left:8px}
.wiz-actions{align-items:center}
.wiz-actions .wiz-next{order:5}
.wiz-actions .wiz-finish{order:4}
.wiz-actions .wiz-prev{order:1}
.wiz-actions .wiz-skip{order:2}
.wiz-actions .wiz-hint{order:3;margin:0 auto 0 8px;font-size:12px}
/* ---- × dentro il campo di ricerca ---- */
.sfield{position:relative;display:inline-flex;align-items:center}
.sfield input[type=search]{padding-right:34px}
.sclear{position:absolute;right:6px;width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:#e5e7eb;color:#4b5563;cursor:pointer}
.sclear:hover{background:#d1d5db;color:#111827}
@media(max-width:700px){.sfield{width:100%}}
/* ---- footer della pagina (fisso in basso, distinto dal footer della tabella) ---- */
:root{--site-foot-h:40px}
body{padding-bottom:calc(var(--site-foot-h) + 16px)}
.site-foot{position:fixed;left:0;right:0;bottom:0;z-index:5;min-height:var(--site-foot-h);display:flex;align-items:center;gap:8px 24px;flex-wrap:wrap;padding:0 20px;background:#1d2330;color:#9aa3b2;font-size:12px}
.site-foot .sf-brand{color:#fff;font-weight:600}
.site-foot .sf-mid{flex:1}
.site-foot b{color:#e5e7eb;font-weight:600}
.site-foot a{color:#cfd5e1}
.grid-foot{bottom:var(--site-foot-h)}
#toast{bottom:calc(var(--site-foot-h) + 70px)}
@media(max-width:700px){.site-foot{padding:6px 16px;gap:2px 12px}.site-foot .sf-right{width:100%}:root{--site-foot-h:64px}}
.sess-foot b{font-variant-numeric:tabular-nums;color:#e5e7eb}
.sess-foot.soon b{color:#fbbf24}
/* record non più in forza presso l'azienda */
table.data tbody tr.gone td{color:#8a93a3}
table.data tbody tr.gone td.t-name,table.data tbody tr.gone td.main{color:#8a93a3}
table.data tbody tr.gone .tag{background:#f1f3f6;color:#7b8494}
.badge-gone{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#fdecec;color:#b42318;font-size:11px;font-weight:600;letter-spacing:.02em;vertical-align:1px;white-space:nowrap}
.switch-row{display:flex;align-items:center;gap:12px;min-height:38px}
.switch{position:relative;display:inline-block;width:44px;height:24px;flex:none;cursor:pointer}
.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:inherit}
.switch .slider{position:absolute;inset:0;border-radius:999px;background:#c9ced6;transition:background .15s}
.switch .slider::before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.25);transition:transform .15s}
.switch input:checked+.slider{background:var(--ok)}
.switch input:checked+.slider::before{transform:translateX(20px)}
.switch input:focus-visible+.slider{outline:2px solid #a9c1f5;outline-offset:2px}
.switch input:disabled{cursor:default}
.switch input:disabled+.slider{opacity:.6}
.switch-label{font-weight:500}
/* generatore di password personalizzabile */
.ib.on{background:#e8eefb;border-color:#a9c1f5;color:var(--pri)}
.pwopts{margin-top:6px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#f9fafb;display:flex;flex-direction:column;gap:12px}
.pwo-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pwo-head .muted{font-size:12px}
.pwo-len{display:flex;align-items:center;gap:12px}
.pwo-len label{font-weight:500;min-width:80px}
.pwo-len input[type=range]{flex:1;accent-color:var(--pri)}
.pwo-len input[type=number]{width:70px;font:inherit;padding:5px 8px;border:1px solid #c9ced6;border-radius:6px}
.pwo-checks{display:grid;grid-template-columns:1fr;gap:8px}
.pwo-checks label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}
.pwo-checks .muted{white-space:nowrap;font-size:12px;font-family:ui-monospace,Menlo,monospace}
.pwo-symbols{flex:1;min-width:0;font-family:ui-monospace,Menlo,monospace!important;font-size:13px!important;padding:3px 6px!important}
.pwo-err{margin:0;color:var(--err);font-size:13px}
.pwo-preview{display:flex;align-items:center;gap:8px}
.pwo-preview code{flex:1;min-width:0;overflow-wrap:anywhere;padding:8px 10px;border:1px dashed #c9ced6;border-radius:6px;background:#fff;font-family:ui-monospace,Menlo,monospace;font-size:14px;letter-spacing:.03em}
.pwo-actions{display:flex;gap:8px;flex-wrap:wrap}
.pwo-note{margin:0;font-size:12px}
/* permessi per sezione */
.perm-sel{font-size:13px;padding:4px 6px}
.perm-sel.lv0{color:#9aa1ad}
.perm-sel.lv2{color:var(--ok);font-weight:600}
/* selettore di sezione nell'intestazione */
header nav.sections{flex:none;gap:2px;padding:3px;background:#2a3142;border-radius:9px}
header nav.sections a{padding:5px 12px;border-radius:7px;font-weight:500;color:#aab3c5}
header nav.sections a.on{background:#fff;color:#1d2330}
header nav.sections a:not(.on):hover{background:#353d50;color:#fff}
header .who .admin-link{color:#cfd5e1;padding-right:10px;margin-right:2px;border-right:1px solid #3a4356}
header .who .admin-link.on,header .who .admin-link:hover{color:#fff;text-decoration:none}
/* ---- sezioni Microsoft 365 e Dotazioni ---- */
.mono{font-family:ui-monospace,Menlo,monospace;font-size:13px}
td.mono{color:#374151}
.num{text-align:right!important;font-variant-numeric:tabular-nums}
table.data th.num{text-align:right}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:#eef2fb;color:#2447a6}
.pill.good{background:var(--ok-bg);color:var(--ok)}
.pill.warn{background:#fff4e0;color:#9a5b00}
.pill.bad{background:#fdecec;color:#b42318}
.pill.st-uso{background:#e6f4ea;color:#146c43}
.pill.st-magazzino{background:#eef2fb;color:#2447a6}
.pill.st-riparazione{background:#fff4e0;color:#9a5b00}
.pill.st-dismesso{background:#f1f3f6;color:#6b7280}
td .tag.lic{font-size:12px;padding:2px 8px;margin:1px 0;font-weight:500}
.kind{font-size:13px;color:#4b5563}
.expired{color:#b42318;font-weight:600}
.avail{font-size:17px}.avail.low{color:#9a5b00}.avail.zero{color:#b42318}
.usebar{height:8px;border-radius:4px;background:#eceef2;overflow:hidden}
.usebar i{display:block;height:100%;background:var(--pri);border-radius:4px}
.usebar i.full{background:#dc2626}
.small-note{font-size:12px}
.free-lic summary{cursor:pointer;color:var(--muted)}
.free-lic ul{margin:8px 0 0;padding-left:18px;columns:2;font-size:13px}
.detail-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.detail-head h1{margin:0}
.detail-head .grow{flex:1;min-width:200px}
.facts{display:grid;grid-template-columns:180px 1fr;gap:10px 16px;margin:0}
.facts dt{color:var(--muted);font-weight:500}
.facts dd{margin:0}
@media(max-width:600px){.facts{grid-template-columns:1fr}.facts dt{margin-top:6px}}
.chip-s{display:inline-block;padding:1px 8px;border-radius:6px;background:#f1f3f6;font-size:13px;margin:1px 0}
.lic-list{width:auto;min-width:60%;margin-bottom:14px}
.lic-list td{padding:8px 12px 8px 0}
.lic-list td.act{text-align:right}
.inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
.inline-form label{font-weight:500}
.inline-form.tight{gap:6px}
.inline-form.tight input[type=date]{padding:4px 6px;font-size:13px}
.inline-form.tight select{padding:4px 6px;font-size:13px}
.upnrow{display:flex;align-items:center;gap:6px}
.upnrow input{flex:1;min-width:0}
.upnrow select{max-width:55%}
.upnrow .at{color:var(--muted);font-weight:600}
.assignrow{display:flex;gap:8px}
.assignrow select{flex:1;min-width:0}
input[type=date]{font:inherit;padding:6px 8px;border:1px solid #c9ced6;border-radius:6px;background:#fff}
textarea{font:inherit;padding:7px 10px;border:1px solid #c9ced6;border-radius:6px;resize:vertical;width:100%}
input[readonly]:not(.inline-edit),textarea[readonly]{background:#f7f8fa}
h3{font-size:15px;margin:22px 0 8px}
.assigned-now{font-size:15px}
.created-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.created-head h1{margin:0}
.ok-dot{width:40px;height:40px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}
.creds code{font-size:15px;padding:4px 8px;background:#f7f8fa;border:1px solid var(--line);border-radius:6px}
.creds dd{display:flex;align-items:center;gap:8px}
tr.row-err td{background:#fff8f8}
tr.row-dup td{background:#fafafa;color:#6b7280}
label.check{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}
table.data.compact td{padding:10px 12px}
.warn-t{color:#9a5b00!important}
/* riepilogo licenze sopra l'elenco utenti Microsoft 365 */
.licstrip{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;align-items:stretch}
.licsum{padding:12px 16px;border-radius:10px;background:#1d2330;color:#cfd5e1;font-size:13px;line-height:1.7;min-width:130px}
.licsum b{color:#fff;font-size:16px}
.licsum .ls-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#8a93a3}
.licsum .ok-t{color:#6ee7a0}.licsum .bad-t{color:#fca5a5}
.licbox{flex:1;min-width:190px;max-width:280px;display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:inherit;text-decoration:none!important;transition:border-color .15s,box-shadow .15s}
.licbox:hover{border-color:#a9c1f5;box-shadow:0 1px 4px rgba(36,87,197,.12)}
.licbox.on{border-color:var(--pri);box-shadow:0 0 0 2px #dbe5fb}
.lb-name{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-free{font-size:13px;color:#374151}.lb-free b{font-size:24px;line-height:1.1;color:var(--ok)}
.licbox.zero .lb-free b{color:#b42318}
.lb-used{font-size:12px;color:var(--muted)}
.licbox .usebar{margin-top:4px;height:6px}
.grid-title{white-space:nowrap}
.letter-form{grid-template-columns:180px minmax(0,640px);align-items:start}.letter-form label{padding-top:8px}
.sec-head{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.sec-head h2{margin:0}
.sec-head + .tbl,.sec-head + p{margin-top:12px}
/* modulo della lettera di assegnazione */
.cie-up{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:stretch}
@media(max-width:800px){.cie-up{grid-template-columns:1fr}}
.drop{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1.5px dashed #c9ced6;border-radius:10px;cursor:pointer;background:#fafbfc}
.drop:hover,.drop.over{border-color:var(--pri)}
.cie-files{margin:8px 0 0;padding-left:20px}
.cie-files li{margin:2px 0}
.cie-files button.link{background:none;border:0;padding:0;color:var(--pri);cursor:pointer;font:inherit;text-decoration:underline}
.drop.has{border-style:solid;border-color:var(--ok);background:var(--ok-bg)}
.drop input{position:absolute;opacity:0;width:1px;height:1px}
.drop span{font-size:13px;color:var(--muted)}
.drop.over{background:#eef3fd;border-color:var(--pri);border-style:dashed}
.cie-go{display:flex;flex-direction:column;justify-content:center;gap:6px;width:230px}
@media(max-width:800px){.cie-go{width:auto}}
.src{font-size:12px;color:var(--muted);margin-top:3px;min-height:0}
.src.auto{color:#9a5b00;font-weight:600}
input.auto{background:#fff8e6;border-color:#e0b252}
.cfmsg{font-size:12px;margin-top:3px}
.cfmsg.ok{color:var(--ok);font-weight:600}.cfmsg.warn{color:#9a5b00}.cfmsg.bad{color:#b42318;font-weight:600}
label.verify{margin-top:18px;padding:12px 14px;border-radius:8px;background:#fff8e6;border:1px solid #f0d9a4;font-weight:500}
/* lettura dell'etichetta nel nuovo dispositivo */
.lbl-read{margin:4px 0 18px;padding-bottom:16px;border-bottom:1px solid var(--line, #e4e7ec)}
.lbl-read h2{margin-top:0}
.lbl-others{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
button.chip{padding:3px 10px;border-radius:999px;border:1px solid #c9ced6;background:#fff;color:inherit;font-size:13px;cursor:pointer}
button.chip:hover{border-color:var(--pri)}
select.auto,textarea.auto{background:#fff8e6;border-color:#e0b252}
/* assegnazione guidata (lettera di assegnazione) */
.wf-steps{display:flex;gap:6px;list-style:none;padding:0;margin:4px 0 20px;flex-wrap:wrap}
.wf-steps li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 8px;border-radius:999px;background:#f1f3f6;color:var(--muted);font-weight:500}
.wf-steps li a{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.wf-steps .n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid #c9ced6;font-size:12px}
.wf-steps li.on{background:var(--pri);color:#fff}.wf-steps li.on .n{border-color:#fff;color:var(--pri)}
.wf-steps li.done{background:var(--ok-bg);color:var(--ok)}.wf-steps li.done .n{border-color:var(--ok)}
.wf-filter{margin:0 0 10px;max-width:420px}.wf-filter input{width:100%}
#wf-table tbody tr{cursor:pointer}#wf-table tr.picked td{background:#eef3fd}
.wf-new{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.wf-choice{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;color:inherit;text-decoration:none;background:#fafbfc}
.wf-choice:hover{border-color:var(--pri);text-decoration:none}.wf-choice:hover *{text-decoration:none}.wf-choice span{color:var(--muted);font-size:13px}
.wf-choice.off{opacity:.6}
.wf-devs{margin:0 0 4px;padding-left:18px}.wf-devs li{margin:3px 0}
.wf-sum dd{margin-bottom:12px}
.flash.info{background:#eef3fd;color:#1b449c}
.docbox .form{margin-top:14px}
/* accesso con Microsoft */
.ms-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#fff;color:#1f2937;border-color:#8c8c8c;font-weight:600}
.ms-btn:hover{background:#f3f4f6}
.small-note{font-size:13px;margin:10px 0 18px}
.emergency{border-top:1px solid #e5e7eb;padding-top:12px}
.emergency summary{cursor:pointer;color:#6b7280;font-size:13px;margin-bottom:12px}
.ms-acc{display:flex;flex-direction:column;line-height:1.3}.ms-acc small{color:#6b7280}
.acc-sel{max-width:330px}
