/* BB Rezerwacja — kalendarz wynajmu w stylu BassBus.
   Self-contained: tokeny zdefiniowane na .bbrez, więc działa na każdym motywie. */
.bbrez{
  --bb-violet:#B026FF;
  --bb-violet-dim:#60158C;
  --bb-violet-glow:rgba(176,38,255,.4);
  --bb-yellow:#FFC800;
  --bb-bg-1:#000;
  --bb-bg-2:#0A0A0A;
  --bb-bg-3:#141414;
  --bb-border:#2A2A2A;
  --bb-fg-1:#FFF;
  --bb-fg-2:#A3A3A3;
  --bb-fg-3:#5C5C5C;
  --bb-font-display:'Anton','Arial Narrow',sans-serif;
  --bb-font-body:'DM Sans',system-ui,sans-serif;
  --bb-font-mono:'Geist Mono','Courier New',monospace;
  background:var(--bb-bg-2);
  color:var(--bb-fg-1);
  font-family:var(--bb-font-body);
  padding:24px;
  border:1px solid var(--bb-border);
}
.bbrez *{box-sizing:border-box;}
.bbrez button{font:inherit;cursor:pointer;background:none;border:none;color:inherit;}

.bbrez-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;}
@media (max-width:968px){.bbrez-grid{grid-template-columns:1fr;}}

/* Kalendarz */
.bbrez .calendar{background:var(--bb-bg-3);border:1px solid var(--bb-border);padding:24px;}
.bbrez .cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.bbrez .cal-header h3{font-family:var(--bb-font-display);font-size:24px;text-transform:uppercase;margin:0;font-weight:400;letter-spacing:.01em;}
.bbrez .cal-nav{display:flex;gap:8px;}
.bbrez .cal-nav button{width:40px;height:40px;border:1px solid var(--bb-border);color:var(--bb-fg-1);font-family:var(--bb-font-mono);font-size:20px;transition:all .15s;}
.bbrez .cal-nav button:hover{border-color:var(--bb-violet);color:var(--bb-violet);}
.bbrez .cal-nav button:disabled{opacity:.3;cursor:not-allowed;}
.bbrez .cal-weekdays,.bbrez .cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.bbrez .cal-weekdays span{text-align:center;font-family:var(--bb-font-mono);font-size:11px;color:var(--bb-fg-3);text-transform:uppercase;padding:8px 0;}
.bbrez .cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--bb-font-mono);font-size:14px;border:1px solid var(--bb-border);cursor:pointer;transition:all .12s;position:relative;}
.bbrez .cal-day.empty{border:none;cursor:default;}
.bbrez .cal-day.past{color:var(--bb-fg-3);border-color:transparent;cursor:not-allowed;opacity:.35;}
.bbrez .cal-day.booked{color:var(--bb-fg-3);background:repeating-linear-gradient(45deg,transparent 0 4px,rgba(255,255,255,.05) 4px 8px);cursor:not-allowed;text-decoration:line-through;border-color:var(--bb-border);}
.bbrez .cal-day.available{color:var(--bb-fg-1);border-color:var(--bb-violet-dim);}
.bbrez .cal-day.available:hover{background:var(--bb-violet);color:var(--bb-bg-1);border-color:var(--bb-violet);}
.bbrez .cal-day.available::after{content:'';position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--bb-violet);}
.bbrez .cal-day.available:hover::after{background:var(--bb-bg-1);}
.bbrez .cal-day.selected{background:var(--bb-violet)!important;color:var(--bb-bg-1)!important;border-color:var(--bb-violet)!important;}
.bbrez .cal-day.selected::after{background:var(--bb-bg-1);}
.bbrez .cal-legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:20px;font-family:var(--bb-font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--bb-fg-2);}
.bbrez .cal-legend span{display:flex;align-items:center;gap:8px;}
.bbrez .cal-legend i{width:14px;height:14px;display:inline-block;border:1px solid var(--bb-border);}
.bbrez .cal-legend i.free{border-color:var(--bb-violet);}
.bbrez .cal-legend i.busy{background:repeating-linear-gradient(45deg,transparent 0 3px,rgba(255,255,255,.12) 3px 6px);}

/* Podsumowanie */
.bbrez .booking-summary{background:var(--bb-bg-3);border:1px solid var(--bb-border);padding:24px;display:flex;flex-direction:column;}
.bbrez .bs-label{font-family:var(--bb-font-mono);font-size:11px;color:var(--bb-violet);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px;}
.bbrez .bs-date{font-family:var(--bb-font-display);font-size:28px;text-transform:uppercase;margin-bottom:16px;line-height:1.1;font-weight:400;}
.bbrez .bs-date.empty{color:var(--bb-fg-3);font-size:20px;}
.bbrez .bs-packages{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.bbrez .bs-pkg{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border:1px solid var(--bb-border);cursor:pointer;transition:all .12s;font-family:var(--bb-font-mono);font-size:13px;}
.bbrez .bs-pkg:hover{border-color:var(--bb-violet);}
.bbrez .bs-pkg.selected{border-color:var(--bb-violet);background:var(--bb-violet-glow);}
.bbrez .bs-pkg .dur{font-weight:500;color:var(--bb-fg-1);}
.bbrez .bs-pkg .price{color:var(--bb-fg-2);}
.bbrez .bs-totals{border-top:1px solid var(--bb-border);padding-top:16px;margin-top:auto;}

/* Przycisk + komunikaty */
.bbrez-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:16px 28px;background:var(--bb-violet);color:var(--bb-bg-1);font-family:var(--bb-font-mono);font-weight:500;font-size:14px;letter-spacing:.05em;text-transform:uppercase;border:2px solid var(--bb-violet);transition:all .15s ease;}
.bbrez-btn:hover:not(:disabled){background:var(--bb-violet-dim);border-color:var(--bb-violet-dim);color:var(--bb-fg-1);}
.bbrez-btn:disabled{opacity:.4;cursor:not-allowed;}
.bbrez-btn.loading{opacity:.7;cursor:wait;}
.bbrez-fine{font-size:11px;color:var(--bb-fg-3);margin:12px 0 0;font-family:var(--bb-font-mono);}
.bbrez-msg{font-size:13px;margin:10px 0 0;min-height:1em;}
.bbrez-msg.error{color:#ff5470;}
.bbrez-msg.ok{color:var(--bb-violet);}

/* Pole „inna liczba godzin” */
.bbrez-hours{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:-8px 0 20px;padding:14px 16px;border:1px solid var(--bb-violet);background:var(--bb-violet-glow);}
.bbrez-hours>label{font-family:var(--bb-font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--bb-fg-2);}
.bbrez-stepper{display:flex;align-items:center;border:1px solid var(--bb-border);background:var(--bb-bg-2);}
.bbrez-stepper button{width:40px;height:40px;font-size:20px;color:var(--bb-fg-1);transition:all .12s;}
.bbrez-stepper button:hover{background:var(--bb-violet);color:var(--bb-bg-1);}
.bbrez-stepper input{width:56px;height:40px;text-align:center;border:0;background:transparent;color:var(--bb-fg-1);font-family:var(--bb-font-mono);font-size:16px;-moz-appearance:textfield;}
.bbrez-stepper input::-webkit-outer-spin-button,.bbrez-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.bbrez-hours-total{font-family:var(--bb-font-mono);font-size:13px;color:var(--bb-fg-1);}
