:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e6ebee;--surface:#fff;--surface-sunken:#f3f4f9;--border:#e8e9f1;--border-strong:#cfd2e1;--text:#303972;--text-muted:#a098ae;--text-faint:#b9b4c4;--accent:#4d44b5;--accent-hover:#3f37a0;--accent-contrast:#fff;--accent-faint:#eaebf1;--secondary:#fb7d5b;--green:#1eba62;--amber:#b8860b;--on-amber:#fff;--red:#fd5353;--grey:#a098ae;--excluded-strong:#e4e5ec;--excluded-soft:#f4f5f9;--text-xs:.82rem;--text-sm:.9rem;--text-base:1rem;--text-lg:1.15rem;--text-xl:1.6rem;--radius:12px;--radius-sm:8px;--pill:999px;--gap:16px;--sans:"Cairo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--shadow:0 13px 26px #1017280a;--shadow-sm:0 2px 6px #1017280a;--sidebar-width:238px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text-muted);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;margin:0}.vat,.num,.score,code,kbd{font-family:var(--mono);font-variant-numeric:tabular-nums}h1,h2,h3,strong,th{color:var(--text)}h1{font-size:var(--text-xl);margin:0 0 .5rem;font-weight:700;line-height:1.25}h2{font-size:var(--text-lg);margin:2rem 0 .75rem;font-weight:700}p{margin:0 0 .75rem}.muted{color:var(--text-muted)}a{color:var(--accent)}.shell{min-height:100%;display:flex}.sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);background:var(--accent);color:#fff;box-shadow:var(--shadow);flex-direction:column;gap:.25rem;padding:1.25rem .85rem 1.5rem;display:flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:0 0;align-items:center;gap:1rem;height:70px;padding:0 1.75rem;display:flex}.wordmark{font-weight:700;font-size:var(--text-lg);letter-spacing:-.01em;color:#fff;white-space:nowrap;padding:.25rem .6rem 1.25rem;text-decoration:none;display:block}.wordmark-suffix{color:var(--secondary);margin-left:1px}.wordmark-descriptor{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:#fff9;margin-top:-2px;font-weight:500;display:block}.topnav{flex-direction:column;gap:.15rem;display:flex}.topnav>a{border-radius:var(--radius-sm);color:#ffffffc7;font-weight:500;font-size:var(--text-base);padding:.55rem .85rem;text-decoration:none;display:block}.topnav>a:hover{color:#fff;background:#ffffff1a}.topnav>a.current{color:var(--accent);box-shadow:var(--shadow-sm);background:#fff;font-weight:600}.topbar-user{align-items:center;gap:.75rem;margin-left:auto;display:flex}.who{color:var(--text);font-size:var(--text-sm);align-items:center;gap:.4rem;font-weight:600;display:flex}.role{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-faint);border-radius:5px;padding:.1rem .35rem;font-weight:600}.steprail{flex-direction:column;gap:.1rem;margin:0;padding:.35rem 0 .75rem .85rem;display:flex}.steprail .spacer,.step-arrow{display:none}.step{border-radius:var(--radius-sm);color:#ffffff9e;font-size:var(--text-sm);padding:.35rem .75rem;text-decoration:none;display:block}.step:hover{color:#fff}.step.current{color:#fff;background:#ffffff24;font-weight:600}.step.done{color:#ffffffd9}.stepmoves{align-items:center;gap:.4rem;display:flex}.step-move{border-radius:var(--pill);font-size:var(--text-sm);color:var(--accent);background:var(--surface);box-shadow:var(--shadow-sm);align-items:center;gap:.3rem;padding:.4rem .95rem;font-weight:600;text-decoration:none;display:inline-flex}.step-move:hover{background:var(--accent);color:#fff}.step-move[aria-disabled=true]{opacity:.4;pointer-events:none}@media (width<=860px){.shell{flex-direction:column}.sidebar{flex-flow:wrap;flex:none;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem}.wordmark{padding:0}.wordmark-descriptor{display:none}.topnav{flex-direction:row}.steprail{flex-direction:row;padding:0}.topbar{height:auto;padding:1rem}}.page{width:100%;max-width:1500px;margin:0 auto;padding:0 1.75rem 4rem}.page-header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.header-actions{align-items:center;gap:.5rem;display:flex}.centered{place-items:center;min-height:100%;padding:1.25rem;display:grid}.banner{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);margin-bottom:1.25rem;padding:.7rem .9rem}.banner p{margin:0}button,.button{font:inherit;border-radius:var(--pill);border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);cursor:pointer;padding:.5rem 1.2rem;font-weight:600;transition:background .12s,color .12s,border-color .12s}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.quiet,.band-tab,.result-actions button,.session-list button{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm)}button.quiet:hover:not(:disabled),.result-actions button:hover:not(:disabled),.session-list button:hover:not(:disabled){background:var(--accent-faint);border-color:var(--accent-faint);color:var(--accent)}.session-list button:hover:not(:disabled),button.destructive:hover:not(:disabled){color:var(--red);border-color:var(--red)}button.destructive{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);width:100%;padding:.55rem .85rem}input:focus,select:focus{border-color:var(--accent)}input[type=checkbox]{width:auto;accent-color:var(--accent)}label{font-size:var(--text-sm);color:var(--text);margin-bottom:.3rem;font-weight:600;display:block}.row{align-items:flex-start;gap:.5rem;margin-bottom:1.5rem;display:flex}.row input{max-width:320px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:none;width:100%;max-width:380px;padding:1.75rem}.card h1{margin-bottom:.25rem}.card>.muted{font-size:var(--text-sm);margin-bottom:1.5rem}.wordmark-title{letter-spacing:-.02em}.card label{margin-top:.75rem}.card button{width:100%;margin-top:1.25rem}.error{color:var(--red);font-weight:500}.warn{color:var(--amber)}.word-list{flex-wrap:wrap;gap:.4rem;margin:.5rem 0 1.5rem;padding:0;list-style:none;display:flex}.word-list li{background:var(--surface);border-radius:var(--pill);box-shadow:var(--shadow-sm);align-items:center;gap:.4rem;padding:.2rem .3rem .2rem .9rem;font-weight:600;display:flex}.word-list button{font-size:var(--text-xs);padding:.1rem .6rem}.words{color:var(--text-muted);font-size:var(--text-sm);line-height:1.8}.file-history{margin:.5rem 0 1.5rem;padding:0;list-style:none}.file-history li{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:.5rem;padding:.85rem 1.1rem;display:flex}.file-kind{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-faint);border-radius:6px;padding:.15rem .5rem;font-weight:700}.master-mapping{border-top:1px solid var(--border);flex-basis:100%;padding-top:.75rem}.master-mapping .mapping{margin-top:0}.session-list .session-name{flex:14rem;min-width:0}.session-list{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:0;list-style:none;overflow:hidden}.session-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:.5rem;padding:.75rem 1rem;display:flex}.session-list .session-name{color:inherit;flex:1;font-weight:500;text-decoration:none}.session-list .session-name:hover{color:var(--accent)}.session-list .muted,.session-list .warn{font-size:var(--text-sm);white-space:nowrap}.session-list button{font-size:var(--text-sm);padding:.25rem .6rem}.session-list .badge+button,.session-list button+button{margin-left:0}.badge{font-size:var(--text-xs);letter-spacing:.02em;background:var(--accent-faint);color:var(--accent);border:none;border-radius:6px;padding:.15rem .5rem;font-weight:700}.vat{letter-spacing:.02em}.vat-pad,.vat-empty{color:var(--text-faint)}.dropzones{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:1.5rem;display:grid}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;flex-direction:column;gap:.35rem;min-height:120px;padding:1rem;transition:border-color .12s,background .12s;display:flex;position:relative}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:var(--accent-faint)}.dropzone label{color:var(--text);cursor:pointer;margin:0;font-weight:550}.dropzone:after{content:"Trascina qui il file, oppure fai clic per sceglierlo. .xlsx o .csv";color:var(--text-muted);font-size:var(--text-sm);order:1}.dropzone p{font-size:var(--text-sm);order:2;margin:0}.dropzone input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.dropzone.ok{border-style:solid;border-color:var(--green)}.dropzone.ok p{color:var(--green)}.dropzone.error{border-style:solid;border-color:var(--red)}.dropzone.error p{color:var(--red)}.dropzone.busy{border-style:solid;border-color:var(--accent)}.dropzone.ok:after,.dropzone.error:after{content:none}.wizard{counter-reset:step;margin:1.5rem 0 0;padding:0;list-style:none}.wizard-step{counter-increment:step;border-left:1px solid var(--border);margin-left:.85rem;padding:0 0 1.75rem 2.75rem;position:relative}.wizard-step:last-child{border-left-color:#0000;padding-bottom:0}.wizard-step:before{content:counter(step);width:1.7rem;height:1.7rem;font-family:var(--mono);font-size:var(--text-xs);background:var(--surface-sunken);color:var(--text-muted);border:1px solid var(--border);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:-.85rem}.wizard-step.current:before{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.wizard-step.done:before{content:"✓";border-color:var(--text-muted);color:var(--text)}.wizard-step h2{font-size:var(--text-base);margin:0 0 .35rem}.wizard-step.waiting{opacity:.55}.wizard-step.waiting button{display:none}.zone-hint{font-size:var(--text-sm);margin:.4rem 0 0}.mapping{font-size:var(--text-sm);margin-top:.6rem}.mapping>summary{cursor:pointer;color:var(--accent);padding:.2rem 0;list-style-position:outside}.mapping>p{margin:.5rem 0}.mapping-grid{gap:.5rem;margin:.75rem 0;display:grid}.mapping-row{grid-template-columns:1fr 1.4fr;align-items:center;gap:.5rem;display:grid}.mapping-row>span{font-size:var(--text-sm);color:var(--text-muted)}.mapping-row select{font-size:var(--text-sm);padding:.3rem .5rem}.mapping button{font-size:var(--text-sm);padding:.3rem .7rem}.dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:calc(100% - 2rem);max-width:460px;padding:1.5rem;box-shadow:0 12px 32px #00000040}.dialog h2{margin-top:0}.dialog p{margin-bottom:1rem}.dialog button{margin-right:.5rem}.processing,.export,.selection-bar,.summary-strip{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.5rem}.processing{margin:1.5rem 0 0}.processing h2{margin-top:0}.progress{background:var(--surface-sunken);border:1px solid var(--border);border-radius:999px;height:22px;margin-bottom:.75rem;position:relative;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .3s}.progress-label{font-size:var(--text-xs);color:var(--text);place-items:center;display:grid;position:absolute;inset:0}.phases{margin:0;padding:0;list-style:none}.phase{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);grid-template-columns:1fr auto auto;align-items:baseline;gap:.25rem 1rem;margin-bottom:.35rem;padding:.5rem .75rem;display:grid}.phase-name{font-weight:550}.phase-state,.phase-count{font-size:var(--text-sm);color:var(--text-muted)}.phase-hint{font-size:var(--text-sm);grid-column:1/-1}.phase.waiting{opacity:.55}.phase.current{border-color:var(--accent)}.phase.failed .phase-state,.phase.failed .phase-hint{color:var(--red)}.summary-strip{z-index:3;flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 .75rem;display:flex;position:sticky;top:0}.band-tab{border:1px solid var(--border);border-radius:var(--pill);align-items:center;gap:.5rem;padding:.4rem 1rem;font-weight:500;display:flex}.band-tab .count{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-xs);background:var(--accent-faint);color:var(--accent);border-radius:6px;padding:.05rem .4rem}.band-tab.view-linked .count{background:color-mix(in srgb, var(--green) 16%, transparent);color:var(--green)}.band-tab.view-review .count{background:color-mix(in srgb, var(--amber) 20%, transparent);color:var(--amber)}.band-tab.view-unresolved .count{background:color-mix(in srgb, var(--red) 16%, transparent);color:var(--red)}.band-tab.view-excluded .count{background:color-mix(in srgb, var(--grey) 20%, transparent);color:var(--grey)}.band-tab[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.band-tab[aria-pressed=true] .count{color:#fff;background:#ffffff38}.band-tab.view-linked[aria-pressed=true]{background:var(--green);border-color:var(--green)}.band-tab.view-review[aria-pressed=true]{background:var(--amber);border-color:var(--amber);color:var(--on-amber)}.band-tab.view-review[aria-pressed=true] .count{color:var(--on-amber);background:#0000001f}.band-tab.view-unresolved[aria-pressed=true]{background:var(--red);border-color:var(--red)}.band-tab.view-excluded[aria-pressed=true]{background:var(--grey);border-color:var(--grey)}.tab-bar{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.tab-bar p{margin:0}.tab-bar .search{max-width:22rem;margin-left:auto}.results{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-sm);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:.5rem;overflow:hidden}.results thead{background:color-mix(in srgb, var(--accent) 10%, transparent)}.results th{text-align:left;font-weight:600;font-size:var(--text-xs);color:var(--accent);border:none;padding:.8rem .9rem}.results td>strong{font-size:var(--text-lg);font-weight:600;line-height:1.3}.results td{border-bottom:1px solid var(--border);vertical-align:top;background:0 0;padding:.85rem .9rem}.results tbody tr:last-child td{border-bottom:none}.results tbody tr:hover td{background:var(--surface-sunken)}.results tr>td:first-child{box-shadow:inset 3px 0 0 var(--border-strong)}.results tr.band-green>td:first-child{box-shadow:inset 3px 0 0 var(--green)}.results tr.band-yellow>td:first-child{box-shadow:inset 3px 0 0 var(--amber)}.results tr.band-red>td:first-child{box-shadow:inset 3px 0 0 var(--red)}.results tr.band-excluded>td:first-child{box-shadow:inset 3px 0 0 var(--grey)}.results tr.excluded-blacklist>td{background:var(--excluded-strong);color:var(--text-muted)}.results tr.excluded-blacklist:hover>td{background:var(--excluded-strong)}.results tr.excluded-blacklist>td:first-child{box-shadow:inset 3px 0 0 var(--grey)}.results tr.excluded-manual>td{background:var(--excluded-soft);color:var(--text-muted)}.results tr.excluded-manual:hover>td{background:var(--excluded-soft)}.results tr.excluded-manual>td:first-child{box-shadow:inset 3px 0 0 var(--border-strong)}.results tr.excluded-blacklist strong,.results tr.excluded-manual strong{font-weight:500}.results th.pick,.results td.pick{text-align:center;width:2.25rem;padding-right:0}.results td.pick input,.results th.pick input{cursor:pointer}.selection-bar{border:1px solid var(--accent);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;padding:.7rem 1rem;display:flex}.selection-bar button{font-size:var(--text-xs);padding:.2rem .6rem}.selection-bar.whole-list{border-color:var(--border-strong)}.selection-bar.whole-list span{color:var(--text-muted)}.results td:nth-child(2){width:38%}.results td:nth-child(3){width:25%}.results td:nth-child(4){width:9%}.results .score{text-align:right;white-space:nowrap}.results .result-actions{flex-direction:row}.results .result-actions button{font-size:var(--text-xs);padding:.18rem .5rem}.results .sf-id{font-size:var(--text-xs);color:var(--text-muted);display:block}.results .vat{display:block}.explanation{margin:.25rem 0 0}.result-actions{flex-wrap:wrap;gap:.35rem;margin-top:.35rem;display:flex}.result-actions button{font-size:var(--text-xs);padding:.2rem .6rem}.criteria{color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;gap:.5rem;margin-top:.3rem;display:inline-flex}.criteria>span+span:before{content:"· ";color:var(--text-faint)}.export{z-index:3;border:1px solid var(--border-strong);margin-top:2rem;padding:.75rem 1.25rem;position:sticky;bottom:0}.export-row{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;display:flex}.export-row h2{font-size:var(--text-base);white-space:nowrap;margin:0}.export-row p{font-size:var(--text-sm);flex:14rem;margin:0}.export-actions{flex-wrap:wrap;gap:.6rem;margin-left:auto;display:flex}.export-actions .button{font-size:var(--text-sm);padding:.4rem 1rem}a.button{align-items:center;text-decoration:none;display:inline-flex}a.button.quiet{background:var(--surface);color:var(--text);border-color:var(--border)}a.button.quiet:hover{background:var(--accent-faint);color:var(--accent)}.main{height:100vh;overflow-y:auto}@media (width<=860px){.main{height:auto;overflow:visible}}@media (width<=640px){.topbar{gap:.75rem;padding:0 .75rem}.who{display:none}.page{padding:1.25rem .75rem 3rem}.session-list li{flex-wrap:wrap}}@media (width<=860px){.results,.results tbody,.results tr,.results td{width:auto;display:block}.results thead{display:none}.results tr{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.5rem;overflow:hidden}.results td{border-bottom:none;padding-bottom:.2rem}.results td:first-child{width:auto}.results td.pick{text-align:left;width:auto;padding-bottom:0}.results .score{text-align:left}}
