/* Boxenkalender – Frontend. Alles unter .bk-wrap / .bk-app, damit das Theme nicht stört. */
.bk-wrap, .bk-app { --bk-ink:#1a1a1a; --bk-mute:#767671; --bk-line:#e3e3df; --bk-soft:#f4f4f2; --bk-ok:#1f8a4c; --bk-wait:#c77d00; box-sizing:border-box; color:var(--bk-ink); font-size:15px; line-height:1.4; }
.bk-wrap *, .bk-app * { box-sizing:border-box; }
.bk-wrap { max-width:1240px; margin:0 auto; }
/* Der Plan braucht Breite: aus schmalen Theme-Spalten ausbrechen (nur Desktop, nicht im Backend). */
@media (min-width: 861px) {
	body:not(.wp-admin) .bk-wrap { width:min(1240px, calc(100vw - 48px)); position:relative; left:50%; transform:translateX(-50%); max-width:none; }
}
.bk-h { font-size:1.7em; margin:.2em 0 .3em; letter-spacing:-.01em; }
.bk-sub { color:var(--bk-mute); margin:0 0 1em; }

/* Hinweise */
.bk-flash { padding:12px 16px; border-radius:8px; margin:0 0 16px; border-left:4px solid; }
.bk-flash--ok { background:#e8f5ec; border-color:var(--bk-ok); }
.bk-flash--error { background:#fdeaea; border-color:#c0292b; }
.bk-notice { padding:10px 14px; border-radius:8px; margin:0 0 14px; background:#e8f5ec; border-left:4px solid var(--bk-ok); font-weight:600; }
.bk-notice.is-error { background:#fdeaea; border-color:#c0292b; }
.bk-notice.is-wait { background:#fff4dd; border-color:var(--bk-wait); }

/* Tabs / Navigation */
.bk-tabs { display:flex; flex-wrap:wrap; gap:6px 18px; align-items:center; border-bottom:2px solid var(--bk-ink); margin:0 0 18px; padding:0 0 8px; }
.bk-tabs a { text-decoration:none; color:var(--bk-ink); padding:4px 2px; font-weight:600; border-bottom:2px solid transparent; margin-bottom:-10px; padding-bottom:8px; }
.bk-tabs a.is-on { border-color:var(--bk-accent,#d62027); }
.bk-hello { margin-right:auto; color:var(--bk-mute); }

/* Buttons */
.bk-btn { display:inline-block; text-decoration:none; border:1px solid #c9c9c4; background:#fff; color:var(--bk-ink); border-radius:6px; padding:5px 12px; font-weight:600; font-size:14px; cursor:pointer; }
.bk-btn--ghost:hover { border-color:var(--bk-ink); }
.bk-submit { background:var(--bk-accent,#d62027); color:#fff; border:0; border-radius:6px; padding:12px 20px; font-weight:700; font-size:15px; cursor:pointer; }
.bk-submit:hover { filter:brightness(.92); }

/* Formulare */
.bk-form { max-width:520px; display:grid; gap:14px; }
.bk-form label { display:grid; gap:4px; font-weight:600; font-size:13px; }
.bk-form input[type=text], .bk-form input[type=email], .bk-form input[type=tel], .bk-form input[type=password] { width:100%; border:1px solid #b9b9b3; border-radius:6px; padding:10px 12px; font-size:15px; font-weight:400; background:#fff; color:var(--bk-ink); }
.bk-form input[readonly] { background:var(--bk-soft); color:var(--bk-mute); }
.bk-form .bk-check { display:flex; gap:8px; align-items:center; font-weight:400; }
.bk-form fieldset { border:1px solid var(--bk-line); border-radius:8px; padding:12px; }
.bk-form legend { font-size:13px; font-weight:600; padding:0 6px; }
.bk-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.bk-links { margin:0; font-size:14px; }
.bk-box { max-width:520px; margin-top:26px; padding:16px; background:var(--bk-soft); border-radius:10px; }
.bk-box p { margin:6px 0 12px; color:#444; }
.bk-hp { position:absolute; left:-9999px; height:0; overflow:hidden; }

/* Kontingent */
.bk-quota { float:right; background:var(--bk-soft); border-radius:10px; padding:12px 16px; min-width:240px; margin:0 0 12px 12px; }
.bk-quota__row { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.bk-quota__row b { font-size:1.4em; }
.bk-dots { display:flex; gap:5px; margin-top:8px; }
.bk-dots span { width:26px; height:8px; border-radius:4px; background:var(--bk-line); }
.bk-dots span.is-full { background:var(--bk-accent,#d62027); }
.bk-quota__tariff { font-size:12px; color:var(--bk-mute); margin-top:7px; }

/* Wochenleiste */
.bk-bar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin:0 0 14px; clear:both; }
.bk-weeknav { display:flex; align-items:center; gap:10px; }
.bk-chips { display:flex; gap:6px; }
.bk-chip { border:1px solid #c9c9c4; background:#fff; border-radius:99px; padding:3px 12px; font-size:12px; font-weight:600; cursor:pointer; color:var(--bk-ink); }
.bk-chip.is-on { background:var(--bk-ink); color:#fff; border-color:var(--bk-ink); }
.bk-daytabs { display:none; }

/* Raster */
.bk-grid { display:grid; gap:10px; }
.bk-grid--6 { grid-template-columns:repeat(6, minmax(0,1fr)); }
.bk-grid--7 { grid-template-columns:repeat(7, minmax(0,1fr)); }
.bk-day h3 { display:flex; justify-content:space-between; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--bk-mute); margin:0 0 8px; padding:0 2px 8px; border-bottom:2px solid var(--bk-ink); font-weight:600; }
.bk-day h3 b { color:var(--bk-ink); }
.bk-slot { min-width:0; }
.bk-card.has-color { border-left:6px solid var(--bk-c); background:color-mix(in srgb, var(--bk-c) 9%, #fff); }
.bk-card.has-color.is-mine { background:color-mix(in srgb, var(--bk-ok) 12%, #fff); }
.bk-card.has-color.is-wait { background:#fffaf0; }
.bk-card.has-color.is-info { background:color-mix(in srgb, var(--bk-c) 5%, #f4f4f2); }
/* Desktop: Raster mit Zeilen je Uhrzeit, damit gleiche Beginnzeiten nebeneinander in einer Linie stehen. */
@media (min-width: 861px) {
	.bk-day { display:contents; }
	.bk-day h3 { grid-row:1; grid-column:var(--c); }
	.bk-slot, .bk-empty { grid-row:var(--r); grid-column:var(--c); }
}
.bk-day.is-today h3 { color:var(--bk-accent,#d62027); border-color:var(--bk-accent,#d62027); }
.bk-empty { color:#aaa; font-size:12px; margin:6px 2px; }

.bk-card { border:1px solid var(--bk-line); border-radius:8px; padding:9px 10px; margin:0 0 8px; background:#fff; font-size:12.5px; }
.bk-card__t { display:flex; justify-content:space-between; align-items:center; gap:6px; font-weight:700; font-size:13px; flex-wrap:wrap; }
.bk-card__n { margin-top:2px; }
.bk-card__i { color:var(--bk-mute); font-size:11.5px; }
.bk-card__m { display:flex; justify-content:space-between; color:var(--bk-mute); font-size:11.5px; margin-top:2px; gap:6px; }
.bk-bar2 { height:5px; background:var(--bk-line); border-radius:9px; overflow:hidden; margin:6px 0 8px; }
.bk-bar2 i { display:block; height:100%; background:var(--bk-ink); }
.bk-bar2.is-full i { background:#999; }
.bk-pill { display:inline-block; padding:1px 8px; border-radius:99px; font-size:11px; font-weight:700; white-space:nowrap; }
.bk-pill--ok { background:#e1f3e8; color:var(--bk-ok); }
.bk-pill--wait { background:#fdefd2; color:var(--bk-wait); }
.bk-pill--mute { background:#eee; color:#777; }
.bk-act { display:block; width:100%; text-align:center; border-radius:6px; padding:6px; font-weight:700; font-size:12px; border:1px solid var(--bk-ink); background:#fff; color:var(--bk-ink); cursor:pointer; font-family:inherit; line-height:1.3; }
.bk-act:hover:not(.bk-act--dis):not([disabled]) { background:var(--bk-ink); color:#fff; }
.bk-act[disabled] { opacity:.6; cursor:wait; }
.bk-act--ok { background:var(--bk-ok); border-color:var(--bk-ok); color:#fff; }
.bk-act--ok:hover:not([disabled]) { background:#17703c !important; }
.bk-act--wait { background:var(--bk-wait); border-color:var(--bk-wait); color:#fff; }
.bk-act--wait:hover:not([disabled]) { background:#a36500 !important; }
.bk-act--full { border-style:dashed; }
.bk-act--dis { border-color:#ccc; color:#999; cursor:default; }
.bk-card.is-mine { border-color:var(--bk-ok); background:#f4fbf6; }
.bk-card.is-wait { border-color:var(--bk-wait); background:#fffaf0; }
.bk-card.is-past, .bk-card.is-early { opacity:.55; }
.bk-card.is-info { background:#f0f0ee; border-style:dashed; }
.bk-ics { display:block; text-align:center; font-size:11.5px; margin-top:6px; color:var(--bk-mute); }
.bk-people { display:block; width:100%; margin-top:6px; background:none; border:0; padding:2px; font-size:11.5px; color:#2a64a8; text-decoration:underline; cursor:pointer; font-family:inherit; }

/* Filter */
.bk-app[data-filter="free"] .bk-card:not(.is-free):not(.is-info) { display:none; }
.bk-app[data-filter="mine"] .bk-card:not(.is-booked):not(.is-info) { display:none; }

.bk-legend { margin-top:16px; display:flex; gap:16px; flex-wrap:wrap; color:#555; font-size:12px; }
.bk-hint { border-left:4px solid var(--bk-ink); background:var(--bk-soft); padding:12px 16px; margin-top:18px; font-size:13px; color:#444; border-radius:0 8px 8px 0; }
.bk-cta { margin-top:16px; font-weight:600; }

/* Teilnehmerliste */
.bk-dialog { border:0; border-radius:12px; padding:0; max-width:440px; width:92vw; box-shadow:0 12px 40px rgba(0,0,0,.3); }
.bk-dialog::backdrop { background:rgba(0,0,0,.45); }
.bk-dialog__h { display:flex; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--bk-line); }
.bk-dialog__h strong { display:block; }
.bk-dialog__h small { color:var(--bk-mute); }
.bk-dialog__b { padding:10px 18px 16px; max-height:60vh; overflow:auto; }
.bk-dialog__b ol { margin:0; padding-left:20px; }
.bk-dialog__b li { padding:3px 0; }
.bk-dialog__b li small { color:var(--bk-mute); }
.bk-dialog__x { border:0; background:none; font-size:20px; cursor:pointer; line-height:1; }

/* Mobil: ein Tag nach dem anderen */
@media (max-width: 860px) {
	.bk-quota { float:none; margin:0 0 12px; }
	.bk-row { grid-template-columns:1fr; }
	.bk-daytabs { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:4px; margin:0 0 12px; }
	.bk-daytab { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; min-height:54px; text-align:center; border:1.5px solid #c9c9c4; background:#fff; border-radius:10px; padding:6px 0 5px; cursor:pointer; color:var(--bk-ink); font-family:inherit; line-height:1.15; -webkit-tap-highlight-color:transparent; }
	.bk-daytab b { font-size:14px; font-weight:700; }
	.bk-daytab span { font-size:10.5px; opacity:.75; }
	.bk-daytab em { font-style:normal; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--bk-accent,#d62027); }
	.bk-daytab.is-today { border-color:var(--bk-accent,#d62027); box-shadow:inset 0 -3px 0 var(--bk-accent,#d62027); }
	.bk-daytab.is-on { background:var(--bk-ink); color:#fff; border-color:var(--bk-ink); }
	.bk-daytab.is-on span { opacity:.85; }
	.bk-daytab.is-today.is-on { background:var(--bk-accent,#d62027); border-color:var(--bk-accent,#d62027); box-shadow:0 2px 8px rgba(0,0,0,.25); }
	.bk-daytab.is-today.is-on em { color:#fff; }
	.bk-grid { display:block; }
	.bk-day { display:none; }
	.bk-day.is-on { display:block; }
	.bk-day h3 { display:none; }
	.bk-card { padding:12px; font-size:14px; }
	.bk-card__t { font-size:15px; }
	.bk-act { padding:10px; font-size:14px; }
}

.bk-card__d { font-size:11.5px; color:var(--bk-mute,#666); font-weight:600; margin-bottom:2px; }
@media (max-width: 400px) {
	.bk-daytabs { gap:3px; }
	.bk-daytab b { font-size:13px; }
	.bk-daytab span { font-size:9.5px; }
}

/* Probeschüler */
.bk-trialtag { display:inline-block; background:#fff3cd; color:#7a5b00; border:1px solid #f0d77a; border-radius:999px; padding:1px 8px; font-size:11px; font-weight:700; line-height:1.5; vertical-align:middle; }
.bk-trialtag--card { display:block; text-align:center; border-radius:8px; margin-top:8px; padding:4px 8px; font-size:12px; }
.bk-card.has-trial { box-shadow:inset 0 0 0 2px #f0d77a; }
.bk-trial-li { background:#fffbea; margin:0 -6px; padding:3px 6px !important; border-radius:6px; }
.bk-trialdel { margin-left:8px; border:0; background:none; color:#b32d2e; cursor:pointer; font-size:12px; text-decoration:underline; font-family:inherit; }
.bk-trialform { display:grid; gap:6px; margin-top:14px; padding-top:12px; border-top:1px solid #e2e2de; }
.bk-trialform input { padding:8px 10px; border:1px solid #c9c9c4; border-radius:8px; font:inherit; }
.bk-trialerr { color:#b32d2e; font-size:13px; }

/* Probetraining-Anmeldung */
.bk-trial-link { display:block; width:100%; margin-top:8px; padding:0; border:0; background:none; color:var(--bk-accent,#d62027); font:inherit; font-size:12.5px; font-weight:700; text-decoration:underline; text-align:left; cursor:pointer; }
.bk-trialreq { display:grid; gap:10px; }
.bk-trialreq label { display:grid; gap:3px; font-size:12px; font-weight:700; }
.bk-trialreq input { padding:9px 10px; border:1px solid #c9c9c4; border-radius:8px; font:inherit; font-weight:400; font-size:15px; }
.bk-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.bk-trialok { background:#e6f5ea; border:1px solid #9ad2ab; border-radius:10px; padding:12px 14px; line-height:1.5; font-size:14px; }
.bk-trialtag--req { background:#e3f0ff; color:#0b4a8f; border-color:#9cc4f0; }
.bk-card.has-req { box-shadow:inset 0 0 0 2px #9cc4f0; }
.bk-card.has-req.has-trial { box-shadow:inset 0 0 0 2px #f0d77a, inset 0 0 0 4px #9cc4f0; }
.bk-trialok-btn { margin-left:8px; border:1px solid #1d7a3b; background:#fff; color:#1d7a3b; border-radius:6px; padding:1px 8px; font-size:12px; font-weight:700; cursor:pointer; }
/* Absenden-Button im Popup: unabhängig vom Theme gut sichtbar (dunkel, weiße Schrift) */
#bk-trial-dialog .bk-trialsubmit,
#bk-trial-dialog .bk-trialsubmit:hover,
#bk-trial-dialog .bk-trialsubmit:focus,
#bk-trial-dialog .bk-trialsubmit:active { display:block !important; width:100% !important; box-sizing:border-box !important; margin:8px 0 0 !important; padding:16px 18px !important; border:2px solid #151210 !important; border-radius:10px !important; background:#151210 !important; color:#fff !important; font:inherit !important; font-size:17px !important; font-weight:800 !important; letter-spacing:.02em !important; text-transform:none !important; text-decoration:none !important; text-align:center !important; cursor:pointer !important; box-shadow:0 2px 0 rgba(0,0,0,.25) !important; opacity:1 !important; }
#bk-trial-dialog .bk-trialsubmit:hover,
#bk-trial-dialog .bk-trialsubmit:focus { background:#d62027 !important; border-color:#d62027 !important; }
#bk-trial-dialog .bk-trialsubmit[disabled] { background:#6b6b66 !important; border-color:#6b6b66 !important; cursor:wait !important; }
