.kiroi-booking{--kb-dark:#4d5c70;--kb-dark2:#435267;--kb-text:#4f5b6c;--kb-muted:#8792a2;--kb-line:#e2e6eb;--kb-soft:#f3f5f7;--kb-white:#fff;max-width:920px;margin:28px auto;font-family:inherit;color:var(--kb-text)}
.kiroi-booking *{box-sizing:border-box}.kb-shell{display:grid;grid-template-columns:1.05fr .95fr;min-height:650px;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 10px 35px rgba(31,43,60,.10);border:1px solid #eef0f3}
.kb-left{background:var(--kb-dark);color:#fff;padding:42px 46px 36px}.kb-right{padding:36px 38px;background:#fff;min-width:0}.kb-profile{text-align:center;margin-bottom:28px}.kb-avatar{width:82px;height:82px;border-radius:50%;margin:0 auto 16px;border:3px solid rgba(255,255,255,.9);background:#1f2937 center/cover no-repeat;display:grid;place-items:center;font-size:29px;overflow:hidden}.kb-avatar img{width:100%;height:100%;object-fit:cover}.kb-title{font-size:24px;line-height:1.25;font-weight:400;margin:0;color:#fff}.kb-subtitle{font-size:13px;margin-top:7px;color:rgba(255,255,255,.72)}
.kb-type-switch{display:flex;gap:8px;margin:0 auto 30px;max-width:330px}.kb-type-switch button{flex:1;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:7px;padding:10px 8px;cursor:pointer;font:inherit;font-size:13px;transition:.2s}.kb-type-switch button:hover,.kb-type-switch button.active{background:#fff;color:var(--kb-dark);border-color:#fff}
.kb-cal-head{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:24px}.kb-cal-head strong{min-width:170px;text-align:center;font-size:22px;color:#fff}.kb-cal-nav{border:0;background:transparent;color:#fff;font-size:28px;line-height:1;cursor:pointer;opacity:.75;padding:2px 8px}.kb-cal-nav:hover{opacity:1}.kb-weekdays,.kb-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center}.kb-weekdays{margin-bottom:10px;color:rgba(255,255,255,.72);font-weight:650;font-size:13px}.kb-daybtn{aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:rgba(255,255,255,.86);cursor:pointer;font:inherit;font-size:14px;position:relative;display:grid;place-items:center;padding:0}.kb-daybtn:hover:not(:disabled){background:rgba(255,255,255,.13)}.kb-daybtn.other{opacity:.28}.kb-daybtn:disabled{opacity:.28;cursor:default;text-decoration:line-through}.kb-daybtn.available:after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:#fff;opacity:.75}.kb-daybtn.selected{background:#fff;color:#253247;font-weight:700}.kb-daybtn.selected:after{background:#253247}.kb-calendar-loading{min-height:18px;text-align:center;color:rgba(255,255,255,.65);font-size:12px;margin-top:10px}
.kb-icons{display:flex;justify-content:flex-end;gap:16px;color:#9aa4b2;font-size:22px;margin-bottom:10px}.kb-date-heading{background:var(--kb-soft);border-radius:5px;text-align:center;padding:10px 12px;margin:0 0 25px;font-size:16px;font-weight:650;color:#4d596a}.kb-label{display:block;font-weight:700;margin:0 0 8px;font-size:14px}.kb-duration{display:flex;gap:10px;margin-bottom:24px}.kb-duration button{flex:1;border:1px solid var(--kb-line);background:#fff;color:#657083;border-radius:5px;padding:11px 10px;font:inherit;cursor:pointer}.kb-duration button.active{background:#e9edf1;color:#4d596a;border-color:#e1e5ea}.kb-timezone{font-size:13px;color:#667285;margin:-2px 0 10px}.kb-timezone select{border:0;background:transparent;color:inherit;font:inherit;max-width:100%}.kb-times{height:390px;overflow:auto;padding-right:10px}.kb-times::-webkit-scrollbar{width:7px}.kb-times::-webkit-scrollbar-thumb{background:#747b82;border-radius:8px}.kb-timebtn{width:100%;background:#fff;color:#647185;border:1px solid #dbe0e6;border-radius:4px;padding:14px 12px;margin:0 0 9px;font-size:15px;cursor:pointer;transition:.15s}.kb-timebtn:hover,.kb-timebtn.active{border-color:#50617a;background:#f5f7f9;color:#35445a}.kb-empty{text-align:center;padding:45px 15px;color:#7d8795;font-size:14px}.kb-loading{text-align:center;padding:30px 10px;color:#7d8795}
.kb-form-wrap{grid-column:1/-1;background:#fff;border-top:1px solid #edf0f3;padding:30px 38px}.kb-form-wrap[hidden]{display:none}.kb-form-title{margin:0 0 6px;font-size:22px;color:#435064}.kb-selected{margin-bottom:20px;color:#6b7686}.kb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.kb-grid label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:13px}.kb-grid input,.kb-grid textarea{width:100%;padding:11px 12px;border:1px solid #d7dde4;border-radius:5px;font:inherit;color:#445064;background:#fff}.kb-wide{grid-column:1/-1}.kb-consent{flex-direction:row!important;align-items:flex-start;font-weight:400!important}.kb-consent input{width:auto;margin-top:3px}.kb-primary{border:0;border-radius:5px;padding:13px 22px;background:var(--kb-dark);color:#fff;font:inherit;font-weight:650;cursor:pointer;margin-top:18px}.kb-primary:hover{background:var(--kb-dark2)}.kb-primary:disabled{opacity:.6;cursor:wait}.kb-status{margin-top:16px;padding:0 3px;font-size:14px}.kb-status:empty{display:none}
@media(max-width:760px){.kiroi-booking{margin:15px 0}.kb-shell{grid-template-columns:1fr}.kb-left{padding:30px 24px}.kb-right{padding:28px 24px}.kb-profile{margin-bottom:22px}.kb-cal-head strong{font-size:19px}.kb-times{height:auto;max-height:420px}.kb-form-wrap{padding:28px 24px}.kb-grid{grid-template-columns:1fr}.kb-wide{grid-column:auto}}


/* KIROI Calendar 1.5.1 – compact duration selector */
.kiroi-booking .kb-duration {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  max-width: 430px;
  margin-top: 8px;
  margin-bottom: 20px;
}

.kiroi-booking .kb-duration button {
  min-height: 48px;
  width: 100%;
  padding: 10px 14px;
  border: 1px solid rgba(148, 163, 184, .48);
  border-radius: 12px;
  background: #fff;
  color: #1f2937;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.15;
  text-align: center;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
  transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.kiroi-booking .kb-duration button:hover {
  border-color: #64748b;
  background: #f8fafc;
  transform: translateY(-1px);
}

.kiroi-booking .kb-duration button.active {
  border-color: #111827;
  background: #111827;
  color: #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .14);
}

.kiroi-booking .kb-duration button:focus-visible {
  outline: 3px solid rgba(59, 130, 246, .28);
  outline-offset: 2px;
}

@media (max-width: 560px) {
  .kiroi-booking .kb-duration {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: none;
  }

  .kiroi-booking .kb-duration button {
    min-height: 46px;
    font-size: 14px;
  }
}


/* KIROI Calendar 1.6.0 – Ortskalender-Kontext */
.kiroi-booking .kb-location-context {
  display: grid;
  gap: 10px;
  margin: 14px 0 18px;
}

.kiroi-booking .kb-location-context[hidden] {
  display: none !important;
}

.kiroi-booking .kb-location-card {
  padding: 12px 14px;
  border: 1px solid rgba(148, 163, 184, .30);
  border-radius: 12px;
  background: #f8fafc;
}

.kiroi-booking .kb-location-label {
  margin-bottom: 5px;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
}

.kiroi-booking .kb-location-value {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 7px;
  color: #1f2937;
  font-size: 14px;
  line-height: 1.35;
}

.kiroi-booking .kb-location-date {
  color: #64748b;
  white-space: nowrap;
}

.kiroi-booking .kb-location-value strong {
  color: #334155;
  font-weight: 700;
}

@media (max-width: 560px) {
  .kiroi-booking .kb-location-card {
    padding: 11px 12px;
  }
}


/* RW-Buchungen 1.7.0 – freie Zeiten suchen */
.kiroi-booking {
  max-width: 1320px;
}

.kiroi-booking .kb-shell {
  grid-template-columns: minmax(390px, 1.08fr) minmax(300px, .82fr) minmax(300px, .82fr);
}

.kiroi-booking .kb-search {
  min-width: 0;
  padding: 36px 32px;
  background: #fbfcfd;
  border-left: 1px solid var(--kb-line);
}

.kiroi-booking .kb-search-kicker {
  margin-bottom: 7px;
  color: #8792a2;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.kiroi-booking .kb-search-title {
  margin: 0 0 9px;
  color: #435064;
  font-size: 20px;
  line-height: 1.25;
}

.kiroi-booking .kb-search-intro {
  margin: 0 0 22px;
  color: #738092;
  font-size: 13px;
  line-height: 1.5;
}

.kiroi-booking .kb-search-field {
  display: block;
  margin-bottom: 14px;
  color: #4f5b6c;
  font-size: 13px;
  font-weight: 700;
}

.kiroi-booking .kb-search-field span {
  display: block;
  margin-bottom: 7px;
}

.kiroi-booking .kb-search-field small {
  color: #8a95a4;
  font-weight: 500;
}

.kiroi-booking .kb-search-field select {
  width: 100%;
  min-height: 45px;
  padding: 9px 34px 9px 11px;
  border: 1px solid #d9dfe6;
  border-radius: 8px;
  background: #fff;
  color: #445064;
  font: inherit;
}

.kiroi-booking .kb-search-button {
  width: 100%;
  min-height: 46px;
  margin-top: 3px;
  border: 0;
  border-radius: 8px;
  background: var(--kb-dark);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.kiroi-booking .kb-search-button:hover {
  background: var(--kb-dark2);
}

.kiroi-booking .kb-search-button:disabled {
  opacity: .6;
  cursor: wait;
}

.kiroi-booking .kb-search-note {
  margin: 9px 0 18px;
  color: #8a95a4;
  font-size: 11px;
  text-align: center;
}

.kiroi-booking .kb-search-results {
  display: grid;
  gap: 8px;
  max-height: 360px;
  overflow: auto;
  padding-right: 5px;
}

.kiroi-booking .kb-search-result {
  display: grid;
  grid-template-columns: 42px 1fr auto;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 48px;
  padding: 9px 11px;
  border: 1px solid #dbe0e6;
  border-radius: 9px;
  background: #fff;
  color: #596679;
  font: inherit;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}

.kiroi-booking .kb-search-result:hover,
.kiroi-booking .kb-search-result:focus-visible {
  border-color: #50617a;
  background: #f5f7f9;
}

.kiroi-booking .kb-search-result strong {
  color: #35445a;
  font-size: 13px;
}

.kiroi-booking .kb-search-result-day {
  color: #7f8a99;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 750;
}

.kiroi-booking .kb-search-empty,
.kiroi-booking .kb-search-loading {
  padding: 28px 12px;
  color: #7d8795;
  font-size: 13px;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 1080px) {
  .kiroi-booking .kb-shell {
    grid-template-columns: 1fr 1fr;
  }

  .kiroi-booking .kb-search {
    grid-column: 1 / -1;
    border-left: 0;
    border-top: 1px solid var(--kb-line);
  }

  .kiroi-booking .kb-search-results {
    grid-template-columns: repeat(2, minmax(0,1fr));
    max-height: none;
  }
}

@media (max-width: 760px) {
  .kiroi-booking .kb-shell {
    grid-template-columns: 1fr;
  }

  .kiroi-booking .kb-search {
    grid-column: auto;
    padding: 28px 24px;
  }

  .kiroi-booking .kb-search-results {
    grid-template-columns: 1fr;
  }
}


/* RW-Buchungen 1.8.0 – individuelles Layout */
.kiroi-booking {
  --kb-dark: var(--kb-user-left, #4d5c70);
  --kb-dark2: var(--kb-user-primary-hover, #435267);
  --kb-text: var(--kb-user-text, #4f5b6c);
  --kb-muted: var(--kb-user-muted, #8792a2);
  --kb-line: var(--kb-user-border, #e2e6eb);
  --kb-soft: var(--kb-user-heading-bg, #f3f5f7);
}

.kiroi-booking .kb-shell {
  min-height: var(--kb-user-height, 590px);
}

.kiroi-booking .kb-left {
  background: var(--kb-user-left, #4d5c70);
}

.kiroi-booking .kb-right {
  background: var(--kb-user-right, #ffffff);
}

.kiroi-booking .kb-search {
  background: var(--kb-user-search, #fbfcfd);
  border-color: var(--kb-user-border, #e2e6eb);
}

.kiroi-booking .kb-primary,
.kiroi-booking .kb-search-button {
  background: var(--kb-user-primary, #4d5c70);
}

.kiroi-booking .kb-primary:hover,
.kiroi-booking .kb-search-button:hover {
  background: var(--kb-user-primary-hover, #435267);
}

.kiroi-booking .kb-date-heading {
  background: var(--kb-user-heading-bg, #f3f5f7);
}

.kiroi-booking .kb-daybtn.available:after {
  background: var(--kb-user-dot, #ffffff);
}

.kiroi-booking .kb-daybtn.selected {
  background: var(--kb-user-selected-bg, #ffffff);
  color: var(--kb-user-selected-text, #253247);
}

.kiroi-booking .kb-daybtn.selected:after {
  background: var(--kb-user-selected-text, #253247);
}

.kiroi-booking .kb-timebtn {
  background: var(--kb-user-time-bg, #ffffff);
  border-color: var(--kb-user-border, #e2e6eb);
}

.kiroi-booking .kb-timebtn:hover,
.kiroi-booking .kb-timebtn.active {
  background: var(--kb-user-time-active-bg, #f5f7f9);
}

.kiroi-booking .kb-grid input,
.kiroi-booking .kb-grid textarea,
.kiroi-booking .kb-search-field select {
  background: var(--kb-user-input-bg, #ffffff);
  border-color: var(--kb-user-border, #e2e6eb);
}

.kiroi-booking[data-density="compact"] .kb-left {
  padding-top: 24px;
  padding-bottom: 22px;
}

.kiroi-booking[data-density="compact"] .kb-right,
.kiroi-booking[data-density="compact"] .kb-search {
  padding-top: 24px;
  padding-bottom: 22px;
}

.kiroi-booking[data-density="compact"] .kb-profile {
  margin-bottom: 16px;
}

.kiroi-booking[data-density="compact"] .kb-avatar {
  width: 62px;
  height: 62px;
  margin-bottom: 10px;
}

.kiroi-booking[data-density="compact"] .kb-title {
  font-size: 20px;
}

.kiroi-booking[data-density="compact"] .kb-subtitle {
  margin-top: 4px;
}

.kiroi-booking[data-density="compact"] .kb-type-switch {
  margin-bottom: 18px;
}

.kiroi-booking[data-density="compact"] .kb-cal-head {
  margin-bottom: 15px;
}

.kiroi-booking[data-density="compact"] .kb-cal-head strong {
  font-size: 19px;
}

.kiroi-booking[data-density="compact"] .kb-weekdays,
.kiroi-booking[data-density="compact"] .kb-days {
  gap: 4px;
}

.kiroi-booking[data-density="compact"] .kb-date-heading {
  margin-bottom: 16px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.kiroi-booking[data-density="compact"] .kb-duration {
  margin-bottom: 14px;
  gap: 7px;
}

.kiroi-booking[data-density="compact"] .kb-duration button {
  min-height: 40px;
  padding: 7px 9px;
  font-size: 13px;
}

.kiroi-booking[data-density="compact"] .kb-times {
  height: 300px;
}

.kiroi-booking[data-density="compact"] .kb-search-intro {
  margin-bottom: 14px;
}

.kiroi-booking[data-density="compact"] .kb-search-field {
  margin-bottom: 10px;
}

.kiroi-booking[data-density="compact"] .kb-search-results {
  max-height: 285px;
}

@media (max-width: 760px) {
  .kiroi-booking .kb-shell {
    min-height: 0;
  }
}
