/* Free course pages and the study app. Colors come only from plat.css tokens (docs/DESIGN.md).
   Light: paper surface, ink text. Dark: spruce-raise and spruce-deep, paper text.
   Follows prefers-color-scheme; :root[data-theme="light"|"dark"] (set by course.js) wins. */
:root{
  --c-bg:var(--paper); --c-panel:var(--paper-2); --c-ink:var(--ink); --c-mute:var(--ink-mute); --c-line:var(--paper-line);
  --c-link:var(--coral-ink); --c-good:var(--ok-ink); --c-bad:var(--bad-ink); --c-warn:var(--gold-ink); --c-on-hot:var(--spruce-deep); --c-focus:var(--gold-ink);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --c-bg:var(--spruce-raise); --c-panel:var(--spruce-deep); --c-ink:var(--paper); --c-mute:var(--mist); --c-line:var(--line-strong);
    --c-link:var(--coral); --c-good:var(--land); --c-bad:var(--coral); --c-warn:var(--gold); --c-focus:var(--gold);
  }
}
:root[data-theme="dark"]{
  --c-bg:var(--spruce-raise); --c-panel:var(--spruce-deep); --c-ink:var(--paper); --c-mute:var(--mist); --c-line:var(--line-strong);
  --c-link:var(--coral); --c-good:var(--land); --c-bad:var(--coral); --c-warn:var(--gold); --c-focus:var(--gold);
}
:root[data-theme="light"]{
  --c-bg:var(--paper); --c-panel:var(--paper-2); --c-ink:var(--ink); --c-mute:var(--ink-mute); --c-line:var(--paper-line);
  --c-link:var(--coral-ink); --c-good:var(--ok-ink); --c-bad:var(--bad-ink); --c-warn:var(--gold-ink); --c-focus:var(--gold-ink);
}

.course{max-width:960px;margin:12px auto 0;padding:16px;background:var(--c-bg);color:var(--c-ink);font-size:17px;line-height:1.6;overflow-wrap:break-word;min-width:0}
@media (min-width:700px){.course{padding:28px 32px;border-radius:3px}}
.course *{min-width:0}
.course a{color:var(--c-link);text-underline-offset:3px}
.course :focus-visible{outline:3px solid var(--c-focus);outline-offset:3px}
.course h1{font-family:var(--display);font-weight:600;font-size:clamp(28px,5vw,40px);line-height:1.1;margin:10px 0 8px;max-width:24em;text-wrap:balance}
.course h2{font-family:var(--display);font-size:clamp(22px,3.5vw,28px);line-height:1.15;margin:30px 0 8px;max-width:none}
.course h3{font-size:19px;margin:22px 0 6px}
.course p,.course li,.course dd,.course dt,.course summary{max-width:68ch}
.course p,.course ul,.course ol,.course dl{margin:0 0 12px}
.course ul,.course ol{padding-left:1.3em}
.course .small{font-size:14.5px;color:var(--c-mute)}
.course .lede{font-size:19px;color:var(--c-mute)}
.course-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--c-line);padding-bottom:10px}
.course-name{font-weight:700;text-decoration:none;color:var(--c-ink)!important;display:inline-flex;align-items:center;min-height:44px}
.theme-btn,.course button{font:inherit;font-size:15px;min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--c-line);background:transparent;color:var(--c-ink);cursor:pointer}
.crumbs{font-size:14.5px;color:var(--c-mute);margin:10px 0 0}
.crumbs a{display:inline-flex;align-items:center;min-height:44px}
.crumbs i{font-style:normal;padding:0 4px}

.caveat{background:var(--c-panel);border-left:5px solid var(--c-warn);padding:12px 14px;margin:14px 0;border-radius:0 6px 6px 0;font-size:16px;max-width:68ch}
.why{border-left:3px solid var(--c-link);padding:6px 12px;background:var(--c-panel);border-radius:0 6px 6px 0}
.money{background:var(--c-panel);border:1px solid var(--c-line);border-radius:8px;padding:6px 16px 4px;margin:34px 0 8px}
.money h2{margin-top:12px;font-size:20px}

.cbtn,.course a.cbtn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 18px;border-radius:999px;border:1.5px solid var(--c-ink);background:var(--c-ink);color:var(--c-bg);font-weight:700;font-size:16px;line-height:1.25;text-decoration:none;text-align:center}
.course a.cbtn.quiet{background:transparent;color:var(--c-ink);border-color:var(--c-line)}
.course a.cbtn.hot{background:var(--coral);border-color:var(--coral);color:var(--c-on-hot)}
.course a.cbtn.big{min-height:56px;padding:10px 28px;font-size:19px}
.big-cta{margin:18px 0}

.lessons,.days,.cites,.next,.mix{padding-left:1.3em}
.lessons li a,.days a,.az a{display:inline-flex;align-items:center;min-height:44px}
.days li{margin:0 0 8px}
.days b{display:inline-block;min-width:3.6em}
.az{display:flex;flex-wrap:wrap;gap:2px 6px}
.az a{min-width:44px;justify-content:center;font-weight:700}
.cards{display:grid;gap:14px}
.card{background:var(--c-panel);border:1px solid var(--c-line);border-radius:10px;padding:14px 16px;margin:0 0 14px}
.card h2{margin-top:0}

.lesson-body{margin:14px 0}
.lesson-body table{display:block;overflow-x:auto;max-width:100%;border-collapse:collapse;margin:10px 0;-webkit-overflow-scrolling:touch}
.lesson-body th,.lesson-body td{border:1px solid var(--c-line);padding:6px 10px;text-align:left;font-size:15px;vertical-align:top}
.lesson-body th{background:var(--c-panel)}
.terms dt{font-weight:700;margin-top:10px}
.terms dd{margin:0 0 4px}
.flashcard{border:1px solid var(--c-line);border-radius:8px;margin:0 0 8px;background:var(--c-panel)}
.flashcard summary,.ans summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 12px;font-weight:600}
.flashcard p{padding:0 12px}
.cards-list{max-width:68ch}

.quiz{list-style:none;padding:0}
.qitem{margin:0 0 22px;padding:12px 14px;border:1px solid var(--c-line);border-radius:8px;max-width:none}
.qtext{font-weight:700}
.choices{list-style:none;padding:0;margin:8px 0}
.choice{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:10px 12px;margin:6px 0;border:1.5px solid var(--c-line);border-radius:8px;max-width:68ch}
.choice b{flex:none;min-width:1.3em}
.js .qitem:not(.locked) .choice{cursor:pointer}
.js .qitem:not(.locked) .choice:hover{border-color:var(--c-link)}
.choice.right{border-color:var(--c-good);box-shadow:inset 0 0 0 1px var(--c-good)}
.choice.wrong{border-color:var(--c-bad);box-shadow:inset 0 0 0 1px var(--c-bad);text-decoration:line-through}
.choice.right b::after{content:" ✓"}
.choice.wrong b::after{content:" ✗"}
.ans{margin-top:6px}
.score{font-weight:700;min-height:1.6em}
.pager{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin:26px 0 0;max-width:none}

/* the study app (assets/courses/study.js) */
.study-nav{display:flex;gap:6px;overflow-x:auto;padding:8px 0;scrollbar-width:none}
.study-nav a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;text-decoration:none;color:var(--c-mute);white-space:nowrap}
.study-nav a.on{background:var(--c-panel);color:var(--c-ink);font-weight:700}
.study .flag{background:var(--c-panel);border-left:5px solid var(--c-warn);border-radius:0 6px 6px 0;padding:12px 14px;margin-bottom:14px;font-size:15.5px;max-width:68ch}
.study .muted{color:var(--c-mute)}
.study .chips,.study .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.study .chip{background:var(--c-panel);border-radius:999px;padding:2px 10px;font-size:13px;color:var(--c-mute)}
.study .list{list-style:none;padding:0;margin:0}
.study .list li{border-top:1px solid var(--c-line)}
.study .list li:first-child{border-top:0}
.study .list a{display:flex;gap:10px;align-items:baseline;padding:12px 2px;min-height:44px;text-decoration:none;color:var(--c-ink)}
.study .tick{width:22px;flex:none;color:var(--c-good);font-weight:700}
.study .meta{margin-left:auto;color:var(--c-mute);font-size:13px;white-space:nowrap;padding-left:8px}
.study .progress{height:8px;background:var(--c-panel);border-radius:999px;overflow:hidden}
.study .progress>i{display:block;height:100%;background:var(--c-link)}
.study .btn,.study button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:10px;border:1.5px solid var(--c-line);background:transparent;color:var(--c-ink);font:inherit;font-size:15px;text-decoration:none;cursor:pointer;white-space:normal}
.study .btn.primary,.study button.primary{background:var(--c-ink);color:var(--c-bg);border-color:var(--c-ink);font-weight:700}
.study button:disabled{opacity:.55;cursor:default}
.study button.choice{display:flex;width:100%;justify-content:flex-start;text-align:left;margin:8px 0;padding:12px 14px;line-height:1.4}
.study .choice.right{background:var(--c-panel)}
.study .big{font-size:36px;font-weight:700}
.study .pass{color:var(--c-good)}
.study .fail{color:var(--c-bad)}
.study .flash{min-height:200px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:20px;cursor:pointer;user-select:none}
.study input[type=search],.study input[type=date]{font:inherit;min-height:44px;padding:0 12px;border-radius:10px;border:1.5px solid var(--c-line);background:var(--c-bg);color:var(--c-ink);width:100%;max-width:68ch}
.study .qnav{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0}
.study .qnav button{min-width:44px;padding:0;font-size:13px}
.study .qnav button.ans{background:var(--c-panel)}
.study .qnav button.cur{border-color:var(--c-link)}
.study .qnav button.r{border-color:var(--c-good)}
.study .qnav button.w{border-color:var(--c-bad)}
.study .timer{font-variant-numeric:tabular-nums;font-weight:600}
.study .day{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--c-line)}
.study .day:first-child{border-top:0}
.study .day .n{width:54px;flex:none;font-weight:700;color:var(--c-mute)}
.study .day.today .n{color:var(--c-link)}
.study .empty{padding:30px;text-align:center;color:var(--c-mute)}
.study .money{margin-top:40px}
@media (max-width:520px){.study .list .meta{display:none}.course{font-size:16px}}
