:root{
  --falcone:#8a1414; --falcone-d:#6a0f0f; --ink:#222; --muted:#777;
  --bg:#f4f3f1; --card:#fff; --line:#e3e0db; --ok:#1d7a3a; --green:#eaf6ee;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.4}
a{color:inherit;text-decoration:none}
h1{font-size:1.4rem;margin:.2rem 0}
h2{font-size:1.05rem;margin:.4rem 0}
.muted{color:var(--muted)}
.small{font-size:.82rem}
.r{text-align:right}
.pad{padding:1rem}

/* topbar */
.topbar{display:flex;align-items:center;gap:1rem;background:var(--falcone);color:#fff;
  padding:.6rem 1rem;position:sticky;top:0;z-index:10;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.brand{font-weight:700;font-size:1.05rem}
.topbar nav{display:flex;gap:.3rem;margin-left:.5rem}
.topbar nav a{padding:.35rem .7rem;border-radius:6px}
.topbar nav a:hover{background:rgba(255,255,255,.15)}
.topbar .user{margin-left:auto;display:flex;align-items:center;gap:.8rem;font-size:.9rem}
.logout{border:1px solid rgba(255,255,255,.5);padding:.25rem .6rem;border-radius:6px}

.container{max-width:1100px;margin:0 auto;padding:1rem}
.foot{text-align:center;color:var(--muted);font-size:.8rem;padding:1.5rem}
.badge-local{background:#ffe7b3;color:#7a5200;padding:.1rem .4rem;border-radius:4px}

/* flash */
.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem}
.flash-error{background:#fde8e8;color:#9b1c1c;border:1px solid #f5c2c2}
.flash-success{background:var(--green);color:#1d6b35;border:1px solid #bfe6cb}

/* login */
.login-wrap{min-height:80vh;display:flex;align-items:center;justify-content:center}
.login-card{background:var(--card);padding:2rem;border-radius:14px;width:340px;
  box-shadow:0 10px 30px rgba(0,0,0,.1);border-top:5px solid var(--falcone)}
.login-card h1{color:var(--falcone);margin:0}
.login-card .sub{color:var(--muted);margin:.2rem 0 1.2rem}
label{display:block;font-size:.85rem;color:#444;margin-bottom:.8rem}
input,textarea,select{width:100%;padding:.55rem .6rem;border:1px solid var(--line);
  border-radius:8px;font-size:1rem;margin-top:.2rem;background:#fff}
button{background:var(--falcone);color:#fff;border:0;padding:.65rem 1.1rem;border-radius:8px;
  font-size:1rem;cursor:pointer;font-weight:600}
button:hover{background:var(--falcone-d)}
button:disabled{background:#c4b3b3;cursor:not-allowed}

/* demo accesso rapido */
.demo-card{background:var(--card);padding:1.2rem;border-radius:14px;width:340px;margin-top:1rem;
  box-shadow:0 10px 30px rgba(0,0,0,.08);border-top:5px solid #2a4d9b}
.demo-head{font-weight:700;color:#2a4d9b;display:flex;align-items:center;gap:.5rem}
.demo-badge{background:#2a4d9b;color:#fff;font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:5px;letter-spacing:.05em}
.demo-sub{color:var(--muted);font-size:.85rem;margin:.3rem 0 .8rem}
.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.demo-agent{display:flex;flex-direction:column;align-items:center;gap:.15rem;text-align:center;
  border:1px solid var(--line);border-radius:10px;padding:.6rem .4rem;transition:.12s}
.demo-agent:hover{border-color:#2a4d9b;background:#eef3ff;transform:translateY(-1px)}
.demo-avatar{width:34px;height:34px;border-radius:50%;background:#2a4d9b;color:#fff;font-weight:700;
  display:flex;align-items:center;justify-content:center;font-size:1rem}
.demo-name{font-size:.8rem;font-weight:600;line-height:1.1}
.demo-user{font-size:.72rem;color:var(--muted)}

/* page head */
.page-head{display:flex;align-items:center;gap:1rem;margin-bottom:.6rem;flex-wrap:wrap}
.back{color:var(--falcone);font-weight:600}

/* searchbar */
.searchbar{display:flex;gap:.5rem;margin-bottom:.8rem}
.searchbar input{flex:1;margin:0}
.btn-reset{background:#ddd;color:#333;padding:.55rem .8rem;border-radius:8px}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.9rem;
  display:block;transition:.12s}
.cliente-card:hover{border-color:var(--falcone);box-shadow:0 4px 14px rgba(138,20,20,.1);transform:translateY(-1px)}
.card-title{font-weight:700}
.card-sub{color:#555;font-size:.9rem}
.card-meta{color:var(--muted);font-size:.85rem;margin-top:.3rem}
.card-cta{display:inline-block;margin-top:.5rem;color:var(--falcone);font-weight:600;font-size:.9rem}
.giro-tag{display:inline-block;background:#2a4d9b;color:#fff;font-size:.68rem;font-weight:700;
  padding:.08rem .45rem;border-radius:6px;margin-left:.4rem;vertical-align:middle;letter-spacing:.02em}
.giro-tag.day{background:#5a6b8c}

/* filtro giro */
.giro-filter{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-bottom:.8rem}
.gf-label{font-size:.8rem;color:var(--muted);font-weight:600;margin-right:.2rem}
.giro-chip{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:.25rem .7rem;font-size:.78rem;color:#333;transition:.12s}
.giro-chip:hover{border-color:#2a4d9b;color:#2a4d9b}
.giro-chip.on{background:#2a4d9b;color:#fff;border-color:#2a4d9b}
.giro-chip b{font-weight:700;opacity:.7;margin-left:.15rem}
.empty{padding:2rem;text-align:center;color:var(--muted)}

/* cliente banner */
.cliente-banner{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--falcone);
  border-radius:10px;padding:.7rem 1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.15rem}
.note-box{background:#fff7e6;border:1px solid #ffe0a3;border-radius:8px;padding:.4rem .6rem;margin-top:.4rem;font-size:.9rem}

/* layout ordine */
.ordine-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
@media(max-width:820px){.ordine-layout{grid-template-columns:1fr}}
.catalogo,.carrello{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.8rem}
.carrello{position:sticky;top:64px}

/* catalogo */
.art-list{max-height:60vh;overflow:auto;display:flex;flex-direction:column;gap:.3rem}
.art-item{display:flex;align-items:center;gap:.6rem;border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem}
.art-item.in-cart{border-color:var(--ok);background:var(--green)}
.ai-main{flex:1;min-width:0}
.ai-desc{font-size:.92rem}
.ai-cod{font-family:ui-monospace,monospace;color:var(--falcone);font-weight:700;font-size:.82rem}
.ai-meta{color:var(--muted);font-size:.8rem}
.ult{background:#eef3ff;color:#2a4d9b;padding:.05rem .35rem;border-radius:4px;margin-left:.3rem}
.ai-add{background:var(--falcone);color:#fff;border:0;width:34px;height:34px;border-radius:8px;font-size:1.2rem;flex:0 0 auto}
.art-item.in-cart .ai-add{background:var(--ok)}

/* carrello */
.pill{background:var(--falcone);color:#fff;border-radius:20px;padding:.05rem .5rem;font-size:.85rem}
.cart-rows{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0;max-height:45vh;overflow:auto}
.cart-row{border:1px solid var(--line);border-radius:8px;padding:.5rem}
.cr-main{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}
.cr-desc{font-size:.9rem}
.cr-del{background:#f3dcdc;color:#9b1c1c;border:0;width:26px;height:26px;border-radius:6px;font-size:1rem;cursor:pointer;font-weight:700;flex:0 0 auto}
.cr-fields{display:flex;align-items:flex-end;gap:.4rem;flex-wrap:wrap;margin-top:.4rem}
.cr-fields label{margin:0;font-size:.72rem}
.cr-fields input{width:80px;margin:0;padding:.35rem}
.cr-qta{width:70px!important}
.cr-um{font-size:.8rem;color:var(--muted);padding-bottom:.4rem}
.cr-iva{font-size:.75rem;color:var(--muted);padding-bottom:.4rem}
.cr-note{margin-top:.4rem;font-size:.85rem;padding:.35rem}
.cr-subtot{text-align:right;font-weight:700;color:var(--falcone);margin-top:.3rem}

.cart-tot{border-top:2px solid var(--line);padding-top:.5rem;margin-bottom:.6rem}
.cart-tot>div{display:flex;justify-content:space-between;padding:.15rem 0}
.cart-tot .grand{font-size:1.15rem;border-top:1px solid var(--line);margin-top:.2rem;padding-top:.4rem}
.cart-tot .grand b{color:var(--falcone)}

#btn-salva{width:100%;margin-top:.4rem;padding:.8rem}

/* missioni */
.clienti-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.inline-form{margin:0}
.btn-mission{background:#2a4d9b;color:#fff;border:0;padding:.55rem 1rem;border-radius:8px;font-weight:600;cursor:pointer}
.btn-mission:hover{background:#1f3a78}
.missione-card .card-title{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.progress{height:7px;background:#eee;border-radius:5px;margin-top:.5rem;overflow:hidden}
.progress-bar{height:100%;background:var(--ok);border-radius:5px}
.missione-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem}
.mappa{height:340px;border-radius:12px;border:1px solid var(--line);margin-bottom:1rem;z-index:0}
.map-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);text-align:center;padding:1rem}
.num-marker{background:var(--falcone);color:#fff;border-radius:50%;width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;
  border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.tappe{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}
.tappa{display:flex;gap:.7rem;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.7rem}
.tappa-completata{opacity:.6;border-color:var(--ok)}
.tappa-saltata{opacity:.55;border-style:dashed}
.tappa-num{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--falcone);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700}
.tappa-completata .tappa-num{background:var(--ok)}
.tappa-body{flex:1;min-width:0}
.tappa-nome{font-weight:600;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.tappa-addr{font-size:.85rem;margin:.2rem 0 .5rem}
.tappa-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.btn-mini{display:inline-block;border:1px solid var(--line);background:#fff;color:#333;
  padding:.3rem .6rem;border-radius:7px;font-size:.82rem;cursor:pointer;font-weight:600}
.btn-mini.primary{background:var(--falcone);color:#fff;border-color:var(--falcone)}
.btn-mini.ghost{color:var(--muted)}
.btn-mini:hover{border-color:var(--falcone)}
.stato-da_eseguire{background:#eee;color:#555}
.stato-in_corso{background:#fff3d6;color:#8a6d00}
.stato-completata{background:var(--green);color:#1d6b35}
.stato-saltata{background:#f3dcdc;color:#9b1c1c}

/* tabella */
.tbl{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px;overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.06)}
.tbl th,.tbl td{padding:.6rem .7rem;border-bottom:1px solid var(--line);text-align:left;font-size:.92rem}
.tbl thead th{background:#faf8f7;color:#555;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover{background:#faf6f6}
.tbl tfoot td{font-weight:600}
.tbl tfoot .grand td{font-size:1.05rem;color:var(--falcone)}
.stato{padding:.1rem .5rem;border-radius:20px;font-size:.78rem;text-transform:capitalize}
.stato-bozza{background:#eee;color:#555}
.stato-confermato{background:var(--green);color:#1d6b35}
.stato-inviato{background:#e6efff;color:#2a4d9b}
.actions{margin-top:1rem}
.btn-secondary{display:inline-block;background:#fff;border:1px solid var(--falcone);color:var(--falcone);
  padding:.55rem 1rem;border-radius:8px;font-weight:600}
