:root {
  --course-accent: #9b2c58;
  --course-accent-soft: rgba(155, 44, 88, .10);
  --course-max: 980px;
}

html { scroll-behavior: smooth; }
body { min-height: 100vh; }
.brand-dot { display:inline-block; width:.72rem; height:.72rem; border-radius:50%; background:var(--course-accent); margin-right:.35rem; }
.course-sidebar { min-height: calc(100vh - 57px); }
.sidebar-inner { position: sticky; top: 57px; max-height: calc(100vh - 57px); overflow-y: auto; }
.content-shell { max-width: var(--course-max); }
.lesson-nav a { display:flex; align-items:flex-start; gap:.55rem; padding:.48rem .55rem; border-radius:.55rem; text-decoration:none; color:var(--bs-body-color); font-size:.92rem; line-height:1.25; }
.lesson-nav a:hover { background:var(--bs-tertiary-bg); }
.lesson-nav a.active { background:var(--course-accent-soft); color:var(--course-accent); font-weight:600; }
.lesson-nav .check { width:1rem; flex:0 0 1rem; text-align:center; opacity:.75; }
.course-kicker { color:var(--course-accent); font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:.78rem; }
.course-hero { padding:2rem; border:1px solid var(--bs-border-color); border-radius:1.25rem; background:linear-gradient(145deg, var(--course-accent-soft), transparent 55%); }
.lesson-card { height:100%; transition:transform .12s ease, box-shadow .12s ease; }
.lesson-card:hover { transform:translateY(-2px); box-shadow:0 .35rem 1rem rgba(0,0,0,.07); }
.lesson-number { color:var(--course-accent); font-weight:700; }
.lesson-content h2 { margin-top:2.25rem; padding-top:.25rem; font-size:1.55rem; }
.lesson-content h3 { margin-top:1.5rem; font-size:1.15rem; }
.lesson-content p, .lesson-content li { line-height:1.72; }
.lesson-content table { font-size:.94rem; }
.lesson-content blockquote { border-left:4px solid var(--course-accent); padding:.65rem 1rem; background:var(--course-accent-soft); border-radius:0 .5rem .5rem 0; }
.lesson-content .keybox { border:1px solid var(--bs-border-color); border-left:5px solid var(--course-accent); border-radius:.75rem; padding:1rem 1.1rem; margin:1.3rem 0; background:var(--bs-tertiary-bg); }
.lesson-content .pitfall { border-left-color:#b02a37; }
.lesson-content .practice { border-left-color:#0f766e; }
.lesson-content .source-note { font-size:.9rem; color:var(--bs-secondary-color); }
.lesson-toolbar { position:sticky; top:65px; z-index:10; background:color-mix(in srgb, var(--bs-body-bg) 94%, transparent); backdrop-filter: blur(8px); border:1px solid var(--bs-border-color); border-radius:.75rem; padding:.55rem; }
.progress { height:.55rem; }
.progress-bar { background-color:var(--course-accent); }
.btn-accent { --bs-btn-color:#fff; --bs-btn-bg:var(--course-accent); --bs-btn-border-color:var(--course-accent); --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#7f2348; --bs-btn-hover-border-color:#7f2348; }
.badge-soft { background:var(--course-accent-soft); color:var(--course-accent); border:1px solid color-mix(in srgb, var(--course-accent) 25%, transparent); }
.search-hit { border:1px solid var(--bs-border-color); border-radius:.75rem; padding:1rem; }
.search-hit:hover { background:var(--bs-tertiary-bg); }
.toc-mini { border-left:2px solid var(--bs-border-color); padding-left:1rem; }
.toc-mini a { text-decoration:none; }
.quiz details { border:1px solid var(--bs-border-color); border-radius:.65rem; padding:.75rem .9rem; margin:.6rem 0; }
.ref-list li { margin-bottom:.75rem; }
@media (max-width: 991.98px) { .content-shell { padding-top:1.5rem!important; } .lesson-toolbar { top:61px; } }
@media print {
  nav, aside, footer, .offcanvas, .lesson-toolbar, .no-print { display:none!important; }
  main { width:100%!important; }
  .content-shell { max-width:none; padding:0!important; }
  .lesson-content a { color:#000; text-decoration:none; }
  .keybox { break-inside:avoid; }
}
