/* Colour roles only. Canonical values are emitted by psyguild_brand_colors(). */
:root {
  --pg-primary-light:color-mix(in srgb,var(--pg-primary) 35%,var(--pg-palette-white));
  --pg-primary-deep:var(--pg-palette-blue);
  --pg-secondary-deep:var(--pg-palette-blue-hover);
  --pg-highlight-mid-deep:var(--pg-palette-blue);
  --pg-action-stop:var(--pg-palette-blue);
  --pg-action-hover-stop:var(--pg-palette-blue-hover);
  --pg-action-text:var(--pg-palette-white);
  --pg-action-hover-text:var(--pg-palette-white);
  --pg-primary-contrast:var(--pg-action-text);
  --pg-primary-deep-text:var(--pg-palette-white);
  --pg-action-gradient:linear-gradient(130deg,var(--pg-palette-blue),var(--pg-palette-blue-deep));
  --pg-action-gradient-hover:linear-gradient(130deg,var(--pg-palette-blue-hover),var(--pg-palette-blue-deep));
  --pg-highlight-edge:color-mix(in srgb,var(--pg-secondary) 45%,var(--pg-palette-white));
  --pg-highlight-outline:linear-gradient(135deg,var(--pg-highlight-edge),var(--pg-primary));
  --pg-highlight-gradient:var(--pg-action-gradient) padding-box,var(--pg-highlight-outline) border-box;
  --pg-highlight-gradient-hover:var(--pg-action-gradient-hover) padding-box,var(--pg-highlight-outline) border-box;
  --pg-highlight-text:var(--pg-action-text);
  --pg-stage-primary:var(--pg-palette-dark-link);
  --pg-stage-secondary:var(--pg-palette-dark-link-hover);
  --pg-wordmark-gradient:linear-gradient(120deg,var(--pg-primary),var(--pg-palette-blue-deep) 78%);
  --pg-color-blue:var(--pg-primary);
  --pg-color-blue-strong:var(--pg-primary-deep);
  --pg-color-heal:var(--pg-secondary);
  --pg-color-heal-strong:var(--pg-secondary-deep);
  --pg-color-black:var(--pg-palette-dark-canvas);
  --pg-color-white:var(--pg-palette-white);
}

html body.wp-theme-psyguild-theme {
  color-scheme:light;
  --pg-bg:var(--pg-palette-canvas);
  --pg-color-page:var(--pg-bg);
  --pg-text:var(--pg-palette-ink);
  --pg-muted:var(--pg-palette-muted);
  --pg-color-text:var(--pg-text);
  --pg-color-muted:var(--pg-muted);
  --pg-dark:var(--pg-text);
  --pg-border:var(--pg-palette-line);
  --pg-border-strong:var(--pg-palette-line-strong);
  --pg-color-border:var(--pg-border);
  --pg-color-border-strong:var(--pg-border-strong);
  --pg-solid-section:var(--pg-palette-white);
  --pg-solid-block:var(--pg-palette-white);
  --pg-solid-header:var(--pg-palette-white);
  --pg-solid-footer:var(--pg-palette-white);
  --pg-bg-soft:var(--pg-palette-inset)!important;
  --pg-auth-surface:var(--pg-solid-block);
  --pg-link:var(--pg-palette-blue);
  --pg-link-hover:var(--pg-palette-blue-hover);
  --pg-interactive-accent:var(--pg-link);
  --pg-brand-ink:var(--pg-palette-dark-canvas);
  --pg-brand-stage:var(--pg-palette-dark-surface);
  --pg-brand-paper:var(--pg-palette-white);
  --pg-brand-line:var(--pg-border);
  --pg-header-shell:var(--pg-solid-header);
  --pg-header-shell-soft:var(--pg-bg-soft);
  --pg-header-text:var(--pg-text);
  --pg-header-text-strong:var(--pg-text);
  --pg-header-text-muted:var(--pg-muted);
  --pg-header-line:var(--pg-border);
  --pg-success:var(--pg-palette-success);
  --pg-success-bg:color-mix(in srgb,var(--pg-palette-green) 8%,var(--pg-palette-success-soft));
  --pg-warning:var(--pg-palette-warning);
  --pg-warning-bg:var(--pg-palette-warning-soft);
  --pg-error:var(--pg-palette-danger);
  --pg-error-bg:var(--pg-palette-danger-soft);
  --pg-info:var(--pg-link);
  --pg-info-bg:var(--pg-palette-soft-blue);
  --pg-focus:var(--pg-link);
  --pg-nav-idle-text:var(--pg-muted);
  --pg-nav-hover:var(--pg-info-bg);
  --pg-nav-hover-text:var(--pg-link-hover);
  --pg-nav-active:var(--pg-palette-blue);
  --pg-nav-active-hover:var(--pg-palette-blue-hover);
  --pg-nav-active-text:var(--pg-palette-white);
  --pg-disabled-text:var(--pg-muted);
  --pg-disabled-bg:var(--pg-bg-soft);
  --pg-brand-gradient:var(--pg-action-gradient);
  --pg-brand-gradient-hover:var(--pg-action-gradient-hover);
  --pg-gradient:var(--pg-action-gradient);
  --pg-gradient-hover:var(--pg-action-gradient-hover);
  --pg-shadow-soft:0 8px 28px color-mix(in srgb,var(--pg-brand-ink) 6%,transparent);
  --pg-shadow-strong:0 18px 50px color-mix(in srgb,var(--pg-brand-ink) 12%,transparent);
  background-color:var(--pg-bg)!important;
  color:var(--pg-text);
  accent-color:var(--pg-link);
}

html body.wp-theme-psyguild-theme.pg-theme-dark {
  color-scheme:dark;
  --pg-bg:var(--pg-palette-dark-canvas);
  --pg-text:var(--pg-palette-dark-text);
  --pg-muted:var(--pg-palette-dark-muted);
  --pg-border:var(--pg-palette-dark-line);
  --pg-border-strong:var(--pg-palette-dark-line-strong);
  --pg-solid-section:var(--pg-palette-dark-surface);
  --pg-solid-block:var(--pg-palette-dark-surface);
  --pg-solid-header:var(--pg-palette-dark-surface);
  --pg-solid-footer:var(--pg-palette-dark-surface);
  --pg-bg-soft:var(--pg-palette-dark-inset)!important;
  --pg-link:var(--pg-palette-dark-link);
  --pg-link-hover:var(--pg-palette-dark-link-hover);
  --pg-color-blue-strong:var(--pg-link);
  --pg-color-heal-strong:var(--pg-link-hover);
  --pg-wordmark-gradient:linear-gradient(120deg,var(--pg-link-hover),var(--pg-link) 78%);
  --pg-success:var(--pg-palette-dark-success);
  --pg-success-bg:var(--pg-palette-dark-success-soft);
  --pg-warning:var(--pg-palette-dark-warning);
  --pg-warning-bg:var(--pg-palette-dark-warning-soft);
  --pg-error:var(--pg-palette-dark-danger);
  --pg-error-bg:var(--pg-palette-dark-danger-soft);
  --pg-info-bg:var(--pg-bg-soft);
}

/* Shared controls: primary and secondary actions keep the same roles everywhere. */
html body.wp-theme-psyguild-theme :is(.pg-btn-primary,.pg-btn-dark,.pg-hero-btn-primary,.pg-sidebar-cta__btn,.pg-community-primary,.pg-channels-primary,.pg-publish-split__toggle,.pg-author-follow-btn,.psyguild-assessment-submit,.woocommerce a.button.alt,.woocommerce button.button.alt) {
  background:var(--pg-action-gradient)!important;
  border-color:var(--pg-palette-blue)!important;
  color:var(--pg-action-text)!important;
  -webkit-text-fill-color:currentColor!important;
  box-shadow:0 3px 10px color-mix(in srgb,var(--pg-primary) 14%,transparent)!important;
}
html body.wp-theme-psyguild-theme :is(.pg-btn-primary,.pg-btn-dark,.pg-hero-btn-primary,.pg-sidebar-cta__btn,.pg-community-primary,.pg-channels-primary,.pg-publish-split__toggle,.pg-author-follow-btn,.psyguild-assessment-submit,.woocommerce a.button.alt,.woocommerce button.button.alt):is(:hover,:focus-visible):not(:disabled):not([aria-disabled="true"]) {
  background:var(--pg-action-gradient-hover)!important;
  color:var(--pg-action-text)!important;
}
html body.wp-theme-psyguild-theme :is(.pg-btn-secondary,.pg-btn-outline,.pg-community-secondary) {
  background:var(--pg-block-bg)!important;
  color:var(--pg-link)!important;
  border-color:var(--pg-border-strong)!important;
  -webkit-text-fill-color:currentColor!important;
}
html body.wp-theme-psyguild-theme :is(.pg-btn-secondary,.pg-btn-outline,.pg-community-secondary):is(:hover,:focus-visible):not(:disabled):not([aria-disabled="true"]) {
  background:var(--pg-info-bg)!important;
  color:var(--pg-link-hover)!important;
  border-color:var(--pg-link)!important;
}
html body.wp-theme-psyguild-theme :is(.pg-btn-primary,.pg-btn-dark,.pg-hero-btn-primary,.pg-author-follow-btn,.pg-btn-secondary,.pg-btn-outline,.pg-community-secondary) :is(span,small,strong,em,i) {
  color:inherit!important;-webkit-text-fill-color:currentColor!important;
}
/* Keyboard, inputs and disabled states share visible, accessible colours. */
html body.wp-theme-psyguild-theme :is(a,button,input,select,textarea,summary,[tabindex]):not(:where(.wp-editor-wrap *,.mce-container *,.tox *,.pg-book-reader-active *)):focus-visible {
  outline:3px solid var(--pg-focus)!important;outline-offset:3px;
}
html body.wp-theme-psyguild-theme :is(input,textarea)::placeholder {color:var(--pg-muted);opacity:1;}
html body.wp-theme-psyguild-theme :is(input[type="text"],input[type="search"],input[type="email"],input[type="password"],input[type="url"],input[type="number"],input[type="tel"],select,textarea):not(:where(.wp-editor-wrap *,.mce-container *,.tox *,.wp-editor-area,.code)) {
  color:var(--pg-text);background-color:var(--pg-bg-soft);border-color:var(--pg-border-strong);
}
html body.wp-theme-psyguild-theme :is(input,select,textarea)[aria-invalid="true"] {border-color:var(--pg-error)!important;}
html body.wp-theme-psyguild-theme :is(button,input[type="submit"],input[type="button"],.pg-btn):is(:disabled,[aria-disabled="true"]) {
  background:var(--pg-disabled-bg)!important;color:var(--pg-disabled-text)!important;
  -webkit-text-fill-color:currentColor!important;border-color:var(--pg-border)!important;
  box-shadow:none!important;opacity:1!important;cursor:not-allowed;
}
html body.wp-theme-psyguild-theme :is(.pg-status-success,.pg-notice--success,.woocommerce-message) {color:var(--pg-success);background-color:var(--pg-success-bg);}
html body.wp-theme-psyguild-theme :is(.pg-status-error,.pg-notice--error,.woocommerce-error) {color:var(--pg-error);background-color:var(--pg-error-bg);}
html body.wp-theme-psyguild-theme :is(.pg-status-warning,.pg-notice--warning) {color:var(--pg-warning);background-color:var(--pg-warning-bg);}
html body.wp-theme-psyguild-theme ::selection {background:var(--pg-palette-blue);color:var(--pg-palette-white);}

/* Important colours in this layer take precedence over older per-page styles.
 * Keep the selectors limited to navigation controls and their labels. */
@layer psyguild-navigation-colors {
  body.wp-theme-psyguild-theme .pg-site-header :is(#pg-sidebar-toggle,#pg-search-toggle,#pg-search-close,.pg-chatgpt__button) {
    color:var(--pg-text)!important;
    background:var(--pg-header-bg)!important;
    border-color:var(--pg-border)!important;

    & > svg {color:inherit!important;}

    &:is(:hover,:focus-visible,[aria-expanded="true"]):not(:disabled) {
      color:var(--pg-nav-hover-text)!important;
      background:var(--pg-nav-hover)!important;
    }
  }

  body.wp-theme-psyguild-theme:not(.pg-book-reader-active) :is(
    .pg-author-tab,.pg-newsroom-tab,.pg-knowledge-tab-btn,.pg-hub-tab-btn,.pg-hub-category-btn,
    .pg-event-tab-btn,.pg-search-tab,.pg-system-tab,.pg-filter-btn,
    .pg-catalog-tabs > button,.pg-category-tabs > :is(a,button),.pg-filter-tabs > :is(a,button),
    .pg-tabs > :is(a,button),.pg-stream-tabs a,.pg-sub-nav a,.pg-studio-nav a,.pg-explore-nav a,.pg-social-nav a,
    .pg-portal-nav-item,.pg-sidebar-link,.pg-sidebar-menu a,.pg-personal-nav-sheet a,
    .pg-management-sheet nav a,.pg-header-account__links a,.pg-bottom-tab,
    .pg-personal-bottom-nav :is(a,button),.pg-site-header .sub-menu a,
    .woocommerce-MyAccount-navigation a,.woocommerce-tabs .tabs a,
    .psyguild-assessment-category-list button,.psyguild-assessment-pagination button,
    .psyguild-assessment-layout-switch button,.pg-channels-toolbar nav button,.pg-community-view
  ) {
    --pg-nav-control-bg:transparent;
    --pg-nav-control-text:var(--pg-nav-idle-text);
    background:var(--pg-nav-control-bg)!important;
    color:var(--pg-nav-control-text)!important;
    -webkit-text-fill-color:currentColor!important;
  }

  body.wp-theme-psyguild-theme:not(.pg-book-reader-active) :is(
    a.page-numbers,span.page-numbers.current,span.page-numbers.is-disabled,
    .pg-review-pagination .page-numbers :is(a,.current),.woocommerce-pagination :is(a,span.current),
    .pg-community-pagination a,.pg-stream-pagination a
  ) {
    --pg-nav-control-bg:var(--pg-block-bg);
    --pg-nav-control-text:var(--pg-link);
    background:var(--pg-nav-control-bg)!important;
    color:var(--pg-nav-control-text)!important;
    border-color:var(--pg-border)!important;
    -webkit-text-fill-color:currentColor!important;
  }

  body.wp-theme-psyguild-theme:not(.pg-book-reader-active) :is(
    .pg-author-tab,.pg-newsroom-tab,.pg-knowledge-tab-btn,.pg-hub-tab-btn,.pg-hub-category-btn,
    .pg-event-tab-btn,.pg-search-tab,.pg-system-tab,.pg-filter-btn,
    .pg-catalog-tabs > button,.pg-category-tabs > :is(a,button),.pg-filter-tabs > :is(a,button),
    .pg-tabs > :is(a,button),.pg-stream-tabs a,.pg-sub-nav a,.pg-studio-nav a,.pg-explore-nav a,.pg-social-nav a,
    .pg-portal-nav-item,.pg-sidebar-link,.pg-sidebar-menu a,.pg-personal-nav-sheet a,
    .pg-management-sheet nav a,.pg-header-account__links a,.pg-bottom-tab,
    .pg-personal-bottom-nav :is(a,button),.pg-site-header .sub-menu a,
    .woocommerce-MyAccount-navigation a,.woocommerce-tabs .tabs a,
    .psyguild-assessment-category-list button,.psyguild-assessment-pagination button,
    .psyguild-assessment-layout-switch button,.pg-channels-toolbar nav button,.pg-community-view,
    a.page-numbers,span.page-numbers.current,span.page-numbers.is-disabled,
    .pg-review-pagination .page-numbers :is(a,.current),.woocommerce-pagination :is(a,span.current),
    .pg-community-pagination a,.pg-stream-pagination a
  ) {
    &:is(:hover,:focus-visible):not(:disabled,[aria-disabled="true"],.is-disabled) {
      --pg-nav-control-bg:var(--pg-nav-hover);
      --pg-nav-control-text:var(--pg-nav-hover-text);
    }

    &:is(.is-active,.active,.is-current,.current,[aria-current="page"],[aria-current="true"],[aria-selected="true"],[aria-pressed="true"],[aria-expanded="true"]):not(:disabled,[aria-disabled="true"],.is-disabled),
    :is(.current-menu-item,.current_page_item,.woocommerce-MyAccount-navigation .is-active,.woocommerce-tabs .tabs .active) > &:not(:disabled,[aria-disabled="true"],.is-disabled) {
      --pg-nav-control-bg:var(--pg-nav-active);
      --pg-nav-control-text:var(--pg-nav-active-text);
      --pg-tab-focus:var(--pg-nav-active-text);
      color:var(--pg-nav-active-text)!important;
      border-color:transparent!important;
      box-shadow:none!important;

      &:is(:hover,:focus-visible):not(:disabled,[aria-disabled="true"],.is-disabled) {
        --pg-nav-control-bg:var(--pg-nav-active-hover);
        --pg-nav-control-text:var(--pg-nav-active-text);
      }
    }

    &:is(:disabled,[aria-disabled="true"],.is-disabled) {
      --pg-nav-control-bg:var(--pg-disabled-bg);
      --pg-nav-control-text:var(--pg-disabled-text);
      opacity:1!important;
    }

    & :is(span,small,strong,svg):not(.pg-tab-progress) {
      color:inherit!important;
      -webkit-text-fill-color:currentColor!important;
    }
  }

  /* The wheel uses a shared moving circle as the fill for the centered icon. */
  body.wp-theme-psyguild-theme .pg-route-wheel-ring {background:var(--pg-nav-active)!important;}
  body.wp-theme-psyguild-theme .pg-route-wheel-tab {color:var(--pg-nav-idle-text)!important;}
  body.wp-theme-psyguild-theme .pg-route-wheel-tab:is(.is-centered,.is-current,:hover,:focus-visible) {color:var(--pg-link)!important;}
  body.wp-theme-psyguild-theme .pg-route-wheel-tab.is-centered .pg-route-wheel-icon {color:var(--pg-nav-active-text)!important;}
  body.wp-theme-psyguild-theme .pg-route-wheel-tab.is-current:not(.is-centered) .pg-route-wheel-icon {color:var(--pg-link)!important;}
}
