.ubp1-admin .ubp1-card,.ubp1-front .ubp1-card{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:18px;margin:16px 0;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.ubp1-two{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}.ubp1-two .wide{overflow:auto}.ubp1-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.ubp1-kpis{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;margin:20px 0}.ubp1-kpis>div{background:#fff;border:1px solid #ddd;border-radius:12px;padding:18px}.ubp1-kpis strong{font-size:28px;display:block}.ubp1-kpis span{color:#555}.ubp1-badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;background:#eef}.ubp1-badge.open{background:#d9f7df;color:#135e1f}.ubp1-badge.few{background:#fff3cd;color:#7a5200}.ubp1-badge.waitlist,.ubp1-badge.full{background:#ffe1e1;color:#8a1f1f}.ubp1-badge.cancelled{background:#e5e5e5;color:#555}.ubp1-inline{display:flex;gap:6px;align-items:center}.ubp1-front{max-width:1100px;margin:0 auto}.ubp1-front input,.ubp1-front select,.ubp1-front textarea{width:100%;max-width:560px;padding:10px;border:1px solid #ddd;border-radius:8px}.ubp1-button{display:inline-block;background:#0f172a;color:#fff!important;border:0;border-radius:999px;padding:10px 18px;text-decoration:none;cursor:pointer;margin-top:8px}.ubp1-button.secondary{background:#6b7280}.ubp1-button.small{font-size:13px;padding:7px 12px}.ubp1-list{display:grid;gap:12px}.ubp1-session{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px}.ubp1-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.ubp1-notice{background:#fff7d6;border:1px solid #facc15;border-radius:10px;padding:12px;margin:12px 0}@media(max-width:800px){.ubp1-two{grid-template-columns:1fr}.ubp1-session{display:block}.ubp1-kpis{grid-template-columns:1fr}}


/* v0.2.1 admin settings layout fix */
.ubp1-admin .ubp1-card h2{margin-top:28px;padding-top:10px;border-top:1px solid #e5e7eb}
.ubp1-admin .ubp1-card h2:first-of-type{margin-top:0;border-top:0;padding-top:0}
.ubp1-admin .ubp1-card p{margin:14px 0 18px}
.ubp1-admin .ubp1-card p>label{display:inline-block;vertical-align:top;min-width:260px;margin:0 22px 14px 0;font-weight:600;color:#1d2327}
.ubp1-admin .ubp1-card p>label input:not([type="checkbox"]),
.ubp1-admin .ubp1-card p>label select,
.ubp1-admin .ubp1-card p>label textarea{display:block;width:100%;max-width:440px;margin-top:6px;padding:8px 10px;border-radius:8px;border:1px solid #8c8f94;font-weight:400}
.ubp1-admin .ubp1-card p>label input.large-text{max-width:720px}
.ubp1-admin .ubp1-card input[type="checkbox"]{width:22px;height:22px;margin:0 10px 0 0;vertical-align:middle}
.ubp1-admin .ubp1-card p>label:has(input[type="checkbox"]){display:flex;align-items:center;min-width:0;font-size:16px;font-weight:500}
.ubp1-admin .ubp1-helper{background:#eef6ff;border-left:4px solid #2271b1;padding:12px 14px;margin:12px 0;border-radius:8px}


/* v0.2.3 frontend page spacing + form polish */
.ubp1-front,
.entry-content .ubp1-front,
.elementor-widget-container .ubp1-front{
  width:100%;
  max-width:1120px;
  margin:clamp(28px,5vw,64px) auto;
  padding:0 clamp(18px,3vw,28px);
  box-sizing:border-box;
}
.ubp1-front *, .ubp1-admin *{box-sizing:border-box}
.ubp1-front h2{
  font-size:clamp(36px,4.4vw,62px)!important;
  line-height:1.05!important;
  letter-spacing:-.035em;
  margin:0 0 28px!important;
  font-weight:700!important;
  color:#242424;
}
.ubp1-front h3{
  font-size:clamp(24px,2.8vw,38px)!important;
  line-height:1.12!important;
  letter-spacing:-.025em;
  margin:0 0 22px!important;
  font-weight:700!important;
  color:#242424;
}
.ubp1-front .ubp1-card{
  padding:clamp(22px,3vw,34px)!important;
  margin:22px 0!important;
  border:1px solid #e1e1e1!important;
  border-radius:18px!important;
  box-shadow:0 8px 26px rgba(15,23,42,.05)!important;
}
.ubp1-register .ubp1-notice{max-width:100%;margin:0 0 18px!important}
.ubp1-register form{width:100%}
.ubp1-register .ubp1-card p{margin:0 0 18px!important;max-width:760px}
.ubp1-front label{font-size:16px;line-height:1.35;color:#242424;font-weight:500}
.ubp1-front input:not([type="checkbox"]),
.ubp1-front select,
.ubp1-front textarea{
  width:100%!important;
  max-width:760px!important;
  min-height:52px;
  padding:12px 16px!important;
  margin-top:8px;
  border:1px solid #d9d9d9!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#1f2937!important;
  font-size:16px!important;
  line-height:1.35!important;
  box-shadow:none!important;
}
.ubp1-front textarea{min-height:120px;resize:vertical}
.ubp1-front input[type="checkbox"]{width:22px!important;height:22px!important;margin:0 10px 0 0!important;vertical-align:middle;accent-color:#ff5a5f}
.ubp1-front select{appearance:auto;background:#fff!important}
.ubp1-button{
  background:#ff5a5f!important;
  color:#fff!important;
  border:0!important;
  border-radius:999px!important;
  padding:14px 28px!important;
  font-size:16px!important;
  font-weight:700!important;
  text-transform:uppercase;
  letter-spacing:.02em;
  box-shadow:none!important;
}
.ubp1-button:hover{filter:brightness(.96)}
.ubp1-button.secondary{background:#374151!important}
.ubp1-button.small{padding:10px 18px!important;font-size:14px!important}
.ubp1-grid{gap:22px!important}
.ubp1-session{padding:20px!important;border-radius:18px!important}
@media (min-width:900px){
  .ubp1-register .ubp1-card:nth-of-type(2) p,
  .ubp1-register .ubp1-card:nth-of-type(4) p{
    display:inline-block;
    width:calc(50% - 12px);
    margin-right:18px!important;
    vertical-align:top;
  }
  .ubp1-register .ubp1-card:nth-of-type(2) p:nth-child(even),
  .ubp1-register .ubp1-card:nth-of-type(4) p:nth-child(even){margin-right:0!important}
}
@media (max-width:767px){
  .ubp1-front{margin:28px auto;padding:0 16px}
  .ubp1-front .ubp1-card{padding:20px!important;border-radius:14px!important}
  .ubp1-front h2{font-size:34px!important}
  .ubp1-front h3{font-size:26px!important}
  .ubp1-front input:not([type="checkbox"]), .ubp1-front select, .ubp1-front textarea{max-width:100%!important}
}

.ubp1-help{font-size:15px!important;color:#6b7280!important;margin:-8px 0 18px!important}
.ubp1-session-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.ubp1-session-actions form{margin:0!important}
.ubp1-session-bookable{align-items:center!important}
@media (max-width:767px){
  .ubp1-session-actions{justify-content:flex-start;width:100%;margin-top:12px}
  .ubp1-session{display:block!important}
}

.ubp1-schedule-page .ubp1-hero-card{
  background: linear-gradient(135deg,#fff7f2,#ffffff);
  border:1px solid #e6e8ec;
  border-radius:24px;
  padding:32px;
  margin-bottom:24px;
  box-shadow:0 12px 32px rgba(15,23,42,.06);
}
.ubp1-schedule-page .ubp1-eyebrow{
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#ff585d;
  margin:0 0 12px;
}
.ubp1-schedule-page h2{font-size:clamp(32px,5vw,56px);line-height:1.05;margin:0 0 16px;}
.ubp1-schedule-page h3{font-size:clamp(26px,3vw,38px);margin-top:0;}
.ubp1-schedule-page h4{font-size:22px;margin:0 0 10px;}
.ubp1-table-wrap{overflow:auto;margin-top:16px;border:1px solid #e6e8ec;border-radius:16px;}
.ubp1-table-wrap table{width:100%;border-collapse:collapse;background:#fff;}
.ubp1-table-wrap th,.ubp1-table-wrap td{padding:14px 16px;border-bottom:1px solid #edf0f3;text-align:left;}
.ubp1-table-wrap th{background:#f8fafc;font-weight:800;}
.ubp1-evening-grid .ubp1-card{box-shadow:none;background:#fff;}
.ubp1-muted{display:inline-flex;align-items:center;min-height:34px;color:#64748b;font-weight:700;}

/* v0.2.7 waiver form integration */
.ubp1-waiver-box{
  max-width:100%;
  max-height:420px;
  overflow:auto;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fbfbfc;
  padding:18px;
  margin:10px 0 22px;
}
.ubp1-waiver-text{
  margin:0!important;
  white-space:pre-wrap;
  word-break:break-word;
  font-family:inherit;
  font-size:14px;
  line-height:1.55;
  color:#1f2937;
  background:transparent!important;
  border:0!important;
  padding:0!important;
}
.ubp1-waiver-card label{display:inline-flex;align-items:flex-start;gap:10px;line-height:1.45}
.ubp1-waiver-card input[type="checkbox"]{flex:0 0 auto;margin-top:2px!important}

/* v0.2.8 buy passes layout + selected plan notice sync support */
.ubp1-passes{
  max-width:1280px!important;
}
.ubp1-passes .ubp1-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;
  gap:24px!important;
  align-items:stretch!important;
}
.ubp1-passes .ubp1-card{
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  min-height:330px!important;
  padding:34px!important;
  overflow:hidden!important;
}
.ubp1-passes .ubp1-card h3{
  font-size:clamp(28px,2.8vw,42px)!important;
  line-height:1.12!important;
  margin-bottom:22px!important;
}
.ubp1-passes .ubp1-card p{
  font-size:19px!important;
  line-height:1.45!important;
  margin:0 0 24px!important;
}
.ubp1-passes .ubp1-card form{
  margin-top:auto!important;
  width:100%!important;
}
.ubp1-passes .ubp1-button{
  width:100%!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-align:center!important;
  line-height:1.2!important;
  padding:15px 18px!important;
}
.ubp1-selected-plan{
  max-width:100%!important;
}
@media (min-width:1200px){
  .ubp1-passes .ubp1-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media (max-width:720px){
  .ubp1-passes .ubp1-grid{grid-template-columns:1fr!important;}
  .ubp1-passes .ubp1-card{min-height:auto!important;padding:24px!important;}
}

/* v0.3.2 required field markers */
.ubp1-req{color:#dc2626;font-weight:800;margin-left:2px}
.ubp1-required-note{font-size:14px!important;color:#6b7280;margin-top:12px!important}
.ubp1-help-inline{display:inline-block;margin-top:8px;color:#6b7280;font-size:14px}

/* v0.3.4 customer-facing notices + payment success modal */
.ubp1-toast{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:16px 0;padding:16px 18px;border-radius:16px;border:1px solid #facc15;background:#fff7d6;color:#242424;box-shadow:0 10px 30px rgba(15,23,42,.08)}
.ubp1-toast strong{display:block;font-size:18px;margin-bottom:2px}.ubp1-toast p{margin:0!important}.ubp1-toast button{border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:#374151}
.ubp1-toast-success{background:#ecfdf5;border-color:#86efac}.ubp1-toast-warning{background:#fff7d6;border-color:#facc15}
.ubp1-modal-backdrop{position:fixed;z-index:99999;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.ubp1-modal{width:min(520px,96vw);background:#fff;border-radius:24px;padding:34px 28px;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.22)}
.ubp1-modal-icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;background:#dcfce7;color:#166534;font-size:42px;font-weight:800}.ubp1-modal h3{font-size:32px!important;margin:0 0 10px!important}.ubp1-modal p{font-size:17px;margin:0 0 18px!important;color:#4b5563}
.ubp1-register .ubp1-required-note{font-size:14px!important;color:#6b7280!important}.ubp1-req{color:#e11d48;font-weight:800}

/* v0.3.7 booking rule modal */
.ubp1-modal-icon-warning{background:#fff7d6!important;color:#b45309!important;font-size:34px!important}
.ubp1-rule-modal{text-align:left!important;max-width:620px!important}
.ubp1-rule-modal h3{text-align:center!important}.ubp1-rule-modal .ubp1-modal-icon{margin-left:auto!important;margin-right:auto!important}
.ubp1-rule-summary{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:14px!important;color:#1f2937!important}
.ubp1-modal-actions{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:20px}
.ubp1-modal-actions form{margin:0!important}.ubp1-modal-actions .ubp1-button{margin:0!important}
@media(max-width:640px){.ubp1-modal-actions{flex-direction:column}.ubp1-modal-actions form,.ubp1-modal-actions .ubp1-button{width:100%!important}}

/* v0.3.9 admin polish */
.ubp1-admin-polish .ubp1-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.ubp1-admin-polish .ubp1-kpis-extended{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.ubp1-admin-polish .ubp1-dashboard-grid{align-items:start}.ubp1-filterbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 18px}.ubp1-filterbar input,.ubp1-filterbar select{min-height:36px}.ubp1-muted{color:#6b7280;font-size:13px;font-weight:400}.ubp1-admin-status{display:inline-block;padding:4px 9px;border-radius:999px;background:#eef2ff;color:#1e3a8a;font-size:12px;font-weight:700;text-transform:capitalize}.ubp1-admin-status.status-active,.ubp1-admin-status.status-paid,.ubp1-admin-status.status-confirmed,.ubp1-admin-status.status-comp{background:#dcfce7;color:#166534}.ubp1-admin-status.status-cancelled,.ubp1-admin-status.status-failed{background:#fee2e2;color:#991b1b}.ubp1-admin-status.status-unpaid,.ubp1-admin-status.status-pending,.ubp1-admin-status.status-held{background:#fef3c7;color:#92400e}.ubp1-pre{white-space:pre-wrap;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:12px;max-height:220px;overflow:auto}.ubp1-admin-polish .widefat td small{color:#64748b}.ubp1-admin-polish table.widefat{border-radius:10px;overflow:hidden}.ubp1-admin-polish .button-small{min-height:26px;line-height:24px;padding:0 8px}
