:root {
  --font-sans: "Satoshi", "Avenir Next", "Avenir", "Segoe UI", "Helvetica Neue", sans-serif;
  --font-heading: var(--font-sans);
  --font-body: var(--font-sans);
  --font-label: var(--font-sans);
  --type-weight-normal: 400;
  --type-weight-medium: 500;
  --type-weight-semibold: 600;
  --type-tracking-label: 0.32em;
  --type-tracking-micro: 0.28em;
  --type-size-hero-mobile: 1.5rem;
  --type-size-hero-desktop: 2.25rem;
  --type-size-h2: 1.875rem;
  --type-size-h3: 1.5rem;
  --type-size-h4: 1.25rem;
  --type-size-body: 0.9375rem;
  --type-size-body-lg: 1rem;
  --type-size-body-sm: 0.875rem;
  --type-size-label: 0.75rem;
  --type-size-micro: 0.6875rem;
  --theme-radius-sm: 0.7rem;
  --theme-radius-md: 1rem;
  --theme-radius-lg: 1.5rem;
  --theme-radius-xl: 1.8rem;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --theme-ink: #08111f;
  --theme-bg-deep: #020617;
  --theme-bg-elevated: #0b1324;
  --theme-surface: rgba(15, 23, 42, 0.88);
  --theme-surface-strong: rgba(15, 23, 42, 0.96);
  --theme-surface-soft: rgba(30, 41, 59, 0.72);
  --theme-surface-muted: rgba(15, 23, 42, 0.62);
  --theme-panel-overlay: rgba(255, 255, 255, 0.04);
  --theme-border: rgba(255, 255, 255, 0.1);
  --theme-border-strong: rgba(148, 163, 184, 0.25);
  --theme-text: #e2e8f0;
  --theme-text-soft: #cbd5e1;
  --theme-text-muted: #94a3b8;
  --theme-heading: #f8fafc;
  --theme-primary: #14b8a6;
  --theme-primary-strong: #2dd4bf;
  --theme-primary-tint: rgba(20, 184, 166, 0.18);
  --theme-secondary: #f59e0b;
  --theme-secondary-strong: #fbbf24;
  --theme-secondary-tint: rgba(245, 158, 11, 0.16);
  --theme-danger: #fb7185;
  --theme-danger-soft: #fecdd3;
  --theme-danger-tint: rgba(244, 63, 94, 0.16);
  --theme-info-tint: rgba(56, 189, 248, 0.16);
  --theme-success-tint: rgba(20, 184, 166, 0.16);
  --theme-shadow-lg: 0 28px 80px rgba(2, 6, 23, 0.45);
  --theme-shadow-md: 0 18px 46px rgba(2, 6, 23, 0.32);
  --theme-shadow-glow: 0 0 0 1px rgba(45, 212, 191, 0.14), 0 18px 42px rgba(20, 184, 166, 0.14);
  --theme-ring: 0 0 0 0.18rem rgba(45, 212, 191, 0.26);
  --theme-page-background:
    radial-gradient(circle at top right, rgba(20, 184, 166, 0.14), transparent 28%),
    radial-gradient(circle at top left, rgba(34, 211, 238, 0.08), transparent 24%),
    linear-gradient(180deg, #08111f 0%, #040b16 34%, #020617 100%);
  --theme-page-glow:
    radial-gradient(circle at 18% 0%, rgba(20, 184, 166, 0.16), transparent 25%),
    radial-gradient(circle at 82% 8%, rgba(14, 165, 233, 0.1), transparent 22%);
  --theme-nav-background: rgba(2, 6, 23, 0.72);
  --theme-nav-border: rgba(255, 255, 255, 0.07);
  --theme-shell-gradient: linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(15, 23, 42, 0.82));
  --theme-card-gradient: linear-gradient(180deg, rgba(15, 23, 42, 0.94), rgba(15, 23, 42, 0.84));
  --theme-band-gradient: linear-gradient(90deg, rgba(15, 23, 42, 0.76), rgba(15, 23, 42, 0.46));
  --theme-dropdown-background: rgba(8, 17, 31, 0.97);
  --theme-control-background: rgba(15, 23, 42, 0.82);
  --theme-control-strong-background: rgba(8, 17, 31, 0.72);
  --theme-control-border: rgba(148, 163, 184, 0.24);
  --theme-control-border-strong: rgba(148, 163, 184, 0.2);
  --theme-divider: rgba(255, 255, 255, 0.08);
  --theme-divider-soft: rgba(255, 255, 255, 0.06);
  --theme-tertiary-background: rgba(15, 23, 42, 0.76);
  --theme-tertiary-background-hover: rgba(30, 41, 59, 0.9);
  --theme-table-background: rgba(15, 23, 42, 0.7);
  --theme-table-head-background: rgba(8, 17, 31, 0.7);
  --theme-modal-background: rgba(8, 17, 31, 0.96);
  --theme-badge-muted-background: rgba(148, 163, 184, 0.16);
  --theme-notice-background: linear-gradient(180deg, rgba(120, 53, 15, 0.7), rgba(15, 23, 42, 0.92));
  --theme-notice-text: #fde68a;
  --theme-avatar-border: rgba(255, 255, 255, 0.12);
  --theme-avatar-shadow: rgba(2, 6, 23, 0.28);
  --theme-control-inner-shadow: rgba(255, 255, 255, 0.02);
  --theme-danger-background: linear-gradient(180deg, rgba(69, 10, 27, 0.72), rgba(15, 23, 42, 0.88));
  --theme-disabled-text: rgba(148, 163, 184, 0.5);
}

html[data-theme="light"] {
  color-scheme: light;
  --theme-ink: #f4f8fb;
  --theme-bg-deep: #e8f0f6;
  --theme-bg-elevated: #ffffff;
  --theme-surface: rgba(255, 255, 255, 0.86);
  --theme-surface-strong: rgba(255, 255, 255, 0.96);
  --theme-surface-soft: rgba(241, 245, 249, 0.86);
  --theme-surface-muted: rgba(226, 232, 240, 0.78);
  --theme-panel-overlay: rgba(255, 255, 255, 0.48);
  --theme-border: rgba(15, 23, 42, 0.08);
  --theme-border-strong: rgba(15, 23, 42, 0.16);
  --theme-text: #1e293b;
  --theme-text-soft: #334155;
  --theme-text-muted: #64748b;
  --theme-heading: #0f172a;
  --theme-primary: #14b8a6;
  --theme-primary-strong: #0f766e;
  --theme-primary-tint: rgba(20, 184, 166, 0.12);
  --theme-secondary: #f59e0b;
  --theme-secondary-strong: #d97706;
  --theme-secondary-tint: rgba(245, 158, 11, 0.12);
  --theme-danger: #e11d48;
  --theme-danger-soft: #881337;
  --theme-danger-tint: rgba(225, 29, 72, 0.1);
  --theme-info-tint: rgba(14, 165, 233, 0.1);
  --theme-success-tint: rgba(13, 148, 136, 0.1);
  --theme-shadow-lg: 0 24px 60px rgba(15, 23, 42, 0.12);
  --theme-shadow-md: 0 16px 36px rgba(15, 23, 42, 0.1);
  --theme-shadow-glow: 0 0 0 1px rgba(20, 184, 166, 0.12), 0 16px 34px rgba(20, 184, 166, 0.14);
  --theme-ring: 0 0 0 0.18rem rgba(20, 184, 166, 0.2);
  --theme-page-background:
    radial-gradient(circle at top right, rgba(20, 184, 166, 0.12), transparent 26%),
    radial-gradient(circle at top left, rgba(14, 165, 233, 0.08), transparent 22%),
    linear-gradient(180deg, #f5f9fc 0%, #eef4f8 36%, #e8f0f6 100%);
  --theme-page-glow:
    radial-gradient(circle at 18% 0%, rgba(20, 184, 166, 0.12), transparent 25%),
    radial-gradient(circle at 82% 8%, rgba(14, 165, 233, 0.08), transparent 20%);
  --theme-nav-background: rgba(248, 250, 252, 0.78);
  --theme-nav-border: rgba(15, 23, 42, 0.08);
  --theme-shell-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(248, 250, 252, 0.9));
  --theme-card-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(241, 245, 249, 0.92));
  --theme-band-gradient: linear-gradient(90deg, rgba(248, 250, 252, 0.88), rgba(241, 245, 249, 0.72));
  --theme-dropdown-background: rgba(255, 255, 255, 0.98);
  --theme-control-background: rgba(255, 255, 255, 0.92);
  --theme-control-strong-background: rgba(248, 250, 252, 0.98);
  --theme-control-border: rgba(148, 163, 184, 0.28);
  --theme-control-border-strong: rgba(148, 163, 184, 0.26);
  --theme-divider: rgba(15, 23, 42, 0.08);
  --theme-divider-soft: rgba(15, 23, 42, 0.06);
  --theme-tertiary-background: rgba(248, 250, 252, 0.92);
  --theme-tertiary-background-hover: rgba(241, 245, 249, 1);
  --theme-table-background: rgba(255, 255, 255, 0.82);
  --theme-table-head-background: rgba(248, 250, 252, 0.96);
  --theme-modal-background: rgba(255, 255, 255, 0.98);
  --theme-badge-muted-background: rgba(148, 163, 184, 0.14);
  --theme-notice-background: linear-gradient(180deg, rgba(255, 247, 237, 0.98), rgba(255, 251, 235, 0.98));
  --theme-notice-text: #9a3412;
  --theme-avatar-border: rgba(15, 23, 42, 0.12);
  --theme-avatar-shadow: rgba(15, 23, 42, 0.14);
  --theme-control-inner-shadow: rgba(255, 255, 255, 0.72);
  --theme-danger-background: linear-gradient(180deg, rgba(255, 228, 230, 0.98), rgba(255, 241, 242, 0.96));
  --theme-disabled-text: rgba(100, 116, 139, 0.6);
}

html,
body {
  min-height: 100%;
  font-family: var(--font-body);
  font-size: var(--type-size-body);
  line-height: 1.6;
  font-weight: var(--type-weight-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--theme-page-background);
  color: var(--theme-text);
}

body.theme-source {
  position: relative;
  background-attachment: fixed;
}

body.theme-source::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: var(--theme-page-glow);
  opacity: 0.95;
  z-index: 0;
}

body.theme-source > header,
body.theme-source > #content,
body.theme-source > #footer {
  position: relative;
  z-index: 1;
}

body.theme-source > header {
  z-index: 1200;
}

body.theme-source > .modal,
body.theme-source > .modal-backdrop {
  position: fixed;
}

body.theme-source a {
  color: var(--theme-primary-strong);
}

body.theme-source a:hover,
body.theme-source a:focus {
  color: #5eead4;
}

body.theme-source .container {
  position: relative;
}

body.theme-source .bg-light,
body.theme-source .bg-dark,
body.theme-source .bg-grey {
  background-color: transparent !important;
}

body.theme-source #content {
  background: transparent;
  color: var(--theme-text);
  padding-bottom: 2rem;
}

body.theme-source .content-region {
  padding: 2.5rem 0 3rem;
}

body.theme-source,
body.theme-source p,
body.theme-source li,
body.theme-source td,
body.theme-source th,
body.theme-source input,
body.theme-source textarea,
body.theme-source select,
body.theme-source button,
body.theme-source .btn,
body.theme-source .form-control,
body.theme-source .custom-select,
body.theme-source .dropdown-item,
body.theme-source .nav-link,
body.theme-source .table,
body.theme-source .badge,
body.theme-source .text-poppins,
body.theme-source .text-open-sans {
  font-family: var(--font-body) !important;
}

body.theme-source h1,
body.theme-source h2,
body.theme-source h3,
body.theme-source h4,
body.theme-source h5,
body.theme-source h6,
body.theme-source .card-title,
body.theme-source .page-title--heading {
  font-family: var(--font-heading) !important;
  color: var(--theme-heading);
  font-weight: var(--type-weight-semibold);
  letter-spacing: -0.02em;
}

body.theme-source h1,
body.theme-source .display-hero,
body.theme-source .page-title--heading {
  font-size: var(--type-size-hero-mobile);
  line-height: 1.08;
}

body.theme-source h2,
body.theme-source .section-title {
  font-size: var(--type-size-h2);
  line-height: 1.18;
}

body.theme-source h3,
body.theme-source .card-title-lg {
  font-size: var(--type-size-h3);
  line-height: 1.22;
}

body.theme-source h4,
body.theme-source h5,
body.theme-source .card-title {
  font-size: var(--type-size-h4);
  line-height: 1.28;
}

body.theme-source h6,
body.theme-source .small-copy,
body.theme-source .body-sm,
body.theme-source .form-help,
body.theme-source .meta-text {
  font-size: var(--type-size-body-sm);
  line-height: 1.55;
}

@media (min-width: 768px) {
  body.theme-source h1,
  body.theme-source .display-hero,
  body.theme-source .page-title--heading {
    font-size: var(--type-size-hero-desktop);
  }
}

body.theme-source small,
body.theme-source .text-muted,
body.theme-source .page-title--superheading,
body.theme-source .page-title--subheading,
body.theme-source .control-label {
  color: var(--theme-text-muted) !important;
}

body.theme-source .text-warning {
  color: var(--theme-secondary-strong) !important;
}

body.theme-source .text-danger {
  color: var(--theme-danger) !important;
}

body.theme-source .theme-panel,
body.theme-source .card,
body.theme-source .dashboard-courses,
body.theme-source .course-list--form .container,
body.theme-source .page-title--title,
body.theme-source #footer .container {
  background: var(--theme-shell-gradient);
  border: 1px solid var(--theme-border);
  border-radius: var(--theme-radius-lg);
  box-shadow: var(--theme-shadow-lg);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

body.theme-source .theme-panel,
body.theme-source .page-title--title,
body.theme-source .course-list--form .container,
body.theme-source #footer .container {
  position: relative;
  overflow: hidden;
}

body.theme-source .theme-panel::before,
body.theme-source .page-title--title::before,
body.theme-source .course-list--form .container::before,
body.theme-source #footer .container::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, var(--theme-panel-overlay), rgba(255, 255, 255, 0.01));
  pointer-events: none;
}

body.theme-source .theme-eyebrow,
body.theme-source .page-title--superheading,
body.theme-source .course-list--page-title--text h6,
body.theme-source .filter-list-form h6,
body.theme-source .dashboard-section-band h6,
body.theme-source .dashboard-spotlight-band h6 {
  font-family: var(--font-label) !important;
  font-size: var(--type-size-label);
  font-weight: var(--type-weight-medium);
  text-transform: uppercase;
  letter-spacing: var(--type-tracking-label);
}

body.theme-source .theme-tracking-label {
  text-transform: uppercase;
  letter-spacing: var(--type-tracking-label) !important;
}

body.theme-source .navbar {
  position: relative;
  z-index: 1100;
  background: var(--theme-nav-background) !important;
  border-bottom: 1px solid var(--theme-nav-border);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

body.theme-source #navigation > .container,
body.theme-source #navigation .navbar-collapse,
body.theme-source #navigation .navbar-nav {
  align-items: center;
}

body.theme-source #navigation > .container {
  min-height: 4.15rem;
}

body.theme-source #navigation .navbar-brand {
  display: inline-flex;
  align-items: center;
  margin-right: 1.6rem;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 1;
  letter-spacing: 0.12em;
}

body.theme-source #navigation .navbar-brand img,
body.theme-source #navigation .avatar {
  filter: saturate(0.92) brightness(1.02);
}

body.theme-source #navigation .navbar-brand img {
  display: block;
}

html[data-theme="light"] body.theme-source #navigation .navbar-brand img {
  filter:
    drop-shadow(0 1px 0 rgba(15, 23, 42, 0.26))
    drop-shadow(0 4px 10px rgba(15, 23, 42, 0.14))
    drop-shadow(0 10px 24px rgba(15, 23, 42, 0.12))
    saturate(0.94)
    brightness(1.02);
}

body.theme-source #navigation .nav-link,
body.theme-source #navigation .navbar-text {
  color: var(--theme-text-soft) !important;
  font-size: var(--type-size-body-sm);
  font-weight: var(--type-weight-medium);
  letter-spacing: 0.32em;
  line-height: 1.2;
}

body.theme-source #navigation .nav-link:hover,
body.theme-source #navigation .nav-link:focus,
body.theme-source #navigation .nav-item.show > .nav-link {
  color: var(--theme-primary-strong) !important;
}

body.theme-source #navigation .navbar-nav .nav-item {
  margin: 0 0.2rem;
}

body.theme-source #navigation .navbar-nav .nav-link {
  display: inline-flex;
  align-items: center;
  padding: 0.7rem 0.85rem;
}

body.theme-source #navigation .navbar-nav {
  gap: 0.1rem;
}

body.theme-source #navigation .nav-item.dropdown > .nav-link,
body.theme-source #navigation .nav-item > .nav-link {
  min-height: 2.5rem;
  text-transform: uppercase;
}

body.theme-source #navigation .nav-link .badge {
  position: relative;
  top: -1px;
  margin-left: 0.45rem;
}

body.theme-source #navigation .avatar {
  display: inline-block;
  width: 1.65rem;
  height: 1.65rem;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-right: 0.42rem !important;
  vertical-align: middle;
  border: 1px solid var(--theme-avatar-border) !important;
}

body.theme-source #navigation .fa-caret-down {
  margin-left: 0.28rem;
  font-size: 0.72rem;
  position: relative;
  top: 1px;
}

body.theme-source #navigation .global-search-widget {
  display: flex;
  align-items: center;
  margin-left: 1rem;
}

body.theme-source #navigation .search-widget,
body.theme-source #navigation .search-widget-form {
  display: flex;
  align-items: center;
  margin: 0;
}

body.theme-source #navigation .search-widget-form .form-control,
body.theme-source #navigation #search-input {
  height: 2.5rem;
  min-height: 2.5rem;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
  line-height: 1.2;
}

body.theme-source #navigation #search-input {
  width: 13.5rem;
  margin-left: 0 !important;
  margin-right: 0 !important;
  border-radius: 999px;
}

body.theme-source #navigation .search-widget-search-results {
  position: absolute;
  top: calc(100% + 0.7rem);
  right: 0;
  left: auto;
  width: min(36rem, calc(100vw - 1.5rem));
  z-index: 1250;
  padding: 0;
  background: transparent;
}

body.theme-source #navigation .search-widget-search-results .search-results {
  position: static;
  inset: auto;
  min-width: 0;
  width: 100%;
  padding: 1rem 1rem 0.85rem;
  border-radius: 1.25rem;
  border: 1px solid var(--theme-border);
  background: var(--theme-dropdown-background);
  box-shadow: var(--theme-shadow-lg);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

body.theme-source #navigation .search-widget-search-results h6 {
  margin: 0 0 0.65rem;
  color: var(--theme-text-muted);
  font-size: var(--type-size-micro);
  font-weight: var(--type-weight-medium);
  letter-spacing: var(--type-tracking-label);
  text-transform: uppercase;
}

body.theme-source #navigation .search-widget-search-results ul {
  margin: 0 0 0.85rem;
  padding: 0;
}

body.theme-source #navigation .search-widget-search-results hr {
  margin: 0.85rem 0;
  border-top: 1px solid var(--theme-divider);
}

body.theme-source #navigation .search-widget-search-results li {
  color: var(--theme-text-soft);
}

body.theme-source #navigation .search-widget-search-results a,
body.theme-source #navigation .search-widget-search-results em {
  display: block;
  padding: 0.55rem 0.7rem;
  color: var(--theme-text-soft);
  border-radius: 0.9rem;
  text-decoration: none;
}

body.theme-source #navigation .search-widget-search-results em {
  color: var(--theme-text-muted);
  font-style: italic;
}

body.theme-source #navigation .search-widget-search-results a:hover,
body.theme-source #navigation .search-widget-search-results a:focus {
  background: var(--theme-primary-tint);
  color: var(--theme-heading);
}

body.theme-source #navigation .search-widget--result-course {
  padding: 0;
}

body.theme-source #navigation .search-widget--result-course a {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-height: 3.4rem;
  padding: 0.5rem 0.7rem;
}

body.theme-source #navigation .search-widget--result-image {
  position: static;
  width: 4.35rem;
  flex: 0 0 4.35rem;
}

body.theme-source #navigation .search-widget--result-image img {
  width: 100%;
  border-radius: 0.55rem;
}

body.theme-source #navigation .search-widget--result-title {
  padding-left: 0 !important;
  color: inherit;
  line-height: 1.35;
}

body.theme-source #navigation .search-widget-search-results .summary a {
  color: var(--theme-primary-strong);
  font-weight: var(--type-weight-semibold);
}

body.theme-source #navigation .badge-warning,
body.theme-source .badge.bg-warning {
  background: var(--theme-secondary) !important;
  color: #111827 !important;
}

body.theme-source #navigation .badge-light,
body.theme-source .badge.bg-light {
  background: var(--theme-badge-muted-background) !important;
  color: var(--theme-text-soft) !important;
  border: 1px solid var(--theme-border);
}

body.theme-source .navbar-toggler,
body.theme-source .btn,
body.theme-source .form-control,
body.theme-source .dropdown-menu,
body.theme-source .modal-content {
  border-radius: var(--theme-radius-md);
}

body.theme-source .navbar-toggler {
  border-color: var(--theme-border);
}

body.theme-source .dropdown-menu {
  position: absolute;
  z-index: 1200;
  background: var(--theme-dropdown-background);
  border: 1px solid var(--theme-border);
  box-shadow: var(--theme-shadow-md);
  padding: 0.5rem;
}

body.theme-source .page-title,
body.theme-source .page-title--title,
body.theme-source .theme-panel,
body.theme-source .course-list--form .container,
body.theme-source #footer .container {
  z-index: 1;
}

body.theme-source .dropdown-item {
  color: var(--theme-text-soft);
  border-radius: 0.8rem;
}

body.theme-source .dropdown-item:hover,
body.theme-source .dropdown-item:focus {
  background: var(--theme-primary-tint);
  color: var(--theme-heading);
}

body.theme-source .dropdown-divider {
  border-top-color: var(--theme-divider);
}

body.theme-source .dropdown-header {
  color: var(--theme-text-muted);
  padding: 0.6rem 0.85rem 0.35rem;
}

body.theme-source .theme-switcher-form {
  margin: 0;
}

body.theme-source .theme-switcher-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  border: 0;
  background: transparent;
}

body.theme-source .theme-switcher-option.is-active {
  color: var(--theme-heading);
  background: var(--theme-primary-tint);
}

body.theme-source .theme-switcher-check {
  font-family: var(--font-label) !important;
  font-size: var(--type-size-micro);
  letter-spacing: var(--type-tracking-micro);
  text-transform: uppercase;
  color: var(--theme-text-muted);
}

body.theme-source .ui-tutorial-target {
  position: relative;
  z-index: 1081;
  border-radius: 999px;
  box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.28);
}

body.theme-source .ui-tutorial {
  position: fixed;
  z-index: 1080;
  width: min(21rem, calc(100vw - 1.5rem));
  padding: 1rem 1rem 0.9rem;
  border: 1px solid var(--theme-divider);
  border-radius: 1rem;
  background: var(--theme-dropdown-background);
  box-shadow: 0 22px 48px rgba(15, 23, 42, 0.22);
}

body.theme-source .ui-tutorial::before {
  content: "";
  position: absolute;
  top: -0.45rem;
  right: 1.4rem;
  width: 0.9rem;
  height: 0.9rem;
  background: inherit;
  border-top: 1px solid var(--theme-divider);
  border-left: 1px solid var(--theme-divider);
  transform: rotate(45deg);
}

body.theme-source .ui-tutorial--top::before {
  top: auto;
  bottom: -0.45rem;
  border-top: 0;
  border-left: 0;
  border-right: 1px solid var(--theme-divider);
  border-bottom: 1px solid var(--theme-divider);
}

body.theme-source .ui-tutorial__title {
  margin-bottom: 0.35rem;
  color: var(--theme-heading);
}

body.theme-source .ui-tutorial__body {
  margin-bottom: 0.8rem;
  color: var(--theme-text);
  font-size: 0.95rem;
  line-height: 1.5;
}

body.theme-source .ui-tutorial__actions {
  display: flex;
  justify-content: flex-end;
}

body.theme-source .ui-tutorial__dismiss {
  border-radius: 999px;
  padding-inline: 0.9rem;
}

body.theme-source .page-title {
  background: transparent;
  color: var(--theme-heading);
}

body.theme-source .page-title.with-bg {
  background-image: none !important;
}

body.theme-source .page-title--title {
  width: min(calc(100% - 2rem), 1300px);
  padding: 1.55rem 0 1.35rem;
  margin: 1.5rem auto 0;
}

body.theme-source .page-title--heading {
  margin-bottom: 0.2rem;
  letter-spacing: -0.045em;
}

body.theme-source .page-title--text {
  max-width: 60rem;
}

body.theme-source .page-title--superheading {
  margin-bottom: 0.55rem;
}

body.theme-source .page-title--superheading,
body.theme-source .course-list--page-title--text .theme-eyebrow,
body.theme-source .dashboard-hero-copy .theme-eyebrow,
body.theme-source .dashboard-section-band .h6,
body.theme-source .dashboard-spotlight-band h6,
body.theme-source .course-library-filter-label {
  letter-spacing: 0.32em;
}

body.theme-source .page-title--summary,
body.theme-source .page-title--text,
body.theme-source .page-title--text a {
  color: var(--theme-text-soft);
}

body.theme-source .lead,
body.theme-source .body-lg,
body.theme-source .page-title--summary {
  font-size: var(--type-size-body-lg);
  line-height: 1.68;
  font-weight: var(--type-weight-normal);
  max-width: 56ch;
}

body.theme-source .page-title--text a:hover,
body.theme-source .page-title--text a:focus {
  color: var(--theme-primary-strong);
}

body.theme-source .dashboard-spotlight-band,
body.theme-source .dashboard-section-band {
  border-top: 1px solid var(--theme-divider-soft);
  background: var(--theme-band-gradient);
}

body.theme-source .dashboard-spotlight-band {
  color: var(--theme-text-soft);
}

body.theme-source .dashboard-hero {
  display: flex;
  align-items: center;
  gap: 1rem;
  justify-content: flex-start;
  text-align: left;
}

body.theme-source .dashboard-hero-avatar .avatar,
body.theme-source .page-title img.avatar {
  width: 40px;
  height: 40px;
  border: 1px solid var(--theme-avatar-border);
  box-shadow: 0 12px 28px var(--theme-avatar-shadow);
}

body.theme-source .dashboard-hero-copy .h4 {
  margin-bottom: 0.0rem;
  font-family: var(--font-heading) !important;
  font-size: clamp(1.9rem, 3vw, 2.55rem);
  line-height: 1.05;
  font-weight: var(--type-weight-semibold);
  letter-spacing: -0.04em;
  color: var(--theme-heading);
}

body.theme-source .dashboard-hero-copy .theme-eyebrow {
  margin-bottom: 0.45rem;
}

body.theme-source .dashboard-section-band .h6,
body.theme-source .dashboard-spotlight-band h6 {
  margin-bottom: 0;
}

body.theme-source .dashboard-spotlight-band .row,
body.theme-source .dashboard-section-band .row {
  align-items: center;
}

body.theme-source .dashboard-spotlight-band p,
body.theme-source .dashboard-spotlight-band li {
  max-width: 60ch;
  font-size: var(--type-size-body-sm);
  line-height: 1.65;
}

body.theme-source .dashboard-courses {
  padding: 1.5rem 1.25rem 1.5rem;
}

body.theme-source .dashboard-course-in-progress,
body.theme-source .track-card,
body.theme-source .course-card {
  background: var(--theme-card-gradient);
  border: 1px solid var(--theme-border);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .dashboard-course-in-progress:hover,
body.theme-source .track-card:hover,
body.theme-source .course-card:hover,
body.theme-source .course-card.use-modal:hover,
body.theme-source .course-card--link:hover + .course-card--wrapper {
  border-color: rgba(45, 212, 191, 0.3);
  box-shadow: var(--theme-shadow-glow);
}

body.theme-source .course-card {
  min-width: 18rem;
  min-height: 18rem;
  overflow: hidden;
}

body.theme-source .course-card .card-body {
  padding: 1rem 1rem 0.7rem;
}

body.theme-source .course-card .card-footer {
  padding: 0.75rem 1rem 1rem;
  align-items: center;
}

body.theme-source .course-card .card-img-top,
body.theme-source .dashboard-course-in-progress img,
body.theme-source .track-progress-bar,
body.theme-source .page-title img.avatar {
  border-radius: calc(var(--theme-radius-md) - 0.1rem);
}

body.theme-source .course-card .card-body,
body.theme-source .course-card .card-footer {
  background: transparent;
  border-color: var(--theme-divider-soft);
}

body.theme-source .course-rating-summary,
body.theme-source .course-card--progress-label,
body.theme-source .course-card--lock-status,
body.theme-source .course-card--lock-date {
  color: var(--theme-text-soft);
}

body.theme-source .course-rating-summary strong,
body.theme-source .course-card--progress-label strong,
body.theme-source .course-card--progress-percent {
  color: var(--theme-heading);
  opacity: 1;
}

body.theme-source .course-card--progress-track {
  background: rgba(255, 255, 255, 0.14);
}

body.theme-source .course-card--progress-divider .line {
  background: var(--theme-divider-soft);
}

body.theme-source .course-card--progress-fill,
body.theme-source .course-rating-summary--icon,
body.theme-source .course-rating-summary--stars,
body.theme-source .course-rating-form--star {
  color: var(--theme-accent);
  background: var(--theme-accent);
}

body.theme-source .course-rating-summary--icon,
body.theme-source .course-rating-summary--stars,
body.theme-source .course-rating-form--star {
  background: transparent;
}

body.theme-source .course-card .card-title,
body.theme-source .dashboard-course-in-progress .card-title,
body.theme-source .track-card .card-title {
  color: var(--theme-heading);
}

body.theme-source .course-card .card-title {
  font-size: 1.28rem;
  line-height: 1.18;
  letter-spacing: -0.025em;
  font-weight: var(--type-weight-semibold);
  text-transform: none;
  text-wrap: balance;
}

body.theme-source .dashboard-course-in-progress .card-title,
body.theme-source .track-card .card-title {
  font-size: 1rem;
  line-height: 1.3;
  letter-spacing: -0.015em;
  font-weight: var(--type-weight-semibold);
  text-transform: none;
}

body.theme-source .course-card .title-90-percent {
  font-size: 1.1rem;
}

body.theme-source .course-card .title-70-percent {
  font-size: 0.98rem !important;
}

body.theme-source .course-card .card-footer,
body.theme-source .course-card--credits,
body.theme-source .course-card-progress-credits,
body.theme-source .track-card--link,
body.theme-source .course-card-dashboard--link {
  color: var(--theme-text-soft);
}

body.theme-source .course-card--status {
  margin-top: 0;
  min-height: 0;
  padding-top: 0;
  display: inline-flex;
  align-items: center;
}

body.theme-source .course-card--lock-status,
body.theme-source .course-rating-summary-card {
  display: inline-flex;
  align-items: center;
}

body.theme-source .course-card--credits .h6,
body.theme-source .course-card-progress-credits h6,
body.theme-source .track-card--link h5,
body.theme-source .course-card-dashboard--link h5 {
  font-size: 0.84rem;
  line-height: 1.2;
  letter-spacing: 0.03em;
}

body.theme-source .course-completed-page__layout {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem);
}

body.theme-source .course-completed-page__main,
body.theme-source .course-completed-page__side {
  min-width: 0;
}

body.theme-source .course-completed-page__summary-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.theme-source .course-completed-page__surface {
  background: var(--theme-card-gradient);
  border: 1px solid var(--theme-divider-soft);
  border-radius: var(--theme-radius-sm);
  box-shadow: none;
}

body.theme-source .course-completed-page__card {
  min-height: 100%;
}

body.theme-source .course-completed-page__eyebrow {
  color: var(--theme-text-soft);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
}

body.theme-source .course-completed-page__grade {
  align-items: center;
  color: var(--theme-heading);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  line-height: 1.1;
}

body.theme-source .course-completed-page__grade strong {
  font-size: 2rem;
  font-weight: var(--type-weight-semibold);
}

body.theme-source .course-completed-page__grade span,
body.theme-source .course-completed-page__credit {
  color: var(--theme-text-soft);
  font-size: 1rem;
}

body.theme-source .course-completed-page__grade-status,
body.theme-source .course-completed-page__card-icon {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  flex: 0 0 auto;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

body.theme-source .course-completed-page__grade-status.is-passed,
body.theme-source .course-completed-page__card-icon {
  background: var(--theme-success-tint);
  color: var(--theme-primary-strong);
}

body.theme-source .course-completed-page__grade-status.is-failed {
  background: var(--theme-danger-tint);
  color: var(--theme-danger);
}

body.theme-source .course-completed-page__credit {
  align-items: center;
  display: flex;
  gap: 0.65rem;
}

body.theme-source .course-completed-page__rating-form .course-rating-form--choices {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(5, minmax(2.35rem, 1fr));
}

body.theme-source .course-completed-page__rating-form .course-rating-form--choice {
  border-color: var(--theme-control-border);
  justify-content: center;
  padding: 0.45rem 0.35rem;
  position: relative;
}

body.theme-source .course-completed-page__rating-form .course-rating-form--choice:hover,
body.theme-source .course-completed-page__rating-form .course-rating-form--choice:focus-within {
  border-color: rgba(45, 212, 191, 0.48);
  box-shadow: var(--theme-ring);
}

body.theme-source .course-completed-page__rating-form .course-rating-form--choice input {
  opacity: 0;
  position: absolute;
}

body.theme-source .course-completed-page__rating-form .course-rating-form--choice input:checked ~ span {
  color: var(--theme-primary-strong);
}

body.theme-source .course-completed-page__review-activities .list-group-item {
  align-items: center;
  background: rgba(255, 255, 255, 0.03);
  border-color: var(--theme-divider-soft);
  color: var(--theme-heading);
  display: grid;
  gap: 0.75rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
}

body.theme-source .course-completed-page__review-activities .list-group-item:hover,
body.theme-source .course-completed-page__review-activities .list-group-item:focus {
  background: rgba(255, 255, 255, 0.07);
  color: var(--theme-heading);
}

body.theme-source .course-completed-page__activity-index,
body.theme-source .course-completed-page__activity-status {
  color: var(--theme-text-muted);
}

body.theme-source .course-completed-page__review-activities .is-complete .course-completed-page__activity-status {
  color: var(--theme-primary-strong);
}

body.theme-source .course-completed-page__review-activities .is-locked {
  color: var(--theme-text-muted);
}

body.theme-source .course-detail--course-completed-video--video iframe,
body.theme-source .course-detail--course-completed-video--video video {
  aspect-ratio: 16 / 9;
  height: auto;
  max-width: 100%;
  width: 100%;
}

@media (max-width: 1199.98px) {
  body.theme-source .course-completed-page__layout {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem);
  }
}

@media (max-width: 991.98px) {
  body.theme-source .course-completed-page__layout,
  body.theme-source .course-completed-page__summary-grid {
    grid-template-columns: 1fr;
  }
}

body.theme-source .course-card--remove-course {
  color: var(--theme-text-muted);
}

body.theme-source .course-card--remove-course:hover,
body.theme-source .course-card--remove-course:focus {
  color: var(--theme-danger);
}

body.theme-source .draft-course-list {
  margin-bottom: 1.5rem;
}

body.theme-source .draft-course-card {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(45, 212, 191, 0.22);
  border-radius: var(--theme-radius-sm);
  box-shadow: var(--theme-shadow-sm);
}

body.theme-source .draft-course-card:hover,
body.theme-source .draft-course-card:focus-within {
  border-color: rgba(45, 212, 191, 0.48);
  box-shadow: 0 0 0 1px rgba(45, 212, 191, 0.32), var(--theme-shadow-glow);
  transform: translateY(-1px);
}

body.theme-source .draft-course-card__image {
  border-radius: calc(var(--theme-radius-sm) - 1px);
  filter: saturate(0.75) contrast(0.98);
}

body.theme-source .draft-course-card__placeholder {
  color: var(--theme-text-soft);
}

body.theme-source .draft-course-card__badge {
  background: rgba(15, 23, 42, 0.84);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  color: #f8fafc;
  font-size: 0.62rem;
}

body.theme-source .draft-course-card-create {
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.22);
  box-shadow: none;
}

body.theme-source .draft-course-card-create:hover,
body.theme-source .draft-course-card-create:focus-within {
  background: rgba(45, 212, 191, 0.1);
  border-color: rgba(45, 212, 191, 0.5);
  box-shadow: 0 0 0 1px rgba(45, 212, 191, 0.32), var(--theme-shadow-glow);
}

body.theme-source .draft-course-card-create__icon {
  color: var(--theme-text-soft);
  font-weight: var(--type-weight-light);
}

body.theme-source .draft-course-card-create:hover .draft-course-card-create__icon,
body.theme-source .draft-course-card-create:focus-within .draft-course-card-create__icon {
  color: var(--theme-accent);
}

body.theme-source .course-list--form .container {
  padding-top: 0.8rem;
  padding-bottom: 0.2rem;
}

body.theme-source .course-list--form .filter-list-form {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
}

body.theme-source .course-library-search-form {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 0.85rem;
}

body.theme-source .course-library-search-form > .form-group,
body.theme-source .course-library-search-form > .course-library-form-filter,
body.theme-source .course-library-search-form > .course-library-filter-label {
  margin-bottom: 0;
}

body.theme-source .course-library-search-form .form-group-search {
  flex: 1 1 18rem;
  min-width: 15rem;
}

body.theme-source .course-library-search-form .form-group-search .form-control {
  min-height: 2.55rem;
  padding-left: 1rem;
  border-radius: 999px;
}

body.theme-source .course-library-filter-label {
  color: var(--theme-text-muted);
  white-space: nowrap;
  margin-left: 0 !important;
  margin-right: 0.25rem;
}

body.theme-source .course-library-form-filter {
  display: inline-flex;
  align-items: center;
  margin-bottom: 0 !important;
}

body.theme-source .course-library-search-form .subject,
body.theme-source .course-library-search-form .channels {
  display: none !important;
}

body.theme-source .course-library-form-filter .dropdown-toggle,
body.theme-source .course-library-search-form .form-group-order-by .form-control,
body.theme-source .course-library-search-form .course-library-form-filter .form-control {
  min-height: 2.25rem;
  border-radius: 999px;
}

body.theme-source .course-library-search-form .dropdown-toggle,
body.theme-source .course-library-search-form .form-group-order-by .form-control,
body.theme-source .course-library-search-form .course-library-form-filter .btn,
body.theme-source .course-library-search-form [data-filter] > .form-group > .form-control {
  background: var(--theme-control-strong-background);
  border-color: var(--theme-control-border-strong);
  color: var(--theme-text-soft);
}

body.theme-source .course-library-search-form [data-filter] .form-group,
body.theme-source .course-library-search-form [data-filter] .checkbox {
  margin-bottom: 0;
}

body.theme-source .course-library-search-form [data-filter] .checkbox label,
body.theme-source .course-library-search-form [data-filter] .radio label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0;
  padding: 0.1rem 0;
  color: var(--theme-text-soft);
  font-family: var(--font-label) !important;
  font-size: var(--type-size-label);
  font-weight: var(--type-weight-medium);
  line-height: 1.1;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.theme-source .course-library-search-form [data-filter] .checkbox label::before,
body.theme-source .course-library-search-form [data-filter] .checkbox label::after,
body.theme-source .course-library-search-form [data-filter] .radio label::before,
body.theme-source .course-library-search-form [data-filter] .radio label::after {
  content: none !important;
  display: none !important;
}

body.theme-source .course-library-search-form [data-filter] .checkbox::before,
body.theme-source .course-library-search-form [data-filter] .checkbox::after,
body.theme-source .course-library-search-form [data-filter] .radio::before,
body.theme-source .course-library-search-form [data-filter] .radio::after,
body.theme-source .course-library-search-form [data-filter] .checkbox *::before,
body.theme-source .course-library-search-form [data-filter] .checkbox *::after,
body.theme-source .course-library-search-form [data-filter] .radio *::before,
body.theme-source .course-library-search-form [data-filter] .radio *::after {
  content: none !important;
  display: none !important;
}

body.theme-source .course-library-search-form [data-filter] .checkbox label span::before,
body.theme-source .course-library-search-form [data-filter] .checkbox label span::after,
body.theme-source .course-library-search-form [data-filter] .radio label span::before,
body.theme-source .course-library-search-form [data-filter] .radio label span::after,
body.theme-source .course-library-search-form [data-filter] .checkbox label input:checked + span::before,
body.theme-source .course-library-search-form [data-filter] .checkbox label input:checked + span::after,
body.theme-source .course-library-search-form [data-filter] .radio label input:checked + span::before,
body.theme-source .course-library-search-form [data-filter] .radio label input:checked + span::after {
  content: none !important;
  display: none !important;
}

body.theme-source .course-library-search-form [data-filter] input[type="checkbox"],
body.theme-source .course-library-search-form [data-filter] input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  position: static !important;
  margin: 0;
  margin-left: 0 !important;
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 1.05rem;
  display: inline-block;
  border: 1px solid var(--theme-control-border);
  background: var(--theme-control-background);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.68rem 0.68rem;
  border-radius: 0.24rem;
  box-shadow: inset 0 1px 1px var(--theme-control-inner-shadow);
  transform: none;
  vertical-align: middle;
}

body.theme-source .course-library-search-form [data-filter] input[type="radio"] {
  border-radius: 999px;
}

body.theme-source .course-library-search-form [data-filter] input[type="checkbox"]:checked,
body.theme-source .course-library-search-form [data-filter] input[type="radio"]:checked {
  border-color: rgba(45, 212, 191, 0.72);
  background-color: var(--theme-primary-tint);
}

body.theme-source .course-library-search-form [data-filter] input[type="checkbox"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2314b8a6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.25' d='M3.25 8.5 6.5 11.75 12.75 4.75'/%3E%3C/svg%3E");
}

body.theme-source .course-library-search-form [data-filter] input[type="radio"]:checked {
  background-image: radial-gradient(circle, var(--theme-primary) 0 42%, transparent 48%);
}

body.theme-source .course-library-search-form [data-filter] input[type="checkbox"]:focus,
body.theme-source .course-library-search-form [data-filter] input[type="radio"]:focus {
  outline: none;
  box-shadow: var(--theme-ring);
}

body.theme-source .course-library-search-form .dropdown-toggle:hover,
body.theme-source .course-library-search-form .dropdown-toggle:focus {
  border-color: rgba(45, 212, 191, 0.3);
  color: var(--theme-heading);
}

body.theme-source .filter-list-form .filter-results {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-start;
  flex: 0 1 auto;
  gap: 0.45rem 0.55rem;
  padding-top: 0;
}

body.theme-source .filter-list-form .filter-result {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2rem;
  margin: 0;
  padding: 0.3rem 0.8rem;
  background: var(--theme-primary-tint);
  border: 1px solid rgba(45, 212, 191, 0.2);
  border-radius: 999px;
}

body.theme-source .filter-list-form .filter-result .label {
  color: var(--theme-text-muted);
  font-family: var(--font-label) !important;
  font-size: var(--type-size-micro);
  font-weight: var(--type-weight-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body.theme-source .filter-list-form .filter-result .value {
  color: var(--theme-text);
  font-size: var(--type-size-body-sm);
  line-height: 1;
}

body.theme-source .filter-list-form .filter-result .clear-filter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  color: var(--theme-text-muted);
  background: rgba(255, 255, 255, 0.06);
  position: static;
  transform: none;
  text-shadow: none;
}

body.theme-source .filter-list-form .filter-result .clear-filter:hover,
body.theme-source .filter-list-form .filter-result .clear-filter:focus {
  color: var(--theme-heading);
  background: rgba(45, 212, 191, 0.2);
}

body.theme-source .filter-list-form .filter-result[data-filter-name="user_org_only"] .label,
body.theme-source .filter-list-form .filter-result[data-filter-name="ceh_only"] .label,
body.theme-source .filter-list-form .filter-result[data-filter-name="eop_only"] .label,
body.theme-source .filter-list-form .filter-result[data-filter-name="sim_only"] .label,
body.theme-source .filter-list-form .filter-result[data-filter-name="credit_eligible"] .label,
body.theme-source .filter-list-form .filter-result[data-filter-name="is_published"] .label {
  display: none;
}

body.theme-source .course-list .card-deck {
  gap: 1rem;
}

body.theme-source .course-list .card-deck .card {
  margin-bottom: 0;
}

body.theme-source .filter-list-form .form-group,
body.theme-source .filter-list-form .course-library-form-filter {
  margin-bottom: 0.25rem;
}

body.theme-source .filter-results .clear-all {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.3rem 0.2rem;
  color: var(--theme-secondary-strong);
}

@media (max-width: 991.98px) {
  body.theme-source .course-list--form .filter-list-form {
    align-items: flex-start;
  }

  body.theme-source .course-library-search-form,
  body.theme-source .filter-list-form .filter-results {
    flex-basis: 100%;
  }

  body.theme-source .course-library-search-form {
    justify-content: flex-start;
  }
}

body.theme-source .form-control,
body.theme-source input[type="text"],
body.theme-source input[type="password"],
body.theme-source input[type="email"],
body.theme-source input[type="search"],
body.theme-source textarea,
body.theme-source select,
body.theme-source .custom-select {
  background: var(--theme-control-background);
  color: var(--theme-text);
  border: 1px solid var(--theme-control-border);
  box-shadow: inset 0 1px 0 var(--theme-control-inner-shadow);
  font-size: var(--type-size-body-sm);
  font-weight: var(--type-weight-normal);
  line-height: 1.5;
}

body.theme-source .form-control::placeholder,
body.theme-source input::placeholder,
body.theme-source textarea::placeholder {
  color: var(--theme-text-muted);
}

body.theme-source .form-control:focus,
body.theme-source input:focus,
body.theme-source textarea:focus,
body.theme-source select:focus,
body.theme-source .btn:focus,
body.theme-source .btn.focus,
body.theme-source a:focus {
  border-color: rgba(45, 212, 191, 0.65);
  box-shadow: var(--theme-ring);
  outline: none;
}

body.theme-source .btn {
  font-size: var(--type-size-body-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  border-width: 1px;
  transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

body.theme-source .dropdown-item,
body.theme-source .badge,
body.theme-source .table {
  font-size: var(--type-size-body-sm);
}

body.theme-source .micro-label {
  font-family: var(--font-label) !important;
  font-size: var(--type-size-micro);
  font-weight: var(--type-weight-medium);
  letter-spacing: var(--type-tracking-micro);
  text-transform: uppercase;
}

body.theme-source .btn:hover {
  transform: translateY(-1px);
}

body.theme-source .btn-primary,
body.theme-source .btn-outline-dark[type="submit"],
body.theme-source .panels-submit-btn.btn-primary {
  background: var(--theme-primary);
  border-color: var(--theme-primary);
  color: #041018;
}

body.theme-source .btn-primary:hover,
body.theme-source .btn-primary:focus,
body.theme-source .btn-outline-dark[type="submit"]:hover,
body.theme-source .btn-outline-dark[type="submit"]:focus,
body.theme-source .panels-submit-btn.btn-primary:hover,
body.theme-source .panels-submit-btn.btn-primary:focus {
  background: var(--theme-primary-strong);
  border-color: var(--theme-primary-strong);
  color: #041018;
  box-shadow: var(--theme-shadow-glow);
}

body.theme-source .btn-warning,
body.theme-source .btn-secondary,
body.theme-source .theme-btn-secondary {
  background: var(--theme-secondary);
  border-color: var(--theme-secondary);
  color: #111827;
}

body.theme-source .btn-warning:hover,
body.theme-source .btn-warning:focus,
body.theme-source .btn-secondary:hover,
body.theme-source .btn-secondary:focus,
body.theme-source .theme-btn-secondary:hover,
body.theme-source .theme-btn-secondary:focus {
  background: var(--theme-secondary-strong);
  border-color: var(--theme-secondary-strong);
  color: #111827;
}

body.theme-source .btn-default,
body.theme-source .btn-outline-dark,
body.theme-source .btn-light {
  background: var(--theme-tertiary-background);
  border-color: var(--theme-border-strong);
  color: var(--theme-text);
}

body.theme-source .btn-default:hover,
body.theme-source .btn-default:focus,
body.theme-source .btn-outline-dark:hover,
body.theme-source .btn-outline-dark:focus,
body.theme-source .btn-light:hover,
body.theme-source .btn-light:focus {
  background: var(--theme-tertiary-background-hover);
  border-color: rgba(45, 212, 191, 0.35);
  color: var(--theme-heading);
}

body.theme-source .alert {
  background: var(--theme-control-background);
  border: 1px solid var(--theme-border);
  color: var(--theme-text-soft);
  border-radius: var(--theme-radius-md);
}

body.theme-source .alert-danger {
  background: var(--theme-danger-background);
  border-color: rgba(251, 113, 133, 0.24);
  color: var(--theme-danger-soft);
}

body.theme-source .alert-success,
body.theme-source .alert-info {
  border-color: rgba(45, 212, 191, 0.22);
  color: var(--theme-text);
}

body.theme-source .alert-success {
  background: linear-gradient(180deg, var(--theme-success-tint), var(--theme-surface));
}

body.theme-source .alert-info {
  background: linear-gradient(180deg, var(--theme-info-tint), var(--theme-surface));
}

body.theme-source .terms-page {
  max-width: 80rem;
  padding-bottom: 3.5rem;
}

body.theme-source .terms-page__summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.25rem 1.35rem;
  margin-bottom: 1.25rem;
}

body.theme-source .terms-page__eyebrow {
  margin-bottom: 0.55rem;
  color: var(--theme-primary-strong);
}

body.theme-source .terms-page__summary-title {
  margin-bottom: 0.35rem;
  color: var(--theme-heading);
  font-size: var(--type-size-h4);
  letter-spacing: 0;
}

body.theme-source .terms-page__summary-copy {
  margin-bottom: 0;
  color: var(--theme-text-soft);
}

body.theme-source .terms-page__version {
  flex: 0 0 auto;
  padding: 0.45rem 0.75rem;
  border: 1px solid rgba(45, 212, 191, 0.3);
  border-radius: 999px;
  background: var(--theme-primary-tint);
  color: var(--theme-primary-strong);
  font-family: var(--font-label);
  font-size: var(--type-size-micro);
  font-weight: var(--type-weight-semibold);
  letter-spacing: var(--type-tracking-micro);
  line-height: 1;
  text-transform: uppercase;
}

body.theme-source .terms-page__video {
  margin-bottom: 1.25rem;
}

body.theme-source .terms-page__body {
  padding: 1.5rem;
  color: var(--theme-text-soft);
  font-size: var(--type-size-body-sm);
  line-height: 1.75;
}

body.theme-source .terms-page__body p,
body.theme-source .terms-page__body li {
  color: var(--theme-text-soft);
}

body.theme-source .terms-page__body p {
  margin-bottom: 1.1rem;
}

body.theme-source .terms-page__body h1,
body.theme-source .terms-page__body h2,
body.theme-source .terms-page__body h3,
body.theme-source .terms-page__body h4,
body.theme-source .terms-page__body h5,
body.theme-source .terms-page__body h6 {
  margin-top: 1.4rem;
  margin-bottom: 0.65rem;
  color: var(--theme-heading);
  letter-spacing: 0;
}

body.theme-source .terms-page__body a {
  color: var(--theme-primary-strong);
}

body.theme-source .terms-page__acceptance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  margin-top: 1.25rem;
}

body.theme-source .terms-page__acceptance-label {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 0;
  cursor: pointer;
}

body.theme-source .terms-page__checkbox {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

body.theme-source .terms-page__checkbox-mark {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--theme-control-border);
  border-radius: 0.65rem;
  background: var(--theme-control-background);
  box-shadow: inset 0 1px 0 var(--theme-control-inner-shadow);
  transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

body.theme-source .terms-page__checkbox-mark::after {
  content: "";
  position: absolute;
  left: 0.65rem;
  top: 0.36rem;
  width: 0.55rem;
  height: 0.95rem;
  border: solid #041018;
  border-width: 0 0.16rem 0.16rem 0;
  opacity: 0;
  transform: rotate(45deg) scale(0.75);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

body.theme-source .terms-page__checkbox:checked + .terms-page__checkbox-mark {
  background: var(--theme-primary-strong);
  border-color: var(--theme-primary-strong);
  box-shadow: var(--theme-shadow-glow);
}

body.theme-source .terms-page__checkbox:checked + .terms-page__checkbox-mark::after {
  opacity: 1;
  transform: rotate(45deg) scale(1);
}

body.theme-source .terms-page__checkbox:focus + .terms-page__checkbox-mark {
  border-color: rgba(45, 212, 191, 0.65);
  box-shadow: var(--theme-ring);
}

body.theme-source .terms-page__acceptance-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

body.theme-source .terms-page__acceptance-title {
  color: var(--theme-heading);
  font-size: var(--type-size-body-lg);
  font-weight: var(--type-weight-semibold);
}

body.theme-source .terms-page__acceptance-detail {
  color: var(--theme-text-muted);
  font-size: var(--type-size-body-sm);
}

body.theme-source .terms-page__submit {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 0.65rem 1rem;
  text-transform: uppercase;
}

@media (max-width: 767.98px) {
  body.theme-source .terms-page__summary,
  body.theme-source .terms-page__acceptance {
    flex-direction: column;
    align-items: stretch;
  }

  body.theme-source .terms-page__version,
  body.theme-source .terms-page__submit {
    align-self: flex-start;
  }
}

body.theme-source .table,
body.theme-source table.list {
  color: var(--theme-text-soft);
  background: var(--theme-table-background);
  border-radius: var(--theme-radius-md);
  overflow: hidden;
}

body.theme-source .table thead th,
body.theme-source table.list thead th {
  color: var(--theme-heading);
  border-bottom-color: var(--theme-divider);
  background: var(--theme-table-head-background);
}

body.theme-source .table td,
body.theme-source .table th,
body.theme-source table.list td,
body.theme-source table.list th {
  border-color: var(--theme-divider-soft);
}

body.theme-source .table-hover tbody tr:hover,
body.theme-source table.list tbody tr:hover {
  background: rgba(20, 184, 166, 0.08);
}

body.theme-source .pagination .current,
body.theme-source .pagination .step-links {
  color: var(--theme-text-soft);
}

body.theme-source .pagination .pagination-prev,
body.theme-source .pagination .pagination-next,
body.theme-source .pagination .disabled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  min-height: 2.5rem;
  border-radius: 999px;
  margin: 0 0.35rem;
}

body.theme-source .pagination .disabled {
  background: var(--theme-surface-muted);
  border: 1px solid var(--theme-divider-soft);
  color: var(--theme-disabled-text);
}

body.theme-source .modal-content {
  background: var(--theme-modal-background);
  border: 1px solid var(--theme-border);
  box-shadow: var(--theme-shadow-lg);
}

body.theme-source .modal-header,
body.theme-source .modal-footer {
  border-color: var(--theme-divider);
}

body.theme-source .course-overview-modal--content {
  background: var(--theme-modal-background);
  border: 1px solid var(--theme-border);
  box-shadow: var(--theme-shadow-lg);
}

body.theme-source .course-overview-modal {
  overflow-x: hidden;
  overflow-y: auto;
  padding: 7vh 0 12vh;
}

body.theme-source .course-overview-modal .modal-dialog {
  width: calc(100% - 1.25rem);
  max-width: 900px;
  margin: 0 auto;
}

@media (min-width: 768px) {
  body.theme-source .course-overview-modal {
    padding-top: 10vh;
    padding-bottom: 18vh;
  }

  body.theme-source .course-overview-modal .modal-dialog {
    width: calc(100% - 2rem);
    margin: 0 auto;
  }
}

body.theme-source .course-overview-modal--details {
  margin: 1.35rem 0 0.85rem;
  padding: 0.25rem 0;
  border-top: 0;
  background: var(--theme-shell-gradient);
  border: 1px solid var(--theme-border);
  border-radius: var(--theme-radius-md);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .course-overview-modal--details > ul {
  margin-bottom: 0;
}

body.theme-source .course-overview-modal--details .list-group-item {
  background: transparent;
  color: var(--theme-text-soft);
}

body.theme-source .course-overview-modal--details .course-overview-modal--data-list {
  margin: 0.85rem 0;
}

body.theme-source .course-overview-modal--details .course-overview-modal--data-list dt {
  color: var(--theme-text-muted);
}

body.theme-source .course-overview-modal--details .course-overview-modal--data-list dd,
body.theme-source .course-overview-modal--details .course-overview-modal--data-list dd a,
body.theme-source .course-overview-modal--dropdown-toggle {
  color: var(--theme-text);
}

body.theme-source .course-overview-modal--details .course-overview-modal--data-list dd a:hover,
body.theme-source .course-overview-modal--dropdown-toggle:hover,
body.theme-source .course-overview-modal--dropdown-toggle:focus {
  color: var(--theme-primary-strong);
}

body.theme-source .course-overview-modal--dropdown-menu {
  background: var(--theme-dropdown-background);
  border: 1px solid var(--theme-border);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .course-overview-modal--dropdown-menu p,
body.theme-source .course-overview-modal--dropdown-menu h6,
body.theme-source .course-overview-modal--dropdown-menu small,
body.theme-source .course-overview-modal--dropdown-menu li {
  color: var(--theme-text-soft);
}

body.theme-source .auth-panel {
  padding: 1.5rem;
}

body.theme-source .auth-panel .btn {
  min-width: 10rem;
}

body.theme-source #footer {
  background: transparent;
  padding-top: 1rem;
}

body.theme-source #footer .container {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

body.theme-source .footer--link,
body.theme-source .footer--policy--link {
  color: var(--theme-text-soft);
}

body.theme-source .footer--link:hover,
body.theme-source .footer--policy--link:hover,
body.theme-source #terms_policy:hover {
  color: var(--theme-primary-strong) !important;
}

body.theme-source .footer--organization--text,
body.theme-source #footer_contact small,
body.theme-source #footer small.text-muted {
  color: var(--theme-text-muted) !important;
}

html[data-theme="light"] body.theme-source .footer--organization--icon img,
html[data-theme="light"] body.theme-source img.footer--organization--icon {
  filter:
    drop-shadow(0 1px 0 rgba(15, 23, 42, 0.26))
    drop-shadow(0 4px 10px rgba(15, 23, 42, 0.14))
    drop-shadow(0 10px 24px rgba(15, 23, 42, 0.12));
}

body.theme-source .notice-banner,
body.theme-source .bg-warning {
  background: var(--theme-notice-background) !important;
  color: var(--theme-notice-text);
}

body.theme-source .notice-banner a,
body.theme-source .bg-warning a {
  color: var(--theme-notice-text);
}

body.theme-source .course-detail--header {
  align-items: center;
  margin: 0;
}

body.theme-source .course-detail--activity-detail {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 4.85rem;
}

body.theme-source .course-detail--activity-detail--title,
body.theme-source .course-detail--activity-detail--title div {
  color: var(--theme-heading);
  margin: 0;
  font-size: clamp(1.05rem, 2vw, 1.5rem);
  font-weight: var(--type-weight-semibold);
  letter-spacing: -0.015em;
  line-height: 1.1;
  text-transform: none;
}

body.theme-source .course-detail--activity-meta {
  gap: 0.45rem;
  margin-bottom: 0.3rem;
}

body.theme-source .course-detail--meta-separator {
  padding: 0 0.2rem;
  color: var(--theme-text-muted) !important;
}

body.theme-source .course-detail--activity-title-row {
  gap: 0.2rem;
}

body.theme-source .course-detail--navigator-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  margin-right: 0.1rem;
  color: var(--theme-primary-strong);
  border-radius: 999px;
  transition: background-color 0.18s ease, color 0.18s ease;
}

body.theme-source .course-detail--navigator-trigger:hover,
body.theme-source .course-detail--navigator-trigger:focus {
  color: var(--theme-heading);
  background: var(--theme-primary-tint);
}

body.theme-source .course-detail--navigator-trigger .h5 {
  margin: 0;
  line-height: 1;
}

body.theme-source .course-detail--progress-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.2rem;
  padding: 0.28rem 0.58rem;
  margin-left: 0.45rem;
  color: var(--theme-heading);
  font-size: 0.72rem;
  font-weight: var(--type-weight-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--theme-control-background);
  border: 1px solid var(--theme-control-border);
  border-radius: 999px;
  box-shadow: inset 0 1px 0 var(--theme-control-inner-shadow);
}

body.theme-source .course-detail--edit-wrap {
  display: inline-flex;
  align-items: center;
}

body.theme-source .course-detail--modal-open,
body.theme-source .course-detail--header small,
body.theme-source .course-detail--header .text-warning,
body.theme-source .course-detail--header .text-muted,
body.theme-source .course-detail--header .text-light,
body.theme-source .course-detail--header .text-white-50 {
  color: var(--theme-text-muted) !important;
}

body.theme-source .course-detail--header .text-warning {
  color: var(--theme-secondary) !important;
}

body.theme-source .course-detail--header .contextual,
body.theme-source .course-detail--header [data-toggle="modal"] {
  color: var(--theme-primary-strong);
}

body.theme-source .course-detail--header .contextual {
  font-size: 0.92rem;
  letter-spacing: 0.02em;
}

body.theme-source .course-activity--next-button.btn-outline-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  position: relative;
  margin-right: 0.9rem;
  border-color: var(--theme-control-border);
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.94), rgba(8, 17, 31, 0.92));
  color: var(--theme-heading);
  border-radius: 1.1rem;
  padding: 0.88rem 1.35rem 0.82rem;
  height: auto;
  min-width: 7.8rem;
  box-shadow: var(--theme-shadow-md), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

body.theme-source .course-activity--next-button.btn-outline-light h5 {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  margin: 0;
  padding-top: 0 !important;
  color: inherit;
  font-size: 1.08rem;
  font-weight: var(--type-weight-semibold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

body.theme-source .course-activity--next-button.btn-outline-light span {
  display: inline-flex;
  align-items: center;
  transition: transform 0.18s ease;
}

body.theme-source .course-activity--next-button.btn-outline-light:hover,
body.theme-source .course-activity--next-button.btn-outline-light:focus {
  border-color: rgba(45, 212, 191, 0.38);
  background: linear-gradient(180deg, rgba(20, 184, 166, 0.16), rgba(8, 17, 31, 0.96));
  color: var(--theme-heading);
  box-shadow: var(--theme-shadow-lg), 0 0 0 1px rgba(20, 184, 166, 0.1), 0 0 24px rgba(20, 184, 166, 0.14);
  transform: translateY(-1px);
}

body.theme-source .course-activity--next-button.btn-outline-light:hover span,
body.theme-source .course-activity--next-button.btn-outline-light:focus span {
  transform: translateX(2px);
}

body.theme-source .course-activity--next-button.btn-outline-light[disabled="disabled"],
body.theme-source .course-activity--next-button.btn-outline-light[disabled="disabled"]:hover {
  border-color: var(--theme-control-border);
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.9), rgba(8, 17, 31, 0.88));
  color: var(--theme-disabled-text);
  box-shadow: none;
  transform: none;
}

body.theme-source .course-activity--next-button.btn-outline-light[disabled="disabled"] span,
body.theme-source .course-activity--next-button.btn-outline-light[disabled="disabled"]:hover span {
  transform: none;
}

body.theme-source[data-theme="light"] .course-activity--next-button.btn-outline-light {
  border-color: rgba(15, 23, 42, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(241, 245, 249, 0.98));
  color: var(--theme-heading);
  box-shadow: 0 16px 36px rgba(148, 163, 184, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

body.theme-source[data-theme="light"] .course-activity--next-button.btn-outline-light:hover,
body.theme-source[data-theme="light"] .course-activity--next-button.btn-outline-light:focus {
  border-color: rgba(20, 184, 166, 0.22);
  background: linear-gradient(180deg, rgba(240, 253, 250, 0.98), rgba(226, 248, 244, 0.98));
  color: #0f172a;
  box-shadow: 0 18px 44px rgba(45, 212, 191, 0.16), 0 0 0 1px rgba(20, 184, 166, 0.08);
}

body.theme-source[data-theme="light"] .course-activity--next-button.btn-outline-light[disabled="disabled"],
body.theme-source[data-theme="light"] .course-activity--next-button.btn-outline-light[disabled="disabled"]:hover {
  border-color: rgba(15, 23, 42, 0.08);
  background: linear-gradient(180deg, rgba(226, 232, 240, 0.95), rgba(214, 223, 234, 0.95));
  color: rgba(15, 23, 42, 0.34);
  box-shadow: none;
}

body.theme-source .course-activity--audio {
  margin-top: 0 !important;
  padding-top: 1.5rem;
}

body.theme-source .course-activity--audio .custom-audio-player {
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.94), rgba(15, 23, 42, 0.82));
  border: 1px solid var(--theme-border);
  border-radius: var(--theme-radius-xl);
  box-shadow: var(--theme-shadow-lg);
  max-width: 960px;
  padding: 2.5rem 2rem 1.75rem;
}

body.theme-source .course-activity--audio .timer {
  color: var(--theme-text-soft);
}

body.theme-source .course-activity--audio canvas {
  margin-top: 1.5rem;
  background: rgba(2, 6, 23, 0.9);
  border: 1px solid var(--theme-divider-soft);
}

body.theme-source .course-activity--audio .play-btn,
body.theme-source .course-activity--audio .rewind-btn,
body.theme-source .course-activity--audio .forward-btn {
  background: linear-gradient(180deg, var(--theme-secondary), var(--theme-secondary-strong));
  box-shadow: 0 6px 0 rgba(146, 64, 14, 0.72);
}

body.theme-source .course-activity--audio .forward-btn.disabled {
  background: rgba(148, 163, 184, 0.24);
  box-shadow: none;
}

body.theme-source .course-activity--audio .forward-btn.disabled::before,
body.theme-source .course-activity--audio .forward-btn.disabled::after {
  border-left-color: var(--theme-disabled-text);
}

body.theme-source #reminderModal .modal-dialog {
  max-width: 42rem;
  margin: 10vh auto;
}

body.theme-source #reminderModal .modal-title {
  color: var(--theme-heading);
  font-size: 1.1rem;
  letter-spacing: 0.14em;
}

body.theme-source #reminderModal .modal-body {
  color: var(--theme-text-soft);
}

body.theme-source #reminderModal .btn-outline-dark {
  border-color: var(--theme-control-border);
  color: var(--theme-heading);
  background: var(--theme-tertiary-background);
}

body.theme-source #reminderModal .btn-outline-dark:hover,
body.theme-source #reminderModal .btn-outline-dark:focus {
  border-color: rgba(45, 212, 191, 0.3);
  color: var(--theme-heading);
  background: var(--theme-primary-tint);
}

body.theme-source .course-activity--challenge-question,
body.theme-source .course-activity--test,
body.theme-source .course-activity--survey {
  color: var(--theme-text);
}

body.theme-source .course-detail--activity .course-activity--question--result--image,
body.theme-source .course-detail--activity .course-activity--description .ombuassets-image,
body.theme-source .course-detail--activity .course-activity--supplmentary-info--description .ombuassets-image,
body.theme-source .course-detail--activity .challenge-question__prompt-content .ombuassets-image,
body.theme-source .course-detail--activity .challenge-question__result-content .ombuassets-image {
  width: min(100%, 66.666%);
  max-width: min(100%, 66.666%);
  margin: 1.35rem auto 1.6rem;
  float: none !important;
  text-align: center;
  display: block;
}

body.theme-source[data-theme="dark"] .course-detail--activity .course-activity--description .ombuassets-image,
body.theme-source[data-theme="dark"] .course-detail--activity .course-activity--supplmentary-info--description .ombuassets-image,
body.theme-source[data-theme="dark"] .course-detail--activity .challenge-question__prompt-content .ombuassets-image,
body.theme-source[data-theme="dark"] .course-detail--activity .challenge-question__result-content .ombuassets-image,
body.theme-source[data-theme="dark"] .course-detail--activity .course-activity--question--result--image {
  padding: 1rem;
  background: linear-gradient(180deg, rgba(226, 232, 240, 0.9), rgba(203, 213, 225, 0.84));
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: calc(var(--theme-radius-md) + 0.15rem);
  box-shadow: 0 20px 48px rgba(2, 6, 23, 0.28);
}

body.theme-source .course-detail--activity .course-activity--question--result--image,
body.theme-source .course-detail--activity .course-activity--description img,
body.theme-source .course-detail--activity .course-activity--supplmentary-info--description img,
body.theme-source .course-detail--activity .challenge-question__prompt-content img,
body.theme-source .course-detail--activity .challenge-question__result-content img {
  display: block;
  width: min(100%, 66.666%) !important;
  max-width: min(100%, 66.666%) !important;
  height: auto !important;
  margin: 1.35rem auto 1.6rem;
  border-radius: var(--theme-radius-md);
  border: 1px solid var(--theme-divider-soft);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .course-detail--activity .course-activity--description .ombuassets-image img,
body.theme-source .course-detail--activity .course-activity--supplmentary-info--description .ombuassets-image img,
body.theme-source .course-detail--activity .challenge-question__prompt-content .ombuassets-image img,
body.theme-source .course-detail--activity .challenge-question__result-content .ombuassets-image img {
  width: 100%;
  margin: 0;
}

body.theme-source .course-detail--activity .course-activity--description .ombuassets-image .caption,
body.theme-source .course-detail--activity .course-activity--supplmentary-info--description .ombuassets-image .caption,
body.theme-source .course-detail--activity .challenge-question__prompt-content .ombuassets-image .caption,
body.theme-source .course-detail--activity .challenge-question__result-content .ombuassets-image .caption {
  margin-top: 0.55rem;
  padding: 0;
  color: var(--theme-text-muted);
  font-size: 0.88rem;
  line-height: 1.5;
}

body.theme-source .challenge-question__question-block {
  margin-bottom: 1.75rem;
  padding: 1.4rem 1.5rem;
  background: var(--theme-card-gradient);
  border: 1px solid var(--theme-border);
  border-radius: var(--theme-radius-lg);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .challenge-question__prompt-content,
body.theme-source .challenge-question__prompt-content p {
  color: var(--theme-heading) !important;
  font-family: var(--font-heading) !important;
  font-size: clamp(1.05rem, 2vw, 1.3rem) !important;
  font-weight: var(--type-weight-semibold) !important;
  line-height: 1.35 !important;
  letter-spacing: -0.02em;
}

body.theme-source .challenge-question__prompt-content {
  margin-bottom: 1.15rem;
}

body.theme-source .challenge-question__choice-content,
body.theme-source .challenge-question__result-content,
body.theme-source .challenge-question__choice-content p,
body.theme-source .challenge-question__result-content p {
  color: var(--theme-text-soft) !important;
  font-family: var(--font-body) !important;
  font-size: 1rem !important;
  font-weight: var(--type-weight-normal) !important;
  line-height: 1.55 !important;
}

body.theme-source .challenge-question__choices {
  display: grid;
  gap: 0.9rem;
}

body.theme-source .challenge-question__choice {
  margin-bottom: 0;
}

body.theme-source .challenge-question__choice-content {
  min-height: 0;
  padding: 1rem 1.1rem 1rem 4.25rem;
  background: var(--theme-control-background);
  border: 1px solid var(--theme-control-border);
  border-radius: calc(var(--theme-radius-md) + 0.15rem);
  box-shadow: inset 0 1px 0 var(--theme-control-inner-shadow);
  transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

body.theme-source .challenge-question__choice:hover .challenge-question__choice-content {
  border-color: var(--theme-border-strong);
  background: var(--theme-tertiary-background-hover);
  transform: translateY(-1px);
}

body.theme-source .challenge-question__choice-content::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: 50%;
  width: 1.45rem;
  height: 1.45rem;
  border: 1px solid var(--theme-control-border);
  border-radius: 0.35rem;
  background: var(--theme-control-strong-background);
  transform: translateY(-50%);
  transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

body.theme-source .challenge-question__choice input[type="radio"] + .challenge-question__choice-content::before {
  border-radius: 999px;
}

body.theme-source .challenge-question__choice input:checked + .challenge-question__choice-content {
  border-color: rgba(20, 184, 166, 0.38);
  background: linear-gradient(180deg, var(--theme-primary-tint), rgba(255, 255, 255, 0));
  box-shadow: var(--theme-shadow-glow);
}

body.theme-source .challenge-question__choice input:checked + .challenge-question__choice-content::before {
  border-color: var(--theme-primary);
  background: var(--theme-primary-tint);
}

body.theme-source .challenge-question__choice input[type="checkbox"]:checked + .challenge-question__choice-content::after {
  content: "";
  position: absolute;
  left: 1.45rem;
  top: 50%;
  width: 0.42rem;
  height: 0.82rem;
  border-right: 2px solid var(--theme-primary);
  border-bottom: 2px solid var(--theme-primary);
  transform: translateY(-62%) rotate(40deg);
}

body.theme-source .challenge-question__choice input[type="radio"]:checked + .challenge-question__choice-content::after {
  content: "";
  position: absolute;
  left: 1.34rem;
  top: 50%;
  width: 0.66rem;
  height: 0.66rem;
  border-radius: 999px;
  background: var(--theme-primary);
  transform: translateY(-50%);
}

body.theme-source .challenge-question__choice-content span::before,
body.theme-source .challenge-question__choice-content span::after,
body.theme-source .challenge-question__result-content span::before,
body.theme-source .challenge-question__result-content span::after {
  content: none !important;
  display: none !important;
}

body.theme-source .challenge-question__freeform-field textarea,
body.theme-source .challenge-question__freeform-field input[type="text"] {
  width: 100%;
  max-width: 100%;
  min-height: 9rem;
  padding: 1rem 1.1rem;
  color: var(--theme-text);
  background: var(--theme-control-background);
  border: 1px solid var(--theme-control-border);
  border-radius: var(--theme-radius-md);
  box-shadow: inset 0 1px 0 var(--theme-control-inner-shadow);
}

body.theme-source .challenge-question__freeform-field textarea::placeholder,
body.theme-source .challenge-question__freeform-field input[type="text"]::placeholder {
  color: var(--theme-text-muted);
}

body.theme-source .challenge-question__freeform-field textarea:focus,
body.theme-source .challenge-question__freeform-field input[type="text"]:focus {
  border-color: rgba(20, 184, 166, 0.45);
  box-shadow: var(--theme-ring);
  outline: 0;
}

body.theme-source .challenge-question__field-errors {
  color: var(--theme-danger-soft) !important;
  font-size: 0.95rem;
  margin-top: 0.9rem;
}

body.theme-source .challenge-question__field-errors ul {
  margin-bottom: 0;
}

body.theme-source .challenge-review__question {
  margin-bottom: 1.8rem;
  padding: 1.45rem 1.5rem 1.5rem;
  background: var(--theme-card-gradient);
  border: 1px solid var(--theme-border);
  border-radius: var(--theme-radius-lg);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .challenge-review__answers {
  display: grid;
  gap: 0.9rem;
}

body.theme-source .challenge-review__option.course-activity--question--answer--result,
body.theme-source .challenge-review__option.course-activity--test--question--answer--result {
  margin-bottom: 0 !important;
  padding: 0;
  background: var(--theme-control-background);
  border: 1px solid var(--theme-control-border);
  border-radius: var(--theme-radius-md);
  box-shadow: inset 0 1px 0 var(--theme-control-inner-shadow);
}

body.theme-source .challenge-review__option.course-activity--question--answer--result::before,
body.theme-source .challenge-review__option.course-activity--question--answer--result::after,
body.theme-source .challenge-review__option.course-activity--test--question--answer--result::before,
body.theme-source .challenge-review__option.course-activity--test--question--answer--result::after {
  content: none !important;
  display: none !important;
}

body.theme-source .challenge-review__option-main {
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  gap: 0.95rem;
  align-items: start;
  padding: 1rem 1rem 1rem 0.95rem;
}

body.theme-source .challenge-review__option-body {
  min-width: 0;
}

body.theme-source .challenge-review__option .challenge-question__result-content {
  color: var(--theme-text-soft);
}

body.theme-source .challenge-review__option .challenge-question__result-content span,
body.theme-source .challenge-review__option .challenge-question__result-content .math-tex {
  display: inline !important;
}

body.theme-source .challenge-review__option .challenge-question__result-content mjx-container {
  vertical-align: middle !important;
}

body.theme-source .challenge-review__option--neutral {
  background: var(--theme-control-background);
}

body.theme-source .challenge-review__option--selected-correct {
  background: linear-gradient(180deg, var(--theme-success-tint), var(--theme-control-background));
  border-color: rgba(45, 212, 191, 0.34);
  box-shadow: var(--theme-shadow-glow);
}

body.theme-source .challenge-review__option--selected-incorrect {
  background: linear-gradient(180deg, var(--theme-danger-tint), var(--theme-control-background));
  border-color: rgba(251, 113, 133, 0.3);
}

body.theme-source .challenge-review__option--missing {
  background: linear-gradient(180deg, var(--theme-secondary-tint), var(--theme-control-background));
  border-color: rgba(245, 158, 11, 0.34);
}

body.theme-source .challenge-review__marker {
  position: relative;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  border: 1px solid var(--theme-control-border);
  background: transparent;
}

body.theme-source .challenge-review__marker::before {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1;
}

body.theme-source .challenge-review__marker--neutral {
  border-color: var(--theme-control-border);
  background: transparent;
}

body.theme-source .challenge-review__marker--correct {
  border-color: var(--theme-primary);
  background: var(--theme-primary);
  color: #041018;
}

body.theme-source .challenge-review__marker--correct::before {
  content: "✓";
}

body.theme-source .challenge-review__marker--incorrect {
  border-color: var(--theme-danger);
  background: var(--theme-danger);
  color: #fff;
}

body.theme-source .challenge-review__marker--incorrect::before {
  content: "×";
}

body.theme-source .challenge-review__marker--missing {
  border-color: var(--theme-secondary);
  background: var(--theme-secondary-tint);
  color: var(--theme-secondary-strong);
}

body.theme-source .challenge-review__marker--missing::before {
  content: "!";
}

body.theme-source .challenge-review__answer-feedback {
  margin-top: 0.7rem;
  color: var(--theme-text-muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

body.theme-source .challenge-review__answer-feedback.correct {
  color: var(--theme-primary-strong);
}

body.theme-source .challenge-review__answer-feedback.incorrect {
  color: var(--theme-danger-soft);
}

body.theme-source .challenge-review__question-feedback {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border-radius: var(--theme-radius-md);
  border: 1px solid var(--theme-border);
  background: var(--theme-surface-soft);
  color: var(--theme-text-soft);
  line-height: 1.65;
}

body.theme-source .challenge-review__question-feedback.correct {
  border-color: rgba(45, 212, 191, 0.28);
  background: linear-gradient(180deg, var(--theme-success-tint), var(--theme-surface-soft));
}

body.theme-source .challenge-review__question-feedback.incorrect {
  border-color: rgba(251, 113, 133, 0.24);
  background: linear-gradient(180deg, var(--theme-danger-tint), var(--theme-surface-soft));
}

body.theme-source .challenge-review__question-feedback > :first-child {
  margin-top: 0;
}

body.theme-source .challenge-review__question-feedback > :last-child {
  margin-bottom: 0;
}

body.theme-source .challenge-review__feedback-label {
  margin: 0 0 0.55rem;
  color: var(--theme-heading);
  font-size: 0.78rem;
  font-weight: var(--type-weight-semibold);
  letter-spacing: var(--type-tracking-label);
  text-transform: uppercase;
}

body.theme-source .challenge-review__hint {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.2rem;
  padding: 0.72rem 0.9rem;
  color: var(--theme-text-soft);
  font-size: 0.92rem;
  font-weight: var(--type-weight-medium);
  line-height: 1.4;
  background: linear-gradient(180deg, var(--theme-secondary-tint), rgba(245, 158, 11, 0.04));
  border: 1px solid rgba(245, 158, 11, 0.22);
  border-radius: var(--theme-radius-md);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

body.theme-source .challenge-review__hint-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.18rem 0.48rem;
  color: var(--theme-secondary-strong);
  font-size: 0.68rem;
  font-weight: var(--type-weight-semibold);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.22);
  border-radius: 999px;
}

body.theme-source .challenge-review__actions {
  margin-top: 0.15rem;
}

body.theme-source .challenge-review__actions-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  align-items: center;
}

body.theme-source .challenge-review__secondary-action {
  min-width: 7rem;
}

body.theme-source .challenge-review__summary-card {
  padding: 1.4rem 1.4rem 1.5rem;
  background: var(--theme-card-gradient);
  border: 1px solid var(--theme-border);
  border-radius: var(--theme-radius-lg);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .challenge-review__summary-heading {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  margin-bottom: 1rem;
  color: var(--theme-heading);
}

body.theme-source .challenge-review__summary-heading.test--passed {
  color: var(--theme-primary-strong);
}

body.theme-source .challenge-review__summary-heading.test--failed {
  color: var(--theme-danger-soft);
}

body.theme-source .challenge-review__summary-content,
body.theme-source .challenge-review__summary-content ul {
  color: var(--theme-text-soft);
}

body.theme-source .challenge-review__summary-content ul {
  margin-bottom: 0;
  padding-left: 1.2rem;
}

body.theme-source .challenge-review__summary-content li + li {
  margin-top: 0.45rem;
}

body.theme-source .challenge-review__summary-actions {
  margin-top: 1.25rem;
}

body.theme-source .challenge-review__results-label {
  margin-bottom: 1rem;
  color: var(--theme-text-muted);
  font-size: 0.78rem;
  font-weight: var(--type-weight-semibold);
  letter-spacing: var(--type-tracking-label);
  text-transform: uppercase;
}

body.theme-source .challenge-review__results-list {
  display: grid;
  gap: 1.25rem;
}

body.theme-source .challenge-review__test-shell .course-activity--question--result--image {
  margin-bottom: 1rem;
  border-radius: var(--theme-radius-md);
  border: 1px solid var(--theme-divider-soft);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .course-activity--test-overview__hero-copy,
body.theme-source .course-activity--test-overview__summary-card,
body.theme-source .course-activity--test-overview__description-card,
body.theme-source .course-activity--test-overview__reminder-card,
body.theme-source .course-activity--test-overview__checklist-card {
  background: var(--theme-card-gradient);
  border: 1px solid var(--theme-border);
  border-radius: var(--theme-radius-lg);
  box-shadow: var(--theme-shadow-md);
}

body.theme-source .course-activity--test-overview__hero-copy {
  padding: 1.5rem 1.6rem 1.65rem;
}

body.theme-source .course-activity--test-overview__eyebrow,
body.theme-source .course-activity--test-overview__section-label {
  margin-bottom: 0.75rem;
}

body.theme-source .course-activity--test-overview__title {
  margin: 0 0 0.8rem;
  color: var(--theme-heading);
  font-size: clamp(1.8rem, 3vw, 2.45rem);
  font-weight: var(--type-weight-semibold);
  letter-spacing: -0.035em;
  line-height: 1.05;
}

body.theme-source .course-activity--test-overview__lead {
  max-width: 36rem;
  margin: 0;
  color: var(--theme-text-soft);
  font-size: 1rem;
  line-height: 1.7;
}

body.theme-source .course-activity--test-overview__hero-description {
  margin-top: 1.35rem;
}

body.theme-source .course-activity--test-overview__summary-card {
  padding: 1.45rem 1.4rem;
}

body.theme-source .course-activity--test-overview__summary-grid {
  display: grid;
  gap: 0.85rem;
}

body.theme-source .course-activity--test-overview__summary-item {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: baseline;
  padding: 0.8rem 0.95rem;
  background: var(--theme-control-background);
  border: 1px solid var(--theme-control-border);
  border-radius: var(--theme-radius-md);
  box-shadow: inset 0 1px 0 var(--theme-control-inner-shadow);
}

body.theme-source .course-activity--test-overview__summary-label {
  color: var(--theme-text-muted);
  font-size: 0.74rem;
  font-weight: var(--type-weight-semibold);
  letter-spacing: var(--type-tracking-label);
  text-transform: uppercase;
}

body.theme-source .course-activity--test-overview__summary-value {
  color: var(--theme-heading);
  font-size: 1rem;
  font-weight: var(--type-weight-semibold);
  text-align: right;
}

body.theme-source .course-activity--test-overview__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.38fr) minmax(18rem, 0.92fr);
  gap: 1.45rem;
  align-items: start;
}

body.theme-source .course-activity--test-overview__main,
body.theme-source .course-activity--test-overview__sidebar {
  display: grid;
  gap: 1.25rem;
  align-content: start;
}

body.theme-source .course-activity--test-overview__description-card,
body.theme-source .course-activity--test-overview__reminder-card,
body.theme-source .course-activity--test-overview__checklist-card {
  padding: 1.4rem 1.45rem 1.5rem;
}

body.theme-source .course-activity--test-overview__description {
  color: var(--theme-text-soft);
  line-height: 1.72;
}

body.theme-source .course-activity--test-overview__description > :first-child,
body.theme-source .course-activity--test-overview__reminder-copy > :first-child {
  margin-top: 0;
}

body.theme-source .course-activity--test-overview__description > :last-child,
body.theme-source .course-activity--test-overview__reminder-copy > :last-child {
  margin-bottom: 0;
}

body.theme-source .course-activity--test-overview__reminder-card {
  background: linear-gradient(180deg, rgba(245, 158, 11, 0.08), rgba(15, 23, 42, 0.94));
  border-color: rgba(245, 158, 11, 0.18);
}

body.theme-source .course-activity--test-overview__reminder-head {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 0.9rem;
}

body.theme-source .course-activity--test-overview__reminder-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  color: var(--theme-secondary-strong);
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.22);
  border-radius: 999px;
}

body.theme-source .course-activity--test-overview__reminder-copy {
  color: var(--theme-text-soft);
  line-height: 1.7;
}

body.theme-source .course-activity--test-overview__checklist {
  display: grid;
  gap: 0.8rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

body.theme-source .course-activity--test-overview__checklist-item {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
  padding: 0.8rem 0.9rem;
  color: var(--theme-text-soft);
  line-height: 1.55;
  background: var(--theme-control-background);
  border: 1px solid var(--theme-control-border);
  border-radius: var(--theme-radius-md);
  box-shadow: inset 0 1px 0 var(--theme-control-inner-shadow);
}

body.theme-source .course-activity--test-overview__checklist-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  color: var(--theme-primary-strong);
  background: var(--theme-primary-tint);
  border: 1px solid rgba(20, 184, 166, 0.2);
  border-radius: 999px;
}

body.theme-source .course-activity--test--info .container {
  position: relative;
}

body.theme-source .fixed-timer {
  top: 1rem !important;
  background: var(--theme-control-strong-background) !important;
  color: var(--theme-heading);
  padding: 0.75rem 1rem 0.55rem !important;
  border: 1px solid var(--theme-control-border) !important;
  border-radius: var(--theme-radius-md) !important;
  box-shadow: var(--theme-shadow-md) !important;
  backdrop-filter: blur(16px);
}

body.theme-source .course-activity--test--info--timer,
body.theme-source .course-activity--test--info--question-counter,
body.theme-source .course-activity--test--info .question,
body.theme-source .course-activity--test--info .time {
  color: var(--theme-heading) !important;
}

body.theme-source .course-activity--test--info .time-text,
body.theme-source .course-activity--test--info .question-total,
body.theme-source .course-activity--test--info .question-number {
  color: var(--theme-primary-strong) !important;
}

body.theme-source .course-activity--survey > p:first-child {
  color: var(--theme-text-soft);
}

@media (max-width: 767.98px) {
  body.theme-source .course-detail--activity .course-activity--question--result--image,
  body.theme-source .course-detail--activity .course-activity--description img,
  body.theme-source .course-detail--activity .course-activity--supplmentary-info--description img,
  body.theme-source .course-detail--activity .challenge-question__prompt-content img,
  body.theme-source .course-detail--activity .challenge-question__result-content img,
  body.theme-source .course-detail--activity .course-activity--description .ombuassets-image,
  body.theme-source .course-detail--activity .course-activity--supplmentary-info--description .ombuassets-image,
  body.theme-source .course-detail--activity .challenge-question__prompt-content .ombuassets-image,
  body.theme-source .course-detail--activity .challenge-question__result-content .ombuassets-image {
    width: 100%;
    max-width: 100%;
  }

  body.theme-source .challenge-question__question-block {
    padding: 1rem 1rem 1.1rem;
  }

  body.theme-source .challenge-question__choice-content {
    padding: 0.9rem 0.95rem 0.9rem 3.5rem;
  }

  body.theme-source .challenge-question__choice-content::before {
    left: 0.85rem;
    width: 1.25rem;
    height: 1.25rem;
  }

  body.theme-source .challenge-question__choice input[type="checkbox"]:checked + .challenge-question__choice-content::after {
    left: 1.22rem;
  }

  body.theme-source .challenge-question__choice input[type="radio"]:checked + .challenge-question__choice-content::after {
    left: 1.14rem;
    width: 0.54rem;
    height: 0.54rem;
  }

  body.theme-source .challenge-review__question {
    padding: 1.15rem 1rem 1.2rem;
  }

  body.theme-source .challenge-review__option-main {
    grid-template-columns: 1.85rem minmax(0, 1fr);
    gap: 0.8rem;
    padding: 0.9rem;
  }

  body.theme-source .challenge-review__marker {
    width: 1.85rem;
    height: 1.85rem;
  }

  body.theme-source .course-activity--test-overview__layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  body.theme-source .page-title--title,
  body.theme-source .dashboard-courses,
  body.theme-source .course-list--form .container,
  body.theme-source #footer .container {
    border-radius: var(--theme-radius-md);
  }

  body.theme-source .page-title--title {
    width: min(calc(100% - 1rem), 1300px);
  }

  body.theme-source .course-card {
    min-width: 100%;
    max-width: 100%;
  }

  body.theme-source .course-list .card-deck {
    display: block;
  }
}
