/* Widget prenotazione online — stile coerente con app.css */
.bk{max-width:720px;margin:0 auto}
.bk [hidden]{display:none!important}

.bk-steps{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 28px;counter-reset:step}
.bk-steps li{flex:1;text-align:center;font-size:13px;font-weight:600;color:var(--ink3);padding:10px 4px;border-top:3px solid var(--rule2);transition:color .2s,border-color .2s}
.bk-steps li.on{color:var(--blue);border-top-color:var(--blue)}
.bk-steps li.done{color:var(--ink2);border-top-color:#a8d0ff}

.bk-error{background:#fff2f1;color:#c0271c;border:1px solid #ffd4d0;border-radius:var(--r);padding:12px 16px;font-size:15px;margin-bottom:18px}
.bk-loading{display:flex;align-items:center;gap:10px;color:var(--ink3);font-size:15px;padding:8px 0 18px}
.bk-spin{width:18px;height:18px;border:2px solid var(--rule);border-top-color:var(--blue);border-radius:50%;animation:bkspin .8s linear infinite}
@keyframes bkspin{to{transform:rotate(360deg)}}

.bk-field{margin-bottom:22px}
.bk-label{display:block;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink3);margin-bottom:10px}
.bk-select,.bk-input{width:100%;font-family:var(--sf);font-size:16px;padding:12px 14px;border:1px solid var(--rule);border-radius:var(--r);background:var(--white);color:var(--ink);transition:border-color .15s}
.bk-select:focus,.bk-input:focus{outline:none;border-color:var(--blue)}
textarea.bk-input{resize:vertical}

.bk-chips{display:flex;flex-wrap:wrap;gap:8px}
.bk-chip{font-family:var(--sf);font-size:15px;padding:9px 16px;border-radius:var(--r3);border:1px solid var(--rule);background:var(--white);color:var(--ink);cursor:pointer;transition:all .15s var(--ease)}
.bk-chip:hover{border-color:var(--blue);color:var(--blue)}
.bk-chip.sel{background:var(--blue);border-color:var(--blue);color:#fff}

.bk-list{display:flex;flex-direction:column;gap:8px}
.bk-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--rule);border-radius:var(--r);background:var(--white);cursor:pointer;text-align:left;font-family:var(--sf);font-size:16px;color:var(--ink);transition:all .15s var(--ease)}
.bk-row:hover{border-color:var(--blue)}
.bk-row.sel{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.bk-row .bk-row-meta{font-size:13px;color:var(--ink3);white-space:nowrap}

.bk-recap-mini{background:var(--bg2);border-radius:var(--r);padding:12px 16px;font-size:14px;color:var(--ink2);margin-bottom:20px;line-height:1.5}
.bk-cal-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.bk-range{font-size:14px;font-weight:600;color:var(--ink2)}
.bk-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:14px}
@media(max-width:600px){.bk-days{grid-template-columns:repeat(4,1fr)}.bk-days .bk-day:nth-child(n+5){display:none}}
.bk-day{padding:2px}
.bk-day-h{text-align:center;font-size:11px;font-weight:600;color:var(--ink3);text-transform:uppercase;margin-bottom:10px;line-height:1.3;letter-spacing:.03em}
.bk-day-h b{display:block;font-size:15px;color:var(--ink);font-weight:600;letter-spacing:0}
.bk-slots{display:flex;flex-direction:column;gap:6px}
.bk-slot{display:block;width:100%;text-align:center;font-family:var(--sf);font-size:14px;font-weight:500;padding:8px 2px;border-radius:8px;border:none;background:#eaf3ff;color:var(--blue);cursor:pointer;transition:all .12s}
.bk-slot:hover{background:var(--blue);color:#fff}
.bk-slot.bk-busy{background:var(--bg2);color:#b0b0b5;text-decoration:line-through;cursor:default}
.bk-slot.bk-busy:hover{background:var(--bg2);color:#b0b0b5}
.bk-empty{font-size:13px;color:var(--rule);text-align:center;padding:8px 0}
.bk-cal-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--rule2);padding-top:14px;margin-top:6px}
.bk-legend{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink3)}
.bk-leg-free{display:inline-block;width:26px;height:16px;border-radius:5px;background:#eaf3ff}
.bk-leg-busy{display:inline-block;padding:1px 6px;border-radius:5px;background:var(--bg2);color:#b0b0b5;text-decoration:line-through;font-size:11px}

.bk-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:600px){.bk-grid2{grid-template-columns:1fr}}
.bk-hp{position:absolute;left:-9999px;top:-9999px}
.bk-check{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--ink);margin:10px 0 22px;line-height:1.5;background:var(--bg2);border:1.5px solid var(--rule);border-radius:var(--r);padding:14px 16px;cursor:pointer;transition:border-color .15s,background .15s}
.bk-check:hover{border-color:var(--blue)}
.bk-check input{width:20px;height:20px;margin-top:1px;accent-color:var(--blue);cursor:pointer;flex:none}
.bk-check a{font-weight:600}
.bk-check.err{border-color:var(--red);background:#fff2f1}
.bk-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.bk-back{align-self:flex-start}
.bk-note{font-size:14px;color:var(--ink3);margin:14px 0 18px;line-height:1.5}

/* Modulo inline nelle pagine specialità/prestazione/medico */
.bki{max-width:720px;margin:0 auto;background:var(--white);border:1px solid var(--rule2);border-radius:var(--r2);padding:22px 22px 18px;text-align:left}
.bki [hidden]{display:none!important}
.bki-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}
.bki-top .bk-select{flex:1;min-width:230px}
.bki-single{font-size:15px;font-weight:600;color:var(--ink)}
.bki-doc{font-size:14px;color:var(--ink3)}
.bki-days{grid-template-columns:repeat(5,1fr)}
@media(max-width:600px){.bki-days{grid-template-columns:repeat(3,1fr)}.bki-days .bk-day:nth-child(n+4){display:none}}
.bki .bk-slot{text-decoration:none}
.bki .bk-slot.bk-busy{text-decoration:line-through}
.bki-more{display:block;width:100%;text-align:center;font-size:12px;color:var(--blue);background:none;border:none;cursor:pointer;padding:4px 0}
.bki-legend{border-top:1px solid var(--rule2);padding-top:12px;margin-top:8px}

/* Variante "in alto" per le pagine prestazione: prima sezione dopo l'hero */
.bki-top-sec{padding:46px 0 60px;background:linear-gradient(180deg,#fbfbfd 0%,#f0f7ff 60%,#fbfbfd 100%)}
#bk-inline-sec{scroll-margin-top:90px}
.bki-live{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#1d6b2e;margin-bottom:8px}
.bki-live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:bkilive 1.8s ease-in-out infinite}
@keyframes bkilive{0%,100%{box-shadow:0 0 0 0 rgba(52,199,89,.45)}50%{box-shadow:0 0 0 7px rgba(52,199,89,0)}}
.bki-top-sec .sp-section-h{margin-bottom:18px}
.bki-top-sec .bki{margin:0;max-width:760px;box-shadow:0 12px 40px rgba(10,58,107,.08);border-color:#dce8f5}
@media(prefers-reduced-motion:reduce){.bki-live-dot{animation:none}}

/* Prima disponibilità sotto le voci del listino hero */
.sp-price-avail{display:flex;align-items:center;gap:6px;margin-top:5px;padding:0;background:none;border:none;font-family:var(--sf);font-size:12px;color:#1d6b2e;cursor:pointer;text-align:left;line-height:1.4}
.sp-price-avail b{font-weight:600}
.sp-price-avail:hover b{text-decoration:underline}
.sp-price-avail .bki-live-dot{width:6px;height:6px;flex:none}

/* Pill "prima disponibilità" nell'hero (stessa grammatica della pill home) */
.bk-hero-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--r3);background:rgba(255,255,255,.7);border:.5px solid rgba(0,0,0,.06);font-family:var(--sf);font-size:13px;color:var(--ink2);font-weight:500;letter-spacing:-.01em;backdrop-filter:saturate(180%) blur(10px);cursor:pointer;margin-left:8px;vertical-align:middle}
.bk-hero-pill b{font-weight:600;color:#16863d}
.bk-hero-pill .bki-live-dot{width:7px;height:7px;box-shadow:0 0 0 4px rgba(52,199,89,.18)}
@media(max-width:600px){.bk-hero-pill{margin-left:0;margin-top:8px}}

/* Decorazioni live: listino.html, card medici, card specialità, modal */
.lst-row .sp-price-avail{cursor:inherit}
.lst-row .nm{display:flex;flex-direction:column;align-items:flex-start}
.dcard-avail{display:flex;align-items:center;gap:6px;font-size:12px;color:#1d6b2e;margin-top:4px;line-height:1.4}
.dcard-avail b{font-weight:600}
.bk-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#1d6b2e;background:#dff5e3;border-radius:var(--r3);padding:4px 11px;margin-top:10px;line-height:1.3;align-self:flex-start}
.bk-badge .bki-live-dot,.dcard-avail .bki-live-dot{width:6px;height:6px;flex:none}
.mopt-avail{display:block;font-size:12px;font-weight:600;color:#9fe8b6;margin-top:3px}
.mopt-avail b{font-weight:700;color:#c9ffd9}

/* Pannello di conferma in-page (nessun redirect) */
.bki-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:3000;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto}
.bki-dialog{position:relative;background:var(--white);border-radius:var(--r2);max-width:560px;width:100%;padding:28px 26px 24px;box-shadow:0 24px 60px rgba(0,0,0,.25);max-height:92vh;overflow-y:auto}
.bki-x{position:absolute;top:12px;right:14px;background:var(--bg2);border:none;width:32px;height:32px;border-radius:50%;font-size:18px;color:var(--ink2);cursor:pointer;line-height:1}
.bki-x:hover{background:var(--bg3)}
.bki-dlg-eye{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);margin-bottom:4px}
.bki-dlg-title{font-size:24px;font-weight:600;letter-spacing:-.005em;margin-bottom:12px}
.bki-dialog .bk-error{margin:0 0 14px}
.bki-submit{width:100%}
@media(max-width:600px){.bki-overlay{padding:0;align-items:flex-end}.bki-dialog{border-radius:18px 18px 0 0;max-height:94vh}}

.bk-done{text-align:center;padding:16px 0}
.bk-done-icon{width:64px;height:64px;border-radius:50%;background:var(--green);color:#fff;font-size:34px;line-height:64px;margin:0 auto 18px}
.bk-done-title{font-size:clamp(26px,5vw,36px);font-weight:600;letter-spacing:-.005em;margin-bottom:18px}
.bk-recap{display:inline-block;text-align:left;background:var(--bg2);border-radius:var(--r2);padding:20px 26px;font-size:16px;line-height:1.7;margin-bottom:6px}
.bk-recap b{font-weight:600}
