/* Provova Buchung – Oberfläche. Farben, Radien und Status nach dem Provova-Markenhandbuch (Stand 21.10.2026). */
.qb{--qb-brand:var(--brand,#1B2F5B);--qb-on:#FFFFFF;--qb-line:#D5DBE5;--qb-strong:#6B7791;--qb-danger:#9B1C2E;--qb-dangerbg:#FBE0E3;--qb-ok:#0B6B57;--qb-okbg:#DDF1EA;--qb-link:#1B3F8F;--qb-focus:#1D4ED8;--qb-field:#FFFFFF;--qb-fieldink:#14213A;font-family:inherit;color:inherit}
body.dark .qb{--qb-on:#0E1626;--qb-line:#2E3C58;--qb-strong:#7F8DAA;--qb-danger:#FF9AA8;--qb-dangerbg:#4A1620;--qb-ok:#6FD3B8;--qb-okbg:#12392F;--qb-link:#A9C0F7;--qb-focus:#F2C14E;--qb-field:#172238;--qb-fieldink:#EDF1F8}
.qb *{box-sizing:border-box}
.qb :focus-visible{outline:3px solid var(--qb-focus);outline-offset:2px}
.qb h4{margin:18px 0 8px;font-size:16px}
.qb a{color:var(--qb-link);text-decoration:underline}
.qb .qb-svc{display:grid;gap:8px}
.qb .qb-opt{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--qb-strong);border-radius:12px;padding:12px 14px;cursor:pointer;min-height:44px}
.qb .qb-opt:has(input:checked){border-color:var(--qb-brand);box-shadow:0 0 0 2px var(--qb-brand)}
.qb .qb-opt input{margin-top:4px}
.qb .qb-price{margin-left:auto;font-weight:700;white-space:nowrap}
.qb .qb-cal{border:1px solid var(--qb-line);border-radius:12px;padding:10px;margin-top:6px}
.qb .qb-calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-weight:700}
.qb .qb-nav{width:44px;height:44px;border-radius:6px;border:1px solid var(--qb-strong);background:transparent;color:inherit;font-size:18px;cursor:pointer}
.qb .qb-nav:disabled{opacity:.35;cursor:default}
.qb .qb-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.qb .qb-dow{font-size:12px;opacity:.8;padding:4px 0;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.qb .qb-day{height:44px;border-radius:6px;border:1px solid transparent;background:transparent;color:inherit;font:inherit;cursor:default;opacity:.4}
.qb .qb-day.ok{opacity:1;cursor:pointer;border-color:var(--qb-strong);font-weight:700}
.qb .qb-day.ok:hover{border-color:var(--qb-brand);background:rgba(107,119,145,.12)}
.qb .qb-day.sel,.qb .qb-time.sel{background:var(--qb-brand);color:var(--qb-on) !important;border-color:var(--qb-brand)}
.qb .qb-times{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.qb .qb-time{min-width:78px;height:44px;border-radius:6px;border:1.5px solid var(--qb-strong);background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer}
.qb .qb-time:hover{border-color:var(--qb-brand);background:rgba(107,119,145,.12)}
.qb .qb-field{display:grid;gap:4px;margin:10px 0}
.qb .qb-field label{font-weight:700;font-size:15px}
.qb input[type=text],.qb input[type=email],.qb input[type=tel],.qb textarea,.qb select{width:100%;min-height:44px;padding:10px 12px;border:1.5px solid var(--qb-strong);border-radius:6px;font:inherit;background:var(--qb-field);color:var(--qb-fieldink)}
.qb textarea{min-height:76px;resize:vertical}
.qb .qb-consent{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.45;margin:12px 0;padding:10px 12px;border:1.5px solid transparent;border-radius:6px;cursor:pointer}
.qb .qb-consent input{width:24px;height:24px;flex:none;margin:0;accent-color:var(--qb-brand);cursor:pointer}
.qb .qb-consent.qb-bad{border-color:var(--qb-danger);background:var(--qb-dangerbg)}
.qb .qb-field.qb-bad input{border-color:var(--qb-danger);box-shadow:0 0 0 1px var(--qb-danger)}
.qb .qb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;border-radius:6px;padding:10px 20px;background:var(--qb-brand);color:var(--qb-on) !important;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.qb .qb-btn:hover{filter:brightness(.92)}
.qb .qb-btn:disabled{opacity:.5;cursor:default}
.qb .qb-btn.ghost{background:transparent;color:inherit !important;border:1.5px solid var(--qb-strong)}
.qb .qb-btn.red{background:var(--qb-danger);color:#FFFFFF !important}
body.dark .qb .qb-btn.red{color:#0E1626 !important}
.qb .qb-err:not(:empty){background:var(--qb-dangerbg);color:var(--qb-danger);border:1px solid var(--qb-danger);border-radius:6px;padding:10px 12px;font-weight:700;margin:10px 0}
.qb .qb-err:not(:empty)::before{content:"\25C6  Fehler: ";white-space:pre}
.qb[data-qlang=en] .qb-err:not(:empty)::before{content:"\25C6  Error: "}
.qb .qb-ok{border:1.5px solid var(--qb-ok);background:var(--qb-okbg);border-radius:12px;padding:14px;margin:8px 0}
.qb .qb-ok::before{content:"\2713  Erledigt";display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--qb-ok);margin-bottom:6px}
.qb[data-qlang=en] .qb-ok::before{content:"\2713  Done"}
.qb .qb-hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.qb .qb-muted{opacity:.85;font-size:14px}
.qb .qb-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.qb .qb-loading{opacity:.6}
/* Verwaltungsseite */
.qb-page{margin:0;background:#F4F6F9;color:#14213A;font:16px/24px 'Source Sans 3',Arial,sans-serif}
.qb-head{background:#14213A;padding:18px 24px}.qb-head a{color:#F4F6F9;font-weight:700;font-size:22px;text-decoration:none}
.qb-wrap{max-width:640px;margin:0 auto;padding:24px 18px 60px}
.qb-wrap h1{font-family:'Bricolage Grotesque',Arial,sans-serif;font-size:28px;line-height:34px;letter-spacing:-.02em}
.qb-link{color:#1B3F8F;font-weight:700;text-decoration:underline}
.qb-page .qb input,.qb-page .qb textarea,.qb-page .qb select{background:#fff}
