/* Graph-theory diagrams and course components. Shared page design lives in assets/learning.css. */
.course-graph {
  --blue: #3157d5; --cyan: #0a8f9b; --green: #278a5b;
  --orange: #d7791f; --red: #c94b56; --purple: #7558c7; --yellow: #fff4c2;
}

/* Chapter and review components, consolidated from the imported handbook. */
:where(.course-graph.lesson-page) .eyebrow {font-size:13px;opacity:.78;letter-spacing:1.4px}
:where(.course-graph.lesson-page) .chips {display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
:where(.course-graph.lesson-page) .chip {padding:5px 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;font-size:12px;background:rgba(255,255,255,.08)}
:where(.course-graph.lesson-page) .section {margin-top:32px;scroll-margin-top:20px}
:where(.course-graph.lesson-page) .section-head {display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
:where(.course-graph.lesson-page) .num {font-weight:900;color:var(--blue);font-size:14px}
:where(.course-graph.lesson-page) .section h2 {font-size:27px;margin:0}
:where(.course-graph.lesson-page) .lead {color:var(--muted);margin:0 0 14px}
:where(.course-graph.lesson-page) .grid {display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
:where(.course-graph.lesson-page) .card {background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:18px 20px;box-shadow:0 4px 16px rgba(30,45,80,.045)}
:where(.course-graph.lesson-page) .c4 {grid-column:span 4}
:where(.course-graph.lesson-page) .c5 {grid-column:span 5}
:where(.course-graph.lesson-page) .c6 {grid-column:span 6}
:where(.course-graph.lesson-page) .c7 {grid-column:span 7}
:where(.course-graph.lesson-page) .c8 {grid-column:span 8}
:where(.course-graph.lesson-page) .c12 {grid-column:span 12}
:where(.course-graph.lesson-page) .card h3 {font-size:18px;margin:0 0 10px}
:where(.course-graph.lesson-page) .card h4 {font-size:14px;margin:16px 0 5px;color:#3b4660}
:where(.course-graph.lesson-page) .small {font-size:13px;color:var(--muted)}
:where(.course-graph.lesson-page) .key {border-left:4px solid var(--blue)}
:where(.course-graph.lesson-page) .warn {border-left:4px solid var(--orange);background:#fffdf7}
:where(.course-graph.lesson-page) .theorem {border-left:4px solid var(--purple)}
:where(.course-graph.lesson-page) .alg {border-left:4px solid var(--green)}
:where(.course-graph.lesson-page) .badge {display:inline-block;font-size:11px;font-weight:800;padding:3px 8px;border-radius:999px;background:#eaf0ff;color:var(--blue);margin-right:6px;vertical-align:1px}
:where(.course-graph.lesson-page) .badge.orange {background:#fff0df;color:#a85d14}
:where(.course-graph.lesson-page) .badge.green {background:#e7f6ef;color:#187447}
:where(.course-graph.lesson-page) .badge.purple {background:#f0ebff;color:#6445bd}
:where(.course-graph.lesson-page) .badge.red {background:#ffe9eb;color:#aa3541}
:where(.course-graph.lesson-page) .formula {font-family:"Cambria Math","Times New Roman",serif;background:#f5f7fc;border:1px solid #e3e8f3;border-radius:11px;padding:10px 13px;margin:9px 0;text-align:center;font-size:17px;overflow:auto}
:where(.course-graph.lesson-page) .formula strong {color:#243c92}
:where(.course-graph.lesson-page) .kv {display:grid;grid-template-columns:140px 1fr;gap:8px 12px;font-size:14px}
:where(.course-graph.lesson-page) .kv b {color:#2e3850}
:where(.course-graph.lesson-page) .mini-list {margin:7px 0 0;padding-left:20px}
:where(.course-graph.lesson-page) .mini-list li {margin:5px 0}
:where(.course-graph.lesson-page) .tight li {margin:2px 0}
:where(.course-graph.lesson-page) .diagram {width:100%;height:auto;display:block;background:#fbfcff;border:1px solid #e5e9f3;border-radius:13px;margin-top:10px}
:where(.course-graph.lesson-page) .edge {stroke:#52627f;stroke-width:2.5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .edge2 {stroke:#3157d5;stroke-width:3;fill:none}
:where(.course-graph.lesson-page) .node {fill:#fff;stroke:#3157d5;stroke-width:2.5}
:where(.course-graph.lesson-page) .node2 {fill:#fff;stroke:#d7791f;stroke-width:2.5}
:where(.course-graph.lesson-page) .label {font-size:12px;fill:#2a344b;font-family:Inter,"PingFang SC",sans-serif}
:where(.course-graph.lesson-page) .weight {font-size:11px;fill:#a85d14;font-weight:700}
:where(.course-graph.lesson-page) .partA {fill:#eaf0ff;stroke:#3157d5;stroke-width:2}
:where(.course-graph.lesson-page) .partB {fill:#e7f6ef;stroke:#278a5b;stroke-width:2}
:where(.course-graph.lesson-page) .partC {fill:#fff0df;stroke:#d7791f;stroke-width:2}
:where(.course-graph.lesson-page) .table-wrap {overflow:auto;border:1px solid var(--line);border-radius:13px}
:where(.course-graph.lesson-page) table {border-collapse:collapse;width:100%;font-size:13px;background:white}
:where(.course-graph.lesson-page) th, :where(.course-graph.lesson-page) td {padding:10px 12px;border-bottom:1px solid #e7ebf3;vertical-align:top}
:where(.course-graph.lesson-page) th {background:#f4f6fb;text-align:left;color:#3f4a63;white-space:nowrap}
:where(.course-graph.lesson-page) tr:last-child td {border-bottom:0}
:where(.course-graph.lesson-page) .compare {display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}
:where(.course-graph.lesson-page) .arrow {font-size:26px;color:var(--muted)}
:where(.course-graph.lesson-page) .memory {background:linear-gradient(135deg,#fff8dc,#fffdf6);border:1px solid #f0df9a}
:where(.course-graph.lesson-page) .memory b {color:#6f5910}
:where(.course-graph.lesson-page) .mistakes {display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
:where(.course-graph.lesson-page) .mistake {background:#fff7f7;border:1px solid #f3d7da;border-radius:11px;padding:10px 12px;font-size:13px}
:where(.course-graph.lesson-page) .mistake b {color:#b5424c}
:where(.course-graph.lesson-page) details {border-top:1px dashed #dce2ed;margin-top:12px;padding-top:10px}
:where(.course-graph.lesson-page) summary {cursor:pointer;font-weight:700;color:#42516e}
:where(.course-graph.lesson-page) .matrix {font-family:"Cambria Math",monospace;white-space:pre;line-height:1.45;background:#f5f7fc;padding:10px 14px;border-radius:10px;text-align:center;font-size:14px}
:where(.course-graph.lesson-page) .flow {display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
:where(.course-graph.lesson-page) .step {border:1px solid #dbe3f1;background:#fff;padding:7px 10px;border-radius:10px;font-size:13px}
:where(.course-graph.lesson-page) .flow .go {color:#8791a5}
:where(.course-graph.lesson-page) .callout {padding:12px 14px;background:#eef4ff;border:1px solid #d8e4ff;border-radius:12px;font-size:13px}
:where(.course-graph.lesson-page) .source-note {color:var(--muted);font-size:12px;margin-top:28px;border-top:1px solid var(--line);padding-top:14px}
:where(.course-graph.lesson-page) .topmap {display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
:where(.course-graph.lesson-page) .topmap a {text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px 14px;box-shadow:0 2px 10px rgba(30,45,80,.035)}
:where(.course-graph.lesson-page) .topmap b {display:block;color:#253d91}
:where(.course-graph.lesson-page) .topmap span {font-size:12px;color:var(--muted)}
@media(max-width:1050px) {
:where(.course-graph.lesson-page) .c4, :where(.course-graph.lesson-page) .c5, :where(.course-graph.lesson-page) .c6, :where(.course-graph.lesson-page) .c7, :where(.course-graph.lesson-page) .c8 {grid-column:span 12}
:where(.course-graph.lesson-page) .topmap {grid-template-columns:1fr 1fr}
}
@media(max-width:640px) {
:where(.course-graph.lesson-page) .topmap {grid-template-columns:1fr}
:where(.course-graph.lesson-page) .mistakes {grid-template-columns:1fr}
:where(.course-graph.lesson-page) .kv {grid-template-columns:1fr}
:where(.course-graph.lesson-page) .compare {grid-template-columns:1fr}
:where(.course-graph.lesson-page) .arrow {transform:rotate(90deg);text-align:center}
}
:where(.course-graph.lesson-page) .tree-edge {stroke:#52627f;stroke-width:3;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .tree-edge-hot {stroke:#3157d5;stroke-width:4;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .tree-edge-cut {stroke:#c94b56;stroke-width:4;fill:none;stroke-linecap:round;stroke-dasharray:8 6}
:where(.course-graph.lesson-page) .leaf {fill:#fff4c2;stroke:#d7791f;stroke-width:2.5}
:where(.course-graph.lesson-page) .center {fill:#f0ebff;stroke:#7558c7;stroke-width:3}
:where(.course-graph.lesson-page) .centroid {fill:#e7f6ef;stroke:#278a5b;stroke-width:3}
:where(.course-graph.lesson-page) .selected {stroke:#278a5b;stroke-width:5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .rejected {stroke:#c6ccd8;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-dasharray:5 5}
:where(.course-graph.lesson-page) .pillrow {display:flex;gap:7px;flex-wrap:wrap;margin:9px 0}
:where(.course-graph.lesson-page) .pill {font-size:12px;border-radius:999px;padding:4px 9px;background:#f1f4fa;border:1px solid #dde3ee}
:where(.course-graph.lesson-page) .rulebox {border:1px solid #d7def0;border-radius:13px;padding:13px 15px;background:#fafbff}
:where(.course-graph.lesson-page) .rulebox strong {color:#273f93}
:where(.course-graph.lesson-page) .bridge {stroke:#c94b56;stroke-width:5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .normal-edge {stroke:#52627f;stroke-width:3;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .cut-node {fill:#ffe6e8;stroke:#c94b56;stroke-width:3}
:where(.course-graph.lesson-page) .block-a {fill:#eef3ff;stroke:#3157d5;stroke-width:2}
:where(.course-graph.lesson-page) .block-b {fill:#eef8f2;stroke:#278a5b;stroke-width:2}
:where(.course-graph.lesson-page) .path-a {stroke:#3157d5;stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .path-b {stroke:#278a5b;stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .path-c {stroke:#d7791f;stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .cutset {fill:#fff4c2;stroke:#d7791f;stroke-width:3}
:where(.course-graph.lesson-page) .ring {stroke:#65718a;stroke-width:2.5;fill:none}
:where(.course-graph.lesson-page) .ring-hot {stroke:#3157d5;stroke-width:3.5;fill:none}
:where(.course-graph.lesson-page) .eqchain {display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin:14px 0}
:where(.course-graph.lesson-page) .eqchain .box {padding:9px 13px;border-radius:12px;border:1px solid #d8deea;background:#fff;font-weight:800}
:where(.course-graph.lesson-page) .eqchain .sym {font-weight:900;color:#65718a}
:where(.course-graph.lesson-page) .euler-edge {stroke:#3157d5;stroke-width:4;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .euler-edge2 {stroke:#278a5b;stroke-width:4;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .ham-edge {stroke:#c94b56;stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .extra-edge {stroke:#d7791f;stroke-width:4;fill:none;stroke-linecap:round;stroke-dasharray:8 6}
:where(.course-graph.lesson-page) .base-edge {stroke:#768198;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .odd {fill:#ffe6e8;stroke:#c94b56;stroke-width:3}
:where(.course-graph.lesson-page) .even {fill:#eaf7ef;stroke:#278a5b;stroke-width:2.5}
:where(.course-graph.lesson-page) .city {fill:#eef3ff;stroke:#3157d5;stroke-width:2.5}
:where(.course-graph.lesson-page) .compare-big {display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:15px 0}
:where(.course-graph.lesson-page) .compare-big>div {border:1px solid #dce2ed;border-radius:16px;padding:16px;background:#fff}
:where(.course-graph.lesson-page) .compare-big h4 {margin:0 0 8px;color:#273f93}
:where(.course-graph.lesson-page) .katexlike {font-family:Georgia,'Times New Roman',serif;font-size:1.12em}
:where(.course-graph.lesson-page) .signal {display:inline-block;padding:3px 8px;border-radius:999px;background:#fff3d5;border:1px solid #f0d28f;font-size:12px;font-weight:800}
@media(max-width:760px) {
:where(.course-graph.lesson-page) .compare-big {grid-template-columns:1fr}
}
:where(.course-graph.lesson-page) .match-edge {stroke:#3157d5;stroke-width:5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .free-edge {stroke:#b9c0cf;stroke-width:2.5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .alt-a {stroke:#3157d5;stroke-width:4.5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .alt-b {stroke:#d7791f;stroke-width:4.5;fill:none;stroke-linecap:round;stroke-dasharray:8 6}
:where(.course-graph.lesson-page) .sat {fill:#eaf7ef;stroke:#278a5b;stroke-width:2.5}
:where(.course-graph.lesson-page) .unsat {fill:#ffe7e8;stroke:#c94b56;stroke-width:3}
:where(.course-graph.lesson-page) .factor1 {stroke:#3157d5;stroke-width:4.5;fill:none}
:where(.course-graph.lesson-page) .factor2 {stroke:#278a5b;stroke-width:4.5;fill:none}
:where(.course-graph.lesson-page) .factor3 {stroke:#d7791f;stroke-width:4.5;fill:none}
:where(.course-graph.lesson-page) .eqnode {fill:#fff;stroke:#7b869d;stroke-width:2}
:where(.course-graph.lesson-page) .eqedge {stroke:#3157d5;stroke-width:3}
:where(.course-graph.lesson-page) .tight {background:#f8faff;border:1px solid #d8e1ff;border-radius:14px;padding:12px 14px}
:where(.course-graph.lesson-page) .badge.red {background:#ffe7e8;color:#9b2230}
:where(.course-graph.lesson-page) .badge.blue {background:#eaf0ff;color:#2949a4}
@media(max-width:760px) {
:where(.course-graph.lesson-page) .compare-big {grid-template-columns:1fr}
}
:where(.course-graph.lesson-page) .face {fill:#f6f8ff;stroke:#9aa6c0;stroke-width:1.5}
:where(.course-graph.lesson-page) .face2 {fill:#eef8f2;stroke:#71a889;stroke-width:1.5}
:where(.course-graph.lesson-page) .planar-edge {stroke:#4d5d79;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .planar-hot {stroke:#3157d5;stroke-width:4.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .cross-edge {stroke:#c94b56;stroke-width:4;fill:none;stroke-linecap:round;stroke-dasharray:8 6}
:where(.course-graph.lesson-page) .dual-edge {stroke:#d7791f;stroke-width:3.5;fill:none;stroke-linecap:round;stroke-dasharray:6 5}
:where(.course-graph.lesson-page) .attach {fill:#fff3d5;stroke:#d7791f;stroke-width:3}
:where(.course-graph.lesson-page) .dualnode {fill:#fff3d5;stroke:#d7791f;stroke-width:2.5}
:where(.course-graph.lesson-page) .region-label {font-size:13px;font-weight:800;fill:#65718a}
:where(.course-graph.lesson-page) .surface {fill:#f5f1ff;stroke:#7558c7;stroke-width:2}
:where(.course-graph.lesson-page) .conflict-a {fill:#eaf0ff;stroke:#3157d5;stroke-width:2.5}
:where(.course-graph.lesson-page) .conflict-b {fill:#eaf7ef;stroke:#278a5b;stroke-width:2.5}
:where(.course-graph.lesson-page) .conflict-bad {fill:#ffe7e8;stroke:#c94b56;stroke-width:2.5}
:where(.course-graph.lesson-page) .mathline {font-family:Georgia,'Times New Roman',serif;font-size:1.08em}
:where(.course-graph.lesson-page) .edge-red {stroke:#c94b56;stroke-width:5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .edge-blue {stroke:#3157d5;stroke-width:5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .edge-green {stroke:#278a5b;stroke-width:5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .edge-orange {stroke:#d7791f;stroke-width:5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .edge-gray {stroke:#aab2c2;stroke-width:2.5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .v-red {fill:#ffe7e8;stroke:#c94b56;stroke-width:3}
:where(.course-graph.lesson-page) .v-blue {fill:#eaf0ff;stroke:#3157d5;stroke-width:3}
:where(.course-graph.lesson-page) .v-green {fill:#eaf7ef;stroke:#278a5b;stroke-width:3}
:where(.course-graph.lesson-page) .v-orange {fill:#fff3d5;stroke:#d7791f;stroke-width:3}
:where(.course-graph.lesson-page) .swatch {display:inline-flex;align-items:center;gap:6px;margin-right:12px;font-size:12px}
:where(.course-graph.lesson-page) .swatch i {width:18px;height:6px;border-radius:999px;display:inline-block}
:where(.course-graph.lesson-page) .color-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0}
:where(.course-graph.lesson-page) .color-grid div {padding:10px;border-radius:12px;border:1px solid #dce2ed;text-align:center;font-weight:700}
:where(.course-graph.lesson-page) .poly {font-family:Georgia,'Times New Roman',serif;background:#fafbff;border:1px solid #dce2ed;border-radius:13px;padding:12px 14px;margin:10px 0;overflow:auto}
@media(max-width:760px) {
:where(.course-graph.lesson-page) .color-grid {grid-template-columns:1fr 1fr}
}
:where(.course-graph.lesson-page) .chapter-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
:where(.course-graph.lesson-page) .chapter-card {background:#fff;border:1px solid #dce4f1;border-radius:18px;padding:18px 18px 16px;box-shadow:0 10px 28px rgba(31,45,61,.06)}
:where(.course-graph.lesson-page) .chapter-card h3 {margin:0 0 10px;font-size:1.14rem}
:where(.course-graph.lesson-page) .chapter-card .tagline {color:#667085;font-size:.95rem;margin-bottom:10px}
:where(.course-graph.lesson-page) .chapter-card ul {margin:10px 0 0 18px;padding:0}
:where(.course-graph.lesson-page) .chapter-card li {margin:6px 0}
:where(.course-graph.lesson-page) .bridge {background:linear-gradient(180deg,#f9fbff,#f2f7ff);border:1px solid #dbe6ff;border-radius:18px;padding:16px}
:where(.course-graph.lesson-page) .bridge h4 {margin:0 0 8px}
:where(.course-graph.lesson-page) .bigflow {display:flex;flex-wrap:wrap;gap:8px;align-items:center}
:where(.course-graph.lesson-page) .bigflow .nodebox {padding:12px 16px;border-radius:14px;background:#fff;border:1px solid #dce4f1;min-width:130px;text-align:center;font-weight:800}
:where(.course-graph.lesson-page) .bigflow .arrow {font-size:20px;color:#5e6b85;font-weight:900}
:where(.course-graph.lesson-page) .svglabel {font-size:13px;font-weight:700;fill:#4a5568}
:where(.course-graph.lesson-page) .line-main {stroke:#3157d5;stroke-width:4;fill:none;stroke-linecap:round;stroke-linejoin:round}
:where(.course-graph.lesson-page) .line-sub {stroke:#d7791f;stroke-width:3.5;fill:none;stroke-dasharray:7 6;stroke-linecap:round}
:where(.course-graph.lesson-page) .line-soft {stroke:#278a5b;stroke-width:3.5;fill:none;stroke-linecap:round}
:where(.course-graph.lesson-page) .mini {font-size:12px;color:#5f6c86}
:where(.course-graph.lesson-page) .tl {border-left:4px solid #3157d5;padding-left:14px;margin:10px 0}
:where(.course-graph.lesson-page) .cross-table td, :where(.course-graph.lesson-page) .cross-table th {font-size:.95rem}
:where(.course-graph.lesson-page) .chapter-badge {display:inline-block;background:#eef3ff;color:#2f4ca6;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;margin-bottom:8px}
@media(max-width:900px) {
:where(.course-graph.lesson-page) .chapter-grid {grid-template-columns:1fr}
}
:where(.course-graph.lesson-page) .cram-wrap {max-width:1180px;margin:0 auto;padding:24px}
:where(.course-graph.lesson-page) .quick-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
:where(.course-graph.lesson-page) .box {background:#fff;border:1px solid #dce4f1;border-radius:20px;padding:18px;box-shadow:0 10px 28px rgba(31,45,61,.06)}
:where(.course-graph.lesson-page) .box h2 {margin:0 0 12px;font-size:1.16rem}
:where(.course-graph.lesson-page) .kline {display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px dashed #e6ebf5}
:where(.course-graph.lesson-page) .kline:last-child {border-bottom:none}
:where(.course-graph.lesson-page) .k {min-width:88px;font-weight:800;color:#2e4aa7}
:where(.course-graph.lesson-page) .v {flex:1}
:where(.course-graph.lesson-page) .supergrid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
:where(.course-graph.lesson-page) .chipline {display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
:where(.course-graph.lesson-page) .memory-chip {background:#eef3ff;color:#2f4ca6;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700}
:where(.course-graph.lesson-page) .danger {background:#fff4f4;border-color:#ffd7da}
:where(.course-graph.lesson-page) .good {background:#f3fbf5;border-color:#d4efd9}
:where(.course-graph.lesson-page) .warn2 {background:#fffaf0;border-color:#ffe2ab}
:where(.course-graph.lesson-page) .mini-table {width:100%;border-collapse:collapse}
:where(.course-graph.lesson-page) .mini-table th, :where(.course-graph.lesson-page) .mini-table td {border:1px solid #dce4f1;padding:10px 10px;text-align:left;font-size:.95rem;vertical-align:top}
:where(.course-graph.lesson-page) .mini-table th {background:#f6f9ff}
:where(.course-graph.lesson-page) .formula-big {font-family:Georgia,'Times New Roman',serif;font-size:1.12rem;background:#f8faff;border:1px solid #dbe5fb;padding:10px 12px;border-radius:14px;margin:8px 0}
:where(.course-graph.lesson-page) .small {font-size:.92rem;color:#667085}
:where(.course-graph.lesson-page) .two-col {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
:where(.course-graph.lesson-page) ol.tight, :where(.course-graph.lesson-page) ul.tight {margin:8px 0 0 18px}
:where(.course-graph.lesson-page) ol.tight li, :where(.course-graph.lesson-page) ul.tight li {margin:5px 0}
@media(max-width:980px) {
:where(.course-graph.lesson-page) .supergrid {grid-template-columns:1fr}
:where(.course-graph.lesson-page) .quick-grid {grid-template-columns:1fr}
:where(.course-graph.lesson-page) .two-col {grid-template-columns:1fr}
}

/* Collection directory and its chapter search. */
:where(.course-graph.collection-page) .eyebrow {font-size:12px;letter-spacing:.16em;font-weight:800;color:#cdd9ff}
:where(.course-graph.collection-page) h1 {font-size:clamp(34px,5vw,58px);line-height:1.12;margin:12px 0 16px}
:where(.course-graph.collection-page) .lead {max-width:840px;color:#e6ebff;font-size:18px}
:where(.course-graph.collection-page) .actions {display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
:where(.course-graph.collection-page) .btn {display:inline-block;padding:11px 16px;border-radius:12px;text-decoration:none;font-weight:800}
:where(.course-graph.collection-page) .primary {background:#fff;color:#243d91}
:where(.course-graph.collection-page) .ghost {border:1px solid rgba(255,255,255,.35);color:#fff}
:where(.course-graph.collection-page) .section-title {display:flex;align-items:end;justify-content:space-between;gap:14px;margin:6px 0 18px}
:where(.course-graph.collection-page) .section-title h2 {margin:0;font-size:28px}
:where(.course-graph.collection-page) .section-title p {margin:0;color:var(--muted)}
:where(.course-graph.collection-page) .search {width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:#fff;font-size:15px;outline:none;margin-bottom:18px}
:where(.course-graph.collection-page) .grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
:where(.course-graph.collection-page) .card {display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;text-decoration:none;color:inherit;box-shadow:0 8px 24px rgba(31,45,61,.05);transition:.18s transform,.18s box-shadow}
:where(.course-graph.collection-page) .card:hover {transform:translateY(-2px);box-shadow:0 14px 30px rgba(31,45,61,.09)}
:where(.course-graph.collection-page) .chapter {display:inline-block;font-size:12px;font-weight:800;background:#eef3ff;color:#2949a4;border-radius:999px;padding:4px 9px}
:where(.course-graph.collection-page) .card h3 {font-size:20px;margin:10px 0 7px}
:where(.course-graph.collection-page) .card p {color:var(--muted);margin:0 0 10px}
:where(.course-graph.collection-page) .card span {color:var(--blue);font-weight:800}
:where(.course-graph.collection-page) .review {display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px}
:where(.course-graph.collection-page) .panel {background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}
:where(.course-graph.collection-page) .panel h3 {margin-top:0}
:where(.course-graph.collection-page) .panel p {color:var(--muted)}
:where(.course-graph.collection-page) .panel a {color:var(--blue);font-weight:800;text-decoration:none}
:where(.course-graph.collection-page) .path {margin-top:34px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}
:where(.course-graph.collection-page) .flow {display:flex;gap:8px;align-items:center;flex-wrap:wrap}
:where(.course-graph.collection-page) .step {padding:9px 12px;background:#f7f9ff;border:1px solid #dce5ff;border-radius:12px;font-weight:700}
:where(.course-graph.collection-page) .arr {color:#7c879e;font-weight:900}
@media(max-width:760px) {
:where(.course-graph.collection-page) .grid, :where(.course-graph.collection-page) .review {grid-template-columns:1fr}
}

/* Keep wide maths and tables within their cards on phones. */
:where(.course-graph) .card, :where(.course-graph) .box, :where(.course-graph) .v { min-width: 0; }
:where(.course-graph) .matrix, :where(.course-graph) .formula,
:where(.course-graph) .formula-big, :where(.course-graph) .table-wrap { max-width: 100%; overflow-x: auto; }
@media (max-width: 640px) {
  :where(.course-graph) .cram-wrap { padding: 14px; }
  :where(.course-graph) .kline { flex-direction: column; gap: 4px; }
}
