/* Pestify foundation: client, provider, portal, admin, and authentication. */
@font-face { font-family: 'Manrope'; src: url('../fonts/Manrope-VariableFont_wght.ttf') format('truetype'); font-weight: 200 800; font-style: normal; font-display: swap; }
html.pestify-theme body {
    --primary: var(--pestify-primary); --primary-dark: var(--pestify-primary-dark); --primary-light: var(--pestify-primary-soft);
    --secondary: var(--pestify-indigo); --neutral-dark: var(--pestify-navy); --neutral-gray: var(--pestify-text-muted);
    --neutral-light: var(--pestify-border); --neutral-soft: var(--pestify-surface); --dark-color: var(--pestify-navy);
    --bg: var(--pestify-surface); --bg-color: var(--pestify-surface); --border: var(--pestify-border);
    --text-dark: var(--pestify-navy); --text-muted: var(--pestify-text-muted);
    --ui-primary: var(--pestify-primary); --ui-primary-dark: var(--pestify-primary-dark); --ui-secondary: var(--pestify-primary-light);
    --ui-ink: var(--pestify-navy); --ui-muted: var(--pestify-text-muted);
    --su-bg: var(--pestify-surface); --su-surface: var(--pestify-card); --su-surface-soft: var(--pestify-surface);
    --su-border: var(--pestify-border); --su-text: var(--pestify-navy); --su-muted: var(--pestify-text-muted);
    --su-primary: var(--pestify-primary); --su-primary-dark: var(--pestify-primary-dark);
    --su-success: var(--pestify-success); --su-warning: var(--pestify-warning); --su-danger: var(--pestify-danger);
    --su-radius: var(--pestify-radii-card); --su-gradient: linear-gradient(135deg,var(--pestify-primary),var(--pestify-primary-dark));
    --radius: var(--pestify-radii-control); --radius-md: var(--pestify-radii-card);
    --pro: var(--pestify-indigo); --pro2: var(--pestify-indigo); --green: var(--pestify-primary); --green2: var(--pestify-primary-light);
    --success: var(--pestify-success); --warning: var(--pestify-warning); --danger: var(--pestify-danger);
    background: var(--pestify-surface); font-family: var(--pestify-font-family) !important; color: var(--pestify-navy); font-size: var(--pestify-type-body);
}
html.pestify-theme :is(h1,h2,h3,h4,h5,h6,input,select,textarea,button) { font-family: var(--pestify-font-family) !important; }
html.pestify-theme :is(.logo-main,.workspace-brand strong) { font-family: var(--pestify-font-family); font-weight: 800; }
html.pestify-theme :is(.btn,.btn-primary,.btn-secondary,.btn-outline,.btn-login,.submit-btn,.save-btn) { font-family: var(--pestify-font-family) !important; border-radius: var(--pestify-radii-control) !important; font-weight: 700; }
html.pestify-theme :is(.btn-primary,.btn-login,.avatar-save-btn,.pgu-fab) { background: var(--pestify-primary) !important; border-color: var(--pestify-primary) !important; color: var(--pestify-on-primary) !important; }
html.pestify-theme :is(.btn-primary,.btn-login,.avatar-save-btn,.pgu-fab):hover { background: var(--pestify-primary-dark) !important; border-color: var(--pestify-primary-dark) !important; }
html.pestify-theme :is(.btn-secondary,.btn-outline) { background: var(--pestify-card) !important; border: 1px solid var(--pestify-border); color: var(--pestify-navy) !important; }
html.pestify-theme :is(.card,.section-card,.content-section,.request-card,.service-card,.provider-card,.stat-card,.login-right) { border-radius: var(--pestify-radii-card) !important; border-color: var(--pestify-border); }
html.pestify-theme :is(.card-header,.section-header) h2 { font-family: var(--pestify-font-family); }
html.pestify-theme input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']):not([type='hidden']):not([type='color']),
html.pestify-theme :is(select,textarea) { border-radius: var(--pestify-radii-control) !important; }
html.pestify-theme :is(input,select,textarea):focus-visible { outline: 2px solid var(--pestify-primary); outline-offset: 2px; }
html.pestify-theme :is(a,button):focus-visible { outline-color: var(--pestify-primary); }
html.pestify-theme body.seeker-unified { background: var(--pestify-surface); }

/* Status colors have the same meaning in every role and in BookingStatusChip. */
html.pestify-theme :is(.status-pending,.b-pending,.status-revising,.status-waiting_remaining_payment) { color: var(--pestify-warning); background: color-mix(in srgb,var(--pestify-warning) 10%,var(--pestify-card)); }
html.pestify-theme :is(.status-accepted,.b-info,.status-starting) { color: var(--pestify-info); background: color-mix(in srgb,var(--pestify-info) 10%,var(--pestify-card)); }
html.pestify-theme :is(.status-completed,.b-approved) { color: var(--pestify-success); background: color-mix(in srgb,var(--pestify-success) 10%,var(--pestify-card)); }
html.pestify-theme :is(.status-rejected,.b-rejected,.b-danger) { color: var(--pestify-danger); background: color-mix(in srgb,var(--pestify-danger) 10%,var(--pestify-card)); }
html.pestify-theme .status-cancelled { color: var(--pestify-text-muted); background: var(--pestify-surface-soft); }
html.pestify-theme :is(.si-green,.si-blue,.si-orange,.si-red,.si-purple) { border-radius: var(--pestify-radii-control); color: var(--pestify-on-primary); }
html.pestify-theme .si-green { background: var(--pestify-success); }
html.pestify-theme .si-blue { background: var(--pestify-info); }
html.pestify-theme .si-orange { background: var(--pestify-warning); }
html.pestify-theme .si-red { background: var(--pestify-danger); }
html.pestify-theme .si-purple { background: var(--pestify-indigo); }
