/* ── BOOKING PAGE STYLES ── */
.bk-wrap { max-width:1020px;margin:0 auto;padding:0 28px; }

/* Shell */
.bk-shell {
  display:grid;grid-template-columns:320px 1fr;gap:0;
  background:var(--surface);border:1px solid var(--border);
  border-radius:20px;overflow:hidden;box-shadow:var(--s4);
}
.bk-left  { background:var(--head);padding:36px 32px;display:flex;flex-direction:column;gap:24px; }
.bk-right { padding:36px 36px; }

/* Left panel */
.bk-eng-sel { display:flex;flex-direction:column;gap:8px; }
.bk-eng-opt {
  display:flex;align-items:center;gap:12px;padding:12px 14px;
  border:1.5px solid rgba(255,255,255,.1);border-radius:12px;
  background:rgba(255,255,255,.04);cursor:pointer;transition:all .15s;
}
.bk-eng-opt:hover { border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.08); }
.bk-eng-opt.sel   { border-color:var(--blue);background:rgba(27,79,216,.2); }
.bk-av {
  width:40px;height:40px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0;
}
.bk-eng-name { font-size:.875rem;font-weight:600;color:rgba(255,255,255,.9);display:block;margin-bottom:1px; }
.bk-eng-role { font-size:.72rem;color:rgba(255,255,255,.4); }
.bk-eng-avail{ font-size:.68rem;font-weight:700;color:var(--green);display:flex;align-items:center;gap:4px;margin-top:2px; }
.bk-eng-busy { font-size:.68rem;font-weight:700;color:rgba(255,255,255,.35);display:flex;align-items:center;gap:4px;margin-top:2px; }

/* Session type */
.bk-types { display:flex;flex-direction:column;gap:8px; }
.bk-type {
  padding:12px 14px;border:1.5px solid rgba(255,255,255,.1);border-radius:10px;
  background:rgba(255,255,255,.03);cursor:pointer;transition:all .15s;
}
.bk-type:hover { border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.07); }
.bk-type.sel   { border-color:var(--blue);background:rgba(27,79,216,.15); }
.bk-type-top   { display:flex;align-items:center;justify-content:space-between;margin-bottom:3px; }
.bk-type-name  { font-size:.875rem;font-weight:600;color:rgba(255,255,255,.85); }
.bk-type-dur   { font-size:.72rem;font-weight:700;color:rgba(255,255,255,.35);background:rgba(255,255,255,.07);padding:2px 7px;border-radius:8px; }
.bk-type-desc  { font-size:.75rem;color:rgba(255,255,255,.4);line-height:1.5; }

.bk-divider { height:1px;background:rgba(255,255,255,.07); }
.bk-section-lbl { font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:8px; }

/* Right: calendar */
.bk-cal-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:24px; }
.bk-month { font-family:'DM Serif Display',serif;font-size:1.3rem;color:var(--head); }
.bk-nav   { display:flex;gap:6px; }
.bk-nav-btn {
  width:34px;height:34px;border:1.5px solid var(--border);border-radius:8px;
  background:none;cursor:pointer;font-size:.9rem;color:var(--muted);transition:all .13s;
  display:flex;align-items:center;justify-content:center;
}
.bk-nav-btn:hover { border-color:var(--blue);color:var(--blue);background:var(--blue-l); }

/* Day grid */
.bk-dow { display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px; }
.bk-dow-lbl { text-align:center;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 0; }
.bk-days { display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:28px; }
.bk-day {
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .13s;
  border:1.5px solid transparent;position:relative;
}
.bk-day.empty   { cursor:default; }
.bk-day.past    { color:var(--border2);cursor:default; }
.bk-day.avail   { color:var(--head);background:var(--bg);border-color:var(--border); }
.bk-day.avail:hover { border-color:var(--blue);background:var(--blue-l);color:var(--blue); }
.bk-day.busy    { color:var(--muted);background:var(--bg);cursor:default; }
.bk-day.today   { font-weight:700; }
.bk-day.sel     { background:var(--blue);color:#fff;border-color:var(--blue);font-weight:700; }
.bk-day.has-dot::after { content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--green); }
.bk-day.sel.has-dot::after { background:rgba(255,255,255,.6); }

/* Time slots */
.bk-times-wrap { border-top:1px solid var(--border);padding-top:24px; }
.bk-times-hd   { display:flex;align-items:center;justify-content:space-between;margin-bottom:14px; }
.bk-times-title { font-size:.9375rem;font-weight:700;color:var(--head); }
.bk-tz-sel     { font-size:.75rem;color:var(--muted);cursor:pointer;background:var(--bg);border:1px solid var(--border);padding:4px 10px;border-radius:6px;outline:none;font-family:inherit; }
.bk-slots      { display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:24px; }
.bk-slot {
  padding:11px 4px;text-align:center;border:1.5px solid var(--border);border-radius:9px;
  font-size:.8375rem;font-weight:600;color:var(--head);cursor:pointer;transition:all .13s;background:var(--bg);
}
.bk-slot:hover { border-color:var(--blue);background:var(--blue-l);color:var(--blue); }
.bk-slot.sel   { background:var(--blue);color:#fff;border-color:var(--blue); }
.bk-slot.busy  { color:var(--muted);background:var(--bg);cursor:default;border-style:dashed; }

/* Confirm form */
.bk-confirm { background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:24px; }
.bk-conf-title { font-size:1rem;font-weight:700;color:var(--head);margin-bottom:16px;display:flex;align-items:center;gap:8px; }
.bk-fg  { margin-bottom:12px; }
.bk-lbl { display:block;font-size:.8rem;font-weight:600;color:var(--head);margin-bottom:5px; }
.bk-inp,.bk-sel,.bk-ta {
  width:100%;padding:10px 13px;border:1.5px solid var(--border);border-radius:8px;
  font-size:.875rem;color:var(--head);background:var(--surface);outline:none;font-family:inherit;
  transition:all .13s;
}
.bk-inp:focus,.bk-sel:focus,.bk-ta:focus { border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,79,216,.1); }
.bk-ta { min-height:72px;resize:vertical;line-height:1.55; }
.bk-sel { -webkit-appearance:none; }
.bk-2c  { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.bk-submit {
  width:100%;padding:14px;background:var(--blue);color:#fff;border:none;
  border-radius:9px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .15s;
  font-family:inherit;display:flex;align-items:center;justify-content:center;gap:8px;
}
.bk-submit:hover { background:var(--blue-d);transform:translateY(-1px);box-shadow:0 5px 20px rgba(27,79,216,.3); }
.bk-submit:disabled { opacity:.45;pointer-events:none; }

/* Summary pill */
.bk-summary {
  background:var(--blue-l);border:1px solid rgba(27,79,216,.2);border-radius:10px;
  padding:12px 16px;margin-bottom:18px;font-size:.8375rem;display:flex;gap:10px;align-items:flex-start;
}
.bk-sum-icon { font-size:1.1rem;flex-shrink:0;margin-top:1px; }

/* Success state */
.bk-success { text-align:center;padding:44px 24px; }
.bk-success-icon { font-size:3rem;margin-bottom:16px; }

@media(max-width:768px){
  .bk-shell{grid-template-columns:1fr;}
  .bk-left{padding:28px 24px;}
  .bk-right{padding:28px 24px;}
  .bk-slots{grid-template-columns:repeat(3,1fr);}
  .bk-2c{grid-template-columns:1fr;}
}
