.terminbuchung{--terminbuchung-ink:#183248;--terminbuchung-muted:#526675;--terminbuchung-line:#d7e1e8;--terminbuchung-brand:#156b75;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--terminbuchung-ink);line-height:1.55;max-width:980px;margin:1.5rem auto;text-align:left}.terminbuchung *{box-sizing:border-box}.terminbuchung h2{font-size:1.7rem;margin:0 0 1rem}.terminbuchung h3,.terminbuchung h4{line-height:1.35}.terminbuchung .terminbuchung-form{margin:1rem 0;display:flex;flex-wrap:wrap;gap:1rem;align-items:end}.terminbuchung-field{display:flex;flex:1 1 240px;flex-direction:column;gap:.35rem;font-weight:600}.terminbuchung input,.terminbuchung select,.terminbuchung textarea{font:inherit;color:inherit;background:#fff;border:1px solid #8fa5b4;border-radius:6px;padding:.65rem;width:100%;min-height:44px}.terminbuchung textarea{resize:vertical}.terminbuchung button,.terminbuchung summary{font:inherit;cursor:pointer}.terminbuchung button{border:1px solid var(--terminbuchung-brand);border-radius:6px;background:var(--terminbuchung-brand);color:#fff;font-weight:650;padding:.65rem 1.1rem;min-height:44px}.terminbuchung button:hover{filter:brightness(.92)}.terminbuchung .terminbuchung-secondary{background:#fff;color:var(--terminbuchung-brand)}.terminbuchung .terminbuchung-danger{background:#a82938;border-color:#a82938}.terminbuchung :focus-visible{outline:3px solid #df981c;outline-offset:3px}.terminbuchung details{border:1px solid var(--terminbuchung-line);border-radius:8px;padding:.85rem 1rem;margin:1rem 0;background:#fff}.terminbuchung summary{font-weight:650}.terminbuchung-event{padding:1.1rem 1.3rem;border:1px solid var(--terminbuchung-line);border-left:6px solid;border-radius:9px;margin:1rem 0;background:#fff}.terminbuchung-free{border-left-color:#248444;background:#f4fbf5}.terminbuchung-busy{border-left-color:#ba3444;background:#fff5f5}.terminbuchung-own{border-left-color:#2776b1;background:#f1f8ff}.terminbuchung-event-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.terminbuchung-event-heading h3{font-size:1.08rem;margin:.2rem 0}.terminbuchung-badge{font-size:.85rem;font-weight:700;border:1px solid currentColor;border-radius:20px;padding:.15rem .65rem}.terminbuchung-free .terminbuchung-badge{color:#186632}.terminbuchung-busy .terminbuchung-badge{color:#9d2030}.terminbuchung-own .terminbuchung-badge{color:#1e6093}.terminbuchung-actions{display:flex;gap:.7rem;width:100%;justify-content:flex-end}.terminbuchung-account{display:flex;gap:1rem;align-items:center;justify-content:space-between}.terminbuchung .terminbuchung-message{padding:1rem;background:#e7f4e9;border-left:4px solid #248444}.terminbuchung-error{padding:1rem;background:#fff0f0;color:#8b1e2a}.terminbuchung-help{color:var(--terminbuchung-muted);font-size:.9rem;width:100%}.terminbuchung a{color:#125d87;text-decoration:underline}.terminbuchung-standalone{padding:1.5rem}.terminbuchung-profile{margin-top:2rem!important}@media(max-width:600px){.terminbuchung{margin:1rem 0}.terminbuchung-event{padding:.9rem}.terminbuchung-field{flex-basis:100%}.terminbuchung-account{align-items:flex-start;flex-direction:column}.terminbuchung .terminbuchung-form button{width:100%}}

.terminbuchung-table-wrap{overflow-x:auto}.terminbuchung-table{border-collapse:collapse;width:100%;margin:1rem 0}.terminbuchung-table th,.terminbuchung-table td{border:1px solid var(--terminbuchung-line);padding:.6rem;text-align:left;vertical-align:top}.terminbuchung-table th{background:#edf3f7}.terminbuchung pre{white-space:pre-wrap;overflow-wrap:anywhere}
.terminbuchung details.terminbuchung-event{border-left-width:6px;padding:.85rem 1rem}.terminbuchung details.terminbuchung-free{border-left-color:#248444;background:#f4fbf5}.terminbuchung details.terminbuchung-busy{border-left-color:#ba3444;background:#fff5f5}.terminbuchung details.terminbuchung-own{border-left-color:#2776b1;background:#f1f8ff}.terminbuchung-event>summary{overflow-wrap:anywhere}.terminbuchung-event[open]>summary{margin-bottom:1rem}.terminbuchung-intro{margin:0 0 1.5rem;overflow-wrap:anywhere}.terminbuchung-intro p{margin:.6rem 0}.terminbuchung-intro ul,.terminbuchung-intro ol{padding-left:1.7rem}.terminbuchung-message,.terminbuchung-error,.terminbuchung [role="alert"]{transition:opacity .6s ease}.terminbuchung-fade-out{opacity:0}.terminbuchung [hidden]{display:none!important}@media(prefers-reduced-motion:reduce){.terminbuchung-message,.terminbuchung-error,.terminbuchung [role="alert"]{transition:none}}
.terminbuchung-char-counter{display:block;margin-top:.15rem;color:var(--terminbuchung-muted);font-weight:400;text-align:right}.terminbuchung-school-filter-list{flex:1 0 100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.45rem .9rem;padding:.75rem;border:1px solid var(--terminbuchung-line);border-radius:7px;background:#f8fafb;max-height:430px;overflow:auto}.terminbuchung-school-filter-list[hidden]{display:none}.terminbuchung-filter-school{display:flex;align-items:flex-start;gap:.45rem;font-weight:400}.terminbuchung-filter-school input{width:auto;min-height:0;margin-top:.28rem}.terminbuchung-filter-school span{overflow-wrap:anywhere}
.terminbuchung-first-setup{margin:1.25rem 0;padding:1rem 1.1rem;border:1px solid var(--terminbuchung-line);border-left:5px solid var(--terminbuchung-brand);border-radius:8px;background:#fff}.terminbuchung-first-setup h3{margin-top:0}
/* 2.0.0: standalone school-backup preview. */
.terminbuchung-backup-summary{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(220px,1.3fr);gap:.35rem .8rem;margin:1rem 0;padding:1rem;background:#f8fafb;border:1px solid var(--terminbuchung-line);border-radius:8px}.terminbuchung-backup-summary dt{font-weight:700}.terminbuchung-backup-summary dd{margin:0}.terminbuchung-standalone .terminbuchung-table-wrap{max-height:55vh;overflow:auto}@media(max-width:700px){.terminbuchung-backup-summary{grid-template-columns:1fr}.terminbuchung-backup-summary dd{margin-bottom:.35rem}}

/* 2.1.1: clearer frontend booking form. */
.terminbuchung-booking-form{display:grid!important;grid-template-columns:1fr;gap:1rem;margin:1.15rem 0 0;align-items:start}.terminbuchung-booking-form>.terminbuchung-field{width:100%;flex:none}.terminbuchung-booking-form>.terminbuchung-field>span{font-size:1rem;font-weight:700}.terminbuchung-booking-form input[name="participants"]{max-width:620px}.terminbuchung-booking-form textarea{max-width:none}.terminbuchung-booking-form .terminbuchung-help{margin:.15rem 0 0;line-height:1.45;font-weight:400}.terminbuchung-booking-place-help{margin:0;padding:.65rem .8rem;border-radius:6px;background:rgba(21,107,117,.07);color:var(--terminbuchung-muted);font-size:.9rem}.terminbuchung-booking-form .terminbuchung-actions{margin-top:.15rem;padding-top:.15rem;border-top:1px solid var(--terminbuchung-line)}@media(min-width:760px){.terminbuchung-booking-form .terminbuchung-note-field textarea{min-height:105px}.terminbuchung-booking-form .terminbuchung-participants-field textarea{min-height:125px}}
