/* Nettuno Lab Estetica — pensato prima per il telefono (390 px). Nessun font o file esterno. */
:root { --blu:#2b7bff; --blu2:#1a5fd6; --scuro:#0b1f4b; --testo:#1d2433; --grigio:#667089; --bordo:#e4e2ec;
        --chiaro:#eef4ff; --fondo:#f7f7fb; --verde:#1f9d55; --verde2:#167a41; --giallo:#e0a72b; --rosso:#d6334a;
        --wa:#25d366; --raggio:14px; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font-family:"Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif; color:var(--testo);
       background:var(--fondo); font-size:16px; line-height:1.45; }
a { color:var(--blu); }
img { max-width:100%; }
h1 { font-size:22px; color:var(--scuro); margin:4px 0 12px; line-height:1.2; }
h2 { font-size:17px; color:var(--scuro); margin:22px 0 10px; }
h3 { font-size:15px; margin:14px 0 6px; color:var(--scuro); }
p { margin:6px 0 10px; }
small, .piccolo { color:var(--grigio); font-size:13px; }
[hidden] { display:none !important; }

/* ---------- pannello ---------- */
.testa { position:sticky; top:0; z-index:10; background:#fff; border-bottom:1px solid var(--bordo);
         display:flex; align-items:center; gap:10px; padding:8px 14px; min-height:54px; }
.testa img { height:28px; width:auto; }
.testa .nome-centro { font-weight:600; color:var(--scuro); font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.testa .destra { margin-left:auto; }
main { max-width:760px; margin:0 auto; padding:14px 14px 100px; }
.barra-sotto { position:fixed; left:0; right:0; bottom:0; z-index:20; background:#fff; border-top:1px solid var(--bordo);
               display:grid; grid-template-columns:repeat(5, 1fr); padding:4px 4px calc(4px + env(safe-area-inset-bottom)); }
.barra-sotto a { display:flex; flex-direction:column; align-items:center; gap:1px; text-decoration:none; color:var(--grigio);
                 font-size:11.5px; padding:5px 0; border-radius:10px; }
.barra-sotto a span { font-size:21px; line-height:1.1; }
.barra-sotto a.attivo { color:var(--blu); background:var(--chiaro); font-weight:600; }
.barra-sotto a.piu span { background:linear-gradient(135deg, var(--blu), var(--blu2)); color:#fff; width:40px; height:40px;
                          border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:26px; margin-top:-2px; }

.scheda { background:#fff; border:1px solid var(--bordo); border-radius:var(--raggio); padding:14px 15px; margin-bottom:12px; }
.stretta { max-width:420px; margin:24px auto; }
.messaggi { background:var(--chiaro); border-left:4px solid var(--blu); padding:10px 14px; border-radius:10px; margin-bottom:14px; }
.avviso { background:#fff6e8; border-left:4px solid var(--giallo); padding:10px 14px; border-radius:10px; margin:10px 0; }
.errore { background:#fdf0f2; border-left:4px solid var(--rosso); padding:10px 14px; border-radius:10px; margin:10px 0; }
.ok { background:#e8f7ef; border-left:4px solid var(--verde); padding:12px 14px; border-radius:10px; margin:10px 0; }

.numeri { display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; margin:6px 0 14px; }
.numeri div { background:#fff; border:1px solid var(--bordo); border-radius:12px; padding:10px 8px; text-align:center; }
.numeri b { display:block; font-size:22px; color:var(--scuro); }
.numeri small { font-size:12px; }

.pulsante, button { background:linear-gradient(90deg, var(--blu), var(--blu2)); color:#fff; border:0; border-radius:12px;
  padding:12px 16px; font-size:15px; font-weight:600; cursor:pointer; text-decoration:none; display:inline-flex;
  align-items:center; justify-content:center; gap:6px; text-align:center; font-family:inherit; min-height:46px; }
.pulsante.secondario, button.secondario { background:#fff; color:var(--blu); border:1px solid var(--blu); }
.pulsante.verde, button.verde { background:var(--verde); }
.pulsante.rosso, button.rosso { background:#fff; color:var(--rosso); border:1px solid var(--rosso); }
.pulsante.wa, a.wa { background:var(--wa); color:#fff; }
.pulsante.piccolo, button.piccolo { padding:7px 12px; font-size:13.5px; min-height:36px; border-radius:10px; }
.largo { width:100%; display:flex; }
.azioni { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; } .azioni form { margin:0; } .azioni > * { flex:1 1 140px; }

input, select, textarea { font:inherit; font-size:16px; padding:11px 12px; border:1px solid var(--bordo); border-radius:12px;
  background:#fff; width:100%; color:var(--testo); }
input:focus, select:focus, textarea:focus { outline:2px solid #bcd3ff; border-color:var(--blu); }
textarea { min-height:90px; }
label { display:block; margin-bottom:12px; font-size:14px; color:var(--scuro); font-weight:600; }
label small { display:block; font-weight:400; margin:1px 0 5px; }
.due { display:grid; grid-template-columns:1fr 1fr; gap:0 10px; }
.tre { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 8px; }
.spunta { display:flex; gap:10px; align-items:flex-start; font-weight:400; font-size:15px; }
.spunta input { width:22px; height:22px; flex:none; margin-top:1px; }
.scelte { display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 12px; }
.scelte label { margin:0; display:flex; gap:8px; align-items:center; background:#fff; border:1px solid var(--bordo);
                border-radius:12px; padding:9px 12px; font-weight:500; }
.scelte input { width:20px; height:20px; }

.lista { margin:0; padding:0; list-style:none; }
.voce { display:flex; gap:10px; align-items:center; background:#fff; border:1px solid var(--bordo); border-radius:12px;
        padding:11px 13px; margin-bottom:8px; text-decoration:none; color:inherit; }
.voce .ora { font-weight:700; color:var(--scuro); min-width:50px; font-variant-numeric:tabular-nums; }
.voce .corpo { flex:1; min-width:0; }
.voce .corpo b { color:var(--scuro); display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.voce .corpo small { display:block; }
.voce .destra { text-align:right; white-space:nowrap; }
.voce.annullato { opacity:.55; } .voce.annullato b { text-decoration:line-through; }
.voce.spento { opacity:.6; }

.etichetta { display:inline-block; padding:2px 9px; border-radius:10px; font-size:12px; font-weight:600; background:var(--chiaro);
             color:var(--scuro); white-space:nowrap; }
.etichetta.da_confermare { background:#fff1d6; color:#8a5a00; }
.etichetta.attesa-cliente { background:#e6efff; color:#1d4ed8; }
.in-ritardo { color:var(--rosso); }
.scelta-conferma { border:1px solid #e3e6ee; border-radius:10px; padding:8px 12px; margin:10px 0; }
.scelta-conferma legend { font-weight:600; padding:0 4px; }
.conferma-spostamento { border:2px solid var(--blu); }
.etichetta.confermato { background:#e3f5ea; color:#17683b; }
.etichetta.annullato { background:#fdecef; color:#a3263a; }
.etichetta.web { background:#efe8ff; color:#5a35b5; } .etichetta.whatsapp { background:#e3f9ea; color:#15803d; }

.provenienza { display:inline-flex; align-items:center; gap:3px; font-size:11px; color:var(--grigio); margin-left:6px; white-space:nowrap; }
.provenienza-web { color:#5a35b5; } .provenienza-whatsapp { color:#15803d; }

.voce.google-occupato { background:#f1f2f6; border-style:dashed; }
.voce.google-occupato .corpo b { color:var(--grigio); font-weight:600; }

.cabina-testa { display:flex; align-items:center; justify-content:space-between; margin:16px 0 8px; }
.cabina-testa h2 { margin:0; }
.vuoto { color:var(--grigio); font-size:14px; padding:4px 2px 10px; }
.giorno-nav { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.giorno-nav .titolo { flex:1; text-align:center; font-weight:700; color:var(--scuro); }
.giorno-nav a { min-width:46px; }
.schede-vista { display:flex; gap:6px; margin-bottom:10px; overflow-x:auto; padding-bottom:2px; }
.schede-vista a { flex:none; text-decoration:none; padding:7px 13px; border-radius:18px; border:1px solid var(--bordo); background:#fff;
                  color:var(--scuro); font-size:14px; }
.schede-vista a.attivo { background:var(--scuro); color:#fff; border-color:var(--scuro); }
.orari-liberi { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 12px; }
.orari-liberi a { text-decoration:none; border:1px solid var(--blu); color:var(--blu); border-radius:10px; padding:6px 10px;
                  font-weight:600; font-size:14px; background:#fff; }
.orari-liberi a.scelto { background:var(--blu); color:#fff; }
.menu-grande { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.menu-grande a { display:flex; flex-direction:column; gap:4px; min-height:92px; justify-content:center; align-items:flex-start;
                 background:#fff; border:1px solid var(--bordo); border-radius:16px; padding:12px; text-decoration:none;
                 color:var(--scuro); font-weight:600; }
.menu-grande a span { font-size:26px; }
.menu-grande a small { font-weight:400; }
.passi { counter-reset:passo; list-style:none; padding:0; margin:0; }
.passi li { position:relative; padding:10px 12px 10px 46px; background:#fff; border:1px solid var(--bordo); border-radius:12px;
            margin-bottom:8px; }
.passi li::before { counter-increment:passo; content:counter(passo); position:absolute; left:12px; top:10px; width:24px; height:24px;
                    border-radius:50%; background:var(--chiaro); color:var(--blu); font-weight:700; font-size:13px;
                    display:flex; align-items:center; justify-content:center; }
.passi li.fatto { background:#f1faf4; border-color:#bfe6cd; } .passi li.fatto::before { content:"✓"; background:var(--verde); color:#fff; }
.passi li .chi { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; }
.passi li .chi.tu { color:#a3266b; } .passi li .chi.noi { color:var(--blu); }
.passi li form { margin-top:6px; }
.stato-collegamento { display:flex; gap:10px; align-items:center; padding:12px 14px; border-radius:12px; background:#fff6e8;
                      border:1px solid #f1d6a4; font-weight:600; }
.stato-collegamento .punto { width:12px; height:12px; border-radius:50%; background:var(--giallo); flex:none; }
.stato-collegamento.non_collegato { background:#f4f5f8; border-color:var(--bordo); } .stato-collegamento.non_collegato .punto { background:#9aa1b5; }
.stato-collegamento.collegato { background:#e8f7ef; border-color:#bfe6cd; } .stato-collegamento.collegato .punto { background:var(--verde); }
.codice { font-family:Consolas, "Courier New", monospace; background:var(--chiaro); padding:8px 10px; border-radius:8px;
          word-break:break-all; font-size:13.5px; display:block; }
.qr svg { width:100%; max-width:220px; height:auto; display:block; margin:6px auto; }
.codice-otp { font-size:24px; text-align:center; letter-spacing:6px; }
.miniature { display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; }
.miniature figure { margin:0; } .miniature img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; border:1px solid var(--bordo); }
.miniature form { margin-top:4px; } .miniature button { width:100%; }
.logo-anteprima { max-height:80px; max-width:220px; background:#fff; border:1px solid var(--bordo); border-radius:10px; padding:6px; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th { text-align:left; color:var(--grigio); font-weight:600; font-size:12.5px; padding:6px 4px; border-bottom:1px solid var(--bordo); }
td { padding:7px 4px; border-bottom:1px solid var(--bordo); vertical-align:top; }
.piede { text-align:center; color:var(--grigio); font-size:12px; padding:14px 14px 90px; }
.settimana-giorno { margin-bottom:6px; }
.settimana-giorno summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center;
  background:#fff; border:1px solid var(--bordo); border-radius:12px; padding:11px 13px; font-weight:600; color:var(--scuro); }
.settimana-giorno summary::-webkit-details-marker { display:none; }
.settimana-giorno[open] summary { border-color:var(--blu); }
.settimana-giorno .dentro { padding:8px 0 4px; }
span.oggi-titolo { display:inline-block; }
.oggi-titolo::first-letter { text-transform:uppercase; }
details.aiuto summary { color:var(--blu); cursor:pointer; font-size:14px; }

/* ---------- pagina pubblica del centro ---------- */
body.pubblico { --acc:#b4577a; --acc2:#8f3f5e; --tenue:#fbf3f6; --fondo:#fffafb; background:var(--fondo); }
body.pubblico.tema-salvia { --acc:#5f8a6e; --acc2:#466b53; --tenue:#f1f6f2; --fondo:#fbfdfb; }
body.pubblico.tema-oro { --acc:#a87b3d; --acc2:#80592a; --tenue:#faf4ea; --fondo:#fffdf8; }
body.pubblico.tema-notte { --acc:#2b4f8f; --acc2:#1c3666; --tenue:#eef2fa; --fondo:#fafbfe; }
body.pubblico main { max-width:640px; padding:0 0 30px; }
.eroe { background:linear-gradient(160deg, var(--tenue), #fff); padding:26px 18px 18px; text-align:center; }
.eroe .logo-centro { max-height:90px; max-width:220px; margin:0 auto 8px; display:block; }
.eroe h1 { font-size:27px; margin:6px 0 4px; color:#2a1f24; letter-spacing:.2px; }
.eroe .sotto { color:#6d5f66; font-size:15px; margin:0 0 14px; }
.eroe .presentazione { color:#3c3337; font-size:15.5px; margin:8px 4px 16px; white-space:pre-line; }
.p-pulsante { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:54px; border-radius:16px;
  font-size:18px; font-weight:700; text-decoration:none; border:0; cursor:pointer; font-family:inherit; margin-bottom:10px; }
.p-pulsante.prenota { background:var(--acc); color:#fff; box-shadow:0 6px 18px rgba(0,0,0,.12); }
.p-pulsante.prenota:active { background:var(--acc2); }
.p-pulsante.wa { background:#fff; color:#128c4a; border:2px solid var(--wa); }
.p-pulsante.secondario { background:#fff; color:var(--acc2); border:1.5px solid var(--acc); font-size:16px; min-height:48px; }
.p-pulsante.rosso { background:#fff; color:var(--rosso); border:1.5px solid var(--rosso); font-size:16px; min-height:48px; }
.sezione { padding:6px 16px 4px; }
.sezione h2 { color:#2a1f24; font-size:19px; margin:20px 0 10px; }
.sezione h3 { color:var(--acc2); font-size:13px; text-transform:uppercase; letter-spacing:.8px; margin:16px 0 6px; }
.galleria { display:flex; gap:8px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 16px 4px; margin-top:12px; }
.galleria img { flex:none; width:78%; max-width:420px; aspect-ratio:4/3; object-fit:cover; border-radius:16px; scroll-snap-align:center; }
.listino .voce-listino { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid #efe6ea; }
.listino .voce-listino:last-child { border-bottom:0; }
.listino .voce-listino b { color:#2a1f24; font-weight:600; }
.listino .voce-listino small { display:block; color:#7a6d73; }
.listino .prezzo { font-weight:700; color:var(--acc2); white-space:nowrap; text-align:right; }
.riquadro { background:#fff; border:1px solid #efe6ea; border-radius:16px; padding:12px 14px; margin-bottom:10px; }
.orari-tabella td { border:0; padding:4px 2px; font-size:15px; } .orari-tabella td:last-child { text-align:right; color:#3c3337; }
.contatti a { display:flex; align-items:center; gap:10px; padding:12px 2px; border-bottom:1px solid #efe6ea; text-decoration:none; color:#2a1f24; }
.contatti a:last-child { border-bottom:0; } .contatti a span { width:26px; text-align:center; font-size:19px; }
.pie-pubblico { text-align:center; color:#8b7f85; font-size:12px; padding:20px 16px 26px; }
.pie-pubblico a { color:inherit; }
.passi-prenota { display:flex; gap:6px; margin:14px 16px 4px; }
.passi-prenota span { flex:1; height:5px; border-radius:4px; background:#eadfe4; }
.passi-prenota span.fatto { background:var(--acc); }
.testa-prenota { display:flex; align-items:center; gap:10px; padding:12px 16px; background:#fff; border-bottom:1px solid #efe6ea; }
.testa-prenota img { height:34px; width:auto; max-width:120px; object-fit:contain; }
.testa-prenota b { color:#2a1f24; }
.testa-prenota a.indietro { margin-left:auto; text-decoration:none; color:var(--acc2); font-weight:600; font-size:15px; }
.scelta { display:flex; justify-content:space-between; gap:10px; align-items:center; width:100%; background:#fff;
  border:1.5px solid #efe6ea; border-radius:14px; padding:13px 14px; margin-bottom:8px; text-decoration:none; color:#2a1f24; }
.scelta:active, .scelta:hover { border-color:var(--acc); }
.scelta small { display:block; color:#7a6d73; }
.scelta .prezzo { color:var(--acc2); font-weight:700; white-space:nowrap; }
.giorni { display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; }
.giorni a, .giorni span { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:72px;
  border-radius:14px; text-decoration:none; background:#fff; border:1.5px solid #efe6ea; color:#2a1f24; font-size:13px; text-align:center; padding:4px; }
.giorni a b { font-size:20px; color:#2a1f24; }
.giorni a small { color:var(--acc2); font-weight:600; }
.giorni a:hover { border-color:var(--acc); }
.giorni span { color:#b3a9ae; background:#faf7f8; } .giorni span b { font-size:20px; color:#b3a9ae; }
.giorni .mese { grid-column:1 / -1; font-weight:700; color:var(--acc2); margin-top:6px; font-size:14px; }
.ore { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; margin-bottom:6px; }
.ore button, .ore a { min-height:48px; border-radius:12px; background:#fff; color:#2a1f24; border:1.5px solid var(--acc);
  font-weight:700; font-size:16px; padding:0; text-decoration:none; display:flex; align-items:center; justify-content:center; }
.ore a:hover, .ore button:hover { background:var(--acc); color:#fff; }
.riepilogo { background:var(--tenue); border-radius:16px; padding:12px 14px; margin:10px 0 14px; }
.riepilogo div { display:flex; justify-content:space-between; gap:10px; padding:3px 0; }
.riepilogo div span:first-child { color:#7a6d73; } .riepilogo div span:last-child { font-weight:600; text-align:right; }
.esito { text-align:center; padding:22px 16px 6px; }
.esito .icona { width:68px; height:68px; border-radius:50%; margin:0 auto 10px; display:flex; align-items:center; justify-content:center;
  font-size:34px; color:#fff; background:var(--verde); }
.esito .icona.attesa { background:var(--giallo); } .esito .icona.annullato { background:#9a8f94; }
.esito h1 { font-size:23px; margin:4px 0; color:#2a1f24; }
body.pubblico label { color:#2a1f24; }
body.pubblico input:focus, body.pubblico textarea:focus { outline:2px solid var(--tenue); border-color:var(--acc); }
.trappola { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
details.privacy-testo .testo { white-space:pre-wrap; max-height:240px; overflow:auto; font-size:13.5px; background:#fff; padding:10px;
  border-radius:10px; border:1px solid #efe6ea; }

@media (min-width:700px) {
  .menu-grande { grid-template-columns:repeat(3, 1fr); }
  .ore { grid-template-columns:repeat(6, 1fr); }
  .giorni { grid-template-columns:repeat(7, 1fr); }
  .eroe { padding:40px 18px 24px; }
  .barra-sotto { left:50%; right:auto; width:520px; transform:translateX(-50%); border:1px solid var(--bordo); border-radius:16px 16px 0 0; }
}
/* ---------- fase 2: WhatsApp ---------- */
.bollino { display:inline-block; min-width:20px; padding:1px 6px; border-radius:10px; background:var(--rosso); color:#fff;
           font-size:12px; font-weight:700; font-style:normal; text-align:center; line-height:18px; }
.barra-sotto a { position:relative; }
.bollino-nav { position:absolute; top:2px; left:56%; background:var(--rosso); color:#fff; font-style:normal; font-size:11px;
               font-weight:700; border-radius:9px; min-width:18px; padding:0 5px; line-height:17px; }
a.blocco { display:block; text-decoration:none; color:inherit; }
progress.avanzamento { width:100%; height:12px; margin:2px 0 10px; accent-color:var(--verde); }
.passi li .etichetta { margin-left:6px; }
ul.esiti { margin:6px 0 0; padding-left:0; list-style:none; } ul.esiti li { padding:3px 0 3px 24px; position:relative; }
ul.esiti li.si::before { content:"✓"; position:absolute; left:2px; color:var(--verde); font-weight:700; }
ul.esiti li.no::before { content:"✗"; position:absolute; left:2px; color:var(--rosso); font-weight:700; }
.riga-form { display:flex; gap:8px; align-items:flex-end; margin-top:10px; } .riga-form label { flex:1; margin:0; }
.riga-form select { flex:1; }
.riga-titolo { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
.testo-modello { background:#f1faf4; border-radius:10px; padding:9px 11px; font-size:14.5px; margin:8px 0; }
pre.codice { white-space:pre-wrap; font-size:12px; }
.segnaposto { min-width:46px; }
/* elenco chat */
.voce.chat { align-items:flex-start; }
.voce.chat .avatar { width:40px; height:40px; border-radius:50%; background:#dff3e6; color:#15803d; font-weight:700; flex:none;
                     display:flex; align-items:center; justify-content:center; font-size:17px; }
.voce.chat.chiede { border-color:#f1d6a4; background:#fffaf0; }
.voce.chat .destra { font-size:12px; }
/* chat */
.chat-testa .etichetta { margin:6px 0 2px; }
.chat-fondo { background:#efeae2; border-radius:14px; padding:10px 8px; margin:6px 0 12px; display:flex; flex-direction:column; gap:6px; }
.chat-giorno { align-self:center; background:#fff; color:var(--grigio); font-size:12px; border-radius:8px; padding:2px 10px; margin:4px 0; }
.nuvola { max-width:86%; padding:6px 9px 4px; border-radius:10px; background:#fff; box-shadow:0 1px .5px rgba(0,0,0,.13);
          font-size:14.5px; word-wrap:break-word; }
.nuvola .testo { white-space:pre-wrap; }
.nuvola.uscita { align-self:flex-end; background:#d9fdd3; }
.nuvola.uscita.centro { background:#cfe9ff; }
.nuvola.uscita.avviso { background:#fff3c4; }
.nuvola .autore { display:block; font-weight:700; font-size:11.5px; color:#1f7a4a; }
.nuvola.centro .autore { color:var(--blu2); } .nuvola.avviso .autore { color:#8a5a00; }
.nuvola .ora { display:block; text-align:right; font-size:11px; color:#667781; margin-top:2px; }
/* guida */
.indice-guida { display:flex; flex-wrap:wrap; gap:6px 12px; background:#fff; border:1px solid var(--bordo); border-radius:12px;
                padding:10px 12px; margin:12px 0; font-size:14px; } .indice-guida b { width:100%; color:var(--scuro); }
.guida h2 { border-top:1px solid var(--bordo); padding-top:16px; }
.guida .introduzione { font-size:16.5px; }
.guida .nota-fonti { background:var(--chiaro); border-radius:10px; padding:8px 12px; font-size:14px; }
.guida .opzione { background:#fff; border:1px solid var(--bordo); border-radius:12px; padding:10px 13px; margin-bottom:10px; }
.guida .opzione.consigliata { border-color:#bfe6cd; background:#f6fcf8; }
.guida .opzione h3 { margin-top:2px; }
.guida ul.spunte { padding-left:20px; } .guida ul.spunte li { margin-bottom:6px; }
.guida ol.passi-guida { padding-left:22px; } .guida ol.passi-guida li { margin-bottom:12px; }
.guida ol.passi-guida small { display:block; }
.guida code { background:var(--chiaro); padding:1px 5px; border-radius:5px; }
.guida .modello-guida { background:#f1faf4; border-radius:10px; padding:9px 12px; margin-bottom:8px; font-size:14.5px; }
.guida .modello-guida p { margin:4px 0 0; }
.guida dl.faq dt { font-weight:700; color:var(--scuro); margin-top:10px; } .guida dl.faq dd { margin:3px 0 0 0; }
.guida ul.fonti { font-size:13px; color:var(--grigio); word-break:break-all; }

button:disabled, .pulsante[aria-disabled="true"] { background:#e6e8ee; color:#8a90a2; border:1px dashed #c5c9d4; cursor:not-allowed; box-shadow:none; }

/* ---------- agenda: calendario del mese (PC) / striscia settimana (telefono) ---------- */
.agenda-mese { display:none; }
.agenda-striscia { margin-bottom:12px; }
.mese-nav, .striscia-nav { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.mese-nav .titolo { flex:1; text-align:center; font-weight:700; color:var(--scuro); text-transform:capitalize; }
.striscia-nav { justify-content:space-between; }
.mese-intestazione { display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; margin-bottom:4px; }
.mese-intestazione span { text-align:center; font-size:12px; color:var(--grigio); font-weight:600; }
.mese-griglia { display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; margin-bottom:10px; }
.giorno-cella { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  aspect-ratio:1; border-radius:10px; background:#fff; border:1px solid var(--bordo); text-decoration:none;
  color:var(--testo); position:relative; padding:4px 2px; }
.giorno-cella .numero { font-weight:600; font-size:14px; }
.giorno-cella .conteggio { font-size:10.5px; color:var(--grigio); line-height:1; }
.giorno-cella .pallino, .striscia-giorno .pallino, .legenda-calendario .pallino { display:inline-block; width:8px; height:8px; border-radius:50%; flex:none; }
.giorno-cella.fuori-mese { opacity:.38; }
.giorno-cella.passato:not(.selezionato) { opacity:.55; }
.giorno-cella.selezionato, .striscia-giorno.selezionato { border-color:var(--blu); background:var(--chiaro); box-shadow:0 0 0 2px var(--blu) inset; }
.giorno-cella.oggi .numero, .striscia-giorno.oggi b { position:relative; }
.giorno-cella.oggi .numero::after, .striscia-giorno.oggi b::after { content:""; display:block; width:5px; height:5px;
  border-radius:50%; background:var(--blu); margin:1px auto 0; }
.giorno-cella.stato-chiuso { color:var(--grigio); }
.pallino.stato-libero { background:var(--verde); }
.pallino.stato-quasi_pieno { background:var(--giallo); }
.pallino.stato-pieno { background:var(--rosso); }
.pallino.stato-chiuso { background:#c7cbd6; }
.legenda-calendario { display:flex; flex-wrap:wrap; gap:8px 14px; margin:2px 0 14px; }
.legenda-calendario span { display:inline-flex; align-items:center; gap:5px; }
.legenda-calendario .segno-oggi { width:8px; height:8px; border-radius:50%; border:2px solid var(--blu); background:#fff; display:inline-block; }
.striscia-giorni { display:flex; gap:6px; overflow-x:auto; padding-bottom:2px; }
.striscia-giorno { flex:none; display:flex; flex-direction:column; align-items:center; gap:3px; min-width:48px;
  padding:7px 4px; border-radius:12px; border:1px solid var(--bordo); background:#fff; text-decoration:none; color:var(--testo); }
.striscia-giorno small { color:var(--grigio); font-size:11px; }
.striscia-giorno b { font-size:15px; font-weight:700; }
.striscia-giorno.passato:not(.selezionato) { opacity:.6; }
#agenda-corpo[aria-busy="true"] { opacity:.55; }

@media (min-width:900px) {
  .agenda-mese { display:block; }
  .agenda-striscia { display:none; }
}

/* FASE 3 — avvisi alla titolare */
.scheda.novita.nuova { border-left:4px solid var(--rosso); }
.scheda.novita p { margin:6px 0; }
.scheda.piccola { padding:9px 12px; margin-bottom:8px; }
#push { margin-top:10px; }
details.aiuto ol { padding-left:20px; margin:8px 0; } details.aiuto li { margin:4px 0; }

/* 13/11 — Messaggi da mandare (WhatsApp «a un tocco») e Porta le clienti a prenotare */
.messaggio-testo { white-space:pre-wrap; font-size:14.5px; margin:8px 0; }
.scheda.urgente { border-left:4px solid var(--giallo); background:#fffaf0; }
.gruppo-testa { display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin:18px 0 6px; }
.gruppo-testa form { margin:0; }
.scorciatoia { display:flex; align-items:center; gap:8px; margin:10px 0 2px; }
.qr-blocco { display:flex; gap:18px; align-items:flex-start; flex-wrap:wrap; margin:10px 0; }
.qr-blocco .qr-schermo { width:180px; flex:none; }
.qr-schermo svg { width:100%; height:auto; display:block; }
.passi-numerati { padding-left:20px; margin:6px 0 10px; } .passi-numerati li { margin:4px 0; }
