/*
 * NOUN Student Community 5.7.1 — comprehensive contrast, account and control
 * repair. Loaded after student-commons-5.css on verified /community/ routes.
 */

html body.nsc5-document .nsc5-app {
  --nsc571-canvas: #f4f7f5;
  --nsc571-surface: #ffffff;
  --nsc571-surface-alt: #eef3f0;
  --nsc571-ink: #10231b;
  --nsc571-body: #24392f;
  --nsc571-muted: #405249;
  --nsc571-border: #9aa9a1;
  --nsc571-border-soft: #cbd5d0;
  --nsc571-link: #005a36;
  --nsc571-link-hover: #00442a;
  --nsc571-primary: #005a36;
  --nsc571-primary-hover: #00442a;
  --nsc571-accent-soft: #dff3e8;
  --nsc571-focus: #005fcc;
  --nsc571-danger: #8f111b;
  --nsc571-danger-soft: #fff0f1;
  --nsc571-danger-fill: #8f111b;
  --nsc571-warning: #6b3d00;
  --nsc571-warning-soft: #fff4d6;
  --nsc571-info: #004f8a;
  --nsc571-info-soft: #e8f4ff;
  background: var(--nsc571-canvas) !important;
  color: var(--nsc571-body) !important;
  -webkit-text-fill-color: currentColor;
}

@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) body.nsc5-document .nsc5-app {
    --nsc571-canvas: #0b1411;
    --nsc571-surface: #111b17;
    --nsc571-surface-alt: #192620;
    --nsc571-ink: #f7fbf9;
    --nsc571-body: #e0e9e4;
    --nsc571-muted: #c2cec7;
    --nsc571-border: #687a70;
    --nsc571-border-soft: #43544b;
    --nsc571-link: #9bf1c3;
    --nsc571-link-hover: #d0ffe6;
    --nsc571-primary: #005a36;
    --nsc571-primary-hover: #00442a;
    --nsc571-accent-soft: #183326;
    --nsc571-focus: #8cc8ff;
    --nsc571-danger: #ffb6bc;
    --nsc571-danger-soft: #3c181c;
    --nsc571-danger-fill: #8f111b;
    --nsc571-warning: #ffdc91;
    --nsc571-warning-soft: #3b2a0f;
    --nsc571-info: #a8d7ff;
    --nsc571-info-soft: #16334a;
  }
}

html[data-theme="dark"] body.nsc5-document .nsc5-app,
body.nsc5-document.dark-mode .nsc5-app,
body.nsc5-document.nsc-dark-mode .nsc5-app {
  --nsc571-canvas: #0b1411;
  --nsc571-surface: #111b17;
  --nsc571-surface-alt: #192620;
  --nsc571-ink: #f7fbf9;
  --nsc571-body: #e0e9e4;
  --nsc571-muted: #c2cec7;
  --nsc571-border: #687a70;
  --nsc571-border-soft: #43544b;
  --nsc571-link: #9bf1c3;
  --nsc571-link-hover: #d0ffe6;
  --nsc571-primary: #005a36;
  --nsc571-primary-hover: #00442a;
  --nsc571-accent-soft: #183326;
  --nsc571-focus: #8cc8ff;
  --nsc571-danger: #ffb6bc;
  --nsc571-danger-soft: #3c181c;
  --nsc571-danger-fill: #8f111b;
  --nsc571-warning: #ffdc91;
  --nsc571-warning-soft: #3b2a0f;
  --nsc571-info: #a8d7ff;
  --nsc571-info-soft: #16334a;
}

/* Stop theme/legacy rules and WebKit text fill from erasing labels. */
html body.nsc5-document .nsc5-app :where(h1,h2,h3,h4,h5,h6,strong,b,legend,summary) {
  color: var(--nsc571-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  opacity: 1 !important;
}
html body.nsc5-document .nsc5-app :where(p,li,dd,dt,small,figcaption,caption) {
  color: var(--nsc571-body) !important;
  -webkit-text-fill-color: currentColor !important;
  opacity: 1 !important;
}
html body.nsc5-document .nsc5-app :where(
  .nsc5-muted,.nsc5-thread-card-foot,.nsc5-course-card-foot,.nsc5-reason,
  .nsc5-form-status,.nsc5-brand small,.nsc5-message-row span,
  .nsc5-message-bubble small,.nsc5-discovery-card small,
  .nsc5-trust-summary article span,.nsc5-trust-records li span,
  .nsc5-safety-records li span,.nsc5-safety-records li p
) {
  color: var(--nsc571-muted) !important;
  -webkit-text-fill-color: currentColor !important;
  opacity: 1 !important;
}
html body.nsc5-document .nsc5-app:not(.nsc590-guest-app) a:not(.nsc5-primary):not(.nsc5-login):not(.nsc5-brand):not(.nsc5-avatar):not(.nsc5-count-badge):not(.nsc5-signout-button) {
  color: var(--nsc571-link) !important;
  -webkit-text-fill-color: var(--nsc571-link) !important;
  opacity: 1 !important;
}
html body.nsc5-document .nsc5-app:not(.nsc590-guest-app) a:not(.nsc5-primary):not(.nsc5-login):not(.nsc5-brand):not(.nsc5-avatar):not(.nsc5-count-badge):not(.nsc5-signout-button):hover,
html body.nsc5-document .nsc5-app:not(.nsc590-guest-app) a:not(.nsc5-primary):not(.nsc5-login):not(.nsc5-brand):not(.nsc5-avatar):not(.nsc5-count-badge):not(.nsc5-signout-button):focus-visible {
  color: var(--nsc571-link-hover) !important;
  -webkit-text-fill-color: var(--nsc571-link-hover) !important;
}

/* Main application surfaces. */
html body.nsc5-document :where(.nsc5-topbar,.nsc5-mobile-nav) {
  background: var(--nsc571-surface) !important;
  border-color: var(--nsc571-border-soft) !important;
}
html body.nsc5-document .nsc5-app :where(
  .nsc5-hero,.nsc5-course-hero,.nsc5-sidebar-note,.nsc5-stat-card,
  .nsc5-thread-card,.nsc5-context-card,.nsc5-intent-card,.nsc5-form-card,
  .nsc5-course-card,.nsc5-tabs,.nsc5-thread-detail,.nsc5-answer,
  .nsc5-answer-form,.nsc5-empty,.nsc5-placeholder,.nsc5-login-gate,
  .nsc5-tool-grid>a,.nsc5-tool-grid>div,.nsc5-discovery-card,
  .nsc5-message-list,.nsc5-conversation-panel,.nsc5-message-bubble,
  .nsc5-notification-row,.nsc5-integration-card,.nsc5-edit-panel,
  .nsc5-report-panel,.nsc5-source-panel,.nsc5-account-nav,
  .nsc5-account-panel,.nsc5-signout-card
) {
  background: var(--nsc571-surface) !important;
  border-color: var(--nsc571-border-soft) !important;
  color: var(--nsc571-body) !important;
  -webkit-text-fill-color: currentColor !important;
}
html body.nsc5-document .nsc5-app :where(.nsc5-thread-card,.nsc5-course-card,.nsc5-intent-card,.nsc5-tool-grid>a,.nsc5-discovery-card):hover {
  background: var(--nsc571-surface-alt) !important;
  border-color: var(--nsc571-link) !important;
  color: var(--nsc571-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Navigation. */
html body.nsc5-document .nsc5-app .nsc5-nav-item {
  color: var(--nsc571-body) !important;
  -webkit-text-fill-color: var(--nsc571-body) !important;
  opacity: 1 !important;
}
html body.nsc5-document .nsc5-app .nsc5-nav-item:hover,
html body.nsc5-document .nsc5-app .nsc5-nav-item.is-active {
  background: var(--nsc571-accent-soft) !important;
  color: var(--nsc571-link-hover) !important;
  -webkit-text-fill-color: var(--nsc571-link-hover) !important;
}
html body.nsc5-document .nsc5-app .nsc5-nav-item :where(span,svg) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Header icons and count badges. */
html body.nsc5-document .nsc5-app :where(.nsc5-icon-button,.nsc5-avatar) {
  background: var(--nsc571-surface) !important;
  border-color: var(--nsc571-border) !important;
  color: var(--nsc571-ink) !important;
  -webkit-text-fill-color: var(--nsc571-ink) !important;
  opacity: 1 !important;
}
html body.nsc5-document .nsc5-app .nsc5-avatar {
  background: var(--nsc571-primary) !important;
  border-color: var(--nsc571-primary) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html body.nsc5-document .nsc5-app .nsc5-top-action-link { position: relative; display: inline-grid; }
html body.nsc5-document .nsc5-app .nsc5-count-badge {
  position: absolute;
  z-index: 2;
  top: -5px;
  right: -6px;
  display: grid;
  place-items: center;
  min-width: 21px;
  height: 21px;
  padding: 0 5px;
  border: 2px solid var(--nsc571-surface) !important;
  border-radius: 999px;
  background: #8f111b !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  opacity: 1 !important;
  text-shadow: none !important;
}
html body.nsc5-document .nsc5-app .nsc5-count-badge :where(span,strong,b) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* All form fields, options and check controls. */
html body.nsc5-document .nsc5-app :where(.nsc5-form,.nsc5-search-form) label,
html body.nsc5-document .nsc5-app fieldset,
html body.nsc5-document .nsc5-app legend {
  color: var(--nsc571-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}
html body.nsc5-document .nsc5-app :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  textarea,select
) {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid var(--nsc571-border) !important;
  border-radius: 12px;
  background: var(--nsc571-surface) !important;
  color: var(--nsc571-ink) !important;
  -webkit-text-fill-color: var(--nsc571-ink) !important;
  font: inherit;
  opacity: 1 !important;
  box-shadow: none;
}
html body.nsc5-document .nsc5-app textarea { min-height: 112px; line-height: 1.55; resize: vertical; }
html body.nsc5-document .nsc5-app :where(input,textarea)::placeholder {
  color: var(--nsc571-muted) !important;
  -webkit-text-fill-color: var(--nsc571-muted) !important;
  opacity: 1 !important;
}
html body.nsc5-document .nsc5-app select option {
  background: var(--nsc571-surface) !important;
  color: var(--nsc571-ink) !important;
}
html body.nsc5-document .nsc5-app :where(input[type="checkbox"],input[type="radio"]) {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  accent-color: var(--nsc571-primary) !important;
}
html body.nsc5-document .nsc5-app .nsc5-check-grid label {
  min-height: 48px;
  background: var(--nsc571-surface-alt) !important;
  border-color: var(--nsc571-border-soft) !important;
  color: var(--nsc571-body) !important;
  -webkit-text-fill-color: currentColor !important;
}
html body.nsc5-document .nsc5-app :where(input,textarea,select):focus {
  border-color: var(--nsc571-focus) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb,var(--nsc571-focus) 25%,transparent) !important;
  outline: none !important;
}

/* Buttons and action controls. */
html body.nsc5-document .nsc5-app :where(
  .nsc5-primary,.nsc5-login,.nsc5-form button[type="submit"],
  .nsc5-answer-form button[type="submit"],.nsc5-signout-button
) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 10px 17px;
  border: 1px solid var(--nsc571-primary) !important;
  border-radius: 12px;
  background: var(--nsc571-primary) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font: inherit;
  font-weight: 800;
  text-decoration: none !important;
  opacity: 1 !important;
  cursor: pointer;
}
html body.nsc5-document .nsc5-app :where(
  .nsc5-primary,.nsc5-login,.nsc5-form button[type="submit"],
  .nsc5-answer-form button[type="submit"],.nsc5-signout-button
) :where(span,strong,b,small,svg) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html body.nsc5-document .nsc5-app :where(
  .nsc5-primary,.nsc5-login,.nsc5-form button[type="submit"],
  .nsc5-answer-form button[type="submit"],.nsc5-signout-button
):hover {
  background: var(--nsc571-primary-hover) !important;
  border-color: var(--nsc571-primary-hover) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

html body.nsc5-document .nsc5-app .nsc5-primary,
html body.nsc5-document .nsc5-app .nsc5-login,
html body.nsc5-document .nsc5-app .nsc5-form button[type="submit"],
html body.nsc5-document .nsc5-app .nsc5-answer-form button[type="submit"] {
  background: #005a36 !important;
  border-color: #005a36 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html body.nsc5-document .nsc5-app .nsc5-primary:hover,
html body.nsc5-document .nsc5-app .nsc5-login:hover,
html body.nsc5-document .nsc5-app .nsc5-form button[type="submit"]:hover,
html body.nsc5-document .nsc5-app .nsc5-answer-form button[type="submit"]:hover {
  background: #00442a !important;
  border-color: #00442a !important;
}

html body.nsc5-document .nsc5-app :where(
  .nsc5-action-button,.nsc5-muted-button,.nsc5-inline-actions button,
  .nsc5-page-actions button,.nsc5-safety-records button,
  .nsc5-edit-panel>summary,.nsc5-report-panel>summary,.nsc5-source-panel>summary,
  .nsc5-form-card>summary
) {
  background: var(--nsc571-surface) !important;
  border-color: var(--nsc571-border) !important;
  color: var(--nsc571-link) !important;
  -webkit-text-fill-color: var(--nsc571-link) !important;
  opacity: 1 !important;
}

html body.nsc5-document .nsc5-app .nsc5-primary,
html body.nsc5-document .nsc5-app .nsc5-login,
html body.nsc5-document .nsc5-app .nsc5-form button[type="submit"],
html body.nsc5-document .nsc5-app .nsc5-answer-form button[type="submit"] {
  background: #005a36 !important;
  border-color: #005a36 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html body.nsc5-document .nsc5-app .nsc5-primary:hover,
html body.nsc5-document .nsc5-app .nsc5-login:hover,
html body.nsc5-document .nsc5-app .nsc5-form button[type="submit"]:hover,
html body.nsc5-document .nsc5-app .nsc5-answer-form button[type="submit"]:hover {
  background: #00442a !important;
  border-color: #00442a !important;
}

html body.nsc5-document .nsc5-app :where(
  .nsc5-action-button,.nsc5-muted-button,.nsc5-inline-actions button,
  .nsc5-page-actions button,.nsc5-safety-records button,
  .nsc5-edit-panel>summary,.nsc5-report-panel>summary,.nsc5-source-panel>summary,
  .nsc5-form-card>summary
):hover {
  background: var(--nsc571-accent-soft) !important;
  border-color: var(--nsc571-link) !important;
  color: var(--nsc571-link-hover) !important;
  -webkit-text-fill-color: var(--nsc571-link-hover) !important;
}
html body.nsc5-document .nsc5-app :where(button,a,[role="button"],summary) :where(span,strong,b,small) {
  -webkit-text-fill-color: currentColor !important;
}
html body.nsc5-document .nsc5-app :where(button:disabled,[aria-disabled="true"],input:disabled,select:disabled,textarea:disabled) {
  background: var(--nsc571-surface-alt) !important;
  border-color: var(--nsc571-border) !important;
  color: var(--nsc571-muted) !important;
  -webkit-text-fill-color: var(--nsc571-muted) !important;
  opacity: 1 !important;
  filter: none !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
}

/* Badges, statuses, safety labels and source labels. */
html body.nsc5-document .nsc5-app :where(
  .nsc5-type-badge,.nsc5-category-badge,.nsc5-answer-badge,
  .nsc5-status-badge,.nsc5-trust-badge,.nsc5-trust-status,
  .nsc5-source-type,.nsc5-safety-label,.nsc-v5-phase-badge
) {
  background: var(--nsc571-accent-soft) !important;
  border-color: var(--nsc571-link) !important;
  color: var(--nsc571-link-hover) !important;
  -webkit-text-fill-color: var(--nsc571-link-hover) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
html body.nsc5-document .nsc5-app :where(
  .nsc5-type-badge,.nsc5-category-badge,.nsc5-answer-badge,
  .nsc5-status-badge,.nsc5-trust-badge,.nsc5-trust-status,
  .nsc5-source-type,.nsc5-safety-label,.nsc-v5-phase-badge
) :where(span,strong,b,small,svg) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
html body.nsc5-document .nsc5-app :where(.is-rejected,.is-revoked,.is-dismissed,.is-error) {
  background: var(--nsc571-danger-soft) !important;
  border-color: var(--nsc571-danger) !important;
  color: var(--nsc571-danger) !important;
  -webkit-text-fill-color: var(--nsc571-danger) !important;
}
html body.nsc5-document .nsc5-app :where(.is-needs_review,.is-open,.is-warning) {
  background: var(--nsc571-warning-soft) !important;
  border-color: var(--nsc571-warning) !important;
  color: var(--nsc571-warning) !important;
  -webkit-text-fill-color: var(--nsc571-warning) !important;
}
html body.nsc5-document .nsc5-app :where(.is-official_notice,.is-info) {
  background: var(--nsc571-info-soft) !important;
  border-color: var(--nsc571-info) !important;
  color: var(--nsc571-info) !important;
  -webkit-text-fill-color: var(--nsc571-info) !important;
}

/* Notifications and message rows. */
html body.nsc5-document .nsc5-app .nsc5-notification-row.is-unread {
  background: var(--nsc571-accent-soft) !important;
  border-left-color: var(--nsc571-link) !important;
}
html body.nsc5-document .nsc5-app .nsc5-message-row.is-active,
html body.nsc5-document .nsc5-app .nsc5-message-bubble.is-mine {
  background: var(--nsc571-accent-soft) !important;
  color: var(--nsc571-body) !important;
}

/* Account page organisation. */
html body.nsc5-document .nsc5-account-page-head { margin-bottom: 18px; }
html body.nsc5-document .nsc5-account-nav {
  position: sticky;
  z-index: 20;
  top: calc(var(--nsc5-topbar) + 12px);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 20px;
  padding: 12px;
  border: 1px solid var(--nsc571-border-soft);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(16,35,27,.08);
}
.admin-bar html body.nsc5-document .nsc5-account-nav { top: calc(var(--nsc5-topbar) + 44px); }
html body.nsc5-document .nsc5-account-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--nsc571-border) !important;
  border-radius: 999px;
  background: var(--nsc571-surface) !important;
  color: var(--nsc571-link) !important;
  -webkit-text-fill-color: var(--nsc571-link) !important;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none !important;
}
html body.nsc5-document .nsc5-account-nav a:hover,
html body.nsc5-document .nsc5-account-nav a:focus-visible {
  background: var(--nsc571-accent-soft) !important;
  color: var(--nsc571-link-hover) !important;
  -webkit-text-fill-color: var(--nsc571-link-hover) !important;
}
html body.nsc5-document .nsc5-account-panel,
html body.nsc5-document .nsc5-trust-account,
html body.nsc5-document .nsc5-safety-account,
html body.nsc5-document .nsc5-operational-tools {
  margin: 0 0 22px !important;
  padding: clamp(18px,3vw,28px) !important;
  border: 1px solid var(--nsc571-border-soft) !important;
  border-radius: 20px !important;
  background: var(--nsc571-surface) !important;
  box-shadow: 0 12px 34px rgba(16,35,27,.07);
  scroll-margin-top: calc(var(--nsc5-topbar) + 90px);
}
html body.nsc5-document .nsc5-account-panel>.nsc5-form-card {
  margin: 16px 0 0;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}
html body.nsc5-document .nsc5-account-panel .nsc5-field-grid { gap: 14px; }
html body.nsc5-document .nsc5-trust-summary { grid-template-columns: repeat(auto-fit,minmax(135px,1fr)); }
html body.nsc5-document .nsc5-trust-summary article {
  background: var(--nsc571-surface-alt) !important;
  border-color: var(--nsc571-border-soft) !important;
}
html body.nsc5-document .nsc5-trust-columns,
html body.nsc5-document .nsc5-safety-grid { gap: 18px; }
html body.nsc5-document .nsc5-trust-columns>div,
html body.nsc5-document .nsc5-safety-grid>.nsc5-form-card {
  padding: 18px;
  border: 1px solid var(--nsc571-border-soft);
  border-radius: 16px;
  background: var(--nsc571-surface-alt) !important;
}
html body.nsc5-document .nsc5-signout-card {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 0;
  padding: 22px;
  border: 1px solid var(--nsc571-border-soft);
  border-radius: 18px;
}
html body.nsc5-document .nsc5-signout-card p { margin: 4px 0 0; color: var(--nsc571-muted) !important; }
html body.nsc5-document .nsc5-signout-button {
  background: var(--nsc571-danger-fill) !important;
  border-color: var(--nsc571-danger-fill) !important;
}
html body.nsc5-document .nsc5-signout-button:hover {
  background: #6f0c14 !important;
  border-color: #6f0c14 !important;
}
html body.nsc5-document .nsc5-sidebar-signout {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  margin-top: 12px;
  padding: 10px 13px;
  border: 1px solid var(--nsc571-border-soft) !important;
  border-radius: 12px;
  background: var(--nsc571-surface) !important;
  color: var(--nsc571-danger) !important;
  -webkit-text-fill-color: var(--nsc571-danger) !important;
  font-weight: 800;
  text-decoration: none !important;
}
html body.nsc5-document .nsc5-sidebar-signout:hover {
  background: var(--nsc571-danger-soft) !important;
  border-color: var(--nsc571-danger) !important;
}
html body.nsc5-document .nsc5-sidebar-signout svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 2; }

html body.nsc5-document .nsc5-app :focus-visible {
  outline: 3px solid var(--nsc571-focus) !important;
  outline-offset: 3px !important;
}

@media (max-width: 780px) {
  html body.nsc5-document .nsc5-account-nav {
    position: static;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: thin;
  }
  html body.nsc5-document .nsc5-account-nav a { white-space: nowrap; }
  html body.nsc5-document .nsc5-signout-card { grid-template-columns: 1fr; }
  html body.nsc5-document .nsc5-signout-button { width: 100%; }
  html body.nsc5-document .nsc5-trust-columns>div,
  html body.nsc5-document .nsc5-safety-grid>.nsc5-form-card { padding: 14px; }
}

@media (forced-colors: active) {
  html body.nsc5-document .nsc5-app :where(.nsc5-count-badge,.nsc5-primary,.nsc5-login,.nsc5-signout-button,[class*="badge"],[class*="status"]) {
    forced-color-adjust: auto;
    border: 1px solid CanvasText !important;
  }
  html body.nsc5-document .nsc5-app :focus-visible { outline-color: Highlight !important; }
}
