:root{--ink:#132a2f;--muted:#66777a;--green:#0c6656;--green-dark:#074c42;--mint:#dceee8;--cream:#f4f2eb;--paper:#fff;--line:#dfe6e3}*{box-sizing:border-box}html{font-size:15px}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}.container-fluid{max-width:1480px;padding-left:clamp(18px,4vw,64px);padding-right:clamp(18px,4vw,64px)}.app-header{height:74px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.nav-shell{height:100%;display:flex;align-items:center;gap:38px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font:700 1.1rem Manrope;text-decoration:none}.brand b{color:var(--green)}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--green);color:#fff;border-radius:10px}.nav-content{display:flex!important;align-items:center;justify-content:space-between;flex:1}.main-links{display:flex;gap:8px}.main-links a{color:#546467;text-decoration:none;font-weight:600;padding:10px 14px;border-radius:9px}.main-links a:hover{background:var(--mint);color:var(--green)}.user-area{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.9rem}.user-dot{width:9px;height:9px;background:#2ba578;border-radius:50%}.logout-link{color:var(--green)}.dev-badge{background:#f1e5c8;color:#715012;padding:7px 11px;border-radius:999px;font-weight:700}.navbar-toggler{display:none}.app-main{padding-top:38px;padding-bottom:70px;min-height:calc(100vh - 124px)}.app-footer{border-top:1px solid var(--line);padding:22px 0;color:var(--muted);font-size:.86rem}.hero-panel{background:var(--green-dark);color:white;border-radius:22px;padding:clamp(30px,5vw,66px);display:flex;align-items:end;justify-content:space-between;gap:40px;position:relative;overflow:hidden}.hero-panel:after{content:"";position:absolute;width:420px;height:420px;border:80px solid rgba(255,255,255,.045);border-radius:50%;right:-90px;top:-180px}.hero-panel>*,.page-heading>*{position:relative;z-index:1}.hero-panel h1{font:800 clamp(2rem,4vw,4rem)/1.08 Manrope;max-width:850px;margin:10px 0 18px;letter-spacing:-.045em}.hero-panel p{font-size:1.08rem;color:#c8ddd7;max-width:700px;margin:0}.eyebrow{display:block;color:#3f8f7d;font:800 .72rem Manrope;letter-spacing:.14em}.hero-panel .eyebrow{color:#8bc7b7}.btn{border-radius:10px;font-weight:700;padding:.7rem 1.1rem}.btn-primary{background:#d3a34d;border-color:#d3a34d;color:#182d2c}.btn-primary:hover{background:#e4b960;border-color:#e4b960;color:#182d2c}.hero-panel .btn{white-space:nowrap;z-index:2}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0}.metric-card{background:var(--paper);padding:25px 28px;border:1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;box-shadow:0 5px 20px rgba(24,53,52,.035)}.metric-card span{color:var(--muted);font-weight:600}.metric-card strong{font:800 2.15rem Manrope;margin-top:9px;letter-spacing:-.04em}.metric-card small{color:#8b9899}.metric-card .metric-date{font-size:1.65rem}.content-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:clamp(20px,3vw,32px);box-shadow:0 5px 20px rgba(24,53,52,.035)}.section-heading,.page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.section-heading{margin-bottom:18px}.section-heading h2{font:700 1.35rem Manrope;margin:6px 0 0}.section-heading a{color:var(--green);font-weight:700}.page-heading{margin:12px 0 30px}.page-heading h1{font:800 clamp(2rem,4vw,3.4rem) Manrope;letter-spacing:-.045em;margin:6px 0}.page-heading p{color:var(--muted);margin:0}.table{margin:0}.table>:not(caption)>*>*{padding:.9rem .75rem;border-color:#edf0ee}.table thead th{color:#758386;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.table a{color:var(--green);font-weight:700}.number{font-variant-numeric:tabular-nums}.status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf0ee;color:#647174;font-size:.76rem;font-weight:700}.status-completata{background:#dcefe7;color:#17654f}.status-completataconerrori{background:#f7ebce;color:#845c12}.status-fallita{background:#f5dddd;color:#963d3d}.status-inelaborazione{background:#dfeaf5;color:#315e8d}.status-large{font-size:.9rem;padding:9px 14px}.empty-state{padding:38px;text-align:center;background:#f8faf9;border:1px dashed #cfdad6;border-radius:12px;color:var(--muted)}.empty-state.success{background:#eff8f4;color:#28725e}.upload-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr);gap:22px}.upload-zone{min-height:270px;border:2px dashed #aec9c0;background:#f4faf7;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:.2s}.upload-zone:hover{background:#ebf6f1;border-color:var(--green)}.upload-zone input{position:absolute;opacity:0;pointer-events:none}.upload-zone strong{font:700 1.2rem Manrope}.upload-zone small{color:var(--muted);margin-top:6px}.upload-icon{width:48px;height:48px;display:grid;place-items:center;background:var(--mint);color:var(--green);border-radius:50%;font-size:1.6rem;margin-bottom:14px}.selected-file{margin:14px 0 20px;color:var(--muted);text-align:center}.trace-card h2{font:700 1.5rem Manrope;margin:8px 0 16px}.trace-card ol{padding-left:20px;color:#4f6264;line-height:1.8}.note{background:#f8edda;border-left:3px solid #d3a34d;padding:12px;font-size:.88rem}.filter-card{margin-bottom:18px}.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(115px,1fr)) auto auto;align-items:end;gap:12px}.filter-grid label{font-size:.79rem;color:var(--muted);font-weight:700}.filter-grid input{margin-top:5px}.pagination-bar{display:flex;justify-content:space-between;align-items:center;padding-top:18px;color:var(--muted)}.pagination-bar div{display:flex;gap:8px}.alert{border-radius:12px}.text-danger ul{margin:0}.table-card{padding-bottom:20px}@media(max-width:900px){.nav-content{display:none!important;position:absolute;left:0;right:0;top:74px;background:white;padding:20px;box-shadow:0 15px 25px rgba(0,0,0,.08)}.nav-content.show{display:block!important}.navbar-toggler{display:block;margin-left:auto;border:0}.main-links{flex-direction:column}.user-area{margin:15px}.hero-panel{align-items:start;flex-direction:column}.metric-grid{grid-template-columns:1fr}.upload-layout{grid-template-columns:1fr}.filter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.container-fluid{padding-left:15px;padding-right:15px}.hero-panel{border-radius:15px}.page-heading,.section-heading{align-items:start;flex-direction:column}.filter-grid{grid-template-columns:1fr}.table{font-size:.82rem}}

.logout-link{border:0;background:none;padding:0;font:inherit;text-decoration:underline}.user-area form{margin:0}.auth-shell{max-width:1050px;margin:30px auto;display:grid;grid-template-columns:1fr .8fr;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 18px 60px rgba(24,53,52,.09)}.auth-shell.single{display:block;max-width:600px}.auth-panel{padding:clamp(30px,6vw,70px)}.auth-panel h1{font:800 clamp(2rem,4vw,3.1rem) Manrope;letter-spacing:-.045em;margin:8px 0 12px}.auth-panel>p{color:var(--muted);margin-bottom:28px}.auth-panel form>label:not(.remember-row),.form-card form>label{display:block;margin:16px 0 6px;font-weight:700;font-size:.85rem}.auth-panel .form-control,.form-card .form-control,.form-card .form-select{min-height:48px}.remember-row{display:flex;gap:8px;align-items:center;margin:18px 0}.auth-aside{background:var(--green-dark);color:#fff;padding:55px;display:flex;flex-direction:column;justify-content:center}.auth-aside h2{font:800 2rem Manrope;margin:22px 0 12px}.auth-aside p{color:#c8ddd7}.brand-mark.large{width:62px;height:62px;font-size:1.7rem}.password-help{color:var(--muted);font-size:.84rem;margin:12px 0 20px}.form-card{max-width:680px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}@media(max-width:760px){.auth-shell{grid-template-columns:1fr}.auth-aside{display:none}}
