:root{
  --privly-primary:#0b7d66;
  --privly-primary-soft:#e8f5f1;
  --privly-bg:#f7f7f5;
  --privly-card:#ffffff;
  --privly-border:#e5e7eb;
  --privly-text:#17181a;
  --privly-muted:#667085;
  --privly-success-bg:#ecfdf3;
  --privly-success:#027a48;
  --privly-error-bg:#fff1f3;
  --privly-error:#b42318;
  --privly-radius:14px;
}
.pb-shell,.pb-panel{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--privly-text);box-sizing:border-box}
.pb-shell *,.pb-panel *{box-sizing:border-box}
.pb-public{width:min(100%,900px);margin:clamp(16px,4vw,40px) auto;padding:0 14px}
.pb-card{background:var(--privly-card);border:1px solid var(--privly-border);border-radius:var(--privly-radius);padding:clamp(16px,2.4vw,24px);box-shadow:0 10px 30px rgba(17,24,39,.06);margin-bottom:18px}
.pb-auth-grid{width:min(100%,980px);margin:clamp(16px,4vw,48px) auto;padding:0 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.pb-login-card{width:100%;margin:0}
.pb-field{margin:0 0 14px}.pb-field label{display:block;font-weight:650;margin-bottom:6px}.pb-field input,.pb-field select,.pb-field textarea{width:100%;border:1px solid #d7dce5;border-radius:12px;padding:11px 12px;background:#fff;font:inherit}.pb-field textarea{min-height:90px;resize:vertical}.pb-button{border:0;border-radius:12px;background:var(--privly-primary);color:#fff;padding:11px 16px;font-weight:750;cursor:pointer;min-height:42px}.pb-button:hover{opacity:.92}.pb-muted{color:var(--privly-muted);font-size:14px}.pb-small{font-size:12px}.pb-message{margin-top:14px;padding:12px;border-radius:12px;display:none}.pb-message.is-ok{display:block;background:var(--privly-success-bg);color:var(--privly-success)}.pb-message.is-error{display:block;background:var(--privly-error-bg);color:var(--privly-error)}.is-hidden{display:none!important}.pb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.pb-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.pb-grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.pb-person,.pb-time{border:1px solid #e1e5ec;background:#fff;border-radius:16px;padding:14px;text-align:left;cursor:pointer}.pb-person strong{display:block}.pb-person span{display:block;color:var(--privly-muted);font-size:13px;margin-top:4px}.pb-person img{width:48px;height:48px;object-fit:cover;border-radius:50%;margin-bottom:8px}.pb-person.is-active,.pb-time.is-active{border-color:var(--privly-primary);box-shadow:0 0 0 3px rgba(21,27,45,.08)}.pb-time-grid{display:flex;flex-wrap:wrap;gap:8px}.pb-time{text-align:center;padding:10px 14px;border-radius:999px}.pb-steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.pb-steps span{font-size:12px;border-radius:999px;background:#f2f4f7;padding:6px 10px;color:var(--privly-muted)}.pb-steps .is-active{background:var(--privly-primary);color:#fff}.pb-check{display:flex;gap:8px;align-items:center;margin:8px 0 14px}.pb-setup-box{background:var(--privly-primary-soft);border:1px solid var(--privly-border);border-radius:16px;padding:14px;margin-bottom:14px}.pb-setup-box code{display:block;white-space:normal;word-break:break-all;background:#fff;border:1px solid var(--privly-border);border-radius:12px;padding:10px;margin-top:10px}.pb-qr{display:block;width:220px;max-width:100%;height:auto;background:#fff;border:1px solid var(--privly-border);border-radius:14px;padding:10px;margin:12px 0}
.pb-panel{position:relative;width:min(100%,1220px);margin:clamp(12px,3vw,28px) auto;display:grid;grid-template-columns:260px minmax(0,1fr);min-height:min(760px,calc(100vh - 56px));background:var(--privly-bg);border-radius:22px;overflow:hidden;border:1px solid var(--privly-border)}.pb-sidebar{background:#0f172a;color:#fff;padding:22px;display:flex;flex-direction:column;gap:18px}.pb-brand{font-size:19px;font-weight:850;margin-bottom:8px}.pb-sidebar nav{display:block}.pb-nav{display:block;color:#d1d5db;text-decoration:none;padding:10px 12px;border-radius:12px;margin-bottom:4px}.pb-nav:hover,.pb-nav.is-active{background:rgba(255,255,255,.1);color:#fff}.pb-link-button{margin-top:auto;background:transparent;border:1px solid rgba(255,255,255,.22);color:#fff;border-radius:12px;padding:10px 12px;cursor:pointer}.pb-main{padding:clamp(16px,2.5vw,28px);overflow:auto;min-width:0}.pb-main h1{margin-top:0}.pb-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:18px}.pb-metric span{display:block;color:var(--privly-muted)}.pb-metric strong{font-size:30px}.pb-table{width:100%;border-collapse:collapse}.pb-table th,.pb-table td{padding:12px;border-bottom:1px solid #edf0f5;text-align:left;vertical-align:top}.pb-table th{font-size:13px;color:var(--privly-muted);font-weight:700}.pb-card:has(.pb-table){overflow-x:auto}.pb-mobile-menu{display:none;position:absolute;top:12px;right:12px;z-index:4;background:#111827;color:#fff;border:0;border-radius:12px;padding:9px 12px;font-weight:700}
@media(max-width:900px){.pb-auth-grid{grid-template-columns:1fr}.pb-panel{grid-template-columns:1fr;width:calc(100% - 20px);min-height:auto;border-radius:18px}.pb-mobile-menu{display:block}.pb-sidebar{display:none;padding:58px 16px 16px}.pb-panel.is-menu-open .pb-sidebar{display:flex}.pb-main{padding:18px}.pb-grid-2{grid-template-columns:1fr}.pb-table{min-width:680px}.pb-public{padding:0 10px}.pb-card{border-radius:16px}.pb-nav{padding:12px}.pb-link-button{margin-top:8px}}
@media(max-width:520px){.pb-grid,.pb-grid-4{grid-template-columns:1fr}.pb-steps span{flex:1;text-align:center}.pb-button{width:100%}.pb-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.pb-time{width:100%}.pb-main h1{font-size:24px}.pb-auth-grid{margin:14px auto}.pb-card{padding:14px}.pb-panel{width:calc(100% - 12px);border-radius:14px}.pb-field input,.pb-field select,.pb-field textarea{font-size:16px}}
.pb-button-danger{background:#b42318}.pb-status-ok{display:inline-block;background:var(--privly-success-bg);color:var(--privly-success);border-radius:12px;padding:10px 12px}.pb-status-error{display:inline-block;background:var(--privly-error-bg);color:var(--privly-error);border-radius:12px;padding:10px 12px}.pb-table form{margin:0}.pb-panel{max-height:none}.pb-main{max-width:100%}
@media(min-width:901px){.pb-panel{height:auto}.pb-sidebar{position:sticky;top:0;align-self:start;min-height:760px}.pb-main{min-height:760px}}

/* v0.7: agent login/onboarding matched to Privly Live Chat login UI */
.pb-login-screen{--accent:#0b7d66;--accent-text:#fff;--bg:#0f1012;--surface:#17181a;--surface-2:#1f2023;--text:#f3f4f6;--muted:#9ca3af;--border:rgba(255,255,255,.08);min-height:100vh;margin:0;padding:40px 20px;background:var(--bg);color:var(--text);display:grid;place-items:center;position:relative;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif}.pb-login-screen:before{content:"";position:absolute;inset:-100px;background:radial-gradient(600px 400px at 20% 10%,rgba(11,125,102,.32),transparent 60%),radial-gradient(500px 400px at 85% 95%,rgba(99,102,241,.15),transparent 65%);filter:blur(60px);z-index:0;pointer-events:none}.pb-live-shell{width:100%;max-width:420px;position:relative;z-index:1}.pb-live-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.pb-live-brand-mark{width:40px;height:40px;border-radius:12px;background:var(--accent);color:var(--accent-text);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;letter-spacing:-.02em;box-shadow:0 8px 22px -6px rgba(11,125,102,.7);overflow:hidden}.pb-live-brand-name{font-weight:600;font-size:15px;letter-spacing:-.01em}.pb-live-brand-sub{font-size:12.5px;color:var(--muted);margin-top:2px}.pb-live-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:30px;box-shadow:0 24px 60px -20px rgba(0,0,0,.5)}.pb-live-card h1{margin:0 0 4px;font-size:22px;font-weight:600;letter-spacing:-.015em;color:var(--text)}.pb-live-card p{margin:0 0 24px;color:var(--muted);font-size:13.5px;line-height:1.5}.pb-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;margin:-8px 0 24px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}.pb-auth-tabs button{border:0;background:transparent;color:var(--muted);border-radius:9px;padding:9px 10px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.pb-auth-tabs button.is-active{background:var(--accent);color:var(--accent-text)}.pb-live-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.pb-live-field label{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.02em;text-transform:uppercase}.pb-live-field input{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:11px 13px;font-size:14px;color:var(--text);font-family:inherit;transition:border-color .2s,box-shadow .2s,background .2s}.pb-live-field input:focus{outline:none;border-color:var(--accent);background:#111214;box-shadow:0 0 0 4px rgba(11,125,102,.18)}.pb-live-btn{width:100%;margin-top:6px;background:var(--accent);color:var(--accent-text);border:0;border-radius:10px;padding:12px 16px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .2s,filter .2s;box-shadow:0 8px 22px -6px rgba(11,125,102,.7)}.pb-live-btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.pb-live-check{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin:2px 0 12px}.pb-live-setup{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:14px}.pb-live-setup strong{display:block;margin-bottom:6px}.pb-live-setup p{margin:0 0 10px}.pb-live-setup code{display:block;white-space:normal;word-break:break-all;background:#111214;border:1px solid var(--border);border-radius:10px;padding:10px;color:var(--text);font-size:12px}.pb-live-qr{display:block;width:220px;max-width:100%;height:auto;background:#fff;border-radius:12px;padding:10px;margin:12px 0}.pb-live-footer{text-align:center;margin-top:22px;font-size:11.5px;color:#6b7280}.pb-login-screen .pb-message{margin-top:16px}.pb-login-screen .pb-message.is-error{display:block;background:rgba(239,68,68,.10);border:1px solid rgba(239,68,68,.30);color:#fca5a5;padding:10px 12px;border-radius:10px;font-size:13px}.pb-login-screen .pb-message.is-ok{display:block;background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.30);color:#86efac;padding:10px 12px;border-radius:10px;font-size:13px}@media(max-width:520px){.pb-login-screen{padding:22px 14px;align-items:start}.pb-live-card{padding:24px 20px;border-radius:18px}.pb-live-shell{max-width:100%}}


/* v1.0 responsive hardening */
.pb-shell,.pb-public,.pb-auth-grid,.pb-panel,.pb-main,.pb-card{max-width:100%;}
.pb-main h1{font-size:clamp(2rem,4.8vw,4.2rem);line-height:.95;letter-spacing:-.04em;margin:0 0 1.25rem;max-width:12ch;overflow-wrap:anywhere;}
.pb-card h2{font-size:clamp(1.1rem,2vw,1.5rem);line-height:1.1;letter-spacing:-.02em;margin:0 0 1rem;}
.pb-main h2,.pb-main h3,.pb-main p{max-width:100%;}
.pb-panel{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:stretch;}
.pb-sidebar{min-width:0;}
.pb-main{display:block;width:100%;}
.pb-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;}
.pb-table{width:100%;min-width:720px;table-layout:auto;border-collapse:collapse;}
.pb-table th,.pb-table td{white-space:nowrap;}
.pb-card>.pb-table-wrap{margin-top:.25rem;}
.pb-card form .pb-table{min-width:640px;}
@media (max-width:1200px){.pb-panel{width:calc(100% - 24px);grid-template-columns:240px minmax(0,1fr)}.pb-main h1{font-size:clamp(1.9rem,4.2vw,3.5rem);}}
@media (max-width:900px){.pb-panel{width:calc(100% - 16px);grid-template-columns:1fr;min-height:auto}.pb-main h1{font-size:clamp(1.85rem,8vw,3rem);max-width:none}.pb-card{padding:16px}.pb-table{min-width:620px}}
@media (max-width:640px){.pb-panel{margin:8px auto 16px;border-radius:16px}.pb-sidebar{padding:62px 14px 14px}.pb-main{padding:14px}.pb-main h1{font-size:clamp(1.7rem,10vw,2.4rem);line-height:1;letter-spacing:-.03em}.pb-cards,.pb-grid,.pb-grid-2,.pb-grid-4{grid-template-columns:1fr}.pb-card{padding:14px;border-radius:14px}.pb-field{margin-bottom:12px}.pb-live-card,.pb-card{box-shadow:0 8px 24px rgba(17,24,39,.06)}.pb-table{min-width:560px}.pb-nav{font-size:15px}}
@media (max-width:420px){.pb-panel{width:calc(100% - 8px);border-radius:14px}.pb-main{padding:12px}.pb-main h1{font-size:1.9rem}.pb-card{padding:12px}.pb-table{min-width:520px}}


.pb-panel {
  width: min(100% - 24px, 1180px) !important;
  margin: 16px auto !important;
  min-height: auto !important;
}
.pb-main h1 {
  font-size: clamp(32px, 5vw, 58px) !important;
  line-height: 1 !important;
  margin-bottom: 24px !important;
}
.pb-card {
  max-width: 100% !important;
  overflow: hidden !important;
}
.pb-table-wrap {
  width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
.pb-table {
  min-width: 680px !important;
}
@media (max-width: 900px) {
  .pb-panel {
    width: calc(100% - 16px) !important;
    display: block !important;
  }
  .pb-main h1 {
    font-size: clamp(28px, 9vw, 42px) !important;
  }
}
@media (max-width: 560px) {
  .pb-panel {
    width: calc(100% - 8px) !important;
    margin: 8px auto !important;
  }
  .pb-main {
    padding: 14px !important;
  }
  .pb-table {
    min-width: 540px !important;
  }
}


/* Privly Booking 1.1.03: full-bleed portal layout inside narrow WP themes */
.pb-panel {
  width: min(1280px, calc(100vw - 32px)) !important;
  max-width: none !important;
  margin-top: 16px !important;
  margin-bottom: 24px !important;
  margin-left: calc(50% - min(640px, calc(50vw - 16px))) !important;
  margin-right: auto !important;
  grid-template-columns: 280px minmax(0, 1fr) !important;
}

.pb-main {
  min-width: 0 !important;
  width: 100% !important;
}

.pb-card {
  width: 100% !important;
}

.pb-cards {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
}

@media (min-width: 1400px) {
  .pb-panel {
    width: min(1360px, calc(100vw - 48px)) !important;
    margin-left: calc(50% - min(680px, calc(50vw - 24px))) !important;
    grid-template-columns: 300px minmax(0, 1fr) !important;
  }
}

@media (max-width: 900px) {
  .pb-panel {
    width: calc(100vw - 16px) !important;
    margin-left: calc(50% - 50vw + 8px) !important;
    margin-right: 0 !important;
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 560px) {
  .pb-panel {
    width: calc(100vw - 8px) !important;
    margin-left: calc(50% - 50vw + 4px) !important;
  }
}


/* Privly Booking 1.1.04: customer booking page */
.pb-booking-page {
  width: min(100% - 24px, 1040px);
  margin: clamp(16px, 4vw, 44px) auto;
  padding: 0;
}
.pb-booking-hero {
  border-radius: 24px;
  padding: clamp(22px, 4vw, 42px);
  margin-bottom: 18px;
  color: #fff;
  background:
    radial-gradient(700px 220px at 100% 0%, rgba(16,185,129,.35), transparent 60%),
    linear-gradient(135deg, #0f172a 0%, #111827 58%, #0b7d66 140%);
  box-shadow: 0 20px 60px -30px rgba(15,23,42,.75);
}
.pb-booking-hero h1 {
  margin: 8px 0 8px;
  font-size: clamp(34px, 6vw, 68px);
  line-height: .95;
  letter-spacing: -.055em;
}
.pb-booking-hero p {
  margin: 0;
  color: rgba(255,255,255,.78);
  font-size: clamp(15px, 2vw, 18px);
}
.pb-eyebrow {
  display: inline-flex;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.82);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .02em;
}
.pb-booking-card {
  padding: clamp(16px, 3vw, 28px);
}
.pb-booking-section {
  padding: 18px 0;
  border-top: 1px solid var(--privly-border);
}
.pb-booking-section:first-of-type {
  border-top: 0;
  padding-top: 6px;
}
.pb-section-head {
  margin-bottom: 14px;
}
.pb-section-head h2 {
  margin: 0 0 4px;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.1;
  letter-spacing: -.025em;
}
.pb-section-head p {
  margin: 0;
  color: var(--privly-muted);
  font-size: 14px;
}
.pb-staff-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.pb-person {
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.pb-person:hover {
  transform: translateY(-1px);
  border-color: rgba(11,125,102,.45);
  box-shadow: 0 12px 34px -22px rgba(15,23,42,.55);
}
.pb-person.is-active {
  border-color: var(--privly-primary);
  box-shadow: 0 0 0 4px rgba(11,125,102,.12);
}
.pb-time-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: 10px;
}
.pb-time {
  border-radius: 14px;
  width: 100%;
}
.pb-loading,.pb-empty-state {
  grid-column: 1 / -1;
  border: 1px dashed var(--privly-border);
  border-radius: 16px;
  padding: 18px;
  color: var(--privly-muted);
  background: #fff;
}
@media (max-width: 640px) {
  .pb-booking-page {
    width: calc(100% - 12px);
    margin: 8px auto 20px;
  }
  .pb-booking-hero {
    border-radius: 18px;
    padding: 22px 18px;
  }
  .pb-booking-card {
    padding: 14px;
  }
  .pb-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pb-steps span {
    text-align: center;
  }
  .pb-time-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* Privly Booking 1.1.05: staff management + danger zone */
.pb-status-pill {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 12px;
  font-weight: 750;
}
.pb-status-pill-ok {
  background: var(--privly-success-bg);
  color: var(--privly-success);
}
.pb-status-pill-warn {
  background: #fffbeb;
  color: #b45309;
}
.pb-status-pill-off {
  background: #f3f4f6;
  color: #6b7280;
}
.pb-button-secondary {
  background: #fff !important;
  color: var(--privly-text) !important;
  border: 1px solid var(--privly-border) !important;
  box-shadow: none !important;
}
.pb-actions-cell {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.pb-actions-cell form {
  margin: 0;
}
.pb-danger-zone {
  border-color: rgba(180,35,24,.35) !important;
  background: linear-gradient(180deg,#fff,#fff7f7) !important;
}
.pb-danger-zone h2 {
  color: #b42318;
}
.pb-danger-zone .pb-field input {
  border-color: rgba(180,35,24,.35);
}


/* Privly Booking 1.1.06: dashboard agents and service assignment */
.pb-table td .pb-muted {
  font-size: 12px;
}
.pb-actions-cell .pb-button {
  padding: 9px 11px;
  min-height: 36px;
  font-size: 13px;
}


/* Privly Booking 1.1.07: forced marker + staff fixes */
.pb-status-pill {
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  border-radius:999px;
  padding:6px 9px;
  font-size:12px;
  font-weight:750;
}
.pb-status-pill-ok { background:var(--privly-success-bg); color:var(--privly-success); }
.pb-status-pill-warn { background:#fffbeb; color:#b45309; }
.pb-status-pill-off { background:#f3f4f6; color:#6b7280; }
.pb-button-secondary {
  background:#fff !important;
  color:var(--privly-text) !important;
  border:1px solid var(--privly-border) !important;
  box-shadow:none !important;
}
.pb-actions-cell {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.pb-actions-cell form { margin:0; }
.pb-actions-cell .pb-button {
  padding:9px 11px;
  min-height:36px;
  font-size:13px;
}
.pb-danger-zone {
  border-color:rgba(180,35,24,.35) !important;
  background:linear-gradient(180deg,#fff,#fff7f7) !important;
}
.pb-danger-zone h2 { color:#b42318; }


/* Privly Booking 1.1.08: agent visibility hotfix */
.pb-warning-card {
  border-color: rgba(245,158,11,.35) !important;
  background: #fffbeb !important;
}


/* Privly Booking 1.1.09: invite-table data source fix */
.pb-warning-card {
  border-color: rgba(245,158,11,.35) !important;
  background: #fffbeb !important;
}


/* Privly Booking 1.1.10: pending invite list cleanup */
/* Privly Booking 1.1.11: no-join invite list hotfix */
/* Privly Booking 1.1.12: bookable toggle and treatment flow */
.pb-status-error {
  display:inline-block;
  background:var(--privly-error-bg);
  color:var(--privly-error);
  border-radius:12px;
  padding:10px 12px;
}


/* Privly Booking 1.1.13: staff-profile reconciliation for treatment assignment */
/* Privly Booking 1.1.14: hard repair staff profile on treatment page */
.pb-debug-box {
  margin-top: 12px;
  padding: 12px;
  border: 1px dashed var(--privly-border);
  border-radius: 12px;
  background: #fff;
  color: var(--privly-muted);
  font-size: 13px;
}


/* Privly Booking 1.1.15: direct staff profile repair and hard invite delete */
/* Privly Booking 1.1.16: runtime table migration */
/* Privly Booking 1.1.17: booking list, cancellation page and treatment editing */
.pb-inline-grid {
  display:grid;
  grid-template-columns:minmax(220px,1.5fr) 120px 120px 120px auto;
  gap:12px;
  align-items:end;
}
.pb-inline-edit {
  margin:0;
}
@media(max-width:900px){
  .pb-inline-grid { grid-template-columns:1fr; }
}


/* Privly Booking 1.1.18: booking treatment duration display */
.pb-table .pb-muted {
  font-size: 12px;
}


/* Privly Booking 1.1.19: service-first customer flow */
.pb-booking-page {
  width: min(1180px, calc(100% - 24px));
}
.pb-booking-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 18px;
  align-items: start;
}
.pb-booking-main {
  min-width: 0;
}
.pb-booking-summary {
  position: sticky;
  top: 16px;
}
.pb-booking-summary h3 {
  margin: 0 0 16px;
  font-size: 24px;
  letter-spacing: -.02em;
}
.pb-summary-empty {
  color: var(--privly-muted);
  border: 1px dashed var(--privly-border);
  border-radius: 16px;
  padding: 16px;
  background: #fbfbfc;
}
.pb-summary-content {
  display: grid;
  gap: 10px;
}
.pb-summary-item {
  border: 1px solid var(--privly-border);
  border-radius: 16px;
  background: #fbfbfc;
  padding: 12px 14px;
}
.pb-summary-item span {
  display: block;
  font-size: 12px;
  color: var(--privly-muted);
  margin-bottom: 4px;
}
.pb-summary-item strong {
  display: block;
  font-size: 15px;
}
.pb-service-grid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.pb-service-card {
  width: 100%;
  border: 1px solid #e1e5ec;
  background: #fff;
  border-radius: 20px;
  padding: 18px;
  text-align: left;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.pb-service-card:hover {
  transform: translateY(-2px);
  border-color: rgba(11,125,102,.45);
  box-shadow: 0 18px 34px -28px rgba(15,23,42,.55);
}
.pb-service-card.is-active {
  border-color: var(--privly-primary);
  box-shadow: 0 0 0 4px rgba(11,125,102,.10);
}
.pb-service-card strong {
  display: block;
  margin: 6px 0 10px;
  font-size: 20px;
  line-height: 1.1;
  letter-spacing: -.02em;
}
.pb-service-card p {
  margin: 0;
  color: var(--privly-muted);
  min-height: 42px;
  font-size: 14px;
}
.pb-service-meta,
.pb-service-cta {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}
.pb-service-meta {
  background: #eef8f5;
  color: var(--privly-primary);
  padding: 6px 10px;
}
.pb-service-cta {
  margin-top: 14px;
  color: var(--privly-primary);
}
.pb-step-back {
  margin-bottom: 10px;
}
.pb-ghost-button {
  border: 1px solid var(--privly-border);
  background: #fff;
  color: var(--privly-text);
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 700;
  cursor: pointer;
}
.pb-subhead {
  margin: 0 0 10px;
  font-weight: 800;
  font-size: 15px;
}
.pb-provider-wrap {
  margin-bottom: 16px;
}
.pb-provider-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.pb-provider-chip {
  border: 1px solid #e1e5ec;
  background: #fff;
  border-radius: 999px;
  padding: 10px 14px;
  cursor: pointer;
  display: inline-flex;
  gap: 10px;
  align-items: center;
  font-weight: 700;
}
.pb-provider-chip img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}
.pb-provider-chip.is-active {
  border-color: var(--privly-primary);
  box-shadow: 0 0 0 4px rgba(11,125,102,.10);
}
.pb-schedule-grid {
  align-items: end;
}
.pb-selected-box {
  border: 1px solid var(--privly-border);
  border-radius: 16px;
  background: #fbfbfc;
  padding: 12px 14px;
  min-height: 52px;
}
.pb-selected-box span {
  display: block;
  color: var(--privly-muted);
  font-size: 12px;
  margin-bottom: 4px;
}
.pb-selected-box strong {
  display: block;
  font-size: 16px;
}
@media (max-width: 960px) {
  .pb-booking-flow {
    grid-template-columns: 1fr;
  }
  .pb-booking-summary {
    position: static;
  }
}
@media (max-width: 640px) {
  .pb-booking-page {
    width: calc(100% - 12px);
  }
  .pb-service-grid {
    grid-template-columns: 1fr;
  }
  .pb-provider-list {
    display: grid;
    grid-template-columns: 1fr;
  }
}
/* Privly Booking 1.1.20: wide responsive customer page + treatment prices */
.pb-booking-page {
  width: min(1380px, calc(100vw - 32px)) !important;
  max-width: none !important;
  margin-top: 18px !important;
  margin-bottom: 32px !important;
  margin-left: calc(50% - min(690px, calc(50vw - 16px))) !important;
  margin-right: auto !important;
  padding: 0 !important;
}
.pb-booking-flow {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px) !important;
}
.pb-service-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
}
.pb-inline-grid {
  grid-template-columns: minmax(220px,1.5fr) 110px 110px 130px 100px auto !important;
}
@media (min-width: 1500px) {
  .pb-booking-page {
    width: min(1480px, calc(100vw - 56px)) !important;
    margin-left: calc(50% - min(740px, calc(50vw - 28px))) !important;
  }
}
@media (max-width: 960px) {
  .pb-booking-page {
    width: calc(100vw - 16px) !important;
    margin-left: calc(50% - 50vw + 8px) !important;
  }
  .pb-booking-flow {
    grid-template-columns: 1fr !important;
  }
  .pb-booking-summary {
    position: static !important;
  }
}
@media (max-width: 640px) {
  .pb-booking-page {
    width: calc(100vw - 8px) !important;
    margin-left: calc(50% - 50vw + 4px) !important;
  }
  .pb-booking-hero {
    border-radius: 18px !important;
  }
  .pb-inline-grid {
    grid-template-columns: 1fr !important;
  }
}
/* Privly Booking 1.1.21: cancel code required, categories, hidden customer buffer */
.pb-service-grid {
  display: block !important;
}
.pb-service-category {
  margin-bottom: 26px;
}
.pb-category-title {
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 850;
  letter-spacing: -.035em;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--privly-border);
}
.pb-category-services {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
@media (max-width: 640px) {
  .pb-category-services {
    grid-template-columns: 1fr;
  }
}


/* Privly Booking 1.1.22: token cancellation with confirmation */
/* Privly Booking 1.1.23: login repair + registered email visibility */
/* Privly Booking 1.1.24: wp-admin registered email visibility */
/* Privly Booking 1.1.25: wp-admin latest agent email fix */
/* Privly Booking 1.1.26: forced wp-admin email card */
/* Privly Booking 1.1.27: hide deleted inactive agents in WP admin */
/* Privly Booking 1.1.28: activation repair, cleanup disabled */
/* Privly Booking 1.1.29: activation/login full width + stable activation */
.pb-login-screen {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: 0 !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: clamp(20px, 4vw, 48px) !important;
}
.pb-live-shell {
  width: min(100%, 460px) !important;
  max-width: 460px !important;
}
@media (max-width: 560px) {
  .pb-login-screen {
    align-items: flex-start !important;
    padding: 18px 12px !important;
  }
  .pb-live-shell {
    width: 100% !important;
  }
}
/* Privly Booking 1.1.30: fixed activation endpoints + no horizontal login scroll */
html.pb-auth-html,
body.pb-auth-body {
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  background: #0f1012 !important;
}
.pb-login-screen {
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  min-height: 100svh !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  display: grid !important;
  place-items: center !important;
  padding: clamp(18px, 4vw, 48px) 14px !important;
}
.pb-live-shell {
  width: min(100%, 440px) !important;
  max-width: 440px !important;
  margin: 0 auto !important;
}
@media (max-width: 560px) {
  .pb-login-screen {
    place-items: start center !important;
    padding: 16px 10px !important;
  }
  .pb-live-card {
    padding: 22px 16px !important;
  }
}
/* Privly Booking 1.1.31: hard reset auth/login layout */
html.pb-auth-html,
body.pb-auth-body {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  background: #0f1012 !important;
}

body.pb-auth-body > * {
  max-width: 100% !important;
}

.pb-login-screen {
  position: fixed !important;
  inset: 0 !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  min-width: 0 !important;
  height: 100svh !important;
  min-height: 100svh !important;
  margin: 0 !important;
  padding: clamp(16px, 4vw, 42px) !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transform: none !important;
}

.pb-live-shell {
  width: min(440px, 100%) !important;
  max-width: 440px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  transform: none !important;
}

.pb-live-card {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.pb-login-screen input,
.pb-login-screen button,
.pb-login-screen select,
.pb-login-screen textarea {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 560px) {
  .pb-login-screen {
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 14px 10px !important;
  }
  .pb-live-shell {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Privly Booking 1.1.32: activation success handoff */
.pb-message.is-success {
  display: block;
  margin-top: 16px;
  border: 1px solid rgba(5, 150, 105, .28);
  background: #ecfdf3;
  color: #047857;
  border-radius: 14px;
  padding: 12px 14px;
  font-weight: 700;
}
.pb-message.is-error {
  display: block;
  margin-top: 16px;
  border: 1px solid rgba(180, 35, 24, .28);
  background: #fff1f3;
  color: #b42318;
  border-radius: 14px;
  padding: 12px 14px;
  font-weight: 700;
}
/* Privly Booking 1.1.33: deterministic temp code activation */
/* Privly Booking 1.1.34: actual activation ajax methods restored */
/* Privly Booking 1.1.35: automatic WP pages */
/* Privly Booking 1.1.36: isolated auth submit handler */
.pb-message.is-success {
  display:block;
  margin-top:14px;
  padding:12px 14px;
  border-radius:14px;
  background:#ecfdf3;
  border:1px solid rgba(5,150,105,.25);
  color:#047857;
  font-weight:700;
}
.pb-message.is-error {
  display:block;
  margin-top:14px;
  padding:12px 14px;
  border-radius:14px;
  background:#fff1f3;
  border:1px solid rgba(180,35,24,.25);
  color:#b42318;
  font-weight:700;
}
/* Privly Booking 1.1.37: remove broken PB_BOOKING auth interceptor */
/* Privly Booking 1.1.38: prevent auth GET leakage and login repair */
/* Privly Booking 1.1.39: login session method fix */
/* Privly Booking 1.1.40: auth submit bridge */
.pb-message.is-success {
  display:block;
  margin-top:14px;
  padding:12px 14px;
  border-radius:14px;
  background:#ecfdf3;
  border:1px solid rgba(5,150,105,.25);
  color:#047857;
  font-weight:700;
}
.pb-message.is-error {
  display:block;
  margin-top:14px;
  padding:12px 14px;
  border-radius:14px;
  background:#fff1f3;
  border:1px solid rgba(180,35,24,.25);
  color:#b42318;
  font-weight:700;
}
/* Privly Booking 1.1.41: fixed auth submit selector */
.pb-message.is-success {
  display:block;
  margin-top:14px;
  padding:12px 14px;
  border-radius:14px;
  background:#ecfdf3;
  border:1px solid rgba(5,150,105,.25);
  color:#047857;
  font-weight:700;
}
.pb-message.is-error {
  display:block;
  margin-top:14px;
  padding:12px 14px;
  border-radius:14px;
  background:#fff1f3;
  border:1px solid rgba(180,35,24,.25);
  color:#b42318;
  font-weight:700;
}
/* Privly Booking 1.1.42: flexible AJAX nonce for auth */
/* Privly Booking 1.1.43: public auth no nonce blocker */
/* Privly Booking 1.1.44: auth 500 JSON diagnostics */
/* Privly Booking 1.1.45: separate auth session, no WP auto-login */
/* Privly Booking 1.1.46: unified session, legacy cookie killed */
/* Privly Booking 1.1.47: modern customer flow + stacked staff bookings */
.pb-booking-page {
  color: #e5e7eb;
}
.pb-booking-page .pb-booking-card,
.pb-booking-page .pb-booking-summary,
.pb-booking-page .pb-success-card {
  background: linear-gradient(180deg, #16181d 0%, #111318 100%) !important;
  border-color: rgba(255,255,255,.08) !important;
  box-shadow: 0 24px 80px -38px rgba(0,0,0,.65) !important;
}
.pb-booking-page .pb-section-head h2,
.pb-booking-page .pb-booking-summary h3,
.pb-booking-page .pb-category-title,
.pb-booking-page .pb-card,
.pb-booking-page .pb-success-head h2 {
  color: #f8fafc;
}
.pb-booking-page .pb-section-head p,
.pb-booking-page .pb-muted,
.pb-booking-page .pb-summary-item span,
.pb-booking-page .pb-success-item span,
.pb-booking-page .pb-selected-box span,
.pb-booking-page .pb-summary-empty {
  color: #94a3b8;
}
.pb-booking-page .pb-steps span {
  background: rgba(255,255,255,.06);
  color: #cbd5e1;
}
.pb-booking-page .pb-summary-empty,
.pb-booking-page .pb-summary-item,
.pb-booking-page .pb-selected-box,
.pb-booking-page .pb-field input,
.pb-booking-page .pb-field textarea,
.pb-booking-page .pb-field select,
.pb-booking-page .pb-ghost-button,
.pb-booking-page .pb-provider-chip,
.pb-booking-page .pb-time {
  background: #1b1f27 !important;
  color: #f8fafc !important;
  border-color: rgba(255,255,255,.08) !important;
}
.pb-booking-page .pb-field input::placeholder,
.pb-booking-page .pb-field textarea::placeholder {
  color: #64748b;
}
.pb-booking-page .pb-service-card {
  background: linear-gradient(180deg, #171b22 0%, #12161c 100%) !important;
  border-color: rgba(255,255,255,.08) !important;
}
.pb-booking-page .pb-service-card strong,
.pb-booking-page .pb-service-card p,
.pb-booking-page .pb-provider-chip span,
.pb-booking-page .pb-time,
.pb-booking-page .pb-summary-item strong,
.pb-booking-page .pb-selected-box strong,
.pb-booking-page .pb-success-item strong {
  color: #f8fafc !important;
}
.pb-booking-page .pb-service-card p { color: #94a3b8 !important; }
.pb-booking-page .pb-service-meta {
  background: rgba(20, 184, 166, .12) !important;
  color: #5eead4 !important;
}
.pb-booking-page .pb-service-cta {
  color: #5eead4 !important;
}
.pb-booking-page .pb-service-card:hover,
.pb-booking-page .pb-provider-chip:hover,
.pb-booking-page .pb-time:hover {
  border-color: rgba(45, 212, 191, .38) !important;
}
.pb-booking-page .pb-service-card.is-active,
.pb-booking-page .pb-provider-chip.is-active,
.pb-booking-page .pb-time.is-active {
  border-color: #14b8a6 !important;
  box-shadow: 0 0 0 3px rgba(20,184,166,.18) !important;
}
.pb-success-card {
  padding: clamp(20px, 3vw, 28px);
}
.pb-success-icon {
  width: 58px;
  height: 58px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(20,184,166,.12);
  color: #5eead4;
  font-size: 28px;
  font-weight: 800;
  margin-bottom: 14px;
}
.pb-success-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.pb-success-item {
  background: #1b1f27;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  padding: 14px;
}
.pb-success-item span,
.pb-success-item strong { display:block; }
.pb-success-item span { font-size: 12px; margin-bottom: 6px; }
.pb-success-actions { margin-top: 18px; }
.pb-booking-stack {
  display: grid;
  gap: 16px;
}
.pb-booking-item {
  margin-bottom: 0;
}
.pb-booking-item-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 16px;
}
.pb-booking-time {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -.02em;
}
.pb-booking-grid-compact {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.pb-booking-block {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 14px;
}
.pb-booking-block span,
.pb-booking-block strong,
.pb-booking-block small {
  display: block;
}
.pb-booking-block span {
  color: var(--privly-muted);
  font-size: 12px;
  margin-bottom: 6px;
}
.pb-booking-block strong {
  font-size: 16px;
  line-height: 1.25;
}
.pb-booking-block small {
  margin-top: 6px;
  color: var(--privly-muted);
  font-size: 13px;
}
.pb-booking-cancel-form {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #edf0f5;
}
.pb-booking-cancel-form textarea {
  min-height: 90px;
}
.pb-actions-row {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
@media (max-width: 900px) {
  .pb-booking-item-top {
    flex-direction: column;
  }
  .pb-actions-row {
    justify-content: stretch;
  }
}
/* Privly Booking 1.1.48: Privly light customer theme + clear cancelled bookings */
.pb-booking-page {
  --pb-accent: #0b7d66;
  --pb-accent-2: #14b8a6;
  --pb-accent-soft: #ecfdf5;
  --pb-ink: #101828;
  --pb-muted: #667085;
  --pb-line: #e4e7ec;
  --pb-soft: #f8fafc;
  color: var(--pb-ink) !important;
  background: transparent !important;
}

.pb-booking-page .pb-booking-card,
.pb-booking-page .pb-booking-summary,
.pb-booking-page .pb-success-card {
  background: #ffffff !important;
  color: var(--pb-ink) !important;
  border: 1px solid var(--pb-line) !important;
  box-shadow: 0 22px 60px -34px rgba(15, 23, 42, .35) !important;
}

.pb-booking-page .pb-section-head h2,
.pb-booking-page .pb-booking-summary h3,
.pb-booking-page .pb-category-title,
.pb-booking-page .pb-success-head h2,
.pb-booking-page .pb-card,
.pb-booking-page .pb-service-card strong,
.pb-booking-page .pb-summary-item strong,
.pb-booking-page .pb-selected-box strong,
.pb-booking-page .pb-success-item strong,
.pb-booking-page .pb-provider-chip span,
.pb-booking-page .pb-time {
  color: var(--pb-ink) !important;
}

.pb-booking-page .pb-section-head p,
.pb-booking-page .pb-muted,
.pb-booking-page .pb-summary-item span,
.pb-booking-page .pb-success-item span,
.pb-booking-page .pb-selected-box span,
.pb-booking-page .pb-summary-empty,
.pb-booking-page .pb-service-card p {
  color: var(--pb-muted) !important;
}

.pb-booking-page .pb-service-card,
.pb-booking-page .pb-summary-empty,
.pb-booking-page .pb-summary-item,
.pb-booking-page .pb-selected-box,
.pb-booking-page .pb-success-item,
.pb-booking-page .pb-field input,
.pb-booking-page .pb-field textarea,
.pb-booking-page .pb-field select,
.pb-booking-page .pb-ghost-button,
.pb-booking-page .pb-provider-chip,
.pb-booking-page .pb-time {
  background: #ffffff !important;
  border-color: var(--pb-line) !important;
  color: var(--pb-ink) !important;
}

.pb-booking-page .pb-service-card {
  background:
    linear-gradient(180deg, rgba(236, 253, 245, .55) 0%, rgba(255,255,255,1) 46%) !important;
  border-radius: 22px !important;
}

.pb-booking-page .pb-service-card:hover {
  border-color: rgba(11,125,102,.35) !important;
  box-shadow: 0 18px 44px -30px rgba(11,125,102,.42) !important;
}

.pb-booking-page .pb-service-card.is-active,
.pb-booking-page .pb-provider-chip.is-active,
.pb-booking-page .pb-time.is-active {
  border-color: var(--pb-accent) !important;
  box-shadow: 0 0 0 4px rgba(11,125,102,.10) !important;
}

.pb-booking-page .pb-service-meta {
  background: var(--pb-accent-soft) !important;
  color: var(--pb-accent) !important;
}

.pb-booking-page .pb-service-cta,
.pb-booking-page .pb-category-title {
  color: var(--pb-accent) !important;
}

.pb-booking-page .pb-steps span {
  background: #f2f4f7 !important;
  color: var(--pb-muted) !important;
}

.pb-booking-page .pb-steps .is-active {
  background: var(--pb-accent) !important;
  color: #ffffff !important;
}

.pb-booking-page .pb-button {
  background: var(--pb-accent) !important;
  color: #ffffff !important;
}

.pb-booking-page .pb-success-icon {
  background: var(--pb-accent-soft) !important;
  color: var(--pb-accent) !important;
}

.pb-booking-page .pb-field input:focus,
.pb-booking-page .pb-field textarea:focus,
.pb-booking-page .pb-field select:focus {
  outline: none !important;
  border-color: var(--pb-accent) !important;
  box-shadow: 0 0 0 4px rgba(11,125,102,.10) !important;
}

.pb-booking-clear-form {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #edf0f5;
}

.pb-button-secondary {
  background: #f2f4f7 !important;
  color: #344054 !important;
  border: 1px solid #d0d5dd !important;
}

.pb-booking-item .pb-button-secondary:hover {
  background: #e4e7ec !important;
}

/* Privly Booking 1.1.49: full UI polish using Privly live-chat palette */
:root {
  --privly-primary: #0b7d66;
  --privly-primary-hover: #096a58;
  --privly-primary-soft: #ecfdf5;
  --privly-primary-ring: rgba(11, 125, 102, .14);
  --privly-ink: #101828;
  --privly-muted: #667085;
  --privly-line: #e4e7ec;
  --privly-panel-bg: #f6f8fb;
  --privly-card: #ffffff;
  --privly-radius: 22px;
}

/* Wider, calmer staff/admin workspace */
.pb-panel {
  width: min(1640px, calc(100vw - 28px)) !important;
  max-width: 1640px !important;
  grid-template-columns: minmax(250px, 300px) minmax(0, 1fr) !important;
  background: var(--privly-panel-bg) !important;
  border: 1px solid var(--privly-line) !important;
  box-shadow: 0 26px 90px -52px rgba(15, 23, 42, .45) !important;
}

.pb-sidebar {
  background: #0f172a !important;
  border-right: 1px solid rgba(255,255,255,.06) !important;
}

.pb-main {
  padding: clamp(22px, 2.6vw, 42px) !important;
  overflow-x: hidden !important;
}

.pb-main h1 {
  font-size: clamp(42px, 5.2vw, 76px) !important;
  line-height: .95 !important;
  letter-spacing: -.055em !important;
  margin: 0 0 30px !important;
  color: var(--privly-ink) !important;
}

.pb-card {
  background: #fff !important;
  border: 1px solid var(--privly-line) !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 60px -42px rgba(15, 23, 42, .42) !important;
}

.pb-field label {
  color: #344054 !important;
  font-weight: 750 !important;
  letter-spacing: -.01em !important;
}

.pb-field input,
.pb-field select,
.pb-field textarea {
  background: #fff !important;
  border: 1px solid #d0d5dd !important;
  border-radius: 16px !important;
  padding: 13px 14px !important;
  color: var(--privly-ink) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .03) !important;
}

.pb-field textarea {
  min-height: 104px !important;
  line-height: 1.45 !important;
}

.pb-field input:focus,
.pb-field select:focus,
.pb-field textarea:focus {
  outline: none !important;
  border-color: var(--privly-primary) !important;
  box-shadow: 0 0 0 4px var(--privly-primary-ring) !important;
}

.pb-button {
  background: var(--privly-primary) !important;
  border-radius: 14px !important;
  font-weight: 800 !important;
  box-shadow: 0 12px 28px -18px rgba(11, 125, 102, .7) !important;
}

.pb-button:hover {
  background: var(--privly-primary-hover) !important;
}

.pb-button-danger {
  background: #b42318 !important;
  box-shadow: 0 12px 28px -18px rgba(180, 35, 24, .7) !important;
}

.pb-button-secondary {
  background: #f8fafc !important;
  color: #344054 !important;
  border: 1px solid #d0d5dd !important;
  box-shadow: none !important;
}

.pb-button-secondary:hover {
  background: #eef2f6 !important;
}

/* Stacked booking cards: cleaner staff view */
.pb-booking-stack {
  display: grid !important;
  gap: 18px !important;
  width: 100% !important;
}

.pb-booking-item {
  padding: clamp(18px, 2vw, 26px) !important;
  overflow: visible !important;
}

.pb-booking-item-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 16px !important;
  padding-bottom: 18px !important;
  margin-bottom: 18px !important;
  border-bottom: 1px solid #eef2f6 !important;
}

.pb-booking-time {
  font-size: clamp(22px, 2vw, 30px) !important;
  line-height: 1.05 !important;
  color: var(--privly-ink) !important;
}

.pb-booking-grid-compact {
  grid-template-columns: repeat(4, minmax(160px, 1fr)) !important;
  gap: 14px !important;
}

.pb-booking-block {
  background: #fbfcfe !important;
  border: 1px solid #edf0f5 !important;
  border-radius: 18px !important;
  padding: 16px !important;
}

.pb-booking-block span {
  color: var(--privly-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: .035em !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

.pb-booking-block strong {
  color: var(--privly-ink) !important;
  font-size: 17px !important;
  font-weight: 850 !important;
}

.pb-booking-block small {
  color: var(--privly-muted) !important;
}

.pb-booking-cancel-form,
.pb-booking-clear-form {
  margin-top: 18px !important;
  padding: 18px !important;
  border: 1px solid #fee4e2 !important;
  background: #fffbfa !important;
  border-radius: 20px !important;
}

.pb-booking-clear-form {
  border-color: #e4e7ec !important;
  background: #fbfcfe !important;
}

.pb-cancel-message-field {
  margin-bottom: 12px !important;
}

.pb-cancel-message-field textarea {
  min-height: 86px !important;
  background: #fff !important;
}

.pb-actions-row {
  display: flex !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}

.pb-status-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  padding: 8px 12px !important;
  font-size: 12px !important;
  font-weight: 850 !important;
}

.pb-status-pill-ok {
  background: #ecfdf3 !important;
  color: #047857 !important;
  border: 1px solid #a7f3d0 !important;
}

.pb-status-pill-off {
  background: #f2f4f7 !important;
  color: #475467 !important;
  border: 1px solid #e4e7ec !important;
}

.pb-status-pill-warn {
  background: #fffaeb !important;
  color: #b54708 !important;
  border: 1px solid #fedf89 !important;
}

/* Customer booking: consistent Privly light theme, no dark/grey jumping */
.pb-booking-page {
  --pb-accent: #0b7d66;
  --pb-accent-hover: #096a58;
  --pb-accent-soft: #ecfdf5;
  --pb-ink: #101828;
  --pb-muted: #667085;
  --pb-line: #e4e7ec;
  width: min(1480px, calc(100vw - 36px)) !important;
  max-width: none !important;
  margin: 22px auto 42px !important;
  padding: 0 !important;
  color: var(--pb-ink) !important;
  background: transparent !important;
}

.pb-booking-hero {
  background: #ffffff !important;
  color: var(--pb-ink) !important;
  border: 1px solid var(--pb-line) !important;
  border-radius: 28px !important;
  padding: clamp(22px, 3vw, 36px) !important;
  margin-bottom: 18px !important;
  box-shadow: 0 22px 70px -50px rgba(15,23,42,.45) !important;
}

.pb-booking-hero h1 {
  color: var(--pb-ink) !important;
  letter-spacing: -.055em !important;
  line-height: .96 !important;
}

.pb-booking-hero p,
.pb-booking-page .pb-section-head p,
.pb-booking-page .pb-muted {
  color: var(--pb-muted) !important;
}

.pb-eyebrow {
  color: var(--pb-accent) !important;
  background: var(--pb-accent-soft) !important;
  border: 1px solid rgba(11,125,102,.16) !important;
  border-radius: 999px !important;
  padding: 7px 11px !important;
  font-weight: 850 !important;
}

.pb-booking-flow {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px) !important;
  gap: 20px !important;
}

.pb-booking-page .pb-booking-card,
.pb-booking-page .pb-booking-summary,
.pb-booking-page .pb-success-card {
  background: #ffffff !important;
  color: var(--pb-ink) !important;
  border: 1px solid var(--pb-line) !important;
  border-radius: 28px !important;
  box-shadow: 0 24px 76px -54px rgba(15,23,42,.42) !important;
}

.pb-booking-page .pb-section-head h2,
.pb-booking-page .pb-booking-summary h3,
.pb-booking-page .pb-category-title,
.pb-booking-page .pb-success-head h2,
.pb-booking-page .pb-card,
.pb-booking-page .pb-service-card strong,
.pb-booking-page .pb-summary-item strong,
.pb-booking-page .pb-selected-box strong,
.pb-booking-page .pb-success-item strong,
.pb-booking-page .pb-provider-chip span,
.pb-booking-page .pb-time {
  color: var(--pb-ink) !important;
}

.pb-booking-page .pb-summary-item span,
.pb-booking-page .pb-success-item span,
.pb-booking-page .pb-selected-box span,
.pb-booking-page .pb-summary-empty,
.pb-booking-page .pb-service-card p {
  color: var(--pb-muted) !important;
}

.pb-booking-page .pb-service-grid {
  display: block !important;
}

.pb-booking-page .pb-category-title {
  color: var(--pb-ink) !important;
  font-size: clamp(28px, 3vw, 46px) !important;
  border-bottom: 1px solid #eef2f6 !important;
}

.pb-booking-page .pb-category-services {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  gap: 16px !important;
}

.pb-booking-page .pb-service-card {
  min-height: 190px !important;
  background: linear-gradient(180deg, #ffffff 0%, #fbfffd 100%) !important;
  border: 1px solid var(--pb-line) !important;
  border-radius: 24px !important;
  padding: 22px !important;
  box-shadow: 0 18px 52px -44px rgba(15,23,42,.36) !important;
}

.pb-booking-page .pb-service-card:hover {
  transform: translateY(-3px) !important;
  border-color: rgba(11,125,102,.38) !important;
  box-shadow: 0 24px 70px -48px rgba(11,125,102,.46) !important;
}

.pb-booking-page .pb-service-card.is-active,
.pb-booking-page .pb-provider-chip.is-active,
.pb-booking-page .pb-time.is-active {
  border-color: var(--pb-accent) !important;
  box-shadow: 0 0 0 4px rgba(11,125,102,.11) !important;
}

.pb-booking-page .pb-service-meta {
  background: var(--pb-accent-soft) !important;
  color: var(--pb-accent) !important;
  border: 1px solid rgba(11,125,102,.12) !important;
}

.pb-booking-page .pb-service-cta {
  color: var(--pb-accent) !important;
}

.pb-booking-page .pb-summary-empty,
.pb-booking-page .pb-summary-item,
.pb-booking-page .pb-selected-box,
.pb-booking-page .pb-success-item,
.pb-booking-page .pb-field input,
.pb-booking-page .pb-field textarea,
.pb-booking-page .pb-field select,
.pb-booking-page .pb-ghost-button,
.pb-booking-page .pb-provider-chip,
.pb-booking-page .pb-time {
  background: #ffffff !important;
  border-color: var(--pb-line) !important;
  color: var(--pb-ink) !important;
}

.pb-booking-page .pb-summary-item,
.pb-booking-page .pb-selected-box,
.pb-booking-page .pb-success-item {
  background: #fbfcfe !important;
  border-radius: 18px !important;
}

.pb-booking-page .pb-steps span {
  background: #f2f4f7 !important;
  color: var(--pb-muted) !important;
  font-weight: 800 !important;
}

.pb-booking-page .pb-steps .is-active {
  background: var(--pb-accent) !important;
  color: #ffffff !important;
}

.pb-booking-page .pb-button {
  background: var(--pb-accent) !important;
  color: #ffffff !important;
}

.pb-booking-page .pb-button:hover {
  background: var(--pb-accent-hover) !important;
}

.pb-booking-page .pb-success-icon {
  background: var(--pb-accent-soft) !important;
  color: var(--pb-accent) !important;
  border: 1px solid rgba(11,125,102,.12) !important;
}

.pb-booking-page .pb-field input:focus,
.pb-booking-page .pb-field textarea:focus,
.pb-booking-page .pb-field select:focus {
  outline: none !important;
  border-color: var(--pb-accent) !important;
  box-shadow: 0 0 0 4px rgba(11,125,102,.10) !important;
}

.pb-booking-page .pb-provider-chip,
.pb-booking-page .pb-time {
  box-shadow: 0 1px 2px rgba(16,24,40,.03) !important;
}

@media (max-width: 1180px) {
  .pb-booking-grid-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 960px) {
  .pb-panel {
    width: calc(100vw - 16px) !important;
    grid-template-columns: 1fr !important;
  }
  .pb-main {
    padding: 18px !important;
  }
  .pb-main h1 {
    font-size: clamp(34px, 9vw, 56px) !important;
  }
  .pb-booking-page {
    width: calc(100vw - 16px) !important;
    margin: 12px auto 28px !important;
  }
  .pb-booking-flow {
    grid-template-columns: 1fr !important;
  }
  .pb-booking-summary {
    position: static !important;
  }
}

@media (max-width: 640px) {
  .pb-booking-grid-compact {
    grid-template-columns: 1fr !important;
  }
  .pb-booking-item-top {
    grid-template-columns: 1fr !important;
  }
  .pb-actions-row {
    justify-content: stretch !important;
  }
  .pb-actions-row .pb-button {
    width: 100% !important;
  }
  .pb-booking-page {
    width: calc(100vw - 10px) !important;
  }
  .pb-booking-page .pb-category-services {
    grid-template-columns: 1fr !important;
  }
}

/* Privly Booking 1.1.50: exact Privly Live Chat/MCH palette + formatting polish
   Source palette from uploaded live chat CSS:
   --mch-a-bg #f7f7f5, --mch-a-card #ffffff, --mch-a-text #17181a,
   --mch-a-muted #6b7280, --mch-a-border #e5e7eb, --mch-a-accent #0b7d66.
*/
:root {
  --pb-live-bg: #f7f7f5;
  --pb-live-card: #ffffff;
  --pb-live-text: #17181a;
  --pb-live-muted: #6b7280;
  --pb-live-border: #e5e7eb;
  --pb-live-accent: #0b7d66;
  --pb-live-accent-soft: rgba(11,125,102,0.10);
  --pb-live-accent-ring: rgba(11,125,102,0.12);
  --pb-live-radius: 14px;
  --pb-live-shadow: 0 1px 2px rgba(17,24,39,0.04), 0 4px 12px rgba(17,24,39,0.04);
}

.pb-shell,
.pb-panel {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif !important;
}

/* Agent/personal panel follows live chat admin */
.pb-panel {
  width: min(1380px, calc(100vw - 32px)) !important;
  max-width: 1380px !important;
  margin: 20px auto !important;
  grid-template-columns: 270px minmax(0, 1fr) !important;
  background: var(--pb-live-bg) !important;
  border: 1px solid var(--pb-live-border) !important;
  border-radius: 18px !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

.pb-sidebar {
  background: #0f172a !important;
  color: #ffffff !important;
  padding: 22px !important;
}

.pb-brand {
  font-weight: 700 !important;
  font-size: 19px !important;
  letter-spacing: -0.015em !important;
}

.pb-main {
  padding: 30px 36px !important;
  background: var(--pb-live-bg) !important;
  min-width: 0 !important;
  overflow-x: hidden !important;
}

.pb-main h1 {
  color: var(--pb-live-text) !important;
  font-size: clamp(34px, 4vw, 54px) !important;
  line-height: 1 !important;
  letter-spacing: -0.045em !important;
  margin: 0 0 24px !important;
}

.pb-card {
  background: var(--pb-live-card) !important;
  border: 1px solid var(--pb-live-border) !important;
  border-radius: var(--pb-live-radius) !important;
  box-shadow: var(--pb-live-shadow) !important;
  padding: 18px 22px !important;
}

.pb-card h2 {
  color: var(--pb-live-text) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -0.015em !important;
  margin-bottom: 12px !important;
}

.pb-muted,
.pb-small {
  color: var(--pb-live-muted) !important;
}

.pb-field {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  margin-bottom: 14px !important;
}

.pb-field label {
  color: var(--pb-live-muted) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
}

.pb-field input,
.pb-field select,
.pb-field textarea {
  width: 100% !important;
  background: #fff !important;
  border: 1px solid var(--pb-live-border) !important;
  border-radius: 10px !important;
  padding: 9px 12px !important;
  color: var(--pb-live-text) !important;
  font-size: 14px !important;
  font-family: inherit !important;
  line-height: 1.45 !important;
  box-shadow: none !important;
  transition: border-color .2s, box-shadow .2s !important;
}

.pb-field textarea {
  min-height: 92px !important;
  resize: vertical !important;
}

.pb-field input:focus,
.pb-field select:focus,
.pb-field textarea:focus {
  outline: none !important;
  border-color: var(--pb-live-accent) !important;
  box-shadow: 0 0 0 4px var(--pb-live-accent-ring) !important;
}

.pb-button {
  background: var(--pb-live-accent) !important;
  color: #fff !important;
  border: 1px solid var(--pb-live-accent) !important;
  border-radius: 10px !important;
  padding: 9px 14px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  min-height: 38px !important;
  box-shadow: 0 6px 16px -8px rgba(11,125,102,.65) !important;
}

.pb-button:hover {
  filter: brightness(.96) !important;
  opacity: 1 !important;
}

.pb-button-secondary {
  background: #fff !important;
  color: var(--pb-live-text) !important;
  border: 1px solid var(--pb-live-border) !important;
  box-shadow: none !important;
}

.pb-button-danger {
  background: #ef4444 !important;
  border-color: #ef4444 !important;
  color: #fff !important;
  box-shadow: 0 6px 16px -8px rgba(239,68,68,.65) !important;
}

/* Cleaner personal booking cards */
.pb-booking-stack {
  display: grid !important;
  gap: 14px !important;
}

.pb-booking-item {
  border-radius: 14px !important;
  padding: 18px 22px !important;
}

.pb-booking-item-top {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 14px !important;
  padding-bottom: 14px !important;
  margin-bottom: 14px !important;
  border-bottom: 1px solid var(--pb-live-border) !important;
}

.pb-booking-time {
  color: var(--pb-live-text) !important;
  font-size: clamp(19px, 2vw, 26px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
}

.pb-booking-grid-compact {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
  gap: 10px !important;
}

.pb-booking-block {
  background: var(--pb-live-bg) !important;
  border: 1px solid transparent !important;
  border-radius: 12px !important;
  padding: 12px 14px !important;
}

.pb-booking-block span {
  color: var(--pb-live-muted) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  margin-bottom: 4px !important;
}

.pb-booking-block strong {
  color: var(--pb-live-text) !important;
  font-size: 15px !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
}

.pb-booking-block small {
  color: var(--pb-live-muted) !important;
  font-size: 12.5px !important;
  margin-top: 4px !important;
}

.pb-booking-cancel-form,
.pb-booking-clear-form {
  margin-top: 14px !important;
  padding: 14px !important;
  border-radius: 12px !important;
  border: 1px solid var(--pb-live-border) !important;
  background: var(--pb-live-bg) !important;
}

.pb-cancel-message-field textarea {
  min-height: 78px !important;
}

.pb-actions-row {
  display: flex !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.pb-status-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
}

.pb-status-pill-ok {
  color: #047857 !important;
  background: rgba(16,185,129,0.08) !important;
  border: 1px solid rgba(16,185,129,0.30) !important;
}

.pb-status-pill-off {
  color: var(--pb-live-muted) !important;
  background: #fff !important;
  border: 1px solid var(--pb-live-border) !important;
}

.pb-status-pill-warn {
  color: #b45309 !important;
  background: rgba(245,158,11,0.08) !important;
  border: 1px solid rgba(245,158,11,0.30) !important;
}

/* Customer page: same light widget palette, not full-width and not mixed grey/dark */
.pb-booking-page {
  --pb-c-bg: #f7f7f5;
  --pb-c-card: #ffffff;
  --pb-c-surface: #f7f7f5;
  --pb-c-text: #17181a;
  --pb-c-muted: #6b7280;
  --pb-c-border: rgba(23, 24, 26, 0.08);
  --pb-c-accent: #0b7d66;
  --pb-c-accent-text: #ffffff;
  --pb-c-shadow: 0 24px 60px -20px rgba(17, 24, 39, 0.16), 0 2px 6px rgba(17, 24, 39, 0.05);
  width: min(1180px, calc(100vw - 32px)) !important;
  max-width: 1180px !important;
  margin: 20px auto 36px !important;
  padding: 0 !important;
  color: var(--pb-c-text) !important;
  background: transparent !important;
}

.pb-booking-page .pb-booking-hero {
  padding: 24px 26px !important;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(11,125,102,0.10), transparent 55%),
    radial-gradient(80% 120% at 0% 100%, rgba(245,158,11,0.06), transparent 60%),
    #fff !important;
  border: 1px solid var(--pb-c-border) !important;
  border-radius: 18px !important;
  box-shadow: none !important;
  color: var(--pb-c-text) !important;
  margin-bottom: 16px !important;
}

.pb-booking-page .pb-booking-hero h1 {
  color: var(--pb-c-text) !important;
  font-size: clamp(30px, 4.2vw, 48px) !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
}

.pb-booking-page .pb-booking-hero p,
.pb-booking-page .pb-section-head p,
.pb-booking-page .pb-muted,
.pb-booking-page .pb-service-card p,
.pb-booking-page .pb-summary-empty {
  color: var(--pb-c-muted) !important;
}

.pb-booking-page .pb-eyebrow {
  display: inline-flex !important;
  color: var(--pb-c-accent) !important;
  background: rgba(11,125,102,0.10) !important;
  border: 1px solid rgba(11,125,102,0.12) !important;
  border-radius: 999px !important;
  padding: 5px 10px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.pb-booking-page .pb-booking-flow {
  grid-template-columns: minmax(0, 1fr) 300px !important;
  gap: 18px !important;
}

.pb-booking-page .pb-booking-card,
.pb-booking-page .pb-booking-summary,
.pb-booking-page .pb-success-card {
  background: var(--pb-c-card) !important;
  color: var(--pb-c-text) !important;
  border: 1px solid var(--pb-c-border) !important;
  border-radius: 18px !important;
  box-shadow: var(--pb-c-shadow) !important;
}

.pb-booking-page .pb-booking-card {
  padding: 24px 26px !important;
}

.pb-booking-page .pb-booking-summary {
  padding: 22px !important;
}

.pb-booking-page .pb-section-head h2,
.pb-booking-page .pb-booking-summary h3,
.pb-booking-page .pb-category-title,
.pb-booking-page .pb-success-head h2,
.pb-booking-page .pb-service-card strong,
.pb-booking-page .pb-summary-item strong,
.pb-booking-page .pb-selected-box strong,
.pb-booking-page .pb-success-item strong,
.pb-booking-page .pb-provider-chip span,
.pb-booking-page .pb-time {
  color: var(--pb-c-text) !important;
}

.pb-booking-page .pb-category-title {
  color: var(--pb-c-text) !important;
  font-size: clamp(24px, 3vw, 34px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  border-bottom: 1px solid var(--pb-c-border) !important;
  padding-bottom: 12px !important;
  margin-bottom: 14px !important;
}

.pb-booking-page .pb-category-services {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: 12px !important;
}

.pb-booking-page .pb-service-card {
  min-height: 150px !important;
  background: #fff !important;
  color: var(--pb-c-text) !important;
  border: 1px solid var(--pb-c-border) !important;
  border-radius: 16px !important;
  padding: 18px 20px !important;
  box-shadow: none !important;
}

.pb-booking-page .pb-service-card:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(11,125,102,0.30) !important;
  box-shadow: 0 16px 34px -26px rgba(17,24,39,.28) !important;
}

.pb-booking-page .pb-service-card.is-active,
.pb-booking-page .pb-provider-chip.is-active,
.pb-booking-page .pb-time.is-active {
  border-color: var(--pb-c-accent) !important;
  box-shadow: 0 0 0 4px rgba(11,125,102,0.12) !important;
}

.pb-booking-page .pb-service-meta {
  background: rgba(11,125,102,0.10) !important;
  color: var(--pb-c-accent) !important;
  border: 0 !important;
  padding: 5px 9px !important;
  font-weight: 600 !important;
}

.pb-booking-page .pb-service-cta {
  color: var(--pb-c-accent) !important;
  font-weight: 600 !important;
}

.pb-booking-page .pb-summary-empty,
.pb-booking-page .pb-summary-item,
.pb-booking-page .pb-selected-box,
.pb-booking-page .pb-success-item,
.pb-booking-page .pb-field input,
.pb-booking-page .pb-field textarea,
.pb-booking-page .pb-field select,
.pb-booking-page .pb-ghost-button,
.pb-booking-page .pb-provider-chip,
.pb-booking-page .pb-time {
  background: #fff !important;
  color: var(--pb-c-text) !important;
  border-color: var(--pb-c-border) !important;
}

.pb-booking-page .pb-summary-item,
.pb-booking-page .pb-selected-box,
.pb-booking-page .pb-success-item {
  background: var(--pb-c-surface) !important;
  border-radius: 12px !important;
}

.pb-booking-page .pb-steps span {
  background: var(--pb-c-surface) !important;
  color: var(--pb-c-muted) !important;
  font-weight: 500 !important;
}

.pb-booking-page .pb-steps .is-active {
  background: var(--pb-c-accent) !important;
  color: var(--pb-c-accent-text) !important;
}

.pb-booking-page .pb-button {
  background: var(--pb-c-accent) !important;
  color: #fff !important;
  border-color: var(--pb-c-accent) !important;
}

.pb-booking-page .pb-success-icon {
  background: rgba(11,125,102,0.10) !important;
  color: var(--pb-c-accent) !important;
  border-radius: 14px !important;
}

@media (max-width: 1100px) {
  .pb-booking-page .pb-booking-flow {
    grid-template-columns: 1fr !important;
  }
  .pb-booking-page .pb-booking-summary {
    position: static !important;
  }
  .pb-booking-grid-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 900px) {
  .pb-panel {
    width: calc(100vw - 16px) !important;
    grid-template-columns: 1fr !important;
    margin: 8px auto 18px !important;
  }
  .pb-main {
    padding: 18px !important;
  }
  .pb-main h1 {
    font-size: clamp(32px, 9vw, 46px) !important;
  }
  .pb-booking-page {
    width: calc(100vw - 16px) !important;
    margin: 10px auto 24px !important;
  }
}

@media (max-width: 640px) {
  .pb-booking-grid-compact {
    grid-template-columns: 1fr !important;
  }
  .pb-booking-item-top {
    flex-direction: column !important;
  }
  .pb-actions-row {
    justify-content: stretch !important;
  }
  .pb-actions-row .pb-button {
    width: 100% !important;
  }
  .pb-booking-page .pb-booking-card,
  .pb-booking-page .pb-booking-summary,
  .pb-booking-page .pb-booking-hero {
    padding: 18px !important;
  }
  .pb-booking-page .pb-category-services {
    grid-template-columns: 1fr !important;
  }
}

/* Privly Booking 1.1.51: softer modern light-gray customer UI */
.pb-booking-page {
  --pb-canvas: #f1f2ee;
  --pb-panel: #fbfbf9;
  --pb-card-2: #eef1ef;
  --pb-card-3: #f5f6f4;
  --pb-line-2: rgba(23,24,26,0.10);
  background: var(--pb-canvas) !important;
  border: 1px solid rgba(23,24,26,0.05) !important;
  border-radius: 24px !important;
  padding: 18px !important;
  box-shadow: 0 10px 30px rgba(17,24,39,0.04) !important;
}

.pb-booking-page .pb-booking-hero {
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(11,125,102,0.08), transparent 55%),
    var(--pb-panel) !important;
  border-color: var(--pb-line-2) !important;
}

.pb-booking-page .pb-booking-card,
.pb-booking-page .pb-booking-summary,
.pb-booking-page .pb-success-card {
  background: var(--pb-panel) !important;
  border-color: var(--pb-line-2) !important;
}

.pb-booking-page .pb-booking-summary {
  background: #f8f8f5 !important;
}

.pb-booking-page .pb-service-card {
  background: linear-gradient(180deg, var(--pb-card-2) 0%, var(--pb-card-3) 100%) !important;
  border: 1px solid rgba(23,24,26,0.09) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 10px 20px -18px rgba(17,24,39,0.24) !important;
}

.pb-booking-page .pb-service-card:hover {
  border-color: rgba(11,125,102,0.28) !important;
  box-shadow: 0 18px 34px -24px rgba(17,24,39,0.22), 0 0 0 1px rgba(11,125,102,0.06) !important;
}

.pb-booking-page .pb-service-card strong {
  font-size: 16px !important;
  letter-spacing: -0.015em !important;
}

.pb-booking-page .pb-service-card p {
  color: #596273 !important;
}

.pb-booking-page .pb-service-meta {
  background: rgba(11,125,102,0.12) !important;
  color: #0b7d66 !important;
}

.pb-booking-page .pb-summary-empty,
.pb-booking-page .pb-summary-item,
.pb-booking-page .pb-selected-box,
.pb-booking-page .pb-success-item {
  background: #f3f4f1 !important;
  border: 1px solid rgba(23,24,26,0.07) !important;
}

.pb-booking-page .pb-provider-chip,
.pb-booking-page .pb-time,
.pb-booking-page .pb-field input,
.pb-booking-page .pb-field textarea,
.pb-booking-page .pb-field select,
.pb-booking-page .pb-ghost-button {
  background: #ffffff !important;
  border-color: rgba(23,24,26,0.09) !important;
}

.pb-booking-page .pb-provider-chip:hover,
.pb-booking-page .pb-time:hover {
  border-color: rgba(11,125,102,0.26) !important;
  background: #f9faf8 !important;
}

.pb-booking-page .pb-steps span {
  background: #eceeea !important;
}

.pb-booking-page .pb-category-title {
  padding-top: 6px !important;
}

@media (max-width: 900px) {
  .pb-booking-page {
    padding: 10px !important;
    border-radius: 16px !important;
  }
}

/* Privly Booking 1.1.52: smarter schedules, holidays, service sorting */
.pb-toolbar-form {
  display: grid;
  gap: 12px;
  align-items: end;
}

.pb-week-grid {
  display: grid;
  gap: 10px;
}

.pb-week-row {
  display: grid;
  grid-template-columns: minmax(140px, 220px) minmax(240px, 1fr);
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--pb-live-border, #e5e7eb);
  border-radius: 12px;
  background: #fff;
}

.pb-week-times {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pb-week-times input {
  width: 130px;
  border: 1px solid var(--pb-live-border, #e5e7eb);
  border-radius: 10px;
  padding: 9px 10px;
}

.pb-calendar-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  margin-bottom: 16px;
}

.pb-calendar-nav {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.pb-month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.pb-month-day-name {
  color: #6b7280;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  padding: 4px;
}

.pb-month-cell {
  min-height: 96px;
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 14px;
  padding: 10px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color .2s, box-shadow .2s, background .2s;
  position: relative;
}

.pb-month-cell:hover {
  border-color: rgba(11,125,102,.35);
}

.pb-month-cell input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.pb-month-cell:has(input:checked) {
  border-color: #0b7d66;
  background: rgba(11,125,102,.08);
  box-shadow: 0 0 0 3px rgba(11,125,102,.10);
}

.pb-month-cell.is-muted {
  opacity: .42;
}

.pb-month-cell.is-holiday {
  background: #fffbeb;
}

.pb-month-cell.is-closed {
  background: #fef2f2;
  border-color: #fecaca;
}

.pb-month-cell.is-closed:has(input:checked) {
  background: #fee2e2;
  border-color: #ef4444;
}

.pb-month-date {
  font-weight: 800;
  color: #17181a;
}

.pb-month-cell small {
  color: #b45309;
  font-size: 11px;
}

.pb-month-cell strong {
  color: #b42318;
  font-size: 11px;
}

.pb-calendar-actions {
  margin-top: 16px;
}

.pb-holiday-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin: 14px 0 16px;
}

.pb-holiday-card {
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 14px;
  padding: 12px;
  cursor: pointer;
  display: grid;
  gap: 4px;
}

.pb-holiday-card:has(input:checked) {
  border-color: #0b7d66;
  background: rgba(11,125,102,.08);
  box-shadow: 0 0 0 3px rgba(11,125,102,.10);
}

.pb-holiday-card input {
  margin-bottom: 4px;
}

.pb-holiday-card span {
  color: #6b7280;
  font-size: 12px;
}

.pb-holiday-card strong {
  color: #17181a;
}

@media (max-width: 760px) {
  .pb-week-row {
    grid-template-columns: 1fr;
  }
  .pb-week-times {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
  }
  .pb-week-times input {
    width: 100%;
  }
  .pb-calendar-head {
    display: grid;
  }
  .pb-month-grid {
    gap: 5px;
  }
  .pb-month-cell {
    min-height: 76px;
    padding: 7px;
    border-radius: 10px;
  }
  .pb-month-cell small,
  .pb-month-cell strong {
    display: none;
  }
}

/* Privly Booking 1.1.54: personnel terminology + visible pending temp code */
.pb-temp-code-box {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
}
.pb-temp-code-box span {
  font-size: 12px;
  font-weight: 700;
}
.pb-temp-code-box code {
  font-size: 13px;
  font-weight: 800;
  color: #7c2d12;
  background: transparent;
  padding: 0;
}
/* Privly Booking 1.1.55: dashboard first, editable public texts, clearer sorting */
.pb-dashboard-bookings {
  margin-top: 18px;
}

.pb-dashboard-bookings > h2 {
  font-size: 24px;
  letter-spacing: -0.025em;
  margin: 0 0 14px;
  color: #17181a;
}

.pb-sort-card h3 {
  margin: 18px 0 10px;
  font-size: 16px;
}

.pb-sort-card h4 {
  margin: 0 0 10px;
  font-size: 14px;
  color: #6b7280;
}

.pb-sort-list,
.pb-sort-groups {
  display: grid;
  gap: 10px;
}

.pb-sort-group {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 12px;
  background: #f7f7f5;
}

.pb-sort-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(23,24,26,.07);
}

.pb-sort-row:last-child {
  border-bottom: 0;
}

.pb-sort-row strong {
  color: #17181a;
  font-weight: 650;
}

.pb-sort-row label {
  display: grid;
  gap: 4px;
  color: #6b7280;
  font-size: 12px;
}

.pb-sort-row input {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 8px 10px;
  background: #fff;
}

@media (max-width: 640px) {
  .pb-sort-row {
    grid-template-columns: 1fr;
  }
}

/* Privly Booking 1.1.56: clean dashboard + clearer service sorting */
.pb-sort-row > div {
  min-width: 0;
}

.pb-sort-row small {
  display: block;
  margin-top: 3px;
  color: #6b7280;
  font-size: 12px;
  line-height: 1.35;
}

.pb-dashboard-bookings {
  margin-top: 18px;
}

.pb-dashboard-bookings .pb-booking-stack {
  margin-top: 10px;
}

/* Privly Booking 1.1.57: visible customer text settings */
.pb-public-text-card {
  border-color: rgba(11,125,102,.24) !important;
  box-shadow: 0 0 0 3px rgba(11,125,102,.05) !important;
}

.pb-public-text-card textarea {
  min-height: 96px !important;
}

/* Privly Booking 1.1.58: remove Mina bokningar from sidebar */
.pb-sidebar a[href*="pb_view=my_bookings"],
.pb-sidebar [data-view="my_bookings"],
.pb-sidebar .pb-nav-my-bookings {
  display: none !important;
}

.pb-sidebar a[href*="pb_view=my-bookings"],
.pb-sidebar [data-view="my-bookings"] {
  display: none !important;
}


/* Privly Booking 1.1.60: customer service more info */
.pb-booking-page .pb-more-info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 10px 0 0;
  border: 1px solid rgba(11,125,102,.18);
  background: rgba(11,125,102,.08);
  color: #0b7d66;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
}

.pb-booking-page .pb-more-info:hover {
  background: rgba(11,125,102,.13);
}

.pb-booking-page .pb-service-description {
  margin-top: 10px;
  padding: 11px 12px;
  border-radius: 12px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(23,24,26,.08);
  color: #4b5563;
  font-size: 13.5px;
  line-height: 1.45;
}

.pb-booking-page .pb-service-description[hidden] {
  display: none !important;
}

/* Privly Booking 1.1.65: treatment help text + description-only more info */
.pb-booking-page .pb-service-help-text {
  display: block;
  margin: 10px 0 16px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(11,125,102,.08);
  border: 1px solid rgba(11,125,102,.14);
  color: #0b7d66;
  font-size: 14px;
  font-weight: 650;
}

.pb-booking-page .pb-service-help-text[hidden] {
  display: none !important;
}

.pb-booking-page .pb-summary-empty[hidden] {
  display: none !important;
}

/* Privly Booking 1.1.67: card helper + description-only more info */
.pb-booking-page .pb-service-helper {
  margin: 10px 0 0 !important;
  color: #4f5f78 !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
}

.pb-booking-page .pb-service-card .pb-more-info {
  margin-top: 12px !important;
}

.pb-booking-page .pb-service-card .pb-service-description {
  margin-top: 10px !important;
}

/* Privly Booking 1.1.68: emergency customer fix */
.pb-booking-page .pb-service-helper {
  margin: 10px 0 0 !important;
  color: #4f5f78 !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
}

.pb-booking-page .pb-service-description[hidden] {
  display: none !important;
}

/* Privly Booking 1.1.69: fix service card actions */
.pb-booking-page .pb-service-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}
.pb-booking-page .pb-service-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-top: 14px !important;
}
.pb-booking-page .pb-service-cta-btn {
  appearance: none !important;
  border: 0 !important;
  background: transparent !important;
  color: #0b7d66 !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  padding: 0 !important;
  cursor: pointer !important;
}
.pb-booking-page .pb-service-cta-btn:hover {
  color: #086c5a !important;
}
.pb-booking-page .pb-more-info {
  margin-top: 0 !important;
  flex: 0 0 auto !important;
}
.pb-booking-page .pb-service-description {
  margin-top: 12px !important;
  width: 100% !important;
}
@media (max-width: 640px) {
  .pb-booking-page .pb-service-actions {
    flex-wrap: wrap !important;
  }
}
/* Privly Booking 1.1.70: More info modal + polished service meta */
html.pb-modal-open,
body.pb-modal-open {
  overflow: hidden !important;
}

.pb-booking-page .pb-service-meta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: flex-start !important;
  min-height: 32px !important;
  padding: 6px 12px !important;
  border-radius: 999px !important;
  line-height: 1 !important;
  font-size: 13.5px !important;
  font-weight: 800 !important;
  letter-spacing: -0.01em !important;
  white-space: nowrap !important;
  background: rgba(11,125,102,0.11) !important;
  color: #0b7d66 !important;
  box-shadow: inset 0 0 0 1px rgba(11,125,102,0.08) !important;
}

.pb-booking-page .pb-service-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-top: auto !important;
  padding-top: 18px !important;
}

.pb-booking-page .pb-more-info {
  min-height: 34px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(11,125,102,.22) !important;
  background: rgba(11,125,102,.08) !important;
  color: #0b7d66 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  box-shadow: none !important;
}

.pb-booking-page .pb-more-info:hover {
  background: rgba(11,125,102,.14) !important;
}

.pb-info-modal[hidden] {
  display: none !important;
}

.pb-info-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  display: grid !important;
  place-items: center !important;
  padding: 20px !important;
}

.pb-info-modal-backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(17,24,39,.46) !important;
  backdrop-filter: blur(8px) !important;
}

.pb-info-modal-dialog {
  position: relative !important;
  width: min(560px, calc(100vw - 32px)) !important;
  max-height: min(720px, calc(100vh - 40px)) !important;
  overflow: auto !important;
  background: radial-gradient(120% 120% at 100% 0%, rgba(11,125,102,.10), transparent 42%), #ffffff !important;
  border: 1px solid rgba(255,255,255,.75) !important;
  border-radius: 24px !important;
  box-shadow: 0 30px 90px rgba(17,24,39,.32) !important;
  padding: 26px !important;
  color: #17181a !important;
}

.pb-info-modal-close {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(23,24,26,.08) !important;
  background: #f7f7f5 !important;
  color: #17181a !important;
  font-size: 24px !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

.pb-info-modal-meta {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 30px !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  background: rgba(11,125,102,.10) !important;
  color: #0b7d66 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  margin: 0 44px 12px 0 !important;
}

.pb-info-modal-dialog h3 {
  margin: 0 44px 14px 0 !important;
  font-size: clamp(24px, 4vw, 34px) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.04em !important;
  color: #17181a !important;
}

.pb-info-modal-body {
  color: #4b5563 !important;
  font-size: 16px !important;
  line-height: 1.62 !important;
  white-space: pre-wrap !important;
}

@media (max-width: 560px) {
  .pb-info-modal-dialog {
    border-radius: 18px !important;
    padding: 22px !important;
  }
}
/* Privly Booking 1.1.71: selective staff-service linking */
.pb-selective-link-card .pb-service-check-toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 10px 0 14px;
}

.pb-service-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
  margin: 0 0 16px;
}

.pb-service-check-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
  padding: 13px 14px;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.pb-service-check-card:hover {
  border-color: rgba(11,125,102,.30);
}

.pb-service-check-card:has(input:checked) {
  border-color: rgba(11,125,102,.42);
  background: rgba(11,125,102,.07);
  box-shadow: 0 0 0 3px rgba(11,125,102,.08);
}

.pb-service-check-card input {
  margin-top: 3px;
  width: 18px;
  height: 18px;
  accent-color: #0b7d66;
}

.pb-service-check-card span {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.pb-service-check-card strong {
  color: #17181a;
  font-weight: 750;
  line-height: 1.25;
}

.pb-service-check-card small {
  color: #6b7280;
  font-size: 12px;
  line-height: 1.35;
}

.pb-service-link-note {
  margin-top: 10px !important;
}

/* Privly Booking 1.1.72: Mer info always available */
.pb-booking-page .pb-more-info {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
}

.pb-booking-page .pb-service-actions {
  min-height: 40px !important;
}

.pb-info-modal[hidden] {
  display: none !important;
}

/* Privly Booking 1.1.74: fix open selected days */
.pb-calendar-actions button[name="mode"][value="open_selected"] {
  border-color: rgba(11,125,102,.28) !important;
  color: #0b7d66 !important;
  background: rgba(11,125,102,.08) !important;
}

.pb-calendar-actions button[name="mode"][value="open_selected"]:hover {
  background: rgba(11,125,102,.14) !important;
}

/* Privly Booking 1.1.76: schedule save compatibility */
/* Privly Booking 1.1.77: robust weekday availability */
/* Privly Booking 1.1.79: targeted inactive schedule repair */
/* Privly Booking 1.1.81: company branding on customer-facing pages */
.pb-customer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.pb-customer-logo{max-width:180px;max-height:80px;width:auto;height:auto;display:block;object-fit:contain}
.pb-booking-hero .pb-customer-logo{margin-bottom:4px}
.pb-customer-brand-compact{margin-bottom:18px}
.pb-logo-preview{display:flex;align-items:center;gap:16px;margin:8px 0 12px;flex-wrap:wrap}
.pb-logo-preview img{max-width:180px;max-height:80px;width:auto;height:auto;border:1px solid rgba(148,163,184,.35);border-radius:12px;padding:10px;background:#fff;object-fit:contain}
@media(max-width:640px){.pb-customer-logo{max-width:150px;max-height:68px}.pb-customer-brand{align-items:flex-start}}

/* Privly Booking 1.1.83: mobile-safe customer page and Mer info modal */
.pb-booking-page,
.pb-booking-page * {
  min-width: 0 !important;
}

.pb-booking-page {
  max-width: calc(100vw - 16px) !important;
  overflow-x: clip !important;
}

.pb-booking-page .pb-booking-flow,
.pb-booking-page .pb-booking-main,
.pb-booking-page .pb-booking-card,
.pb-booking-page .pb-booking-summary,
.pb-booking-page .pb-booking-hero,
.pb-booking-page .pb-service-card {
  min-width: 0 !important;
  max-width: 100% !important;
}

.pb-booking-page .pb-service-card strong,
.pb-booking-page .pb-section-head h2,
.pb-booking-page .pb-booking-hero h1,
.pb-booking-page .pb-booking-hero p,
.pb-booking-page .pb-service-helper,
.pb-booking-page .pb-summary-item,
.pb-booking-page .pb-success-item {
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.pb-booking-page .pb-service-meta {
  max-width: 100% !important;
  white-space: normal !important;
  line-height: 1.25 !important;
  text-align: left !important;
}

.pb-booking-page .pb-service-actions {
  width: 100% !important;
  min-width: 0 !important;
}

.pb-info-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
  overflow: hidden !important;
}

.pb-info-modal-dialog {
  width: min(560px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100vh - 24px) !important;
  max-height: calc(100dvh - 24px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch !important;
  box-sizing: border-box !important;
}

.pb-info-modal-meta,
.pb-info-modal-dialog h3,
.pb-info-modal-body {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

.pb-info-modal-body {
  word-break: normal !important;
}

@media (max-width: 640px) {
  .pb-booking-page {
    width: calc(100vw - 10px) !important;
    max-width: calc(100vw - 10px) !important;
    margin: 6px auto 20px !important;
    padding: 8px !important;
    border-radius: 14px !important;
  }

  .pb-booking-page .pb-booking-hero,
  .pb-booking-page .pb-booking-card,
  .pb-booking-page .pb-booking-summary,
  .pb-booking-page .pb-success-card {
    padding: 16px !important;
    border-radius: 16px !important;
  }

  .pb-booking-page .pb-booking-hero h1 {
    font-size: clamp(28px, 10vw, 38px) !important;
    line-height: 1.04 !important;
  }

  .pb-booking-page .pb-steps {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  .pb-booking-page .pb-steps span {
    width: 100% !important;
    text-align: center !important;
  }

  .pb-booking-page .pb-service-card {
    padding: 16px !important;
  }

  .pb-booking-page .pb-service-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .pb-booking-page .pb-more-info,
  .pb-booking-page .pb-service-cta-btn,
  .pb-booking-page .pb-ghost-button,
  .pb-booking-page .pb-button {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .pb-info-modal {
    align-items: flex-start !important;
    padding-top: max(10px, env(safe-area-inset-top)) !important;
  }

  .pb-info-modal-dialog {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    border-radius: 16px !important;
    padding: 18px !important;
  }

  .pb-info-modal-close {
    top: 10px !important;
    right: 10px !important;
    width: 34px !important;
    height: 34px !important;
  }

  .pb-info-modal-meta {
    margin: 0 40px 10px 0 !important;
    white-space: normal !important;
  }

  .pb-info-modal-dialog h3 {
    margin-right: 40px !important;
    font-size: clamp(22px, 8vw, 30px) !important;
    line-height: 1.08 !important;
  }

  .pb-info-modal-body {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }
}

@media (max-width: 380px) {
  .pb-booking-page {
    width: calc(100vw - 6px) !important;
    max-width: calc(100vw - 6px) !important;
    padding: 6px !important;
  }

  .pb-booking-page .pb-booking-hero,
  .pb-booking-page .pb-booking-card,
  .pb-booking-page .pb-booking-summary,
  .pb-booking-page .pb-success-card {
    padding: 14px !important;
  }

  .pb-info-modal-dialog {
    width: calc(100vw - 12px) !important;
    max-width: calc(100vw - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
    padding: 16px !important;
  }
}

/* Privly Booking 1.1.84: centered mobile layout + explicit light UI in system dark mode */
.pb-public,
.pb-booking-page,
.pb-booking-page *,
.pb-info-modal,
.pb-info-modal * {
  box-sizing: border-box !important;
}

.pb-public,
.pb-booking-page {
  color-scheme: light !important;
}

.pb-shell.pb-public.pb-booking-page {
  width: min(100%, 1120px) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  overflow-x: hidden !important;
}

.pb-booking-page .pb-booking-flow,
.pb-booking-page .pb-booking-main,
.pb-booking-page .pb-booking-card,
.pb-booking-page .pb-booking-summary,
.pb-booking-page .pb-success-card,
.pb-booking-page .pb-grid,
.pb-booking-page .pb-grid-2,
.pb-booking-page .pb-service-grid,
.pb-booking-page .pb-schedule-grid,
.pb-booking-page .pb-category-services {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.pb-booking-page .pb-service-card,
.pb-booking-page .pb-provider-chip,
.pb-booking-page .pb-time,
.pb-booking-page .pb-field input,
.pb-booking-page .pb-field textarea,
.pb-booking-page .pb-field select,
.pb-booking-page .pb-button,
.pb-booking-page .pb-ghost-button,
.pb-booking-page .pb-more-info,
.pb-info-modal-dialog,
.pb-info-modal-close {
  color-scheme: light !important;
}

/* Force readable customer UI even when the visitor's phone/computer is in dark mode. */
@media (prefers-color-scheme: dark) {
  .pb-shell.pb-public.pb-booking-page {
    background: #f1f2ee !important;
    color: #17181a !important;
    border-color: rgba(23,24,26,0.08) !important;
  }

  .pb-booking-page .pb-booking-hero,
  .pb-booking-page .pb-booking-card,
  .pb-booking-page .pb-booking-summary,
  .pb-booking-page .pb-success-card {
    background: #fbfbf9 !important;
    color: #17181a !important;
    border-color: rgba(23,24,26,0.10) !important;
  }

  .pb-booking-page .pb-service-card {
    background: linear-gradient(180deg, #eef1ef 0%, #f5f6f4 100%) !important;
    color: #17181a !important;
    border-color: rgba(23,24,26,0.10) !important;
  }

  .pb-booking-page .pb-section-head h2,
  .pb-booking-page .pb-booking-hero h1,
  .pb-booking-page .pb-category-title,
  .pb-booking-page .pb-service-card strong,
  .pb-booking-page .pb-selected-box strong,
  .pb-booking-page .pb-summary-item strong,
  .pb-booking-page .pb-success-item strong {
    color: #17181a !important;
  }

  .pb-booking-page .pb-section-head p,
  .pb-booking-page .pb-booking-hero p,
  .pb-booking-page .pb-muted,
  .pb-booking-page .pb-service-card p,
  .pb-booking-page .pb-summary-empty,
  .pb-booking-page .pb-summary-item span,
  .pb-booking-page .pb-success-item span,
  .pb-booking-page .pb-selected-box span {
    color: #4b5563 !important;
  }

  .pb-booking-page .pb-field input,
  .pb-booking-page .pb-field textarea,
  .pb-booking-page .pb-field select,
  .pb-booking-page .pb-provider-chip,
  .pb-booking-page .pb-time,
  .pb-booking-page .pb-ghost-button,
  .pb-booking-page .pb-summary-item,
  .pb-booking-page .pb-selected-box,
  .pb-booking-page .pb-success-item {
    background: #ffffff !important;
    color: #17181a !important;
    border-color: rgba(23,24,26,0.12) !important;
  }

  .pb-booking-page .pb-field input::placeholder,
  .pb-booking-page .pb-field textarea::placeholder {
    color: #6b7280 !important;
    opacity: 1 !important;
  }

  .pb-booking-page .pb-service-meta,
  .pb-booking-page .pb-steps span.is-active,
  .pb-booking-page .pb-provider-chip.is-active,
  .pb-booking-page .pb-time.is-active {
    background: rgba(11,125,102,0.12) !important;
    color: #0b7d66 !important;
    border-color: rgba(11,125,102,0.26) !important;
  }

  .pb-info-modal-backdrop {
    background: rgba(17,24,39,.56) !important;
  }

  .pb-info-modal-dialog {
    background: radial-gradient(120% 120% at 100% 0%, rgba(11,125,102,.10), transparent 42%), #ffffff !important;
    color: #17181a !important;
    border-color: rgba(23,24,26,.10) !important;
  }

  .pb-info-modal-dialog h3,
  .pb-info-modal-close {
    color: #17181a !important;
  }

  .pb-info-modal-body {
    color: #4b5563 !important;
  }

  .pb-info-modal-meta {
    background: rgba(11,125,102,.10) !important;
    color: #0b7d66 !important;
  }

  .pb-info-modal-close {
    background: #f7f7f5 !important;
    border-color: rgba(23,24,26,.10) !important;
  }
}

@media (max-width: 640px) {
  html:has(.pb-booking-page),
  body:has(.pb-booking-page) {
    overflow-x: hidden !important;
  }

  .pb-shell.pb-public.pb-booking-page {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 20px !important;
    padding-left: max(10px, env(safe-area-inset-left)) !important;
    padding-right: max(10px, env(safe-area-inset-right)) !important;
  }

  .pb-info-modal {
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
    right: 0 !important;
    padding-left: max(10px, env(safe-area-inset-left)) !important;
    padding-right: max(10px, env(safe-area-inset-right)) !important;
  }

  .pb-info-modal-dialog {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* v1.1.85 - Upcoming bookings grouped by day */
.pb-booking-stack-grouped {
  gap: 14px;
}
.pb-booking-day-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 8px 0 2px;
  color: #475569;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.pb-booking-day-heading::after {
  content: "";
  height: 1px;
  flex: 1;
  background: rgba(148, 163, 184, 0.35);
}
.pb-booking-day-heading span {
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.28);
  color: #0f172a;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.05);
}
@media (max-width: 640px) {
  .pb-booking-day-heading {
    align-items: flex-start;
    gap: 8px;
  }
  .pb-booking-day-heading::after {
    margin-top: 17px;
  }
  .pb-booking-day-heading span {
    max-width: calc(100vw - 48px);
    white-space: normal;
    line-height: 1.25;
  }
}


/* Privly Booking 1.1.86: Swedish admin dates + staff panel dark theme toggle */
.pb-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
  text-align: center;
}
.pb-theme-toggle:hover,
.pb-theme-toggle:focus-visible {
  background: rgba(255,255,255,.14);
  outline: none;
}
.pb-panel[data-pb-theme="dark"] {
  color-scheme: dark;
  --privly-bg: #0b1020;
  --privly-card: #111827;
  --privly-border: rgba(148,163,184,.22);
  --privly-text: #f8fafc;
  --privly-muted: #a7b0c0;
  --privly-primary-soft: rgba(11,125,102,.20);
  --privly-success-bg: rgba(16,185,129,.14);
  --privly-success: #7dd3a7;
  --privly-error-bg: rgba(248,113,113,.14);
  --privly-error: #fca5a5;
  background: radial-gradient(900px 420px at 100% 0%, rgba(11,125,102,.16), transparent 60%), #0b1020 !important;
  border-color: rgba(148,163,184,.22) !important;
  box-shadow: 0 20px 70px rgba(0,0,0,.42) !important;
}
.pb-panel[data-pb-theme="dark"]::after { color: rgba(248,250,252,.22) !important; }
.pb-panel[data-pb-theme="dark"] .pb-sidebar {
  background: linear-gradient(180deg,#050816 0%,#0f172a 100%) !important;
  border-right: 1px solid rgba(148,163,184,.18);
}
.pb-panel[data-pb-theme="dark"] .pb-main,
.pb-panel[data-pb-theme="dark"] .pb-main h1,
.pb-panel[data-pb-theme="dark"] .pb-main h2,
.pb-panel[data-pb-theme="dark"] .pb-main h3,
.pb-panel[data-pb-theme="dark"] .pb-card,
.pb-panel[data-pb-theme="dark"] .pb-booking-item,
.pb-panel[data-pb-theme="dark"] .pb-booking-block strong,
.pb-panel[data-pb-theme="dark"] .pb-table,
.pb-panel[data-pb-theme="dark"] .pb-table td {
  color: var(--privly-text) !important;
}
.pb-panel[data-pb-theme="dark"] .pb-card,
.pb-panel[data-pb-theme="dark"] .pb-person,
.pb-panel[data-pb-theme="dark"] .pb-time,
.pb-panel[data-pb-theme="dark"] .pb-month-cell,
.pb-panel[data-pb-theme="dark"] .pb-holiday-card,
.pb-panel[data-pb-theme="dark"] .pb-booking-block,
.pb-panel[data-pb-theme="dark"] .pb-temp-code-box,
.pb-panel[data-pb-theme="dark"] .pb-setup-box {
  background: #111827 !important;
  border-color: rgba(148,163,184,.22) !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.25) !important;
}
.pb-panel[data-pb-theme="dark"] .pb-muted,
.pb-panel[data-pb-theme="dark"] .pb-table th,
.pb-panel[data-pb-theme="dark"] .pb-booking-block span,
.pb-panel[data-pb-theme="dark"] .pb-booking-block small,
.pb-panel[data-pb-theme="dark"] .pb-field label,
.pb-panel[data-pb-theme="dark"] .pb-check,
.pb-panel[data-pb-theme="dark"] .pb-booking-day-heading span {
  color: var(--privly-muted) !important;
}
.pb-panel[data-pb-theme="dark"] .pb-table th,
.pb-panel[data-pb-theme="dark"] .pb-table td {
  border-bottom-color: rgba(148,163,184,.18) !important;
}
.pb-panel[data-pb-theme="dark"] .pb-field input,
.pb-panel[data-pb-theme="dark"] .pb-field select,
.pb-panel[data-pb-theme="dark"] .pb-field textarea,
.pb-panel[data-pb-theme="dark"] input[type="text"],
.pb-panel[data-pb-theme="dark"] input[type="email"],
.pb-panel[data-pb-theme="dark"] input[type="number"],
.pb-panel[data-pb-theme="dark"] input[type="password"],
.pb-panel[data-pb-theme="dark"] select,
.pb-panel[data-pb-theme="dark"] textarea {
  background: #0f172a !important;
  border-color: rgba(148,163,184,.30) !important;
  color: #f8fafc !important;
}
.pb-panel[data-pb-theme="dark"] input::placeholder,
.pb-panel[data-pb-theme="dark"] textarea::placeholder { color: #818cf8 !important; opacity: .72; }
.pb-panel[data-pb-theme="dark"] .pb-nav { color: #cbd5e1 !important; }
.pb-panel[data-pb-theme="dark"] .pb-nav:hover,
.pb-panel[data-pb-theme="dark"] .pb-nav.is-active { background: rgba(11,125,102,.30) !important; color: #fff !important; }
.pb-panel[data-pb-theme="dark"] .pb-button-secondary,
.pb-panel[data-pb-theme="dark"] .pb-link-button {
  background: #1f2937 !important;
  border: 1px solid rgba(148,163,184,.28) !important;
  color: #f8fafc !important;
}
.pb-panel[data-pb-theme="dark"] .pb-status-pill,
.pb-panel[data-pb-theme="dark"] .pb-status-ok,
.pb-panel[data-pb-theme="dark"] .pb-status-error { border: 1px solid rgba(255,255,255,.10); }
.pb-panel[data-pb-theme="dark"] .pb-booking-day-heading { border-color: rgba(148,163,184,.20) !important; }
.pb-panel[data-pb-theme="dark"] .pb-booking-day-heading span { background: #0b1020 !important; }
.pb-panel[data-pb-theme="dark"] .pb-month-cell.is-muted { opacity: .45; }
.pb-panel[data-pb-theme="dark"] .pb-month-cell.is-closed,
.pb-panel[data-pb-theme="dark"] .pb-holiday-card:has(input:checked) { background: rgba(248,113,113,.14) !important; }
@media(max-width:900px){
  .pb-theme-toggle { margin-bottom: 4px; }
}


.pb-month-picker {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 10px;
}

.pb-panel[data-pb-theme="dark"] {
  --privly-bg: #0b1020;
  --privly-card: #111827;
  --privly-border: rgba(148, 163, 184, .24);
  --privly-text: #f8fafc;
  --privly-ink: #f8fafc;
  --privly-muted: #b8c2d6;
  --pb-live-bg: #0b1020;
  --pb-live-card: #111827;
  --pb-live-text: #f8fafc;
  --pb-live-muted: #b8c2d6;
  --pb-live-border: rgba(148, 163, 184, .24);
  background: #0b1020 !important;
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-main {
  background: radial-gradient(900px 420px at 100% 0%, rgba(11,125,102,.13), transparent 60%), #0b1020 !important;
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-main h1 {
  color: #f8fafc !important;
  text-shadow: none !important;
}

.pb-panel[data-pb-theme="dark"] .pb-main h2,
.pb-panel[data-pb-theme="dark"] .pb-main h3,
.pb-panel[data-pb-theme="dark"] .pb-card h2,
.pb-panel[data-pb-theme="dark"] .pb-card h3,
.pb-panel[data-pb-theme="dark"] .pb-card p,
.pb-panel[data-pb-theme="dark"] .pb-check strong,
.pb-panel[data-pb-theme="dark"] .pb-booking-time,
.pb-panel[data-pb-theme="dark"] .pb-month-date {
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-card,
.pb-panel[data-pb-theme="dark"] .pb-booking-item,
.pb-panel[data-pb-theme="dark"] .pb-week-row,
.pb-panel[data-pb-theme="dark"] .pb-booking-block,
.pb-panel[data-pb-theme="dark"] .pb-month-cell,
.pb-panel[data-pb-theme="dark"] .pb-holiday-card,
.pb-panel[data-pb-theme="dark"] .pb-selected-box,
.pb-panel[data-pb-theme="dark"] .pb-person,
.pb-panel[data-pb-theme="dark"] .pb-time,
.pb-panel[data-pb-theme="dark"] .pb-table {
  background: #111827 !important;
  border-color: rgba(148, 163, 184, .24) !important;
  color: #f8fafc !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.28) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-week-row {
  background: #0f172a !important;
}

.pb-panel[data-pb-theme="dark"] .pb-booking-block,
.pb-panel[data-pb-theme="dark"] .pb-month-cell {
  background: #0f172a !important;
}

.pb-panel[data-pb-theme="dark"] .pb-booking-item-top,
.pb-panel[data-pb-theme="dark"] .pb-table th,
.pb-panel[data-pb-theme="dark"] .pb-table td {
  border-color: rgba(148, 163, 184, .22) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-booking-cancel-form,
.pb-panel[data-pb-theme="dark"] .pb-booking-clear-form {
  background: rgba(15, 23, 42, .96) !important;
  border-color: rgba(248, 113, 113, .28) !important;
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-booking-clear-form {
  border-color: rgba(148, 163, 184, .24) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-field label,
.pb-panel[data-pb-theme="dark"] .pb-muted,
.pb-panel[data-pb-theme="dark"] .pb-booking-block span,
.pb-panel[data-pb-theme="dark"] .pb-booking-block small,
.pb-panel[data-pb-theme="dark"] .pb-month-day-name,
.pb-panel[data-pb-theme="dark"] .pb-selected-box span,
.pb-panel[data-pb-theme="dark"] .pb-check,
.pb-panel[data-pb-theme="dark"] .pb-table th {
  color: #b8c2d6 !important;
}

.pb-panel[data-pb-theme="dark"] input,
.pb-panel[data-pb-theme="dark"] select,
.pb-panel[data-pb-theme="dark"] textarea,
.pb-panel[data-pb-theme="dark"] .pb-week-times input,
.pb-panel[data-pb-theme="dark"] .pb-field input,
.pb-panel[data-pb-theme="dark"] .pb-field select,
.pb-panel[data-pb-theme="dark"] .pb-field textarea {
  background: #0b1222 !important;
  border-color: rgba(148, 163, 184, .34) !important;
  color: #f8fafc !important;
  color-scheme: dark !important;
}

.pb-panel[data-pb-theme="dark"] input[type="checkbox"] {
  accent-color: #0b7d66;
}

.pb-panel[data-pb-theme="dark"] textarea::placeholder,
.pb-panel[data-pb-theme="dark"] input::placeholder {
  color: #93a4c5 !important;
  opacity: 1 !important;
}

.pb-panel[data-pb-theme="dark"] .pb-month-cell.is-muted {
  opacity: .5 !important;
}

.pb-panel[data-pb-theme="dark"] .pb-month-cell.is-holiday {
  background: rgba(180, 83, 9, .16) !important;
  border-color: rgba(245, 158, 11, .24) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-month-cell.is-closed {
  background: rgba(127, 29, 29, .24) !important;
  border-color: rgba(248, 113, 113, .32) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-month-cell small {
  color: #fbbf24 !important;
}

.pb-panel[data-pb-theme="dark"] .pb-month-cell strong {
  color: #fca5a5 !important;
}

.pb-panel[data-pb-theme="dark"] .pb-status-ok,
.pb-panel[data-pb-theme="dark"] .pb-status-pill {
  background: rgba(16, 185, 129, .14) !important;
  color: #7dd3a7 !important;
  border-color: rgba(16, 185, 129, .24) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-status-error {
  background: rgba(248, 113, 113, .14) !important;
  color: #fca5a5 !important;
  border-color: rgba(248, 113, 113, .24) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-button-secondary,
.pb-panel[data-pb-theme="dark"] .pb-link-button,
.pb-panel[data-pb-theme="dark"] .pb-theme-toggle {
  background: #1f2937 !important;
  border-color: rgba(148, 163, 184, .30) !important;
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-button-secondary:hover,
.pb-panel[data-pb-theme="dark"] .pb-theme-toggle:hover {
  background: #263244 !important;
}

.pb-panel[data-pb-theme="dark"] .pb-booking-day-heading {
  border-color: rgba(148, 163, 184, .24) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-booking-day-heading span {
  background: #0b1020 !important;
  color: #dbeafe !important;
}

@media (max-width: 640px) {
  .pb-month-picker { grid-template-columns: 1fr; }
}

/* Privly Booking 1.1.92: Systemstatus should breathe; test mail moved below the status table. */
.pb-system-status-card,
.pb-system-testmail-card {
  width: 100%;
  margin-bottom: 18px;
}
.pb-system-status-table-wrap {
  overflow-x: visible !important;
}
.pb-system-status-table {
  min-width: 0 !important;
  width: 100% !important;
  table-layout: fixed;
}
.pb-system-status-table th,
.pb-system-status-table td {
  white-space: normal !important;
  word-break: break-word;
}
.pb-system-status-table td:first-child {
  width: 28%;
}
.pb-system-status-table td:nth-child(2) {
  width: 160px;
}
.pb-system-testmail-form {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.4fr) auto;
  gap: 14px;
  align-items: end;
}
.pb-system-testmail-submit .pb-button {
  white-space: nowrap;
}
@media (max-width: 760px) {
  .pb-system-status-table,
  .pb-system-status-table tbody,
  .pb-system-status-table tr,
  .pb-system-status-table td {
    display: block;
    width: 100% !important;
  }
  .pb-system-status-table tr {
    padding: 12px 0;
    border-bottom: 1px solid var(--privly-border);
  }
  .pb-system-status-table td {
    padding: 4px 0 !important;
    border-bottom: 0 !important;
  }
  .pb-system-testmail-form {
    grid-template-columns: 1fr;
  }
  .pb-system-testmail-submit label {
    display: none;
  }
  .pb-system-testmail-submit .pb-button {
    width: 100%;
  }
}

/* Privly Booking 1.1.94: keep the event log useful without stretching the page forever. */
.pb-event-log-scroll {
  max-height: 560px;
  overflow: auto;
}
.pb-event-log-scroll .pb-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--privly-card, #fff);
}
.pb-theme-dark .pb-event-log-scroll .pb-table thead th,
.pb-admin-shell.pb-theme-dark .pb-event-log-scroll .pb-table thead th {
  background: var(--privly-card, #151b2d);
}

/* Privly Booking 1.1.95: custom same-day confirmation modal */
.pb-decision-modal-dialog {
  max-width: min(92vw, 560px);
}
.pb-decision-modal-kicker {
  color: var(--privly-primary);
  background: var(--privly-primary-soft);
  border: 1px solid rgba(11,125,102,.12);
  padding: 6px 10px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 10px;
  font-weight: 700;
}
.pb-decision-modal-dialog h3 {
  max-width: none;
}
.pb-decision-modal-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 18px;
  flex-wrap: wrap;
}
.pb-decision-modal-actions .pb-button {
  min-width: 150px;
}
@media (max-width: 560px) {
  .pb-decision-modal-actions {
    flex-direction: column-reverse;
  }
  .pb-decision-modal-actions .pb-button {
    width: 100%;
    min-width: 0;
  }
}


/* Privly Booking 1.1.99: statistics page */
.pb-stats-intro {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
}
.pb-stats-intro h2 {
  margin-bottom: 6px;
}
.pb-stats-range {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.pb-stats-range-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--privly-border);
  background: #fff;
  color: var(--privly-text);
  text-decoration: none;
  font-weight: 700;
  font-size: 13px;
}
.pb-stats-range-link.is-active {
  background: var(--privly-primary);
  color: #fff;
  border-color: var(--privly-primary);
}
.pb-stats-card {
  overflow: hidden;
}
.pb-stats-bars {
  min-height: 230px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(42px, 1fr));
  gap: 10px;
  align-items: end;
  padding-top: 10px;
}
.pb-stats-bar-item {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 210px;
  gap: 8px;
  text-align: center;
  min-width: 0;
}
.pb-stats-bar-value {
  font-weight: 800;
  font-size: 13px;
}
.pb-stats-bar-track {
  height: 150px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: rgba(15,23,42,.045);
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.06);
}
.pb-stats-bar-track span {
  display: block;
  width: 100%;
  min-height: 4px;
  background: var(--privly-primary);
  border-radius: 999px 999px 0 0;
}
.pb-stats-bar-label {
  color: var(--privly-muted);
  font-size: 12px;
  font-weight: 700;
}
.pb-stats-list {
  display: grid;
  gap: 14px;
}
.pb-stats-row {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(120px, 2fr) auto;
  gap: 12px;
  align-items: center;
}
.pb-stats-row > div:first-child span {
  display: block;
  font-size: 12px;
}
.pb-stats-line {
  height: 10px;
  background: rgba(15,23,42,.07);
  border-radius: 999px;
  overflow: hidden;
}
.pb-stats-line span {
  display: block;
  height: 100%;
  min-width: 4px;
  background: var(--privly-primary);
  border-radius: inherit;
}
.pb-stats-table {
  min-width: 0 !important;
}
.pb-stats-table th,
.pb-stats-table td {
  white-space: normal;
}
@media (max-width: 700px) {
  .pb-stats-intro {
    display: block;
  }
  .pb-stats-range {
    justify-content: flex-start;
    margin-top: 14px;
  }
  .pb-stats-row {
    grid-template-columns: 1fr auto;
  }
  .pb-stats-line {
    grid-column: 1 / -1;
    order: 3;
  }
}
.pb-panel[data-pb-theme="dark"] .pb-stats-range-link {
  background: #111827;
  border-color: rgba(255,255,255,.12);
  color: #e5e7eb;
}
.pb-panel[data-pb-theme="dark"] .pb-stats-range-link.is-active,
.pb-panel[data-pb-theme="dark"] .pb-stats-bar-track span,
.pb-panel[data-pb-theme="dark"] .pb-stats-line span {
  background: var(--privly-primary);
  color: #fff;
}
.pb-panel[data-pb-theme="dark"] .pb-stats-bar-track,
.pb-panel[data-pb-theme="dark"] .pb-stats-line {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.08);
}

/* Privly Booking 1.1.100: statistics week labels and orphan staff cleanup */
.pb-stats-bar-label strong,
.pb-stats-bar-label span {
  display: block;
}
.pb-stats-bar-label span {
  font-size: 11px;
  font-weight: 650;
  opacity: .78;
  margin-top: 2px;
}
@media (max-width: 900px) {
  .pb-stats-bars {
    grid-template-columns: repeat(auto-fit, minmax(54px, 1fr));
  }
}


/* Privly Booking 1.1.101: improved statistics filters and trend view */
.pb-stats-filter-card h2 {
  margin-bottom: 12px;
}
.pb-stats-quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.pb-stats-date-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
}
.pb-stats-date-form .pb-field {
  margin-bottom: 0;
}
.pb-stats-trend-card {
  overflow: hidden;
}
.pb-stats-trend {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.pb-stats-trend-row {
  display: grid;
  grid-template-columns: minmax(96px, 130px) minmax(120px, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.pb-stats-trend-label strong,
.pb-stats-trend-label span {
  display: block;
}
.pb-stats-trend-label strong {
  font-size: 14px;
}
.pb-stats-trend-label span {
  font-size: 12px;
  color: var(--privly-muted);
  margin-top: 2px;
}
.pb-stats-trend-line {
  height: 14px;
  background: rgba(15,23,42,.07);
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.06);
}
.pb-stats-trend-line span {
  display: block;
  height: 100%;
  min-width: 3px;
  background: var(--privly-primary);
  border-radius: inherit;
}
.pb-stats-trend-row b {
  min-width: 24px;
  text-align: right;
}
@media (max-width: 760px) {
  .pb-stats-date-form {
    grid-template-columns: 1fr;
  }
  .pb-stats-trend-row {
    grid-template-columns: 1fr auto;
  }
  .pb-stats-trend-line {
    grid-column: 1 / -1;
    order: 3;
  }
}
.pb-panel[data-pb-theme="dark"] .pb-stats-trend-line {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.08);
}
.pb-panel[data-pb-theme="dark"] .pb-stats-trend-line span {
  background: var(--privly-primary);
}


/* Privly Booking 1.1.102: booking status actions */
.pb-booking-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(148, 163, 184, .22);
}
.pb-inline-form {
  display: inline-flex;
  margin: 0;
}
.pb-booking-status-actions .pb-button {
  min-height: 38px;
  padding: 9px 12px;
  font-size: 13px;
}
@media (max-width: 560px) {
  .pb-booking-status-actions,
  .pb-inline-form,
  .pb-booking-status-actions .pb-button {
    width: 100%;
  }
}
.pb-panel[data-pb-theme="dark"] .pb-booking-status-actions {
  border-top-color: rgba(255,255,255,.12);
}


/* Privly Booking 1.1.104: safe custom admin feedback */
.pb-toast {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 100000;
  max-width: min(420px, calc(100vw - 32px));
  background: #0f172a;
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  padding: 13px 15px;
  box-shadow: 0 20px 50px rgba(15,23,42,.28);
  font-weight: 750;
  line-height: 1.35;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.pb-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.pb-toast.is-error {
  background: #7f1d1d;
}
@media (max-width: 560px) {
  .pb-toast {
    left: 12px;
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    max-width: none;
  }
}


/* Privly Booking 1.1.105: booking day accordion and improved admin feedback */
.pb-booking-day-accordion {
  gap: 12px;
}
.pb-booking-day-group {
  border: 1px solid var(--privly-border);
  border-radius: 18px;
  background: var(--privly-card);
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(17,24,39,.045);
}
.pb-booking-day-group[open] {
  box-shadow: 0 12px 34px rgba(17,24,39,.075);
}
.pb-booking-day-heading {
  list-style: none;
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  background: linear-gradient(180deg, rgba(248,250,252,.95), rgba(255,255,255,.98));
  border-bottom: 1px solid transparent;
}
.pb-booking-day-heading::-webkit-details-marker {
  display: none;
}
.pb-booking-day-heading span {
  font-weight: 850;
}
.pb-booking-day-heading strong {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: var(--privly-primary-soft);
  color: var(--privly-primary);
  padding: 6px 10px;
  font-size: 12px;
  white-space: nowrap;
}
.pb-booking-day-heading:after {
  content: "▾";
  color: var(--privly-muted);
  font-size: 13px;
  transition: transform .16s ease;
}
.pb-booking-day-group[open] > .pb-booking-day-heading {
  border-bottom-color: var(--privly-border);
}
.pb-booking-day-group[open] > .pb-booking-day-heading:after {
  transform: rotate(180deg);
}
.pb-booking-day-body {
  display: grid;
  gap: 12px;
  padding: 12px;
}
.pb-booking-day-body > .pb-booking-item {
  margin-bottom: 0;
}
.pb-booking-stack-grouped > .pb-booking-day-heading:not(summary) {
  display: none;
}
@media (max-width: 560px) {
  .pb-booking-day-heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .pb-booking-day-heading:after {
    position: absolute;
    right: 16px;
  }
  .pb-booking-day-heading strong {
    margin-right: 24px;
  }
}
.pb-panel[data-pb-theme="dark"] .pb-booking-day-group {
  background: #111827;
  border-color: rgba(255,255,255,.12);
  box-shadow: none;
}
.pb-panel[data-pb-theme="dark"] .pb-booking-day-heading {
  background: linear-gradient(180deg, rgba(15,23,42,.98), rgba(17,24,39,.98));
  border-bottom-color: rgba(255,255,255,.10);
}
.pb-panel[data-pb-theme="dark"] .pb-booking-day-heading strong {
  background: rgba(16,185,129,.14);
  color: #86efac;
}
.pb-panel[data-pb-theme="dark"] .pb-booking-day-heading:after {
  color: #cbd5e1;
}


/* Privly Booking 1.1.107: real admin/personnel modal, not toast fallback */
.pb-admin-modal-dialog {
  max-width: min(92vw, 560px);
}
.pb-admin-modal-kicker {
  color: var(--privly-primary);
  background: var(--privly-primary-soft);
  border: 1px solid rgba(11,125,102,.12);
  padding: 6px 10px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 10px;
  font-weight: 700;
}
.pb-admin-modal-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 18px;
  flex-wrap: wrap;
}
.pb-admin-modal-actions .pb-button {
  min-width: 140px;
}
@media (max-width: 560px) {
  .pb-admin-modal-actions {
    flex-direction: column-reverse;
  }
  .pb-admin-modal-actions .pb-button {
    width: 100%;
    min-width: 0;
  }
}
.pb-panel[data-pb-theme="dark"] ~ .pb-admin-modal .pb-info-modal-dialog,
.pb-admin-modal .pb-info-modal-dialog {
  color: var(--privly-text);
}


/* Privly Booking 1.1.108: clearer booking limit settings */
.pb-settings-section {
  border: 1px solid var(--privly-border);
  border-radius: 16px;
  padding: 16px;
  margin: 0 0 16px;
  background: rgba(248,250,252,.72);
}
.pb-settings-section h2 {
  margin-top: 0;
}
.pb-settings-section .pb-field:last-child {
  margin-bottom: 0;
}
.pb-panel[data-pb-theme="dark"] .pb-settings-section {
  background: rgba(15,23,42,.65);
  border-color: rgba(255,255,255,.12);
}


/* Privly Booking 1.1.122: activation/2FA flow hardening */
.pb-login-screen {
  overflow-y: auto;
  overflow-x: hidden;
  align-items: start;
}
.pb-live-shell {
  margin: min(5vh, 40px) auto;
}
.pb-live-card {
  max-height: calc(100vh - 96px);
  overflow-y: auto;
  scrollbar-width: thin;
}
.pb-agent-finish-form {
  display: grid;
  gap: 14px;
}
.pb-agent-finish-form.is-hidden {
  display: none !important;
}
.pb-activation-step {
  border: 1px solid var(--border);
  background: rgba(255,255,255,.035);
  border-radius: 16px;
  padding: 16px;
}
.pb-activation-step h2 {
  margin: 4px 0 6px;
  color: var(--text);
  font-size: 20px;
  line-height: 1.15;
}
.pb-activation-step p {
  margin: 0 0 14px;
}
.pb-activation-step-kicker {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  background: rgba(11,125,102,.18);
  color: #86efac;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.pb-live-setup {
  margin-bottom: 0;
}
.pb-live-qr-wrap {
  width: min(240px, 100%);
  min-height: 240px;
  display: grid;
  place-items: center;
  background: #fff;
  border-radius: 16px;
  padding: 10px;
  margin: 12px 0;
  border: 1px solid rgba(255,255,255,.12);
}
.pb-live-qr-wrap.has-error {
  background: rgba(251,191,36,.10);
  border-color: rgba(251,191,36,.35);
}
.pb-live-qr[hidden],
.pb-live-qr.is-broken {
  display: none !important;
}
.pb-live-qr {
  display: block;
  width: 220px;
  height: 220px;
  max-width: 100%;
  object-fit: contain;
  background: #fff;
  border-radius: 12px;
  padding: 0;
  margin: 0;
}
.pb-live-qr-placeholder {
  color: #475569;
  font-weight: 800;
  text-align: center;
  padding: 16px;
}
.pb-live-fallback {
  margin: 8px 0 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(251,191,36,.12);
  border: 1px solid rgba(251,191,36,.35);
  color: #fde68a;
  font-size: 13px;
  line-height: 1.45;
}
.pb-live-manual-key {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.pb-live-manual-key > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}
.pb-live-copy-key {
  width: fit-content;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  border-radius: 10px;
  padding: 8px 10px;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  margin: 8px 0 12px;
}
.pb-live-totp-field {
  margin-top: 4px;
}
.pb-live-auth-note {
  margin: 0 0 12px !important;
  font-size: 12.5px !important;
}
@media (max-width: 520px) {
  .pb-login-screen {
    padding: 12px;
  }
  .pb-live-shell {
    margin: 0 auto;
  }
  .pb-live-card {
    max-height: calc(100vh - 24px);
    padding: 20px 16px;
  }
  .pb-live-qr-wrap {
    min-height: 210px;
  }
  .pb-live-qr {
    width: 190px;
    height: 190px;
  }
}


/* Privly Booking 1.1.123: activation wizard instead of long stacked flow */
.pb-activation-panel.is-hidden {
  display: none !important;
}
.pb-activation-panel {
  animation: pbActivationSlide .25s ease;
}
@keyframes pbActivationSlide {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.pb-activation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.pb-live-btn-secondary {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  box-shadow: none;
}
.pb-live-btn-secondary:hover,
.pb-live-btn-secondary:focus {
  background: rgba(255,255,255,.06);
}
.pb-live-qr-wrap {
  width: min(210px, 100%);
  min-height: 210px;
}
.pb-live-qr {
  width: 190px;
  height: 190px;
}
.pb-agent-finish-form[data-pb-active-panel="account"] .pb-live-setup {
  margin-top: 0;
}
@media (max-width: 520px) {
  .pb-activation-actions {
    display: grid;
  }
  .pb-activation-actions .pb-live-btn {
    width: 100%;
  }
}


/* Privly Booking 1.1.124: activation viewport/zoom hardening */
html:has(.pb-login-screen),
body:has(.pb-login-screen) {
  min-height: 100%;
  overflow-y: auto !important;
}
.pb-login-screen {
  min-height: 100dvh !important;
  height: auto !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: block !important;
  padding: clamp(10px, 2vh, 22px) 12px !important;
}
.pb-live-shell {
  width: min(100%, 430px) !important;
  max-width: 430px !important;
  margin: 0 auto !important;
  padding-bottom: 28px !important;
}
.pb-live-brand {
  margin-bottom: 14px !important;
}
.pb-live-card {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  padding: clamp(18px, 3vh, 26px) !important;
  border-radius: 20px !important;
}
.pb-live-card h1 {
  font-size: clamp(22px, 4vw, 28px) !important;
}
.pb-live-card p {
  margin-bottom: 16px !important;
}
.pb-auth-tabs {
  margin-bottom: 18px !important;
}
.pb-activation-step {
  padding: clamp(14px, 2.4vh, 18px) !important;
  border-radius: 18px !important;
}
.pb-activation-step h2 {
  font-size: clamp(21px, 4vw, 27px) !important;
}
.pb-live-setup.pb-activation-step {
  display: grid !important;
  gap: 10px !important;
}
.pb-live-qr-wrap {
  width: min(172px, 52vw) !important;
  min-height: min(172px, 52vw) !important;
  padding: 8px !important;
  margin: 8px 0 2px !important;
  border-radius: 16px !important;
}
.pb-live-qr {
  width: min(150px, 46vw) !important;
  height: min(150px, 46vw) !important;
}
.pb-live-manual-key {
  margin-top: 4px !important;
  gap: 6px !important;
}
.pb-live-manual-key code,
.pb-live-setup code {
  font-size: 11px !important;
  line-height: 1.45 !important;
  padding: 9px 10px !important;
  max-height: 54px !important;
  overflow: auto !important;
}
.pb-live-copy-key {
  margin: 4px 0 6px !important;
  padding: 8px 10px !important;
}
.pb-live-totp-field {
  margin-top: 2px !important;
  margin-bottom: 8px !important;
}
.pb-live-field {
  margin-bottom: 10px !important;
}
.pb-live-field input {
  min-height: 46px !important;
}
.pb-activation-actions {
  position: sticky !important;
  bottom: 0 !important;
  z-index: 5 !important;
  background: linear-gradient(180deg, rgba(31,32,35,0), var(--surface-2) 28%, var(--surface-2)) !important;
  padding-top: 12px !important;
  margin-top: 4px !important;
}
.pb-live-footer {
  margin-top: 14px !important;
  padding-bottom: 10px !important;
}
@media (max-height: 760px) {
  .pb-live-brand {
    display: none !important;
  }
  .pb-auth-tabs {
    margin-bottom: 12px !important;
  }
  .pb-live-card {
    padding: 16px !important;
  }
  .pb-live-card h1 {
    font-size: 23px !important;
  }
  .pb-live-card p {
    font-size: 13px !important;
    margin-bottom: 12px !important;
  }
  .pb-activation-step {
    padding: 13px !important;
  }
  .pb-activation-step h2 {
    font-size: 22px !important;
    margin-bottom: 4px !important;
  }
  .pb-live-qr-wrap {
    width: 142px !important;
    min-height: 142px !important;
  }
  .pb-live-qr {
    width: 124px !important;
    height: 124px !important;
  }
  .pb-live-manual-key code,
  .pb-live-setup code {
    max-height: 42px !important;
  }
}
@media (max-width: 520px) {
  .pb-login-screen {
    padding: 8px !important;
  }
  .pb-live-shell {
    max-width: 100% !important;
  }
  .pb-live-card {
    padding: 15px !important;
    border-radius: 18px !important;
  }
}


/* Privly Booking 1.1.125: compact auth and company-first branding */
.pb-login-screen {
  padding: 10px 12px !important;
}
.pb-live-shell {
  width: min(100%, 390px) !important;
  max-width: 390px !important;
}
.pb-live-brand {
  margin: 0 0 10px !important;
}
.pb-live-brand-mark {
  width: 34px !important;
  height: 34px !important;
  border-radius: 10px !important;
  font-size: 15px !important;
}
.pb-live-brand-mark img,
.pb-company-brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pb-live-brand-name {
  font-size: 14px !important;
}
.pb-live-brand-sub {
  font-size: 11.5px !important;
}
.pb-live-card {
  padding: 18px !important;
  border-radius: 18px !important;
}
.pb-auth-tabs {
  margin: -4px 0 16px !important;
}
.pb-auth-tabs button {
  padding: 8px 10px !important;
  font-size: 13px !important;
}
.pb-live-card h1 {
  font-size: 27px !important;
  line-height: 1.05 !important;
  margin-bottom: 6px !important;
}
.pb-live-card p {
  font-size: 13.5px !important;
  margin-bottom: 14px !important;
}
.pb-live-field {
  gap: 5px !important;
  margin-bottom: 10px !important;
}
.pb-live-field label {
  font-size: 11.5px !important;
}
.pb-live-field input {
  min-height: 44px !important;
  padding: 9px 12px !important;
  font-size: 14px !important;
}
.pb-live-btn {
  padding: 11px 14px !important;
}
.pb-live-footer {
  margin-top: 12px !important;
  font-size: 11.5px !important;
}
.pb-activation-step {
  padding: 14px !important;
}
.pb-activation-step h2 {
  font-size: 22px !important;
}
.pb-live-qr-wrap {
  width: 142px !important;
  min-height: 142px !important;
}
.pb-live-qr {
  width: 124px !important;
  height: 124px !important;
}
.pb-company-brand {
  display: flex !important;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px !important;
  min-width: 0;
}
.pb-company-brand-mark {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: #0f8f72;
  color: #fff;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  font-weight: 850;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15,143,114,.22);
}
.pb-company-brand-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.pb-company-brand-copy strong {
  color: #fff;
  font-size: 16px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.pb-company-brand-copy span {
  color: rgba(226,232,240,.72);
  font-size: 11.5px;
  line-height: 1.2;
}
.pb-sidebar .pb-theme-toggle {
  margin-top: 4px;
}
@media(max-height: 760px) {
  .pb-live-brand {
    display: flex !important;
  }
  .pb-live-card {
    padding: 16px !important;
  }
  .pb-live-card h1 {
    font-size: 24px !important;
  }
}
@media(max-width: 520px) {
  .pb-live-shell {
    max-width: 100% !important;
  }
  .pb-live-card {
    padding: 15px !important;
  }
}


/* Privly Booking 1.1.126: login uses Privly brand; dashboard keeps company brand */
.pb-login-screen {
  min-height: 100dvh !important;
  height: auto !important;
  overflow-y: auto !important;
  display: block !important;
  padding-top: max(22px, env(safe-area-inset-top)) !important;
  padding-bottom: max(22px, env(safe-area-inset-bottom)) !important;
}
.pb-live-shell {
  margin: 0 auto !important;
  padding-top: 0 !important;
}
.pb-live-brand {
  display: flex !important;
  margin: 0 0 16px !important;
  align-items: center !important;
}
.pb-live-brand-mark.pb-privly-brand-mark {
  background: #0f8f72 !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(15,143,114,.28) !important;
}
.pb-live-brand-name {
  color: var(--text) !important;
}
.pb-live-brand-sub {
  color: var(--muted) !important;
}
.pb-live-footer {
  display: none !important;
}
@media(max-height: 760px) {
  .pb-login-screen {
    padding-top: 14px !important;
  }
  .pb-live-brand {
    display: flex !important;
    margin-bottom: 10px !important;
  }
}


/* Privly Booking 1.1.127: no powered-by text on login brand */
.pb-login-screen .pb-live-brand-sub {
  display: none !important;
}
.pb-login-screen .pb-live-brand {
  margin-bottom: 14px !important;
}
.pb-login-screen .pb-live-brand-name {
  line-height: 1.1 !important;
  font-weight: 750 !important;
}


/* Privly Booking 1.1.128: login centering + admin bar + zoom-safe layout */
:root {
  --pb-adminbar-offset: 0px;
}
body.admin-bar {
  --pb-adminbar-offset: 32px;
}
@media screen and (max-width: 782px) {
  body.admin-bar {
    --pb-adminbar-offset: 46px;
  }
}

.pb-login-screen {
  min-height: calc(100dvh - var(--pb-adminbar-offset)) !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding-top: calc(var(--pb-adminbar-offset) + env(safe-area-inset-top) + 24px) !important;
  padding-right: 12px !important;
  padding-bottom: calc(env(safe-area-inset-bottom) + 24px) !important;
  padding-left: 12px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scroll-padding-top: calc(var(--pb-adminbar-offset) + 24px) !important;
}

.pb-live-shell {
  width: min(100%, 390px) !important;
  max-width: 390px !important;
  margin: auto !important;
}

.pb-live-brand {
  width: 100% !important;
  justify-content: flex-start !important;
}

.pb-live-card {
  width: 100% !important;
}

@media screen and (max-height: 820px) {
  .pb-login-screen {
    justify-content: flex-start !important;
  }
  .pb-live-shell {
    margin-top: 0 !important;
    margin-bottom: auto !important;
  }
}

@media screen and (max-width: 520px) {
  .pb-login-screen {
    padding-right: 8px !important;
    padding-left: 8px !important;
  }
  .pb-live-shell {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media screen and (max-width: 782px) and (min-height: 821px) {
  .pb-login-screen {
    justify-content: center !important;
  }
}


/* Privly Booking 1.1.129: horizontal 2FA step + reliable activation return */
.pb-live-shell {
  width: min(100%, 460px) !important;
  max-width: 460px !important;
}
.pb-agent-finish-form[data-pb-active-panel="totp"] {
  margin-left: -6px;
  margin-right: -6px;
}
.pb-totp-layout {
  display: grid;
  grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.pb-totp-qr-col {
  display: flex;
  justify-content: center;
}
.pb-totp-fields-col {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: start;
}
.pb-totp-layout .pb-live-qr-wrap {
  width: 214px !important;
  min-height: 214px !important;
  margin: 0 !important;
}
.pb-totp-layout .pb-live-qr {
  width: 194px !important;
  height: 194px !important;
}
.pb-totp-layout .pb-live-manual-key,
.pb-totp-layout .pb-live-copy-key,
.pb-totp-layout .pb-live-totp-field {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.pb-totp-layout .pb-live-manual-key code,
.pb-totp-layout .pb-live-setup code {
  max-height: 70px !important;
}
.pb-agent-finish-form[data-pb-active-panel="totp"] .pb-activation-step {
  padding: 16px !important;
}
.pb-agent-finish-form[data-pb-active-panel="totp"] .pb-activation-actions {
  display: grid !important;
  grid-template-columns: 1fr 1.35fr;
  gap: 10px;
}
@media (max-width: 720px) {
  .pb-live-shell {
    width: min(100%, 410px) !important;
    max-width: 410px !important;
  }
  .pb-totp-layout {
    grid-template-columns: 1fr;
  }
  .pb-totp-layout .pb-live-qr-wrap {
    width: 190px !important;
    min-height: 190px !important;
  }
  .pb-totp-layout .pb-live-qr {
    width: 170px !important;
    height: 170px !important;
  }
  .pb-agent-finish-form[data-pb-active-panel="totp"] .pb-activation-actions {
    grid-template-columns: 1fr;
  }
}


/* Privly Booking 1.1.130: Privly login logo support + subtle public powered-by */
.pb-live-brand-mark.pb-privly-brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  padding: 3px;
}
.pb-public-powered {
  margin: 18px auto 0;
  text-align: center;
  color: rgba(100, 116, 139, .72);
  font-size: 12px;
  line-height: 1.4;
}
.pb-public-powered a {
  color: inherit;
  text-decoration: none;
  font-weight: 650;
}
.pb-public-powered a:hover,
.pb-public-powered a:focus {
  text-decoration: underline;
}
.pb-shell.pb-public .pb-public-powered {
  grid-column: 1 / -1;
}
@media (prefers-color-scheme: dark) {
  .pb-public-powered {
    color: rgba(203, 213, 225, .68);
  }
}


/* Privly Booking 1.1.131: bundled Privly Booking wordmark on login */
.pb-login-screen .pb-live-brand {
  justify-content: center !important;
}
.pb-login-screen .pb-live-brand-mark.pb-privly-brand-mark.has-wordmark {
  width: min(270px, 78vw) !important;
  height: auto !important;
  min-height: 48px !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}
.pb-login-screen .pb-live-brand-mark.pb-privly-brand-mark.has-wordmark img {
  width: 100% !important;
  height: auto !important;
  max-height: 74px !important;
  object-fit: contain !important;
  padding: 0 !important;
  display: block !important;
  filter: drop-shadow(0 10px 24px rgba(0,0,0,.18));
}
@media(max-height: 760px) {
  .pb-login-screen .pb-live-brand-mark.pb-privly-brand-mark.has-wordmark {
    width: min(230px, 70vw) !important;
    min-height: 38px !important;
  }
  .pb-login-screen .pb-live-brand-mark.pb-privly-brand-mark.has-wordmark img {
    max-height: 56px !important;
  }
}


/* Privly Booking 1.1.132: force visible login wordmark */
.pb-login-screen .pb-login-wordmark {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 0 18px !important;
  min-height: 58px !important;
}
.pb-login-screen .pb-login-logo-img {
  display: block !important;
  width: min(310px, 82vw) !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 84px !important;
  object-fit: contain !important;
  opacity: 1 !important;
  visibility: visible !important;
  filter: drop-shadow(0 10px 24px rgba(0,0,0,.20));
}
@media (max-height: 760px) {
  .pb-login-screen .pb-login-wordmark {
    margin-bottom: 12px !important;
    min-height: 46px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: min(250px, 76vw) !important;
    max-height: 62px !important;
  }
}


/* Privly Booking 1.1.133: safer logo sizing + readable public powered-by */
.pb-login-screen .pb-login-logo-img {
  width: min(340px, 84vw) !important;
  max-height: 92px !important;
  object-fit: contain !important;
  object-position: center !important;
}
.pb-login-screen .pb-login-wordmark {
  min-height: 76px !important;
  overflow: visible !important;
}
@media (max-height: 760px) {
  .pb-login-screen .pb-login-logo-img {
    width: min(285px, 78vw) !important;
    max-height: 72px !important;
  }
  .pb-login-screen .pb-login-wordmark {
    min-height: 58px !important;
  }
}

.pb-public-powered {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: fit-content;
  max-width: calc(100% - 24px);
  margin: 22px auto 0 !important;
  padding: 8px 12px;
  border: 1px solid rgba(15, 23, 42, .10);
  border-radius: 999px;
  background: rgba(255, 255, 255, .82);
  color: #475569 !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
  font-size: 12px !important;
  font-weight: 600;
}
.pb-public-powered a {
  color: #0f766e !important;
  font-weight: 800;
}
.pb-public-powered a:hover,
.pb-public-powered a:focus {
  color: #0b5f59 !important;
}
@media (prefers-color-scheme: dark) {
  .pb-public-powered {
    border-color: rgba(255,255,255,.14);
    background: rgba(15, 23, 42, .72);
    color: rgba(226,232,240,.88) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
  }
  .pb-public-powered a {
    color: #5eead4 !important;
  }
}


/* Privly Booking 1.1.134: public powered-by placement and contrast */
.pb-booking-hero {
  position: relative !important;
}
.pb-public-powered-badge {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: calc(100% - 36px);
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(15,23,42,.12);
  color: #111827;
  font-size: 11.5px;
  font-weight: 750;
  line-height: 1.2;
  box-shadow: 0 8px 22px rgba(15,23,42,.07);
}
.pb-public-powered {
  display: block !important;
  width: fit-content !important;
  max-width: calc(100% - 24px) !important;
  margin: 18px auto 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: center !important;
  color: #111827 !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
  font-weight: 650 !important;
}
.pb-public-powered a {
  color: #111827 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
.pb-public-powered a:hover,
.pb-public-powered a:focus {
  color: #000 !important;
  text-decoration: underline !important;
}
@media (max-width: 640px) {
  .pb-public-powered-badge {
    position: static;
    margin: 0 0 14px auto;
    width: fit-content;
  }
}
@media (prefers-color-scheme: dark) {
  .pb-public-powered-badge {
    background: rgba(15,23,42,.88);
    border-color: rgba(255,255,255,.16);
    color: #f8fafc;
  }
  .pb-public-powered {
    color: #f8fafc !important;
  }
  .pb-public-powered a {
    color: #f8fafc !important;
  }
}


/* Privly Booking 1.1.135: use icon logo + login title */
.pb-login-screen .pb-login-brandline {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  width: 100% !important;
  margin: 0 0 18px !important;
  min-height: 74px !important;
}
.pb-login-screen .pb-login-brand-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.pb-login-screen .pb-login-logo-img {
  display: block !important;
  width: 76px !important;
  height: 76px !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center !important;
  filter: drop-shadow(0 8px 20px rgba(0,0,0,.18));
}
.pb-login-screen .pb-login-brand-copy {
  color: #f8fafc !important;
  font-size: clamp(24px, 4vw, 34px) !important;
  line-height: 1.05 !important;
  font-weight: 850 !important;
  letter-spacing: -0.02em !important;
}
@media (max-width: 640px) {
  .pb-login-screen .pb-login-brandline {
    gap: 12px !important;
    margin-bottom: 14px !important;
    min-height: 62px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: 58px !important;
    height: 58px !important;
  }
  .pb-login-screen .pb-login-brand-copy {
    font-size: clamp(20px, 5.4vw, 28px) !important;
  }
}
@media (max-height: 760px) {
  .pb-login-screen .pb-login-brandline {
    margin-bottom: 12px !important;
    min-height: 58px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: 52px !important;
    height: 52px !important;
  }
}


/* Privly Booking 1.1.136: refined login branding */
.pb-login-screen .pb-login-brandline {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  min-height: 58px !important;
}
.pb-login-screen .pb-login-brand-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.pb-login-screen .pb-login-logo-img {
  display: block !important;
  width: 52px !important;
  height: 52px !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center !important;
  filter: drop-shadow(0 8px 20px rgba(0,0,0,.18));
}
.pb-login-screen .pb-login-brand-copy {
  font-size: clamp(22px, 3.2vw, 30px) !important;
  line-height: 1.04 !important;
  font-weight: 850 !important;
  letter-spacing: -0.02em !important;
  color: #1fd6e6 !important;
  background: linear-gradient(135deg, #22d3ee 0%, #14b8ff 45%, #2563eb 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none !important;
}
@media (max-width: 640px) {
  .pb-login-screen .pb-login-brandline {
    gap: 10px !important;
    margin-bottom: 12px !important;
    min-height: 52px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: 44px !important;
    height: 44px !important;
  }
  .pb-login-screen .pb-login-brand-copy {
    font-size: clamp(18px, 5vw, 24px) !important;
  }
}
@media (max-height: 760px) {
  .pb-login-screen .pb-login-brandline {
    margin-bottom: 10px !important;
    min-height: 48px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: 40px !important;
    height: 40px !important;
  }
  .pb-login-screen .pb-login-brand-copy {
    font-size: 21px !important;
  }
}


/* Privly Booking 1.1.137: exact uploaded login icon + cleaner brand row */
.pb-login-screen .pb-login-brandline {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  width: 100% !important;
  margin: 0 0 14px !important;
  min-height: 56px !important;
}
.pb-login-screen .pb-login-brand-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
}
.pb-login-screen .pb-login-logo-img {
  display: block !important;
  width: 56px !important;
  height: 56px !important;
  max-width: 56px !important;
  max-height: 56px !important;
  min-width: 56px !important;
  min-height: 56px !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 14px !important;
  background: transparent !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.18) !important;
}
.pb-login-screen .pb-login-brand-copy {
  font-size: clamp(20px, 3vw, 28px) !important;
  line-height: 1.06 !important;
  font-weight: 850 !important;
  letter-spacing: -0.02em !important;
  background: linear-gradient(135deg, #22d3ee 0%, #16c7e5 42%, #2563eb 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: #22d3ee !important;
}
@media (max-width: 640px) {
  .pb-login-screen .pb-login-brandline {
    gap: 10px !important;
    margin-bottom: 12px !important;
    min-height: 50px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    max-height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    border-radius: 12px !important;
  }
  .pb-login-screen .pb-login-brand-copy {
    font-size: clamp(17px, 4.6vw, 22px) !important;
  }
}
@media (max-height: 760px) {
  .pb-login-screen .pb-login-brandline {
    margin-bottom: 10px !important;
    min-height: 46px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: 42px !important;
    height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
  .pb-login-screen .pb-login-brand-copy {
    font-size: 19px !important;
  }
}


/* Privly Booking 1.1.138: audited login branding override */
.pb-login-screen .pb-login-brandline {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  width: 100% !important;
  margin: 0 0 14px !important;
  min-height: 56px !important;
}
.pb-login-screen .pb-login-brand-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
}
.pb-login-screen .pb-login-logo-img {
  display: block !important;
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  min-height: 52px !important;
  max-width: 52px !important;
  max-height: 52px !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 12px !important;
  background: transparent !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .18) !important;
}
.pb-login-screen .pb-login-brand-copy {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  font-size: clamp(18px, 2.7vw, 26px) !important;
  line-height: 1.08 !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}
.pb-login-screen .pb-login-brand-main {
  color: #20d7ea !important;
}
.pb-login-screen .pb-login-brand-accent {
  color: #2d7cff !important;
}
@media (max-width: 640px) {
  .pb-login-screen .pb-login-brandline {
    gap: 10px !important;
    margin-bottom: 12px !important;
    min-height: 48px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    border-radius: 10px !important;
  }
  .pb-login-screen .pb-login-brand-copy {
    gap: 6px !important;
    font-size: clamp(16px, 4.4vw, 21px) !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
  }
}
@media (max-height: 760px) {
  .pb-login-screen .pb-login-brandline {
    margin-bottom: 10px !important;
    min-height: 44px !important;
  }
  .pb-login-screen .pb-login-logo-img {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    max-width: 40px !important;
    max-height: 40px !important;
  }
  .pb-login-screen .pb-login-brand-copy {
    font-size: 17px !important;
  }
}


/* Privly Booking 1.1.139: force readable public footer branding on light backgrounds */
.pb-shell.pb-public .pb-public-powered,
.pb-shell.pb-cancel .pb-public-powered,
.pb-public-powered {
  color: #111827 !important;
}
.pb-shell.pb-public .pb-public-powered a,
.pb-shell.pb-cancel .pb-public-powered a,
.pb-public-powered a {
  color: #111827 !important;
}
.pb-shell.pb-public .pb-public-powered a:hover,
.pb-shell.pb-public .pb-public-powered a:focus,
.pb-shell.pb-cancel .pb-public-powered a:hover,
.pb-shell.pb-cancel .pb-public-powered a:focus,
.pb-public-powered a:hover,
.pb-public-powered a:focus {
  color: #000000 !important;
}



/* v1.2.3 customer booking UX: premium Design 2-inspired layout */
.pb-public.pb-booking-page {
  --pb-navy:#0f172a;
  --pb-ink:#111827;
  --pb-muted2:#64748b;
  --pb-green:#047857;
  --pb-soft:#f7faf8;
  background:
    radial-gradient(circle at 12% 0%, rgba(34,211,238,.10), transparent 30%),
    linear-gradient(180deg,#f8fafc 0%,#f3f7f3 100%);
  color:var(--pb-ink);
  border-radius:28px;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 30px 90px rgba(15,23,42,.12);
  overflow:hidden;
}
.pb-booking-hero {
  position:relative;
  padding:34px 38px 36px;
  min-height:220px;
  display:flex;
  align-items:center;
  background:
    radial-gradient(circle at 82% 32%, rgba(255,255,255,.38), transparent 16%),
    radial-gradient(circle at 78% 55%, rgba(34,197,94,.14), transparent 22%),
    linear-gradient(135deg,#0f172a 0%,#1e293b 48%,#f8fafc 100%);
  border-bottom:1px solid rgba(15,23,42,.08);
}
.pb-booking-hero:after {
  content:"";
  position:absolute;
  right:46px;
  bottom:24px;
  width:260px;
  height:115px;
  border-radius:999px;
  background:
    radial-gradient(ellipse at center, rgba(255,255,255,.75), rgba(255,255,255,.08) 55%, transparent 72%);
  opacity:.65;
  pointer-events:none;
}
.pb-customer-brand {
  position:relative;
  z-index:2;
  max-width:690px;
}
.pb-customer-logo {
  max-width:116px;
  max-height:92px;
  object-fit:contain;
  background:#fff;
  border-radius:0;
  padding:10px;
  box-shadow:0 18px 42px rgba(15,23,42,.16);
  margin-bottom:18px;
}
.pb-customer-brand .pb-eyebrow {
  display:inline-flex;
  align-items:center;
  width:max-content;
  color:#d1fae5;
  border:1px solid rgba(209,250,229,.28);
  background:rgba(4,120,87,.18);
  box-shadow:0 12px 24px rgba(15,23,42,.15);
}
.pb-customer-brand h1 {
  color:#fff;
  font-size:clamp(42px, 6vw, 66px);
  letter-spacing:-.06em;
  line-height:.98;
  margin:16px 0 14px;
}
.pb-customer-brand p {
  color:#e2e8f0;
  font-size:clamp(17px, 2vw, 21px);
  max-width:720px;
}
.pb-public-powered-badge {
  position:absolute;
  z-index:3;
  top:30px;
  right:34px;
  background:#111827;
  color:#fff;
  border-radius:999px;
  padding:10px 16px;
  font-weight:900;
  font-size:13px;
  box-shadow:0 16px 36px rgba(15,23,42,.24);
}
.pb-booking-flow {
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:28px;
  padding:28px;
  align-items:start;
}
.pb-booking-main,
.pb-booking-side {
  min-width:0;
}
.pb-booking-card {
  border-radius:0;
  border:0;
  box-shadow:none;
  background:transparent;
  padding:0;
}
.pb-steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin:0 0 22px;
  padding:0;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 18px 42px rgba(15,23,42,.06);
}
.pb-steps span {
  position:relative;
  border-radius:0!important;
  padding:15px 18px;
  background:#fff!important;
  color:#64748b!important;
  font-weight:900;
}
.pb-steps span:before {
  display:inline-grid;
  place-items:center;
  width:30px;
  height:30px;
  margin-right:10px;
  border-radius:999px;
  background:#e5e7eb;
  color:#64748b;
}
.pb-steps span:nth-child(1):before { content:"1"; }
.pb-steps span:nth-child(2):before { content:"2"; }
.pb-steps span:nth-child(3):before { content:"3"; }
.pb-steps span.is-active {
  background:linear-gradient(135deg,rgba(209,250,229,.72),rgba(255,255,255,.95))!important;
  color:#065f46!important;
}
.pb-steps span.is-active:before {
  background:linear-gradient(135deg,#059669,#047857);
  color:#fff;
}
.pb-section-head h2 {
  color:#0f172a;
  font-size:clamp(30px,4vw,42px);
  letter-spacing:-.045em;
}
.pb-section-head p {
  color:#64748b;
}
.pb-service-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.pb-service-category {
  grid-column:1/-1;
  color:#0f172a;
  font-size:24px;
  letter-spacing:-.035em;
  margin:16px 0 2px;
  padding-top:18px;
  border-top:1px solid rgba(15,23,42,.08);
}
.pb-service-card {
  display:grid;
  grid-template-columns:170px minmax(0,1fr);
  gap:22px;
  align-items:center;
  min-height:128px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 48px rgba(15,23,42,.07);
  padding:14px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pb-service-card:hover {
  transform:translateY(-2px);
  border-color:rgba(4,120,87,.28);
  box-shadow:0 24px 58px rgba(15,23,42,.11);
}
.pb-service-card.is-active {
  border-color:rgba(4,120,87,.44);
  box-shadow:0 24px 58px rgba(4,120,87,.16);
}
.pb-service-visual {
  width:170px;
  height:108px;
  border-radius:14px;
  overflow:hidden;
  background:
    radial-gradient(circle at 30% 20%, rgba(34,211,238,.20), transparent 35%),
    linear-gradient(135deg,#ecfeff,#ecfdf5);
  display:grid;
  place-items:center;
}
.pb-service-visual img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.pb-service-icon span {
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border-radius:18px;
  background:rgba(4,120,87,.12);
  color:#047857;
  font-size:28px;
  font-weight:900;
}
.pb-service-card-body {
  min-width:0;
}
.pb-service-meta {
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin:0 0 8px;
  padding:7px 12px;
  border-radius:999px;
  background:#dff7f1;
  color:#047857;
  font-size:13px;
  font-weight:900;
}
.pb-service-card strong {
  display:block;
  color:#0f172a;
  font-size:19px;
  margin-bottom:6px;
}
.pb-service-helper {
  color:#64748b;
  font-size:14px;
  margin:0 0 12px;
  max-width:560px;
}
.pb-service-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.pb-more-info {
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  color:#334155;
  border-radius:999px;
  min-height:40px;
  padding:9px 14px;
  font-weight:900;
}
.pb-service-cta-btn,
.pb-button {
  background:linear-gradient(135deg,#047857,#065f46);
  color:#fff;
  border:0;
  border-radius:12px;
  box-shadow:0 14px 28px rgba(4,120,87,.22);
}
.pb-service-cta-btn {
  min-height:42px;
  padding:10px 16px;
  font-weight:900;
}
.pb-booking-side .pb-card,
.pb-summary-card {
  position:sticky;
  top:22px;
  border-radius:22px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.10);
}
.pb-summary-card h2 {
  color:#0f172a;
}
.pb-summary-empty {
  color:#475569;
}
.pb-public-powered-footer {
  color:#334155;
  background:transparent;
  padding:18px;
}
.pb-public-powered-footer strong,
.pb-public-powered-footer a {
  color:#0f172a;
}

@media (max-width: 980px) {
  .pb-booking-flow {
    grid-template-columns:1fr;
  }
  .pb-booking-side .pb-card,
  .pb-summary-card {
    position:relative;
    top:auto;
  }
}
@media (max-width: 720px) {
  .pb-public.pb-booking-page {
    border-radius:18px;
  }
  .pb-booking-hero {
    padding:24px 18px 28px;
    min-height:auto;
  }
  .pb-public-powered-badge {
    position:static;
    display:inline-flex;
    margin:0 0 14px;
  }
  .pb-booking-flow {
    padding:16px;
  }
  .pb-steps {
    grid-template-columns:1fr;
  }
  .pb-service-card {
    grid-template-columns:1fr;
  }
  .pb-service-visual {
    width:100%;
    height:160px;
  }
  .pb-service-actions {
    flex-direction:column;
    align-items:stretch;
  }
}




/* v1.2.4 FINAL CUSTOMER UX OVERRIDE: dark premium banner like preview design 2 */
.pb-shell.pb-public.pb-booking-page,
.pb-public.pb-booking-page {
  max-width: 1440px !important;
  margin: 24px auto !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background: #f8fafc !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 34px 100px rgba(15,23,42,.14) !important;
}

.pb-public.pb-booking-page .pb-booking-hero {
  position: relative !important;
  min-height: 255px !important;
  padding: 40px 48px !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  border: 0 !important;
  background:
    radial-gradient(circle at 76% 46%, rgba(125,211,252,.22), transparent 20%),
    radial-gradient(circle at 88% 58%, rgba(255,255,255,.28), transparent 15%),
    linear-gradient(135deg, #081426 0%, #0f172a 44%, #1e3a5f 78%, #eaf5f1 135%) !important;
  box-shadow: none !important;
}

.pb-public.pb-booking-page .pb-booking-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: auto 0 0 44% !important;
  height: 128px !important;
  background:
    radial-gradient(ellipse at center, rgba(255,255,255,.35), rgba(255,255,255,.06) 58%, transparent 74%),
    linear-gradient(90deg, transparent, rgba(34,211,238,.12), transparent) !important;
  opacity: .9 !important;
  pointer-events: none !important;
}

.pb-public.pb-booking-page .pb-booking-hero::after {
  content: "✦" !important;
  position: absolute !important;
  right: 160px !important;
  top: 72px !important;
  width: 150px !important;
  height: 150px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  color: rgba(255,255,255,.86) !important;
  font-size: 86px !important;
  background: radial-gradient(circle, rgba(255,255,255,.16), rgba(255,255,255,.04) 55%, transparent 72%) !important;
  text-shadow: 0 0 34px rgba(125,211,252,.55) !important;
  pointer-events: none !important;
}

.pb-public.pb-booking-page .pb-customer-brand {
  position: relative !important;
  z-index: 3 !important;
  max-width: 720px !important;
}

.pb-public.pb-booking-page .pb-customer-logo {
  max-width: 112px !important;
  max-height: 92px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  background: #fff !important;
  padding: 12px !important;
  margin: 0 0 18px !important;
  border-radius: 0 !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.22) !important;
}

.pb-public.pb-booking-page .pb-customer-brand .pb-eyebrow {
  display: inline-flex !important;
  width: max-content !important;
  margin: 0 0 10px !important;
  padding: 8px 13px !important;
  border-radius: 999px !important;
  color: #d1fae5 !important;
  background: rgba(4,120,87,.25) !important;
  border: 1px solid rgba(209,250,229,.28) !important;
  font-weight: 900 !important;
}

.pb-public.pb-booking-page .pb-customer-brand h1 {
  color: #fff !important;
  font-size: clamp(44px, 5.6vw, 70px) !important;
  line-height: .98 !important;
  letter-spacing: -.065em !important;
  margin: 10px 0 16px !important;
  text-shadow: 0 18px 46px rgba(0,0,0,.28) !important;
}

.pb-public.pb-booking-page .pb-customer-brand p {
  color: #e5edf7 !important;
  font-size: clamp(17px, 1.8vw, 21px) !important;
  line-height: 1.55 !important;
  max-width: 690px !important;
}

.pb-public.pb-booking-page .pb-public-powered-badge {
  position: absolute !important;
  z-index: 5 !important;
  top: 32px !important;
  right: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  border-radius: 999px !important;
  padding: 11px 17px !important;
  background: #111827 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.28) !important;
}

.pb-public.pb-booking-page .pb-booking-flow {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) 365px !important;
  gap: 28px !important;
  padding: 34px 34px 30px !important;
  align-items: start !important;
  background: linear-gradient(180deg,#ffffff 0%,#f8fafc 100%) !important;
}

.pb-public.pb-booking-page .pb-booking-card {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

.pb-public.pb-booking-page .pb-steps {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 0 !important;
  padding: 8px !important;
  margin: 0 0 22px !important;
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  border-radius: 16px !important;
  box-shadow: 0 18px 48px rgba(15,23,42,.07) !important;
  overflow: hidden !important;
}

.pb-public.pb-booking-page .pb-steps span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 16px 14px !important;
  border-radius: 12px !important;
  background: transparent !important;
  color: #64748b !important;
  font-weight: 900 !important;
}

.pb-public.pb-booking-page .pb-steps span::before {
  display: grid !important;
  place-items: center !important;
  width: 30px !important;
  height: 30px !important;
  border-radius: 999px !important;
  background: #e8eef5 !important;
  color: #64748b !important;
  font-size: 13px !important;
  font-weight: 900 !important;
}

.pb-public.pb-booking-page .pb-steps span:nth-child(1)::before { content: "1" !important; }
.pb-public.pb-booking-page .pb-steps span:nth-child(2)::before { content: "2" !important; }
.pb-public.pb-booking-page .pb-steps span:nth-child(3)::before { content: "3" !important; }

.pb-public.pb-booking-page .pb-steps span.is-active {
  background: linear-gradient(135deg, #ecfdf5, #dff7f1) !important;
  color: #065f46 !important;
}

.pb-public.pb-booking-page .pb-steps span.is-active::before {
  background: linear-gradient(135deg, #059669, #047857) !important;
  color: #fff !important;
}

.pb-public.pb-booking-page .pb-service-card {
  display: grid !important;
  grid-template-columns: 172px minmax(0,1fr) !important;
  gap: 22px !important;
  align-items: center !important;
  min-height: 132px !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 18px 48px rgba(15,23,42,.07) !important;
  padding: 14px !important;
}

.pb-public.pb-booking-page .pb-service-visual {
  width: 172px !important;
  height: 110px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
}

.pb-public.pb-booking-page .pb-service-visual img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.pb-public.pb-booking-page .pb-summary-card,
.pb-public.pb-booking-page .pb-booking-side .pb-card {
  position: sticky !important;
  top: 22px !important;
  border-radius: 22px !important;
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 24px 70px rgba(15,23,42,.10) !important;
}

@media (max-width: 980px) {
  .pb-public.pb-booking-page .pb-booking-flow {
    grid-template-columns: 1fr !important;
  }
  .pb-public.pb-booking-page .pb-summary-card,
  .pb-public.pb-booking-page .pb-booking-side .pb-card {
    position: relative !important;
    top: auto !important;
  }
}

@media (max-width: 720px) {
  .pb-public.pb-booking-page .pb-booking-hero {
    min-height: auto !important;
    padding: 24px 18px 30px !important;
  }
  .pb-public.pb-booking-page .pb-booking-hero::after {
    display: none !important;
  }
  .pb-public.pb-booking-page .pb-public-powered-badge {
    position: static !important;
    margin-bottom: 16px !important;
  }
  .pb-public.pb-booking-page .pb-booking-flow {
    padding: 16px !important;
  }
  .pb-public.pb-booking-page .pb-steps {
    grid-template-columns: 1fr !important;
  }
  .pb-public.pb-booking-page .pb-service-card {
    grid-template-columns: 1fr !important;
  }
  .pb-public.pb-booking-page .pb-service-visual {
    width: 100% !important;
    height: 160px !important;
  }
}




/* v1.2.5 FINAL DESIGN 2 CUSTOMER PAGE OVERRIDE
   Goal: compact dark spa/salon banner like selected preview #2. */
.pb-shell.pb-public.pb-booking-page,
.pb-public.pb-booking-page {
  max-width: 1440px !important;
  margin: 18px auto 28px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 26px 80px rgba(15,23,42,.12) !important;
}

/* dark compact horizontal hero */
.pb-public.pb-booking-page .pb-booking-hero {
  position: relative !important;
  min-height: 190px !important;
  height: 190px !important;
  padding: 0 40px !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  border: 0 !important;
  background:
    radial-gradient(circle at 82% 48%, rgba(147,197,253,.23), transparent 18%),
    radial-gradient(circle at 77% 62%, rgba(255,255,255,.12), transparent 20%),
    linear-gradient(115deg, #071225 0%, #0f172a 42%, #173a5c 82%, #eaf5f1 150%) !important;
  box-shadow: none !important;
}

/* subtle wave/lotus feel without making hero tall */
.pb-public.pb-booking-page .pb-booking-hero::before {
  content: "" !important;
  position: absolute !important;
  left: 44% !important;
  right: 0 !important;
  bottom: -12px !important;
  height: 92px !important;
  background:
    linear-gradient(90deg, transparent 0%, rgba(125,211,252,.11) 42%, rgba(255,255,255,.08) 68%, transparent 100%),
    radial-gradient(ellipse at center, rgba(255,255,255,.22), transparent 68%) !important;
  transform: skewY(-3deg) !important;
  opacity: .9 !important;
  pointer-events: none !important;
}

.pb-public.pb-booking-page .pb-booking-hero::after {
  content: "✦" !important;
  position: absolute !important;
  right: 190px !important;
  top: 54px !important;
  width: 72px !important;
  height: 72px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  color: rgba(255,255,255,.66) !important;
  font-size: 48px !important;
  background: radial-gradient(circle, rgba(255,255,255,.10), transparent 70%) !important;
  text-shadow: 0 0 30px rgba(147,197,253,.45) !important;
  pointer-events: none !important;
}

.pb-public.pb-booking-page .pb-customer-brand {
  position: relative !important;
  z-index: 3 !important;
  display: grid !important;
  grid-template-columns: 108px minmax(0, 1fr) !important;
  grid-template-areas:
    "logo eyebrow"
    "logo title"
    "logo intro" !important;
  column-gap: 28px !important;
  align-items: center !important;
  max-width: 760px !important;
}

/* customer logo: left block like design 2 */
.pb-public.pb-booking-page .pb-customer-logo {
  grid-area: logo !important;
  width: 108px !important;
  height: 108px !important;
  max-width: 108px !important;
  max-height: 108px !important;
  object-fit: contain !important;
  display: block !important;
  background: #ffffff !important;
  padding: 12px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: 0 16px 38px rgba(0,0,0,.24) !important;
}

.pb-public.pb-booking-page .pb-customer-brand .pb-eyebrow {
  grid-area: eyebrow !important;
  display: inline-flex !important;
  width: max-content !important;
  margin: 0 0 8px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  color: #b7f7df !important;
  background: rgba(4,120,87,.26) !important;
  border: 1px solid rgba(209,250,229,.20) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.pb-public.pb-booking-page .pb-customer-brand h1 {
  grid-area: title !important;
  color: #ffffff !important;
  font-size: clamp(36px, 4.2vw, 50px) !important;
  line-height: 1 !important;
  letter-spacing: -.055em !important;
  margin: 0 0 10px !important;
  text-shadow: 0 16px 36px rgba(0,0,0,.28) !important;
}

.pb-public.pb-booking-page .pb-customer-brand p {
  grid-area: intro !important;
  color: #e5edf7 !important;
  font-size: 17px !important;
  line-height: 1.45 !important;
  max-width: 620px !important;
  margin: 0 !important;
}

/* powered badge exactly top right, compact */
.pb-public.pb-booking-page .pb-public-powered-badge {
  position: absolute !important;
  z-index: 5 !important;
  top: 34px !important;
  right: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  border-radius: 999px !important;
  padding: 10px 16px !important;
  background: #111827 !important;
  color: #ffffff !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  box-shadow: 0 16px 36px rgba(0,0,0,.26) !important;
}

/* white body directly under hero, tighter like design 2 */
.pb-public.pb-booking-page .pb-booking-flow {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 360px !important;
  gap: 28px !important;
  padding: 30px 36px 28px !important;
  align-items: start !important;
  background: #ffffff !important;
}

.pb-public.pb-booking-page .pb-booking-card {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* steps as design 2: slim white bar */
.pb-public.pb-booking-page .pb-steps {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 6px !important;
  padding: 8px !important;
  margin: 0 0 20px !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 16px 42px rgba(15,23,42,.06) !important;
  overflow: hidden !important;
}

.pb-public.pb-booking-page .pb-steps span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  border-radius: 12px !important;
  padding: 13px 12px !important;
  background: transparent !important;
  color: #64748b !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

.pb-public.pb-booking-page .pb-steps span::before {
  display: grid !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
  background: #e8eef5 !important;
  color: #64748b !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}

.pb-public.pb-booking-page .pb-steps span:nth-child(1)::before { content: "1" !important; }
.pb-public.pb-booking-page .pb-steps span:nth-child(2)::before { content: "2" !important; }
.pb-public.pb-booking-page .pb-steps span:nth-child(3)::before { content: "3" !important; }

.pb-public.pb-booking-page .pb-steps span.is-active {
  background: linear-gradient(135deg, #ecfdf5, #dff7f1) !important;
  color: #065f46 !important;
}

.pb-public.pb-booking-page .pb-steps span.is-active::before {
  background: linear-gradient(135deg, #059669, #047857) !important;
  color: #fff !important;
}

/* summary card */
.pb-public.pb-booking-page .pb-summary-card,
.pb-public.pb-booking-page .pb-booking-side .pb-card {
  position: sticky !important;
  top: 22px !important;
  border-radius: 20px !important;
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 22px 62px rgba(15,23,42,.10) !important;
}

/* service cards stay premium but not huge */
.pb-public.pb-booking-page .pb-service-card {
  display: grid !important;
  grid-template-columns: 160px minmax(0, 1fr) !important;
  gap: 20px !important;
  align-items: center !important;
  min-height: 122px !important;
  padding: 13px !important;
  border-radius: 17px !important;
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 16px 42px rgba(15,23,42,.06) !important;
}

.pb-public.pb-booking-page .pb-service-visual {
  width: 160px !important;
  height: 100px !important;
  border-radius: 13px !important;
  overflow: hidden !important;
}

.pb-public.pb-booking-page .pb-service-visual img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.pb-public.pb-booking-page .pb-section-head h2 {
  color: #0f172a !important;
  font-size: 25px !important;
  letter-spacing: -.035em !important;
  margin-bottom: 8px !important;
}

.pb-public.pb-booking-page .pb-section-head p {
  color: #64748b !important;
}

@media (max-width: 980px) {
  .pb-public.pb-booking-page .pb-booking-flow {
    grid-template-columns: 1fr !important;
  }
  .pb-public.pb-booking-page .pb-summary-card,
  .pb-public.pb-booking-page .pb-booking-side .pb-card {
    position: relative !important;
    top: auto !important;
  }
}

@media (max-width: 760px) {
  .pb-public.pb-booking-page .pb-booking-hero {
    height: auto !important;
    min-height: 0 !important;
    padding: 24px 18px 28px !important;
  }
  .pb-public.pb-booking-page .pb-booking-hero::after {
    display: none !important;
  }
  .pb-public.pb-booking-page .pb-public-powered-badge {
    position: static !important;
    margin-bottom: 16px !important;
  }
  .pb-public.pb-booking-page .pb-customer-brand {
    grid-template-columns: 78px minmax(0,1fr) !important;
    column-gap: 14px !important;
  }
  .pb-public.pb-booking-page .pb-customer-logo {
    width: 78px !important;
    height: 78px !important;
    max-width: 78px !important;
    max-height: 78px !important;
    padding: 8px !important;
  }
  .pb-public.pb-booking-page .pb-customer-brand h1 {
    font-size: 34px !important;
  }
  .pb-public.pb-booking-page .pb-customer-brand p {
    font-size: 15px !important;
  }
  .pb-public.pb-booking-page .pb-booking-flow {
    padding: 16px !important;
  }
  .pb-public.pb-booking-page .pb-steps {
    grid-template-columns: 1fr !important;
  }
  .pb-public.pb-booking-page .pb-service-card {
    grid-template-columns: 1fr !important;
  }
  .pb-public.pb-booking-page .pb-service-visual {
    width: 100% !important;
    height: 150px !important;
  }
}




/* v1.2.6 HARD FIX: service cards must be clean list cards, never broken tiles */
.pb-public.pb-booking-page .pb-service-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  overflow: visible !important;
}

.pb-public.pb-booking-page .pb-service-category {
  grid-column: 1 / -1 !important;
  font-size: 26px !important;
  color: #0f172a !important;
  margin: 24px 0 4px !important;
  padding-top: 18px !important;
  border-top: 1px solid rgba(15,23,42,.08) !important;
}

.pb-public.pb-booking-page .pb-service-card {
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: 164px minmax(0, 1fr) !important;
  gap: 20px !important;
  align-items: center !important;
  min-height: 124px !important;
  padding: 13px !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 16px 42px rgba(15,23,42,.06) !important;
}

.pb-public.pb-booking-page .pb-service-visual {
  width: 164px !important;
  min-width: 164px !important;
  height: 104px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: linear-gradient(135deg,#ecfeff,#ecfdf5) !important;
}

.pb-public.pb-booking-page .pb-service-icon span {
  display: grid !important;
  place-items: center !important;
  width: 56px !important;
  height: 56px !important;
  border-radius: 18px !important;
  background: rgba(4,120,87,.12) !important;
  color: #047857 !important;
  font-size: 26px !important;
  font-weight: 900 !important;
}

.pb-public.pb-booking-page .pb-service-card-body {
  min-width: 0 !important;
  display: grid !important;
  gap: 6px !important;
}

.pb-public.pb-booking-page .pb-service-card strong {
  color: #0f172a !important;
  font-size: 18px !important;
  line-height: 1.18 !important;
  overflow-wrap: anywhere !important;
  margin: 0 !important;
}

.pb-public.pb-booking-page .pb-service-helper {
  color: #64748b !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  max-width: 620px !important;
}

.pb-public.pb-booking-page .pb-service-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  margin-top: 4px !important;
}

.pb-public.pb-booking-page .pb-more-info,
.pb-public.pb-booking-page .pb-service-cta-btn {
  white-space: nowrap !important;
}

@media(max-width:760px){
  .pb-public.pb-booking-page .pb-service-card {
    grid-template-columns: 1fr !important;
  }
  .pb-public.pb-booking-page .pb-service-visual {
    width: 100% !important;
    min-width: 0 !important;
    height: 150px !important;
  }
  .pb-public.pb-booking-page .pb-service-actions {
    justify-content: stretch !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }
}

/* v1.2.6 admin service image UX */
.pb-admin-service-list {
  display: grid;
  gap: 16px;
}
.pb-admin-service-edit-card {
  display: grid;
  grid-template-columns: 132px minmax(0,1fr);
  gap: 18px;
  align-items: start;
  padding: 16px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15,23,42,.05);
}
.pb-admin-service-preview {
  width: 132px;
  height: 96px;
  border-radius: 16px;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg,#ecfeff,#ecfdf5);
  color: #047857;
  font-size: 28px;
  font-weight: 900;
}
.pb-admin-service-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pb-admin-service-fields {
  min-width: 0;
}
.pb-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 12px;
}
.pb-admin-service-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 12px;
}
.pb-admin-active-check {
  align-self: end;
  padding-bottom: 12px;
}
@media(max-width:900px){
  .pb-admin-service-edit-card {
    grid-template-columns: 1fr;
  }
  .pb-admin-service-preview {
    width: 100%;
    height: 170px;
  }
  .pb-grid-4 {
    grid-template-columns: 1fr 1fr;
  }
}


/* v1.2.7 design2 premium polish */
.pb-shell.pb-public.pb-booking-page .pb-booking-hero{
  position:relative !important;
  overflow:hidden !important;
  padding:28px 32px !important;
  min-height:auto !important;
  border-radius:26px !important;
  background: radial-gradient(circle at 80% 30%, rgba(126,167,206,.55), transparent 26%), linear-gradient(92deg,#02122f 0%, #0d2854 55%, #3f6283 100%) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 20px 48px rgba(2,18,47,.18) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero::after{
  content:''; position:absolute; right:10%; bottom:16%; width:34%; height:24%;
  background: radial-gradient(circle, rgba(255,255,255,.28), rgba(255,255,255,0) 70%);
  filter: blur(12px); pointer-events:none;
}
.pb-shell.pb-public.pb-booking-page .pb-customer-brand{
  display:grid !important;
  grid-template-columns: 122px minmax(0,1fr) !important;
  column-gap:26px !important;
  row-gap:8px !important;
  align-items:center !important;
  max-width:980px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-customer-logo{
  grid-row:1 / span 3 !important;
  width:122px !important; height:122px !important; object-fit:cover !important;
  border-radius:0 !important; background:#fff !important; padding:0 !important;
  box-shadow:0 14px 32px rgba(0,0,0,.18) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-eyebrow{
  align-self:end !important; width:max-content !important; margin:0 !important;
  padding:8px 16px !important; border-radius:999px !important;
  background: rgba(6,78,59,.58) !important; border:1px solid rgba(16,185,129,.35) !important;
  color:#d1fae5 !important; font-size:14px !important; font-weight:800 !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero h1{
  margin:0 !important; color:#fff !important; font-size: clamp(42px,4.7vw,68px) !important; line-height:.96 !important; letter-spacing:-.045em !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero p{
  margin:0 !important; color:rgba(255,255,255,.92) !important; font-size:17px !important; line-height:1.55 !important; max-width:720px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-public-powered-badge{
  position:absolute !important; top:18px !important; right:28px !important; z-index:2 !important;
  padding:11px 18px !important; border-radius:999px !important; background:#111c3a !important; color:#fff !important;
  font-size:14px !important; font-weight:800 !important; box-shadow:0 12px 24px rgba(2,18,47,.22) !important;
}
.pb-shell.pb-public.pb-booking-page [data-service-list].pb-grid,
.pb-shell.pb-public.pb-booking-page .pb-service-grid{
  display:flex !important; flex-direction:column !important; gap:16px !important; min-width:0 !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-category{
  font-size:26px !important; font-weight:900 !important; color:#121826 !important; margin:22px 0 2px !important;
  padding-top:18px !important; border-top:1px solid rgba(15,23,42,.08) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card{
  width:100% !important; max-width:100% !important; min-width:0 !important; overflow:hidden !important;
  display:grid !important; grid-template-columns:180px minmax(0,1fr) !important; align-items:center !important; gap:18px !important;
  padding:14px !important; min-height:128px !important; border:1px solid rgba(15,23,42,.08) !important; border-radius:20px !important; background:#fff !important;
  box-shadow:0 12px 32px rgba(15,23,42,.06) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card:hover,
.pb-shell.pb-public.pb-booking-page .pb-service-card.is-active{transform:translateY(-1px) !important; box-shadow:0 20px 36px rgba(15,23,42,.10) !important; border-color:rgba(4,120,87,.18) !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-visual{width:180px !important; min-width:180px !important; height:104px !important; border-radius:16px !important; overflow:hidden !important; background:linear-gradient(135deg,#ebfffb,#ecfdf5) !important; display:grid !important; place-items:center !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-visual img{width:100% !important; height:100% !important; object-fit:cover !important; display:block !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-icon span{width:58px !important; height:58px !important; display:grid !important; place-items:center !important; border-radius:18px !important; background:rgba(16,185,129,.11) !important; color:#047857 !important; font-size:24px !important; font-weight:900 !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-card-body{display:grid !important; gap:8px !important; min-width:0 !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-meta{width:max-content !important; display:inline-flex !important; padding:8px 14px !important; border-radius:999px !important; background:#eaf8f5 !important; color:#047857 !important; font-size:13px !important; font-weight:800 !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-card strong{display:block !important; margin:0 !important; color:#0f172a !important; font-size:30px !important; line-height:1.05 !important; letter-spacing:-.03em !important; overflow-wrap:anywhere !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-helper{margin:0 !important; color:#64748b !important; font-size:15px !important; line-height:1.55 !important; max-width:720px !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-actions{display:flex !important; align-items:center !important; gap:12px !important; margin-top:4px !important; flex-wrap:wrap !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-card .pb-more-info{padding:10px 16px !important; border-radius:999px !important; background:#f4fbf9 !important; border:1px solid rgba(4,120,87,.14) !important; color:#047857 !important; font-weight:800 !important;}
.pb-shell.pb-public.pb-booking-page .pb-service-card .pb-service-cta-btn{padding:10px 16px !important; border-radius:999px !important; background:transparent !important; border:0 !important; color:#047857 !important; font-weight:900 !important;}
.pb-shell.pb-public.pb-booking-page .pb-booking-main .pb-booking-card,
.pb-shell.pb-public.pb-booking-page .pb-booking-summary{border-radius:24px !important; box-shadow:0 12px 32px rgba(15,23,42,.06) !important;}
@media (max-width: 900px){
  .pb-shell.pb-public.pb-booking-page .pb-customer-brand{grid-template-columns:88px minmax(0,1fr) !important;}
  .pb-shell.pb-public.pb-booking-page .pb-customer-logo{width:88px !important; height:88px !important;}
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero h1{font-size:42px !important;}
  .pb-shell.pb-public.pb-booking-page .pb-service-card{grid-template-columns:1fr !important;}
  .pb-shell.pb-public.pb-booking-page .pb-service-visual{width:100% !important; min-width:0 !important; height:160px !important;}
}

/* v1.2.7 admin fallback/icon polish */
.pb-admin-help-card strong{color:#0f172a;}
.pb-admin-service-preview span[data-pb-fallback-preview]{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:rgba(16,185,129,.12);color:#047857;font-weight:900;font-size:25px;}
.pb-admin-service-edit-card select[name="icon_key"],
.pb-card select[name="icon_key"]{min-height:46px;}


/* v1.2.8 CUSTOMER UX HARD RESET */
.pb-shell.pb-public.pb-booking-page {
  max-width:1420px!important;margin:20px auto 30px!important;border-radius:28px!important;background:#fff!important;overflow:hidden!important;border:1px solid rgba(15,23,42,.08)!important;box-shadow:0 28px 80px rgba(15,23,42,.12)!important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero {
  margin:0!important;min-height:190px!important;padding:30px 42px!important;border-radius:0 0 28px 28px!important;background:radial-gradient(circle at 82% 40%,rgba(148,187,220,.46),transparent 24%),linear-gradient(100deg,#06142d 0%,#0d2a55 58%,#446883 100%)!important;overflow:hidden!important;position:relative!important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero:before{content:""!important;position:absolute!important;right:80px!important;bottom:30px!important;width:360px!important;height:70px!important;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent)!important;transform:skewY(-5deg)!important;pointer-events:none!important;}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero:after{content:""!important;position:absolute!important;right:210px!important;top:76px!important;width:46px!important;height:46px!important;background:rgba(255,255,255,.45)!important;clip-path:polygon(50% 0%,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0% 50%,38% 38%)!important;pointer-events:none!important;}
.pb-shell.pb-public.pb-booking-page .pb-customer-brand{position:relative!important;z-index:2!important;display:grid!important;grid-template-columns:118px minmax(0,1fr)!important;grid-template-areas:"logo eyebrow" "logo title" "logo intro"!important;column-gap:28px!important;row-gap:8px!important;align-items:center!important;max-width:980px!important;}
.pb-shell.pb-public.pb-booking-page .pb-customer-logo{grid-area:logo!important;width:118px!important;height:118px!important;max-width:118px!important;max-height:118px!important;object-fit:cover!important;padding:0!important;margin:0!important;background:#fff!important;border-radius:0!important;box-shadow:0 18px 40px rgba(0,0,0,.20)!important;}
.pb-shell.pb-public.pb-booking-page .pb-eyebrow{grid-area:eyebrow!important;width:max-content!important;padding:8px 16px!important;border-radius:999px!important;color:#d1fae5!important;background:rgba(6,78,59,.70)!important;border:1px solid rgba(16,185,129,.35)!important;font-size:14px!important;font-weight:900!important;margin:0!important;}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero h1{grid-area:title!important;margin:0!important;color:#fff!important;font-size:clamp(44px,4.8vw,68px)!important;line-height:.96!important;letter-spacing:-.055em!important;}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero p{grid-area:intro!important;margin:0!important;color:rgba(255,255,255,.92)!important;font-size:17px!important;line-height:1.45!important;max-width:760px!important;}
.pb-shell.pb-public.pb-booking-page .pb-public-powered-badge{position:absolute!important;top:22px!important;right:32px!important;z-index:3!important;border-radius:999px!important;background:#111827!important;color:#fff!important;padding:11px 18px!important;font-size:14px!important;font-weight:900!important;box-shadow:0 12px 26px rgba(0,0,0,.22)!important;}
.pb-shell.pb-public.pb-booking-page .pb-booking-flow{display:grid!important;grid-template-columns:minmax(0,1fr) 360px!important;gap:28px!important;padding:34px 42px 40px!important;background:#fff!important;align-items:start!important;}
.pb-shell.pb-public.pb-booking-page .pb-booking-main,.pb-shell.pb-public.pb-booking-page .pb-booking-card,.pb-shell.pb-public.pb-booking-page .pb-booking-section{min-width:0!important;max-width:100%!important;}
.pb-shell.pb-public.pb-booking-page .pb-booking-card{border:1px solid rgba(15,23,42,.07)!important;box-shadow:0 4px 20px rgba(15,23,42,.05)!important;padding:32px 36px!important;background:#fff!important;border-radius:20px!important;box-sizing:border-box!important;}
.pb-shell.pb-public.pb-booking-page .pb-steps{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;padding:8px!important;margin:0 0 26px!important;background:#fff!important;border:1px solid rgba(15,23,42,.07)!important;border-radius:18px!important;box-shadow:0 18px 45px rgba(15,23,42,.07)!important;}
.pb-shell.pb-public.pb-booking-page .pb-steps span{display:flex!important;justify-content:center!important;align-items:center!important;gap:12px!important;padding:14px 12px!important;border-radius:14px!important;background:transparent!important;color:#64748b!important;font-size:14px!important;font-weight:900!important;}
.pb-shell.pb-public.pb-booking-page .pb-steps span:before{display:grid!important;place-items:center!important;width:30px!important;height:30px!important;border-radius:999px!important;background:#e8eef5!important;color:#64748b!important;font-size:13px!important;font-weight:900!important;}
.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(1):before{content:"1"!important}.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(2):before{content:"2"!important}.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(3):before{content:"3"!important}
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-active{background:#e8fbf5!important;color:#065f46!important}.pb-shell.pb-public.pb-booking-page .pb-steps span.is-active:before{background:#059669!important;color:#fff!important}
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-completed{background:#f0fdf4!important;color:#047857!important}.pb-shell.pb-public.pb-booking-page .pb-steps span.is-completed:before{content:"✓"!important;background:#10b981!important;color:#fff!important}
.pb-shell.pb-public.pb-booking-page [data-service-list],.pb-shell.pb-public.pb-booking-page .pb-service-grid,.pb-shell.pb-public.pb-booking-page .pb-service-list{display:flex!important;flex-direction:column!important;grid-template-columns:none!important;gap:16px!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-category{display:block!important;width:100%!important;color:#101827!important;font-size:30px!important;font-weight:950!important;letter-spacing:-.04em!important;margin:26px 0 2px!important;padding-top:20px!important;border-top:1px solid rgba(15,23,42,.08)!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-card{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:178px minmax(0,1fr)!important;gap:20px!important;align-items:center!important;padding:16px!important;min-height:130px!important;overflow:hidden!important;border-radius:20px!important;background:#fff!important;border:1px solid rgba(15,23,42,.08)!important;box-shadow:0 14px 36px rgba(15,23,42,.065)!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-card:hover,.pb-shell.pb-public.pb-booking-page .pb-service-card.is-active{transform:translateY(-1px)!important;border-color:rgba(4,120,87,.20)!important;box-shadow:0 22px 46px rgba(15,23,42,.10)!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-visual{width:178px!important;min-width:178px!important;height:108px!important;border-radius:16px!important;overflow:hidden!important;display:grid!important;place-items:center!important;background:linear-gradient(135deg,#e6fffb,#ecfdf5)!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-visual img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-icon span{display:grid!important;place-items:center!important;width:58px!important;height:58px!important;border-radius:18px!important;background:rgba(16,185,129,.12)!important;color:#047857!important;font-size:25px!important;font-weight:900!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-card-body{min-width:0!important;display:grid!important;gap:8px!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-topline{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:16px!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-card strong{min-width:0!important;color:#0f172a!important;font-size:24px!important;line-height:1.12!important;letter-spacing:-.025em!important;margin:0!important;overflow-wrap:anywhere!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-meta{flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;width:auto!important;max-width:220px!important;padding:8px 13px!important;border-radius:999px!important;background:#e6f7f2!important;color:#047857!important;font-size:13px!important;font-weight:900!important;white-space:normal!important;line-height:1.2!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-helper{color:#64748b!important;font-size:15px!important;line-height:1.5!important;margin:0!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-actions{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:12px!important;margin-top:4px!important;flex-wrap:wrap!important;}
.pb-shell.pb-public.pb-booking-page .pb-more-info{min-height:40px!important;padding:9px 15px!important;border-radius:999px!important;border:1px solid rgba(4,120,87,.16)!important;background:#f4fbf9!important;color:#047857!important;font-weight:900!important;}
.pb-shell.pb-public.pb-booking-page .pb-service-cta-btn{min-height:40px!important;padding:9px 15px!important;border-radius:999px!important;border:0!important;background:transparent!important;color:#047857!important;font-weight:950!important;box-shadow:none!important;}
.pb-shell.pb-public.pb-booking-page .pb-summary-card,.pb-shell.pb-public.pb-booking-page .pb-booking-side .pb-card{border-radius:24px!important;background:#fff!important;border:1px solid rgba(15,23,42,.08)!important;box-shadow:0 18px 48px rgba(15,23,42,.08)!important;}
@media(max-width:980px){.pb-shell.pb-public.pb-booking-page .pb-booking-flow{grid-template-columns:1fr!important;padding:22px!important;}}
@media(max-width:760px){.pb-shell.pb-public.pb-booking-page .pb-booking-hero{padding:22px 18px!important;border-radius:0 0 22px 22px!important}.pb-shell.pb-public.pb-booking-page .pb-public-powered-badge{position:static!important;width:max-content!important;margin-bottom:14px!important}.pb-shell.pb-public.pb-booking-page .pb-customer-brand{grid-template-columns:76px minmax(0,1fr)!important;column-gap:14px!important}.pb-shell.pb-public.pb-booking-page .pb-customer-logo{width:76px!important;height:76px!important;max-width:76px!important;max-height:76px!important}.pb-shell.pb-public.pb-booking-page .pb-booking-hero h1{font-size:34px!important}.pb-shell.pb-public.pb-booking-page .pb-booking-hero p{font-size:14px!important}.pb-shell.pb-public.pb-booking-page .pb-steps{grid-template-columns:1fr!important}.pb-shell.pb-public.pb-booking-page .pb-service-card{grid-template-columns:1fr!important}.pb-shell.pb-public.pb-booking-page .pb-service-visual{width:100%!important;min-width:0!important;height:160px!important}.pb-shell.pb-public.pb-booking-page .pb-service-topline{flex-direction:column!important;gap:8px!important}.pb-shell.pb-public.pb-booking-page .pb-service-actions{justify-content:stretch!important;flex-direction:column!important;align-items:stretch!important}}
/* v1.2.8 admin fallback/upload polish */
.pb-admin-help-card strong{color:#0f172a}.pb-admin-service-preview span[data-pb-fallback-preview]{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:rgba(16,185,129,.12);color:#047857;font-weight:900;font-size:25px}.pb-admin-service-edit-card select[name="icon_key"],.pb-card select[name="icon_key"]{min-height:46px}


/* v1.2.9 CUSTOMER PAGE REBUILD - isolated pbx service cards */
.pb-shell.pb-public.pb-booking-page {
  max-width: 1420px !important;
  margin: 18px auto 34px !important;
  border-radius: 30px !important;
  background: #ffffff !important;
  overflow: hidden !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 34px 90px rgba(15,23,42,.13) !important;
}

.pb-shell.pb-public.pb-booking-page .pb-booking-hero {
  min-height: 176px !important;
  padding: 26px 42px !important;
  border-radius: 0 0 30px 30px !important;
  overflow: hidden !important;
  position: relative !important;
  background:
    radial-gradient(circle at 83% 45%, rgba(170,205,235,.44), transparent 24%),
    linear-gradient(100deg,#05132d 0%,#0c2854 56%,#476d8a 100%) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero:before {
  content:"" !important;
  position:absolute !important;
  right:70px !important;
  bottom:28px !important;
  width:410px !important;
  height:72px !important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent) !important;
  transform:skewY(-5deg) !important;
  pointer-events:none !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero:after {
  content:"" !important;
  position:absolute !important;
  right:205px !important;
  top:76px !important;
  width:44px !important;
  height:44px !important;
  background:rgba(255,255,255,.48) !important;
  clip-path:polygon(50% 0%,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0% 50%,38% 38%) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-customer-brand {
  display:grid !important;
  grid-template-columns:112px minmax(0,1fr) !important;
  grid-template-areas:"logo eyebrow" "logo title" "logo intro" !important;
  column-gap:26px !important;
  row-gap:7px !important;
  align-items:center !important;
  max-width:980px !important;
  position:relative !important;
  z-index:2 !important;
}
.pb-shell.pb-public.pb-booking-page .pb-customer-logo {
  grid-area:logo !important;
  width:112px !important;
  height:112px !important;
  max-width:112px !important;
  max-height:112px !important;
  object-fit:cover !important;
  background:#fff !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:0 !important;
  box-shadow:0 16px 34px rgba(0,0,0,.20) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-eyebrow {
  grid-area:eyebrow !important;
  width:max-content !important;
  margin:0 !important;
  padding:7px 15px !important;
  border-radius:999px !important;
  background:rgba(6,78,59,.72) !important;
  border:1px solid rgba(16,185,129,.35) !important;
  color:#d1fae5 !important;
  font-size:14px !important;
  font-weight:900 !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero h1 {
  grid-area:title !important;
  margin:0 !important;
  color:#fff !important;
  font-size:clamp(42px,4.7vw,64px) !important;
  line-height:.96 !important;
  letter-spacing:-.055em !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero p {
  grid-area:intro !important;
  margin:0 !important;
  color:rgba(255,255,255,.93) !important;
  font-size:17px !important;
  line-height:1.45 !important;
  max-width:780px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-public-powered-badge {
  position:absolute !important;
  top:22px !important;
  right:30px !important;
  z-index:3 !important;
  padding:10px 17px !important;
  border-radius:999px !important;
  background:#111827 !important;
  color:#fff !important;
  font-size:14px !important;
  font-weight:900 !important;
  box-shadow:0 12px 26px rgba(0,0,0,.24) !important;
}

.pb-shell.pb-public.pb-booking-page .pb-booking-flow {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 360px !important;
  gap:28px !important;
  padding:34px 42px 42px !important;
  background:#fff !important;
  align-items:start !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-main,
.pb-shell.pb-public.pb-booking-page .pb-booking-card,
.pb-shell.pb-public.pb-booking-page .pb-booking-section {
  min-width:0 !important;
  max-width:100% !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-card {
  background:#fff !important;
  border:1px solid rgba(15,23,42,.07) !important;
  box-shadow:0 4px 20px rgba(15,23,42,.05) !important;
  padding:32px 36px !important;
  border-radius:20px !important;
  box-sizing:border-box !important;
}

.pb-shell.pb-public.pb-booking-page .pb-steps {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  padding:8px !important;
  margin:0 0 26px !important;
  border-radius:18px !important;
  background:#fff !important;
  border:1px solid rgba(15,23,42,.07) !important;
  box-shadow:0 18px 45px rgba(15,23,42,.07) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-steps span {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:12px !important;
  padding:14px 12px !important;
  border-radius:14px !important;
  background:transparent !important;
  color:#64748b !important;
  font-size:14px !important;
  font-weight:900 !important;
}
.pb-shell.pb-public.pb-booking-page .pb-steps span:before {
  display:grid !important;
  place-items:center !important;
  width:30px !important;
  height:30px !important;
  border-radius:999px !important;
  background:#e8eef5 !important;
  color:#64748b !important;
  font-weight:900 !important;
}
.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(1):before { content:"1" !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(2):before { content:"2" !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(3):before { content:"3" !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-active { background:#e8fbf5 !important; color:#065f46 !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-active:before { background:#059669 !important; color:#fff !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-completed { background:#f0fdf4 !important; color:#047857 !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-completed:before { content:"✓" !important; background:#10b981 !important; color:#fff !important; }

.pb-shell.pb-public.pb-booking-page .pb-customer-service-list,
.pb-shell.pb-public.pb-booking-page [data-service-list] {
  display:flex !important;
  flex-direction:column !important;
  gap:16px !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow:visible !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-category {
  display:block !important;
  width:100% !important;
  margin:26px 0 2px !important;
  padding-top:20px !important;
  border-top:1px solid rgba(15,23,42,.08) !important;
  color:#101827 !important;
  font-size:30px !important;
  line-height:1.1 !important;
  font-weight:950 !important;
  letter-spacing:-.04em !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-card {
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  display:grid !important;
  grid-template-columns:178px minmax(0,1fr) !important;
  gap:20px !important;
  align-items:center !important;
  padding:16px !important;
  min-height:130px !important;
  overflow:hidden !important;
  border-radius:20px !important;
  background:#fff !important;
  border:1px solid rgba(15,23,42,.08) !important;
  box-shadow:0 14px 36px rgba(15,23,42,.065) !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-card:hover,
.pb-shell.pb-public.pb-booking-page .pbx-service-card.is-active {
  transform:translateY(-1px) !important;
  border-color:rgba(4,120,87,.20) !important;
  box-shadow:0 22px 46px rgba(15,23,42,.10) !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-media {
  width:178px !important;
  min-width:178px !important;
  height:108px !important;
  border-radius:16px !important;
  overflow:hidden !important;
  display:grid !important;
  place-items:center !important;
  background:linear-gradient(135deg,#e6fffb,#ecfdf5) !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-media img {
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-icon span {
  display:grid !important;
  place-items:center !important;
  width:58px !important;
  height:58px !important;
  border-radius:18px !important;
  background:rgba(16,185,129,.12) !important;
  color:#047857 !important;
  font-size:25px !important;
  font-weight:900 !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-content {
  min-width:0 !important;
  display:grid !important;
  gap:8px !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-head {
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:16px !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-head h3 {
  min-width:0 !important;
  margin:0 !important;
  color:#0f172a !important;
  font-size:24px !important;
  line-height:1.12 !important;
  letter-spacing:-.025em !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-pill {
  flex:0 0 auto !important;
  max-width:220px !important;
  padding:8px 13px !important;
  border-radius:999px !important;
  background:#e6f7f2 !important;
  color:#047857 !important;
  font-size:13px !important;
  font-weight:900 !important;
  line-height:1.2 !important;
  white-space:normal !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-content p {
  margin:0 !important;
  color:#64748b !important;
  font-size:15px !important;
  line-height:1.5 !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-actions {
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:12px !important;
  margin-top:4px !important;
  flex-wrap:wrap !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-more {
  min-height:40px !important;
  padding:9px 15px !important;
  border-radius:999px !important;
  border:1px solid rgba(4,120,87,.16) !important;
  background:#f4fbf9 !important;
  color:#047857 !important;
  font-weight:900 !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-select {
  min-height:40px !important;
  padding:9px 15px !important;
  border-radius:999px !important;
  border:0 !important;
  background:transparent !important;
  color:#047857 !important;
  font-weight:950 !important;
  box-shadow:none !important;
}
.pb-shell.pb-public.pb-booking-page .pb-summary-card,
.pb-shell.pb-public.pb-booking-page .pb-booking-side .pb-card {
  border-radius:24px !important;
  background:#fff !important;
  border:1px solid rgba(15,23,42,.08) !important;
  box-shadow:0 18px 48px rgba(15,23,42,.08) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-empty span {
  color:#64748b !important;
  font-size:14px !important;
}
@media(max-width:980px){
  .pb-shell.pb-public.pb-booking-page .pb-booking-flow { grid-template-columns:1fr !important; padding:22px !important; }
}
@media(max-width:760px){
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero { padding:22px 18px !important; border-radius:0 0 22px 22px !important; }
  .pb-shell.pb-public.pb-booking-page .pb-public-powered-badge { position:static !important; width:max-content !important; margin-bottom:14px !important; }
  .pb-shell.pb-public.pb-booking-page .pb-customer-brand { grid-template-columns:76px minmax(0,1fr) !important; column-gap:14px !important; }
  .pb-shell.pb-public.pb-booking-page .pb-customer-logo { width:76px !important; height:76px !important; max-width:76px !important; max-height:76px !important; }
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero h1 { font-size:34px !important; }
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero p { font-size:14px !important; }
  .pb-shell.pb-public.pb-booking-page .pb-steps { grid-template-columns:1fr !important; }
  .pb-shell.pb-public.pb-booking-page .pbx-service-card { grid-template-columns:1fr !important; }
  .pb-shell.pb-public.pb-booking-page .pbx-service-media { width:100% !important; min-width:0 !important; height:160px !important; }
  .pb-shell.pb-public.pb-booking-page .pbx-service-head { flex-direction:column !important; gap:8px !important; }
  .pb-shell.pb-public.pb-booking-page .pbx-service-actions { justify-content:stretch !important; flex-direction:column !important; align-items:stretch !important; }
}


/* v1.3.0 FINAL OVERRIDE: survive old markup and theme cache */
.pb-shell.pb-public.pb-booking-page [data-service-list],
.pb-shell.pb-public.pb-booking-page .pb-customer-service-list,
.pb-shell.pb-public.pb-booking-page .pb-service-grid {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
  column-count: auto !important;
}
.pb-shell.pb-public.pb-booking-page [data-service-list] > article,
.pb-shell.pb-public.pb-booking-page .pbx-service-card,
.pb-shell.pb-public.pb-booking-page .pb-service-card {
  display: grid !important;
  grid-template-columns: 170px minmax(0, 1fr) !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 0 16px !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card > *,
.pb-shell.pb-public.pb-booking-page .pbx-service-card > * {
  min-width: 0 !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card .pb-service-visual,
.pb-shell.pb-public.pb-booking-page .pb-service-visual,
.pb-shell.pb-public.pb-booking-page .pbx-service-media {
  grid-column: 1 !important;
  grid-row: 1 / span 3 !important;
  width: 170px !important;
  min-width: 170px !important;
  height: 104px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card .pb-service-card-body,
.pb-shell.pb-public.pb-booking-page .pb-service-card-body,
.pb-shell.pb-public.pb-booking-page .pbx-service-content {
  grid-column: 2 !important;
  width: auto !important;
  min-width: 0 !important;
  display: grid !important;
  gap: 8px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card strong,
.pb-shell.pb-public.pb-booking-page .pbx-service-head h3 {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  display: block !important;
  font-size: 24px !important;
  line-height: 1.15 !important;
  width: auto !important;
  max-width: none !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card .pb-service-meta,
.pb-shell.pb-public.pb-booking-page .pb-service-meta,
.pb-shell.pb-public.pb-booking-page .pbx-service-pill {
  position: static !important;
  width: max-content !important;
  max-width: 220px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card .pb-service-actions,
.pb-shell.pb-public.pb-booking-page .pb-service-actions,
.pb-shell.pb-public.pb-booking-page .pbx-service-actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  flex-direction: row !important;
  gap: 12px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card button,
.pb-shell.pb-public.pb-booking-page .pbx-service-card button {
  writing-mode: horizontal-tb !important;
  white-space: nowrap !important;
  max-width: none !important;
}
.pb-admin-service-edit-card select[name="icon_key"],
.pb-card select[name="icon_key"] {
  color: #111827 !important;
  background: #fff !important;
  min-height: 48px !important;
}
.pb-admin-service-edit-card select[name="icon_key"] option,
.pb-card select[name="icon_key"] option {
  color: #111827 !important;
  background: #fff !important;
}
@media(max-width:760px){
  .pb-shell.pb-public.pb-booking-page [data-service-list] > article,
  .pb-shell.pb-public.pb-booking-page .pbx-service-card,
  .pb-shell.pb-public.pb-booking-page .pb-service-card {
    grid-template-columns: 1fr !important;
  }
  .pb-shell.pb-public.pb-booking-page .pb-service-card .pb-service-visual,
  .pb-shell.pb-public.pb-booking-page .pb-service-visual,
  .pb-shell.pb-public.pb-booking-page .pbx-service-media {
    grid-column: 1 !important;
    grid-row: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 160px !important;
  }
  .pb-shell.pb-public.pb-booking-page .pb-service-card .pb-service-card-body,
  .pb-shell.pb-public.pb-booking-page .pb-service-card-body,
  .pb-shell.pb-public.pb-booking-page .pbx-service-content {
    grid-column: 1 !important;
  }
}

/* v1.3.1 admin availability debug */
.pb-empty-state small{display:block;margin-top:8px;color:#64748b;font-size:12px;line-height:1.45;}


/* v1.3.2 WIDE CUSTOMER LAYOUT + CARD KILL SWITCH */
.pb-shell.pb-public.pb-booking-page {
  max-width: 1680px !important;
  width: min(1680px, calc(100vw - 40px)) !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-flow {
  grid-template-columns: minmax(760px, 1fr) 390px !important;
  gap: 34px !important;
  padding-left: 52px !important;
  padding-right: 52px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-main {
  width: 100% !important;
}
.pb-shell.pb-public.pb-booking-page [data-service-list],
.pb-shell.pb-public.pb-booking-page .pb-customer-service-list,
.pb-shell.pb-public.pb-booking-page .pb-service-grid,
.pb-shell.pb-public.pb-booking-page .pb-grid.pb-service-grid {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  grid-template-columns: none !important;
  grid-auto-flow: row !important;
  align-items: stretch !important;
  width: 100% !important;
}
.pb-shell.pb-public.pb-booking-page [data-service-list] > .pb-service-card,
.pb-shell.pb-public.pb-booking-page [data-service-list] > .pbx-service-card,
.pb-shell.pb-public.pb-booking-page .pb-service-card,
.pb-shell.pb-public.pb-booking-page .pbx-service-card {
  flex: 0 0 auto !important;
  width: 100% !important;
  max-width: 100% !important;
  display: grid !important;
  grid-template-columns: 190px minmax(0, 1fr) !important;
  grid-auto-flow: column !important;
  align-items: center !important;
  gap: 22px !important;
  min-height: 142px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card-body,
.pb-shell.pb-public.pb-booking-page .pbx-service-content {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.pb-shell.pb-public.pb-booking-page .pb-service-card strong,
.pb-shell.pb-public.pb-booking-page .pbx-service-head h3 {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  display: block !important;
  width: auto !important;
  max-width: none !important;
}
@media(max-width: 1180px) {
  .pb-shell.pb-public.pb-booking-page {
    width: min(100%, calc(100vw - 24px)) !important;
  }
  .pb-shell.pb-public.pb-booking-page .pb-booking-flow {
    grid-template-columns: 1fr !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}


/* v1.3.3 DESIGN 2 CUSTOMER REFINEMENT */
.pb-shell.pb-public.pb-booking-page {
  max-width: 1560px !important;
  width: min(1560px, calc(100vw - 36px)) !important;
  border-radius: 26px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-hero {
  min-height: 170px !important;
  padding: 28px 38px !important;
  border-radius: 0 0 26px 26px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-booking-flow {
  grid-template-columns: minmax(720px, 1fr) 360px !important;
  gap: 30px !important;
  padding: 30px 44px 38px !important;
}
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-completed {
  background: transparent !important;
  color: #64748b !important;
}
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-completed:before {
  content: attr(data-step) !important;
  background: #e8eef5 !important;
  color: #64748b !important;
}
.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(1):before { content: "1" !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(2):before { content: "2" !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span:nth-child(3):before { content: "3" !important; }
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-active:before {
  background: #059669 !important;
  color: #fff !important;
}
.pb-shell.pb-public.pb-booking-page .pb-steps span.is-active {
  background: #e8fbf5 !important;
  color: #065f46 !important;
}
/* Make treatment cards match design 2: compact full-width rows, never three tiles */
.pb-shell.pb-public.pb-booking-page [data-service-list],
.pb-shell.pb-public.pb-booking-page .pb-customer-service-list,
.pb-shell.pb-public.pb-booking-page .pb-service-grid,
.pb-shell.pb-public.pb-booking-page .pb-grid.pb-service-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}
.pb-shell.pb-public.pb-booking-page [data-service-list] > article,
.pb-shell.pb-public.pb-booking-page .pbx-service-card,
.pb-shell.pb-public.pb-booking-page .pb-service-card {
  display: grid !important;
  grid-template-columns: 136px minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: center !important;
  min-height: 116px !important;
  padding: 14px 16px !important;
  border-radius: 18px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-shadow: 0 12px 28px rgba(15,23,42,.055) !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-media,
.pb-shell.pb-public.pb-booking-page .pb-service-visual {
  width: 136px !important;
  min-width: 136px !important;
  height: 88px !important;
  border-radius: 14px !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-content,
.pb-shell.pb-public.pb-booking-page .pb-service-card-body {
  display: grid !important;
  gap: 6px !important;
  min-width: 0 !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-head {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  align-items: start !important;
  gap: 12px !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-head h3,
.pb-shell.pb-public.pb-booking-page .pb-service-card strong {
  font-size: 20px !important;
  line-height: 1.12 !important;
  margin: 0 !important;
  letter-spacing: -.02em !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-pill,
.pb-shell.pb-public.pb-booking-page .pb-service-meta {
  padding: 7px 11px !important;
  font-size: 12px !important;
  max-width: 170px !important;
  line-height: 1.2 !important;
  justify-self: end !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-content p,
.pb-shell.pb-public.pb-booking-page .pb-service-helper {
  font-size: 14px !important;
  line-height: 1.38 !important;
  margin: 0 !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-service-actions,
.pb-shell.pb-public.pb-booking-page .pb-service-actions {
  justify-content: flex-end !important;
  gap: 10px !important;
  margin-top: 3px !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-more,
.pb-shell.pb-public.pb-booking-page .pb-more-info {
  min-height: 36px !important;
  padding: 8px 13px !important;
  font-size: 13px !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-select,
.pb-shell.pb-public.pb-booking-page .pb-service-cta-btn {
  min-height: 36px !important;
  padding: 8px 13px !important;
  font-size: 13px !important;
}
.pb-shell.pb-public.pb-booking-page .pbx-icon span,
.pb-shell.pb-public.pb-booking-page .pb-service-icon span {
  width: 50px !important;
  height: 50px !important;
  border-radius: 16px !important;
  font-size: 22px !important;
}
/* better icon moods */
.pb-shell.pb-public.pb-booking-page .pbx-icon-hair span { font-size: 24px !important; }
.pb-shell.pb-public.pb-booking-page .pbx-icon-clinic span { font-size: 24px !important; }
@media(max-width: 1100px) {
  .pb-shell.pb-public.pb-booking-page .pb-booking-flow {
    grid-template-columns: 1fr !important;
    padding: 22px !important;
  }
}
@media(max-width: 700px) {
  .pb-shell.pb-public.pb-booking-page [data-service-list] > article,
  .pb-shell.pb-public.pb-booking-page .pbx-service-card,
  .pb-shell.pb-public.pb-booking-page .pb-service-card {
    grid-template-columns: 1fr !important;
  }
  .pb-shell.pb-public.pb-booking-page .pbx-service-media,
  .pb-shell.pb-public.pb-booking-page .pb-service-visual {
    width: 100% !important;
    height: 145px !important;
  }
  .pb-shell.pb-public.pb-booking-page .pbx-service-head {
    grid-template-columns: 1fr !important;
  }
  .pb-shell.pb-public.pb-booking-page .pbx-service-pill {
    justify-self: start !important;
  }
}


/* v1.3.4 DESIGN 2 FINAL SERVICE CARDS
   Scoped by [data-pb-booking] and [data-service-list], not old fragile wrappers. */
[data-pb-booking] [data-service-list],
[data-pb-booking] .pb-customer-service-list,
[data-pb-booking] .pb-service-grid,
[data-pb-booking] .pb-grid.pb-service-grid {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  column-count: auto !important;
  grid-template-columns: none !important;
  grid-auto-flow: row !important;
}

[data-pb-booking] [data-service-list] > article,
[data-pb-booking] .pb-d2-service-card,
[data-pb-booking] .pbx-service-card,
[data-pb-booking] .pb-service-card {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: 210px minmax(0, 1fr) 300px !important;
  grid-template-areas: "media content actions" !important;
  align-items: center !important;
  gap: 24px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 136px !important;
  margin: 0 0 14px !important;
  padding: 14px 16px !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 14px 34px rgba(15,23,42,.055) !important;
  overflow: hidden !important;
  text-align: left !important;
}

[data-pb-booking] .pb-d2-service-card:hover,
[data-pb-booking] .pb-d2-service-card.is-active,
[data-pb-booking] .pb-service-card:hover,
[data-pb-booking] .pb-service-card.is-active {
  transform: translateY(-1px) !important;
  border-color: rgba(4,120,87,.20) !important;
  box-shadow: 0 20px 42px rgba(15,23,42,.10) !important;
}

[data-pb-booking] .pb-d2-media,
[data-pb-booking] .pbx-service-media,
[data-pb-booking] .pb-service-visual {
  grid-area: media !important;
  display: grid !important;
  place-items: center !important;
  width: 210px !important;
  min-width: 210px !important;
  height: 112px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: linear-gradient(135deg,#e6fffb,#ecfdf5) !important;
}

[data-pb-booking] .pb-d2-media img,
[data-pb-booking] .pbx-service-media img,
[data-pb-booking] .pb-service-visual img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

[data-pb-booking] .pb-d2-icon span,
[data-pb-booking] .pbx-icon span,
[data-pb-booking] .pb-service-icon span {
  display: grid !important;
  place-items: center !important;
  width: 52px !important;
  height: 52px !important;
  border-radius: 16px !important;
  background: rgba(16,185,129,.12) !important;
  color: #047857 !important;
  font-size: 22px !important;
  font-weight: 900 !important;
}

[data-pb-booking] .pb-d2-content,
[data-pb-booking] .pbx-service-content,
[data-pb-booking] .pb-service-card-body {
  grid-area: content !important;
  min-width: 0 !important;
  width: 100% !important;
  display: grid !important;
  gap: 8px !important;
}

[data-pb-booking] .pb-d2-content h3,
[data-pb-booking] .pbx-service-head h3,
[data-pb-booking] .pb-service-card strong {
  display: block !important;
  margin: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  color: #0f172a !important;
  font-size: 20px !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
}

[data-pb-booking] .pb-d2-content p,
[data-pb-booking] .pbx-service-content p,
[data-pb-booking] .pb-service-helper,
[data-pb-booking] .pb-service-card p {
  margin: 0 !important;
  color: #64748b !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  min-height: 0 !important;
}

[data-pb-booking] .pb-d2-meta {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

[data-pb-booking] .pb-d2-meta span,
[data-pb-booking] .pbx-service-pill,
[data-pb-booking] .pb-service-meta {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  max-width: none !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  background: #e6f7f2 !important;
  color: #047857 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

[data-pb-booking] .pb-d2-actions,
[data-pb-booking] .pbx-service-actions,
[data-pb-booking] .pb-service-actions {
  grid-area: actions !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  margin: 0 !important;
  min-width: 0 !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}

[data-pb-booking] .pb-d2-more,
[data-pb-booking] .pbx-more,
[data-pb-booking] .pb-more-info {
  min-height: 42px !important;
  padding: 9px 16px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(15,23,42,.10) !important;
  background: #ffffff !important;
  color: #334155 !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

[data-pb-booking] .pb-d2-select,
[data-pb-booking] .pbx-select,
[data-pb-booking] .pb-service-cta-btn {
  min-height: 42px !important;
  padding: 9px 18px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: linear-gradient(135deg,#047857,#065f46) !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 950 !important;
  white-space: nowrap !important;
  box-shadow: 0 12px 24px rgba(4,120,87,.18) !important;
}

[data-pb-booking] .pb-service-category {
  margin: 24px 0 14px !important;
  padding-top: 20px !important;
  border-top: 1px solid rgba(15,23,42,.08) !important;
  color: #101827 !important;
  font-size: 30px !important;
  line-height: 1.1 !important;
  font-weight: 950 !important;
  letter-spacing: -.04em !important;
}

@media (max-width: 1180px) {
  [data-pb-booking] [data-service-list] > article,
  [data-pb-booking] .pb-d2-service-card,
  [data-pb-booking] .pbx-service-card,
  [data-pb-booking] .pb-service-card {
    grid-template-columns: 180px minmax(0,1fr) !important;
    grid-template-areas: "media content" "media actions" !important;
  }
  [data-pb-booking] .pb-d2-media,
  [data-pb-booking] .pbx-service-media,
  [data-pb-booking] .pb-service-visual {
    width: 180px !important;
    min-width: 180px !important;
  }
  [data-pb-booking] .pb-d2-actions,
  [data-pb-booking] .pbx-service-actions,
  [data-pb-booking] .pb-service-actions {
    justify-content: flex-start !important;
  }
}

@media (max-width: 700px) {
  [data-pb-booking] [data-service-list] > article,
  [data-pb-booking] .pb-d2-service-card,
  [data-pb-booking] .pbx-service-card,
  [data-pb-booking] .pb-service-card {
    grid-template-columns: 1fr !important;
    grid-template-areas: "media" "content" "actions" !important;
  }
  [data-pb-booking] .pb-d2-media,
  [data-pb-booking] .pbx-service-media,
  [data-pb-booking] .pb-service-visual {
    width: 100% !important;
    min-width: 0 !important;
    height: 150px !important;
  }
  [data-pb-booking] .pb-d2-actions,
  [data-pb-booking] .pbx-service-actions,
  [data-pb-booking] .pb-service-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }
}


/* =====================================================
   v1.3.5  DESIGN 2 SIDEBAR + STEP INDICATOR POLISH
   ===================================================== */

/* --- Steps: numbered circles like target design --- */
[data-pb-booking] .pb-steps.pb-steps-d2 {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 22px;
  align-items: center;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px 7px 8px;
  border-radius: 999px;
  background: #f2f4f7;
  color: #64748b;
  font-size: 13px;
  font-weight: 600;
  transition: background .18s, color .18s;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span::before {
  content: attr(data-step);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #e2e8f0;
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
  flex-shrink: 0;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span.is-active {
  background: #e8fbf5;
  color: #065f46;
  font-weight: 700;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span.is-active::before {
  background: #047857;
  color: #fff;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span.is-completed {
  background: #f0fdf8;
  color: #6b7280;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span.is-completed::before {
  background: #a7f3d0;
  color: #065f46;
  content: "✓";
}

/* --- Sidebar: header row with icon --- */
[data-pb-booking] .pb-booking-summary .pb-summary-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
[data-pb-booking] .pb-booking-summary .pb-summary-header h3 {
  margin: 0;
  font-size: 22px;
  letter-spacing: -.02em;
}
[data-pb-booking] .pb-summary-cal-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #e6f7f2;
}

/* --- Progress bar --- */
[data-pb-booking] .pb-summary-progress-wrap {
  margin-bottom: 18px;
}
[data-pb-booking] .pb-summary-step-label {
  font-size: 12px;
  color: #64748b;
  margin: 0 0 6px;
  font-weight: 600;
  letter-spacing: .01em;
}
[data-pb-booking] .pb-summary-progress-bar {
  height: 6px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
  margin-bottom: 6px;
}
[data-pb-booking] .pb-summary-progress-fill {
  height: 100%;
  border-radius: 999px;
  background: #047857;
  transition: width .35s ease;
}
[data-pb-booking] .pb-summary-step-hint {
  font-size: 12px;
  color: #94a3b8;
  margin: 0;
}

/* --- Trust badges + how-to-book section --- */
[data-pb-booking] .pb-summary-trust-block {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
[data-pb-booking] .pb-trust-badge {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: #f0fdf8;
  border: 1px solid #d1fae5;
  border-radius: 14px;
  padding: 12px 14px;
}
[data-pb-booking] .pb-trust-badge.pb-trust-badge-secure {
  background: #f8fafc;
  border-color: #e2e8f0;
}
[data-pb-booking] .pb-trust-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #d1fae5;
  flex-shrink: 0;
}
[data-pb-booking] .pb-trust-badge.pb-trust-badge-secure .pb-trust-icon {
  background: #e2e8f0;
}
[data-pb-booking] .pb-trust-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
[data-pb-booking] .pb-trust-text strong {
  font-size: 14px;
  font-weight: 700;
  color: #0f172a;
}
[data-pb-booking] .pb-trust-text span {
  font-size: 12px;
  color: #64748b;
  line-height: 1.4;
}

/* --- How-to-book numbered list --- */
[data-pb-booking] .pb-summary-how-title {
  font-size: 13px;
  font-weight: 700;
  color: #374151;
  margin-bottom: 2px;
}
[data-pb-booking] .pb-summary-steps-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
[data-pb-booking] .pb-summary-steps-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #374151;
}
[data-pb-booking] .pb-steps-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #e2e8f0;
  color: #374151;
  font-size: 11px;
  font-weight: 800;
  flex-shrink: 0;
}

/* --- Category headings in service list --- */
[data-pb-booking] .pb-service-category {
  margin-bottom: 18px;
}
[data-pb-booking] .pb-category-title {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 12px;
  padding: 4px 0 4px 2px;
  border-bottom: 2px solid #e2e8f0;
  width: 100%;
}

/* d2-actions layout fix */
[data-pb-booking] .pb-d2-actions {
  grid-area: actions;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  min-width: 0;
}
[data-pb-booking] .pb-d2-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  white-space: nowrap;
}
[data-pb-booking] .pb-d2-more:hover {
  border-color: #047857;
  color: #047857;
  background: #f0fdf8;
}
[data-pb-booking] .pb-d2-select {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 18px;
  border-radius: 999px;
  border: 0;
  background: #047857;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .15s, transform .15s;
}
[data-pb-booking] .pb-d2-select:hover {
  opacity: .9;
  transform: translateY(-1px);
}

/* Mobile tweaks */
@media(max-width:700px) {
  [data-pb-booking] .pb-summary-trust-block {
    display: none; /* hide on mobile to save space */
  }
  [data-pb-booking] .pb-d2-actions {
    flex-direction: row !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }
}


/* =====================================================
   v1.3.6  FIX: FORCE VERTICAL CARD LIST + CARD LAYOUT
   ===================================================== */

/* Force category services container to be a vertical stack, override the grid */
[data-pb-booking] .pb-category-services,
[data-pb-booking] [data-service-list] .pb-category-services,
.pb-shell.pb-public.pb-booking-page .pb-category-services {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  grid-template-columns: none !important;
  width: 100% !important;
}

/* Service card: 3-zone horizontal row — image | content | actions */
[data-pb-booking] .pb-d2-service-card {
  display: grid !important;
  grid-template-columns: 180px 1fr auto !important;
  grid-template-rows: 1fr !important;
  grid-template-areas: "media content actions" !important;
  align-items: center !important;
  gap: 20px !important;
  width: 100% !important;
  min-height: 130px !important;
  padding: 14px 18px !important;
  border-radius: 18px !important;
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 6px 20px rgba(15,23,42,.05) !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  text-align: left !important;
}
[data-pb-booking] .pb-d2-service-card:hover {
  border-color: rgba(4,120,87,.22) !important;
  box-shadow: 0 12px 32px rgba(15,23,42,.09) !important;
  transform: translateY(-1px) !important;
}

/* Media zone */
[data-pb-booking] .pb-d2-service-card > .pb-d2-media,
[data-pb-booking] .pb-d2-service-card > .pb-d2-icon {
  grid-area: media !important;
  width: 180px !important;
  min-width: 180px !important;
  height: 108px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg,#e6fffb,#ecfdf5) !important;
  flex-shrink: 0 !important;
}
[data-pb-booking] .pb-d2-service-card > .pb-d2-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* Content zone: title, description, meta pills — all inline/horizontal flow */
[data-pb-booking] .pb-d2-service-card > .pb-d2-content {
  grid-area: content !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  min-width: 0 !important;
  align-self: center !important;
}
[data-pb-booking] .pb-d2-service-card > .pb-d2-content h3 {
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  color: #0f172a !important;
  margin: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  display: block !important;
  max-width: 100% !important;
}
[data-pb-booking] .pb-d2-service-card > .pb-d2-content p {
  font-size: 13px !important;
  color: #64748b !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  writing-mode: horizontal-tb !important;
}
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 6px !important;
  margin-top: 2px !important;
  align-items: center !important;
  writing-mode: horizontal-tb !important;
}
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta span {
  display: inline-flex !important;
  align-items: center !important;
  padding: 4px 10px !important;
  border-radius: 999px !important;
  background: #e6f7f2 !important;
  color: #047857 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  writing-mode: horizontal-tb !important;
}

/* Actions zone: buttons stacked vertically, right-aligned */
[data-pb-booking] .pb-d2-service-card > .pb-d2-actions {
  grid-area: actions !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: center !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
  min-width: 148px !important;
}
[data-pb-booking] .pb-d2-more {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 9px 18px !important;
  border-radius: 999px !important;
  border: 1px solid #d1d5db !important;
  background: #fff !important;
  color: #374151 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
[data-pb-booking] .pb-d2-more:hover {
  border-color: #047857 !important;
  color: #047857 !important;
  background: #f0fdf8 !important;
}
[data-pb-booking] .pb-d2-select {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 18px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: #047857 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
[data-pb-booking] .pb-d2-select:hover {
  opacity: .88 !important;
}

/* Step indicator: pills in a row, not full-width stretched */
[data-pb-booking] .pb-steps.pb-steps-d2 {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  align-items: center !important;
  margin-bottom: 22px !important;
  background: #f8fafc !important;
  border-radius: 999px !important;
  padding: 4px !important;
  border: 1px solid #e2e8f0 !important;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span {
  flex: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 8px 12px !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #94a3b8 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  transition: background .18s, color .18s !important;
  white-space: nowrap !important;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span::before {
  content: attr(data-step) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  background: #e2e8f0 !important;
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  flex-shrink: 0 !important;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span.is-active {
  background: #fff !important;
  color: #065f46 !important;
  box-shadow: 0 1px 4px rgba(15,23,42,.10) !important;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span.is-active::before {
  background: #047857 !important;
  color: #fff !important;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span.is-completed {
  background: transparent !important;
  color: #64748b !important;
}
[data-pb-booking] .pb-steps.pb-steps-d2 span.is-completed::before {
  content: "✓" !important;
  background: #a7f3d0 !important;
  color: #065f46 !important;
}

/* Category title styling */
[data-pb-booking] .pb-category-title {
  font-size: 20px !important;
  font-weight: 900 !important;
  color: #0f172a !important;
  letter-spacing: -.025em !important;
  margin: 20px 0 10px !important;
  padding: 0 !important;
  border-bottom: none !important;
  display: block !important;
  width: auto !important;
}
[data-pb-booking] .pb-service-category:first-child .pb-category-title {
  margin-top: 4px !important;
}

/* Mobile: stack card vertically */
@media(max-width: 640px) {
  [data-pb-booking] .pb-d2-service-card {
    grid-template-columns: 1fr !important;
    grid-template-areas: "media" "content" "actions" !important;
  }
  [data-pb-booking] .pb-d2-service-card > .pb-d2-media,
  [data-pb-booking] .pb-d2-service-card > .pb-d2-icon {
    width: 100% !important;
    min-width: 0 !important;
    height: 140px !important;
  }
  [data-pb-booking] .pb-d2-service-card > .pb-d2-actions {
    flex-direction: row !important;
    min-width: 0 !important;
  }
  [data-pb-booking] .pb-steps.pb-steps-d2 span {
    font-size: 11px !important;
    padding: 7px 6px !important;
    gap: 5px !important;
  }
}


/* =====================================================
   v1.3.7  FIX: CARD BREATHING ROOM + TEXT CLIPPING
   ===================================================== */

/* More generous card padding and gap between zones */
[data-pb-booking] .pb-d2-service-card {
  grid-template-columns: 160px 1fr 160px !important;
  gap: 24px !important;
  padding: 16px 20px !important;
  min-height: 120px !important;
  align-items: center !important;
}

/* Image zone: slightly less wide so content gets more room */
[data-pb-booking] .pb-d2-service-card > .pb-d2-media,
[data-pb-booking] .pb-d2-service-card > .pb-d2-icon {
  width: 160px !important;
  min-width: 160px !important;
  height: 100px !important;
}

/* Content zone: allow title to wrap if needed, never clip */
[data-pb-booking] .pb-d2-service-card > .pb-d2-content h3 {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  font-size: 17px !important;
  line-height: 1.25 !important;
}

/* Actions zone: fixed width, buttons full-width inside */
[data-pb-booking] .pb-d2-service-card > .pb-d2-actions {
  min-width: 148px !important;
  max-width: 160px !important;
  width: 160px !important;
}
[data-pb-booking] .pb-d2-more,
[data-pb-booking] .pb-d2-select {
  font-size: 13px !important;
  padding: 9px 14px !important;
  white-space: nowrap !important;
  width: 100% !important;
}

/* Section head: no bottom padding gap that pushes list away */
[data-pb-booking] .pb-section-head {
  margin-bottom: 6px !important;
}
[data-pb-booking] .pb-section-head h2 {
  font-size: 26px !important;
  font-weight: 900 !important;
  margin: 0 0 4px !important;
  letter-spacing: -.03em !important;
}
[data-pb-booking] .pb-section-head p {
  margin: 0 0 8px !important;
  font-size: 14px !important;
  color: #64748b !important;
}

/* Back button: match target design pill style */
[data-pb-booking] .pb-step-back {
  margin-bottom: 12px !important;
}
[data-pb-booking] .pb-ghost-button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 7px 16px !important;
  border-radius: 999px !important;
  border: 1px solid #e2e8f0 !important;
  background: #fff !important;
  color: #374151 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
}
[data-pb-booking] .pb-ghost-button:hover {
  border-color: #047857 !important;
  color: #047857 !important;
}

/* Date + selected time row */
[data-pb-booking] .pb-schedule-grid {
  gap: 14px !important;
  margin-bottom: 14px !important;
}
[data-pb-booking] .pb-selected-box {
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px !important;
  padding: 12px 16px !important;
  background: #f8fafc !important;
}
[data-pb-booking] .pb-selected-box span {
  font-size: 12px !important;
  color: #94a3b8 !important;
  display: block !important;
  margin-bottom: 4px !important;
}
[data-pb-booking] .pb-selected-box strong {
  font-size: 15px !important;
  color: #0f172a !important;
}

/* Subhead "Välj personal" */
[data-pb-booking] .pb-subhead {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #374151 !important;
  margin-bottom: 8px !important;
}

/* Form fields polish */
[data-pb-booking] .pb-field label {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #374151 !important;
  margin-bottom: 6px !important;
}
[data-pb-booking] .pb-field input,
[data-pb-booking] .pb-field select,
[data-pb-booking] .pb-field textarea {
  border-radius: 10px !important;
  border: 1px solid #e2e8f0 !important;
  padding: 11px 14px !important;
  font-size: 14px !important;
  transition: border-color .15s !important;
}
[data-pb-booking] .pb-field input:focus,
[data-pb-booking] .pb-field select:focus,
[data-pb-booking] .pb-field textarea:focus {
  outline: none !important;
  border-color: #047857 !important;
  box-shadow: 0 0 0 3px rgba(4,120,87,.08) !important;
}

/* Confirm button */
[data-pb-booking] .pb-form .pb-button {
  background: #047857 !important;
  border-radius: 12px !important;
  padding: 12px 28px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

/* Mobile */
@media(max-width:640px){
  [data-pb-booking] .pb-d2-service-card {
    grid-template-columns: 1fr !important;
    grid-template-areas: "media" "content" "actions" !important;
    gap: 12px !important;
    padding: 14px !important;
  }
  [data-pb-booking] .pb-d2-service-card > .pb-d2-media,
  [data-pb-booking] .pb-d2-service-card > .pb-d2-icon {
    width: 100% !important;
    min-width: 0 !important;
    height: 130px !important;
  }
  [data-pb-booking] .pb-d2-service-card > .pb-d2-actions {
    width: 100% !important;
    max-width: 100% !important;
    flex-direction: row !important;
  }
}


/* =====================================================
   v1.3.7  FORM + INNER VIEWS — SPACING & BREATHING ROOM
   THIS BLOCK ONLY TOUCHES SPACING/TYPOGRAPHY, NO LOGIC.
   ===================================================== */

/* Booking card inner padding */
[data-pb-booking] .pb-booking-card {
  padding: 28px 32px !important;
}

/* Section spacing */
[data-pb-booking] .pb-booking-section {
  padding-top: 4px !important;
}

/* Headings inside sections */
[data-pb-booking] .pb-section-head {
  margin-bottom: 20px !important;
}
[data-pb-booking] .pb-section-head h2 {
  font-size: 28px !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: -.035em !important;
  color: #0f172a !important;
  margin: 0 0 6px !important;
}
[data-pb-booking] .pb-section-head p {
  color: #64748b !important;
  font-size: 14px !important;
  margin: 0 !important;
  line-height: 1.5 !important;
}

/* Back button */
[data-pb-booking] .pb-step-back {
  margin-bottom: 20px !important;
}
[data-pb-booking] .pb-ghost-button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 18px !important;
  border-radius: 999px !important;
  border: 1.5px solid #e2e8f0 !important;
  background: #fff !important;
  color: #475569 !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  cursor: pointer !important;
  transition: border-color .15s, color .15s !important;
}
[data-pb-booking] .pb-ghost-button:hover {
  border-color: #047857 !important;
  color: #047857 !important;
}

/* Form fields — more space between fields */
[data-pb-booking] .pb-form .pb-field,
[data-pb-booking] .pb-booking-section .pb-field {
  margin-bottom: 20px !important;
}
[data-pb-booking] .pb-form .pb-field label,
[data-pb-booking] .pb-booking-section .pb-field label {
  display: block !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  color: #374151 !important;
  margin-bottom: 8px !important;
  letter-spacing: .01em !important;
}
[data-pb-booking] .pb-form .pb-field input,
[data-pb-booking] .pb-form .pb-field select,
[data-pb-booking] .pb-form .pb-field textarea,
[data-pb-booking] .pb-booking-section .pb-field input,
[data-pb-booking] .pb-booking-section .pb-field select {
  display: block !important;
  width: 100% !important;
  padding: 12px 16px !important;
  font-size: 15px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #0f172a !important;
  box-sizing: border-box !important;
  transition: border-color .15s, box-shadow .15s !important;
  line-height: 1.4 !important;
}
[data-pb-booking] .pb-form .pb-field input:focus,
[data-pb-booking] .pb-form .pb-field select:focus,
[data-pb-booking] .pb-form .pb-field textarea:focus,
[data-pb-booking] .pb-booking-section .pb-field input:focus {
  outline: none !important;
  border-color: #047857 !important;
  box-shadow: 0 0 0 3px rgba(4,120,87,.10) !important;
}

/* pb-grid-2 inside form — gap between name/email columns */
[data-pb-booking] .pb-form .pb-grid-2 {
  gap: 16px !important;
  margin-bottom: 0 !important;
}

/* Hint text above submit */
[data-pb-booking] .pb-form .pb-muted {
  margin: 0 0 18px !important;
  font-size: 13px !important;
  color: #94a3b8 !important;
  line-height: 1.5 !important;
}

/* Submit button */
[data-pb-booking] .pb-form .pb-button {
  background: #047857 !important;
  border-radius: 12px !important;
  padding: 13px 32px !important;
  font-size: 15px !important;
  font-weight: 750 !important;
  letter-spacing: .01em !important;
  box-shadow: 0 4px 14px rgba(4,120,87,.25) !important;
  transition: opacity .15s, transform .15s !important;
}
[data-pb-booking] .pb-form .pb-button:hover {
  opacity: .9 !important;
  transform: translateY(-1px) !important;
}

/* Schedule view: date + selected-time row */
[data-pb-booking] .pb-schedule-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
  margin-bottom: 20px !important;
}
[data-pb-booking] .pb-selected-box {
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 12px !important;
  padding: 12px 16px !important;
  background: #f8fafc !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}
[data-pb-booking] .pb-selected-box > span {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #94a3b8 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  margin-bottom: 4px !important;
}
[data-pb-booking] .pb-selected-box > strong {
  font-size: 15px !important;
  color: #0f172a !important;
}

/* Staff chips — more padding and gap */
[data-pb-booking] .pb-provider-wrap {
  margin-bottom: 20px !important;
}
[data-pb-booking] .pb-subhead {
  font-size: 13px !important;
  font-weight: 750 !important;
  color: #374151 !important;
  letter-spacing: .02em !important;
  text-transform: uppercase !important;
  margin-bottom: 10px !important;
}
[data-pb-booking] .pb-provider-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
[data-pb-booking] .pb-provider-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 18px !important;
  border-radius: 999px !important;
  border: 1.5px solid #e2e8f0 !important;
  background: #fff !important;
  color: #374151 !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  cursor: pointer !important;
  transition: border-color .15s, background .15s !important;
}
[data-pb-booking] .pb-provider-chip.is-active {
  border-color: #047857 !important;
  background: #e8fbf5 !important;
  color: #065f46 !important;
}
[data-pb-booking] .pb-provider-chip img {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
}

/* Time slots */
[data-pb-booking] .pb-time-grid {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 4px !important;
}
[data-pb-booking] .pb-time {
  padding: 9px 18px !important;
  border-radius: 999px !important;
  border: 1.5px solid #e2e8f0 !important;
  background: #fff !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  color: #374151 !important;
  cursor: pointer !important;
  transition: border-color .15s, background .15s, color .15s !important;
}
[data-pb-booking] .pb-time:hover {
  border-color: #047857 !important;
  color: #047857 !important;
  background: #f0fdf8 !important;
}
[data-pb-booking] .pb-time.is-active {
  border-color: #047857 !important;
  background: #047857 !important;
  color: #fff !important;
}

/* Empty state messages */
[data-pb-booking] .pb-empty-state {
  padding: 20px !important;
  border: 1.5px dashed #e2e8f0 !important;
  border-radius: 14px !important;
  color: #94a3b8 !important;
  font-size: 14px !important;
  text-align: center !important;
  background: #fafafa !important;
}


/* =====================================================
   v1.3.8  FIX: TIME GRID PILLS + LABEL SPACING
   ===================================================== */

/* Time grid: 2-column compact grid, NOT full-width rows */
[data-pb-booking] .pb-time-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)) !important;
  gap: 8px !important;
  margin-top: 12px !important;
}

/* Time pill: compact, NOT full-width */
[data-pb-booking] .pb-time {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  text-align: center !important;
  padding: 9px 14px !important;
  border-radius: 999px !important;
  border: 1.5px solid #e2e8f0 !important;
  background: #fff !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  color: #374151 !important;
  cursor: pointer !important;
  transition: border-color .15s, background .15s, color .15s !important;
}
[data-pb-booking] .pb-time:hover {
  border-color: #047857 !important;
  color: #047857 !important;
  background: #f0fdf8 !important;
}
[data-pb-booking] .pb-time.is-active {
  border-color: #047857 !important;
  background: #047857 !important;
  color: #fff !important;
}

/* Field labels: top margin so they breathe from the element above */
[data-pb-booking] .pb-booking-section .pb-field,
[data-pb-booking] .pb-form .pb-field {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
}
[data-pb-booking] .pb-booking-section .pb-field label,
[data-pb-booking] .pb-form .pb-field label {
  display: block !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  color: #374151 !important;
  margin-bottom: 8px !important;
}

/* Schedule grid label spacing — "Datum" sits too close to the staff chip above */
[data-pb-booking] .pb-schedule-grid {
  margin-top: 6px !important;
  margin-bottom: 0 !important;
}

/* The pb-subhead "VÄLJ PERSONAL" gap from content above/below */
[data-pb-booking] .pb-subhead {
  margin-top: 4px !important;
  margin-bottom: 10px !important;
}
[data-pb-booking] .pb-provider-wrap {
  margin-bottom: 22px !important;
}


/* =====================================================
   v1.3.9  FIX: INNER CARD PADDING — ALL CONTENT BREATHES
   ===================================================== */

/* Inner white card: generous padding on all sides */
[data-pb-booking] .pb-booking-card {
  padding: 32px 36px !important;
  box-sizing: border-box !important;
}

/* Steps bar sits inside the card — give it bottom space */
[data-pb-booking] .pb-booking-card .pb-steps {
  margin-bottom: 24px !important;
}

/* Each section inside card: consistent top/bottom breathing */
[data-pb-booking] .pb-booking-section {
  padding: 24px 0 !important;
}
[data-pb-booking] .pb-booking-section:first-of-type {
  padding-top: 0 !important;
  border-top: 0 !important;
}

/* Section head spacing */
[data-pb-booking] .pb-section-head {
  margin-bottom: 22px !important;
}

/* Sidebar card: same treatment */
[data-pb-booking] .pb-booking-summary {
  padding: 24px 26px !important;
  box-sizing: border-box !important;
}

/* Mobile: tighter but still breathes */
@media(max-width: 640px) {
  [data-pb-booking] .pb-booking-card {
    padding: 20px 18px !important;
  }
  [data-pb-booking] .pb-booking-summary {
    padding: 18px 16px !important;
  }
}


/* v1.4.4 restore card balance: keep helper line, hide only custom descriptions from cards */
[data-pb-booking] .pb-d2-service-card {
  min-height: 148px !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}

[data-pb-booking] .pb-d2-media,
[data-pb-booking] .pb-d2-icon {
  height: 118px !important;
}

[data-pb-booking] .pb-d2-content {
  align-content: center !important;
  gap: 9px !important;
}

[data-pb-booking] .pb-d2-content h3 {
  font-weight: 850 !important;
  text-shadow: none !important;
}

[data-pb-booking] .pb-d2-content p {
  display: block !important;
  color: #64748b !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  text-shadow: none !important;
  margin: 0 !important;
}

[data-pb-booking] .pb-d2-meta span {
  font-weight: 850 !important;
  text-shadow: none !important;
}

[data-pb-booking] .pb-d2-more,
[data-pb-booking] .pb-d2-select {
  text-shadow: none !important;
}

@media (max-width: 1180px) {
  [data-pb-booking] .pb-d2-service-card {
    min-height: 150px !important;
  }
}

@media (max-width: 700px) {
  [data-pb-booking] .pb-d2-service-card {
    padding: 18px !important;
  }
  [data-pb-booking] .pb-d2-media,
  [data-pb-booking] .pb-d2-icon {
    height: 150px !important;
  }
}


/* v1.4.5 card chip polish: more air below helper text, larger clearer time/price chips */
[data-pb-booking] .pb-d2-content {
  gap: 10px !important;
}

[data-pb-booking] .pb-d2-content p {
  margin-bottom: 5px !important;
}

[data-pb-booking] .pb-d2-meta {
  margin-top: 4px !important;
  gap: 10px !important;
}

[data-pb-booking] .pb-d2-meta span {
  min-height: 30px !important;
  padding: 7px 14px !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
  letter-spacing: -0.01em !important;
}

@media (max-width: 700px) {
  [data-pb-booking] .pb-d2-meta {
    margin-top: 6px !important;
  }
  [data-pb-booking] .pb-d2-meta span {
    min-height: 32px !important;
    font-size: 14px !important;
  }
}


/* v1.4.7 proportional chip icons: restrained size, clearer icons, more air without oversized badges */
[data-pb-booking] .pb-d2-content {
  gap: 10px !important;
}

[data-pb-booking] .pb-d2-content p {
  margin-bottom: 8px !important;
}

[data-pb-booking] .pb-d2-meta {
  margin-top: 6px !important;
  gap: 8px !important;
  align-items: center !important;
}

[data-pb-booking] .pb-d2-meta span.pb-d2-chip,
[data-pb-booking] .pb-d2-meta span {
  min-height: 25px !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -0.01em !important;
}

[data-pb-booking] .pb-d2-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

[data-pb-booking] .pb-d2-chip-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 13px !important;
  min-width: 13px !important;
  height: 13px !important;
  border-radius: 999px !important;
  color: #047857 !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  opacity: 1 !important;
}

[data-pb-booking] .pb-d2-price-icon {
  width: 16px !important;
  min-width: 16px !important;
  height: 16px !important;
  background: rgba(4, 120, 87, .12) !important;
  font-size: 9px !important;
  letter-spacing: -.03em !important;
  text-transform: lowercase !important;
}

[data-pb-booking] .pb-d2-more {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
}

[data-pb-booking] .pb-d2-info-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  border-radius: 999px !important;
  border: 1.5px solid currentColor !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  opacity: .95 !important;
}

@media (max-width: 700px) {
  [data-pb-booking] .pb-d2-content p {
    margin-bottom: 7px !important;
  }
  [data-pb-booking] .pb-d2-meta {
    margin-top: 6px !important;
  }
}


/* v1.4.8 chip spacing and icon refinement */
[data-pb-booking] .pb-d2-content {
  gap: 12px !important;
}

[data-pb-booking] .pb-d2-content p {
  margin-bottom: 0 !important;
}

[data-pb-booking] .pb-d2-meta {
  margin-top: 14px !important;
  gap: 10px !important;
  align-items: center !important;
}

[data-pb-booking] .pb-d2-meta span.pb-d2-chip,
[data-pb-booking] .pb-d2-meta span {
  min-height: 28px !important;
  padding: 6px 14px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  letter-spacing: -0.01em !important;
}

[data-pb-booking] .pb-d2-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
}

[data-pb-booking] .pb-d2-chip-icon {
  color: #047857 !important;
  opacity: 1 !important;
}

[data-pb-booking] .pb-d2-chip-icon-svg {
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

[data-pb-booking] .pb-d2-chip-icon-svg svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  overflow: visible !important;
}

[data-pb-booking] .pb-d2-price-icon {
  background: transparent !important;
}

@media (max-width: 700px) {
  [data-pb-booking] .pb-d2-meta {
    margin-top: 12px !important;
    gap: 8px !important;
  }

  [data-pb-booking] .pb-d2-meta span.pb-d2-chip,
  [data-pb-booking] .pb-d2-meta span {
    font-size: 14px !important;
  }

  [data-pb-booking] .pb-d2-chip-icon-svg,
  [data-pb-booking] .pb-d2-chip-icon-svg svg {
    width: 17px !important;
    height: 17px !important;
  }
}


/* v1.4.9 badge selector fix: compact chips, icon close to text, air via row margin only */
[data-pb-booking] .pb-d2-content p {
  margin-bottom: 0 !important;
}

[data-pb-booking] .pb-d2-meta {
  margin-top: 18px !important;
  gap: 9px !important;
  align-items: center !important;
}

/* Only the direct chip spans are badges. Do NOT style nested icon spans as badges. */
[data-pb-booking] .pb-d2-meta > span.pb-d2-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  min-height: 25px !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  background: #e6f7f2 !important;
  color: #047857 !important;
  font-size: 14px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -0.01em !important;
  white-space: nowrap !important;
}

/* Reset broad old span rules from earlier versions on nested icon spans. */
[data-pb-booking] .pb-d2-meta > span.pb-d2-chip > span.pb-d2-chip-icon,
[data-pb-booking] .pb-d2-meta span.pb-d2-chip-icon,
[data-pb-booking] .pb-d2-meta span.pb-d2-chip-icon-svg,
[data-pb-booking] .pb-d2-meta span.pb-d2-price-icon {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  min-width: 16px !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #047857 !important;
  opacity: 1 !important;
  font-size: 0 !important;
  line-height: 1 !important;
  flex: 0 0 16px !important;
}

[data-pb-booking] .pb-d2-meta span.pb-d2-chip-icon-svg svg {
  width: 16px !important;
  height: 16px !important;
  display: block !important;
  overflow: visible !important;
  stroke-width: 2.25px !important;
}

[data-pb-booking] .pb-d2-meta > span.pb-d2-chip > span:not(.pb-d2-chip-icon) {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
  font: inherit !important;
  color: inherit !important;
}

@media (max-width: 700px) {
  [data-pb-booking] .pb-d2-meta {
    margin-top: 14px !important;
    gap: 8px !important;
  }
  [data-pb-booking] .pb-d2-meta > span.pb-d2-chip {
    font-size: 13px !important;
    padding: 5px 9px !important;
  }
}


/* v1.4.10 final badge spacing + wavy note polish
   Root fix: add air via row margin only, keep chip dimensions compact,
   and do not let nested icon spans inherit badge padding. */
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta,
[data-pb-booking] .pb-d2-meta {
  margin-top: 26px !important;
  gap: 8px !important;
  align-items: center !important;
}

[data-pb-booking] .pb-d2-meta > span.pb-d2-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  min-height: 26px !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  background: #e6f7f2 !important;
  color: #047857 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  white-space: nowrap !important;
}

[data-pb-booking] .pb-d2-meta > span.pb-d2-chip > span.pb-d2-chip-icon,
[data-pb-booking] .pb-d2-meta span.pb-d2-chip-icon,
[data-pb-booking] .pb-d2-meta span.pb-d2-chip-icon-svg,
[data-pb-booking] .pb-d2-meta span.pb-d2-price-icon {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: currentColor !important;
  opacity: 1 !important;
  font-size: 0 !important;
  line-height: 1 !important;
  flex: 0 0 18px !important;
}

[data-pb-booking] .pb-d2-meta span.pb-d2-chip-icon-svg svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  overflow: visible !important;
}

[data-pb-booking] .pb-d2-meta > span.pb-d2-chip > span:not(.pb-d2-chip-icon) {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
  font: inherit !important;
  color: inherit !important;
}

@media (max-width: 700px) {
  [data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta,
  [data-pb-booking] .pb-d2-meta {
    margin-top: 20px !important;
  }
}


/* v1.4.11 final badge air + flowing banknote icon */
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta {
  margin-top: 18px !important;
  gap: 8px !important;
}

/* Only style direct chip badges; do not inflate nested icon spans. */
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta > .pb-d2-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  min-height: 26px !important;
  padding: 5px 11px !important;
  border-radius: 999px !important;
  background: #e6f7f2 !important;
  color: #047857 !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

/* Reset icon spans so they are not treated as their own badges. */
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta > .pb-d2-chip > .pb-d2-chip-icon {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  min-width: 15px !important;
  width: 15px !important;
  height: 15px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: currentColor !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 15px !important;
  opacity: 1 !important;
}

[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta > .pb-d2-chip > .pb-d2-chip-icon svg {
  width: 15px !important;
  height: 15px !important;
  display: block !important;
  overflow: visible !important;
}

[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta > .pb-d2-chip > .pb-d2-price-icon,
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta > .pb-d2-chip > .pb-d2-price-icon svg {
  width: 17px !important;
  height: 17px !important;
  flex-basis: 17px !important;
}

@media (max-width: 700px) {
  [data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta {
    margin-top: 14px !important;
  }
}


/* Privly Booking v1.5.0: full dark-mode readability pass for service admin screens */
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-list .pb-admin-service-edit-card {
  background: #111827 !important;
  border-color: rgba(148, 163, 184, .26) !important;
  color: #f8fafc !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.32) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card .pb-admin-service-fields,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card .pb-field,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card .pb-check {
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card .pb-field label,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card .pb-muted,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card small,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card .pb-check {
  color: #cbd5e1 !important;
}

.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card input,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card select,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card textarea,
.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card input[type="file"] {
  background: #0b1222 !important;
  border-color: rgba(148, 163, 184, .36) !important;
  color: #f8fafc !important;
  color-scheme: dark !important;
}

.pb-panel[data-pb-theme="dark"] .pb-admin-service-edit-card option {
  background: #0b1222 !important;
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-admin-service-preview {
  background: linear-gradient(135deg, rgba(20,184,166,.18), rgba(16,185,129,.12)) !important;
  color: #5eead4 !important;
  border: 1px solid rgba(94,234,212,.18) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-service-check-card {
  background: #0f172a !important;
  border-color: rgba(148, 163, 184, .26) !important;
  color: #f8fafc !important;
  box-shadow: none !important;
}

.pb-panel[data-pb-theme="dark"] .pb-service-check-card:hover {
  border-color: rgba(45, 212, 191, .40) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-service-check-card:has(input:checked) {
  background: rgba(6, 78, 59, .42) !important;
  border-color: rgba(45, 212, 191, .45) !important;
  box-shadow: 0 0 0 3px rgba(45, 212, 191, .10) !important;
}

.pb-panel[data-pb-theme="dark"] .pb-service-check-card strong,
.pb-panel[data-pb-theme="dark"] .pb-service-check-card span,
.pb-panel[data-pb-theme="dark"] .pb-service-check-card label {
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-service-check-card small {
  color: #cbd5e1 !important;
}

.pb-panel[data-pb-theme="dark"] .pb-selective-link-card .pb-button-secondary,
.pb-panel[data-pb-theme="dark"] .pb-selective-link-card button:not(.pb-button) {
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] .pb-admin-help-card strong,
.pb-panel[data-pb-theme="dark"] .pb-services-admin-list h2,
.pb-panel[data-pb-theme="dark"] .pb-selective-link-card h2 {
  color: #f8fafc !important;
}

.pb-panel[data-pb-theme="dark"] input[type="file"]::file-selector-button {
  background: #1f2937 !important;
  color: #f8fafc !important;
  border: 1px solid rgba(148, 163, 184, .34) !important;
  border-radius: 8px !important;
}


/* Privly Booking v1.5.0: compact price/time badges with chosen flowing-note price icon */
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta {
  margin-top: 14px !important;
  gap: 8px !important;
}
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta > .pb-d2-chip {
  padding: 5px 11px !important;
  min-height: 27px !important;
  gap: 6px !important;
  font-size: 13px !important;
  line-height: 1 !important;
}
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta .pb-d2-chip-icon,
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta .pb-d2-chip-icon * {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta .pb-d2-chip-icon-svg,
[data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta .pb-d2-chip-icon-svg svg {
  width: 17px !important;
  height: 17px !important;
  min-width: 17px !important;
}


/* v1.5.8 CATEGORY SORTING + CUSTOMER PORTRAIT MOBILE HARD FIX */
.pb-category-sort-list {
  display: grid;
  gap: 12px;
}
.pb-category-sort-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 16px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  background: rgba(248,250,252,.75);
}
.pb-category-sort-row .pb-field {
  margin: 0;
}
.pb-category-sort-row small {
  display: block;
  margin-top: 2px;
}

@media (max-width: 900px) {
  html, body {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .pb-shell.pb-public.pb-booking-page,
  [data-pb-booking],
  body .pb-shell.pb-public.pb-booking-page[data-pb-booking] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  [data-pb-booking] .pb-booking-hero,
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero {
    min-height: 0 !important;
    height: auto !important;
    padding: 18px 16px 20px !important;
    border-radius: 0 0 20px 20px !important;
    overflow: hidden !important;
  }

  [data-pb-booking] .pb-booking-hero::before,
  [data-pb-booking] .pb-booking-hero::after,
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero::before,
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero::after {
    display: none !important;
    content: none !important;
  }

  [data-pb-booking] .pb-public-powered-badge,
  .pb-shell.pb-public.pb-booking-page .pb-public-powered-badge {
    position: static !important;
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 0 14px !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    box-sizing: border-box !important;
  }

  [data-pb-booking] .pb-customer-brand,
  .pb-shell.pb-public.pb-booking-page .pb-customer-brand {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    grid-template-areas: none !important;
    align-items: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  [data-pb-booking] .pb-customer-logo,
  .pb-shell.pb-public.pb-booking-page .pb-customer-logo {
    width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
    max-height: 72px !important;
    grid-area: auto !important;
    flex: 0 0 auto !important;
  }

  [data-pb-booking] .pb-eyebrow,
  .pb-shell.pb-public.pb-booking-page .pb-eyebrow {
    grid-area: auto !important;
    width: auto !important;
    max-width: 100% !important;
    font-size: 12px !important;
    padding: 6px 11px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
  }

  [data-pb-booking] .pb-booking-hero h1,
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero h1 {
    grid-area: auto !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(30px, 10vw, 44px) !important;
    line-height: 1.03 !important;
    letter-spacing: -0.045em !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }

  [data-pb-booking] .pb-booking-hero p,
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero p {
    grid-area: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }

  [data-pb-booking] .pb-booking-flow,
  .pb-shell.pb-public.pb-booking-page .pb-booking-flow {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 18px !important;
    padding: 18px 14px 24px !important;
    box-sizing: border-box !important;
  }

  [data-pb-booking] .pb-booking-main,
  [data-pb-booking] .pb-booking-side,
  [data-pb-booking] .pb-booking-card,
  [data-pb-booking] .pb-booking-section,
  .pb-shell.pb-public.pb-booking-page .pb-booking-main,
  .pb-shell.pb-public.pb-booking-page .pb-booking-side,
  .pb-shell.pb-public.pb-booking-page .pb-booking-card,
  .pb-shell.pb-public.pb-booking-page .pb-booking-section {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  [data-pb-booking] .pb-booking-side,
  .pb-shell.pb-public.pb-booking-page .pb-booking-side {
    order: 2 !important;
    position: static !important;
  }

  [data-pb-booking] .pb-summary-card,
  [data-pb-booking] .pb-booking-side .pb-card,
  .pb-shell.pb-public.pb-booking-page .pb-summary-card,
  .pb-shell.pb-public.pb-booking-page .pb-booking-side .pb-card {
    position: static !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 18px !important;
  }

  [data-pb-booking] .pb-steps,
  [data-pb-booking] .pb-steps.pb-steps-d2,
  .pb-shell.pb-public.pb-booking-page .pb-steps,
  .pb-shell.pb-public.pb-booking-page .pb-steps.pb-steps-d2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 6px !important;
    width: 100% !important;
    border-radius: 16px !important;
    padding: 6px !important;
  }

  [data-pb-booking] .pb-steps span,
  .pb-shell.pb-public.pb-booking-page .pb-steps span {
    width: 100% !important;
    justify-content: flex-start !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    white-space: normal !important;
  }

  [data-pb-booking] [data-service-list],
  [data-pb-booking] .pb-customer-service-list,
  [data-pb-booking] .pb-category-services,
  .pb-shell.pb-public.pb-booking-page [data-service-list],
  .pb-shell.pb-public.pb-booking-page .pb-customer-service-list,
  .pb-shell.pb-public.pb-booking-page .pb-category-services {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  [data-pb-booking] .pb-d2-service-card,
  [data-pb-booking] [data-service-list] > article,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card,
  .pb-shell.pb-public.pb-booking-page [data-service-list] > article {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    grid-template-areas: none !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 14px !important;
    border-radius: 18px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  [data-pb-booking] .pb-d2-service-card > .pb-d2-media,
  [data-pb-booking] .pb-d2-service-card > .pb-d2-icon,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-media,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-icon {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 150px !important;
    grid-area: auto !important;
    border-radius: 14px !important;
    flex: 0 0 auto !important;
  }

  [data-pb-booking] .pb-d2-service-card > .pb-d2-content,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-area: auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }

  [data-pb-booking] .pb-d2-service-card > .pb-d2-content h3,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-content h3 {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    font-size: 20px !important;
    line-height: 1.15 !important;
  }

  [data-pb-booking] .pb-d2-service-card > .pb-d2-content p,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-content p {
    display: block !important;
    -webkit-line-clamp: unset !important;
    overflow: visible !important;
  }

  [data-pb-booking] .pb-d2-service-card > .pb-d2-content .pb-d2-meta,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-content .pb-d2-meta {
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 10px !important;
  }

  [data-pb-booking] .pb-d2-service-card > .pb-d2-actions,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-actions {
    grid-area: auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  [data-pb-booking] .pb-d2-more,
  [data-pb-booking] .pb-d2-select,
  .pb-shell.pb-public.pb-booking-page .pb-d2-more,
  .pb-shell.pb-public.pb-booking-page .pb-d2-select {
    width: 100% !important;
    min-height: 44px !important;
    white-space: normal !important;
  }

  [data-pb-booking] .pb-grid,
  [data-pb-booking] .pb-grid-2,
  [data-pb-booking] .pb-grid-3,
  [data-pb-booking] .pb-grid-4,
  [data-pb-booking] .pb-date-provider-grid,
  [data-pb-booking] .pb-form-grid,
  .pb-shell.pb-public.pb-booking-page .pb-grid,
  .pb-shell.pb-public.pb-booking-page .pb-grid-2,
  .pb-shell.pb-public.pb-booking-page .pb-grid-3,
  .pb-shell.pb-public.pb-booking-page .pb-grid-4,
  .pb-shell.pb-public.pb-booking-page .pb-date-provider-grid,
  .pb-shell.pb-public.pb-booking-page .pb-form-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  [data-pb-booking] .pb-time-list,
  [data-pb-booking] [data-time-list],
  .pb-shell.pb-public.pb-booking-page .pb-time-list,
  .pb-shell.pb-public.pb-booking-page [data-time-list] {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  [data-pb-booking] input,
  [data-pb-booking] select,
  [data-pb-booking] textarea,
  [data-pb-booking] button,
  .pb-shell.pb-public.pb-booking-page input,
  .pb-shell.pb-public.pb-booking-page select,
  .pb-shell.pb-public.pb-booking-page textarea,
  .pb-shell.pb-public.pb-booking-page button {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 560px) {
  [data-pb-booking] .pb-booking-flow,
  .pb-shell.pb-public.pb-booking-page .pb-booking-flow {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  [data-pb-booking] .pb-booking-hero h1,
  .pb-shell.pb-public.pb-booking-page .pb-booking-hero h1 {
    font-size: clamp(28px, 11vw, 38px) !important;
  }

  [data-pb-booking] .pb-d2-service-card > .pb-d2-media,
  [data-pb-booking] .pb-d2-service-card > .pb-d2-icon,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-media,
  .pb-shell.pb-public.pb-booking-page .pb-d2-service-card > .pb-d2-icon {
    height: 132px !important;
  }

  .pb-category-sort-row {
    grid-template-columns: 1fr;
  }
}


/* v1.5.9 Privly Booking admin branding */
[data-pb-admin] .pb-sidebar {
  background:
    radial-gradient(circle at 10% 0%, rgba(25, 183, 238, .14), transparent 34%),
    linear-gradient(180deg, #081226 0%, #0f172a 58%, #101827 100%) !important;
  border-right: 1px solid rgba(148, 163, 184, .16) !important;
}

[data-pb-admin] .pb-privly-admin-brand {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 10px 14px !important;
  margin: -4px 0 6px !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

[data-pb-admin] .pb-privly-admin-brand-mark {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, #16e6f2 0%, #1175ff 100%) !important;
  box-shadow: 0 14px 34px rgba(15, 118, 255, .25) !important;
}

[data-pb-admin] .pb-privly-admin-brand-mark img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

[data-pb-admin] .pb-privly-admin-brand-copy {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
}

[data-pb-admin] .pb-privly-admin-brand-copy strong {
  color: #ffffff !important;
  font-size: 17px !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
  font-weight: 900 !important;
}

[data-pb-admin] .pb-privly-admin-brand-copy span {
  color: #93c5fd !important;
  font-size: 11.5px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  margin-top: 4px !important;
}

[data-pb-admin] .pb-theme-toggle {
  border-color: rgba(147, 197, 253, .18) !important;
  background: rgba(15, 23, 42, .55) !important;
  color: #dbeafe !important;
}

[data-pb-admin] .pb-nav.is-active {
  background: linear-gradient(135deg, rgba(45, 212, 191, .16), rgba(59, 130, 246, .13)) !important;
  box-shadow: inset 0 0 0 1px rgba(45, 212, 191, .16) !important;
}

@media (max-width: 760px) {
  [data-pb-admin] .pb-privly-admin-brand {
    margin-top: 4px !important;
  }
  [data-pb-admin] .pb-privly-admin-brand-mark {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    border-radius: 14px !important;
  }
}


/* v1.6.1 weekly lunch break controls */
.pb-week-row-lunch {
  align-items: center;
  gap: 14px;
}
.pb-week-lunch {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.pb-lunch-check {
  white-space: nowrap;
}
.pb-week-lunch-times {
  opacity: .96;
}
.pb-week-lunch-times input[type="time"] {
  min-width: 112px;
}
@media (max-width: 760px) {
  .pb-week-row-lunch {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .pb-week-lunch {
    align-items: flex-start;
  }
  .pb-week-lunch-times {
    width: 100%;
  }
}


/* v1.6.2 Lediga dagar & avvikelser */
.pb-exceptions-layout {
  align-items: start;
}
.pb-exception-list-card {
  min-height: 280px;
}
.pb-exception-list {
  display: grid;
  gap: 10px;
}
.pb-exception-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(248,250,252,.78);
}
.pb-exception-item strong,
.pb-exception-item span,
.pb-exception-item small {
  display: block;
}
.pb-exception-item span {
  margin-top: 3px;
  font-weight: 800;
  color: #0f766e;
}
.pb-exception-item small {
  margin-top: 2px;
  color: var(--privly-muted);
}
.pb-holiday-grid-compact {
  margin-top: 18px;
}
@media (max-width: 980px) {
  .pb-exceptions-layout {
    grid-template-columns: 1fr !important;
  }
}
.pb-panel[data-pb-theme="dark"] .pb-exception-item {
  background: rgba(15, 23, 42, .68) !important;
  border-color: rgba(148, 163, 184, .22) !important;
}
.pb-panel[data-pb-theme="dark"] .pb-exception-item span {
  color: #5eead4 !important;
}


/* v1.6.3 day-specific opening-hour overrides */
.pb-day-override-card {
  border-color: rgba(4, 120, 87, .16) !important;
}
.pb-exception-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.pb-exception-item form {
  margin: 0;
  flex: 0 0 auto;
}
.pb-button-small {
  padding: 7px 11px !important;
  min-height: 34px !important;
  font-size: 12px !important;
}
@media (max-width: 760px) {
  .pb-exception-item {
    align-items: stretch;
    flex-direction: column;
  }
  .pb-exception-item form,
  .pb-exception-item form button {
    width: 100%;
  }
}


/* v1.6.4 all-staff deviation list clarity */
.pb-exception-list-card .pb-exception-item span {
  display: block;
  font-weight: 800;
  color: var(--privly-text, #111827);
}
.pb-panel[data-pb-theme="dark"] .pb-exception-list-card .pb-exception-item span {
  color: #f8fafc !important;
}


/* v1.6.5 booking price/payment + revenue cards */
.pb-booking-price-block strong {
  color: #047857;
}
.pb-booking-price-block small {
  margin-top: 6px;
}
.pb-booking-payment-actions {
  margin-top: 10px;
}
.pb-revenue-cards .pb-metric strong,
.pb-revenue-cards .pb-metric b {
  letter-spacing: -0.03em;
}
.pb-panel[data-pb-theme="dark"] .pb-booking-price-block strong {
  color: #5eead4 !important;
}


/* v1.6.6 service description edit field */
.pb-admin-service-description-field textarea {
  min-height: 96px;
  resize: vertical;
}
.pb-panel[data-pb-theme="dark"] .pb-admin-service-description-field textarea {
  background: #0f172a !important;
  color: #f8fafc !important;
  border-color: rgba(148, 163, 184, .34) !important;
}


/* v1.6.8 cancellation policy visibility */
.pb-cancel-policy-notice {
  display: grid;
  gap: 4px;
  margin: 10px 0 14px;
  padding: 13px 14px;
  border: 1px solid rgba(4, 120, 87, .18);
  border-radius: 14px;
  background: #ecfdf5;
  color: #064e3b;
}
.pb-cancel-policy-notice strong {
  font-size: 14px;
  line-height: 1.2;
}
.pb-cancel-policy-notice span {
  font-size: 13px;
  line-height: 1.45;
}
.pb-trust-badge-cancel-policy {
  border-color: rgba(4, 120, 87, .18) !important;
}
.pb-panel[data-pb-theme="dark"] .pb-cancel-policy-notice,
.pb-shell .pb-cancel-policy-notice {
  box-sizing: border-box;
}


/* v1.6.9 editable cancellation policy text */
.pb-cancel-policy-template-field textarea {
  min-height: 104px;
  resize: vertical;
}
.pb-cancel-policy-template-field code {
  font-weight: 800;
  background: rgba(15, 23, 42, .06);
  border-radius: 6px;
  padding: 2px 5px;
}


/* v1.7.4 system status cron honesty + real admin version */
.pb-admin-version {
  margin-top: 18px;
  text-align: right;
  font-size: 12px;
  color: #94a3b8;
}
.pb-system-reminder-card .pb-button {
  max-width: 260px;
}


/* v1.7.5 reminder fallback status */
.pb-cron-help {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 14px;
  background: rgba(248, 250, 252, .74);
}
.pb-cron-help code {
  display: block;
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #0f172a;
  color: #e2e8f0;
  white-space: pre-wrap;
  word-break: break-word;
}
.pb-panel[data-pb-theme="dark"] .pb-cron-help {
  background: rgba(15, 23, 42, .72) !important;
  border-color: rgba(148, 163, 184, .24) !important;
}


/* v1.7.6 admin sidebar profile/navigation polish */
.pb-sidebar {
  display: flex;
  flex-direction: column;
}
.pb-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pb-sidebar-nav .pb-nav:nth-child(4),
.pb-sidebar-nav .pb-nav:nth-child(8) {
  margin-bottom: 14px;
}
.pb-sidebar-profile {
  margin-top: auto;
  padding: 14px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 18px;
  background: rgba(15, 23, 42, .28);
}
.pb-sidebar-profile-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.pb-sidebar-profile-avatar {
  width: 38px;
  height: 38px;
  border-radius: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(20, 184, 166, .16);
  color: #99f6e4;
  font-weight: 900;
}
.pb-sidebar-profile-head strong,
.pb-sidebar-profile-head small {
  display: block;
  line-height: 1.2;
}
.pb-sidebar-profile-head small {
  margin-top: 2px;
  color: rgba(226, 232, 240, .68);
  font-size: 12px;
}
.pb-sidebar-profile-status {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  color: rgba(226, 232, 240, .78);
  font-size: 13px;
}
.pb-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #34d399;
  box-shadow: 0 0 0 4px rgba(52, 211, 153, .14);
}
.pb-theme-toggle-compact {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 14px;
  font-size: 14px;
}
.pb-profile-logout {
  width: 100%;
  margin-top: 10px;
  min-height: 42px;
  border-radius: 14px;
}


/* v1.7.7 admin profile dropdown + version cleanup */
.pb-sidebar-profile {
  position: relative;
}
.pb-profile-trigger {
  width: 100%;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 18px;
  background: rgba(15, 23, 42, .28);
  color: inherit;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  cursor: pointer;
  text-align: left;
}
.pb-profile-trigger-copy {
  min-width: 0;
  flex: 1;
}
.pb-profile-trigger-copy strong,
.pb-profile-trigger-copy small {
  display: block;
  line-height: 1.2;
}
.pb-profile-trigger-copy small {
  margin-top: 2px;
  color: rgba(226, 232, 240, .68);
  font-size: 12px;
}
.pb-profile-trigger-caret {
  color: rgba(226, 232, 240, .72);
  font-size: 13px;
}
.pb-profile-dropdown {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 18px;
  background: rgba(15, 23, 42, .52);
  box-shadow: 0 20px 48px rgba(0,0,0,.22);
}
.pb-profile-dropdown-row {
  display: grid;
  gap: 2px;
  margin-bottom: 10px;
}
.pb-profile-muted {
  color: rgba(226, 232, 240, .62);
  font-size: 12px;
}
.pb-profile-menu-button {
  width: 100%;
  min-height: 40px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 13px;
  background: rgba(15, 23, 42, .35);
  color: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 800;
  cursor: pointer;
}
.pb-profile-menu-button + .pb-profile-menu-button {
  margin-top: 8px;
}
.pb-profile-notifications {
  margin: 10px 0;
  padding: 10px;
  border-radius: 14px;
  background: rgba(148, 163, 184, .08);
}
.pb-profile-actions {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 8px;
  margin-top: 8px;
}
.pb-sidebar-profile .pb-profile-logout {
  width: 100%;
  margin-top: 8px;
}


/* v1.7.8 profile menu opens upward as popover */
.pb-sidebar-profile {
  position: relative;
}
.pb-profile-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(100% + 10px);
  z-index: 30;
  margin-top: 0 !important;
  margin-bottom: 0;
  transform-origin: bottom center;
}
.pb-profile-dropdown[hidden] {
  display: none !important;
}
.pb-profile-dropdown:not([hidden]) {
  display: block;
}
.pb-profile-trigger[aria-expanded="true"] .pb-profile-trigger-caret {
  transform: rotate(180deg);
}
.pb-profile-trigger-caret {
  transition: transform .16s ease;
}
@media (max-width: 900px) {
  .pb-profile-dropdown {
    position: static;
    margin-top: 10px !important;
  }
}


/* v1.7.9 solid compact profile popover */
.pb-sidebar {
  overflow: visible !important;
}
.pb-sidebar-profile {
  z-index: 80;
}
.pb-profile-dropdown {
  background: #0f172a !important;
  color: #f8fafc !important;
  border: 1px solid rgba(148, 163, 184, .34) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.50) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 12px !important;
}
.pb-profile-dropdown-row {
  margin-bottom: 8px !important;
}
.pb-profile-dropdown-row strong {
  font-size: 18px !important;
  line-height: 1.15 !important;
}
.pb-profile-menu-button {
  min-height: 38px !important;
  border-radius: 12px !important;
  background: #111c31 !important;
}
.pb-profile-notifications {
  margin: 8px 0 !important;
  padding: 10px !important;
  background: #162238 !important;
}
.pb-profile-actions {
  grid-template-columns: 76px 1fr !important;
}
.pb-sidebar-profile-status {
  margin-bottom: 8px !important;
}
.pb-sidebar-profile .pb-profile-logout {
  min-height: 38px !important;
  margin-top: 8px !important;
}
.pb-panel[data-pb-theme="light"] .pb-profile-dropdown {
  background: #ffffff !important;
  color: #0f172a !important;
  border-color: rgba(15, 23, 42, .14) !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .22) !important;
}
.pb-panel[data-pb-theme="light"] .pb-profile-menu-button {
  background: #f8fafc !important;
  color: #0f172a !important;
}
.pb-panel[data-pb-theme="light"] .pb-profile-notifications {
  background: #f1f5f9 !important;
}
.pb-panel[data-pb-theme="light"] .pb-profile-muted,
.pb-panel[data-pb-theme="light"] .pb-sidebar-profile-status {
  color: #475569 !important;
}
