/**
 * Primary action buttons — cyan gradient app-wide.
 * Loaded last in base.html and base_dashboard.html so page CSS cannot revert to green.
 */
:root {
  --btn-primary-bg: linear-gradient(180deg, #bcfcff 0%, #5bc9c4 100%);
  --btn-primary-bg-hover: linear-gradient(180deg, #a8f0f4 0%, #4ab8b3 100%);
  --btn-primary-border: #5bc9c4;
  --btn-primary-border-hover: #4ab8b3;
  --btn-action-radius: var(--radius-md, 18px);
  --btn-pill-radius: var(--radius-pill, 999px);
}

/* ── Primary filled controls (explicit + pattern matches) ── */
body :is(
  .btn-primary,
  a.btn-primary,
  button.btn-primary,
  input.btn-primary,
  form button[type="submit"]:not(.btn-secondary):not(.btn-danger):not(.btn-outline-secondary):not(.btn-outline-primary),
  .bv-btn--primary,
  .dashboard-card-content .bv-btn--primary,
  .login-form__submit,
  .auth-flow-page .login-form__submit,
  .auth-flow-page .onboarding-card__cta,
  .auth-guest-cta__btn,
  .billing-btn--primary,
  a.billing-btn--primary,
  button.billing-btn--primary,
  .pf-header__journey,
  .user-profile-rank-journey__btn,
  .dashboard-card-nav-guest-auth--primary,
  .guest-feature-teaser__streak-btn,
  .learn-onboarding__btn,
  .trial-phone-card__btn,
  .guest-gamification-preview__btn,
  .dh-continue__cta,
  .dh-action__cta,
  .next-best-action__cta,
  .ao-handoff__btn--primary,
  .ao-survival-card__cta,
  .ao-empty-cta,
  .pco-empty__cta,
  .asub-card__cta,
  .study-coach-card__cta,
  .academy-subjects .asub-pill--open,
  button.asub-pill--open,
  a.asub-pill--open,
  .survival-hub-page .sv-resume__btn,
  .survival-hub-page .sv-start-form__btn,
  .sa-setup-page .sa-submit-btn,
  .sa-setup-page .sa-review__actions .btn-primary,
  .notes-page .np-toolbar__btn,
  .notes-page .notes-row__open,
  .account-page .am-btn--primary,
  .feedback-page .fb-btn--primary,
  .quick-answers-page .qa-toolbar__btn,
  .hub-quick-actions__card--primary,
  .sp-tool--primary,
  .subject-performances__cta,
  .sq-question-card__cta,
  .explorer-performance-view-questions-btn,
  #explorer-performance-modal .explorer-performance-view-questions-btn,
  .search-controls-card .btn-primary,
  .search-results-section .btn-primary,
  .search-by-id-form .btn-primary,
  .academy-survival__cta--primary,
  .question-explorer-page .qe-toolbar__btn--primary,
  .question-explorer-page .qe-filters__apply,
  .classrooms-page .cr-btn--primary,
  .payments-page .billing-plan-card__cta--primary,
  .public-landing-page .pl-hero__cta,
  .public-landing-page .pl-cta-btn,
  .signup-btn--primary,
  .qa-toolbar__btn--primary,
  .billing-plan-card__cta--primary,
  .billing-page .billing-plan-card__cta--primary,
  .classrooms-page .cr-pill--settings,
  .classrooms-page .cr-btn--primary,
  .topical-progress-view-questions-btn,
  #topical-progress-modal .topical-progress-view-questions-btn,
  .leaderboard-mastery-page .lb-chip--active,
  #explorer-performance-modal .explorer-performance-tabs__tab.is-active,
  .explorer-performance-tabs__tab.is-active,
  #topical-progress-modal .tpt-tabs__tab.is-active,
  [class*="__btn--primary"],
  [class*="-btn--primary"],
  [class*="__btn"][class*="--primary"]
) {
  background: var(--btn-primary-bg) !important;
  border-color: var(--btn-primary-border) !important;
  color: var(--brand-navy, #0f222d) !important;
  border-radius: var(--btn-action-radius) !important;
  box-shadow: none !important;
}

body :is(
  .btn-primary,
  a.btn-primary,
  button.btn-primary,
  input.btn-primary,
  form button[type="submit"]:not(.btn-secondary):not(.btn-danger):not(.btn-outline-secondary):not(.btn-outline-primary),
  .bv-btn--primary,
  .dashboard-card-content .bv-btn--primary,
  .login-form__submit,
  .auth-flow-page .login-form__submit,
  .auth-flow-page .onboarding-card__cta,
  .auth-guest-cta__btn,
  .billing-btn--primary,
  a.billing-btn--primary,
  button.billing-btn--primary,
  .pf-header__journey,
  .user-profile-rank-journey__btn,
  .dashboard-card-nav-guest-auth--primary,
  .guest-feature-teaser__streak-btn,
  .learn-onboarding__btn,
  .trial-phone-card__btn,
  .guest-gamification-preview__btn,
  .dh-continue__cta,
  .dh-action__cta,
  .next-best-action__cta,
  .ao-handoff__btn--primary,
  .ao-survival-card__cta,
  .ao-empty-cta,
  .pco-empty__cta,
  .asub-card__cta,
  .study-coach-card__cta,
  .academy-subjects .asub-pill--open,
  button.asub-pill--open,
  a.asub-pill--open,
  .survival-hub-page .sv-resume__btn,
  .survival-hub-page .sv-start-form__btn,
  .sa-setup-page .sa-submit-btn,
  .sa-setup-page .sa-review__actions .btn-primary,
  .notes-page .np-toolbar__btn,
  .notes-page .notes-row__open,
  .account-page .am-btn--primary,
  .feedback-page .fb-btn--primary,
  .quick-answers-page .qa-toolbar__btn,
  .hub-quick-actions__card--primary,
  .sp-tool--primary,
  .subject-performances__cta,
  .sq-question-card__cta,
  .explorer-performance-view-questions-btn,
  #explorer-performance-modal .explorer-performance-view-questions-btn,
  .search-controls-card .btn-primary,
  .search-results-section .btn-primary,
  .search-by-id-form .btn-primary,
  .academy-survival__cta--primary,
  .question-explorer-page .qe-toolbar__btn--primary,
  .question-explorer-page .qe-filters__apply,
  .classrooms-page .cr-btn--primary,
  .payments-page .billing-plan-card__cta--primary,
  .public-landing-page .pl-hero__cta,
  .public-landing-page .pl-cta-btn,
  .signup-btn--primary,
  .qa-toolbar__btn--primary,
  .billing-plan-card__cta--primary,
  .billing-page .billing-plan-card__cta--primary,
  .classrooms-page .cr-pill--settings,
  .classrooms-page .cr-btn--primary,
  .topical-progress-view-questions-btn,
  #topical-progress-modal .topical-progress-view-questions-btn,
  .leaderboard-mastery-page .lb-chip--active,
  #explorer-performance-modal .explorer-performance-tabs__tab.is-active,
  .explorer-performance-tabs__tab.is-active,
  #topical-progress-modal .tpt-tabs__tab.is-active,
  [class*="__btn--primary"],
  [class*="-btn--primary"],
  [class*="__btn"][class*="--primary"]
):hover,
body :is(
  .btn-primary,
  a.btn-primary,
  button.btn-primary,
  input.btn-primary,
  form button[type="submit"]:not(.btn-secondary):not(.btn-danger):not(.btn-outline-secondary):not(.btn-outline-primary),
  .bv-btn--primary,
  .login-form__submit,
  .auth-flow-page .login-form__submit,
  .pf-header__journey,
  .user-profile-rank-journey__btn,
  .dh-continue__link:hover .dh-continue__cta
):hover {
  background: var(--btn-primary-bg-hover) !important;
  border-color: var(--btn-primary-border-hover) !important;
  color: var(--brand-navy, #0f222d) !important;
  filter: none !important;
}

/* Pill-shaped CTAs */
body :is(
  .asub-card__cta,
  .academy-subjects .asub-pill--open,
  button.asub-pill--open,
  a.asub-pill--open,
  .sq-question-card__cta,
  .sa-setup-page .sa-submit-btn,
  .auth-flow-page .onboarding-card__cta
) {
  border-radius: var(--btn-pill-radius) !important;
}

/* Modals / explorer overlays */
body :is(
  .explorer-academy-modal .btn-primary,
  .explorer-performance-modal .btn-primary,
  .topical-progress-modal .btn-primary,
  #explorer-performance-modal .btn-primary,
  .topical-progress-modal .btn-primary
) {
  background: var(--btn-primary-bg) !important;
  border-color: var(--btn-primary-border) !important;
  color: var(--brand-navy, #0f222d) !important;
  border-radius: var(--btn-action-radius) !important;
}

body :is(
  .explorer-academy-modal .btn-primary,
  .explorer-performance-modal .btn-primary,
  .topical-progress-modal .btn-primary,
  #explorer-performance-modal .btn-primary
):hover {
  background: var(--btn-primary-bg-hover) !important;
  border-color: var(--btn-primary-border-hover) !important;
}
