/* All rules are scoped to the opt-in network bookings workspace. */
#bookings.pg-bookings { --pgb-ink:#182b43; --pgb-muted:#66788e; --pgb-line:#e2e9f1; --pgb-blue:#205bbd; --pgb-bg:#f3f6fb; color:var(--pgb-ink); }
#bookings.pg-bookings > .booking-layout, #bookings.pg-bookings > .panel { display:none!important; }
#pgBookingsRoot [hidden] { display:none!important; }
#pgBookingsRoot *, #pgBookingsRoot *::before, #pgBookingsRoot *::after { box-sizing:border-box; }
#pgBookingsRoot { min-width:0; }
#pgBookingsRoot button { cursor:pointer; font:inherit; transition:background .15s,border-color .15s; }
#pgBookingsRoot button:disabled { cursor:not-allowed; opacity:.5; }
#pgBookingsRoot button:focus-visible, #pgBookingsRoot input:focus-visible, #pgBookingsRoot select:focus-visible { outline:3px solid #aacaff; outline-offset:2px; }
#pgBookingsRoot .pgb-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:4px 0 20px; }
#pgBookingsRoot .pgb-eyebrow { color:#6e81a0; font-size:10px; font-weight:750; letter-spacing:.12em; }
#pgBookingsRoot h2 { margin:5px 0 7px; font-size:24px; line-height:1.25; color:var(--pgb-ink); }
#pgBookingsRoot .pgb-heading p { margin:0; font-size:13px; color:var(--pgb-muted); }
#pgBookingsRoot .pgb-heading-actions { display:flex; flex-wrap:wrap; gap:8px; }
#pgBookingsRoot .pgb-primary, #pgBookingsRoot .pgb-secondary { min-height:40px; border-radius:9px; padding:10px 15px; border:1px solid var(--pgb-line); font-size:13px; font-weight:650; box-shadow:none; }
#pgBookingsRoot .pgb-primary { background:var(--pgb-blue); border-color:var(--pgb-blue); color:white; }
#pgBookingsRoot .pgb-primary:hover:not(:disabled) { background:#184994; }
#pgBookingsRoot .pgb-secondary { background:white; color:var(--pgb-ink); }
#pgBookingsRoot .pgb-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
#pgBookingsRoot .pgb-metric { background:#edf4fd; border:1px solid #dce8f8; border-radius:12px; padding:14px 17px; }
#pgBookingsRoot .pgb-metric span { display:block; color:#506784; font-size:12px; font-weight:650; }
#pgBookingsRoot .pgb-metric strong { display:block; font-size:27px; line-height:1.2; margin:6px 0; color:#204674; }
#pgBookingsRoot .pgb-metric small { font-size:11px; color:#72849a; }
#pgBookingsRoot .pgb-workspace { border:1px solid var(--pgb-line); border-radius:16px; background:white; overflow:hidden; box-shadow:0 4px 18px #14315605; }
#pgBookingsRoot .pgb-toolbar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding:16px 18px 12px; }
#pgBookingsRoot .pgb-date-nav { display:flex; gap:6px; align-items:center; flex:1; }
#pgBookingsRoot .pgb-date-nav button { height:36px; padding:7px 12px; background:white; border:1px solid var(--pgb-line); border-radius:8px; color:var(--pgb-ink); font-size:13px; }
#pgBookingsRoot .pgb-date-nav button[aria-label] { font-size:23px; line-height:20px; }
#pgBookingsRoot .pgb-date-label { display:flex; align-items:center; gap:8px; font-size:11px; color:var(--pgb-muted); }
#pgBookingsRoot .pgb-date-label input { width:144px; min-height:36px; padding:5px 8px; }
#pgBookingsRoot .pgb-segments { display:flex; border:1px solid var(--pgb-line); padding:3px; background:#f4f7fb; border-radius:9px; }
#pgBookingsRoot .pgb-segments button { border:0; background:transparent; color:var(--pgb-muted); padding:7px 11px; font-size:12px; border-radius:6px; font-weight:650; }
#pgBookingsRoot .pgb-segments button.is-active { background:white; box-shadow:0 1px 4px #172e4515; color:var(--pgb-blue); }
#pgBookingsRoot .pgb-filters { display:grid; grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr)) auto; gap:10px; padding:0 18px 16px; align-items:end; }
#pgBookingsRoot .pgb-filters label { display:grid; gap:5px; font-size:11px; color:var(--pgb-muted); font-weight:600; min-width:0; }
#pgBookingsRoot input, #pgBookingsRoot select, #pgBookingsRoot textarea { min-width:0; border:1px solid #dce4ee; border-radius:8px; background:white; color:var(--pgb-ink); font-family:inherit; font-size:13px; padding:8px 10px; min-height:38px; box-shadow:none; }
#pgBookingsRoot .pgb-reset, #pgBookingsRoot .pgb-refresh { background:white; color:var(--pgb-muted); border:1px solid var(--pgb-line); font-size:12px; border-radius:8px; padding:9px 10px; }
#pgBookingsRoot .pgb-week-strip { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; padding:13px 18px; background:#fafbfd; border-block:1px solid var(--pgb-line); }
#pgBookingsRoot .pgb-week-strip button { position:relative; display:grid; gap:5px; text-align:left; border:1px solid transparent; background:transparent; border-radius:10px; color:var(--pgb-ink); padding:10px; }
#pgBookingsRoot .pgb-week-strip button.is-active { background:#edf4ff; border-color:#bcd2f5; }
#pgBookingsRoot .pgb-week-strip span { color:var(--pgb-muted); font-size:10px; text-transform:uppercase; }
#pgBookingsRoot .pgb-week-strip strong { font-size:13px; }
#pgBookingsRoot .pgb-week-strip small { font-size:10px; color:var(--pgb-muted); }
#pgBookingsRoot .pgb-week-strip i { position:absolute; top:12px; right:9px; width:5px; height:5px; border-radius:50%; background:var(--pgb-blue); }
#pgBookingsRoot .pgb-context { display:flex; align-items:center; gap:10px; padding:16px 18px; }
#pgBookingsRoot .pgb-context h3 { flex:1; margin:0; font-size:15px; text-transform:capitalize; }
#pgBookingsRoot .pgb-context span { color:var(--pgb-muted); font-size:11px; }
#pgBookingsRoot .pgb-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,36%); gap:0; border-top:1px solid var(--pgb-line); align-items:start; }
#pgBookingsRoot .pgb-content:has(.pgb-roster[hidden]) { grid-template-columns:1fr; }
#pgBookingsRoot .pgb-agenda { padding:18px; min-width:0; background:#fbfcfe; min-height:360px; }
#pgBookingsRoot .pgb-day-label { display:flex; gap:10px; align-items:center; margin:0 0 10px; color:var(--pgb-muted); font-size:11px; text-transform:capitalize; }
#pgBookingsRoot .pgb-day-label span { background:#eaf0f8; border-radius:20px; padding:2px 7px; }
#pgBookingsRoot .pgb-session { width:100%; display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:14px; text-align:left; padding:14px; border:1px solid var(--pgb-line); border-radius:11px; background:white; color:var(--pgb-ink); margin-bottom:9px; box-shadow:0 1px 3px #24354e03; }
#pgBookingsRoot .pgb-session:hover { border-color:#b8cbe5; }
#pgBookingsRoot .pgb-session.is-selected { background:#f0f6ff; border-color:#9ebded; box-shadow:inset 3px 0 var(--pgb-blue); }
#pgBookingsRoot .pgb-session.is-canceled { opacity:.65; }
#pgBookingsRoot .pgb-session-time { font-size:16px; font-weight:750; border-right:1px solid var(--pgb-line); padding-right:10px; }
#pgBookingsRoot .pgb-session-time small { display:block; font-size:11px; color:var(--pgb-muted); font-weight:500; margin-top:6px; }
#pgBookingsRoot .pgb-session-main { display:grid; gap:5px; min-width:0; overflow-wrap:anywhere; }
#pgBookingsRoot .pgb-session-main strong { font-size:14px; }
#pgBookingsRoot .pgb-session-main span { font-size:12px; color:var(--pgb-muted); }
#pgBookingsRoot .pgb-session-main small { font-size:10px; color:#8190a3; }
#pgBookingsRoot .pgb-places { align-self:center; text-align:right; color:#197357; }
#pgBookingsRoot .pgb-places strong { display:block; font-size:14px; }
#pgBookingsRoot .pgb-places small { display:block; font-size:10px; margin-top:5px; }
#pgBookingsRoot .pgb-places.is-full { color:#90703c; }
#pgBookingsRoot .pgb-week-agenda { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
#pgBookingsRoot .pgb-week-agenda .pgb-session { grid-template-columns:52px minmax(0,1fr); gap:10px; padding:12px; }
#pgBookingsRoot .pgb-week-agenda .pgb-places { grid-column:2; text-align:left; display:flex; gap:8px; align-items:center; }
#pgBookingsRoot .pgb-week-agenda .pgb-places small { margin:0; }
#pgBookingsRoot .pgb-no-lessons { font-size:11px; color:#93a0b1; padding:14px 0; border-top:1px dashed var(--pgb-line); }
#pgBookingsRoot .pgb-roster { border-left:1px solid var(--pgb-line); min-width:0; background:white; }
#pgBookingsRoot .pgb-roster-head { padding:18px; border-bottom:1px solid var(--pgb-line); background:#fcfdff; }
#pgBookingsRoot .pgb-back-agenda { display:none; }
#pgBookingsRoot .pgb-roster-head h3 { margin:7px 0 10px; font-size:19px; line-height:1.3; }
#pgBookingsRoot .pgb-roster-head p { margin:5px 0; font-size:12px; color:var(--pgb-muted); }
#pgBookingsRoot .pgb-roster-capacity { display:flex; justify-content:space-between; gap:8px; background:#edf5f3; padding:10px; border-radius:7px; margin:14px 0; font-size:11px; color:#277058; }
#pgBookingsRoot .pgb-roster-head .pgb-primary { width:100%; }
#pgBookingsRoot .pgb-roster-people { max-height:620px; overflow-y:auto; }
#pgBookingsRoot .pgb-person { border-bottom:1px solid var(--pgb-line); padding:15px 17px; background:white; }
#pgBookingsRoot .pgb-person:last-child { border:0; }
#pgBookingsRoot .pgb-person.is-inactive { background:#fafbfd; }
#pgBookingsRoot .pgb-person-head { display:flex; align-items:start; gap:8px; justify-content:space-between; }
#pgBookingsRoot .pgb-person-head strong { display:block; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
#pgBookingsRoot .pgb-person-head small { display:block; font-size:11px; color:var(--pgb-muted); margin-top:5px; line-height:1.4; }
#pgBookingsRoot .pgb-status { white-space:nowrap; border-radius:20px; padding:5px 8px; background:#eef3f9; color:#536b8c; font-size:10px; font-weight:650; }
#pgBookingsRoot .pgb-status-visited { color:#217458; background:#e8f7f0; }
#pgBookingsRoot .pgb-status-no_show, #pgBookingsRoot .pgb-status-canceled, #pgBookingsRoot .pgb-status-late_canceled { background:#fbedef; color:#ac4958; }
#pgBookingsRoot .pgb-person-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:11px; }
#pgBookingsRoot .pgb-person-actions button { background:white; border:1px solid var(--pgb-line); color:#44617e; font-size:11px; font-weight:600; padding:6px 8px; border-radius:6px; min-height:30px; }
#pgBookingsRoot .pgb-person-actions .pgb-link { border-color:transparent; padding-inline:3px; color:#56769b; }
#pgBookingsRoot .pgb-person-actions .pgb-danger { color:#b34958; }
#pgBookingsRoot .pgb-note { font-size:11px; color:#718198; margin:10px 0 0; overflow-wrap:anywhere; }
#pgBookingsRoot .pgb-empty { padding:40px 20px; text-align:center; max-width:460px; margin:auto; }
#pgBookingsRoot .pgb-empty-icon { display:inline-flex; width:48px; height:48px; align-items:center; justify-content:center; font-size:23px; color:#6590c3; background:#ecf3fd; border:1px solid #dae6f6; border-radius:13px; }
#pgBookingsRoot .pgb-empty h3 { font-size:16px; margin:15px 0 8px; }
#pgBookingsRoot .pgb-empty p { font-size:12px; line-height:1.7; color:var(--pgb-muted); margin:0 0 18px; }
#pgBookingsRoot .pgb-roster-empty, #pgBookingsRoot .pgb-read-only { padding:20px 18px; font-size:12px; line-height:1.6; color:var(--pgb-muted); }
#pgBookingsRoot .pgb-read-only { padding:0; }
#pgBookingsRoot .pgb-error { margin:0 18px 16px; padding:12px 14px; background:#fff4ed; color:#985537; border-radius:8px; font-size:12px; line-height:1.5; }
#pgBookingsRoot .pgb-records { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
#pgBookingsRoot .pgb-records .pgb-person { border:1px solid var(--pgb-line); border-radius:11px; }
body.pgb-dialog-open { overflow:hidden; }
#pgBookingsRoot .pgb-modal { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:24px; }
#pgBookingsRoot .pgb-backdrop { position:absolute; inset:0; background:#14253c66; backdrop-filter:blur(3px); }
#pgBookingsRoot .pgb-dialog { position:relative; width:min(780px,100%); max-height:calc(100dvh - 48px); border:1px solid var(--pgb-line); border-radius:17px; background:white; display:flex; flex-direction:column; box-shadow:0 20px 80px #132c4a33; outline:none; }
#pgBookingsRoot .pgb-modal.is-manager .pgb-dialog { width:min(1080px,100%); }
#pgBookingsRoot .pgb-dialog-head { display:flex; align-items:start; gap:16px; justify-content:space-between; padding:20px 24px; border-bottom:1px solid var(--pgb-line); }
#pgBookingsRoot .pgb-dialog-head h2 { font-size:20px; margin:0 0 5px; }
#pgBookingsRoot .pgb-dialog-head p { font-size:12px; color:var(--pgb-muted); margin:0; line-height:1.5; }
#pgBookingsRoot .pgb-dialog-head > button { background:#f5f7fb; border:1px solid var(--pgb-line); border-radius:8px; color:var(--pgb-muted); padding:7px 10px; }
#pgBookingsRoot .pgb-dialog-body { overflow-y:auto; padding:20px 24px; min-height:0; overscroll-behavior:contain; }
#pgBookingsRoot .pgb-dialog .panel { padding:0; border:0; box-shadow:none; border-radius:0; background:white; }
#pgBookingsRoot .pgb-dialog .booking-create-panel > .panel-head { display:none; }
#pgBookingsRoot .booking-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
#pgBookingsRoot .booking-form label { font-size:12px; color:#53677f; font-weight:600; display:grid; gap:6px; }
#pgBookingsRoot .booking-form .booking-client-search { grid-column:1 / -1; }
#pgBookingsRoot .booking-capacity-presets { display:none; }
#pgBookingsRoot .booking-submit-row { grid-column:1 / -1; display:grid; grid-template-columns:1fr 2fr; gap:14px; }
#pgBookingsRoot .booking-submit-row button[type="submit"] { grid-column:1 / -1; width:100%; background:var(--pgb-blue); padding:12px; border:0; border-radius:9px; color:white; min-height:42px; font-size:13px; font-weight:650; }
#pgBookingsRoot .pgb-slot-hint { grid-column:1 / -1; background:#f2f6fd; border:1px solid #dce7f7; font-size:12px; padding:10px 12px; border-radius:8px; color:#496383; line-height:1.6; }
#pgBookingsRoot .booking-client-results { position:static; box-shadow:none; max-height:220px; overflow:auto; }
#pgBookingsRoot .booking-client-results:empty { display:none; }
#pgBookingsRoot .booking-client-results button { text-align:left; display:grid; gap:4px; width:100%; background:white; color:var(--pgb-ink); border:1px solid var(--pgb-line); border-radius:7px; padding:10px; margin-top:4px; font-size:12px; }
#pgBookingsRoot .booking-client-results span { font-size:11px; color:var(--pgb-muted); }
#pgBookingsRoot .trainer-form { grid-template-columns:repeat(3,minmax(0,1fr)); }
#pgBookingsRoot .trainer-row { align-items:start; }
#pgBookingsRoot .trainer-row .row-actions { flex-wrap:wrap; max-width:240px; }
@media(min-width:1500px) { #pgBookingsRoot .pgb-week-agenda { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1100px) {
  #pgBookingsRoot .pgb-heading { align-items:start; flex-direction:column; gap:14px; }
  #pgBookingsRoot .pgb-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #pgBookingsRoot .pgb-search { grid-column:1 / -1; }
  #pgBookingsRoot .pgb-reset { grid-column:1 / -1; justify-self:start; }
  #pgBookingsRoot .pgb-content { grid-template-columns:minmax(0,1fr) minmax(290px,40%); }
  #pgBookingsRoot .pgb-session { grid-template-columns:52px minmax(0,1fr); gap:10px; }
  #pgBookingsRoot .pgb-places { grid-column:2; text-align:left; display:flex; align-items:center; gap:10px; }
  #pgBookingsRoot .pgb-places small { margin:0; }
  #pgBookingsRoot .pgb-week-agenda { grid-template-columns:1fr; }
}
@media(max-width:800px) {
  #pgBookingsRoot .pgb-back-agenda { display:block; margin-bottom:15px; border:0; background:transparent; color:var(--pgb-blue); font-size:12px; padding:0; }
  #pgBookingsRoot .pgb-content { grid-template-columns:1fr; }
  #pgBookingsRoot .pgb-roster { border-left:0; border-top:1px solid var(--pgb-line); }
  #pgBookingsRoot .pgb-roster-people { max-height:none; }
  #pgBookingsRoot .pgb-records { grid-template-columns:1fr; }
  #pgBookingsRoot .trainer-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:520px) {
  #pgBookingsRoot h2 { font-size:21px; }
  #pgBookingsRoot .pgb-heading-actions { width:100%; }
  #pgBookingsRoot .pgb-heading-actions button { flex:1; font-size:11px; padding:9px; }
  #pgBookingsRoot .pgb-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:14px; }
  #pgBookingsRoot .pgb-metric { padding:12px; }
  #pgBookingsRoot .pgb-metric strong { font-size:23px; }
  #pgBookingsRoot .pgb-metric small { font-size:10px; }
  #pgBookingsRoot .pgb-toolbar { padding:12px; gap:10px; }
  #pgBookingsRoot .pgb-date-nav { flex-basis:100%; gap:5px; }
  #pgBookingsRoot .pgb-date-label { font-size:0; flex:1; }
  #pgBookingsRoot .pgb-date-label input { width:100%; font-size:13px; }
  #pgBookingsRoot .pgb-segments { flex:1; justify-content:center; }
  #pgBookingsRoot .pgb-segments button { flex:1; padding:7px 6px; font-size:11px; white-space:nowrap; }
  #pgBookingsRoot .pgb-filters { padding:0 12px 12px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  #pgBookingsRoot .pgb-filters .pgb-search { grid-column:1 / -1; }
  #pgBookingsRoot .pgb-reset { grid-column:auto; align-self:end; }
  #pgBookingsRoot .pgb-week-strip { gap:2px; padding:10px 6px; }
  #pgBookingsRoot .pgb-week-strip button { padding:8px 3px; text-align:center; border-radius:7px; }
  #pgBookingsRoot .pgb-week-strip strong { font-size:10px; }
  #pgBookingsRoot .pgb-week-strip small { font-size:8px; }
  #pgBookingsRoot .pgb-week-strip i { top:5px; right:4px; width:4px; height:4px; }
  #pgBookingsRoot .pgb-context { padding:12px; flex-wrap:wrap; }
  #pgBookingsRoot .pgb-context h3 { font-size:13px; flex-basis:60%; }
  #pgBookingsRoot .pgb-context span { font-size:10px; }
  #pgBookingsRoot .pgb-agenda { padding:12px; min-height:250px; }
  #pgBookingsRoot .pgb-modal { padding:10px; }
  #pgBookingsRoot .pgb-dialog { max-height:calc(100dvh - 20px); border-radius:13px; }
  #pgBookingsRoot .pgb-dialog-head, #pgBookingsRoot .pgb-dialog-body { padding:16px; }
  #pgBookingsRoot .booking-form, #pgBookingsRoot .trainer-form, #pgBookingsRoot .booking-submit-row { grid-template-columns:1fr; }
  #pgBookingsRoot .pgb-dialog input, #pgBookingsRoot .pgb-dialog select, #pgBookingsRoot .pgb-dialog textarea { font-size:16px; }
}
