/* =================================================================
   BUCHUNGSKARTEN  (Gebuchte Veranstaltungen)
   Ergaenzung zu style.css / userspezifisch_style.css
   Baut vollstaendig auf --kundenfarbe & Co. auf.
   Einbinden NACH den beiden bestehenden CSS-Dateien.
================================================================= */

:root{
  --geb-line: #e2e4e8;
  --geb-paid: #4A8000;
  --geb-paid-soft: color-mix(in srgb, #4A8000 12%, white);
  --geb-open: #800000;
  --geb-open-soft: color-mix(in srgb, #800000 10%, white);
  --geb-wait: #b07d00;
  --geb-wait-soft: color-mix(in srgb, #F8C00D 18%, white);
  --geb-akzent: #F8C00D;
  --geb-radius: 10px;
  --geb-shadow: 0 1px 2px rgba(0,0,32,.06), 0 6px 16px rgba(0,0,32,.05);
}

/* ---------- Zusammenfassung + Tabs ---------- */
.geb-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
.geb-sumcard{background:#fff;border:1px solid var(--geb-line);border-radius:var(--geb-radius);
  padding:10px 18px;min-width:160px;box-shadow:var(--geb-shadow);
  font-family:kundenschrift,Arial,sans-serif;}
.geb-sumcard .k{font-size:var(--font-size-xsmall);text-transform:uppercase;letter-spacing:.05em;color:#777;}
.geb-sumcard .v{font-size:clamp(18px,1.5vw,26px);font-weight:700;color:var(--kundenfarbe);}
.geb-sumcard.alert .v{color:var(--geb-open);}

.geb-tabs{display:flex;gap:2px;border-bottom:2px solid var(--geb-line);margin-bottom:24px;flex-wrap:wrap;}
a.geb-tab, a.geb-tab:visited{
  font-family:kundenschrift,Arial,sans-serif;font-size:var(--font-size-body);font-weight:600;
  color:#666;background:none;padding:10px 16px;border-bottom:3px solid transparent;
  margin-bottom:-2px;border-radius:0;text-decoration:none;}
a.geb-tab:hover{color:var(--kundenfarbe);background:var(--heller_hg_kundenfarbe);border-radius:6px 6px 0 0;}
a.geb-tab .count{background:var(--geb-line);border-radius:99px;padding:1px 8px;
  font-size:var(--font-size-xsmall);margin-left:6px;color:#555;}
a.geb-tab.active{color:var(--kundenfarbe);border-bottom-color:var(--kundenfarbe);}
a.geb-tab.active .count{background:var(--heller_hg_kundenfarbe);color:var(--kundenfarbe);}

/* ---------- Buchungskarte ---------- */
.booking{background:#fff;border:1px solid var(--geb-line);border-radius:var(--geb-radius);
  box-shadow:var(--geb-shadow);margin-bottom:20px;overflow:hidden;
  font-family:kundenschrift,Arial,sans-serif;}
.booking .statusbar{height:4px;background:var(--geb-paid);}
.booking.unpaid .statusbar{background:var(--geb-open);}
.booking.free .statusbar{background:var(--heller_hg_kundenfarbe);}
.booking.past .statusbar{background:#c9ced6;}
.booking.wl .statusbar{background:var(--geb-akzent);}

.bhead{display:grid;grid-template-columns:80px 1fr auto;gap:18px;padding:18px 20px 14px;align-items:start;}

/* Kalender-Kachel: aktuell = kundenfarbe / vergangen = rot (bestehende Konvention) */
.cal{border:1px solid var(--geb-line);border-radius:8px;text-align:center;overflow:hidden;
  background:#fff;min-width:72px;}
.cal-mon{background:var(--kundenfarbe);color:#fff;font-size:var(--font-size-xsmall);
  font-weight:600;letter-spacing:.1em;padding:3px 0;text-transform:uppercase;}
.cal.past .cal-mon{background:var(--button-rot);}
.cal.past{border-color:color-mix(in srgb, var(--button-rot) 40%, white);}
.cal-day{font-size:clamp(20px,1.8vw,30px);font-weight:700;line-height:1.15;padding-top:3px;color:#1f2937;}
.cal.past .cal-day{color:var(--button-rot);}
.cal-year{font-size:var(--font-size-xsmall);color:#777;padding-bottom:5px;}
.cal.tbd .cal-day{font-size:var(--font-size-small);padding:10px 4px;}

.btitle{font-size:clamp(16px,1.3vw,22px);font-weight:600;margin:0 0 4px;color:#1f2937;line-height:var(--line-height-tight);}
.bmeta{font-size:var(--font-size-small);color:#666;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;}

.bprice{text-align:right;min-width:160px;}
.bprice .price{font-size:clamp(18px,1.6vw,26px);font-weight:700;color:#1f2937;}
.paychip{display:inline-block;margin-top:4px;font-size:var(--font-size-xsmall);
  font-weight:700;border-radius:99px;padding:3px 12px;}
.paychip.paid{background:var(--geb-paid-soft);color:var(--geb-paid);}
.paychip.open{background:var(--geb-open);color:#fff;}
.paychip.free{background:#eef0ec;color:#666;}
.payref{font-size:var(--font-size-xsmall);color:#666;margin-top:6px;}
.payref code{background:#f4f5f2;border:1px solid var(--geb-line);border-radius:5px;
  padding:1px 6px;font-family:monospace;}

/* ---------- Handlungsbedarf (kompakte Variante der Hinweis-Meldung) ---------- */
.geb-todo{margin:0 20px 12px;background:var(--geb-wait-soft);border:1px solid var(--geb-akzent);
  border-radius:8px;padding:10px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  font-size:var(--font-size-small);}
.geb-todo b{color:var(--geb-wait);}

/* ---------- Einwilligungen ---------- */
.consents{display:flex;flex-wrap:wrap;gap:8px 26px;padding:0 20px 14px;font-size:var(--font-size-small);}
.consent{display:flex;align-items:center;gap:9px;}
.consent form{display:contents;}
.switch{position:relative;width:38px;height:22px;flex:none;}
.switch input{opacity:0;width:0;height:0;}
.slider{position:absolute;inset:0;background:#cdd3cc;border-radius:99px;transition:.2s;cursor:pointer;}
.slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;
  background:#fff;border-radius:50%;transition:.2s;}
.switch input:checked + .slider{background:var(--geb-paid);}
.switch input:checked + .slider:before{transform:translateX(16px);}
.switch input:focus-visible + .slider{outline:2px solid var(--kundenfarbe);outline-offset:2px;}
.consent .status-ro{font-size:var(--font-size-xsmall);font-weight:700;border-radius:99px;padding:2px 10px;}
.consent .status-ro.ja{background:var(--geb-paid-soft);color:var(--geb-paid);}
.consent .status-ro.nein{background:var(--geb-open-soft);color:var(--geb-open);}

.infobtn{width:17px;height:17px;border-radius:50%;border:1px solid #888;color:#666;
  font-size:.65rem;display:inline-grid;place-items:center;cursor:help;flex:none;
  background:none;font-weight:700;padding:0;}
.geb-tip{position:relative;display:inline-block;}
.geb-tip .tiptext{visibility:hidden;opacity:0;transition:.15s;position:absolute;bottom:135%;left:50%;
  transform:translateX(-50%);background:#1f2937;color:#fff;font-size:var(--font-size-xsmall);
  line-height:1.5;padding:10px 12px;border-radius:8px;width:290px;z-index:50;}
.geb-tip:hover .tiptext,.geb-tip:focus-within .tiptext{visibility:visible;opacity:1;}

/* ---------- Aktionen + Details ---------- */
.bactions{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 16px;align-items:center;}
.bactions .spacer{flex:1;}
.bactions .hinweis-ro{font-size:var(--font-size-xsmall);color:#777;}

details.more{border-top:1px solid var(--geb-line);}
details.more summary{list-style:none;cursor:pointer;padding:11px 20px;
  font-size:var(--font-size-small);font-weight:600;color:var(--kundenfarbe);
  display:flex;align-items:center;gap:8px;}
details.more summary::-webkit-details-marker{display:none;}
details.more summary .chev{transition:.2s;display:inline-block;}
details.more[open] summary .chev{transform:rotate(90deg);}
.moregrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px;padding:4px 20px 20px;font-size:var(--font-size-small);}
.moregrid h4{margin:0 0 7px;font-size:var(--font-size-xsmall);text-transform:uppercase;
  letter-spacing:.06em;color:#888;font-weight:700;font-family:kundenschrift,Arial,sans-serif;}
.itemline{display:flex;justify-content:space-between;gap:12px;padding:5px 0;
  border-bottom:1px dashed var(--geb-line);}
.itemline:last-child{border-bottom:none;}
.itemline.total{border-top:1px solid var(--geb-line);font-weight:700;}
.addr{white-space:pre-line;color:#666;}

/* Download-Chips: globalen a:hover hier bewusst neutralisieren */
a.doc, a.doc:visited{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--geb-line);
  border-radius:6px;padding:6px 11px;margin:0 6px 6px 0;font-size:var(--font-size-xsmall);
  color:#1f2937;background:#fff;text-decoration:none;}
a.doc:hover{border-color:var(--kundenfarbe);color:var(--kundenfarbe);background:#fff;}

/* ---------- Im Auftrag ---------- */
.geb-sectionhead{display:flex;align-items:center;gap:12px;margin:38px 0 6px;flex-wrap:wrap;}
.geb-sectionhead h2{font-size:clamp(18px,1.5vw,26px);margin:0;color:var(--kundenfarbe);font-weight:700;}
.geb-sectionhead .hint{font-size:var(--font-size-xsmall);color:#777;}
.persongroup{display:flex;align-items:center;gap:10px;margin:20px 0 10px;
  font-weight:600;font-size:var(--font-size-small);flex-wrap:wrap;}
.persongroup .avatar{width:32px;height:32px;border-radius:50%;background:#5b3f86;color:#fff;
  display:grid;place-items:center;font-weight:600;font-size:var(--font-size-xsmall);flex:none;}
.persongroup .switchuser{margin-left:auto;}

@media(max-width:640px){
  .bhead{grid-template-columns:64px 1fr;}
  .bprice{grid-column:1/-1;text-align:left;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
  .bactions .button, .bactions .button_rot, .bactions .button_kundenfarbe{width:100%;margin-left:0;}
}
@media(prefers-reduced-motion:reduce){
  .slider,.slider:before,details.more summary .chev,.geb-tip .tiptext{transition:none;}
}
