.ipsb { --ipsb-navy:#101e31; --ipsb-panel:#172940; --ipsb-yellow:#f5c75f; --ipsb-text:#f7f8fb; --ipsb-muted:#c2cfde; --ipsb-border:#43566d; box-sizing:border-box; width:100%; max-width:760px; margin:24px auto; color:var(--ipsb-text); font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:16px; line-height:1.6; text-align:left; color-scheme:dark; }
.ipsb *, .ipsb *::before, .ipsb *::after { box-sizing:border-box; }
.ipsb .ipsb-card { background:var(--ipsb-navy); border:1px solid var(--ipsb-border); padding:clamp(22px,5vw,44px); border-radius:24px; box-shadow:0 16px 40px #07101d1a; }
.ipsb h2 { color:var(--ipsb-text); font:inherit; font-weight:750; font-size:clamp(25px,4.8vw,35px); letter-spacing:-.025em; line-height:1.2; margin:22px 0 16px; }
.ipsb h3 { color:var(--ipsb-text); font:inherit; font-size:19px; font-weight:700; margin:25px 0 12px; }
.ipsb p { color:var(--ipsb-muted); margin:0 0 20px; font:inherit; }
.ipsb strong { color:var(--ipsb-text); font-weight:700; }
.ipsb label { display:block; color:var(--ipsb-text); margin:18px 0 7px; font:inherit; font-weight:600; }
.ipsb input, .ipsb textarea { display:block; width:100%; min-width:0; max-width:100%; border:1px solid var(--ipsb-border); border-radius:12px; background:#0d1828; color:var(--ipsb-text); padding:13px 14px; font:inherit; line-height:1.5; box-shadow:none; min-height:51px; }
.ipsb textarea { resize:vertical; }
.ipsb input[type=date] { min-height:54px; -webkit-appearance:none; appearance:none; }
.ipsb button, .ipsb a.ipsb-primary, .ipsb a.ipsb-secondary { display:inline-flex; justify-content:center; align-items:center; min-height:50px; max-width:100%; border:1px solid transparent; border-radius:12px; background:var(--ipsb-yellow); color:#172030; padding:12px 20px; font:inherit; font-weight:700; line-height:1.4; letter-spacing:0; text-align:center; text-decoration:none; cursor:pointer; white-space:normal; transition:background .15s ease, border-color .15s ease; box-shadow:none; }
.ipsb form>button { width:100%; margin-top:22px; }
.ipsb button:hover, .ipsb a.ipsb-primary:hover { background:#ffda81; color:#101e31; }
.ipsb button.ipsb-secondary, .ipsb a.ipsb-secondary, .ipsb button.ipsb-slot { color:var(--ipsb-text); border-color:var(--ipsb-border); background:var(--ipsb-panel); }
.ipsb button.ipsb-secondary:hover, .ipsb a.ipsb-secondary:hover, .ipsb button.ipsb-slot:hover { border-color:var(--ipsb-yellow); background:#213650; }
.ipsb button.ipsb-text { color:var(--ipsb-muted); background:transparent; border-color:transparent; padding:10px 0; text-decoration:underline; text-underline-offset:4px; }
.ipsb :is(button,a,input,textarea):focus-visible { outline:3px solid #ffe3a3; outline-offset:4px; }
.ipsb h2:focus { outline:none; }
.ipsb button:disabled, .ipsb input:disabled, .ipsb textarea:disabled { opacity:.65; cursor:wait; }
.ipsb .ipsb-eyebrow { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; font-size:11px; font-weight:750; letter-spacing:.14em; color:var(--ipsb-yellow); }
.ipsb .ipsb-eyebrow span { color:var(--ipsb-muted); font-size:12px; font-weight:400; letter-spacing:0; }
.ipsb .ipsb-progress { display:flex; gap:14px; flex-wrap:wrap; margin:24px 0 8px; padding-bottom:16px; border-bottom:1px solid var(--ipsb-border); font-size:13px; color:var(--ipsb-muted); }
.ipsb .ipsb-current { color:var(--ipsb-yellow); font-weight:700; }
.ipsb .ipsb-hint { font-size:13px; color:var(--ipsb-muted); margin-top:13px; line-height:1.55; }
.ipsb .ipsb-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:20px; }
.ipsb .ipsb-actions>* { flex:1 1 190px; }
.ipsb .ipsb-durations, .ipsb .ipsb-slots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ipsb .ipsb-durations button { min-height:76px; font-size:19px; }
.ipsb .ipsb-credit { background:var(--ipsb-panel); padding:18px; border-radius:14px; border:1px solid var(--ipsb-border); }
.ipsb .ipsb-credit strong { display:block; font-size:24px; color:var(--ipsb-yellow); }
.ipsb .ipsb-details { border:1px solid var(--ipsb-border); background:var(--ipsb-panel); border-radius:14px; margin:20px 0; padding:16px 18px; }
.ipsb .ipsb-details>div { display:grid; grid-template-columns:80px minmax(0,1fr); gap:16px; padding:5px 0; }
.ipsb .ipsb-details dt { color:var(--ipsb-muted); font-weight:400; }
.ipsb .ipsb-details dd { margin:0; color:var(--ipsb-text); overflow-wrap:anywhere; }
.ipsb .ipsb-badge { display:inline-block; margin-top:28px; padding:4px 12px; color:var(--ipsb-yellow); border:1px solid #f5c75f66; border-radius:100px; font-size:13px; }
.ipsb .ipsb-error { background:#462632; border:1px solid #ec9ba9; color:#ffe5eb; border-radius:12px; padding:14px 16px; margin:20px 0; overflow-wrap:anywhere; }
.ipsb .ipsb-loading { color:var(--ipsb-muted); margin:16px 0 0; }
@media(min-width:560px) { .ipsb .ipsb-slots { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:360px) { .ipsb .ipsb-details>div { grid-template-columns:1fr; gap:0; } .ipsb .ipsb-durations { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .ipsb * { transition:none; } }

/* Drop-in calendar embed. Everything stays below the plugin namespace. */
.ipsb.ipsb-embed { --ipsb-ink:#06090d; --ipsb-light:#fbfbfc; --ipsb-light-text:#3e4758; --ipsb-light-border:#d7dbe2; max-width:1160px; margin:24px auto; color:var(--ipsb-light-text); color-scheme:light; }
.ipsb.ipsb-embed .ipsb-embed__card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); overflow:hidden; border:1px solid #26344a; border-radius:22px; background:var(--ipsb-light); box-shadow:none; }
.ipsb.ipsb-embed .ipsb-embed__calendar { min-width:0; padding:clamp(24px,4vw,52px); background:linear-gradient(145deg,#080b0f,#121f36); color:#f8f9fc; }
.ipsb.ipsb-embed .ipsb-embed__selection { min-width:0; padding:clamp(24px,4vw,52px); background:var(--ipsb-light); color:var(--ipsb-light-text); }
.ipsb.ipsb-embed .ipsb-embed__intro { display:grid; grid-template-columns:64px minmax(0,1fr); gap:17px; align-items:start; margin-bottom:34px; }
.ipsb.ipsb-embed .ipsb-embed__avatar { display:grid; place-items:center; width:64px; height:64px; border:1px solid #ffffff44; border-radius:50%; background:radial-gradient(circle at 35% 28%,#e5c27c 0 8%,#93653d 9% 17%,#19212c 18% 46%,#090c10 47%); color:#fff; font-size:0; overflow:hidden; }
.ipsb.ipsb-embed .ipsb-embed__eyebrow { margin:0 0 7px; color:var(--ipsb-yellow); font-size:11px; font-weight:800; letter-spacing:.13em; }
.ipsb.ipsb-embed .ipsb-embed__intro h2 { margin:0 0 10px; color:#fff; font-size:clamp(22px,2.5vw,33px); }
.ipsb.ipsb-embed .ipsb-embed__intro p { margin:0; color:#c3c8d1; font-size:15px; line-height:1.55; }
.ipsb.ipsb-embed .ipsb-calendar__nav { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:10px; margin:0 0 20px; }
.ipsb.ipsb-embed .ipsb-calendar__nav h3 { margin:0; color:#fff; font-size:clamp(20px,2.3vw,30px); text-align:center; text-transform:capitalize; }
.ipsb.ipsb-embed .ipsb-calendar__nav button { min-width:44px; min-height:44px; padding:0; border:0; background:transparent; color:#fff; font-size:38px; font-weight:300; line-height:1; }
.ipsb.ipsb-embed .ipsb-calendar__nav button:hover { color:var(--ipsb-yellow); background:transparent; }
.ipsb.ipsb-embed .ipsb-calendar__week,.ipsb.ipsb-embed .ipsb-calendar__grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.ipsb.ipsb-embed .ipsb-calendar__week { margin-bottom:7px; color:#c3c8d1; font-size:13px; font-weight:700; text-align:center; }
.ipsb.ipsb-embed .ipsb-calendar__day { width:100%; min-width:0; min-height:44px; padding:5px; border:1px solid transparent; border-radius:50%; background:transparent; color:#fff; font-size:15px; font-weight:650; aspect-ratio:1; }
.ipsb.ipsb-embed .ipsb-calendar__day:hover:not(:disabled) { border-color:#ffffff66; background:#ffffff16; color:#fff; }
.ipsb.ipsb-embed .ipsb-calendar__day.is-outside { color:#687386; }
.ipsb.ipsb-embed .ipsb-calendar__day.is-today { border-color:var(--ipsb-yellow); color:var(--ipsb-yellow); }
.ipsb.ipsb-embed .ipsb-calendar__day.is-selected { border-color:#fff; background:#fff; color:#0e1725; }
.ipsb.ipsb-embed .ipsb-calendar__day.is-unavailable { color:#8290a4; text-decoration:line-through; }
.ipsb.ipsb-embed .ipsb-calendar__day:disabled { color:#4a5567; cursor:not-allowed; }
.ipsb.ipsb-embed .ipsb-embed__selection h2,.ipsb.ipsb-embed .ipsb-embed__selection h3,.ipsb.ipsb-embed .ipsb-embed__selection strong,.ipsb.ipsb-embed .ipsb-embed__selection label { color:#3e4758; }
.ipsb.ipsb-embed .ipsb-embed__selection h2 { margin-top:0; }
.ipsb.ipsb-embed .ipsb-embed__selection p { color:#687386; }
.ipsb.ipsb-embed .ipsb-embed__date { margin:0 0 28px; padding:16px; border-radius:10px; background:#f0f1f3; color:#4e586b; font-size:clamp(21px,2.2vw,29px); font-weight:750; line-height:1.25; text-align:center; }
.ipsb.ipsb-embed .ipsb-embed__duration { margin:0 0 25px; }
.ipsb.ipsb-embed .ipsb-embed__duration p { margin:0 0 9px; color:#4e586b; font-size:18px; font-weight:750; }
.ipsb.ipsb-embed .ipsb-embed__duration strong { display:block; padding:15px; border:1px solid var(--ipsb-light-border); border-radius:9px; background:#f7f8f9; color:#4e586b; font-size:22px; text-align:center; }
.ipsb.ipsb-embed .ipsb-embed__duration button { width:calc(50% - 5px); min-height:52px; margin-right:6px; border-color:var(--ipsb-light-border); border-radius:9px; background:#fff; color:#4e586b; }
.ipsb.ipsb-embed .ipsb-embed__duration button.is-selected,.ipsb.ipsb-embed .ipsb-embed__duration button:hover { border-color:#d59d1e; background:#fff7df; color:#352807; }
.ipsb.ipsb-embed .ipsb-embed__times { display:grid; gap:10px; max-height:350px; overflow:auto; padding-right:3px; }
.ipsb.ipsb-embed .ipsb-embed__times button { width:100%; min-height:58px; border-color:var(--ipsb-light-border); border-radius:8px; background:#fff; color:#4e586b; font-size:20px; font-weight:600; }
.ipsb.ipsb-embed .ipsb-embed__times button:hover { border-color:#d59d1e; background:#fff7df; color:#352807; }
.ipsb.ipsb-embed input,.ipsb.ipsb-embed textarea { border-color:var(--ipsb-light-border); background:#fff; color:#202837; }
.ipsb.ipsb-embed .ipsb-secondary { border-color:var(--ipsb-light-border); background:#fff; color:#4e586b; }
.ipsb.ipsb-embed .ipsb-secondary:hover { border-color:#d59d1e; background:#fff7df; color:#352807; }
.ipsb.ipsb-embed .ipsb-hint { color:#687386; }
.ipsb.ipsb-embed .ipsb-error { color:#741a29; background:#fff0f2; border-color:#eea2ad; }
.ipsb.ipsb-embed .ipsb-details { border-color:var(--ipsb-light-border); background:#f7f8f9; }
.ipsb.ipsb-embed .ipsb-details dt,.ipsb.ipsb-embed .ipsb-details dd { color:#4e586b; }
@media(max-width:767px) { .ipsb.ipsb-embed .ipsb-embed__card { grid-template-columns:1fr; border-radius:16px; } .ipsb.ipsb-embed .ipsb-embed__calendar,.ipsb.ipsb-embed .ipsb-embed__selection { padding:24px 18px; } .ipsb.ipsb-embed .ipsb-embed__intro { grid-template-columns:52px minmax(0,1fr); margin-bottom:26px; } .ipsb.ipsb-embed .ipsb-embed__avatar { width:52px; height:52px; } .ipsb.ipsb-embed .ipsb-calendar__day { min-height:44px; font-size:14px; } }
@media(max-width:359px) { .ipsb.ipsb-embed .ipsb-embed__calendar,.ipsb.ipsb-embed .ipsb-embed__selection { padding:20px 13px; } .ipsb.ipsb-embed .ipsb-calendar__grid { gap:2px; } .ipsb.ipsb-embed .ipsb-calendar__day { min-height:44px; font-size:13px; } .ipsb.ipsb-embed .ipsb-embed__duration button { width:100%; margin:0 0 8px; } }
/* Eingaben im hellen Booking-Bereich lesbar */
.ipsb.ipsb-embed input,
.ipsb.ipsb-embed textarea,
.ipsb.ipsb-embed select {
	color: #344054 !important;
	-webkit-text-fill-color: #344054 !important;
	caret-color: #344054 !important;
}

.ipsb.ipsb-embed input::placeholder,
.ipsb.ipsb-embed textarea::placeholder {
	color: #98A2B3 !important;
	-webkit-text-fill-color: #98A2B3 !important;
	opacity: 1 !important;
}