/* Modulo Appuntamenti: prende i colori del tema (--brand, --line, --text) dove ci sono. */
.ap-pagina{max-width:880px;margin:0 auto;padding:32px 16px 56px}
.ap-pagina h1{margin-bottom:.4em}
.ap-servizi{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin:20px 0}
.ap-servizio{display:flex;flex-direction:column;gap:6px;padding:18px 18px 16px;border:1px solid var(--line,#e2e8f0);border-left:5px solid var(--ap-c,#4f5bd5);border-radius:12px;text-decoration:none;color:inherit;background:var(--card,#fff);transition:box-shadow .15s,transform .15s}
.ap-servizio:hover{box-shadow:0 6px 22px rgba(0,0,0,.08);transform:translateY(-1px)}
.ap-servizio b{font-size:1.1em}
.ap-desc{font-size:.93em;opacity:.8;line-height:1.45}
.ap-meta{font-size:.9em;opacity:.75}
.ap-vai{margin-top:auto;padding-top:6px;font-weight:600;color:var(--brand,var(--primary,#4f5bd5))}
.ap-indietro{margin:0 0 8px;font-size:.95em}
.ap-testa{border-left:5px solid var(--ap-c,#4f5bd5);padding:2px 0 2px 14px;margin:0 0 18px}
.ap-testa .ap-meta{margin:0 0 6px}
.ap-descrizione{line-height:1.55}
.ap-passo{font-size:1.15em;margin:26px 0 10px}
.ap-passo small{font-weight:400;opacity:.7}
.ap-scelte,.ap-ore{display:flex;flex-wrap:wrap;gap:8px}
.ap-pill,.ap-ora{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--line,#d6dbe3);border-radius:999px;text-decoration:none;color:inherit;background:var(--card,#fff);font-weight:500}
.ap-pill small{opacity:.65;font-weight:400}
.ap-ora{border-radius:8px;min-width:72px;justify-content:center;font-variant-numeric:tabular-nums}
.ap-pill.on,.ap-ora.on,.ap-pill:hover,.ap-ora:hover{border-color:var(--brand,var(--primary,#4f5bd5));background:var(--brand,var(--primary,#4f5bd5));color:#fff}
.ap-giorni{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:thin}
.ap-giorno{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;width:58px;padding:8px 0;border:1px solid var(--line,#d6dbe3);border-radius:10px;text-decoration:none;color:inherit;background:var(--card,#fff);font-size:.8em;line-height:1.25}
.ap-giorno b{font-size:1.5em}
.ap-giorno.no{opacity:.35;cursor:default}
.ap-giorno.on,a.ap-giorno:hover{border-color:var(--brand,var(--primary,#4f5bd5));background:var(--brand,var(--primary,#4f5bd5));color:#fff}
.ap-giorno.on *,a.ap-giorno:hover *,.ap-pill.on *,.ap-ora.on{color:#fff!important}
.ap-freccia{flex:0 0 auto;display:flex;align-items:center;padding:0 10px;font-size:1.6em;text-decoration:none;color:inherit;opacity:.6}
.ap-form{margin-top:10px;padding:20px;border:1px solid var(--line,#e2e8f0);border-radius:12px;background:var(--card,#fff)}
.ap-form label{display:block;margin:0 0 12px;font-weight:500}
.ap-form input[type=text],.ap-form input[type=email],.ap-form input[type=tel],.ap-form textarea{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid var(--line,#d6dbe3);border-radius:8px;font:inherit;box-sizing:border-box}
.ap-riga{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ap-form .ap-spunta{display:flex;gap:8px;align-items:flex-start;font-weight:400;line-height:1.45}
.ap-spunta input{margin-top:4px;flex:0 0 auto}
.ap-pagamento{border:1px dashed var(--line,#d6dbe3);border-radius:10px;padding:10px 14px;margin:6px 0 14px}
.ap-riepilogo{padding:10px 14px;border-radius:8px;background:rgba(127,127,127,.08)}
.ap-trappola{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.ap-errore{display:block;color:#b3261e;font-size:.92em;margin-top:4px}
.ap-ok{padding:12px 16px;border-radius:10px;background:rgba(46,125,50,.1);color:#1b5e20}
.ap-nota{font-size:.92em;opacity:.8}
.ap-scheda{padding:18px 20px;border:1px solid var(--line,#e2e8f0);border-left:5px solid var(--ap-c,#4f5bd5);border-radius:12px;margin:16px 0}
.ap-scheda h2{margin:.2em 0}
.ap-quando{font-size:1.15em;font-weight:600}
.ap-stato{display:inline-block;margin:0;padding:3px 10px;border-radius:999px;font-size:.85em;font-weight:600;background:rgba(127,127,127,.12)}
.ap-stato.ap-on{background:rgba(46,125,50,.13);color:#1b5e20}
.ap-stato.ap-off{background:rgba(179,38,30,.1);color:#b3261e}
.ap-stato.ap-draft{background:rgba(237,108,2,.12);color:#a04600}
.ap-azioni{display:flex;flex-wrap:wrap;gap:8px}
.ap-disdici{margin:14px 0}
@media (max-width:640px){.ap-riga{grid-template-columns:1fr;gap:0}.ap-form{padding:14px}}
