/* Lightweight, text-node-only highlighting preserves whitespace and copy-code text. */
main pre .cc-code-keyword { color: #c4b5fd; }
main pre .cc-code-string { color: #fde68a; }
main pre .cc-code-number { color: #93c5fd; }
main pre .cc-code-comment { color: #a7b3c7; font-style: italic; }
/* CreezyCreates — student learning. Extends site.css tokens. */
.lms-nav-link { font: 600 .86rem var(--sans); color: var(--ink); text-decoration: none; padding: 8px 10px; border-radius: 8px; white-space: nowrap; }
.lms-nav-link:hover { background: var(--paper-2); color: var(--ink); }
.lms-nav-link.is-active { box-shadow: inset 0 -2px 0 var(--amber); }
.lms-nav-mobile { margin-bottom: 10px; width: 100%; justify-content: center; }
.nav-mobile-extra .btn-primary { width: 100%; justify-content: center; }

.lms { padding-bottom: clamp(48px, 8vw, 96px); }
.lms-h { font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; color: var(--slate); margin: 40px 0 14px; font-weight: 600; }
.lms-h span { color: var(--indigo); }
.lms-plain { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.lms-pre { white-space: pre-wrap; font-size: .95rem; color: var(--ink-2); }
.lms-static { margin: 0; padding: 12px 0; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

/* badges & notices */
.lms-badge { display: inline-block; font: 600 .68rem var(--mono); text-transform: lowercase; padding: 3px 8px; border-radius: 999px; background: var(--paper-2); color: var(--ink-2); border: 1px solid var(--line); vertical-align: 1px; }
.lms-badge.is-ok, .lms-badge.is-active, .lms-badge.is-accepted, .lms-badge.is-completed { background: var(--indigo-soft); color: var(--indigo-d); border-color: transparent; }
.lms-badge.is-warn, .lms-badge.is-changes_requested, .lms-badge.is-under_review, .lms-badge.is-submitted { background: var(--amber-soft); color: var(--ink); border-color: transparent; }
.lms-badge.is-rejected, .lms-badge.is-suspended, .lms-badge.is-canceled { background: #FBE3DE; color: #8A2414; border-color: transparent; }
.lms-notice-info { background: var(--indigo-soft); }
.lms-notice-ok { background: var(--indigo-soft); }
.lms-notice-preview { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.lms-notice-preview strong { color: var(--amber); }
.lms-verify-banner .lms-inline-form { margin-top: 8px; }
.lms-inline-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.lms-inline-form .field { flex: 1 1 220px; }
.lms-inline-form .form-status { flex-basis: 100%; margin: 0; }

/* sub-navigation */
.lms-subhead { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; padding: 18px 0; border-bottom: 1px dashed var(--line); margin-bottom: 28px; font-size: .92rem; }
.lms-subhead a { color: var(--slate); text-decoration: none; padding: 4px 0; }
.lms-subhead a.is-on { color: var(--ink); box-shadow: inset 0 -2px 0 var(--amber); font-weight: 600; }
.lms-who { margin-left: auto; color: var(--slate); }

/* auth */
.lms-auth { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(32px, 6vw, 96px); padding-top: clamp(36px, 6vw, 80px); align-items: start; }
.lms-auth-side { position: sticky; top: 110px; background: var(--ink); color: var(--paper); border-radius: 18px; padding: clamp(26px, 4vw, 44px); overflow: hidden; }
.lms-auth-side .kicker { color: var(--amber); }
.lms-auth-side .serif-italic { color: rgba(250,247,240,.75); margin: 28px 0 0; }
.lms-ladder { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; }
.lms-ladder li { font-family: var(--serif); font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.15; display: flex; gap: 14px; align-items: baseline; padding-left: calc(var(--i) * 14px); opacity: 0; animation: fadeUp .6s var(--ease) forwards; animation-delay: calc(var(--i) * 90ms + .1s); }
.lms-ladder li .mono { font-size: .72rem; color: var(--amber); }
.lms-ladder li:last-child { color: var(--amber); font-style: italic; }
.lms-auth-main .paper-form { margin-top: 26px; display: grid; gap: 16px; }
.lms-auth-main .form-grid { display: grid; }
.lms-switch { margin-top: 22px; color: var(--slate); }
.lms-done { margin-top: 26px; padding: 28px; border: 1.5px dashed var(--indigo); border-radius: 16px; background: var(--card); }
.lms-done:focus { outline: none; }
.lms-resend { margin-top: 40px; padding-top: 24px; border-top: 1px dashed var(--line); }

/* account */
.lms-account-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; align-items: start; }
.lms-account-side { display: grid; gap: 22px; }
.lms-account-side .paper-form { display: grid; gap: 14px; box-shadow: 6px 6px 0 var(--amber); }
.lms-signout { border: 1.5px dashed var(--line); border-radius: 14px; padding: 18px 20px; }

/* error */
.lms-error { padding-top: clamp(40px, 8vw, 110px); position: relative; }
.lms-code { position: absolute; right: 20px; top: 20px; font-size: clamp(5rem, 16vw, 11rem); line-height: 1; color: transparent; -webkit-text-stroke: 1.5px var(--indigo); opacity: .25; margin: 0; pointer-events: none; }

/* dashboard */
.lms-dash-head { padding: 10px 0 8px; }
.lms-dash-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(28px, 4vw, 56px); align-items: start; }
.lms-courses { list-style: none; padding: 0; margin: 0; display: grid; gap: 22px; }
.lms-course-card { display: grid; grid-template-columns: 180px minmax(0, 1fr); background: var(--card); border: 1.5px solid var(--ink); border-radius: 16px; overflow: hidden; box-shadow: 5px 5px 0 var(--ink); }
.lms-cover { width: 100%; height: 100%; object-fit: cover; min-height: 180px; border-right: 1.5px solid var(--ink); }
.lms-cover-blank { display: grid; place-items: center; background: linear-gradient(var(--grid) 1px, transparent 1px) 0 0/14px 14px, linear-gradient(90deg, var(--grid) 1px, transparent 1px) 0 0/14px 14px, var(--indigo-soft); }
.lms-cover-blank span { font-size: 3rem; color: var(--amber); -webkit-text-stroke: 1.5px var(--ink); font-weight: 600; }
.lms-course-body { padding: 22px 24px; display: grid; gap: 6px; }
.lms-course-body .display-sm { margin: 0; }
.lms-course-body p { margin: 0; }
.lms-course-body .cta-row { margin-top: 10px; }
.lms-meter { height: 8px; border-radius: 99px; background: var(--paper-2); border: 1px solid var(--line); overflow: hidden; margin-top: 8px; }
.lms-meter span { display: block; height: 100%; background: var(--indigo); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); transition: transform .9s var(--ease); }
.lms-empty { text-align: center; padding: 44px 24px; border: 1.5px dashed var(--ink); border-radius: 16px; background: var(--card); display: grid; justify-items: center; gap: 6px; }
.lms-empty p { max-width: 46ch; margin: 0 0 12px; }
.lms-empty-line { border-left: 3px solid var(--amber); padding-left: 14px; }
.lms-dash-side { display: grid; gap: 18px; position: sticky; top: 96px; }
.lms-panel { background: var(--card); border: 1.5px solid var(--ink); border-radius: 14px; padding: 4px 20px 18px; }
.lms-panel .lms-h { margin-top: 16px; }
.lms-video-note { background: var(--amber-soft); transform: rotate(-.6deg); }
.lms-sessions { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.lms-sessions li { display: grid; gap: 2px; padding-left: 14px; border-left: 2px solid var(--indigo); }
.lms-sessions time { color: var(--indigo); }

/* submissions */
.lms-subs { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 12px; }
.lms-sub { border: 1.5px solid var(--line); border-radius: 12px; padding: 14px 16px; background: var(--card); display: grid; gap: 8px; }
.lms-sub-top { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
.lms-sub-text { margin: 0; white-space: pre-wrap; max-height: 9em; overflow: auto; font-size: .94rem; color: var(--ink-2); }
.lms-feedback { margin: 0; border-left: 3px solid var(--amber); padding: 4px 0 4px 14px; }
.lms-feedback p { margin: 2px 0 0; font-family: var(--serif); font-style: italic; white-space: pre-wrap; }
.lms-history summary { cursor: pointer; color: var(--indigo); }
.lms-history ol { padding-left: 1.2em; display: grid; gap: 8px; }

/* course outline */
.lms-course-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: center; margin-bottom: 36px; }
.lms-ring { --p: 0; width: 200px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; align-content: center; gap: 12px; background: radial-gradient(closest-side, var(--paper) 78%, transparent 79%), conic-gradient(var(--indigo) calc(var(--p) * 1%), var(--paper-2) 0); border: 1.5px solid var(--ink); text-align: center; }
.lms-ring b { font-family: var(--serif); font-size: 2.6rem; }
.lms-ring .btn { font-size: .82rem; padding: .6em .9em; }
.lms-outline .lms-curr { border: 0; }
.lms-outline .lms-curr-sum { display: none; }
.lms-outline .lms-mods { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 22px; max-height: none; }
.lms-outline .lms-mod { background: var(--card); border: 1.5px solid var(--ink); border-radius: 14px; padding: 18px; }

/* curriculum */
.lms-curr { border: 1.5px solid var(--ink); border-radius: 14px; background: var(--card); }
.lms-curr-sum { cursor: pointer; list-style: none; display: flex; justify-content: space-between; padding: 14px 16px; font-weight: 600; }
.lms-curr-sum::-webkit-details-marker { display: none; }
.lms-curr-sum::after { content: '+'; font-family: var(--mono); margin-left: 10px; }
.lms-curr[open] > .lms-curr-sum::after { content: '\2212'; }
.lms-mods { list-style: none; margin: 0; padding: 0 10px 12px; display: grid; gap: 14px; }
.lms-mod-h { margin: 6px 6px 6px; font-family: var(--serif); font-weight: 600; font-size: 1.05rem; line-height: 1.2; }
.lms-mod-h .mono { font-size: .7rem; color: var(--indigo); font-family: var(--mono); }
.lms-mod-d { margin: 0 6px 8px; }
.lms-items { list-style: none; margin: 0; padding: 0; }
.lms-item > a, .lms-item > span { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 2px 10px; padding: 8px 8px; border-radius: 8px; text-decoration: none; color: var(--ink); font-size: .92rem; }
.lms-item > a:hover { background: var(--indigo-soft); color: var(--ink); }
.lms-item-m { grid-column: 2; font-size: .68rem; color: var(--slate); }
.lms-dot { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--ink); margin-top: 4px; background: var(--paper); }
.lms-item.is-done .lms-dot { background: var(--indigo); border-color: var(--indigo); box-shadow: inset 0 0 0 3px var(--card); }
.lms-item.is-locked > span { color: var(--slate); cursor: not-allowed; }
.lms-item.is-locked .lms-dot { border-style: dashed; border-color: var(--slate); }
.lms-item.is-current > a { background: var(--ink); color: var(--paper); }
.lms-item.is-current .lms-item-m { color: var(--amber); }
.lms-item.is-current .lms-dot { border-color: var(--amber); }

/* lesson */
.lms-lesson-shell { display: grid; grid-template-columns: 290px minmax(0, var(--read)); gap: clamp(28px, 4vw, 64px); padding-top: 28px; justify-content: center; }
.lms-side { position: sticky; top: 92px; align-self: start; display: grid; gap: 12px; }
.lms-side .lms-mods { max-height: calc(100dvh - 200px); overflow-y: auto; overscroll-behavior: contain; }
.lms-back { color: var(--slate); text-decoration: none; }
.lms-lesson-head { margin-bottom: 26px; }
.lms-done-tag { color: var(--indigo-d); background: var(--indigo-soft); padding: 1px 6px; border-radius: 4px; }
.lms-body { margin-bottom: 40px; }
.lms-block { margin: 48px 0; padding-top: 28px; border-top: 1.5px solid var(--ink); }
.lms-solution { margin-top: 22px; display: grid; gap: 6px; justify-items: start; }
.lms-solution-body { width: 100%; padding: 4px; border: 0; background: none; }

.lms-video { margin-bottom: 36px; }
.lms-video-stage { aspect-ratio: 16/9; border-radius: 14px; overflow: hidden; border: 1.5px solid var(--ink); background: var(--ink); box-shadow: 6px 6px 0 var(--amber); }
.lms-video-stage iframe { width: 100%; height: 100%; border: 0; display: block; }
.lms-video-poster { height: 100%; display: grid; align-content: center; justify-items: start; gap: 10px; padding: clamp(20px, 5vw, 48px); color: var(--paper); background: radial-gradient(circle at 85% 20%, rgba(91,75,255,.55), transparent 55%), linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px) 0 0/28px 28px, linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px) 0 0/28px 28px, var(--ink); }
.lms-video-poster .mono { color: var(--amber); margin: 0; }
.lms-video-poster .display-sm { margin: 0 0 8px; max-width: 24ch; }
.lms-video-poster .form-status.err { color: #FFB4A8; }
.lms-video-help { margin: 16px 0; padding: 12px 16px; border-left: 3px solid var(--amber); background: var(--card); border-radius: 0 10px 10px 0; }
.lms-video-help p { margin: 0 0 6px; }
.lms-video .transcript { margin-top: 12px; }

.lms-qs { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 22px; }
.lms-qs fieldset { border: 1.5px solid var(--ink); border-radius: 14px; padding: 18px; margin: 0; background: var(--card); }
.lms-qs legend { font-weight: 600; padding: 0 6px; }
.lms-qs legend .mono { color: var(--indigo); }
.lms-opt { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; cursor: pointer; border: 1px solid transparent; }
.lms-opt:hover { background: var(--indigo-soft); }
.lms-opt input { margin-top: 4px; accent-color: var(--indigo); width: 18px; height: 18px; flex-shrink: 0; }
.lms-opt:has(input:checked) { border-color: var(--indigo); background: var(--indigo-soft); }
.lms-quiz-result { margin-top: 20px; padding: 22px; border-radius: 14px; border: 1.5px solid var(--ink); }
.lms-quiz-result:focus { outline: none; }
.lms-quiz-result.is-pass { background: var(--indigo-soft); }
.lms-quiz-result.is-retry { background: var(--amber-soft); }
.lms-quiz-result .display-sm { margin: 0; }
.lms-fb { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); }
.lms-fb p { margin: 4px 0 0; }
.lms-block .paper-form { display: grid; gap: 14px; margin-top: 18px; }
.lms-upbar { height: 6px; background: var(--paper-2); border-radius: 99px; overflow: hidden; }
.lms-upbar span { display: block; height: 100%; background: var(--indigo); transform: scaleX(0); transform-origin: 0 50%; transition: transform .2s; }

.lms-lesson-foot { margin-top: 56px; padding-top: 24px; border-top: 1.5px solid var(--ink); display: grid; gap: 22px; }
.lms-complete { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.lms-complete .form-status { margin: 0; }
.lms-pager { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }

/* public syllabus */
.lms-syllabus { margin: 48px 0; }
.lms-syl-mods { list-style: none; padding: 0; margin: 0; border-top: 1.5px solid var(--ink); }
.lms-syl-mods > li { border-bottom: 1px solid var(--line); }
.lms-syl-mods summary { cursor: pointer; list-style: none; display: grid; grid-template-columns: 48px 1fr auto; gap: 12px; padding: 18px 4px; align-items: baseline; }
.lms-syl-mods summary::-webkit-details-marker { display: none; }
.lms-syl-mods summary .mono:first-child { color: var(--indigo); font-size: .8rem; }
.lms-syl-t { font-family: var(--serif); font-size: 1.25rem; font-weight: 600; }
.lms-syl-mods ul { list-style: none; padding: 0 0 18px 60px; margin: 0; display: grid; gap: 8px; }
.lms-syl-mods ul li { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.lms-syl-mods details > p { padding-left: 60px; margin-top: 0; }

/* checkout account gate */
.lms-gate { display: grid; gap: 10px; padding: clamp(22px, 4vw, 36px); border: 1.5px solid var(--ink); border-radius: 16px; background: var(--card); box-shadow: 6px 6px 0 var(--indigo); }
.lms-gate .display-sm { margin: 0; }

@media (max-width: 960px) {
  .lms-auth, .lms-dash-grid, .lms-account-grid, .lms-course-head { grid-template-columns: 1fr; }
  .lms-auth-side, .lms-dash-side { position: static; }
  .lms-lesson-shell { grid-template-columns: minmax(0, 1fr); }
  .lms-side { position: static; }
  .lms-side .lms-mods { max-height: 60dvh; }
  .lms-ring { width: 160px; }
}
@media (max-width: 640px) {
  .lms-course-card { grid-template-columns: 1fr; }
  .lms-cover { min-height: 120px; max-height: 160px; border-right: 0; border-bottom: 1.5px solid var(--ink); }
  .lms-who { margin-left: 0; }
  .lms-syl-mods ul, .lms-syl-mods details > p { padding-left: 4px; }
  .lms-auth-main .form-grid { grid-template-columns: 1fr; }
  .lms-auth-main .span-2 { grid-column: auto; }
  .lms-account-grid .form-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .lms-ladder li { animation: none; opacity: 1; }
  .lms-meter span, .lms-upbar span { transition: none; }
  .lms-video-note { transform: none; }
}
