body.lms-shell {
  --lms-font-body: "Golos Text", sans-serif;
  --lms-font-heading: "Manrope", sans-serif;
  --lms-brand-rgb: 79, 70, 229;
  --lms-header-bg: rgba(255, 255, 255, 0.9);
  --lms-header-text: var(--lms-text);
  --lms-header-border: var(--lms-border);
  --lms-brand-pattern: linear-gradient(90deg, rgba(var(--lms-brand-rgb), 0.035) 1px, transparent 1px);
  min-height: 100vh;
  font-family: var(--lms-font-body);
  background-color: var(--lms-bg);
  background-image:
    linear-gradient(180deg, transparent 0 72%, rgba(var(--lms-brand-rgb), 0.045) 100%),
    var(--lms-brand-pattern);
  background-size: auto, 32px 32px;
}

body.lms-shell[data-lms-brand='modskill'] {
  --lms-bg: #f4f4fb;
  --lms-bg-2: #eceefe;
  --lms-surface: #ffffff;
  --lms-surface-2: #f4f3fb;
  --lms-text: #17162d;
  --lms-muted: #66647a;
  --lms-border: rgba(36, 31, 79, 0.13);
  --lms-primary: #5d5bd7;
  --lms-primary-2: #334ec8;
  --lms-accent: #ec7658;
  --lms-success: #268a66;
  --lms-danger: #c44852;
  --lms-ink: #0f0c29;
  --lms-brand-rgb: 93, 91, 215;
  --lms-header-bg: rgba(15, 12, 41, 0.94);
  --lms-header-text: #ffffff;
  --lms-header-border: rgba(255, 255, 255, 0.12);
  --lms-shadow: 0 22px 48px rgba(32, 27, 82, 0.15);
  --lms-shadow-soft: 0 10px 26px rgba(32, 27, 82, 0.09);
  --lms-brand-pattern:
    linear-gradient(rgba(72, 67, 170, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(72, 67, 170, 0.035) 1px, transparent 1px);
}

body.lms-shell[data-lms-brand='yaskill'] {
  --lms-font-body: "Golos Text", sans-serif;
  --lms-font-heading: "Montserrat", sans-serif;
  --lms-bg: #edf5f3;
  --lms-bg-2: #e4efec;
  --lms-surface: #ffffff;
  --lms-surface-2: #eff6f4;
  --lms-text: #103038;
  --lms-muted: #5d7073;
  --lms-border: rgba(16, 48, 56, 0.14);
  --lms-primary: #169aaa;
  --lms-primary-2: #0b6573;
  --lms-accent: #f2a56c;
  --lms-success: #2c8c6a;
  --lms-danger: #c95358;
  --lms-ink: #071a1e;
  --lms-brand-rgb: 22, 154, 170;
  --lms-header-bg: rgba(6, 27, 31, 0.92);
  --lms-header-text: #f8f4ee;
  --lms-header-border: rgba(116, 211, 219, 0.2);
  --lms-shadow: 0 22px 46px rgba(9, 44, 49, 0.16);
  --lms-shadow-soft: 0 10px 24px rgba(9, 44, 49, 0.1);
  --lms-brand-pattern: repeating-linear-gradient(
    135deg,
    rgba(22, 154, 170, 0.025) 0 1px,
    transparent 1px 18px
  );
}

body.lms-shell[data-lms-brand='makpp'] {
  --lms-font-body: "Source Sans 3", sans-serif;
  --lms-font-heading: "Source Sans 3", sans-serif;
  --lms-bg: #f2f4f7;
  --lms-bg-2: #e9eef5;
  --lms-surface: #ffffff;
  --lms-surface-2: #f5f7fa;
  --lms-text: #303651;
  --lms-muted: #70778e;
  --lms-border: rgba(48, 54, 81, 0.13);
  --lms-primary: #4876c6;
  --lms-primary-2: #315da8;
  --lms-accent: #df6f78;
  --lms-success: #31866a;
  --lms-danger: #c34f5f;
  --lms-ink: #1e2335;
  --lms-brand-rgb: 72, 118, 198;
  --lms-header-bg: rgba(255, 255, 255, 0.95);
  --lms-header-text: #303651;
  --lms-header-border: rgba(48, 54, 81, 0.1);
  --lms-shadow: 0 20px 44px rgba(48, 54, 81, 0.13);
  --lms-shadow-soft: 0 9px 24px rgba(48, 54, 81, 0.08);
  --lms-brand-pattern: repeating-linear-gradient(
    0deg,
    transparent 0 31px,
    rgba(72, 118, 198, 0.035) 31px 32px
  );
}

body.lms-shell[data-lms-theme='dark'][data-lms-brand='modskill'] {
  --lms-bg: #0f0c29;
  --lms-bg-2: #151238;
  --lms-surface: #1c1942;
  --lms-surface-2: #171535;
  --lms-text: #f5f3ff;
  --lms-muted: #bbb7d2;
  --lms-border: rgba(224, 220, 255, 0.15);
  --lms-primary: #9c96ff;
  --lms-primary-2: #6b7cff;
  --lms-accent: #ff9a78;
  --lms-success: #77d4ac;
  --lms-danger: #ff8791;
  --lms-header-bg: rgba(15, 12, 41, 0.96);
}

body.lms-shell[data-lms-theme='dark'][data-lms-brand='yaskill'] {
  --lms-bg: #06181c;
  --lms-bg-2: #0a2226;
  --lms-surface: #102a2f;
  --lms-surface-2: #0c2428;
  --lms-text: #f8f4ee;
  --lms-muted: #abc5c7;
  --lms-border: rgba(151, 224, 226, 0.15);
  --lms-primary: #54d2dc;
  --lms-primary-2: #1ba3b1;
  --lms-accent: #ffc18d;
  --lms-success: #7bd7ac;
  --lms-danger: #ff8f92;
  --lms-header-bg: rgba(5, 21, 24, 0.96);
}

body.lms-shell[data-lms-theme='dark'][data-lms-brand='makpp'] {
  --lms-bg: #171c2c;
  --lms-bg-2: #1d2437;
  --lms-surface: #252d42;
  --lms-surface-2: #20273a;
  --lms-text: #f2f5fb;
  --lms-muted: #b6bed1;
  --lms-border: rgba(216, 226, 245, 0.14);
  --lms-primary: #8aafea;
  --lms-primary-2: #5e8bd4;
  --lms-accent: #f4939b;
  --lms-success: #7ac8a9;
  --lms-danger: #ff8e9c;
  --lms-header-bg: rgba(30, 36, 55, 0.96);
  --lms-header-text: #f2f5fb;
}

body.lms-shell h1,
body.lms-shell h2,
body.lms-shell h3,
body.lms-shell .brand-name,
body.lms-shell .course-card h2,
body.lms-shell .course-v2-course-title h1 {
  font-family: var(--lms-font-heading);
  letter-spacing: 0;
}

body.lms-shell .site-header {
  position: sticky;
  top: 0;
  z-index: 90;
  color: var(--lms-header-text);
  background: var(--lms-header-bg);
  border-bottom-color: var(--lms-header-border);
  backdrop-filter: blur(18px) saturate(1.12);
}

body.lms-shell .header-content {
  min-height: 72px;
}

body.lms-shell .brand-link,
body.lms-shell .site-header .nav-greeting,
body.lms-shell .site-header .staff-nav-role {
  color: var(--lms-header-text);
}

body.lms-shell .brand-logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

body.lms-shell .brand-name {
  font-size: 1.08rem;
  font-weight: 800;
}

body.lms-shell[data-lms-brand='modskill'] .site-header .brand-dot,
body.lms-shell[data-lms-brand='yaskill'] .site-header .brand-dot {
  color: color-mix(in srgb, var(--lms-primary) 72%, #ffffff);
}

body.lms-shell[data-lms-brand='makpp'] .brand-link {
  max-width: 390px;
}

body.lms-shell[data-lms-brand='makpp'] .brand-name {
  color: var(--lms-header-text);
  font-size: 1rem;
}

body.lms-shell .site-header .btn-secondary,
body.lms-shell .site-header .btn-outline,
body.lms-shell .site-header .lms-theme-toggle {
  color: var(--lms-header-text);
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--lms-header-border);
  box-shadow: none;
}

body.lms-shell[data-lms-brand='makpp']:not([data-lms-theme='dark']) .site-header .btn-secondary,
body.lms-shell[data-lms-brand='makpp']:not([data-lms-theme='dark']) .site-header .btn-outline,
body.lms-shell[data-lms-brand='makpp']:not([data-lms-theme='dark']) .site-header .lms-theme-toggle {
  background: #f2f4f7;
}

body.lms-shell .lms-nav-toggle {
  color: var(--lms-header-text);
  border-color: var(--lms-header-border);
  background: rgba(255, 255, 255, 0.08);
}

body.lms-shell .btn-primary,
body.lms-shell .btn-gradient,
body.lms-shell .course-header-btn-accent,
body.lms-shell .demo-sticky-btn,
body.lms-shell .welcome-start-btn {
  background: var(--lms-primary);
  border-color: transparent;
  box-shadow: 0 10px 26px rgba(var(--lms-brand-rgb), 0.22);
}

body.lms-shell[data-lms-brand='modskill'] .btn-primary,
body.lms-shell[data-lms-brand='modskill'] .btn-gradient,
body.lms-shell[data-lms-brand='modskill'] .course-header-btn-accent,
body.lms-shell[data-lms-brand='modskill'] .demo-sticky-btn,
body.lms-shell[data-lms-brand='modskill'] .welcome-start-btn {
  background: linear-gradient(135deg, #5d5bd7, #7b55c7);
}

body.lms-shell[data-lms-brand='yaskill'] .btn-primary,
body.lms-shell[data-lms-brand='yaskill'] .btn-gradient,
body.lms-shell[data-lms-brand='yaskill'] .course-header-btn-accent,
body.lms-shell[data-lms-brand='yaskill'] .demo-sticky-btn,
body.lms-shell[data-lms-brand='yaskill'] .welcome-start-btn {
  background: linear-gradient(135deg, #18a8b7, #0b6573);
}

body.lms-shell[data-lms-brand='makpp'] .btn-primary,
body.lms-shell[data-lms-brand='makpp'] .btn-gradient,
body.lms-shell[data-lms-brand='makpp'] .course-header-btn-accent,
body.lms-shell[data-lms-brand='makpp'] .demo-sticky-btn,
body.lms-shell[data-lms-brand='makpp'] .welcome-start-btn {
  background: #4876c6;
}

body.lms-shell .course-card,
body.lms-shell .lms-course-hero,
body.lms-shell .section-card,
body.lms-shell .course-diagram,
body.lms-shell .demo-similar-courses,
body.lms-shell .message-thread,
body.lms-shell .message-form-wrapper {
  border-color: var(--lms-border);
  box-shadow: var(--lms-shadow-soft);
}

body.lms-shell[data-lms-brand='modskill'] .course-card,
body.lms-shell[data-lms-brand='modskill'] .lms-course-hero {
  border-top: 3px solid #5d5bd7;
}

body.lms-shell[data-lms-brand='yaskill'] .course-card,
body.lms-shell[data-lms-brand='yaskill'] .lms-course-hero {
  border-top: 3px solid #18a8b7;
}

body.lms-shell[data-lms-brand='makpp'] .course-card,
body.lms-shell[data-lms-brand='makpp'] .lms-course-hero {
  border-left: 4px solid #4876c6;
}

body.lms-shell[data-lms-brand='modskill'] .lms-course-card-cover,
body.lms-shell[data-lms-brand='modskill'] .lms-course-hero__media,
body.lms-shell[data-lms-brand='modskill'] .welcome-card__media,
body.lms-shell[data-lms-brand='modskill'] .demo-similar-card__cover {
  background: #0f0c29;
}

body.lms-shell[data-lms-brand='yaskill'] .lms-course-card-cover,
body.lms-shell[data-lms-brand='yaskill'] .lms-course-hero__media,
body.lms-shell[data-lms-brand='yaskill'] .welcome-card__media,
body.lms-shell[data-lms-brand='yaskill'] .demo-similar-card__cover {
  background: #071a1e;
}

body.lms-shell[data-lms-brand='makpp'] .lms-course-card-cover,
body.lms-shell[data-lms-brand='makpp'] .lms-course-hero__media,
body.lms-shell[data-lms-brand='makpp'] .welcome-card__media,
body.lms-shell[data-lms-brand='makpp'] .demo-similar-card__cover {
  background: #e5eaf2;
}

body.lms-shell[data-lms-brand='makpp'] .lms-course-card-cover::after,
body.lms-shell[data-lms-brand='makpp'] .lms-course-hero__media::after,
body.lms-shell[data-lms-brand='makpp'] .welcome-card__media::after,
body.lms-shell[data-lms-brand='makpp'] .demo-similar-card__cover::after {
  background: linear-gradient(180deg, rgba(30, 35, 53, 0.02), rgba(30, 35, 53, 0.58));
}

body.lms-shell .course-type-main {
  background: color-mix(in srgb, var(--lms-success) 12%, var(--lms-surface));
  border-color: color-mix(in srgb, var(--lms-success) 28%, var(--lms-border));
  color: var(--lms-success);
}

body.lms-shell .course-type-demo,
body.lms-shell .course-demo-note {
  background: color-mix(in srgb, var(--lms-accent) 12%, var(--lms-surface));
  border-color: color-mix(in srgb, var(--lms-accent) 32%, var(--lms-border));
}

body.lms-shell .course-card:hover,
body.lms-shell .section-card:hover,
body.lms-shell .demo-similar-card:hover {
  border-color: color-mix(in srgb, var(--lms-primary) 42%, var(--lms-border));
  box-shadow: var(--lms-shadow);
}

body.lms-shell[data-lms-brand='modskill'] .login-showcase-card {
  background:
    linear-gradient(105deg, rgba(15, 12, 41, 0.92), rgba(44, 38, 104, 0.58)),
    var(--login-showcase-image, url('/images/modskill-hero.jpg')) center / cover;
}

body.lms-shell[data-lms-brand='yaskill'] .login-showcase-card {
  background:
    linear-gradient(105deg, rgba(5, 22, 25, 0.94), rgba(8, 61, 66, 0.54)),
    var(--login-showcase-image, url('/images/modskill-hero.jpg')) center / cover;
}

body.lms-shell[data-lms-brand='makpp'] .login-showcase-card {
  background:
    linear-gradient(105deg, rgba(235, 239, 247, 0.95), rgba(235, 239, 247, 0.72)),
    var(--login-showcase-image, url('/images/modskill-hero.jpg')) center / cover;
}

body.lms-shell[data-lms-brand='makpp'] .login-showcase-copy,
body.lms-shell[data-lms-brand='makpp'] .login-showcase-copy p,
body.lms-shell[data-lms-brand='makpp'] .login-showcase-list {
  color: #1e2335;
  text-shadow: none;
}

body.lms-shell .login-screen {
  min-height: calc(100vh - 138px);
  padding: clamp(24px, 5vh, 56px) 0;
  background: transparent;
}

body.lms-shell .login-shell {
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, 430px);
  gap: clamp(18px, 3vw, 42px);
  align-items: stretch;
  min-height: min(620px, calc(100vh - 190px));
}

body.lms-shell .login-showcase,
body.lms-shell .login-panel {
  height: auto;
  min-height: 520px;
}

body.lms-shell .login-showcase {
  border: 1px solid var(--lms-border);
  border-radius: 8px;
  background: var(--lms-surface);
  box-shadow: var(--lms-shadow);
}

body.lms-shell .login-showcase::before,
body.lms-shell .login-showcase::after,
body.lms-shell .login-panel::before {
  display: none;
}

body.lms-shell .login-showcase-card {
  position: relative;
  inset: auto;
  height: 100%;
  min-height: 520px;
  padding: clamp(28px, 5vw, 64px);
  border: 0;
  border-radius: 8px;
}

body.lms-shell .login-showcase-copy {
  max-width: 500px;
  margin: auto 0 0;
  color: #ffffff;
}

body.lms-shell .login-showcase-kicker {
  display: inline-flex;
  margin-bottom: 18px;
  color: color-mix(in srgb, var(--lms-primary) 60%, #ffffff);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.4;
  text-transform: uppercase;
}

body.lms-shell .login-showcase-lead {
  max-width: 14ch;
  margin: 0;
  color: #ffffff;
  font-family: var(--lms-font-heading);
  font-size: clamp(2.35rem, 5vw, 4.75rem);
  font-weight: 800;
  line-height: 0.98;
  overflow-wrap: anywhere;
  text-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
}

body.lms-shell .login-showcase-sublead {
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(1.05rem, 2vw, 1.45rem);
}

body.lms-shell .login-showcase-list {
  display: grid;
  gap: 9px;
  margin-top: 28px;
}

body.lms-shell .login-showcase-list li {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.96rem;
  font-weight: 600;
}

body.lms-shell .login-showcase-list li::before {
  background: var(--lms-accent);
}

body.lms-shell[data-lms-brand='makpp'] .login-showcase-kicker {
  color: #4876c6;
}

body.lms-shell[data-lms-brand='makpp'] .login-showcase-lead,
body.lms-shell[data-lms-brand='makpp'] .login-showcase-sublead,
body.lms-shell[data-lms-brand='makpp'] .login-showcase-list li {
  color: #1e2335;
}

body.lms-shell[data-lms-brand='makpp'] .login-showcase-lead {
  max-width: 16ch;
  font-size: clamp(2.2rem, 4.2vw, 4rem);
  line-height: 1.04;
}

body.lms-shell .login-panel {
  display: flex;
}

body.lms-shell .login-panel-card {
  min-height: 520px;
  padding: clamp(26px, 4vw, 46px);
  border-radius: 8px;
}

body.lms-shell .login-panel-brand {
  color: var(--lms-primary);
  letter-spacing: 0;
}

body.lms-shell .login-panel-card h2 {
  color: var(--lms-text);
  font-family: var(--lms-font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  letter-spacing: 0;
}

body.lms-shell .auth-form label {
  color: var(--lms-text);
  font-weight: 700;
}

body.lms-shell .auth-form input {
  min-height: 48px;
}

body.lms-shell .auth-form .btn {
  min-height: 48px;
}

body.lms-shell .course-selection {
  min-height: calc(100vh - 150px);
  padding: clamp(30px, 5vw, 66px) 0 72px;
}

body.lms-shell .course-selection-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 420px);
  gap: 30px;
  align-items: end;
  max-width: none;
  width: 100%;
  padding: 0 0 24px;
  border-bottom: 1px solid var(--lms-border);
}

body.lms-shell .course-selection-header__copy {
  max-width: 820px;
}

body.lms-shell .course-selection-header h1 {
  margin: 0 0 10px;
  font-size: clamp(2.5rem, 6vw, 5.3rem);
  line-height: 0.98;
}

body.lms-shell .course-selection-header p {
  max-width: 720px;
  margin-bottom: 0;
  font-size: 1rem;
  line-height: 1.65;
}

.course-selection-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--lms-border);
  border-bottom: 1px solid var(--lms-border);
}

.course-selection-summary div {
  min-width: 0;
  padding: 14px 16px;
  border-right: 1px solid var(--lms-border);
}

.course-selection-summary div:last-child {
  border-right: 0;
}

.course-selection-summary dt {
  color: var(--lms-muted);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.course-selection-summary dd {
  margin: 4px 0 0;
  color: var(--lms-text);
  font-family: var(--lms-font-heading);
  font-size: 1.45rem;
  font-weight: 800;
}

body.lms-shell .course-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 350px), 1fr));
  gap: 18px;
  margin-top: 28px;
}

body.lms-shell .course-card {
  display: grid;
  grid-template-rows: auto auto auto auto;
  align-self: start;
  align-content: start;
  min-width: 0;
  gap: 0;
  padding: 0;
}

body.lms-shell .lms-course-card-cover {
  position: relative;
  display: flex;
  align-items: flex-end;
  box-sizing: border-box;
  width: 100%;
  height: 190px;
  min-height: 190px;
  aspect-ratio: auto;
  overflow: hidden;
  padding: 18px;
  color: #ffffff;
}

body.lms-shell .lms-course-card-cover img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

body.lms-shell .lms-course-card-cover::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 15, 12, 0.04), rgba(8, 15, 12, 0.64));
}

body.lms-shell .lms-course-card-cover.is-placeholder::after {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.18), transparent 46%),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.12) 0 1px, transparent 1px 12px);
}

body.lms-shell .lms-course-card-cover span {
  position: relative;
  z-index: 1;
  color: #ffffff;
  font-weight: 800;
  line-height: 1.15;
  text-shadow: 0 8px 22px rgba(0, 0, 0, 0.42);
}

body.lms-shell .course-card-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  padding: 18px;
}

body.lms-shell .course-card h2,
body.lms-shell .course-card h3 {
  margin: 0;
  color: var(--lms-text);
  font-family: var(--lms-font-heading);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  line-height: 1.2;
  overflow-wrap: anywhere;
}

body.lms-shell .course-card h3 {
  font-size: 1.2rem;
  line-height: 1.28;
}

body.lms-shell .course-card-groups {
  margin: 0;
  padding: 14px 18px;
  border-top: 1px solid var(--lms-border);
}

.course-card-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 12px 18px;
  border-top: 1px solid var(--lms-border);
  color: var(--lms-primary);
  font-weight: 800;
}

.course-card-action > :last-child {
  font-size: 1.35rem;
  transition: transform 160ms ease;
}

body.lms-shell .course-card:hover .course-card-action > :last-child {
  transform: translateX(4px);
}

body.lms-shell .course-selection [hidden] {
  display: none !important;
}

.course-selection-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 0 6px;
}

.course-filter-field {
  display: grid;
  gap: 8px;
  width: min(100%, 560px);
  color: var(--lms-text);
  font-size: 0.82rem;
  font-weight: 800;
}

.course-filter-field input {
  width: 100%;
  min-height: 50px;
  padding: 0 46px 0 15px;
  border: 1px solid var(--lms-border);
  border-radius: var(--lms-radius);
  outline: 0;
  background:
    linear-gradient(45deg, transparent 47%, var(--lms-muted) 48% 54%, transparent 55%) calc(100% - 17px) 29px / 8px 8px no-repeat,
    radial-gradient(circle, transparent 42%, var(--lms-muted) 44% 56%, transparent 58%) calc(100% - 22px) 18px / 13px 13px no-repeat,
    var(--lms-surface);
  color: var(--lms-text);
  font: inherit;
  font-weight: 500;
  box-shadow: var(--lms-shadow-soft);
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.course-filter-field input::placeholder {
  color: color-mix(in srgb, var(--lms-muted) 78%, transparent);
}

.course-filter-field input:focus-visible {
  border-color: var(--lms-primary);
  box-shadow: 0 0 0 3px rgba(var(--lms-brand-rgb), 0.16), var(--lms-shadow-soft);
}

.course-filter-status {
  margin: 0 0 14px;
  color: var(--lms-muted);
  font-size: 0.88rem;
  white-space: nowrap;
}

.course-library-section {
  padding: 30px 0 4px;
}

.course-library-section + .course-library-section {
  margin-top: 18px;
  border-top: 1px solid var(--lms-border);
}

.course-library-section__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
}

.course-library-section__header h2 {
  margin: 0;
  color: var(--lms-text);
  font-family: var(--lms-font-heading);
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  letter-spacing: 0;
  line-height: 1.2;
}

.course-library-section__header p {
  max-width: 680px;
  margin: 6px 0 0;
  color: var(--lms-muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

.course-library-section__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 9px;
  border: 1px solid color-mix(in srgb, var(--lms-primary) 24%, var(--lms-border));
  border-radius: 50%;
  background: color-mix(in srgb, var(--lms-primary) 8%, var(--lms-surface));
  color: var(--lms-primary);
  font-size: 0.86rem;
  font-weight: 800;
}

body.lms-shell .course-library-section .course-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr));
  align-items: start;
  margin-top: 18px;
}

.course-card-open {
  display: grid;
  grid-template-rows: 190px auto;
  align-content: start;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.course-card-open:focus-visible,
.course-card-action:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--lms-primary) 68%, #ffffff);
  outline-offset: -3px;
}

body.lms-shell .course-card-info {
  min-width: 0;
}

body.lms-shell .course-card-admin-control {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 64px;
  padding: 11px 18px;
  border-top: 1px solid var(--lms-border);
  background: color-mix(in srgb, var(--lms-primary) 4%, var(--lms-surface));
}

.course-card-admin-control__copy {
  display: grid;
  min-width: 0;
  gap: 2px;
  color: var(--lms-text);
  line-height: 1.2;
}

.course-card-admin-control__copy strong {
  font-size: 0.82rem;
}

.course-card-admin-control__copy small {
  color: var(--lms-muted);
  font-size: 0.72rem;
}

body.lms-shell .course-type-switch {
  display: inline-grid;
  grid-template-columns: 38px minmax(62px, auto);
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  min-height: 38px;
  padding: 4px 7px;
  border: 1px solid var(--lms-border);
  background: var(--lms-surface);
  color: var(--lms-text);
  cursor: pointer;
  font-family: inherit;
  font-size: 0.76rem;
  font-weight: 800;
  text-align: left;
  transition: border-color 160ms ease, background 160ms ease, opacity 160ms ease;
}

body.lms-shell .course-type-switch:hover {
  border-color: color-mix(in srgb, var(--lms-primary) 54%, var(--lms-border));
  background: color-mix(in srgb, var(--lms-primary) 6%, var(--lms-surface));
}

body.lms-shell .course-type-switch:focus-visible {
  outline: 3px solid rgba(var(--lms-brand-rgb), 0.2);
  outline-offset: 2px;
}

body.lms-shell .course-type-switch:disabled {
  cursor: wait;
  opacity: 0.58;
}

.course-type-switch__track {
  position: relative;
  display: block;
  width: 36px;
  height: 20px;
  border: 1px solid color-mix(in srgb, var(--lms-muted) 44%, var(--lms-border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--lms-muted) 18%, var(--lms-surface));
  transition: border-color 160ms ease, background 160ms ease;
}

.course-type-switch__track > span {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--lms-muted);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  transition: transform 160ms ease, background 160ms ease;
}

.course-type-switch[aria-checked='true'] .course-type-switch__track {
  border-color: var(--lms-primary);
  background: var(--lms-primary);
}

.course-type-switch[aria-checked='true'] .course-type-switch__track > span {
  transform: translateX(16px);
  background: #ffffff;
}

.course-library-section__empty,
.course-filter-empty {
  border: 1px dashed color-mix(in srgb, var(--lms-primary) 30%, var(--lms-border));
  border-radius: var(--lms-radius);
  background: color-mix(in srgb, var(--lms-primary) 4%, var(--lms-surface));
  color: var(--lms-muted);
}

.course-library-section__empty {
  margin: 18px 0 0;
  padding: 18px;
}

.course-filter-empty {
  display: grid;
  justify-items: center;
  gap: 4px;
  margin-top: 30px;
  padding: 30px 18px;
  text-align: center;
}

.course-filter-empty strong {
  color: var(--lms-text);
}

.course-admin-feedback {
  min-height: 1.4em;
  margin: 18px 0 0;
  color: var(--lms-muted);
  font-size: 0.86rem;
  text-align: right;
}

body.course-v2-shell[data-lms-brand='modskill'] {
  --course-v2-ink: #17162d;
  --course-v2-muted: #66647a;
  --course-v2-line: #dedcf0;
  --course-v2-surface: #ffffff;
  --course-v2-canvas: #f4f4fb;
  --course-v2-green: #5d5bd7;
  --course-v2-green-dark: #3e3caa;
  --course-v2-green-soft: #ebeafd;
  --course-v2-coral: #ec7658;
  --course-v2-coral-dark: #bd4f35;
  --course-v2-coral-soft: #fceae5;
  --course-v2-gold: #9a6d19;
  --course-v2-gold-soft: #f7eed4;
}

body.course-v2-shell[data-lms-brand='yaskill'] {
  --course-v2-ink: #103038;
  --course-v2-muted: #5d7073;
  --course-v2-line: #d7e5e2;
  --course-v2-surface: #ffffff;
  --course-v2-canvas: #edf5f3;
  --course-v2-green: #169aaa;
  --course-v2-green-dark: #0b6573;
  --course-v2-green-soft: #e0f3f2;
  --course-v2-coral: #e78858;
  --course-v2-coral-dark: #b45f35;
  --course-v2-coral-soft: #faebe1;
  --course-v2-gold: #8d711f;
  --course-v2-gold-soft: #f6efd6;
}

body.course-v2-shell[data-lms-brand='makpp'] {
  --course-v2-ink: #303651;
  --course-v2-muted: #70778e;
  --course-v2-line: #dce2ec;
  --course-v2-surface: #ffffff;
  --course-v2-canvas: #f2f4f7;
  --course-v2-green: #4876c6;
  --course-v2-green-dark: #315da8;
  --course-v2-green-soft: #e8eef9;
  --course-v2-coral: #df6f78;
  --course-v2-coral-dark: #b24d59;
  --course-v2-coral-soft: #f9e7e9;
  --course-v2-gold: #92721f;
  --course-v2-gold-soft: #f5eed8;
}

body.course-v2-shell .course-v2-sidebar,
body.course-v2-shell .course-v2-conversion {
  background: color-mix(in srgb, var(--course-v2-surface) 94%, transparent);
  backdrop-filter: blur(16px);
}

body.course-v2-shell[data-lms-brand='modskill'] .course-v2-sidebar {
  border-top: 4px solid #5d5bd7;
}

body.course-v2-shell[data-lms-brand='yaskill'] .course-v2-sidebar {
  border-top: 4px solid #18a8b7;
}

body.course-v2-shell[data-lms-brand='makpp'] .course-v2-sidebar {
  border-top: 4px solid #4876c6;
}

body.course-v2-shell .course-v2-course-head,
body.course-v2-shell .course-v2-route,
body.course-v2-shell .course-v2-section,
body.course-v2-shell .course-v2-demo-band,
body.course-v2-shell .course-v2-price,
body.course-v2-shell .course-v2-similar-card,
body.course-v2-shell .course-v2-legal-notice {
  border-radius: 8px;
}

body.course-v2-shell .course-v2-course-head {
  padding: 24px;
  border: 1px solid var(--course-v2-line);
  background: var(--course-v2-surface);
  box-shadow: var(--lms-shadow-soft);
}

body.course-v2-shell[data-lms-brand='modskill'] .course-v2-course-head {
  border-top: 4px solid #5d5bd7;
}

body.course-v2-shell[data-lms-brand='yaskill'] .course-v2-course-head {
  border-top: 4px solid #18a8b7;
}

body.course-v2-shell[data-lms-brand='makpp'] .course-v2-course-head {
  border-left: 4px solid #4876c6;
}

body.course-v2-shell .course-v2-section {
  overflow: hidden;
  background: var(--course-v2-surface);
  box-shadow: 0 8px 22px rgba(var(--lms-brand-rgb), 0.07);
}

body.course-v2-shell .course-v2-section[open] {
  border-color: color-mix(in srgb, var(--course-v2-green) 40%, var(--course-v2-line));
  box-shadow: 0 16px 34px rgba(var(--lms-brand-rgb), 0.11);
}

body.course-v2-shell .course-v2-resource,
body.course-v2-shell .course-v2-outcomes,
body.course-v2-shell .course-v2-prerequisite {
  border-radius: 6px;
}

body.course-v2-shell .course-v2-demo-band {
  border: 1px solid color-mix(in srgb, var(--course-v2-coral) 32%, var(--course-v2-line));
  border-left-width: 4px;
}

body.course-v2-shell .course-v2-legal-notice {
  border: 1px solid color-mix(in srgb, var(--course-v2-green) 26%, var(--course-v2-line));
  border-left: 4px solid var(--course-v2-green);
}

body.course-v2-shell .course-v2-legal-notice.is-demo {
  border-color: color-mix(in srgb, var(--course-v2-coral) 30%, var(--course-v2-line));
  border-left-color: var(--course-v2-coral);
}

body.course-v2-shell[data-lms-theme='dark'] {
  --course-v2-ink: var(--lms-text);
  --course-v2-muted: var(--lms-muted);
  --course-v2-line: var(--lms-border);
  --course-v2-surface: var(--lms-surface);
  --course-v2-canvas: var(--lms-bg);
  --course-v2-green: var(--lms-primary);
  --course-v2-green-dark: var(--lms-primary);
  --course-v2-green-soft: color-mix(in srgb, var(--lms-primary) 13%, var(--lms-surface));
  --course-v2-coral: var(--lms-accent);
  --course-v2-coral-dark: var(--lms-accent);
  --course-v2-coral-soft: color-mix(in srgb, var(--lms-accent) 13%, var(--lms-surface));
  --course-v2-gold: var(--lms-accent);
  --course-v2-gold-soft: color-mix(in srgb, var(--lms-accent) 12%, var(--lms-surface));
}

body.course-v2-shell[data-lms-theme='dark'] .course-v2-sidebar,
body.course-v2-shell[data-lms-theme='dark'] .course-v2-conversion,
body.course-v2-shell[data-lms-theme='dark'] .course-v2-course-head,
body.course-v2-shell[data-lms-theme='dark'] .course-v2-section,
body.course-v2-shell[data-lms-theme='dark'] .course-v2-route,
body.course-v2-shell[data-lms-theme='dark'] .course-v2-resource,
body.course-v2-shell[data-lms-theme='dark'] .course-v2-similar-card {
  color: var(--lms-text);
  background: var(--lms-surface);
  border-color: var(--lms-border);
}

@media (max-width: 980px) {
  body.lms-shell .header-content {
    min-height: 64px;
  }

  body.lms-shell .brand-logo {
    width: 42px;
    height: 42px;
  }

  body.course-v2-shell .course-v2-course-head {
    padding: 20px;
  }

  body.lms-shell .login-shell {
    grid-template-columns: minmax(0, 1fr);
    min-height: auto;
  }

  body.lms-shell .login-showcase {
    display: none;
  }

  body.lms-shell .login-panel {
    width: 100%;
    min-height: 0;
    max-width: none;
  }

  body.lms-shell .course-selection-header {
    grid-template-columns: 1fr;
  }

  .course-selection-toolbar {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
  }

  .course-filter-status {
    margin: 0;
  }

  .course-selection-summary {
    width: min(100%, 480px);
  }

  body.lms-shell .course-card-main {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  body.lms-shell {
    background-size: auto, 24px 24px;
  }

  body.lms-shell .lms-nav-toggle,
  body.lms-shell .main-nav .lms-theme-toggle {
    min-width: 48px;
    min-height: 48px;
  }

  body.lms-shell .site-header {
    position: sticky;
  }

  body.lms-shell .header-content {
    min-height: 60px;
  }

  body.lms-shell .brand-logo {
    width: 38px;
    height: 38px;
  }

  body.lms-shell .brand-name {
    max-width: min(58vw, 240px);
    overflow: hidden;
    font-size: 0.92rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.lms-shell .course-card,
  body.lms-shell .lms-course-hero,
  body.lms-shell .section-card,
  body.course-v2-shell .course-v2-course-head,
  body.course-v2-shell .course-v2-section {
    box-shadow: 0 7px 18px rgba(var(--lms-brand-rgb), 0.08);
  }

  body.course-v2-shell .course-v2-course-head {
    padding: 16px;
  }

  body.course-v2-shell .course-v2-course-title h1 {
    font-size: clamp(1.75rem, 8vw, 2.45rem);
  }

  body.lms-shell .login-screen {
    min-height: calc(100vh - 120px);
    padding: 18px 0 34px;
  }

  body.lms-shell .login-panel-card {
    min-height: auto;
    padding: 22px 18px;
  }

  body.lms-shell .course-selection-header h1 {
    font-size: clamp(2.35rem, 13vw, 4rem);
  }

  .course-selection-summary div {
    padding: 11px 10px;
  }

  body.lms-shell .lms-course-card-cover {
    height: 160px;
    min-height: 160px;
  }

  .course-card-open {
    grid-template-rows: 160px auto;
  }

  .course-library-section {
    padding-top: 24px;
  }

  .course-library-section__header {
    gap: 12px;
  }

  body.lms-shell .course-card-admin-control {
    align-items: stretch;
    flex-direction: column;
  }

  body.lms-shell .course-type-switch {
    width: 100%;
    grid-template-columns: 38px 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.lms-shell *,
  body.lms-shell *::before,
  body.lms-shell *::after {
    scroll-behavior: auto !important;
  }
}