/* Nettuno Lab Estetica — pensato prima per il telefono (390 px). Nessun font o file esterno.
   13/11: rifatta la grafica (palette Nettuno Lab, niente gradienti/emoji come icone, tipografia più curata,
   barra laterale per tablet/PC) — vedi icone.svg e il blocco "barra laterale" più sotto. */
[hidden] { display:none !important; }
.scheda.mandato { opacity:.65; }
:root { --blu:#2563eb; --blu2:#1d4ed8; --scuro:#1b2340; --testo:#2a3350; --grigio:#75706a; --bordo:#e4ded3;
        --chiaro:#eaf1ff; --fondo:#f8f6f2; --verde:#1f8a4c; --verde2:#166b3c; --giallo:#b7791f; --rosso:#c2410c;
        --wa:#25d366; --arancio:#e08b2e; --raggio:10px;
        --spazio-1:4px; --spazio-2:8px; --spazio-3:12px; --spazio-4:16px; --spazio-5:24px; --spazio-6:32px; }
@font-face { font-family:"Serif Nettuno"; src:url("fonts/source-serif-4-regular.woff2") format("woff2");
             font-weight:400; font-style:normal; font-display:swap; }
* { 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-family:"Serif Nettuno", Georgia, serif; font-weight:400; font-size:24px; color:var(--scuro); margin:4px 0 14px; line-height:1.2; }
h2 { font-size:17px; color:var(--scuro); margin:26px 0 10px; font-weight:700; }
h3 { font-size:15px; margin:14px 0 6px; color:var(--scuro); font-weight:700; }
p { margin:6px 0 10px; }
small, .piccolo { color:var(--grigio); font-size:13px; }
[hidden] { display:none !important; }
:focus-visible { outline:2.5px solid var(--blu); outline-offset:2px; border-radius:4px; }
@media (prefers-reduced-motion: reduce) { * { animation-duration:.001ms !important; transition-duration:.001ms !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:var(--blu); color:#fff; width:40px; height:40px;
                          border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:26px; margin-top:-2px; }
.barra-sotto a svg, .barra-laterale svg { width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.75; flex:none; }
.barra-sotto a.piu span svg { width:24px; height:24px; stroke:#fff; }

.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:#fbf1e0; border-left:4px solid var(--giallo); padding:10px 14px; border-radius:10px; margin:10px 0; }
.errore { background:#fbeae1; border-left:4px solid var(--rosso); padding:10px 14px; border-radius:10px; margin:10px 0; }
.ok { background:#e6f4eb; 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-family:"Serif Nettuno", Georgia, serif; font-weight:400; font-size:24px; color:var(--arancio); }
.numeri small { font-size:12px; }

.pulsante, button { background:var(--blu); color:#fff; border:0; border-radius:10px;
  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:hover, button:hover { background:var(--blu2); }
.pulsante.secondario, button.secondario { background:#fff; color:var(--blu); border:1px solid var(--blu); }
.pulsante.secondario:hover, button.secondario:hover { background:var(--chiaro); }
.pulsante.verde, button.verde { background:var(--verde); }
.pulsante.verde:hover, button.verde:hover { background:var(--verde2); }
.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:8px; }
.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:#fbf1e0; color:#7a4f12; }
.etichetta.attesa-cliente { background:var(--chiaro); 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:#e6f4eb; color:#166b3c; }
.etichetta.annullato { background:#fbeae1; color:#9a3412; }
.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:#fbf1e0;
                      border:1px solid #e8c994; font-weight:600; }
.stato-collegamento .punto { width:12px; height:12px; border-radius:50%; background:var(--giallo); flex:none; }
.stato-collegamento.non_collegato { background:#f4f2ee; border-color:var(--bordo); } .stato-collegamento.non_collegato .punto { background:#9a9489; }
.stato-collegamento.collegato { background:#e6f4eb; border-color:#bfe0cb; } .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; }
/* 13/11: QR più grande e con il margine bianco (la «zona di quiete»): a 220 px dallo schermo del PC non si leggeva */
.qr svg { width:100%; max-width:320px; height:auto; display:block; margin:6px auto; background:#fff; padding:16px;
          box-sizing:border-box; image-rendering:pixelated; shape-rendering:crispEdges; }
.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 2px 4px rgba(0,0,0,.08); }
.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; }
}
/* ---------- 13/11: pagina pubblica — vetrina a due colonne su PC/tablet largo ---------- */
@media (min-width:900px) {
  body.pubblico main { max-width:980px; }
  .testa-prenota { max-width:980px; margin:0 auto; }
  .eroe { padding:48px 32px 28px; }
  .eroe .logo-centro { max-height:120px; max-width:300px; }
  .pub-layout { display:grid; grid-template-columns:1fr 320px; gap:28px; align-items:start; padding:0 16px; }
  .pub-layout .sezione { padding:6px 0 4px; }
  .pub-laterale { position:sticky; top:20px; display:flex; flex-direction:column; gap:14px; }
  .pub-laterale .riquadro { margin-bottom:0; }
  .galleria { padding:0 16px 4px; }
}
/* ---------- 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:#fbf1e0; }
.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; }

/* ---------- 13/11: grafica rifatta — barra laterale per tablet/PC, dashboard Oggi, liste più pulite ---------- */
.barra-laterale { display:none; }
.oggi-corpo { display:block; }
@media (min-width:768px) {
  .con-menu .barra-sotto { display:none; }
  .con-menu .testa .destra { display:none; }
  .con-menu .barra-laterale { display:flex; flex-direction:column; position:fixed; top:0; left:0; bottom:0; width:84px;
    background:#fff; border-right:1px solid var(--bordo); padding:16px 6px; gap:2px; overflow-y:auto; z-index:30; }
  .con-menu .barra-laterale .logo-side { display:flex; justify-content:center; align-items:center; margin-bottom:14px; }
  .con-menu .barra-laterale .logo-side img { height:26px; width:auto; }
  .con-menu .barra-laterale .nome-centro-side { display:none; }
  .con-menu .barra-laterale .voce-side { display:flex; flex-direction:column; align-items:center; gap:4px; padding:9px 2px;
    border-radius:8px; color:var(--grigio); text-decoration:none; font-size:10.5px; text-align:center; position:relative;
    min-height:44px; justify-content:center; }
  .con-menu .barra-laterale .voce-side.attivo { color:var(--blu); background:var(--chiaro); font-weight:600; }
  .con-menu .barra-laterale .voce-side.nuovo { color:#fff; background:var(--blu); margin:4px 2px 12px; }
  .con-menu .barra-laterale .voce-side.nuovo:hover { background:var(--blu2); color:#fff; }
  .con-menu .barra-laterale .gruppo-titolo { font-size:9px; text-transform:uppercase; letter-spacing:.4px; color:var(--grigio);
    margin:14px 2px 4px; text-align:center; }
  .con-menu .barra-laterale .bollino-side { position:absolute; top:3px; right:12px; background:var(--rosso); color:#fff;
    font-size:10px; font-weight:700; min-width:16px; padding:0 4px; border-radius:8px; line-height:15px; text-align:center; }
  .con-menu .testa, .con-menu main, .con-menu .piede { margin-left:84px; }
}
@media (min-width:1100px) {
  .con-menu .barra-laterale { width:240px; align-items:stretch; padding:22px 14px; }
  .con-menu .barra-laterale .logo-side { justify-content:flex-start; gap:10px; padding:0 10px; margin-bottom:20px; }
  .con-menu .barra-laterale .nome-centro-side { display:block; font-weight:700; color:var(--scuro); font-size:14px;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .con-menu .barra-laterale .voce-side { flex-direction:row; justify-content:flex-start; gap:12px; font-size:14.5px;
    text-align:left; padding:10px 12px; min-height:auto; }
  .con-menu .barra-laterale .voce-side.nuovo { margin:4px 0 16px; }
  .con-menu .barra-laterale .gruppo-titolo { text-align:left; margin:18px 12px 4px; }
  .con-menu .barra-laterale .bollino-side { position:static; margin-left:auto; top:auto; right:auto; }
  .con-menu .testa-utente { display:none; }
  .con-menu .testa, .con-menu main, .con-menu .piede { margin-left:240px; }
  .con-menu main { max-width:1200px; padding:28px 32px 60px; }
  .oggi-corpo { display:grid; grid-template-columns:1.3fr 1fr; gap:28px; align-items:start; }
  .oggi-corpo > .numeri { grid-column:1 / -1; grid-template-columns:repeat(4, 1fr); }
  body[data-pag="trattamenti_elenco"] main, body[data-pag="messaggi_pagina"] main,
  body[data-pag="novita_pagina"] main, body[data-pag="assistenza_pagina"] main { max-width:880px; }
  body[data-pag="messaggi_pagina"] .scheda, body[data-pag="novita_pagina"] .scheda.novita,
  body[data-pag="assistenza_pagina"] .voce.chat {
    border-top:0; border-right:0; border-bottom:1px solid var(--bordo); border-radius:0; margin-bottom:0; padding:14px 6px; }
}
@media (hover:hover) and (min-width:1100px) {
  .voce:hover { background:#faf8f4; }
}
