:root{
  /* DYNAMICS 365 / FLUENT UI — Dark */
  --bg:#1b1b1f;            /* base */
  --s1:#242429;            /* surface */
  --s2:#2c2c33;            /* elevated */
  --s3:#3a3a44;
  --brd:#3d3d44;           /* divider */
  --brd2:#5a5a64;
  --tx:#ffffff;
  --tx2:#c8c8c8;
  --tx3:#8a8a92;
  /* Fluent blue accent */
  --sky:#4cc2ff;           /* primary blue (dark theme) */
  --sky2:#69ccff;
  --red:#f85149;           /* MS error red */
  --grn:#3fb950;           /* MS success green */
  --ylw:#d29922;           /* MS warning amber */
  --pur:#a371f7;           /* MS purple */
  --orange:#ff8a50;
  --vi:#3a3a44;--vi2:#5a5a64;
  --grid:rgba(76,194,255,.012);
  --serif:'Segoe UI','Inter',-apple-system,sans-serif;
  --serif-text:'Segoe UI','Inter',-apple-system,sans-serif;
  --mono:'Cascadia Code','IBM Plex Mono',monospace;
  --sans:'Segoe UI','Inter',-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--tx);font-family:var(--sans);min-height:100vh;overflow-x:hidden;}

body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:32px 32px;background-position:0 0;}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 70% 50% at 0% 0%,rgba(0,217,255,.04) 0%,transparent 60%),
  radial-gradient(ellipse 60% 50% at 100% 100%,rgba(255,204,0,.025) 0%,transparent 55%);}

/* LOGIN */
.login-wrap{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg);}
.login-wrap.hide{display:none;}
.login-card{position:relative;background:var(--s1);border:1px solid var(--brd);border-radius:20px;padding:44px;width:100%;max-width:400px;box-shadow:0 32px 80px rgba(0,0,0,.6);text-align:center;}
.login-svg{width:64px;height:64px;margin:0 auto 20px;filter:drop-shadow(0 0 16px rgba(184,221,232,.4));}
.login-title{font-size:24px;font-weight:900;background:linear-gradient(90deg,var(--sky),var(--sky2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:4px;}
.login-sub{font-family:var(--mono);font-size:9px;color:var(--tx3);letter-spacing:3px;text-transform:uppercase;margin-bottom:32px;}
.login-fi{width:100%;background:var(--s2);border:1px solid var(--brd);color:var(--tx);padding:13px 16px;border-radius:10px;font-size:13px;font-family:var(--sans);outline:none;margin-bottom:12px;transition:border-color .2s;}
.login-fi:focus{border-color:var(--sky);}
.login-btn{width:100%;background:linear-gradient(135deg,var(--vi),var(--vi2));color:#fff;border:none;padding:14px;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer;margin-top:4px;transition:all .2s;}
.login-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(85,72,176,.5);}
.login-foot{margin-top:22px;font-size:10px;color:var(--tx3);font-family:var(--mono);letter-spacing:1px;}
.login-err{color:var(--red);font-size:11px;margin-top:8px;font-family:var(--mono);display:none;}

/* ── NAV DESKTOP ── */
nav{position:sticky;top:0;z-index:200;background:rgba(10,24,48,.96);backdrop-filter:blur(20px);border-bottom:1px solid var(--brd);height:62px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.brand-svg{width:38px;height:38px;filter:drop-shadow(0 0 8px rgba(184,221,232,.3));}
.brand-text{display:flex;flex-direction:column;line-height:1.2;}
.brand-name{font-size:14px;font-weight:800;background:linear-gradient(90deg,var(--sky),var(--sky2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.brand-sub{font-family:var(--mono);font-size:8px;color:var(--tx3);letter-spacing:2px;text-transform:uppercase;}
.nav-menu{display:flex;gap:2px;flex:1;justify-content:center;flex-wrap:wrap;}
.mnu{font-family:var(--mono);font-size:10px;color:var(--tx3);padding:6px 12px;border-radius:7px;cursor:pointer;transition:all .2s;letter-spacing:.5px;text-transform:uppercase;background:transparent;border:1px solid transparent;}
.mnu:hover{color:var(--sky);background:rgba(184,221,232,.06);}
.mnu.on{color:var(--sky);background:rgba(184,221,232,.12);border-color:rgba(184,221,232,.2);}
.nav-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.wh-sel{background:var(--s2);border:1px solid var(--brd);color:var(--sky);padding:6px 10px;border-radius:7px;font-family:var(--mono);font-size:10px;outline:none;cursor:pointer;}
.user-chip{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:18px;background:var(--s2);border:1px solid var(--brd);font-size:11px;font-family:var(--mono);color:var(--tx2);cursor:pointer;transition:all .15s;}
.user-chip:hover{border-color:var(--red);color:var(--red);}
.user-av{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--vi),var(--sky));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;}

/* ── HAMBURGER (mobile only) ── */
.ham-btn{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:38px;height:38px;background:var(--s2);border:1px solid var(--brd);border-radius:8px;cursor:pointer;flex-shrink:0;}
.ham-btn span{display:block;width:18px;height:2px;background:var(--sky);border-radius:2px;transition:all .25s;}
.ham-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.ham-btn.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.ham-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ── DRAWER MOBILE ── */
.mob-drawer{position:fixed;top:0;left:0;width:100%;height:100%;z-index:300;display:none;}
.mob-drawer.on{display:block;}
.mob-overlay{position:absolute;inset:0;background:rgba(10,24,48,.75);backdrop-filter:blur(6px);}
.mob-panel{position:absolute;top:0;left:0;width:72%;max-width:300px;height:100%;background:var(--s1);border-right:1px solid var(--brd);padding:24px 0;overflow-y:auto;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);}
.mob-drawer.on .mob-panel{transform:translateX(0);}
.mob-brand{display:flex;align-items:center;gap:10px;padding:0 20px 20px;border-bottom:1px solid var(--brd);margin-bottom:12px;}
.mob-brand-name{font-size:13px;font-weight:800;background:linear-gradient(90deg,var(--sky),var(--sky2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.mob-brand-sub{font-family:var(--mono);font-size:7px;color:var(--tx3);letter-spacing:2px;text-transform:uppercase;}
.mob-link{display:flex;align-items:center;gap:10px;padding:11px 20px;font-size:13px;font-weight:600;color:var(--tx2);cursor:pointer;transition:all .15s;border-left:3px solid transparent;}
.mob-link:hover{background:var(--s2);color:var(--sky);}
.mob-link.on{background:rgba(184,221,232,.08);color:var(--sky);border-left-color:var(--sky);}
.mob-link .ico{font-size:16px;width:22px;text-align:center;}
.mob-sep{height:1px;background:var(--brd);margin:8px 20px;}
.mob-wh{padding:12px 20px;}
.mob-user{display:flex;align-items:center;gap:8px;padding:14px 20px;margin-top:auto;border-top:1px solid var(--brd);cursor:pointer;color:var(--tx2);font-size:12px;font-family:var(--mono);}
.mob-user:hover{color:var(--red);}

/* MAIN */
main{position:relative;z-index:1;}
.page{display:none;min-height:calc(100vh - 62px);padding:32px 24px;max-width:1320px;margin:0 auto;}
.page#p4,.page#p7{max-width:none;padding-left:32px;padding-right:32px;}

/* THEME TOGGLE BUTTON */
.theme-tog{background:var(--s2);border:1px solid var(--brd);color:var(--sky);width:38px;height:38px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;transition:all .2s;padding:0;}
.theme-tog:hover{border-color:var(--sky);transform:rotate(15deg);}
.mob-theme{display:flex;align-items:center;gap:8px;padding:11px 20px;font-size:13px;font-weight:600;color:var(--tx2);cursor:pointer;transition:all .15s;border-left:3px solid transparent;}
.mob-theme:hover{background:var(--s2);color:var(--sky);}
.mob-theme .ico{font-size:16px;width:22px;text-align:center;}

/* LIGHT THEME — override variabili (con accenti scuriti per leggibilità su fondo chiaro) */
body.light-theme{
  --bg:#eef3f8;--s1:#ffffff;--s2:#e3eaf2;--s3:#d2dce6;
  --brd:#bfcbd9;--brd2:#8aa0b8;
  --tx:#0a1830;--tx2:#324760;--tx3:#5a6e85;
  /* accenti più scuri/saturi per contrasto su fondo chiaro */
  --sky:#0e5a92;--sky2:#1976b8;
  --ylw:#9a5b00;--grn:#15803d;--red:#c0392b;--pur:#6d28d9;
}
body.light-theme .ek-v,body.light-theme .kpi-v,body.light-theme .pres-kpi-v{color:var(--sky)!important;}

/* ════════════════════════════════════════════════════════════════════
   SUNSET THEME — palette tramonto sobria e professionale
   Ispirazione: sole basso sull'orizzonte, sabbia, rame, indaco notturno
   Niente arancio acceso (era troppo "anni 70")
   ════════════════════════════════════════════════════════════════════ */
body.sunset-theme{
  /* Sfondo: sabbia chiara con sfumatura tramonto reale */
  --bg:#f2e8d8;                /* sabbia chiara naturale */
  --s1:#fbf5e9;                /* lino caldo per aree lavoro (più chiaro del bg) */
  --s2:#1a2b4a;                /* indaco notturno per barre menu (NON marrone!) */
  --s3:#2a1f33;                /* indaco più scuro per hover */
  --brd:#9b7a4f;               /* bronzo medio per bordi */
  --brd2:#6b4d28;
  /* Testo: nero pieno su lino, oro antico per secondari */
  --tx:#0d0a05;
  --tx1:#0d0a05;
  --tx2:#3d2f1f;
  --tx3:#6b5238;
  /* Accenti: tonalità tramonto eleganti */
  --sky:#a8434e;               /* rosa antico (era arancio acceso) */
  --sky2:#c4555e;
  --ylw:#b8772a;               /* rame caldo */
  --grn:#5d7541;               /* verde salvia */
  --red:#8b2c3a;               /* bordeaux scuro */
  --pur:#1f3563;               /* viola crepuscolo */
  font-family:'Lucida Fax', 'Lucida Bright', 'Book Antiqua', Georgia, 'Times New Roman', serif;
}
body.sunset-theme h1, body.sunset-theme h2, body.sunset-theme h3,
body.sunset-theme .ph-title, body.sunset-theme .mo-t, body.sunset-theme .mo-title{
  font-family:'Lucida Fax', 'Lucida Bright', 'Book Antiqua', Georgia, serif;
  font-weight:700;
  color:#0d0a05;
  letter-spacing:.01em;
}
body.sunset-theme .ek-v, body.sunset-theme .kpi-v, body.sunset-theme .pres-kpi-v{
  color:var(--sky)!important;
}

/* Barre menu/nav: indaco notturno con testo crema — alto contrasto, elegante */
body.sunset-theme #nav,
body.sunset-theme .adm-topbar,
body.sunset-theme .adm-nav{
  background:linear-gradient(180deg, #1a2b4a 0%, #0f1d3a 100%)!important;
  border-color:var(--brd)!important;
  box-shadow:0 2px 8px rgba(13,10,5,.25);
}
body.sunset-theme .nv-itm,
body.sunset-theme .adm-nav-tab{
  color:#ffffff!important;
  font-weight:500;
}
body.sunset-theme .nv-itm:hover,
body.sunset-theme .adm-nav-tab:hover{
  background:rgba(245,232,208,.1)!important;
  color:#fff!important;
}
body.sunset-theme .nv-itm.on,
body.sunset-theme .adm-nav-tab.on{
  background:var(--s1)!important;
  color:var(--sky)!important;
  font-weight:700;
  border-color:var(--brd)!important;
}

/* Mobile header */
body.sunset-theme #m-header{
  background:linear-gradient(180deg, #1a2b4a 0%, #0f1d3a 100%)!important;
  border-bottom:1px solid var(--brd)!important;
}
body.sunset-theme #m-tenant-name{color:#ffffff;font-weight:600}
body.sunset-theme .m-btn-logout{
  background:rgba(245,232,208,.15);
  border:1px solid rgba(245,232,208,.4);
  color:#ffffff;
}
body.sunset-theme .m-icon-btn-text{color:#ffffff}

/* Aree di lavoro: lino con gradient sottile (sabbia → cielo serale chiarissimo) */
body.sunset-theme #main{
  background:linear-gradient(180deg, #fbf5e9 0%, #ead9bf 100%);
}
body.sunset-theme .page{background:transparent}
body.sunset-theme .card,
body.sunset-theme .ek,
body.sunset-theme .src-card,
body.sunset-theme .sup-card,
body.sunset-theme .ord-card,
body.sunset-theme .rec-card,
body.sunset-theme .mo-box,
body.sunset-theme .import-hero{
  background:var(--s1);
  border:1px solid var(--brd);
  color:var(--tx);
  box-shadow:0 1px 4px rgba(107,77,40,.12);
}
body.sunset-theme .kpi{
  background:var(--s1);
  border:1px solid var(--brd);
  box-shadow:0 1px 3px rgba(107,77,40,.1);
}
body.sunset-theme .m-tile{background:var(--s1);border-color:var(--brd);box-shadow:0 1px 4px rgba(107,77,40,.12)}
body.sunset-theme .m-row-card{background:var(--s1);border-color:var(--brd)}
body.sunset-theme .m-info-card{
  background:linear-gradient(135deg, rgba(168,67,78,.08), rgba(31,53,99,.05));
  border:1px solid var(--brd);
}

/* Input/select sunset */
body.sunset-theme .fi,
body.sunset-theme input[type=text],
body.sunset-theme input[type=password],
body.sunset-theme input[type=number],
body.sunset-theme input[type=email],
body.sunset-theme select,
body.sunset-theme textarea{
  background:#fefaf0;
  border:1px solid var(--brd);
  color:#0d0a05;
  font-family:'Lucida Fax', 'Lucida Bright', 'Book Antiqua', Georgia, serif;
}
body.sunset-theme .fi:focus,
body.sunset-theme input:focus,
body.sunset-theme select:focus,
body.sunset-theme textarea:focus{
  border-color:var(--sky)!important;
  box-shadow:0 0 0 2px rgba(168,67,78,.18)!important;
  outline:none;
}

/* Bottoni outline neutri */
body.sunset-theme .btn-o{
  background:#fbf5e9;
  border:1px solid var(--brd);
  color:#0d0a05;
}
body.sunset-theme .btn-o:hover{background:#ead9bf;color:#0d0a05}

/* Tabelle */
body.sunset-theme .tbl th{
  background:linear-gradient(180deg, #1a2b4a 0%, #0f1d3a 100%);
  color:#ffffff;
  border-color:var(--brd);
  font-weight:600;
}
body.sunset-theme .tbl td{
  border-color:rgba(155,122,79,.25);
  color:#0d0a05;
  background:var(--s1);
}
body.sunset-theme .tbl tr:nth-child(even) td{background:#f5ecd9}
body.sunset-theme .tbl tr:hover td{background:#ead9bf}

/* Mono font su sunset */
body.sunset-theme .mono, body.sunset-theme code,
body.sunset-theme [style*="font-family:var(--mono)"]{
  font-family:'Courier New', 'Lucida Console', Courier, monospace !important;
}

/* Login wrap sunset */
body.sunset-theme .login-wrap{
  background:linear-gradient(135deg, #f2e8d8 0%, #d4b894 50%, #8b6a3d 100%);
}
body.sunset-theme .login-box{
  background:var(--s1);
  border:1px solid var(--brd);
  box-shadow:0 8px 24px rgba(15,29,58,.4);
}



body.light-theme nav{background:rgba(238,243,248,.96)!important;}
body.light-theme::after{background:radial-gradient(ellipse 80% 55% at 10% 0%,rgba(85,72,176,.10) 0%,transparent 55%),radial-gradient(ellipse 50% 50% at 90% 100%,rgba(85,140,176,.06) 0%,transparent 60%);}
body.light-theme::before{opacity:.08;}
body.light-theme .login-wrap,body.light-theme .present,body.light-theme .lov,body.light-theme .mo{background:rgba(238,243,248,.92);}
body.light-theme .login-card,body.light-theme .mob-panel,body.light-theme .toast{box-shadow:0 12px 40px rgba(50,80,120,.18);}
body.light-theme .ek,body.light-theme .kpi,body.light-theme .card,body.light-theme .src-card,body.light-theme .up-card,body.light-theme .sup-card,body.light-theme .ord-card,body.light-theme .rec-card,body.light-theme .mo-box{background:var(--s1);}
body.light-theme .src-card.sel,body.light-theme .up-card:hover,body.light-theme .src-card:hover,body.light-theme .up-card.drag{background:var(--s2);}
body.light-theme thead th{background:var(--s2);color:var(--tx2);}
body.light-theme tbody tr:hover{background:var(--s2);}
body.light-theme .fi,body.light-theme .lt-in,body.light-theme .qty-in,body.light-theme .linea-in,body.light-theme .login-fi{background:#fff;color:var(--tx);}
body.light-theme .wh-sel{background:#fff;}
body.light-theme .user-chip,body.light-theme .ham-btn,body.light-theme .theme-tog{background:#fff;}
/* brand gradient leggibile in light grazie a sky/sky2 scuri */
body.light-theme .sem-b{background:rgba(14,90,146,.10);border-color:rgba(14,90,146,.35);}
body.light-theme .sem-r{background:rgba(192,57,43,.10);border-color:rgba(192,57,43,.35);}
body.light-theme .sem-y{background:rgba(154,91,0,.12);border-color:rgba(154,91,0,.35);}
body.light-theme .sem-g{background:rgba(21,128,61,.10);border-color:rgba(21,128,61,.35);}
body.light-theme .sem-pur{background:rgba(109,40,217,.10);border-color:rgba(109,40,217,.35);}
body.light-theme .sem-k{background:rgba(80,90,110,.12);border-color:rgba(80,90,110,.30);color:var(--tx2);}
body.light-theme .abc-A{background:rgba(21,128,61,.15);border-color:var(--grn);}
body.light-theme .abc-B{background:rgba(154,91,0,.15);border-color:var(--ylw);}
body.light-theme .abc-C{background:rgba(192,57,43,.12);border-color:var(--red);}
body.light-theme .badge-auto{background:rgba(21,128,61,.15);color:var(--grn);border-color:rgba(21,128,61,.35);}
body.light-theme .badge-man{background:rgba(109,40,217,.12);color:var(--pur);border-color:rgba(109,40,217,.35);}
body.light-theme .badge-ai{background:rgba(154,91,0,.13);color:var(--ylw);border-color:rgba(154,91,0,.35);}
body.light-theme .sm,body.light-theme .formula{background:#f4f7fb;}
body.light-theme .ek::before,body.light-theme .kpi::before,body.light-theme .src-card::before{filter:brightness(.85);}
td.giac-v{font-size:15px;font-weight:800;color:var(--tx);letter-spacing:.3px;}
td.inarr-v{font-size:13px;font-weight:700;}
/* Giacenza evidenziata (scheda Fornitori) — pill con sfondo + bordo a sinistra colorato per stato */
td.giac-pill{font-size:16px;font-weight:900;letter-spacing:.4px;color:var(--sky);background:linear-gradient(90deg,rgba(76,194,255,.18) 0%,rgba(76,194,255,.06) 100%);border-left:3px solid var(--sky);padding-left:8px!important;}
td.giac-pill.giac-low{color:var(--red);background:linear-gradient(90deg,rgba(248,113,113,.20) 0%,rgba(248,113,113,.06) 100%);border-left-color:var(--red);}
td.giac-pill.giac-mid{color:var(--ylw);background:linear-gradient(90deg,rgba(251,191,36,.20) 0%,rgba(251,191,36,.06) 100%);border-left-color:var(--ylw);}
td.giac-pill.giac-zero{color:#fff;background:var(--red);border-left-color:#7f1d1d;}
body.light-theme td.giac-pill{color:#0e639c;background:linear-gradient(90deg,rgba(14,99,156,.13) 0%,rgba(14,99,156,.04) 100%);}
body.light-theme td.giac-pill.giac-low{color:#b91c1c;background:linear-gradient(90deg,rgba(185,28,28,.12) 0%,rgba(185,28,28,.04) 100%);}
body.light-theme td.giac-pill.giac-mid{color:#92400e;background:linear-gradient(90deg,rgba(146,64,14,.12) 0%,rgba(146,64,14,.04) 100%);}
.page.on{display:block;}
.ph{margin-bottom:26px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;}
.ph-l{flex:1;min-width:200px;}
.ph-step{font-family:var(--mono);font-size:9px;color:var(--sky);letter-spacing:2px;opacity:.6;margin-bottom:5px;}
.ph-title{font-size:24px;font-weight:900;margin-bottom:5px;letter-spacing:-.5px;}
.ph-sub{font-size:12px;color:var(--tx2);line-height:1.6;}
.ph-act{display:flex;gap:8px;flex-wrap:wrap;align-self:flex-start;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:8px;font-weight:700;font-size:12px;cursor:pointer;border:none;transition:all .2s;font-family:var(--sans);}
.btn-p{background:linear-gradient(135deg,var(--vi),var(--vi2));color:#fff;border:1px solid rgba(184,221,232,.15);}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(85,72,176,.4);}
.btn-p:disabled{opacity:.3;cursor:not-allowed;transform:none;}
.btn-o{background:transparent;border:1px solid var(--brd2);color:var(--tx2);}
.btn-o:hover{border-color:var(--sky);color:var(--sky);}
.btn-sky{background:rgba(184,221,232,.1);border:1px solid rgba(184,221,232,.25);color:var(--sky);}
.btn-sky:hover{background:rgba(184,221,232,.18);}
.btn-grn{background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.3);color:var(--grn);}
.btn-sm{padding:5px 11px;font-size:10px;}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}

/* FORM */
.lbl{font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:1.5px;color:var(--tx3);margin-bottom:5px;}
.fi{width:100%;background:var(--s2);border:1px solid var(--brd);color:var(--tx);padding:9px 12px;border-radius:7px;font-family:var(--mono);font-size:11px;outline:none;transition:border-color .2s;}
.fi:focus{border-color:var(--sky);}
.fi::placeholder{color:var(--tx3);}

/* CARD */
.card{background:var(--s1);border:1px solid var(--brd);border-radius:12px;padding:18px;}
.card-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.card-t{font-size:13px;font-weight:700;}
.card-s{font-family:var(--mono);font-size:8px;color:var(--tx3);}
.cfg-title{font-size:13px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.cfg-sub{font-size:11px;color:var(--tx2);margin-bottom:14px;line-height:1.6;}
.cfg-badge{font-family:var(--mono);font-size:8px;padding:2px 7px;border-radius:4px;}
.badge-auto{background:rgba(74,222,128,.15);color:var(--grn);border:1px solid rgba(74,222,128,.25);}
.badge-man{background:rgba(167,139,250,.15);color:var(--pur);border:1px solid rgba(167,139,250,.25);}
.badge-ai{background:rgba(251,191,36,.15);color:var(--ylw);border:1px solid rgba(251,191,36,.25);}

/* GRIDS */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px;}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}

/* SOURCE CARDS */
.src-card{background:var(--s1);border:1px solid var(--brd);border-radius:14px;padding:24px;cursor:pointer;transition:all .25s;position:relative;overflow:hidden;}
.src-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--vi),var(--sky));opacity:0;transition:opacity .3s;}
.src-card:hover::before,.src-card.sel::before{opacity:1;}
.src-card:hover{border-color:rgba(184,221,232,.35);background:var(--s2);transform:translateY(-2px);}
.src-card.sel{border-color:var(--sky);background:var(--s2);}
.src-card.sel .chk{display:flex;}
.chk{display:none;position:absolute;top:14px;right:14px;width:20px;height:20px;border-radius:50%;background:var(--sky);color:var(--bg);align-items:center;justify-content:center;font-size:10px;font-weight:800;}

/* UPLOAD */
.up-card{background:var(--s1);border:1px solid var(--brd);border-radius:12px;padding:20px 16px;cursor:pointer;transition:all .2s;position:relative;}
.up-card:hover,.up-card.drag{border-color:var(--sky);background:var(--s2);transform:translateY(-2px);}
.up-card.done{border-color:var(--grn);}
.up-card.done::after{content:'✓';position:absolute;top:11px;right:11px;color:var(--grn);font-weight:700;font-size:14px;}
.up-info{font-family:var(--mono);font-size:9px;color:var(--grn);margin-top:6px;}
.sheet-wrap{margin-top:7px;display:none;}
.sheet-wrap.on{display:block;}

/* TABLE */
.tbl-wrap{overflow:auto;border:1px solid var(--brd);border-radius:10px;max-height:500px;}
/* ── STICKY HEADER STILE EXCEL "BLOCCA PRIMA RIGA" ── */
/* Rimuovi scroll interno del wrap → scroll = pagina */
#tp-urg .tbl-wrap,#tp-pia .tbl-wrap,#tp-ok .tbl-wrap,#tp-zero .tbl-wrap,#tp-scad .tbl-wrap,#p7 .tbl-wrap{
  overflow:visible!important;max-height:none!important;min-height:0;border:none;border-radius:0;
}
/* IMPORTANTE: border-collapse:collapse rompe position:sticky sulle th nei browser.
   border-collapse:separate è il fix standard per tabelle con header sticky. */
#tp-urg table,#tp-pia table,#tp-ok table,#tp-zero table,#tp-scad table,#p7 table{
  border-collapse:separate!important;border-spacing:0;
}
/* Intestazioni fissate sotto la nav (alta 62px), z-index molto alto per coprire tutto */
#tp-urg thead th,#tp-pia thead th,#tp-ok thead th,#tp-zero thead th,#tp-scad thead th,#p7 thead th{
  position:sticky!important;top:62px!important;z-index:1000!important;
  background:#1e3050!important; /* hardcoded per opacità totale, no trasparenze */
  box-shadow:0 2px 4px rgba(0,0,0,.4);
}
/* Light theme: sfondo intestazioni chiaro */
body.light-theme #tp-urg thead th,body.light-theme #tp-pia thead th,body.light-theme #tp-ok thead th,body.light-theme #tp-zero thead th,body.light-theme #tp-scad thead th,body.light-theme #p7 thead th{
  background:#e3eaf2!important;color:var(--tx2)!important;
  box-shadow:0 2px 4px rgba(50,80,120,.15);
}
/* Garantisce che le righe del corpo non coprano le intestazioni */
tbody tr,tbody td{z-index:1;}
thead th{z-index:6;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{position:sticky;top:0;background:var(--s2);font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:1px;color:var(--tx2);padding:10px 12px;text-align:left;border-bottom:1px solid var(--brd);white-space:nowrap;cursor:pointer;user-select:none;}
thead th:hover{color:var(--sky);}
thead th.sa::after{content:' ↑';color:var(--sky);}
thead th.sd::after{content:' ↓';color:var(--sky);}
tbody tr{border-bottom:1px solid rgba(46,74,120,.35);transition:background .1s;}
tbody tr:hover{background:var(--s2);}
tbody td{padding:8px 12px;white-space:nowrap;}
.mn{font-family:var(--mono);}
.lt-in,.qty-in{background:var(--s2);border:1px solid var(--brd);color:var(--sky);padding:5px 8px;border-radius:6px;font-family:var(--mono);font-size:11px;width:74px;text-align:right;outline:none;}
.lt-in:focus,.qty-in:focus{border-color:var(--sky);}
.qty-in.qty-warn{border-color:var(--ylw);color:var(--ylw);background:rgba(251,191,36,.08);}
.outlier-badge{display:inline-block;color:#000;background:var(--ylw);font-size:10px;font-weight:900;padding:1px 5px;border-radius:3px;margin-left:5px;cursor:help;line-height:1;vertical-align:middle;box-shadow:0 1px 2px rgba(251,191,36,.4);user-select:none;}
.outlier-badge:hover{background:#fde68a;transform:scale(1.15);transition:.12s ease;}

/* ─── Modal mappatura colonne (Excel-like grid) ─── */
.cm-grid{border-collapse:separate;border-spacing:0;font-size:11px;width:auto;min-width:100%;background:var(--s1);}
.cm-grid th,.cm-grid td{border-right:1px solid var(--brd);border-bottom:1px solid var(--brd);padding:0;vertical-align:top;white-space:nowrap;}
.cm-grid th{position:sticky;top:0;z-index:5;background:var(--s2);}
.cm-grid th.cm-letter{font-family:var(--mono);font-size:10px;color:var(--tx3);background:var(--s3);text-align:center;padding:4px 8px;font-weight:700;letter-spacing:.5px;border-bottom:2px solid var(--brd2);min-width:120px;}
.cm-grid th.cm-mapper{padding:6px 6px 4px;background:var(--s2);}
.cm-grid th.cm-mapper select{width:100%;padding:5px 6px;border-radius:5px;border:1px solid var(--brd);background:var(--s3);color:var(--tx);font-family:var(--mono);font-size:10px;cursor:pointer;outline:none;}
.cm-grid th.cm-mapper select:focus{border-color:var(--sky);}
.cm-grid th.cm-mapper.has-mapping select{background:rgba(85,72,176,.15);border-color:var(--pur);color:var(--pur);font-weight:700;}
.cm-grid th.cm-mapper.has-required-mapping select{background:rgba(74,222,128,.15);border-color:var(--grn);color:var(--grn);font-weight:700;}
.cm-grid th.cm-header{padding:7px 10px;background:var(--s3);font-size:11px;font-weight:700;color:var(--sky);text-transform:none;letter-spacing:0;border-bottom:2px solid var(--sky);max-width:200px;overflow:hidden;text-overflow:ellipsis;}
.cm-grid td.cm-cell{padding:5px 10px;font-family:var(--mono);font-size:10px;color:var(--tx);max-width:200px;overflow:hidden;text-overflow:ellipsis;background:var(--s1);}
.cm-grid tr:nth-child(even) td.cm-cell{background:var(--s2);}
.cm-grid td.cm-cell.is-mapped{background:rgba(85,72,176,.10)!important;color:var(--pur);font-weight:600;}
.cm-grid td.cm-cell.is-required{background:rgba(74,222,128,.10)!important;color:var(--grn);font-weight:600;}
.cm-grid td.cm-num{font-family:var(--mono);font-size:9px;color:var(--tx3);text-align:center;background:var(--s3);font-weight:700;border-right:2px solid var(--brd2);min-width:32px;padding:5px 6px;position:sticky;left:0;z-index:3;}
.cm-grid th.cm-num-h{background:var(--s3);min-width:32px;border-right:2px solid var(--brd2);position:sticky;left:0;z-index:6;}
body.light-theme .cm-grid th.cm-letter,body.light-theme .cm-grid th.cm-mapper,body.light-theme .cm-grid td.cm-num,body.light-theme .cm-grid th.cm-num-h{background:#f0f4f9;}
body.light-theme .cm-grid th.cm-header{background:#e3eaf2;color:#0e639c;}

/* ─── Glass morphism iOS-style per modal assegnazione file ─── */
.glass-mo{background:rgba(8,18,38,.55)!important;backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);}
body.light-theme .glass-mo{background:rgba(220,232,245,.55)!important;}
.glass-box{background:linear-gradient(135deg,rgba(31,46,80,.85) 0%,rgba(22,37,64,.92) 100%)!important;border:1px solid rgba(184,221,232,.20)!important;border-radius:18px!important;box-shadow:0 30px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.10)!important;backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);overflow:hidden;}
body.light-theme .glass-box{background:linear-gradient(135deg,rgba(255,255,255,.92) 0%,rgba(236,243,250,.92) 100%)!important;border:1px solid rgba(46,74,120,.18)!important;}
.glass-h{background:linear-gradient(180deg,rgba(184,221,232,.07) 0%,transparent 100%);border-bottom:1px solid rgba(184,221,232,.10);padding:18px 22px;}
body.light-theme .glass-h{background:linear-gradient(180deg,rgba(14,99,156,.04) 0%,transparent 100%);border-bottom:1px solid rgba(46,74,120,.10);}

/* Stepper top con dots numerati */
.fr-stepper{display:flex;justify-content:center;align-items:center;gap:6px;margin:12px 0 22px;}
.fr-stepper .fr-dot{width:30px;height:30px;border-radius:50%;background:rgba(184,221,232,.10);border:1.5px solid rgba(184,221,232,.20);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--tx3);transition:.25s cubic-bezier(.4,0,.2,1);}
.fr-stepper .fr-dot.active{background:linear-gradient(135deg,var(--sky) 0%,#7bc6e8 100%);color:#0a1830;border-color:var(--sky);box-shadow:0 0 0 3px rgba(76,194,255,.20),0 4px 12px rgba(76,194,255,.30);transform:scale(1.1);}
.fr-stepper .fr-dot.done{background:rgba(74,222,128,.18);color:var(--grn);border-color:var(--grn);}
.fr-stepper .fr-line{flex:0 0 32px;height:2px;background:rgba(184,221,232,.15);border-radius:1px;}
.fr-stepper .fr-line.done{background:var(--grn);}

/* Step card content */
.fr-step-card{background:rgba(184,221,232,.04);border:1px solid rgba(184,221,232,.12);border-radius:14px;padding:18px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
body.light-theme .fr-step-card{background:rgba(46,74,120,.04);border:1px solid rgba(46,74,120,.12);}
.fr-step-header{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid rgba(184,221,232,.10);}
body.light-theme .fr-step-header{border-bottom-color:rgba(46,74,120,.10);}
.fr-step-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,rgba(76,194,255,.20) 0%,rgba(76,194,255,.05) 100%);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;}
.fr-step-label{font-size:17px;font-weight:800;color:var(--tx);letter-spacing:-.2px;}
.fr-step-desc{font-size:11px;color:var(--tx3);margin-top:2px;}
.fr-step-counter{font-family:var(--mono);font-size:11px;color:var(--tx3);background:rgba(184,221,232,.08);padding:4px 10px;border-radius:14px;font-weight:700;flex-shrink:0;}

/* File list */
.fr-file-list{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow-y:auto;padding:2px;}
.fr-file-row{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:10px;background:rgba(184,221,232,.03);border:1.5px solid transparent;cursor:pointer;transition:.18s ease;}
.fr-file-row:hover{background:rgba(76,194,255,.08);border-color:rgba(76,194,255,.25);}
.fr-file-row.selected{background:linear-gradient(90deg,rgba(76,194,255,.18) 0%,rgba(76,194,255,.06) 100%);border-color:var(--sky);box-shadow:0 0 0 1px rgba(76,194,255,.40),0 4px 14px rgba(76,194,255,.15);}
.fr-file-row.disabled{opacity:.35;cursor:not-allowed;}
.fr-file-row.disabled:hover{background:rgba(184,221,232,.03);border-color:transparent;}
body.light-theme .fr-file-row{background:rgba(46,74,120,.03);}
body.light-theme .fr-file-row:hover{background:rgba(14,99,156,.08);}
body.light-theme .fr-file-row.selected{background:linear-gradient(90deg,rgba(14,99,156,.13) 0%,rgba(14,99,156,.04) 100%);}

.fr-file-radio{width:20px;height:20px;border-radius:50%;border:2px solid rgba(184,221,232,.30);background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s ease;}
.fr-file-row.selected .fr-file-radio{border-color:var(--sky);background:var(--sky);}
.fr-file-row.selected .fr-file-radio::after{content:"";width:7px;height:7px;border-radius:50%;background:#0a1830;}
.fr-file-ext{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--sky);background:rgba(76,194,255,.15);padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;}
.fr-file-info{flex:1;min-width:0;}
.fr-file-name{font-size:13px;font-weight:600;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fr-file-meta{font-family:var(--mono);font-size:9px;color:var(--tx3);margin-top:1px;}
.fr-file-used{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--ylw);background:rgba(251,191,36,.12);padding:2px 7px;border-radius:4px;flex-shrink:0;}
.fr-skip-btn{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:10px;background:rgba(184,221,232,.02);border:1.5px dashed rgba(184,221,232,.25);cursor:pointer;color:var(--tx3);font-size:12px;font-style:italic;transition:.15s ease;justify-content:center;margin-top:6px;}
.fr-skip-btn:hover{background:rgba(184,221,232,.06);border-color:rgba(184,221,232,.40);color:var(--tx2);}
.fr-skip-btn.active{background:rgba(184,221,232,.10);border-color:var(--tx3);color:var(--tx);font-style:normal;font-weight:600;}

/* ─── Pannello Admin ─── */
.adm-tab{padding:11px 18px;cursor:pointer;font-size:12px;font-weight:700;color:var(--tx3);border-bottom:2px solid transparent;display:flex;align-items:center;gap:6px;transition:.15s ease;}
.adm-tab:hover{color:var(--tx2);}
.adm-tab.on{color:var(--sky);border-bottom-color:var(--sky);background:rgba(76,194,255,.04);}
.adm-tab span{font-size:14px;}
.atab{display:none;animation:fadeIn .25s ease;}
.atab.on{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.adm-list{display:flex;flex-direction:column;gap:8px;}
.adm-row{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--s2);border:1px solid var(--brd);border-radius:8px;transition:.15s ease;}
.adm-row:hover{border-color:var(--brd2);background:var(--s3);}
.adm-row.disabled{opacity:.5;}
.adm-row .ar-badge{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;letter-spacing:.5px;text-transform:uppercase;}
.adm-row .ar-badge.active{color:var(--grn);background:rgba(74,222,128,.15);border:1px solid rgba(74,222,128,.30);}
.adm-row .ar-badge.disabled{color:var(--tx3);background:var(--s3);border:1px solid var(--brd);}
.adm-row .ar-name{font-size:13px;font-weight:700;color:var(--tx);}
.adm-row .ar-uname{font-family:var(--mono);font-size:10px;color:var(--sky);}
.adm-row .ar-meta{font-family:var(--mono);font-size:9px;color:var(--tx3);}
.adm-row .ar-actions{margin-left:auto;display:flex;gap:6px;}
.adm-row .ar-logo{width:40px;height:40px;border-radius:6px;background:var(--s3);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.adm-row .ar-logo img{max-width:38px;max-height:38px;object-fit:contain;}
.adm-empty{text-align:center;padding:40px;color:var(--tx3);font-size:12px;font-style:italic;background:var(--s2);border:1px dashed var(--brd);border-radius:10px;}

/* ─── Admin CRM Shell ─── */
#admin-shell{min-height:100vh;background:var(--bg);}
.adm-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:linear-gradient(180deg,#0F1729 0%,#1a2640 100%);border-bottom:1px solid rgba(45,212,168,.25);box-shadow:0 4px 20px rgba(0,0,0,.3);position:sticky;top:0;z-index:100;}
body.light-theme .adm-topbar{background:linear-gradient(180deg,#1a2640 0%,#2a3a5a 100%);}
.adm-topbar-l{display:flex;align-items:center;gap:14px;}
.adm-brand-mark{display:flex;align-items:center;justify-content:center;}
.adm-brand-name{color:#F5F5F5;font-size:18px;font-weight:800;letter-spacing:-.3px;line-height:1.1;}
.adm-brand-sub{color:#2DD4A8;font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-family:var(--mono);}
.adm-topbar-r{display:flex;align-items:center;gap:10px;}
.adm-user-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;background:rgba(45,212,168,.12);border:1px solid rgba(45,212,168,.25);color:#F5F5F5;font-size:11px;font-family:var(--mono);}
.adm-user-pill b{color:#2DD4A8;font-weight:700;}
.adm-user-dot{width:7px;height:7px;border-radius:50%;background:#2DD4A8;box-shadow:0 0 8px rgba(45,212,168,.6);animation:pulseDot 2s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:1;}50%{opacity:.5;}}
.adm-nav{display:flex;gap:0;background:var(--s1);border-bottom:1px solid var(--brd);padding:0 24px;overflow-x:auto;}
.adm-nav-tab{padding:14px 20px;cursor:pointer;font-size:12px;font-weight:700;color:var(--tx3);border-bottom:2px solid transparent;display:flex;align-items:center;gap:7px;white-space:nowrap;transition:.15s ease;}
.adm-nav-tab:hover{color:var(--tx2);}
.adm-nav-tab.on{color:#2DD4A8;border-bottom-color:#2DD4A8;background:rgba(45,212,168,.06);}
.adm-nav-tab span{font-size:14px;}
.adm-main{padding:22px 24px 32px;max-width:1400px;margin:0 auto;}
.anav{display:none;animation:fadeIn .25s ease;}
.anav.on{display:block;}
.adm-foot{padding:18px;text-align:center;font-size:10px;color:var(--tx3);font-family:var(--mono);border-top:1px solid var(--brd);}

/* KPI cards */
.adm-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;}
.adm-kpi{background:var(--s2);border:1px solid var(--brd);border-radius:10px;padding:16px 18px;border-left:3px solid var(--tx3);}
.adm-kpi-grn{border-left-color:var(--grn);}
.adm-kpi-grn .adm-kpi-v{color:var(--grn);}
.adm-kpi-ylw{border-left-color:var(--ylw);}
.adm-kpi-ylw .adm-kpi-v{color:var(--ylw);}
.adm-kpi-red{border-left-color:var(--red);}
.adm-kpi-red .adm-kpi-v{color:var(--red);}
.adm-kpi-sky{border-left-color:#2DD4A8;}
.adm-kpi-sky .adm-kpi-v{color:#2DD4A8;}
.adm-kpi-lbl{font-size:10px;color:var(--tx3);text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-bottom:6px;}
.adm-kpi-v{font-size:24px;font-weight:800;letter-spacing:-.5px;color:var(--tx);font-family:var(--mono);}

.adm-card{background:var(--s2);border:1px solid var(--brd);border-radius:10px;padding:18px;}
.adm-card-h{font-size:13px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px;color:var(--tx);}

@media(max-width:840px){
  .adm-2col{grid-template-columns:1fr!important;}
  .adm-topbar{flex-direction:column;gap:10px;align-items:flex-start;}
  .adm-main{padding:16px;}
}

/* KPI */
.krow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:18px;}
.kpi{background:var(--s1);border:1px solid var(--brd);border-radius:11px;padding:14px 16px;position:relative;overflow:hidden;}
.kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;}
.kpi-l{font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:1.5px;color:var(--tx3);margin-bottom:6px;}
.kpi-v{font-size:20px;font-weight:900;line-height:1;}

/* EXEC KPI */
.ekrow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;}
.ek{background:linear-gradient(135deg,var(--s1),var(--s2));border:1px solid var(--brd);border-radius:14px;padding:18px 20px;position:relative;overflow:hidden;}
.ek::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:14px 14px 0 0;}
.ek-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.ek-l{font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:1.5px;color:var(--tx3);}
.ek-ico{font-size:16px;opacity:.6;}
.ek-v{font-size:26px;font-weight:900;line-height:1;margin-bottom:4px;}
.ek-d{font-family:var(--mono);font-size:9px;color:var(--tx2);}

/* TABS */
.tabs{display:flex;gap:1px;border-bottom:1px solid var(--brd);margin-bottom:16px;flex-wrap:wrap;}
.tab{padding:8px 14px;font-size:11px;font-weight:600;color:var(--tx3);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap;}
.tab:hover{color:var(--tx2);}
.tab.on{color:var(--sky);border-bottom-color:var(--sky);}
.tp{display:none;}
.tp.on{display:block;}

/* FILTER BAR */
.fbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center;}
.fi-s{flex:1;min-width:180px;}

/* STATUS BADGES */
.sem{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-family:var(--mono);font-size:8px;font-weight:600;white-space:nowrap;}
.sem-r{background:rgba(248,113,113,.12);color:var(--red);border:1px solid rgba(248,113,113,.28);}
.sem-y{background:rgba(251,191,36,.12);color:var(--ylw);border:1px solid rgba(251,191,36,.28);}
.sem-g{background:rgba(74,222,128,.1);color:var(--grn);border:1px solid rgba(74,222,128,.22);}
.sem-b{background:rgba(184,221,232,.1);color:var(--sky);border:1px solid rgba(184,221,232,.22);}
.sem-k{background:rgba(100,100,120,.15);color:var(--tx3);border:1px solid rgba(100,100,120,.25);}
.sem-pur{background:rgba(167,139,250,.12);color:var(--pur);border:1px solid rgba(167,139,250,.28);}

/* ABC */
.abc{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-family:var(--mono);font-size:10px;font-weight:800;}
.abc-A{background:rgba(74,222,128,.2);color:var(--grn);border:1px solid var(--grn);}
.abc-B{background:rgba(251,191,36,.2);color:var(--ylw);border:1px solid var(--ylw);}
.abc-C{background:rgba(248,113,113,.15);color:var(--red);border:1px solid rgba(248,113,113,.4);}

/* ABC LEGEND */
.abc-legend{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;padding:12px 16px;background:var(--s1);border:1px solid var(--brd);border-radius:10px;margin-bottom:14px;}
.abc-leg-item{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--tx2);}

/* CHARTS */
.cg{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.cp{background:var(--s1);border:1px solid var(--brd);border-radius:11px;overflow:hidden;}
.cp-h{padding:11px 14px;border-bottom:1px solid var(--brd);display:flex;align-items:center;justify-content:space-between;}
.cp-t{font-size:11px;font-weight:700;}
.cp-s{font-family:var(--mono);font-size:8px;color:var(--tx3);}
.cp-b{padding:14px;}
.ch{position:relative;height:185px;}

/* SUPPLIER */
.sup-card{background:var(--s1);border:1px solid var(--brd);border-radius:11px;margin-bottom:10px;overflow:hidden;}
.sup-h{padding:12px 16px;background:var(--s2);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background .15s;}
.sup-h:hover{background:var(--s3);}
.sup-n{font-size:12px;font-weight:700;}
.sup-bs{display:flex;gap:5px;}
.sub-b{font-family:var(--mono);font-size:8px;padding:2px 7px;border-radius:4px;}
.sub-b-r{background:rgba(248,113,113,.12);color:var(--red);}
.sub-b-y{background:rgba(251,191,36,.12);color:var(--ylw);}
.sub-b-n{background:var(--s3);color:var(--tx2);}
.sup-body{display:none;}
.sup-body.on{display:block;}

/* MODAL */
.mo{position:fixed;inset:0;z-index:500;background:rgba(10,24,48,.92);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:20px;}
.mo.on{display:flex;}
.mo-box{background:var(--s1);border:1px solid var(--brd2);border-radius:16px;width:100%;max-width:860px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.8);}
.mo-h{padding:16px 20px;border-bottom:1px solid var(--brd);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:sticky;top:0;background:var(--s1);z-index:1;}
.mo-t{font-size:16px;font-weight:800;}
.mo-c{font-family:var(--mono);font-size:10px;color:var(--sky);margin-top:2px;}
.mo-x{background:none;border:none;color:var(--tx2);font-size:20px;cursor:pointer;transition:color .15s;}
.mo-x:hover{color:var(--red);}
.mo-b{padding:20px;}
.mo-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:14px;}
.mk{background:var(--s2);border:1px solid var(--brd);border-radius:8px;padding:10px 12px;}
.mk-l{font-family:var(--mono);font-size:7px;color:var(--tx3);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;}
.mk-v{font-size:17px;font-weight:800;}
.dch{position:relative;height:200px;margin-bottom:14px;}
.formula{background:var(--s2);border:1px solid var(--brd);border-radius:7px;padding:12px;font-family:var(--mono);font-size:9px;color:var(--tx2);line-height:2.2;}

/* SEAS */
.seas-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin-top:10px;}
.sm{border-radius:6px;padding:6px 4px;text-align:center;}
.sm-l{font-family:var(--mono);font-size:7px;color:var(--tx3);margin-bottom:3px;}
.sm-v{font-family:var(--mono);font-size:11px;font-weight:700;}

/* LINEE/CATEGORIE */
.linee-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:10px;}
.linea-row{background:var(--s2);border:1px solid var(--brd);border-radius:8px;padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;}
.linea-nm{font-size:12px;font-weight:700;}
.linea-st{font-family:var(--mono);font-size:8px;color:var(--tx3);margin-top:2px;}
.linea-in{background:var(--s1);border:1px solid var(--brd);color:var(--ylw);padding:5px 8px;border-radius:6px;font-family:var(--mono);font-size:12px;width:70px;text-align:right;outline:none;font-weight:700;}

/* ORDERS */
.ord-card{background:var(--s1);border:1px solid var(--brd);border-radius:11px;padding:16px 18px;margin-bottom:12px;}
.ord-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:10px;}

/* RECOMMEND */
.rec-grid{display:flex;flex-direction:column;gap:8px;}
.rec-card{background:var(--s1);border:1px solid var(--brd);border-radius:10px;padding:12px 16px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;cursor:pointer;transition:all .15s;}
.rec-card:hover{background:var(--s2);border-color:rgba(184,221,232,.3);}
.rec-card.push{border-left:3px solid var(--grn);}
.rec-card.drop{border-left:3px solid var(--red);}
.rec-ico{font-size:18px;}
.rec-info{min-width:0;}
.rec-cod{font-family:var(--mono);font-size:11px;color:var(--sky);font-weight:700;}
.rec-desc{font-size:12px;font-weight:600;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rec-meta{font-family:var(--mono);font-size:9px;color:var(--tx3);margin-top:3px;}
.rec-score-l{font-family:var(--mono);font-size:7px;color:var(--tx3);text-transform:uppercase;letter-spacing:1px;}
.rec-score{font-family:var(--mono);font-size:15px;font-weight:800;text-align:right;}

/* PRESENT */
.present{position:fixed;inset:0;z-index:900;background:var(--bg);display:none;flex-direction:column;padding:36px;overflow:auto;}
.present.on{display:flex;}
.pres-title{font-size:34px;font-weight:900;background:linear-gradient(90deg,var(--sky),var(--sky2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:4px;}
.pres-krow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px;}
.pres-kpi{background:rgba(255,255,255,.04);border:1px solid var(--brd);border-radius:18px;padding:28px;}
.pres-kpi-l{font-family:var(--mono);font-size:10px;color:var(--tx3);text-transform:uppercase;letter-spacing:2px;margin-bottom:10px;}
.pres-kpi-v{font-size:52px;font-weight:900;line-height:1;}
.pres-kpi-d{font-family:var(--mono);font-size:12px;color:var(--tx2);margin-top:6px;}

/* LOADING */
.lov{position:fixed;inset:0;z-index:800;background:rgba(10,24,48,.92);backdrop-filter:blur(8px);display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;}
.lov.on{display:flex;}
.lsp{width:38px;height:38px;border:3px solid var(--brd);border-top-color:var(--sky);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.ltxt{font-family:var(--mono);font-size:12px;color:var(--sky);letter-spacing:1px;}
.lsub{font-size:11px;color:var(--tx2);}

/* TOAST */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--s2);border:1px solid var(--brd2);border-radius:10px;padding:11px 18px;font-size:12px;color:var(--tx);box-shadow:0 8px 24px rgba(0,0,0,.5);z-index:9999;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;}
.toast.on{opacity:1;transform:translateX(-50%) translateY(-4px);}

/* IMPORT HERO (one-click) */
.import-hero{text-align:center;padding:42px 32px;background:linear-gradient(135deg,var(--s1) 0%,var(--s2) 100%);border:1px solid var(--brd2);position:relative;overflow:hidden;margin-bottom:14px;}
.import-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--vi),var(--sky));}
.import-icon{font-size:52px;margin-bottom:14px;filter:drop-shadow(0 4px 12px rgba(85,72,176,.3));}
.import-title{font-size:20px;font-weight:800;margin-bottom:8px;}
.import-sub{font-size:12px;color:var(--tx2);margin-bottom:24px;line-height:1.7;}
.import-path{font-family:var(--mono);font-size:10px;color:var(--sky);background:rgba(184,221,232,.07);padding:3px 10px;border-radius:5px;display:inline-block;border:1px solid rgba(184,221,232,.2);}
.btn-import-big{font-size:15px!important;padding:16px 36px!important;font-weight:800!important;letter-spacing:.5px;}
.import-files-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:22px;text-align:left;}
.import-file-row{background:var(--s2);border:1px solid var(--brd);padding:10px 14px;border-radius:8px;display:flex;align-items:center;gap:10px;font-size:11px;flex-wrap:wrap;}
.import-file-row.ok{border-color:rgba(74,222,128,.4);}
.import-file-row.miss{border-color:rgba(248,113,113,.3);opacity:.6;}
.import-file-row .ifr-ico{font-size:16px;}
.import-file-row .ifr-name{font-family:var(--mono);font-weight:700;color:var(--sky);}
.import-file-row .ifr-meta{font-size:9px;color:var(--tx3);font-family:var(--mono);margin-left:auto;}
.import-file-row .ifr-mtime{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ylw);background:rgba(251,191,36,.10);padding:3px 8px;border-radius:5px;border:1px solid rgba(251,191,36,.30);width:100%;margin-top:4px;display:flex;align-items:center;gap:6px;letter-spacing:.2px;}
.import-file-row .ifr-mtime.stale{color:var(--red);background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.45);font-weight:800;animation:mtimePulse 1.6s ease-in-out infinite;}
@keyframes mtimePulse{0%,100%{box-shadow:0 0 0 0 rgba(248,113,113,0);}50%{box-shadow:0 0 0 3px rgba(248,113,113,.18);}}
details.adv-mode{margin-top:14px;background:var(--s1);border:1px solid var(--brd);border-radius:10px;}
details.adv-mode summary{padding:12px 16px;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--tx2);user-select:none;list-style:none;display:flex;align-items:center;gap:8px;}
details.adv-mode summary::-webkit-details-marker{display:none;}
details.adv-mode summary::before{content:'▶';display:inline-block;transition:transform .2s;font-size:9px;color:var(--tx3);}
details.adv-mode[open] summary::before{transform:rotate(90deg);}
details.adv-mode summary:hover{color:var(--sky);}
details.adv-mode > div{padding:14px 18px 18px;border-top:1px solid var(--brd);}

/* USER MENU + ROLE BADGE */
.user-chip{position:relative;}
.role-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-family:var(--mono);font-size:7px;text-transform:uppercase;letter-spacing:1px;margin-left:4px;background:rgba(167,139,250,.18);color:var(--pur);border:1px solid rgba(167,139,250,.35);}
.role-badge.admin{background:rgba(248,113,113,.15);color:var(--red);border-color:rgba(248,113,113,.4);}
.user-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--s1);border:1px solid var(--brd2);border-radius:10px;min-width:240px;box-shadow:0 12px 32px rgba(0,0,0,.5);z-index:400;display:none;overflow:hidden;}
.user-menu.on{display:block;}
.um-head{padding:14px 16px 12px;border-bottom:1px solid var(--brd);}
.um-head-name{font-size:13px;font-weight:700;color:var(--tx);}
.um-head-uname{font-family:var(--mono);font-size:9px;color:var(--tx3);margin-top:2px;letter-spacing:1px;}
.um-item{padding:10px 16px;font-size:12px;color:var(--tx2);cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .12s;}
.um-item:hover{background:var(--s2);color:var(--sky);}
.um-item.danger:hover{color:var(--red);}
.um-sep{height:1px;background:var(--brd);margin:0;}

/* MODAL UTENTI (più largo) */
.mo-box.wide{max-width:1100px;}
.utbl{width:100%;border-collapse:collapse;font-size:12px;}
.utbl th{background:var(--s2);font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:1px;color:var(--tx2);padding:9px 11px;text-align:left;border-bottom:1px solid var(--brd);}
.utbl td{padding:9px 11px;border-bottom:1px solid rgba(46,74,120,.25);}
.utbl tr:hover{background:var(--s2);}
.utbl .acts{display:flex;gap:6px;}
.utbl .filter-pill{display:inline-block;background:var(--s3);padding:1px 6px;border-radius:4px;font-family:var(--mono);font-size:9px;color:var(--tx2);margin-right:3px;}
.user-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px;}
.user-form .full{grid-column:1/-1;}
.user-form .lbl{margin-bottom:5px;}
.user-form textarea{width:100%;background:var(--s2);border:1px solid var(--brd);color:var(--tx);padding:8px 10px;border-radius:7px;font-family:var(--mono);font-size:11px;outline:none;resize:vertical;min-height:80px;}
.user-form textarea:focus{border-color:var(--sky);}
.helper-row{font-size:10px;color:var(--tx3);margin-top:4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.chip-add{display:inline-block;padding:2px 7px;background:var(--s3);border:1px solid var(--brd);border-radius:11px;font-family:var(--mono);font-size:9px;color:var(--sky);cursor:pointer;transition:all .12s;}
.chip-add:hover{background:var(--sky);color:var(--bg);}

/* COLONNE RESIZABLE (forecast/strategia) */
.col-resizer{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;user-select:none;z-index:5;background:transparent;}
.col-resizer:hover{background:rgba(184,221,232,.55);}
.col-resizer:active{background:var(--sky);}
table.resized{table-layout:fixed;width:100%;}
table.resized td,table.resized th{overflow:hidden;text-overflow:ellipsis;}
body.col-resizing,body.col-resizing *{cursor:col-resize!important;user-select:none;}

/* SCROLL */
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:var(--s1);}
::-webkit-scrollbar-thumb{background:var(--brd2);border-radius:2px;}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  /* Mostra hamburger, nascondi menu desktop */
  .ham-btn{display:flex;}
  .nav-menu{display:none;}
  .wh-sel{display:none;}

  .g2,.g3,.g4,.krow,.ekrow,.cg,.pres-krow{grid-template-columns:1fr;}
  .mo-kpis{grid-template-columns:repeat(2,1fr);}
  .page{padding:20px 14px;}
  .seas-grid{grid-template-columns:repeat(6,1fr);}
  .rec-card{grid-template-columns:auto 1fr;}
}

/* ═══════════════════════════════════════════════════════════════════════
   DYNAMICS 365 / FLUENT UI — Dark
   Top horizontal nav · Pivot tabs · Soft cards · Blue accent
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Base ── */
*,*::before,*::after{border-radius:4px;}
body{
  font-family:'Segoe UI','Inter',-apple-system,sans-serif!important;
  color:var(--tx)!important;background:var(--bg)!important;
  font-feature-settings:"tnum"!important;
}
body::before,body::after{display:none!important;}

/* ── NAV — TOP HORIZONTAL (Fluent app header) ── */
nav{
  background:var(--s1)!important;backdrop-filter:none!important;
  position:sticky!important;top:0!important;left:auto!important;bottom:auto!important;
  width:auto!important;height:48px!important;flex-direction:row!important;
  align-items:center!important;justify-content:flex-start!important;
  padding:0 16px!important;gap:0!important;border:none!important;
  border-bottom:1px solid var(--brd)!important;
  box-shadow:0 1px 3px rgba(0,0,0,.3)!important;z-index:200!important;
  border-radius:0!important;
}
.brand{padding:0 16px 0 0!important;border:none!important;margin:0!important;display:flex!important;align-items:center!important;gap:10px!important;flex-shrink:0!important;}
.brand-svg{width:28px!important;height:28px!important;filter:drop-shadow(0 0 4px rgba(76,194,255,.3))!important;}
.brand-name{
  background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:var(--tx)!important;color:var(--tx)!important;
  font-family:'Segoe UI','Inter',sans-serif!important;font-weight:600!important;letter-spacing:-.2px!important;
  font-size:14px!important;text-transform:none!important;font-style:normal!important;
}
.brand-sub{
  font-family:'Segoe UI','Inter',sans-serif!important;color:var(--tx3)!important;letter-spacing:0!important;
  font-size:11px!important;text-transform:none!important;font-weight:400!important;
}

/* Pivot menu Fluent: testo pulito + underline su attivo */
.nav-menu{
  flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;
  padding:0!important;gap:0!important;flex:1!important;flex-wrap:nowrap!important;overflow-x:auto!important;
  height:100%!important;border-left:1px solid var(--brd)!important;margin-left:8px!important;padding-left:8px!important;
}
.mnu{
  background:transparent!important;border:none!important;color:var(--tx2)!important;
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-weight:400!important;
  text-transform:none!important;letter-spacing:0!important;font-size:13px!important;
  padding:0 14px!important;height:100%!important;display:flex!important;align-items:center!important;
  position:relative!important;border-radius:0!important;flex-shrink:0!important;
}
.mnu:hover{background:var(--s2)!important;color:var(--tx)!important;}
.mnu.on{background:transparent!important;color:var(--sky)!important;font-weight:600!important;}
.mnu.on::after{
  content:''!important;position:absolute;left:14px;right:14px;bottom:0;height:2px;background:var(--sky);
}
.mnu::before{display:none!important;}

/* Right side: warehouse + theme + user */
.nav-right{
  flex-direction:row!important;gap:8px!important;padding:0!important;border:none!important;
  align-items:center!important;flex-shrink:0!important;height:100%!important;
}
.wh-sel{
  background:var(--s2)!important;border:1px solid var(--brd)!important;color:var(--sky)!important;
  font-family:'Segoe UI',sans-serif!important;letter-spacing:0!important;
  font-size:11px!important;text-transform:none!important;padding:5px 10px!important;width:auto!important;
  border-radius:3px!important;font-weight:500!important;
}
.theme-tog{background:transparent!important;border:1px solid transparent!important;color:var(--tx2)!important;width:32px!important;height:32px!important;border-radius:3px!important;}
.theme-tog:hover{border-color:var(--brd)!important;color:var(--tx)!important;background:var(--s2)!important;transform:none!important;}
.user-chip{
  background:transparent!important;border:none!important;border-top:none!important;
  font-family:'Segoe UI',sans-serif!important;font-style:normal!important;font-size:12px!important;
  padding:4px 10px 4px 6px!important;color:var(--tx)!important;width:auto!important;
  border-radius:18px!important;
}
.user-chip:hover{background:var(--s2)!important;}
.user-av{background:var(--sky)!important;color:#000!important;font-family:'Segoe UI',sans-serif!important;font-weight:600!important;width:28px!important;height:28px!important;border-radius:50%!important;}
.role-badge{background:var(--s3)!important;border:none!important;color:var(--pur)!important;font-family:'Segoe UI',sans-serif!important;font-size:9px!important;padding:2px 6px!important;border-radius:3px!important;}
.role-badge.admin{background:rgba(248,81,73,.15)!important;color:var(--red)!important;}

.user-menu{background:var(--s1)!important;border:1px solid var(--brd2)!important;left:auto!important;right:0!important;top:calc(100% + 4px)!important;border-radius:4px!important;box-shadow:0 4px 16px rgba(0,0,0,.4)!important;}

/* Hamburger nascosto su desktop */
.ham-btn{display:none!important;border-radius:3px!important;}

/* ── MAIN ── */
main{margin-left:0!important;position:relative!important;z-index:1!important;}
.page{padding:24px 32px!important;max-width:1600px!important;margin:0 auto!important;}

/* ── HEADER PAGINA — Fluent command bar style ── */
.ph{
  margin-bottom:24px!important;align-items:flex-end!important;
  padding-bottom:16px!important;border-bottom:1px solid var(--brd)!important;gap:24px!important;
}
.ph-step{
  font-family:'Segoe UI','Inter',sans-serif!important;color:var(--tx3)!important;
  letter-spacing:.5px!important;font-size:11px!important;font-weight:400!important;
  text-transform:none!important;margin-bottom:6px!important;
}
.ph-step::before{content:''!important;}
.ph-title{
  font-family:'Segoe UI','Inter',sans-serif!important;font-weight:600!important;font-style:normal!important;
  text-transform:none!important;letter-spacing:-.5px!important;
  font-size:28px!important;line-height:1.1!important;color:var(--tx)!important;margin-bottom:4px!important;
}
.ph-sub{
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;
  color:var(--tx2)!important;font-size:13px!important;line-height:1.5!important;font-weight:400!important;
}

.cfg-sub::first-letter{font-family:inherit!important;font-size:inherit!important;float:none!important;color:inherit!important;padding:0!important;}

/* ── BUTTONS — Fluent style (rounded 4px, primary blu pieno) ── */
.btn{
  border:1px solid currentColor!important;
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-weight:600!important;
  font-size:13px!important;letter-spacing:0!important;text-transform:none!important;padding:6px 16px!important;
  transition:all .1s ease!important;border-radius:4px!important;height:32px!important;display:inline-flex!important;align-items:center!important;
}
.btn-p{background:var(--sky)!important;color:#000!important;border-color:var(--sky)!important;}
.btn-p:hover{background:var(--sky2)!important;border-color:var(--sky2)!important;transform:none!important;box-shadow:none!important;}
.btn-p:disabled{background:var(--s3)!important;color:var(--tx3)!important;border-color:var(--s3)!important;}
.btn-o{background:transparent!important;color:var(--tx)!important;border-color:var(--brd2)!important;}
.btn-o:hover{background:var(--s2)!important;color:var(--tx)!important;border-color:var(--tx2)!important;}
.btn-sky{background:transparent!important;color:var(--sky)!important;border-color:var(--sky)!important;}
.btn-sky:hover{background:rgba(76,194,255,.1)!important;color:var(--sky2)!important;border-color:var(--sky2)!important;}
.btn-grn{background:transparent!important;color:var(--grn)!important;border-color:var(--grn)!important;}
.btn-grn:hover{background:rgba(63,185,80,.1)!important;}
.btn-sm{font-size:11px!important;padding:4px 10px!important;height:26px!important;}
.btn-import-big{font-size:14px!important;padding:10px 24px!important;height:auto!important;}

/* ── FORMS — Fluent input ── */
.fi,.login-fi,.lt-in,.qty-in,.linea-in{
  background:var(--s2)!important;border:1px solid var(--brd)!important;
  color:var(--tx)!important;font-family:'Segoe UI','Inter',sans-serif!important;padding:7px 11px!important;font-size:13px!important;
  border-radius:3px!important;height:32px!important;transition:border-color .1s,box-shadow .1s!important;
}
.fi:focus,.login-fi:focus{border-color:var(--sky)!important;outline:none!important;box-shadow:0 0 0 1px var(--sky)!important;}
.lbl{
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-weight:600!important;
  color:var(--tx)!important;letter-spacing:0!important;text-transform:none!important;
  font-size:12px!important;margin-bottom:4px!important;
}
.lbl::before,.lbl::after{display:none!important;}

/* ── CARDS — Fluent surface elevated ── */
.card,.kpi,.ek,.ord-card,.sup-card,.rec-card,.import-hero,.cp{
  background:var(--s1)!important;border:1px solid var(--brd)!important;
  position:relative!important;overflow:visible!important;padding:20px!important;
  border-radius:6px!important;box-shadow:0 1px 3px rgba(0,0,0,.2)!important;
}
.card::before,.kpi::before,.ek::before,.card::after,.kpi::after,.ek::after{display:none!important;}

/* KPI tiles Fluent */
.krow,.ekrow{gap:12px!important;border:none!important;}
.kpi,.ek{
  border:1px solid var(--brd)!important;border-radius:6px!important;
  padding:16px 18px!important;background:var(--s1)!important;
  transition:border-color .15s,box-shadow .15s!important;
}
.kpi:hover,.ek:hover{border-color:var(--sky)!important;box-shadow:0 2px 8px rgba(76,194,255,.15)!important;}

.kpi-l,.ek-l,.pres-kpi-l,.mk-l,.cp-s{
  font-family:'Segoe UI','Inter',sans-serif!important;text-transform:none!important;
  letter-spacing:0!important;color:var(--tx2)!important;font-weight:600!important;font-size:12px!important;margin-bottom:8px!important;
}
.kpi-v,.ek-v,.pres-kpi-v,.mk-v{
  font-family:'Segoe UI','Inter',sans-serif!important;font-weight:700!important;letter-spacing:-1px!important;
  font-size:32px!important;line-height:1.1!important;color:var(--tx)!important;
  font-feature-settings:"tnum"!important;
}
.ek-v{font-size:36px!important;}
.ek-d{font-family:'Segoe UI','Inter',sans-serif!important;font-size:12px!important;color:var(--tx2)!important;letter-spacing:0!important;font-weight:400!important;}
.pres-kpi-v{font-size:56px!important;}

.card-t{font-family:'Segoe UI','Inter',sans-serif!important;font-weight:600!important;font-size:14px!important;color:var(--tx)!important;}
.card-h{align-items:center!important;border-bottom:1px solid var(--brd)!important;padding-bottom:10px!important;margin-bottom:16px!important;}
.card-s{font-family:'Segoe UI','Inter',sans-serif!important;font-size:11px!important;color:var(--tx3)!important;text-transform:none!important;letter-spacing:0!important;font-weight:400!important;}

/* ── TABS — Fluent Pivot (underline blue active) ── */
.tabs{border-bottom:1px solid var(--brd)!important;gap:0!important;padding-bottom:0!important;}
.tab{
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;
  text-transform:none!important;letter-spacing:0!important;font-size:13px!important;
  font-weight:500!important;border-bottom:2px solid transparent!important;
  padding:10px 14px!important;color:var(--tx2)!important;background:transparent!important;
  border-radius:0!important;transition:color .12s,border-color .12s!important;
}
.tab.on{background:transparent!important;color:var(--sky)!important;border-bottom-color:var(--sky)!important;font-weight:600!important;}
.tab:hover:not(.on){color:var(--tx)!important;background:transparent!important;border-bottom-color:var(--brd2)!important;}

/* ── TABLES — Fluent data grid ── */
table{font-family:'Segoe UI','Inter',sans-serif!important;font-size:13px!important;}
thead th{
  background:var(--s2)!important;border-bottom:1px solid var(--brd)!important;border-top:none!important;
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-weight:600!important;
  text-transform:none!important;letter-spacing:0!important;font-size:12px!important;
  color:var(--tx)!important;padding:10px 12px!important;
}
tbody td{border-bottom:1px solid var(--brd)!important;padding:8px 12px!important;color:var(--tx)!important;font-size:13px!important;}
tbody tr{transition:background .12s!important;position:relative!important;}
tbody tr:hover{
  background:rgba(76,194,255,.08)!important;
  box-shadow:inset 3px 0 0 var(--sky)!important;
}
.mn{font-family:'Cascadia Code','Consolas','IBM Plex Mono',monospace!important;}

#tp-urg thead th,#tp-pia thead th,#tp-ok thead th,#tp-zero thead th,#tp-scad thead th,#p7 thead th{
  background:var(--s2)!important;border-top:none!important;border-bottom:1px solid var(--brd)!important;
  box-shadow:0 1px 0 var(--brd),0 4px 8px rgba(0,0,0,.4)!important;
  color:var(--tx)!important;
}

/* ── BADGES — Fluent status pills (pillole arrotondate) ── */
.sem,.cfg-badge{
  font-family:'Segoe UI','Inter',sans-serif!important;text-transform:none!important;
  letter-spacing:0!important;font-weight:600!important;font-size:11px!important;
  padding:2px 8px!important;border-radius:10px!important;
}
.sem-r{background:rgba(248,81,73,.15)!important;color:var(--red)!important;border:1px solid rgba(248,81,73,.4)!important;}
.sem-y{background:rgba(210,153,34,.15)!important;color:var(--ylw)!important;border:1px solid rgba(210,153,34,.4)!important;}
.sem-g{background:rgba(63,185,80,.15)!important;color:var(--grn)!important;border:1px solid rgba(63,185,80,.4)!important;}
.sem-b{background:rgba(76,194,255,.15)!important;color:var(--sky)!important;border:1px solid rgba(76,194,255,.4)!important;}
.sem-k{background:var(--s3)!important;color:var(--tx2)!important;border:1px solid var(--brd2)!important;}
.sem-pur{background:rgba(163,113,247,.15)!important;color:var(--pur)!important;border:1px solid rgba(163,113,247,.4)!important;}
.badge-auto{background:rgba(63,185,80,.15)!important;color:var(--grn)!important;border:1px solid rgba(63,185,80,.4)!important;border-radius:10px!important;}
.badge-man{background:rgba(163,113,247,.15)!important;color:var(--pur)!important;border:1px solid rgba(163,113,247,.4)!important;border-radius:10px!important;}
.badge-ai{background:rgba(76,194,255,.15)!important;color:var(--sky)!important;border:1px solid rgba(76,194,255,.4)!important;border-radius:10px!important;}

.abc{
  font-family:'Segoe UI','Inter',sans-serif!important;font-weight:700!important;font-size:11px!important;
  width:24px!important;height:24px!important;border-radius:4px!important;
}
.abc-A{background:var(--grn)!important;color:#000!important;border:none!important;}
.abc-B{background:var(--ylw)!important;color:#000!important;border:none!important;}
.abc-C{background:var(--red)!important;color:#fff!important;border:none!important;}

/* ── LOGIN — Fluent sign-in card ── */
.login-wrap{background:var(--bg)!important;}
.login-card{
  background:var(--s1)!important;border:1px solid var(--brd)!important;padding:40px 36px!important;
  text-align:center;position:relative;border-radius:8px!important;
  box-shadow:0 8px 32px rgba(0,0,0,.4)!important;
}
.login-card::before,.login-card::after{display:none!important;}
.login-svg{width:56px!important;height:56px!important;filter:drop-shadow(0 0 8px rgba(76,194,255,.3))!important;}
.login-title{
  background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:var(--tx)!important;
  color:var(--tx)!important;font-family:'Segoe UI','Inter',sans-serif!important;font-weight:600!important;
  font-size:24px!important;letter-spacing:-.5px!important;text-transform:none!important;font-style:normal!important;
}
.login-sub{font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;color:var(--tx2)!important;letter-spacing:0!important;font-size:13px!important;text-transform:none!important;font-weight:400!important;}
.login-btn{
  background:var(--sky)!important;color:#000!important;border:1px solid var(--sky)!important;
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-weight:600!important;
  text-transform:none!important;letter-spacing:0!important;font-size:14px!important;
}
.login-btn:hover{background:var(--sky2)!important;}
.login-foot{font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;color:var(--tx3)!important;letter-spacing:0!important;font-size:11px!important;}

/* ── IMPORT HERO ── */
.import-hero{background:var(--s1)!important;border:1px solid var(--brd)!important;padding:40px 32px!important;text-align:center;border-radius:8px!important;}
.import-hero::before{display:none!important;}
.import-icon{font-size:44px!important;margin-bottom:14px!important;filter:none!important;opacity:.9!important;}
.import-title{
  font-family:'Segoe UI','Inter',sans-serif!important;text-transform:none!important;letter-spacing:-.5px!important;
  color:var(--tx)!important;font-size:22px!important;font-weight:600!important;margin-bottom:10px!important;
}
.import-sub{
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-size:13px!important;
  color:var(--tx2)!important;line-height:1.5!important;max-width:560px!important;margin:0 auto 20px!important;
}
.import-path{background:var(--s2)!important;border:1px solid var(--brd)!important;color:var(--sky)!important;font-family:'Cascadia Code','Consolas',monospace!important;font-size:11px!important;padding:2px 8px!important;border-radius:3px!important;}

/* ── DETAILS ── */
details.adv-mode{background:var(--s1)!important;border:1px solid var(--brd)!important;border-radius:6px!important;}
details.adv-mode summary{
  font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-size:13px!important;
  color:var(--tx)!important;letter-spacing:0!important;text-transform:none!important;font-weight:500!important;padding:12px 16px!important;
}
details.adv-mode summary:hover{color:var(--sky)!important;background:var(--s2)!important;}
details.adv-mode[open] summary{color:var(--sky)!important;background:var(--s2)!important;border-bottom:1px solid var(--brd)!important;}
details.adv-mode > div{border-top:none!important;padding:16px!important;}

/* ── MOBILE DRAWER ── */
.mob-drawer .mob-panel{background:var(--s1)!important;border-right:1px solid var(--brd)!important;}
.mob-link{font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-size:14px!important;text-transform:none!important;letter-spacing:0!important;border-left:3px solid transparent!important;border-radius:0!important;}
.mob-link.on{background:var(--s2)!important;color:var(--sky)!important;border-left-color:var(--sky)!important;}
.mob-brand-name{
  background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:var(--tx)!important;
  color:var(--tx)!important;font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;
  text-transform:none!important;font-size:15px!important;font-weight:600!important;
}

/* ── SOURCE / UPLOAD ── */
.src-card{background:var(--s1)!important;border:1px solid var(--brd)!important;padding:20px!important;border-radius:6px!important;transition:border-color .15s,box-shadow .15s!important;}
.src-card:hover{border-color:var(--sky)!important;box-shadow:0 2px 8px rgba(76,194,255,.1)!important;transform:none!important;}
.src-card.sel{border-color:var(--sky)!important;background:var(--s2)!important;}
.up-card{background:var(--s1)!important;border:1px solid var(--brd)!important;padding:18px!important;border-radius:6px!important;}
.up-card.done{border-color:var(--grn)!important;}
.chk{background:var(--sky)!important;color:#000!important;font-family:'Segoe UI','Inter',sans-serif!important;font-weight:700!important;border-radius:50%!important;}

/* ── MODAL ── */
.mo{background:rgba(27,27,31,.85)!important;backdrop-filter:blur(4px)!important;}
.mo-box{background:var(--s1)!important;border:1px solid var(--brd2)!important;border-radius:8px!important;box-shadow:0 16px 48px rgba(0,0,0,.6)!important;}
.mo-h{border-bottom:1px solid var(--brd)!important;background:var(--s1)!important;padding:18px 22px!important;}
.mo-t{font-family:'Segoe UI','Inter',sans-serif!important;text-transform:none!important;letter-spacing:-.3px!important;color:var(--tx)!important;font-size:18px!important;font-weight:600!important;}
.mo-c{font-family:'Cascadia Code','Consolas',monospace!important;font-style:normal!important;color:var(--sky)!important;font-size:11px!important;letter-spacing:0!important;}

/* ── LOADING / TOAST ── */
.lov{background:rgba(27,27,31,.95)!important;}
.lsp{border-color:var(--brd)!important;border-top-color:var(--sky)!important;}
.ltxt{font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;color:var(--tx)!important;text-transform:none!important;letter-spacing:0!important;font-size:14px!important;font-weight:500!important;}
.lsub{font-family:'Segoe UI','Inter',sans-serif!important;font-size:12px!important;color:var(--tx2)!important;}
.toast{background:var(--s1)!important;border:1px solid var(--brd2)!important;color:var(--tx)!important;font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;font-weight:500!important;padding:10px 16px!important;border-radius:4px!important;box-shadow:0 4px 16px rgba(0,0,0,.4)!important;}

/* ── MISC ── */
.abc-legend{background:var(--s1)!important;border:1px solid var(--brd)!important;padding:12px 16px!important;border-radius:6px!important;}
.formula{background:var(--s2)!important;border:1px solid var(--brd)!important;color:var(--tx2)!important;font-family:'Cascadia Code','Consolas',monospace!important;border-radius:4px!important;}
.linea-row{background:var(--s1)!important;border:1px solid var(--brd)!important;border-radius:4px!important;}
.sm{background:var(--s1)!important;border-radius:4px!important;}
.sm-l{font-family:'Segoe UI','Inter',sans-serif!important;color:var(--tx2)!important;}
.sm-v{font-family:'Segoe UI','Inter',sans-serif!important;font-weight:700!important;font-size:14px!important;}
.cfg-title{font-family:'Segoe UI','Inter',sans-serif!important;text-transform:none!important;letter-spacing:-.2px!important;color:var(--tx)!important;font-weight:600!important;font-size:15px!important;}
.cfg-sub{font-family:'Segoe UI','Inter',sans-serif!important;font-size:12px!important;color:var(--tx2)!important;}
.rec-card.push{border-left:3px solid var(--grn)!important;}
.rec-card.drop{border-left:3px solid var(--red)!important;}
.rec-cod{font-family:'Cascadia Code','Consolas',monospace!important;color:var(--sky)!important;}
.rec-desc{font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-size:13px!important;font-weight:500!important;}
.rec-score{font-family:'Segoe UI','Inter',sans-serif!important;color:var(--ylw)!important;font-size:16px!important;font-weight:700!important;}
.sup-h{background:var(--s2)!important;border-radius:6px 6px 0 0!important;}
.sup-h:hover{background:var(--s3)!important;}
.sup-n{font-family:'Segoe UI','Inter',sans-serif!important;font-size:14px!important;font-weight:600!important;}

/* col resizer */
.col-resizer:hover{background:var(--sky)!important;}
.col-resizer:active{background:var(--sky2)!important;}

/* scrollbar */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--brd2);border-radius:5px;border:2px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:var(--sky);}

/* present mode */
.present{background:var(--bg)!important;padding:48px!important;}
.pres-title{
  background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:var(--tx)!important;
  color:var(--tx)!important;font-family:'Segoe UI','Inter',sans-serif!important;font-weight:700!important;
  text-transform:none!important;letter-spacing:-1.5px!important;font-size:40px!important;
}
.pres-kpi{background:var(--s1)!important;border:1px solid var(--brd)!important;padding:28px!important;border-radius:6px!important;box-shadow:0 1px 3px rgba(0,0,0,.2)!important;}

.abc-leg-item{font-family:'Segoe UI','Inter',sans-serif!important;font-style:normal!important;font-size:12px!important;}

/* ── FIX FORECAST/RICERCA: full-width pagina + colonna desc/forn cap ragionevole ── */
.page#p4,.page#p5oc,.page#p7{max-width:none!important;padding-left:24px!important;padding-right:24px!important;margin:0!important;}

/* GIACENZA + IN ARRIVO: font sans Segoe più grande, più leggibile dei numeri monospace */
td.giac-v{
  font-family:'Segoe UI','Inter',sans-serif!important;
  font-size:16px!important;font-weight:700!important;color:var(--tx)!important;
  letter-spacing:-.2px!important;font-feature-settings:"tnum"!important;
}
td.inarr-v{
  font-family:'Segoe UI','Inter',sans-serif!important;
  font-size:15px!important;font-weight:600!important;
  letter-spacing:-.2px!important;font-feature-settings:"tnum"!important;line-height:1.2!important;
}
td.inarr-v .arr-qty{color:var(--ylw)!important;font-weight:700!important;font-size:16px!important;}
td.inarr-v .arr-date{display:block;font-family:'Segoe UI','Inter',sans-serif!important;font-size:11px!important;color:var(--sky)!important;font-weight:500!important;margin-top:2px;letter-spacing:0!important;}

/* ── RESPONSIVE — hamburger su tablet/mobile ── */
@media(max-width:900px){
  nav{padding:0 12px!important;}
  .nav-menu{display:none!important;}
  .ham-btn{display:flex!important;}
  .wh-sel{display:none!important;}
  .page{padding:18px 14px!important;}
}

/* ── LIGHT THEME — Fluent Light ── */
body.light-theme{
  --bg:#faf9f8;            /* Fluent neutral light */
  --s1:#ffffff;
  --s2:#f3f2f1;
  --s3:#edebe9;
  --brd:#e1dfdd;
  --brd2:#c8c6c4;
  --tx:#201f1e;
  --tx2:#605e5c;
  --tx3:#a19f9d;
  --sky:#0078d4;           /* Microsoft Dynamics blue */
  --sky2:#106ebe;
  --red:#a4262c;
  --ylw:#797673;
  --grn:#107c10;
  --pur:#5c2d91;
  --grid:rgba(0,120,212,.025);
}
body.light-theme nav{background:#fff!important;border-bottom-color:var(--brd)!important;box-shadow:0 1px 3px rgba(0,0,0,.05)!important;}
body.light-theme thead th,body.light-theme #tp-urg thead th,body.light-theme #tp-pia thead th,body.light-theme #tp-ok thead th,body.light-theme #tp-zero thead th,body.light-theme #tp-scad thead th,body.light-theme #p7 thead th{background:#f3f2f1!important;color:var(--tx)!important;}
body.light-theme tbody tr:hover{background:rgba(0,120,212,.06)!important;box-shadow:inset 3px 0 0 var(--sky)!important;}
body.light-theme .login-card,body.light-theme .mo-box{box-shadow:0 8px 32px rgba(0,0,0,.1)!important;}
body.light-theme .btn-p{color:#fff!important;}
body.light-theme .login-btn{color:#fff!important;}
body.light-theme .chk{color:#fff!important;}
body.light-theme .user-av{color:#fff!important;}
body.light-theme .abc-A,body.light-theme .abc-B{color:#fff!important;}

/* version bump nel brand */
.brand-name::after{content:''!important;}

/* page numero rimosso */
.page::before{display:none!important;}

/* ═══════════════════════════════════════════════════════════════
   MOBILE & TABLET — Responsive layout
   ═══════════════════════════════════════════════════════════════ */

/* ── TABLET (641px - 1024px) ── */
@media(min-width:641px) and (max-width:1024px){
  .page{padding:16px 14px!important;max-width:100%!important;}
  .page#p4,.page#p5oc,.page#p7{padding-left:14px!important;padding-right:14px!important;}
  /* Tabelle compatte */
  table{font-size:11px!important;}
  thead th{padding:6px 4px!important;font-size:10px!important;}
  tbody td{padding:5px 4px!important;}
  /* Sup-card più compatte */
  .sup-h{padding:8px 10px!important;}
  .sup-n{font-size:12px!important;}
  /* Filtri */
  .fbar{flex-wrap:wrap!important;gap:6px!important;}
  .fi{min-width:120px!important;font-size:11px!important;}
  /* KPI row */
  .krow{gap:8px!important;}
  .kbox{padding:10px 12px!important;}
  /* Toolbar fornitori */
  #p4 .btn{font-size:11px!important;padding:5px 9px!important;}
}

/* ── MOBILE (≤640px) ── */
@media(max-width:640px){
  body{font-size:13px;}
  .page{padding:12px 10px!important;max-width:100%!important;}
  .page#p4,.page#p5oc,.page#p7{padding-left:10px!important;padding-right:10px!important;}

  /* Header pagina compatto */
  .ph{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:14px!important;}
  .ph-title{font-size:18px!important;line-height:1.2!important;}
  .ph-step{font-size:9px!important;letter-spacing:1px!important;}
  .ph-sub{font-size:11px!important;}
  .ph-act{flex-wrap:wrap;gap:6px;justify-content:stretch;}
  .ph-act .btn{flex:1;font-size:12px!important;padding:8px 10px!important;min-width:0;}

  /* Su MOBILE: NASCONDI pagine non essenziali (mantieni solo p1 Dashboard, p4 Forecast) */
  body.is-mobile #p2,
  body.is-mobile #p3,
  body.is-mobile #p5,
  body.is-mobile #p5oc,
  body.is-mobile #p6,
  body.is-mobile #p7{display:none!important;}
  body.is-mobile .mob-link[data-mpage="2"],
  body.is-mobile .mob-link[data-mpage="3"],
  body.is-mobile .mob-link[data-mpage="5"],
  body.is-mobile .mob-link[data-mpage="6"],
  body.is-mobile .mob-link[data-mpage="7"],
  body.is-mobile .mob-link[data-mpage="8"]{display:none!important;}
  body.is-mobile .ph-act .btn{display:none!important;} /* Niente ricalcolo né excel su mobile */

  /* Su MOBILE: dentro Forecast tab, mantieni SOLO: zero, forn, ordini-in-corso embedded */
  body.is-mobile .tabs .tab[data-tab="urg"],
  body.is-mobile .tabs .tab[data-tab="pia"],
  body.is-mobile .tabs .tab[data-tab="ok"],
  body.is-mobile .tabs .tab[data-tab="cat"],
  body.is-mobile .tabs .tab[data-tab="scad"],
  body.is-mobile .tabs .tab[data-tab="abc"],
  body.is-mobile .tabs .tab[data-tab="seas"],
  body.is-mobile .tabs .tab[data-tab="ch"]{display:none!important;}
  body.is-mobile #tp-urg,
  body.is-mobile #tp-pia,
  body.is-mobile #tp-ok,
  body.is-mobile #tp-cat,
  body.is-mobile #tp-scad,
  body.is-mobile #tp-abc,
  body.is-mobile #tp-seas,
  body.is-mobile #tp-ch{display:none!important;}
  /* Su mobile: la prima tab visibile (zero) deve essere attiva di default */
  body.is-mobile .tabs .tab[data-tab="zero"]{display:inline-flex!important;}
  /* Nascondi anche elementi non utili su mobile dentro p4 */
  body.is-mobile .abc-legend,
  body.is-mobile #krow,
  body.is-mobile #mod-info{display:none!important;}

  /* Tabs compatte */
  .tabs{gap:4px!important;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;}
  .tab{font-size:11px!important;padding:6px 10px!important;white-space:nowrap;}

  /* Filtri */
  .fbar{flex-direction:column;align-items:stretch!important;gap:6px!important;}
  .fi{width:100%!important;font-size:12px!important;padding:8px 10px!important;}

  /* Tabelle: trasforma in card layout (riga = card verticale) */
  .tbl-wrap{overflow-x:visible!important;}
  .tbl-wrap table{display:block;width:100%;}
  .tbl-wrap thead{display:none;} /* Nasconde header */
  .tbl-wrap tbody{display:block;width:100%;}
  .tbl-wrap tbody tr{
    display:block;
    background:var(--s1);
    border:1px solid var(--brd);
    border-radius:10px;
    padding:10px 12px;
    margin-bottom:8px;
  }
  .tbl-wrap tbody tr:hover{background:var(--s1)!important;box-shadow:none!important;}
  .tbl-wrap tbody td{
    display:flex;justify-content:space-between;align-items:center;
    padding:3px 0!important;border:none!important;
    font-size:12px!important;
    gap:8px;
  }
  .tbl-wrap tbody td:before{
    content:attr(data-label);
    font-size:10px;color:var(--tx3);
    text-transform:uppercase;letter-spacing:.5px;
    font-weight:600;
    flex-shrink:0;
  }
  /* Le prime celle (cod e desc) si mostrano come header del card */
  .tbl-wrap tbody td:first-child{
    border-bottom:1px solid var(--brd)!important;
    padding-bottom:6px!important;margin-bottom:6px!important;
    font-weight:700;font-size:13px!important;
  }
  .tbl-wrap tbody td:first-child:before{display:none;}

  /* Sup-card mobile — più compatte */
  .sup-card{border-radius:8px;margin-bottom:6px;}
  .sup-h{padding:8px 10px!important;flex-wrap:nowrap!important;gap:6px;align-items:center;}
  .sup-n{font-size:12px!important;font-weight:700;line-height:1.2;}
  .sup-bs{gap:3px!important;flex-wrap:nowrap;flex-shrink:0;}
  .sup-bs .btn{font-size:10px!important;padding:3px 6px!important;}
  /* Le sub-b (badge urg/pia/ok) più piccole su mobile */
  .sup-bs .sub-b{padding:2px 5px!important;font-size:9px!important;}
  /* Nascondi PDF singolo fornitore (resta solo Stampa) su mobile */
  body.is-mobile .sup-bs .btn-sky{display:none!important;}
  body.is-mobile .sup-bs .btn-o{padding:3px 5px!important;}
  /* Sub-info compatta sotto al nome (LT/articoli/qord) */
  body.is-mobile .sup-h > div:first-child > div:last-child{
    font-size:9px!important;letter-spacing:0;margin-top:1px!important;
  }
  /* Quando espanso, il body deve essere compatto */
  body.is-mobile .sup-body.on{padding:6px 8px;}
  body.is-mobile .sup-body table{font-size:10px;}
  body.is-mobile .sup-body th,body.is-mobile .sup-body td{padding:3px 4px;}

  /* Toolbar fornitori (p4 #forn-list toolbar) */
  body.is-mobile #forn-list > div:first-child{
    flex-direction:column!important;
    align-items:stretch!important;
  }
  body.is-mobile #forn-list > div:first-child > div{
    flex-direction:column!important;
    width:100%;
  }
  body.is-mobile #forn-list > div:first-child .btn{
    width:100%!important;
    margin-bottom:4px;
    font-size:12px!important;
    padding:9px 10px!important;
  }
  /* Nasconde Excel/Storico su mobile, lascia PDF e cloud */
  body.is-mobile #forn-list .btn-grn,
  body.is-mobile #forn-list > div:first-child > div > button:nth-of-type(4){display:none!important;}

  /* Dashboard mobile */
  body.is-mobile .krow{flex-direction:column;gap:8px;}
  body.is-mobile .kbox{padding:12px 14px!important;}

  /* Sezione Ordini in corso embedded in Forecast (mobile) */
  body.is-mobile #mobile-oc-section{display:block!important;}

  /* Modali full-screen su mobile */
  .mo-box{max-width:96vw!important;max-height:94vh!important;border-radius:12px!important;}

  /* Login card */
  .login-card{padding:28px 22px!important;}

  /* Nav mobile: brand più piccolo */
  nav .brand-name{font-size:13px!important;}
  nav{height:56px!important;}
}

/* ── PHONE molto piccolo (≤380px) ── */
@media(max-width:380px){
  .ph-title{font-size:16px!important;}
  .tab{font-size:10px!important;padding:5px 8px!important;}
  .tbl-wrap tbody tr{padding:8px 10px;}
  .tbl-wrap tbody td{font-size:11px!important;}
}

/* Tab Ordini in corso visibile solo su mobile */
.tab.mobile-only{display:none!important;}
body.is-mobile .tab.mobile-only{display:inline-flex!important;}
body.is-mobile #tp-ocm.on{display:block!important;}

/* OCM cards (versione mobile compatta degli ordini in corso) */
.ocm-card{
  background:var(--s1);border:1px solid var(--brd);border-radius:10px;
  padding:10px 12px;margin-bottom:8px;
}
.ocm-card .ocm-h{
  display:flex;justify-content:space-between;align-items:center;
  font-size:11px;font-weight:700;color:var(--sky);
  padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--brd);
}
.ocm-card .ocm-row{
  display:flex;justify-content:space-between;font-size:11px;padding:3px 0;
}
.ocm-card .ocm-row .cod{color:var(--sky);font-family:var(--mono);}
.ocm-card .ocm-row .qty{color:var(--pur);font-weight:700;font-family:var(--mono);}

/* ═══════════════════════════════════════════════════════════════
   MOBILE SHELL — UI semplificata per tenant
   ═══════════════════════════════════════════════════════════════ */
#mobile-shell{display:none;min-height:100vh;background:var(--bg);}

#m-header{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;
  background:var(--s1);border-bottom:1px solid var(--brd);
  box-shadow:0 1px 3px rgba(0,0,0,.2);
}
#m-header-brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
#m-logo{max-height:36px;max-width:36px;border-radius:6px;object-fit:contain}
#m-tenant-name{font-size:15px;font-weight:700;color:var(--tx1);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
#m-header-actions{display:flex;gap:8px;flex-shrink:0}
.m-icon-btn{
  width:42px;height:42px;border-radius:10px;
  background:var(--s2);border:1px solid var(--brd);color:var(--tx2);
  font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.m-icon-btn:active{background:var(--s3)}
.m-icon-btn-text{
  width:auto;padding:0 14px;font-size:13px;font-weight:600;color:var(--tx1);
}
.m-btn-logout{
  height:42px;padding:0 16px;border-radius:10px;
  background:rgba(192,57,43,.15);border:1px solid rgba(192,57,43,.5);
  color:#f87171;font-size:13px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.m-btn-logout:active{background:rgba(192,57,43,.3)}

/* Schermate (home + dettagli) */
.m-screen{display:none;padding:16px;}
.m-screen.on{display:block;}

/* Card "Ultimo aggiornamento" in home */
.m-info-card{
  background:linear-gradient(135deg,rgba(56,189,248,.08),rgba(168,85,247,.05));
  border:1px solid var(--brd);border-radius:14px;
  padding:14px 16px;margin-bottom:16px;
}
.m-info-t{font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-bottom:4px}
.m-info-v{font-size:16px;font-weight:700;color:var(--tx1);margin-bottom:3px;font-family:var(--mono)}
.m-info-s{font-size:11px;color:var(--tx2);font-family:var(--mono)}

/* Griglia 4 tile grandi */
.m-tile-grid{display:flex;flex-direction:column;gap:12px}
.m-tile{
  background:var(--s1);border:1px solid var(--brd);border-radius:16px;
  padding:18px 18px;text-align:left;
  cursor:pointer;width:100%;
  display:block;color:var(--tx1);
  transition:transform .15s,background .15s;
  position:relative;
  min-height:96px;
}
.m-tile:active{transform:scale(.98);background:var(--s2)}
.m-tile-ico{font-size:32px;margin-bottom:6px;line-height:1}
.m-tile-t{font-size:17px;font-weight:700;color:var(--tx1);margin-bottom:4px}
.m-tile-v{font-size:13px;color:var(--tx2);font-family:var(--mono)}
.m-tile-sub{font-size:11px;color:var(--tx3);margin-top:8px;display:flex;gap:14px;font-family:var(--mono)}
.m-tile-sub b{color:var(--tx1);font-weight:700}

/* Colorazioni accent per tile */
.m-tile-summary{border-left:4px solid var(--sky)}
.m-tile-zero{border-left:4px solid var(--red)}
.m-tile-forn{border-left:4px solid var(--pur)}
.m-tile-ord{border-left:4px solid var(--ylw)}
.m-tile-search{border-left:4px solid var(--grn)}

/* Header schermate dettaglio */
.m-screen-h{
  display:flex;align-items:center;gap:12px;margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid var(--brd);
}
.m-screen-h h2{font-size:18px;font-weight:700;margin:0;color:var(--tx1)}
.m-back-btn{
  background:var(--s2);border:1px solid var(--brd);color:var(--tx1);
  padding:8px 14px;border-radius:10px;font-size:13px;font-weight:600;
  cursor:pointer;
}
.m-back-btn:active{background:var(--s3)}

.m-screen-body{padding-bottom:30px}

/* Pulsanti grossi azione */
.m-bigbtn{
  display:block;width:100%;
  padding:14px 16px;border-radius:12px;
  font-size:14px;font-weight:700;text-align:center;cursor:pointer;
  border:1px solid var(--brd);background:var(--s1);color:var(--tx1);
  margin-bottom:10px;
}
.m-bigbtn-primary{background:var(--sky);color:#000;border-color:var(--sky)}
.m-bigbtn:active{transform:scale(.98)}

.m-forn-toolbar{margin-bottom:14px}

/* Card riga (per liste articolo/ordine) */
.m-row-card{
  background:var(--s1);border:1px solid var(--brd);border-radius:12px;
  padding:12px 14px;margin-bottom:8px;
}
.m-row-card .m-row-t{font-size:14px;font-weight:700;color:var(--tx1);margin-bottom:4px;line-height:1.3}
.m-row-card .m-row-sub{font-size:11px;color:var(--tx2);font-family:var(--mono)}
.m-row-card .m-row-kpis{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}
.m-row-card .m-row-k{font-size:11px;color:var(--tx2);font-family:var(--mono)}
.m-row-card .m-row-k b{color:var(--tx1)}

/* Card fornitore: clickable, espandibile */
.m-forn-card{
  background:var(--s1);border:1px solid var(--brd);border-radius:14px;
  padding:14px 14px;margin-bottom:10px;
}
.m-forn-card-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:10px}
.m-forn-name{font-size:14px;font-weight:700;color:var(--tx1);min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m-forn-pdf-btn{
  flex-shrink:0;background:var(--sky);color:#000;border:none;
  padding:8px 12px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;
}
.m-forn-pdf-btn:active{transform:scale(.96)}
.m-forn-stats{display:flex;gap:12px;font-size:11px;font-family:var(--mono);color:var(--tx2)}
.m-forn-stats span b{color:var(--tx1)}

/* Quando is-mobile è attivo, nascondi la struttura desktop */
body.is-mobile #nav,
body.is-mobile #main{display:none!important}
body.is-mobile #mobile-shell{display:block!important}
/* Quando l'utente è superadmin, nascondi mobile-shell anche se mobile */
body.is-mobile.is-superadmin #mobile-shell{display:none!important}
body.is-mobile.is-superadmin #admin-shell{display:block!important}
/* Quando l'utente NON è loggato (login visibile = senza .hide), nascondi mobile-shell */
body:not(.is-logged) #mobile-shell{display:none!important}


/* Nascondi mobile-shell se login è visibile (non in hide) */
/* (rimosso :has() rule che non funziona su browser più vecchi — uso .is-logged dal JS) */

/* ═══════════════════════════════════════════════════════════════
   TABLET (641-1024px) — usa layout desktop ma con touch target generosi
   ═══════════════════════════════════════════════════════════════ */
body.is-tablet{
  /* Aumenta leggermente font base per leggibilità */
  font-size:14px;
}

/* Nav: tab più grandi e cliccabili */
body.is-tablet .nv-itm{
  padding:14px 18px;
  font-size:13px;
  min-height:50px;
}

/* Bottoni: touch target minimo 44px (Apple HIG) */
body.is-tablet .btn{
  min-height:44px;
  padding:11px 18px;
  font-size:13px;
}
body.is-tablet .btn-sm{
  min-height:38px;
  padding:9px 14px;
  font-size:12px;
}

/* Input/select: più alti */
body.is-tablet .fi,
body.is-tablet input[type=text],
body.is-tablet input[type=password],
body.is-tablet input[type=number],
body.is-tablet input[type=email],
body.is-tablet select{
  min-height:42px;
  padding:10px 12px;
  font-size:14px;
}

/* Tab interne (.tb-itm) più grandi */
body.is-tablet .tb-itm{
  padding:12px 16px;
  font-size:13px;
  min-height:46px;
}

/* Tabelle: padding cella più generoso */
body.is-tablet .tbl th,
body.is-tablet .tbl td{
  padding:9px 10px;
  font-size:12px;
}

/* KPI cards: più grandi */
body.is-tablet .kpi{
  padding:18px 16px;
}
body.is-tablet .kpi-v{font-size:28px}
body.is-tablet .kpi-l{font-size:11px}

/* Admin: tabs nav più grossi */
body.is-tablet .adm-nav-tab{
  padding:14px 18px;
  font-size:13px;
}

/* Admin topbar */
body.is-tablet .adm-topbar{padding:14px 20px}

/* Header pagine */
body.is-tablet .ph-title{font-size:24px}
body.is-tablet .ph-sub{font-size:13px}

/* Modali: padding più grande */
body.is-tablet .mo-box{padding:0;max-width:90vw}
body.is-tablet .mo-h{padding:18px 22px}
body.is-tablet .mo-b{padding:18px 22px}

/* Card forecast e simili: piu spazio */
body.is-tablet .card{padding:16px 18px}

/* Forecast: barra filtri toolbar — ridistribuita */
body.is-tablet #p4 .tb{flex-wrap:wrap;gap:8px}

/* Hover stati: disattivati su touch */
@media (hover:none){
  body.is-tablet .btn:hover,
  body.is-tablet .nv-itm:hover,
  body.is-tablet .adm-nav-tab:hover,
  body.is-tablet .tb-itm:hover{
    background:inherit;
  }
}

/* Scrollbar più larghe per touch */
body.is-tablet ::-webkit-scrollbar{width:12px;height:12px}
body.is-tablet ::-webkit-scrollbar-thumb{background:var(--s3);border-radius:6px}


/* API config modal — tab style */
.api-cfg-tab{transition:all .15s}
.api-cfg-tab.on{background:var(--sky)!important;color:#000!important;border-color:var(--sky)!important;font-weight:700}

/* Source selector tabs (Local vs API on import page) */
.src-tab{
  background:transparent;border:none;color:var(--tx2);
  padding:10px 22px;border-radius:9px;font-size:13px;font-weight:600;
  cursor:pointer;transition:all .15s;
}
.src-tab.on{background:var(--s1);color:var(--tx1);box-shadow:0 1px 3px rgba(0,0,0,.3)}
.src-tab:hover:not(.on){background:rgba(255,255,255,.04)}


/* (rimossi badge di debug TABLET/MOBILE MODE — non più necessari) */

/* ════════════════════════════════════════════════════════════════════
   TABLET-MOBILE — layout shell mobile per tablet
   ════════════════════════════════════════════════════════════════════ */
   TABLET-MOBILE — tablet usano mobile shell ma con layout più ampio
   ════════════════════════════════════════════════════════════════════ */
body.is-tablet-mobile #mobile-shell{
  max-width:760px;
  margin:0 auto;
}
body.is-tablet-mobile .m-screen{padding:20px 24px}
body.is-tablet-mobile #m-header{padding:18px 24px}
body.is-tablet-mobile #m-tenant-name{font-size:18px}

/* Tile grid: 2 colonne su tablet invece di 1 */
body.is-tablet-mobile .m-tile-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
body.is-tablet-mobile .m-tile{
  min-height:120px;
  padding:20px;
}
body.is-tablet-mobile .m-tile-ico{font-size:38px}
body.is-tablet-mobile .m-tile-t{font-size:18px}

/* Card più ampie con più info */
body.is-tablet-mobile .m-row-card{
  padding:14px 18px;
}
body.is-tablet-mobile .m-row-card .m-row-t{font-size:15px}
body.is-tablet-mobile .m-row-card .m-row-sub{font-size:12px}
body.is-tablet-mobile .m-row-card .m-row-k{font-size:12px}

/* Forn cards: griglia 2 colonne */
body.is-tablet-mobile #m-forn-body{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
body.is-tablet-mobile #m-forn-body .m-forn-card{
  margin-bottom:0;
}

/* Search results: layout più largo */
body.is-tablet-mobile #m-search-body .m-row-card{
  padding:16px 20px;
}
body.is-tablet-mobile #m-search-body .m-row-card .m-row-t{font-size:16px}

/* Bottoni di azione più grandi */
body.is-tablet-mobile .m-bigbtn{
  padding:16px 20px;
  font-size:15px;
}
body.is-tablet-mobile .m-back-btn{
  padding:10px 18px;
  font-size:14px;
}
body.is-tablet-mobile .m-screen-h h2{font-size:22px}


/* ════════════════════════════════════════════════════════════════════

   TABLET-MOBILE — fornitori in griglia 3 colonne, card compatte e centrate
   ════════════════════════════════════════════════════════════════════ */
body.is-tablet-mobile #m-screen-forn{
  /* Centra la schermata e usa tutta la larghezza disponibile in modo ordinato */
  max-width:100%;
  padding:16px;
}
body.is-tablet-mobile #m-forn-body{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:12px;
  align-items:start;
  margin:0;
  padding:0;
}
body.is-tablet-mobile #m-forn-body .m-forn-card{
  margin:0;
  padding:12px 14px;
  border-radius:10px;
  min-height:auto;
}
body.is-tablet-mobile #m-forn-body .m-forn-card-h{
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:6px;
}
body.is-tablet-mobile #m-forn-body .m-forn-name{
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.is-tablet-mobile #m-forn-body .m-forn-pdf-btn{
  padding:6px 10px;
  font-size:11px;
}
body.is-tablet-mobile #m-forn-body .m-forn-stats{
  gap:8px;
  font-size:10px;
  flex-wrap:wrap;
}
/* Header schermata fornitori: centra il toolbar */
body.is-tablet-mobile #m-screen-forn .m-screen-h,
body.is-tablet-mobile #m-screen-forn .m-forn-toolbar{
  max-width:100%;
}



/* ════════════════════════════════════════════════════════════════════
   SUNSET — OVERRIDE FINALE PULITO
   Strategia: 3 categorie chiare, una sola sezione, niente duplicazioni.
   1. Aree blu (header/nav/topbar): TUTTI i figli forzati bianchi
   2. Capi colonna tabelle: bianchi su gradient blu navy
   3. Tab attive: eccezione, colore accent su sfondo chiaro
   ════════════════════════════════════════════════════════════════════ */

/* ── 1. AREE BLU: tutti i discendenti forzati bianchi ─────────────── */
body.sunset-theme #nav,
body.sunset-theme #nav *:not(.on):not(.on *),
body.sunset-theme .adm-topbar,
body.sunset-theme .adm-topbar *:not(.on):not(.on *),
body.sunset-theme .adm-nav,
body.sunset-theme .adm-nav .adm-nav-tab:not(.on),
body.sunset-theme .adm-nav .adm-nav-tab:not(.on) *,
body.sunset-theme #m-header,
body.sunset-theme #m-header * {
  color: #ffffff !important;
}

/* SVG icon dentro le aree blu */
body.sunset-theme #nav svg *,
body.sunset-theme .adm-topbar svg *,
body.sunset-theme #m-header svg * {
  fill: #ffffff !important;
  stroke: #ffffff !important;
}

/* Bottoni dentro le aree blu: stile coerente "outline bianco" */
body.sunset-theme #nav button,
body.sunset-theme #nav .btn,
body.sunset-theme .adm-topbar button,
body.sunset-theme .adm-topbar .btn,
body.sunset-theme #m-header button,
body.sunset-theme #m-header .btn {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.45) !important;
  color: #ffffff !important;
}
body.sunset-theme #nav button:hover,
body.sunset-theme #nav .btn:hover,
body.sunset-theme .adm-topbar button:hover,
body.sunset-theme .adm-topbar .btn:hover,
body.sunset-theme #m-header button:hover,
body.sunset-theme #m-header .btn:hover {
  background: rgba(255,255,255,.25) !important;
  color: #ffffff !important;
}

/* ── 2. CAPI COLONNA TABELLE: gradient blu navy + testo bianco ───── */
body.sunset-theme thead,
body.sunset-theme thead th,
body.sunset-theme thead th *,
body.sunset-theme .tbl thead th,
body.sunset-theme .tbl thead th *,
body.sunset-theme #tp-urg thead th,
body.sunset-theme #tp-pia thead th,
body.sunset-theme #tp-ok thead th,
body.sunset-theme #tp-zero thead th,
body.sunset-theme #tp-scad thead th,
body.sunset-theme #p7 thead th {
  background: linear-gradient(180deg, #1a2b4a 0%, #0f1d3a 100%) !important;
  color: #ffffff !important;
  border-color: #0f1d3a !important;
}

/* ── 3. TAB ATTIVE: eccezione, colore accent su sfondo chiaro ────── */
body.sunset-theme .nv-itm.on,
body.sunset-theme .nv-itm.on *,
body.sunset-theme .adm-nav-tab.on,
body.sunset-theme .adm-nav-tab.on * {
  background: #fbf5e9 !important;
  color: var(--sky) !important;
  border-color: var(--brd) !important;
}


/* ── Sunset: header card fornitori (sfondo blu) → testo bianco ────── */
body.sunset-theme .sup-h,
body.sunset-theme .sup-h *,
body.sunset-theme .sup-n,
body.sunset-theme .sup-bs,
body.sunset-theme .sup-bs * {
  color: #ffffff !important;
}
body.sunset-theme .sup-h {
  background: linear-gradient(180deg, #1a2b4a 0%, #0f1d3a 100%) !important;
}

/* ── Sunset: brutal nuke su QUALSIASI elemento con sfondo blu navy ─
   Trova tutti i selettori comuni per "barre superiori" e forza bianco
   ════════════════════════════════════════════════════════════════════ */
body.sunset-theme nav,
body.sunset-theme nav *,
body.sunset-theme .navbar,
body.sunset-theme .navbar *,
body.sunset-theme .topbar,
body.sunset-theme .topbar *,
body.sunset-theme header,
body.sunset-theme header *,
body.sunset-theme .header,
body.sunset-theme .header *,
body.sunset-theme [class*="topbar"],
body.sunset-theme [class*="topbar"] *,
body.sunset-theme [class*="-top-bar"],
body.sunset-theme [class*="-top-bar"] *,
body.sunset-theme [class*="header-bar"],
body.sunset-theme [class*="header-bar"] * {
  color: #ffffff !important;
}

/* Eccezione: dropdown/popover OPEN che sono sopra la nav ma non parte di essa */
body.sunset-theme .um-pop,
body.sunset-theme .um-pop *,
body.sunset-theme .mo-box,
body.sunset-theme .mo-box * {
  color: var(--tx) !important;
}
/* Riapplica regole specifiche modal title (era nero, ok) */
body.sunset-theme .mo-t { color: #0d0a05 !important; }
body.sunset-theme .mo-c { color: var(--tx2) !important; }


/* ── Nome fornitore: 2 righe massimo, troncamento con ellipsis ──── */
.m-forn-name-wrap{
  font-size:14px;
  font-weight:700;
  color:var(--tx1);
  line-height:1.3;
  margin-bottom:8px;
  word-break:break-word;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  /* fallback: max 2 righe ~36px */
  max-height:38px;
}
/* Tablet: card forn più larghe, leggibili */
body.is-tablet-mobile #m-forn-body{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:14px;
}
body.is-tablet-mobile .m-forn-name-wrap{
  font-size:15px;
  max-height:42px;
}
