.gestionale{display:flex;min-height:100vh}.laterale{width:250px;background:white;border-right:1px solid var(--bordo);padding:30px 23px;position:fixed;inset:0 auto 0 0;overflow:auto}.laterale .occhiello{font-size:9px;margin:32px 0 18px}.laterale nav{display:flex;flex-direction:column;gap:5px}.laterale nav a{text-decoration:none;color:var(--secondario);padding:10px 14px;border-radius:10px;font-size:15px}.laterale nav a[aria-current=page]{color:#086c0a;background:var(--chiaro);font-weight:700}.ritorno{display:block;margin-top:30px;font-size:13px}.area-lavoro{margin-left:250px;width:calc(100% - 250px)}.barra{padding:24px 35px;border-bottom:1px solid var(--bordo);display:flex;justify-content:space-between;align-items:center;font-size:14px;background:#ffffffa0}#pannello{max-width:1500px;padding:30px 35px;margin:0}#pannello h1{font-size:2.6rem}#pannello .griglia{grid-template-columns:repeat(3,1fr)}.tabella{overflow:auto;border:1px solid var(--bordo);border-radius:16px;background:white}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{background:#edf3e8;color:#52664f;font-size:11px;letter-spacing:.05em;text-transform:uppercase}th,td{padding:15px 18px;border-bottom:1px solid var(--bordo);vertical-align:top}tr:last-child td{border:0}td button{padding:6px 10px;font-size:12px;border-radius:8px;margin:3px}.filtri{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:25px 0}.filtri label{margin:0;min-width:140px}.filtri input,.filtri select{font-size:15px}.moduli{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start}.compatto{font-size:14px}.giorno-agenda{margin-bottom:25px}.giorno-agenda h3{text-transform:capitalize}.credito{border:1px solid var(--bordo);padding:12px;border-radius:10px;margin:8px 0}.codice{white-space:pre-wrap;word-break:break-word;font:13px/1.6 ui-monospace,monospace}.strumenti{display:flex;gap:10px;margin:15px 0;flex-wrap:wrap}.sfondo-verde{background:var(--chiaro)}.badge{display:inline-block;font-size:11px;border:1px solid var(--bordo);padding:3px 7px;border-radius:8px}hr{border:0;border-top:1px solid var(--bordo);margin:24px 0}@media(max-width:1100px){.laterale{width:205px;padding:25px 15px}.area-lavoro{margin-left:205px;width:calc(100% - 205px)}#pannello{padding:25px 20px}.moduli{grid-template-columns:1fr}.barra{padding:20px}.griglia{gap:12px}}@media(max-width:740px){.gestionale{display:block}.laterale{position:static;width:auto;padding:20px;border-right:0;border-bottom:1px solid var(--bordo)}.laterale .occhiello,.laterale .ritorno{display:none}.laterale .marchio{font-size:23px}.laterale nav{flex-direction:row;overflow:auto;margin-top:15px;white-space:nowrap}.laterale nav a{padding:8px 12px}.area-lavoro{margin:0;width:auto}.barra{padding:14px 20px;gap:12px}.barra .chip{font-size:9px}#pannello{padding:22px 16px}#pannello .griglia{grid-template-columns:1fr}.colonne{grid-template-columns:1fr}.filtri{align-items:stretch}.filtri label{flex:1}th,td{padding:12px;font-size:13px}#pannello h1{font-size:2.3rem}}

.barra-ore{height:8px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden;margin:8px 0}.barra-ore span{display:block;height:100%;background:var(--verde);border-radius:6px}.barra-ore .oltre{background:#e35d5d}.maiuscolo{text-transform:uppercase}
.arrivo-vivo{border:1px solid var(--verde);box-shadow:0 0 0 1px rgba(46,224,90,.15),0 8px 30px rgba(46,224,90,.12)}
#form-codice{align-items:end;margin-top:12px}

/* Campanella delle prenotazioni nuove */
.campanella{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:rgba(108,255,156,.12);color:#6cff9c;box-shadow:0 0 14px rgba(108,255,156,.25)}.campanella svg{width:20px;height:20px}.campanella b{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#6cff9c;color:#07140e;font-size:11px;line-height:18px;text-align:center}
/* Scheda «Nuove prenotazioni» dentro il ritmo di Napa: neon a quattro colori */
.slot-nuove{margin:4px 0 18px}.scheda-arrivate{position:relative;border-radius:20px;padding:2px;background:linear-gradient(100deg,#6cff9c,#c8a8ff 35%,#8fb9ff 65%,#ffd296);box-shadow:0 0 18px rgba(108,255,156,.28),0 0 30px rgba(200,168,255,.18),0 0 40px rgba(143,185,255,.12)}.scheda-arrivate>summary,.scheda-arrivate>div{background:linear-gradient(130deg,#0f1a14,#0a120d);border-radius:18px}.scheda-arrivate summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;padding:18px 24px}.scheda-arrivate[open] summary{border-radius:18px 18px 0 0}.scheda-arrivate[open]>div{border-radius:0 0 18px 18px;padding:4px 24px 20px;margin-top:-2px}.scheda-arrivate summary::-webkit-details-marker{display:none}.campanella-grande{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:rgba(108,255,156,.14);color:#6cff9c;box-shadow:0 0 22px rgba(108,255,156,.35);flex:none}.campanella-grande svg{width:26px;height:26px}.testo-arrivate{display:flex;flex-direction:column;gap:3px;flex:1}.testo-arrivate b{font-size:14px;font-weight:700;letter-spacing:.14em;color:#eafff0}.testo-arrivate small{color:#9ac3a5;font-size:12px}.badge-nuove{background:#6cff9c;color:#07140e;border-radius:999px;padding:5px 14px;font-size:13px;font-weight:700;animation:pulsa 1.6s ease-in-out infinite}.scheda-arrivate .freccia{font-size:28px;color:#c8a8ff;transition:transform .2s}.scheda-arrivate[open] .freccia{transform:rotate(90deg)}
@keyframes pulsa{0%,100%{box-shadow:0 0 0 0 rgba(108,255,156,.5)}50%{box-shadow:0 0 0 8px rgba(108,255,156,0)}}
@media(prefers-reduced-motion:reduce){.badge-nuove{animation:none}}

/* Avviso «tra 20 minuti» */
.avviso-sedute{position:sticky;top:0;z-index:20;margin:0 35px 12px;padding:16px 22px;border-radius:16px;background:linear-gradient(130deg,#163a24,#0d2417);border:1px solid #6cff9c;box-shadow:0 0 24px rgba(108,255,156,.35);display:grid;gap:10px}.avviso-sedute::before{content:'TRA 20 MINUTI · CLIENTE IN ARRIVO';font-size:11px;letter-spacing:.14em;color:#6cff9c;font-weight:700}.voce-avviso{display:flex;gap:14px;align-items:baseline;font-size:16px;color:#eafff0}.voce-avviso b{font-size:22px;color:#6cff9c}.avviso-sedute .riga{display:flex;gap:10px;margin-top:4px}
.avviso-disdette{border-color:#ffd296;background:linear-gradient(130deg,#3a2a14,#24190d);box-shadow:0 0 24px rgba(255,210,150,.35)}.avviso-disdette::before{content:'DISDETTA DALL’APP · POSTO LIBERATO';color:#ffd296}.avviso-disdette .voce-avviso b{color:#ffd296}
/* Ricerca cliente al banco al posto dell'elenco a tendina */
.campo-cliente{display:grid;gap:6px}
.risultati-clienti{display:grid;gap:4px;max-height:260px;overflow:auto}
.risultati-clienti button{text-align:left;justify-content:flex-start;width:100%}
.risultati-clienti small{opacity:.75;margin-left:6px}
.cliente-scelto{margin:0}
