body.pb-theme-default {
    --pb-accent-rgb: 114, 81, 125;
    --pb-ambient-rgb: 196, 161, 119;
}

body.pb-theme-barbershop {
    --pb-bg: #edf1f5;
    --pb-bg-soft: #f8fafc;
    --pb-surface: #ffffff;
    --pb-surface-soft: #f1f5f9;
    --pb-text: #172230;
    --pb-muted: #627083;
    --pb-muted-strong: #435164;
    --pb-border: #dbe3ec;
    --pb-border-strong: #c5d0dc;
    --pb-accent: #285b8c;
    --pb-accent-strong: #1d466e;
    --pb-accent-soft: #deebf7;
    --pb-accent-rgb: 40, 91, 140;
    --pb-ambient-rgb: 96, 125, 155;
    --pb-radius-xl: 22px;
    --pb-radius-lg: 18px;
    background: radial-gradient(circle at 92% 0%, rgba(40, 91, 140, .13), transparent 28rem), linear-gradient(180deg, #f9fbfd, #edf1f5);
}

body.pb-theme-beauty-salon {
    --pb-bg: #fff4f6;
    --pb-bg-soft: #fffafb;
    --pb-surface: #ffffff;
    --pb-surface-soft: #fff7f9;
    --pb-text: #402630;
    --pb-muted: #806572;
    --pb-muted-strong: #664957;
    --pb-border: #f0dce3;
    --pb-border-strong: #e5c7d2;
    --pb-accent: #a84d70;
    --pb-accent-strong: #873754;
    --pb-accent-soft: #f8dfe8;
    --pb-accent-rgb: 168, 77, 112;
    --pb-ambient-rgb: 219, 153, 178;
    --pb-radius-xl: 32px;
    --pb-radius-lg: 25px;
    background: radial-gradient(circle at 88% 2%, rgba(185, 86, 124, .13), transparent 30rem), linear-gradient(180deg, #fffafb, #fff2f6);
}

body.pb-theme-medical {
    --pb-bg: #eef8f7;
    --pb-bg-soft: #f9fdfc;
    --pb-surface: #ffffff;
    --pb-surface-soft: #f2faf9;
    --pb-text: #183b39;
    --pb-muted: #607977;
    --pb-muted-strong: #3f615e;
    --pb-border: #d7e9e7;
    --pb-border-strong: #bddbd8;
    --pb-accent: #16766f;
    --pb-accent-strong: #0f5c57;
    --pb-accent-soft: #d9f1ee;
    --pb-accent-rgb: 22, 118, 111;
    --pb-ambient-rgb: 103, 181, 175;
    --pb-shadow: 0 22px 60px rgba(28, 89, 84, .08);
    background: radial-gradient(circle at 90% 0%, rgba(22, 118, 111, .11), transparent 30rem), linear-gradient(180deg, #fbfefd, #eef8f7);
}

body.pb-theme-car-wash {
    --pb-bg: #edf7fc;
    --pb-bg-soft: #f9fdff;
    --pb-surface: #ffffff;
    --pb-surface-soft: #f1f9fd;
    --pb-text: #153648;
    --pb-muted: #5b7584;
    --pb-muted-strong: #3c5b6b;
    --pb-border: #d4e7f1;
    --pb-border-strong: #b9d8e8;
    --pb-accent: #0879aa;
    --pb-accent-strong: #05618a;
    --pb-accent-soft: #d8f1fc;
    --pb-accent-rgb: 8, 121, 170;
    --pb-ambient-rgb: 69, 173, 214;
    --pb-radius-xl: 24px;
    background: radial-gradient(circle at 88% 0%, rgba(8, 121, 170, .15), transparent 28rem), linear-gradient(180deg, #fbfeff, #eaf6fc);
}

body.pb-theme-coach {
    --pb-bg: #f4f6ea;
    --pb-bg-soft: #fbfcf7;
    --pb-surface: #ffffff;
    --pb-surface-soft: #f7f9f0;
    --pb-text: #30391d;
    --pb-muted: #70795d;
    --pb-muted-strong: #525d3a;
    --pb-border: #e1e6d0;
    --pb-border-strong: #cfd7b7;
    --pb-accent: #687c27;
    --pb-accent-strong: #50631a;
    --pb-accent-soft: #edf2d6;
    --pb-accent-rgb: 104, 124, 39;
    --pb-ambient-rgb: 166, 180, 110;
    background: radial-gradient(circle at 90% 0%, rgba(104, 124, 39, .14), transparent 29rem), linear-gradient(180deg, #fbfcf7, #f2f5e7);
}

body.pb-theme-consultant {
    --pb-bg: #f4f2f8;
    --pb-bg-soft: #fbfafc;
    --pb-surface: #ffffff;
    --pb-surface-soft: #f7f5fa;
    --pb-text: #383149;
    --pb-muted: #756d82;
    --pb-muted-strong: #585064;
    --pb-border: #e4dfec;
    --pb-border-strong: #d2c9df;
    --pb-accent: #69588f;
    --pb-accent-strong: #514273;
    --pb-accent-soft: #e9e3f4;
    --pb-accent-rgb: 105, 88, 143;
    --pb-ambient-rgb: 151, 132, 190;
    --pb-shadow: 0 24px 66px rgba(71, 57, 96, .08);
    background: radial-gradient(circle at 90% 0%, rgba(105, 88, 143, .12), transparent 30rem), linear-gradient(180deg, #fbfafc, #f2f0f7);
}

body[class*="pb-theme-"] {
    --pb-accent-contrast: #ffffff;
    --pb-theme-border: rgba(var(--pb-accent-rgb), .18);
    --pb-theme-border-strong: rgba(var(--pb-accent-rgb), .42);
    --pb-theme-tint: rgba(var(--pb-accent-rgb), .08);
    --pb-theme-tint-strong: rgba(var(--pb-accent-rgb), .13);
    --pb-theme-ring: rgba(var(--pb-accent-rgb), .12);
    --pb-theme-ring-strong: rgba(var(--pb-accent-rgb), .32);
    --pb-theme-shadow: rgba(var(--pb-accent-rgb), .22);
    --pb-theme-shadow-strong: rgba(var(--pb-accent-rgb), .28);
}

body[class*="pb-theme-"]::before {
    background: radial-gradient(circle, rgba(var(--pb-accent-rgb), .2), transparent 68%);
}

body[class*="pb-theme-"]::after {
    background: radial-gradient(circle, rgba(var(--pb-ambient-rgb), .18), transparent 69%);
}

body[class*="pb-theme-"] ::selection,
body[class*="pb-theme-"]::selection {
    color: var(--pb-text);
    background: rgba(var(--pb-accent-rgb), .2);
}

body[class*="pb-theme-"] .pb-primary-action,
body[class*="pb-theme-"] a.pb-primary-action:visited {
    border-color: var(--pb-accent-strong);
    color: var(--pb-accent-contrast) !important;
    background: linear-gradient(135deg, var(--pb-accent) 0%, var(--pb-accent-strong) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .2),
        0 14px 30px var(--pb-theme-shadow);
}

body[class*="pb-theme-"] .pb-primary-action:hover,
body[class*="pb-theme-"] a.pb-primary-action:visited:hover {
    border-color: var(--pb-accent-strong);
    color: var(--pb-accent-contrast) !important;
    background: linear-gradient(135deg, var(--pb-accent-strong) 0%, var(--pb-accent) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .24),
        0 18px 38px var(--pb-theme-shadow-strong);
}

body[class*="pb-theme-"] .pb-primary-action:focus-visible {
    outline: 3px solid var(--pb-theme-ring-strong);
    outline-offset: 3px;
}

body[class*="pb-theme-"] .pb-primary-action:disabled,
body[class*="pb-theme-"] .pb-primary-action[aria-disabled="true"] {
    border-color: var(--pb-border);
    color: var(--pb-muted) !important;
    background: var(--pb-surface-soft);
    box-shadow: none;
    cursor: not-allowed;
    opacity: .72;
}

body[class*="pb-theme-"] .pb-secondary-button:hover,
body[class*="pb-theme-"] .pb-business-contact a:hover,
body[class*="pb-theme-"] .pb-contact-button:hover,
body[class*="pb-theme-"] .pb-back-link:hover,
body[class*="pb-theme-"] .pb-about-button:hover,
body[class*="pb-theme-"] .booking-management-page .ui-button:hover {
    border-color: var(--pb-theme-border-strong);
    color: var(--pb-accent-strong);
    background: var(--pb-accent-soft);
}

body[class*="pb-theme-"] .pb-copy-button {
    border-color: var(--pb-theme-border);
    color: var(--pb-accent-strong);
    background: var(--pb-accent-soft);
}

body[class*="pb-theme-"] .pb-text-link {
    color: var(--pb-accent-strong);
    text-decoration-color: var(--pb-theme-border-strong);
}

body[class*="pb-theme-"] .pb-business-logo,
body[class*="pb-theme-"] .pb-business-modal__logo {
    border-color: var(--pb-theme-border);
}

body[class*="pb-theme-"] .pb-business-logo--fallback {
    color: var(--pb-accent-strong);
    background: linear-gradient(145deg, rgba(255, 255, 255, .8), var(--pb-theme-tint-strong));
}

body[class*="pb-theme-"] .pb-count-badge,
body[class*="pb-theme-"] .pb-date-summary,
body[class*="pb-theme-"] .pb-status-badge {
    border-color: var(--pb-theme-border);
    color: var(--pb-accent-strong);
    background: var(--pb-accent-soft);
}

body[class*="pb-theme-"] .pb-progress .is-active {
    border-color: var(--pb-theme-border);
    color: var(--pb-accent-strong);
    background: var(--pb-accent-soft);
}

body[class*="pb-theme-"] .pb-progress .is-active b {
    color: var(--pb-accent-contrast);
    background: var(--pb-accent-strong);
}

body[class*="pb-theme-"] .pb-date-card.is-selected,
body[class*="pb-theme-"] .pb-time-input:checked + .pb-time-chip,
body[class*="pb-theme-"] .pb-provider-card:has(input:checked) {
    border-color: var(--pb-theme-border-strong);
    color: var(--pb-accent-strong);
    background: linear-gradient(145deg, rgba(255, 255, 255, .74), var(--pb-theme-tint-strong));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .72),
        0 0 0 3px var(--pb-theme-ring);
}

body[class*="pb-theme-"] .pb-date-card:hover:not(.is-disabled),
body[class*="pb-theme-"] .pb-time-chip:hover,
body[class*="pb-theme-"] .pb-provider-card:hover,
body[class*="pb-theme-"] .pb-service-card:hover,
body[class*="pb-theme-"] .pb-service-card:focus-within {
    border-color: var(--pb-theme-border-strong);
}

body[class*="pb-theme-"] .pb-form-field input,
body[class*="pb-theme-"] .pb-form-field textarea,
body[class*="pb-theme-"] .booking-management-page .bm-form-control,
body[class*="pb-theme-"] .booking-management-page .up-form-control {
    caret-color: var(--pb-accent-strong);
}

body[class*="pb-theme-"] .pb-form-field input:focus,
body[class*="pb-theme-"] .pb-form-field textarea:focus,
body[class*="pb-theme-"] .booking-management-page .bm-form-control:focus,
body[class*="pb-theme-"] .booking-management-page .up-form-control:focus,
body[class*="pb-theme-"] .booking-management-page .bm-select-shell:focus-within .bm-time-select {
    border-color: var(--pb-theme-border-strong);
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 0 0 4px var(--pb-theme-ring);
}

body[class*="pb-theme-"] input[type="radio"],
body[class*="pb-theme-"] input[type="checkbox"] {
    accent-color: var(--pb-accent-strong);
}

body[class*="pb-theme-"] .pb-payment-card {
    border-color: var(--pb-theme-border);
    background: linear-gradient(145deg, rgba(255, 255, 255, .58), var(--pb-theme-tint));
}

body[class*="pb-theme-"] .pb-payment-summary .is-total {
    border-color: var(--pb-theme-border);
    background: var(--pb-accent-soft);
}

body[class*="pb-theme-"] .pb-empty-state__icon {
    border-color: var(--pb-theme-border);
    color: var(--pb-accent-strong);
    background: linear-gradient(145deg, rgba(255, 255, 255, .72), var(--pb-theme-tint));
}

body[class*="pb-theme-"] .pb-business-modal__topbar {
    color: var(--pb-accent-contrast);
    background: linear-gradient(135deg, var(--pb-accent-strong) 0%, var(--pb-accent) 100%);
    box-shadow: 0 10px 28px var(--pb-theme-shadow);
}

body[class*="pb-theme-"] .pb-business-modal__topbar-title span {
    color: rgba(255, 255, 255, .72);
}

body[class*="pb-theme-"] .pb-business-modal__services li::before {
    background: var(--pb-accent);
    box-shadow: 0 0 0 4px var(--pb-theme-ring);
}

body[class*="pb-theme-"] .pb-business-modal__contact a {
    border-color: var(--pb-theme-border);
    color: var(--pb-accent-strong);
    background: var(--pb-theme-tint);
}

body[class*="pb-theme-"] .pb-business-modal__contact a:hover {
    border-color: var(--pb-theme-border-strong);
    background: var(--pb-theme-tint-strong);
}

body[class*="pb-theme-"] .pb-business-modal__scroll {
    scrollbar-color: var(--pb-theme-border-strong) var(--pb-theme-tint);
}

body[class*="pb-theme-"] .pb-business-modal__scroll::-webkit-scrollbar-track {
    background: var(--pb-theme-tint);
}

body[class*="pb-theme-"] .pb-business-modal__scroll::-webkit-scrollbar-thumb {
    background: var(--pb-theme-border-strong);
    background-clip: padding-box;
}

body[class*="pb-theme-"] .booking-management-page .bm-notice--info {
    border-color: var(--pb-theme-border);
    background: linear-gradient(145deg, rgba(255, 255, 255, .54), var(--pb-theme-tint));
}

body[class*="pb-theme-"] .booking-management-page .bm-request-sent-timeline span {
    border-color: var(--pb-theme-border);
    color: var(--pb-accent-strong);
    background: linear-gradient(145deg, rgba(255, 255, 255, .72), var(--pb-theme-tint-strong));
}

body[class*="pb-theme-"] .booking-management-page .ui-date-picker__trigger.ui-button:focus-visible,
body[class*="pb-theme-"] .pb-service-card__link:focus-visible,
body[class*="pb-theme-"] .pb-business-logo-link:focus-visible,
body[class*="pb-theme-"] .pb-business-title-link:focus-visible,
body[class*="pb-theme-"] .pb-business-home-link:focus-visible,
body[class*="pb-theme-"] :where(a, button, input, textarea, select, label):focus-visible {
    outline: 3px solid var(--pb-theme-ring-strong);
    outline-offset: 3px;
}

body.pb-theme-barbershop .pb-business-logo,
body.pb-theme-car-wash .pb-business-logo {
    border-radius: 18px;
}

body.pb-theme-beauty-salon .pb-business-logo {
    border-radius: 28px;
}

body.pb-theme-medical .pb-content-card,
body.pb-theme-medical .pb-business-header {
    box-shadow: 0 18px 48px rgba(28, 89, 84, .07);
}

body.pb-theme-coach .pb-service-card:hover,
body.pb-theme-car-wash .pb-service-card:hover {
    transform: translateY(-2px);
}

body[class*="pb-theme-"] .pb-primary-action,
body[class*="pb-theme-"] .pb-secondary-button,
body[class*="pb-theme-"] .pb-service-card,
body[class*="pb-theme-"] .pb-date-card,
body[class*="pb-theme-"] .pb-time-chip,
body[class*="pb-theme-"] .pb-provider-card,
body[class*="pb-theme-"] .pb-content-card,
body[class*="pb-theme-"] .pb-business-header,
body[class*="pb-theme-"] .pb-summary-card,
body[class*="pb-theme-"] .pb-result-card {
    transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
    body[class*="pb-theme-"] .pb-service-card:hover,
    body[class*="pb-theme-"] .pb-service-card:focus-within {
        border-color: var(--pb-theme-border-strong);
        box-shadow: var(--pb-shadow-float, var(--pb-shadow));
    }
}

@media (prefers-reduced-motion: reduce) {
    body[class*="pb-theme-"] .pb-primary-action,
    body[class*="pb-theme-"] .pb-secondary-button,
    body[class*="pb-theme-"] .pb-service-card,
    body[class*="pb-theme-"] .pb-date-card,
    body[class*="pb-theme-"] .pb-time-chip,
    body[class*="pb-theme-"] .pb-provider-card,
    body[class*="pb-theme-"] .pb-content-card,
    body[class*="pb-theme-"] .pb-business-header,
    body[class*="pb-theme-"] .pb-summary-card,
    body[class*="pb-theme-"] .pb-result-card {
        transition: none;
    }
}
