/*
 * NOUN Student Portal 6.9.2 — badge, state and nested-label contrast repair.
 * Loaded after the 6.9.1 private-workspace contrast boundary.
 */

html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace {
  --nsp692-badge-danger-bg: #8f111b;
  --nsp692-badge-danger-fg: #ffffff;
  --nsp692-badge-warning-bg: #f8d36d;
  --nsp692-badge-warning-fg: #392807;
  --nsp692-badge-success-bg: #e2f5ea;
  --nsp692-badge-success-fg: #00442a;
}



/* AAA inverse action pair in both browser themes. */
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace {
  --nsp691-primary: #005a36;
  --nsp691-primary-hover: #00442a;
}

/* AAA light-mode secondary and disabled text tokens. */
html[data-theme="light"] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace {
  --nsp691-muted: #405249;
  --nsp691-disabled-fg: #3d5047;
}

/* Notification, order and mobile-navigation counters. Explicitly set both
   normal colour and WebKit text-fill on the counter and every nested label. */
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :is(
  .nsw-notification-dot,
  .nsw-notification-badge,
  .nsw-unread-badge,
  [class*="notification-badge"],
  [class*="unread-badge"]
) {
  display: grid !important;
  place-items: center !important;
  background: var(--nsp692-badge-danger-bg) !important;
  border-color: var(--nsp691-surface, #ffffff) !important;
  color: var(--nsp692-badge-danger-fg) !important;
  -webkit-text-fill-color: var(--nsp692-badge-danger-fg) !important;
  opacity: 1 !important;
  text-shadow: none !important;
  filter: none !important;
}

html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :is(
  .nsw-notification-dot,
  .nsw-notification-badge,
  .nsw-unread-badge,
  [class*="notification-badge"],
  [class*="unread-badge"]
) :where(span,strong,b,small) {
  color: var(--nsp692-badge-danger-fg) !important;
  -webkit-text-fill-color: var(--nsp692-badge-danger-fg) !important;
}

html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace .nsw-nav-badge,
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace .nsp-mob-tab > span > b {
  display: grid !important;
  place-items: center !important;
  min-width: 22px !important;
  min-height: 22px !important;
  padding-inline: 6px !important;
  border: 1px solid #392807 !important;
  border-radius: 999px !important;
  background: var(--nsp692-badge-warning-bg) !important;
  color: var(--nsp692-badge-warning-fg) !important;
  -webkit-text-fill-color: var(--nsp692-badge-warning-fg) !important;
  opacity: 1 !important;
  line-height: 1 !important;
  text-shadow: none !important;
}

html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace .nsw-count-badge {
  background: var(--nsp692-badge-success-bg) !important;
  border: 1px solid var(--nsp692-badge-success-fg) !important;
  color: var(--nsp692-badge-success-fg) !important;
  -webkit-text-fill-color: var(--nsp692-badge-success-fg) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

/* Status chips and small contextual labels must not inherit a transparent or
   card-coloured text-fill from a parent button/card. */
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :is(
  .nsw-status,.nsp6-order-status,.nsw-reason,.nsp-public-badge,
  .nsp-hub-badge,.nsp-v62-badge,[class*="status-badge"],[class*="state-badge"]
) {
  opacity: 1 !important;
  -webkit-text-fill-color: currentColor !important;
  text-shadow: none !important;
}
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :is(
  .nsw-status,.nsp6-order-status,.nsw-reason,.nsp-public-badge,
  .nsp-hub-badge,.nsp-v62-badge,[class*="status-badge"],[class*="state-badge"]
) :where(span,strong,b,small,svg) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Button/card labels, including icon buttons and service-card actions. */
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :where(button,a,[role="button"]) :where(span,strong,b,small) {
  -webkit-text-fill-color: currentColor !important;
}

/* Explicitly keep inverse labels white on all filled actions. */
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :is(
  .nsw-primary-button,.nsp-btn-primary,.nsp6-primary,.nsp6-submit,
  .nsp-svc-btn-primary,.nsp-v62-primary,.nsp-v62-order-form .nsp-svc-btn,
  .nsp-v62-order-form .nsp-svc-pay,.nsp-tma-cta-primary,.nsp-tma-submit-btn,
  .nsp-hub-hero-cta,.nsp-recommend-button
),
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :is(
  .nsw-primary-button,.nsp-btn-primary,.nsp6-primary,.nsp6-submit,
  .nsp-svc-btn-primary,.nsp-v62-primary,.nsp-v62-order-form .nsp-svc-btn,
  .nsp-v62-order-form .nsp-svc-pay,.nsp-tma-cta-primary,.nsp-tma-submit-btn,
  .nsp-hub-hero-cta,.nsp-recommend-button
) :where(span,strong,b,small,svg) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

/* Disabled text remains readable and visibly disabled. */
html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :is(button:disabled,[aria-disabled="true"]) :where(span,strong,b,small,svg) {
  color: var(--nsp691-disabled-fg) !important;
  -webkit-text-fill-color: var(--nsp691-disabled-fg) !important;
  opacity: 1 !important;
}

@media (forced-colors: active) {
  html[data-theme] body.nsp-private-workspace #nsp-app.nsp .nsp-workspace :is(
    .nsw-notification-dot,.nsw-nav-badge,.nsw-count-badge,.nsp-mob-tab > span > b
  ) {
    forced-color-adjust: auto;
    border: 1px solid CanvasText !important;
  }
}
