/* Ordinamoi - stesso stile di MagazzinoPro (tema shadcn/ui "slate", Inter + Manrope + JetBrains Mono) */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap");

:root{
  --background:#f9fafb; --foreground:#0f172a; --card:#fff; --primary:#0f172a; --primary-fg:#f8fafc;
  --secondary:#f1f5f9; --muted:#f1f5f9; --muted-fg:#5b6578; --accent:#eef2f6; --border:#e2e8f0; --input:#d5dde8;
  --destructive:#be123c; --radius:8px;
  --slate-50:#f8fafc; --slate-100:#f1f5f9; --slate-500:#64748b; --slate-600:#475569; --slate-900:#0f172a;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --display:"Manrope","Inter",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*,*::before,*::after{box-sizing:border-box;border-color:var(--border)}
html{-webkit-tap-highlight-color:transparent}
html,body{margin:0}
body{background:var(--background);color:var(--foreground);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
input,select,textarea,button{font:inherit;color:inherit}
a{color:inherit}
.nascosto{display:none!important}
.mono{font-family:var(--mono)} .display{font-family:var(--display)}
.muted{color:var(--muted-fg)} .small{font-size:12px} .xs{font-size:11.5px}
.ico{width:16px;height:16px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ico.l{width:20px;height:20px}

/* ---------- componenti ---------- */
.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius)}
.eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-fg)}
.titolo-sezione{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-fg);margin:0 0 8px}
.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:24px}
.page-header h1{font-size:clamp(24px,3vw,30px);font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.2}
.page-header p{margin:4px 0 0;font-size:14px;color:var(--muted-fg)}
.page-header .azioni{display:flex;flex-wrap:wrap;gap:8px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:6px;border:1px solid transparent;
  font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,opacity .15s;background:var(--primary);color:var(--primary-fg);text-decoration:none}
.btn:hover{background:#1e293b}
.btn:disabled{opacity:.5;pointer-events:none}
.btn.alto{height:44px} .btn.xl{height:48px;font-size:15px;font-weight:600;width:100%}
.btn.out{background:#fff;color:var(--foreground);border-color:var(--input)} .btn.out:hover{background:var(--accent)}
.btn.ghost{background:transparent;color:var(--foreground)} .btn.ghost:hover{background:var(--slate-100)}
.btn.ok{background:#059669;color:#fff} .btn.ok:hover{background:#047857}
.btn.no{background:#fff;color:var(--destructive);border-color:#fecdd3} .btn.no:hover{background:#fff1f2}
.btn.sm{height:34px;padding:0 12px;font-size:13px}

.input,input.input,select.input,textarea.input{display:block;width:100%;height:40px;border:1px solid var(--input);border-radius:6px;background:#fff;padding:0 12px;font-size:14px}
textarea.input{height:auto;min-height:72px;padding:8px 12px;resize:vertical}
.input:focus{outline:2px solid var(--primary);outline-offset:1px}
.input.alto{height:48px;font-size:16px}
.campo{display:block}
.campo>span{display:block;font-size:12px;font-weight:600;color:var(--slate-600);margin-bottom:4px}
.campo>span small{font-weight:400;color:var(--muted-fg)}
.griglia-campi{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.spunta{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}
.spunta input{width:16px;height:16px;accent-color:var(--primary)}
.errore{font-size:13px;color:#9f1239;background:#fff1f2;border:1px solid #fecdd3;border-radius:6px;padding:8px}
.ok-msg{font-size:13px;color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:6px;padding:8px}

.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border:1px solid;border-radius:4px;white-space:nowrap}
.b-amber{background:#fffbeb;color:#92400e;border-color:#fcd34d} .b-blue{background:#eff6ff;color:#1e40af;border-color:#93c5fd}
.b-green{background:#ecfdf5;color:#065f46;border-color:#6ee7b7} .b-sky{background:#f0f9ff;color:#075985;border-color:#7dd3fc}
.b-dark{background:#0f172a;color:#fff;border-color:#0f172a} .b-rose{background:#fff1f2;color:#9f1239;border-color:#fda4af}
.b-grey{background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}

.filtri{display:flex;gap:4px;overflow-x:auto;margin-bottom:16px}
.filtri button{height:40px;padding:0 16px;border-radius:6px;border:1px solid var(--border);background:#fff;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer}
.filtri button.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.filtri .conta{margin-left:6px;font-family:var(--mono);font-size:12px;opacity:.75}

.lista{list-style:none;margin:0;padding:0}
.lista>li{padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-top:1px solid var(--border)}
.lista>li:first-child{border-top:0}
.lista>li.clic{cursor:pointer} .lista>li.clic:hover{background:var(--slate-50)}

.kpi-griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 0 24px}
.kpi{text-align:left;padding:16px;width:100%;cursor:default}
button.kpi{cursor:pointer;transition:transform .15s,box-shadow .15s} button.kpi:hover{transform:translateY(-2px);box-shadow:0 1px 3px rgba(15,23,42,.08)}
.kpi .valore{font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.25;margin-top:4px}
.kpi .nota{font-size:12px;color:var(--muted-fg);margin-top:4px}
.kpi.warn{border-color:#fcd34d;background:#fffbeb} .kpi.ok{border-color:#6ee7b7;background:#ecfdf5} .kpi.danger{border-color:#fda4af;background:#fff1f2}

.allarme{border:2px solid #e11d48;background:#fff1f2;border-radius:6px;padding:16px;margin-bottom:24px}
.allarme b{display:flex;align-items:center;gap:8px;color:#9f1239;font-size:13px;text-transform:uppercase;letter-spacing:.03em}
.allarme ul{margin:8px 0 0;padding:0;list-style:none;font-size:14px;color:#881337}
.allarme li{display:flex;justify-content:space-between;gap:8px;padding:2px 0}
.allarme li button{background:none;border:0;font-size:12px;font-weight:600;text-decoration:underline;cursor:pointer;color:inherit}

.vuoto{padding:40px;text-align:center;color:var(--muted-fg);display:flex;flex-direction:column;align-items:center;gap:8px}
.vuoto .ico{width:32px;height:32px;opacity:.4}

table.tabella{width:100%;border-collapse:collapse;font-size:14px}
.tabella th{background:var(--slate-50);font-size:12px;text-transform:uppercase;color:var(--slate-500);font-weight:600;text-align:left;padding:8px 12px}
.tabella td{padding:8px 12px;border-top:1px solid var(--border)}
.tabella .num{text-align:right;font-family:var(--mono)}
.totale{display:flex;justify-content:flex-end;gap:8px;padding:8px 12px;border-top:1px solid var(--border);font-weight:600}

.dettagli{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;font-size:14px}
.dettagli .eyebrow{margin-bottom:2px}
.nota-box{border:2px solid #fcd34d;background:#fffbeb;border-radius:6px;padding:8px 12px;font-size:14px;color:#78350f}

/* ---------- finestra (dialog) ---------- */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:50;display:grid;place-items:center;padding:16px;animation:fade .15s ease-out}
.dialog{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 10px 30px rgba(0,0,0,.2);width:min(640px,100%);max-height:92vh;overflow-y:auto;padding:24px;display:grid;gap:16px;position:relative;animation:zoom .15s ease-out}
.dialog h2{font-size:18px;font-weight:600;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-right:28px}
.dialog .chiudi{position:absolute;right:16px;top:16px;background:none;border:0;opacity:.7;cursor:pointer;padding:4px}
.dialog .chiudi:hover{opacity:1}
.dialog .piede{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
@keyframes fade{from{opacity:0}} @keyframes zoom{from{opacity:0;transform:scale(.97)}}

/* ---------- struttura: barra laterale + intestazione + menu in basso sul telefono ---------- */
.shell{min-height:100vh;display:flex}
.sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--border);position:sticky;top:0;height:100vh}
.sidebar .marchio{padding:20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
.marchio{display:flex;align-items:center;gap:8px}
.marchio img{width:32px;height:32px}
.marchio .nome{font-family:var(--display);font-weight:700;line-height:1.2}
.sidebar nav{flex:1;padding:12px;display:grid;align-content:start;gap:4px;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;font-size:14px;font-weight:500;color:var(--slate-600);text-decoration:none;cursor:pointer;background:none;border:0;width:100%;text-align:left;transition:background .15s}
.nav-item:hover{background:var(--slate-100);color:var(--slate-900)}
.nav-item.active{background:var(--slate-900);color:#fff}
.nav-item .pallino{margin-left:auto;background:#e11d48;color:#fff;font-size:10px;font-weight:700;padding:0 6px;border-radius:99px;line-height:18px}
.sidebar .utente{padding:12px;border-top:1px solid var(--border)}
.sidebar .utente .esci{color:#be123c;margin-top:8px} .sidebar .utente .esci:hover{background:#fff1f2;color:#9f1239}
.colonna{flex:1;display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.topbar>div{display:flex;align-items:center;justify-content:space-between;gap:12px;height:56px;padding:0 24px}
.topbar .solo-tel{display:none;align-items:center;gap:8px}
.topbar .solo-tel img{width:28px;height:28px}
.pill{display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;border:0;cursor:pointer}
.pill.verde{background:#059669} .pill.grigio{background:#64748b}
.campanella{position:relative;padding:8px;border-radius:6px;background:none;border:0;cursor:pointer;display:inline-flex}
.campanella:hover{background:var(--slate-100)}
.campanella .conta{position:absolute;top:-2px;right:-2px;background:#e11d48;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;padding:0 4px;border-radius:99px;display:flex;align-items:center;justify-content:center}
main.contenuto{flex:1;padding:24px 32px 32px;max-width:1400px;width:100%;margin:0 auto}
.bottom-nav{display:none}
.copyright{margin-top:40px;padding-top:16px;border-top:1px solid var(--border);text-align:center;font-size:12px;color:var(--muted-fg)}

@media (max-width:767px){
  .sidebar{display:none}
  .topbar>div{padding:0 16px}
  .topbar .solo-tel{display:flex}
  .topbar .solo-pc{display:none}
  main.contenuto{padding:24px 16px 96px}
  .bottom-nav{display:grid;position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fff;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}
  .bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 0;font-size:11px;font-weight:500;color:var(--slate-500);background:none;border:0;cursor:pointer;position:relative}
  .bottom-nav button.active{color:var(--slate-900)}
  .bottom-nav .ico{width:20px;height:20px}
  .bottom-nav .pallino{position:absolute;top:4px;left:calc(50% + 6px);background:#e11d48;color:#fff;font-size:10px;font-weight:700;padding:0 5px;border-radius:99px;line-height:16px}
}

/* ---------- accesso (come la pagina di login di MagazzinoPro) ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login .lato{background:var(--slate-900);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login .lato::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(52,211,153,.18),transparent 45%),radial-gradient(circle at 10% 90%,rgba(148,163,184,.18),transparent 50%)}
.login .lato>*{position:relative}
.login .lato h1{font-size:clamp(34px,3.6vw,48px);font-weight:700;line-height:1.15;max-width:520px;margin:0}
.login .lato p{color:#cbd5e1;max-width:440px;margin:16px 0 0;font-size:16px}
.login .form-lato{display:flex;align-items:center;justify-content:center;padding:48px 24px}
.login form{width:100%;max-width:384px;display:grid;gap:16px}
.login h2{font-size:24px;font-weight:700;margin:4px 0 8px}
@media (max-width:1023px){.login{grid-template-columns:1fr}.login .lato{display:none}}

.rise{animation:rise .25s ease-out both}
@keyframes rise{from{opacity:0;transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){.rise,.overlay,.dialog{animation:none}}

/* ---------- allergeni, ingredienti ed extra ---------- */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{height:32px;padding:0 12px;border-radius:99px;border:1px solid var(--input);background:#fff;font-size:13px;font-weight:500;cursor:pointer;width:auto;color:var(--foreground)}
.chip.on{background:#be123c;border-color:#be123c;color:#fff}
.chip.on::before{content:"✓ "}
.tag-all{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:#9f1239;background:#fff1f2;border:1px solid #fecdd3;border-radius:4px;padding:1px 6px}
.tag-tracce{display:inline-flex;font-size:11.5px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:4px;padding:1px 6px}
.box-allergie{border:1px solid #fecdd3;background:#fff8f8;border-radius:var(--radius);padding:14px;display:grid;gap:10px;margin:6px 0 14px}
.box-allergie .titolo{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:#9f1239}
.box-allergie .titolo small{font-weight:400;color:var(--muted-fg)}
label.opz{display:flex;align-items:flex-start;gap:10px;font-size:13px;font-weight:400;color:var(--foreground);margin:0;cursor:pointer;line-height:1.4}
label.opz input[type=checkbox]{width:18px;height:18px;min-width:18px;margin:1px 0 0;padding:0;accent-color:var(--primary)}
label.opz.evidenza,label.opz.evidenzia{background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;padding:8px}
.avviso-all{border:2px solid #e11d48;background:#fff1f2;color:#881337;border-radius:6px;padding:10px 12px;font-size:14px}
.avviso-all b{color:#9f1239}
.mod-senza{color:#be123c;font-weight:600}
.mod-extra{color:#047857;font-weight:600}
.righe-voci{display:grid;gap:8px}
.voce{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;border:1px solid var(--border);border-radius:6px;padding:8px}
.voce.extra{grid-template-columns:1fr 96px auto auto}
@media (max-width:560px){.voce,.voce.extra{grid-template-columns:1fr auto}.voce [data-k=nome]{grid-column:1/-1}}
.voce .spunta{font-size:12.5px;gap:6px;white-space:nowrap}
.voce details{grid-column:1/-1}
.voce summary{cursor:pointer;font-size:12.5px;color:var(--slate-600);font-weight:500}
.voce details .chips{margin-top:8px}
.voce .chip{height:28px;font-size:12px;padding:0 10px}
.scelte-piatto{display:grid;gap:6px}
.scelte-piatto label.opz{justify-content:space-between;border:1px solid var(--border);border-radius:6px;padding:10px 12px}
.scelte-piatto label.opz>span:first-of-type{flex:1}
.scelte-piatto label.opz.off{opacity:.5;cursor:not-allowed}
label.opz.nascosto{display:none!important}
