/*
 * WDS Booking Manager — design tokens (dev.307)
 * Single source of truth for the Welldone Society brand across customer, staff and admin UI.
 * Only custom properties are declared on :root (prefixed --wdsbm-*), so nothing here styles the
 * theme or other plugins. Components consume these tokens inside WDS containers only.
 */
:root {
  /* Brand palette */
  --wdsbm-ink: #111111;
  --wdsbm-ink-hover: #2b2b2b;
  --wdsbm-on-ink: #ffffff;
  --wdsbm-surface: #ffffff;
  --wdsbm-surface-alt: #faf8f5;
  --wdsbm-surface-sunken: #f3f0eb;
  --wdsbm-border: #e8e3dc;
  --wdsbm-border-strong: #d4cdc3;
  --wdsbm-text: #111111;
  --wdsbm-text-muted: #706b66;
  --wdsbm-text-subtle: #8b857e;
  --wdsbm-accent: #9a6420;
  --wdsbm-accent-bright: #b77a28;
  --wdsbm-accent-soft: #f7efe3;
  --wdsbm-accent-line: #e9d5b7;

  /* Semantic states (muted, on-brand; never default WP blue/purple) */
  --wdsbm-success: #2e6338;
  --wdsbm-success-soft: #eef5ee;
  --wdsbm-success-line: #cde0cf;
  --wdsbm-warning: #85560f;
  --wdsbm-warning-soft: #fbf4e6;
  --wdsbm-warning-line: #ecd8b0;
  --wdsbm-danger: #9a2d2d;
  --wdsbm-danger-soft: #fbf1f1;
  --wdsbm-danger-line: #ebcaca;
  --wdsbm-info: #44494f;
  --wdsbm-info-soft: #f2f1ef;
  --wdsbm-info-line: #dedad4;

  /* Calendar event language: type = colour, status = pattern + label (never colour alone) */
  --wdsbm-ev-public: #111111;
  --wdsbm-ev-public-soft: #f1efec;
  --wdsbm-ev-private: #b77a28;
  --wdsbm-ev-private-soft: #f8f0e4;
  --wdsbm-ev-blocked: #8b857e;
  --wdsbm-ev-blocked-soft: #f1eeea;

  /* Shape */
  --wdsbm-radius-xs: 6px;
  --wdsbm-radius-sm: 8px;
  --wdsbm-radius: 12px;
  --wdsbm-radius-lg: 16px;
  --wdsbm-radius-xl: 22px;
  --wdsbm-radius-pill: 999px;

  /* Spacing (4px base) */
  --wdsbm-space-1: 4px;
  --wdsbm-space-2: 8px;
  --wdsbm-space-3: 12px;
  --wdsbm-space-4: 16px;
  --wdsbm-space-5: 20px;
  --wdsbm-space-6: 24px;
  --wdsbm-space-8: 32px;
  --wdsbm-space-10: 40px;
  --wdsbm-space-12: 48px;

  /* Typography — families inherit the theme; only scale/weight are set */
  --wdsbm-fs-2xs: 11px;
  --wdsbm-fs-xs: 12px;
  --wdsbm-fs-sm: 13px;
  --wdsbm-fs-base: 15px;
  --wdsbm-fs-md: 16px;
  --wdsbm-fs-lg: 18px;
  --wdsbm-fs-xl: 22px;
  --wdsbm-fs-2xl: clamp(24px, 2.2vw + 14px, 30px);
  --wdsbm-fs-3xl: clamp(28px, 2.6vw + 16px, 38px);
  --wdsbm-fw-regular: 400;
  --wdsbm-fw-medium: 500;
  --wdsbm-fw-semibold: 600;
  --wdsbm-fw-bold: 700;
  --wdsbm-lh-tight: 1.2;
  --wdsbm-lh-snug: 1.35;
  --wdsbm-lh: 1.55;
  --wdsbm-tracking-caps: .14em;

  /* Controls */
  --wdsbm-control-h: 44px;
  --wdsbm-control-h-sm: 36px;
  --wdsbm-control-px: 16px;

  /* Elevation */
  --wdsbm-shadow-xs: 0 1px 2px rgba(17, 17, 17, .05);
  --wdsbm-shadow-sm: 0 2px 8px rgba(17, 17, 17, .05);
  --wdsbm-shadow: 0 8px 24px rgba(17, 17, 17, .07);
  --wdsbm-shadow-lg: 0 24px 60px rgba(17, 17, 17, .16);

  /* Focus & motion */
  --wdsbm-focus-color: #111111;
  --wdsbm-focus-ring: 0 0 0 2px #ffffff, 0 0 0 4px #111111;
  --wdsbm-ease: cubic-bezier(.2, .7, .2, 1);
  --wdsbm-duration: .16s;

  /* Layering */
  --wdsbm-z-sticky: 20;
  --wdsbm-z-dropdown: 1000;
  --wdsbm-z-modal: 100000;

  /* Legacy aliases (dev.119–dev.248 stylesheets read --wds-*); kept so older rules follow the brand. */
  --wds-bg: var(--wdsbm-surface-alt);
  --wds-surface: var(--wdsbm-surface);
  --wds-surface-soft: var(--wdsbm-surface-alt);
  --wds-black: var(--wdsbm-ink);
  --wds-text: var(--wdsbm-text);
  --wds-muted: var(--wdsbm-text-muted);
  --wds-border: var(--wdsbm-border);
  --wds-success: var(--wdsbm-success);
  --wds-success-bg: var(--wdsbm-success-soft);
  --wds-danger: var(--wdsbm-danger);
  --wds-danger-bg: var(--wdsbm-danger-soft);
  --wds-button-height: var(--wdsbm-control-h);
  --wds-button-radius: var(--wdsbm-radius-sm);
  --wds-button-pad: var(--wdsbm-control-px);
  --wds-button-font: var(--wdsbm-fs-sm);
}

@media (max-width: 520px) {
  :root {
    --wdsbm-control-h: 44px;
    --wdsbm-control-px: 14px;
  }
}
