/* Booking — mobile-first. Theme with --kzb-accent (primary), --kzb-accent-2 (highlight), --kzb-ink, --kzb-paper. */
.kzb{--kzb-accent:#222;--kzb-accent-2:#ffd400;--kzb-ink:#111;--kzb-paper:#fff;--kzb-line:#ddd;--kzb-muted:#666;--kzb-radius:10px;color:var(--kzb-ink);max-width:720px;margin:0 auto;font-size:1rem}
.kzb{scroll-margin-top:var(--kzb-scroll-offset,16px)}
.kzb *{box-sizing:border-box}
.kzb button{font:inherit;cursor:pointer}
.kzb-head{margin-bottom:12px}
.kzb-title{margin:.2em 0 .4em;font-size:1.5rem;outline:none}
.kzb-progress{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.kzb-progress li{flex:1;height:6px;border-radius:3px;background:var(--kzb-line)}
.kzb-progress li span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.kzb-progress li.done{background:var(--kzb-accent)}
.kzb-progress li.current{background:linear-gradient(90deg,var(--kzb-accent),var(--kzb-accent-2))}
.kzb-stepno{margin:8px 0 0;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--kzb-muted)}
.kzb-note{color:var(--kzb-muted);font-size:.95rem}
.kzb-summary{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0}
.kzb-summary span{background:var(--kzb-paper);border:1px solid var(--kzb-line);border-radius:999px;padding:4px 10px;font-size:.85rem}
.kzb-cards{display:grid;gap:10px}
.kzb-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--kzb-paper);color:var(--kzb-ink);border:2px solid var(--kzb-line);border-radius:var(--kzb-radius);padding:14px;min-height:64px;transition:border-color .15s,transform .15s}
.kzb-card:hover,.kzb-card:focus-visible{border-color:var(--kzb-accent);transform:translateY(-1px)}
.kzb-card-body{flex:1;display:flex;flex-direction:column}
.kzb-card small{color:var(--kzb-muted)}
.kzb-avatar{flex:none;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--kzb-accent);color:var(--kzb-accent-2);font-weight:700;font-size:1.3rem;object-fit:cover}
.kzb-any .kzb-avatar{background:var(--kzb-accent-2);color:var(--kzb-accent)}
.kzb-price{font-weight:700;font-size:1.15rem;white-space:nowrap}
.kzb-backrow{margin:0 0 12px}.kzb-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;min-width:44px;padding:8px 16px;background:var(--kzb-paper);color:var(--kzb-ink);border:2px solid var(--kzb-ink);border-radius:var(--kzb-radius);font:inherit;font-weight:700;cursor:pointer}.kzb-back:hover,.kzb-back:focus-visible{border-color:var(--kzb-accent);background:var(--kzb-accent-2);color:var(--kzb-ink)}
.kzb-btn{display:inline-block;background:var(--kzb-paper);color:var(--kzb-ink);border:2px solid var(--kzb-ink);border-radius:var(--kzb-radius);padding:12px 20px;font-weight:700;text-decoration:none;text-align:center}
.kzb-primary{background:var(--kzb-accent);border-color:var(--kzb-accent);color:#fff;width:100%;font-size:1.1rem;padding:14px 20px}
.kzb-primary:disabled{opacity:.5;cursor:not-allowed}
.kzb-danger{background:#a4161a;border-color:#a4161a;color:#fff}
.kzb-ghost{background:transparent}
.kzb-actions{display:grid;gap:10px;margin-top:16px}
.kzb-cal{background:var(--kzb-paper);border:1px solid var(--kzb-line);border-radius:var(--kzb-radius);padding:12px}
.kzb-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.kzb-cal-nav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--kzb-line);background:var(--kzb-paper);color:var(--kzb-ink);font-size:1.4rem;line-height:1}
.kzb-cal-nav button:disabled{opacity:.3}
.kzb-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.kzb-wd span{text-align:center;font-size:.75rem;color:var(--kzb-muted);text-transform:uppercase;padding:4px 0}
.kzb-day{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;color:#bbb;border:0;background:transparent;padding:0;min-height:40px}
.kzb-day b{font-weight:600}
.kzb-day i{font-style:normal;font-size:.62rem;line-height:1.1}
.kzb-open{background:var(--kzb-accent-2);color:var(--kzb-ink);font-weight:700}
.kzb-open:hover{outline:2px solid var(--kzb-accent)}
.kzb-day.kzb-sel{background:var(--kzb-accent);color:#fff}
.kzb-blank{visibility:hidden}
.kzb-slots h3{margin:18px 0 8px;font-size:1.1rem}
.kzb-times{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.kzb-time{padding:12px 4px;border-radius:8px;border:2px solid var(--kzb-accent);background:var(--kzb-paper);color:var(--kzb-ink);font-weight:700}
.kzb-time:hover,.kzb-time.kzb-sel{background:var(--kzb-accent);color:#fff}
.kzb-form{display:grid;gap:14px}
.kzb-form label{display:grid;gap:4px;font-weight:600}
.kzb-form input{font:inherit;padding:12px;border:2px solid var(--kzb-line);border-radius:8px;width:100%;background:#fff;color:#111}
.kzb-form input:focus{border-color:var(--kzb-accent);outline:none}
.kzb-form small{font-weight:400;color:var(--kzb-muted)}
.kzb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.kzb-review{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;background:var(--kzb-paper);border:1px solid var(--kzb-line);border-radius:var(--kzb-radius);padding:16px;margin:0 0 16px}
.kzb-review dt{color:var(--kzb-muted)}
.kzb-review dd{margin:0;font-weight:600}
.kzb-error{background:#fde8e8;color:#8a1c1c;border-left:4px solid #a4161a;padding:10px 12px;border-radius:6px;margin:10px 0}
.kzb-done{text-align:center}
.kzb-done .kzb-review{text-align:left}
.kzb-check{width:64px;height:64px;margin:0 auto;border-radius:50%;background:var(--kzb-accent-2);color:var(--kzb-accent);font-size:2.2rem;display:flex;align-items:center;justify-content:center;font-weight:700}
.kzb-badge{display:inline-block;background:#e6f4ea;color:#1e5631;border-radius:999px;padding:3px 12px;font-weight:700;font-size:.85rem}
.kzb-badge.kzb-cancelled{background:#eee;color:#555}
.kzb-confirm{border:2px solid #a4161a;border-radius:var(--kzb-radius);padding:14px;display:grid;gap:8px}
.kzb-loading{color:var(--kzb-muted)}
@media (min-width:640px){.kzb-cards{grid-template-columns:1fr 1fr}.kzb-cards .kzb-svc{grid-column:span 2}.kzb-times{grid-template-columns:repeat(5,1fr)}.kzb-primary{width:auto}.kzb-actions{grid-template-columns:auto auto;justify-content:start}}
/* Shortcode helpers */
.kzb-hours{width:100%;border-collapse:collapse}
.kzb-hours th,.kzb-hours td{padding:8px 4px;border-bottom:1px solid rgba(127,127,127,.3);text-align:left}
.kzb-hours .is-closed{opacity:.6}
.kzb-tag{display:inline-block;white-space:normal!important;line-height:1.3;font-size:.75rem;padding:2px 8px;border-radius:8px;background:rgba(127,127,127,.2);margin-left:6px}
.kzb-hours .is-booking .kzb-tag{background:var(--kzb-accent-2,#ffd400);color:#111;font-weight:700}
.kzb-pricelist{display:grid;gap:14px}
.kzb-price-row{display:flex;align-items:flex-end;gap:8px}
.kzb-price-name{display:flex;flex-direction:column}
.kzb-price-name span,.kzb-price-val span{font-size:.85rem;opacity:.75}
.kzb-price-dots{flex:1;border-bottom:2px dotted currentColor;opacity:.35;margin-bottom:6px;min-width:20px}
.kzb-price-val{text-align:right;display:flex;flex-direction:column}
.kzb-staff-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.kzb-staff-card{text-align:center;padding:20px;border-radius:12px}
.kzb-staff-card img,.kzb-staff-card .kzb-avatar{width:120px;height:120px;border-radius:50%;margin:0 auto 10px;object-fit:cover;font-size:2.6rem;display:flex}
.kzb-staff-svcs{font-size:.85rem;opacity:.8}
.kzb-contact{font-weight:700}
#kzb-app{min-height:760px}@media(min-width:760px){#kzb-app{min-height:640px}}
.kzb-day.kzb-locked{background:repeating-linear-gradient(45deg,transparent 0 4px,rgba(0,0,0,.05) 4px 8px);color:var(--kzb-ink);border:1px dashed var(--kzb-line)}
.kzb-release-note{font-weight:600}

/* Online booking paused */
.kzb-paused { text-align: center; padding: 8px 0; }
.kzb-paused-msg { font-size: 1.15em; margin: 0 0 12px; }
