:root{
    --verde-scuro:#28352C;
    --verde-lav:#3C4E3F;
    --senape:#D9A441;
    --senape-scuro:#B9832A;
    --carta:#FBF6EA;
    --carta-ombra:#EFE6D1;
    --testo:#20291F;
    --testo-muto:#6C7566;
    --rosso-avviso:#A6432F;
    --radius:14px;
    --ombra: 0 2px 0 rgba(0,0,0,.06);
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--verde-scuro);
    color:var(--testo);
    font-family:'Work Sans', sans-serif;
    min-height:100vh;
    -webkit-font-smoothing:antialiased;
  }
  .app{
    max-width:560px;
    margin:0 auto;
    min-height:100vh;
    background:var(--carta);
    display:flex;
    flex-direction:column;
    position:relative;
  }
  header.top{
    background:var(--verde-scuro);
    color:var(--carta);
    padding:28px 24px 22px;
    border-bottom:4px solid var(--senape);
  }
  header.top h1{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:1.8rem;
    margin:0 0 4px;
    line-height:1.15;
  }
  header.top p{
    margin:0;
    color:#C9D2C6;
    font-size:.95rem;
  }
  .data-oggi{
    margin-top:10px;
    font-size:.8rem;
    color:var(--senape);
    letter-spacing:.02em;
  }
  main{ flex:1; padding:20px 20px 140px; }
  .categoria{ margin-bottom:30px; }
  .categoria h2{
    font-family:'Fraunces', serif;
    font-size:1.15rem;
    font-weight:600;
    margin:0 0 12px;
    padding-bottom:8px;
    border-bottom:2px dashed var(--carta-ombra);
    color:var(--verde-lav);
  }
  .piatto{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:14px 0;
    border-bottom:1px solid var(--carta-ombra);
  }
  .piatto:last-child{ border-bottom:none; }
  .piatto-info{ flex:1; min-width:0; }
  .piatto-info .nome{
    font-weight:600;
    font-size:1rem;
    margin:0 0 3px;
  }
  .piatto-info .descrizione{
    font-size:.85rem;
    color:var(--testo-muto);
    margin:0 0 6px;
    line-height:1.35;
  }
  .piatto-info .prezzo{
    font-size:.9rem;
    color:var(--senape-scuro);
    font-weight:600;
  }
  .stepper{
    display:flex;
    align-items:center;
    gap:10px;
    height:36px;
    align-self:center;
  }
  .stepper button{
    width:32px;height:32px;border-radius:50%;
    border:1.5px solid var(--verde-lav);
    background:var(--carta);
    color:var(--verde-lav);
    font-size:1.1rem;
    line-height:1;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;
  }
  .stepper button:active{ background:var(--verde-lav); color:var(--carta); }
  .stepper .qta{
    min-width:18px;
    text-align:center;
    font-weight:600;
  }
  .barra-ordine{
    position:sticky;
    bottom:0;
    left:0;right:0;
    background:var(--verde-scuro);
    color:var(--carta);
    padding:14px 20px;
    display:none;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    max-width:560px;
    margin:0 auto;
  }
  .barra-ordine.visibile{ display:flex; }
  .barra-ordine .riepilogo-mini{ font-size:.9rem; color:#C9D2C6; }
  .barra-ordine .riepilogo-mini strong{ color:var(--carta); }
  .btn{
    border:none;
    border-radius:999px;
    padding:12px 22px;
    font-family:'Work Sans', sans-serif;
    font-weight:600;
    font-size:.95rem;
    cursor:pointer;
  }
  .btn-senape{ background:var(--senape); color:var(--verde-scuro); }
  .btn-outline{ background:transparent; border:1.5px solid var(--carta); color:var(--carta); }
  .btn-scuro{ background:var(--verde-scuro); color:var(--carta); }
  .btn-blocco{ width:100%; }
  .schermo{ padding:20px; padding-bottom:40px; }
  .schermo h2.titolo{
    font-family:'Fraunces', serif;
    font-size:1.4rem;
    margin:4px 0 18px;
  }
  .riga-riepilogo{
    display:flex; justify-content:space-between; gap:10px;
    padding:10px 0; border-bottom:1px solid var(--carta-ombra);
    font-size:.95rem;
  }
  .riga-riepilogo .rimuovi{ color:var(--rosso-avviso); font-size:.8rem; cursor:pointer; background:none; border:none; padding:0; }
  .totale-riga{ display:flex; justify-content:space-between; padding:14px 0 0; font-weight:700; font-size:1.05rem; }
  label{ display:block; font-size:.85rem; font-weight:600; margin:16px 0 6px; color:var(--verde-lav); }
  input[type=text], input[type=tel], textarea{
    width:100%; padding:12px 14px; border-radius:10px;
    border:1.5px solid var(--carta-ombra); background:#fff;
    font-family:'Work Sans'; font-size:.95rem; color:var(--testo);
  }
  textarea{ min-height:70px; resize:vertical; }
  .fasce{ display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
  .fascia-pill{
    padding:9px 16px; border-radius:999px; border:1.5px solid var(--verde-lav);
    background:#fff; font-size:.9rem; cursor:pointer; color:var(--verde-lav); font-weight:600;
  }
  .fascia-pill.selezionata{ background:var(--verde-lav); color:#fff; }
  .link-indietro{ background:none; border:none; color:var(--testo-muto); font-size:.85rem; cursor:pointer; padding:0; margin-bottom:6px; }
  .avviso{ color:var(--rosso-avviso); font-size:.82rem; margin-top:6px; min-height:1em; }
  .conferma-box{ text-align:center; padding:36px 20px; }
  .conferma-box .segno{
    width:64px;height:64px;border-radius:50%;background:var(--senape);
    display:flex;align-items:center;justify-content:center;margin:0 auto 18px;
    font-size:1.8rem; color:var(--verde-scuro);
  }
  .conferma-box h2{ font-family:'Fraunces', serif; font-size:1.5rem; margin:0 0 8px; }
  .numero-ordine{ font-size:.85rem; color:var(--testo-muto); margin-bottom:22px; }
  .riepilogo-finale{ text-align:left; background:#fff; border-radius:var(--radius); padding:16px 18px; margin-bottom:22px; }
  footer.piede{ text-align:center; padding:16px; font-size:.75rem; color:var(--testo-muto); }
  footer.piede a{ color:var(--testo-muto); }

  /* ADMIN */
  .admin-wrap{ background:var(--carta); min-height:100vh; }
  .admin-header{ background:var(--verde-scuro); color:#fff; padding:20px 20px; display:flex; justify-content:space-between; align-items:center; }
  .admin-header h1{ font-family:'Fraunces',serif; font-size:1.2rem; margin:0; }
  .admin-body{ padding:18px; max-width:720px; margin:0 auto; }
  .admin-toolbar{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
  .tabella-riepilogo{ background:#fff; border-radius:var(--radius); padding:14px 16px; margin-bottom:20px; }
  .tabella-riepilogo h3{ margin:0 0 10px; font-family:'Fraunces',serif; font-size:1.05rem; }
  .tabella-riepilogo .riga{ display:flex; justify-content:space-between; font-size:.9rem; padding:5px 0; border-bottom:1px dashed var(--carta-ombra); }
  .ordine-card{ background:#fff; border-radius:var(--radius); padding:14px 16px; margin-bottom:12px; box-shadow:var(--ombra); }
  .ordine-card .riga-top{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
  .ordine-card .cliente{ font-weight:700; }
  .ordine-card .fascia{ color:var(--senape-scuro); font-weight:700; font-size:.9rem; }
  .ordine-card .tel{ font-size:.82rem; color:var(--testo-muto); margin-bottom:6px; display:flex; align-items:center; gap:10px; }
  .btn-whatsapp{
    background:#25D366; color:#fff; text-decoration:none;
    padding:4px 10px; border-radius:999px; font-size:.75rem; font-weight:700;
  }
  .ordine-card ul{ margin:6px 0; padding-left:18px; font-size:.9rem; }
  .ordine-card .note{ font-size:.82rem; font-style:italic; color:var(--testo-muto); }
  select.stato{
    margin-top:8px; padding:8px 10px; border-radius:8px; border:1.5px solid var(--carta-ombra);
    font-family:'Work Sans'; font-size:.85rem; background:#fff;
  }
  .modale-sfondo{
    position:fixed; inset:0; background:rgba(32,41,31,.75);
    display:flex; align-items:center; justify-content:center; padding:20px; z-index:50;
  }
  .modale-box{ background:#fff; border-radius:var(--radius); padding:26px; max-width:340px; width:100%; text-align:center; }
  .modale-box h3{ font-family:'Fraunces',serif; margin:0 0 12px; }
  .qr-box{ background:#fff; border-radius:var(--radius); padding:20px; text-align:center; margin-bottom:20px; }
  .qr-box #qrcode{ display:inline-block; margin:10px 0; }
  .nascosto{ display:none !important; }
