/* Course materials share a restrained document surface with dedicated diagram canvases. */
.material-document{max-width:880px;margin:auto;padding:30px 36px;border:1px solid var(--border);border-radius:10px;background:var(--color-surface)}
.material-document>.section-title{padding-bottom:20px;border-bottom:1px solid var(--border);margin-bottom:28px}.material-document .tag{background:none;padding:0;font-size:13px}.material-document>.real-prose{padding:0 0 12px}
.markdown-body{white-space:normal;overflow-wrap:anywhere;font-size:16px;line-height:1.85;color:var(--ink)}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body p{margin:0 0 18px}.markdown-body h1{font-size:27px;line-height:1.45;margin:32px 0 20px;font-weight:650;letter-spacing:-.03em}.markdown-body h2{font-size:21px;line-height:1.5;margin:30px 0 14px;font-weight:600}.markdown-body h3{font-size:18px;margin:24px 0 12px;font-weight:600}.markdown-body h4,.markdown-body h5,.markdown-body h6{font-size:16px;margin:20px 0 10px}.markdown-body ul,.markdown-body ol{padding-left:24px;margin:14px 0 22px}.markdown-body li{padding-left:4px;margin:6px 0}.markdown-body li>p{margin-bottom:8px}.markdown-body li>ul,.markdown-body li>ol{margin:6px 0}.markdown-body blockquote{margin:22px 0;border-left:3px solid var(--color-muted);padding:8px 18px;background:var(--color-soft);color:var(--color-muted)}.markdown-body blockquote p:last-child{margin-bottom:0}.markdown-body a{color:var(--color-muted);text-decoration:underline;text-underline-offset:3px}.markdown-body pre{overflow:auto;padding:18px 20px;background:var(--color-soft);border:1px solid var(--border);border-radius:6px;margin:20px 0;white-space:pre}.markdown-body code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em;background:var(--color-soft);border-radius:3px;padding:2px 5px}.markdown-body pre code{padding:0;background:none}.markdown-body table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;font-size:14px;margin:22px 0}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:10px 14px;text-align:left;min-width:100px}.markdown-body th{background:var(--color-soft);font-weight:550}.markdown-body hr{border:0;border-top:1px solid var(--border);margin:28px 0}.markdown-body input[type=checkbox]{width:16px;height:16px;min-height:0;margin-right:8px;accent-color:var(--ink)}
.material-document .analysis-keywords{gap:6px;margin:24px 0}.material-document .keyterm{background:var(--color-soft);border:0;border-radius:4px;margin:0;color:var(--color-muted);padding:4px 9px}.analysis-section{margin-top:12px;border:1px solid var(--border);border-radius:7px;padding:0;overflow:hidden}.analysis-section>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;font-size:14px;font-weight:550;list-style:none}.analysis-section>summary::-webkit-details-marker{display:none}.analysis-section>summary:hover{background:var(--soft)}.analysis-chevron .icon{width:16px;height:16px}.analysis-section[open] .analysis-chevron{transform:rotate(180deg)}.analysis-section-body{padding:2px 20px 20px}.analysis-section article{margin:0;padding:20px 0;border-bottom:1px solid var(--border)}.analysis-section article:last-child{padding-bottom:0;border:0}.analysis-section h3{font-size:15px;margin-bottom:12px}.analysis-section .markdown-body{font-size:15px}.analysis-section .material-source{font-weight:550}.task-document{border:1px solid var(--border);border-radius:8px;padding:0 24px;min-height:220px;white-space:normal}.task-document .todo-row{padding:16px 0}.task-document .todo-main{font-size:16px}.task-document .btn{margin-left:30px}.task-document .todo-row:last-child{border:0}.task-empty{padding:48px 20px}.task-empty>.icon{width:24px;height:24px;color:var(--color-muted);margin-bottom:12px}.task-evidence{margin-left:30px}.task-evidence summary{color:var(--muted);font-size:12px;cursor:pointer;min-height:44px;padding:8px 0}.task-evidence blockquote{font-size:14px;line-height:1.8;border-left:2px solid var(--color-border);margin:0 0 12px;padding-left:14px;color:var(--color-muted)}
.diagram-card{border:1px solid var(--border);border-radius:10px;background:var(--color-surface);overflow:hidden;min-width:0}.diagram-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border);margin:0;flex-wrap:wrap}.diagram-toolbar h2{font-size:15px;margin:0 0 3px;font-weight:600}.diagram-controls{display:flex;gap:4px;align-items:center}.diagram-controls .btn{border:0;min-width:44px;background:transparent;font-variant-numeric:tabular-nums}.diagram-controls .btn:hover{background:var(--color-soft)}.diagram-viewport{position:relative;overflow:auto;max-width:100%;overscroll-behavior:contain;background-color:var(--color-soft);background-image:radial-gradient(var(--color-border) .7px,transparent .7px);background-size:20px 20px;cursor:grab;scrollbar-width:thin}.diagram-viewport:active{cursor:grabbing}.diagram-viewport:focus-visible{outline-offset:-3px}.diagram-viewport svg{display:block;max-width:none;user-select:none}.diagram-footer{display:flex;align-items:center;gap:7px;padding:12px 20px;color:var(--muted);font-size:12px;border-top:1px solid var(--border)}.diagram-footer .icon{width:13px;height:13px}.mind-viewport{height:520px;max-height:65dvh}.mind-svg .mind-link{fill:none;stroke:var(--color-border);stroke-width:1.6}.mind-node>rect{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1.2}.mind-node text{fill:var(--color-ink);font-size:14px;font-weight:500;pointer-events:none}.mind-node.is-root>rect{fill:var(--color-ink);stroke:var(--color-ink)}.mind-node.is-root text{fill:var(--color-surface)}.mind-hit{fill:transparent;stroke:none;pointer-events:all}.mind-label[role=button]{cursor:pointer}.mind-label[role=button]:hover .mind-hit{fill:color-mix(in srgb, var(--color-muted) 7%, transparent)}.mind-label:focus-visible{outline:none}.mind-label:focus-visible .mind-hit{stroke:var(--color-muted);stroke-width:2}.mind-collapse{cursor:pointer}.mind-collapse rect{fill:var(--color-surface);stroke:var(--color-border)}.mind-collapse text{fill:var(--color-muted)!important;font-size:16px}.mind-collapse:hover rect,.mind-collapse:focus-visible rect{stroke:var(--color-ink);fill:var(--color-soft)}.mind-collapse:focus-visible{outline:none}.mind-node.branch-0:not(.is-root)>rect{fill:var(--color-soft);stroke:var(--color-border)}.mind-node.branch-1:not(.is-root)>rect{fill:var(--color-soft);stroke:var(--color-border)}.mind-node.branch-2:not(.is-root)>rect{fill:var(--color-soft);stroke:var(--color-border)}.mind-node.branch-3:not(.is-root)>rect{fill:var(--color-soft);stroke:var(--color-border)}
.graph-workspace{display:grid;grid-template-columns:minmax(0,1fr) 282px;min-width:0}.knowledge-viewport{height:560px;max-height:70dvh;border:0;border-radius:0}.knowledge-link{color:var(--color-border)}.knowledge-link path{stroke:currentColor;stroke-width:1.2;fill:none}.knowledge-link.is-related{color:var(--color-muted)}.knowledge-link.is-related path{stroke-width:1.8}.knowledge-link.is-muted{opacity:.2}.knowledge-link text{font-size:11px;fill:var(--color-ink);paint-order:stroke;stroke:var(--color-soft);stroke-width:5px;stroke-linejoin:round}.knowledge-node{cursor:pointer;transition:opacity .15s}.knowledge-node rect{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1.2;filter:drop-shadow(0 2px 2px color-mix(in srgb, var(--color-ink) 3%, transparent))}.knowledge-node text{fill:var(--color-ink);font-size:13px;font-weight:500;pointer-events:none}.knowledge-node.is-muted{opacity:.42}.knowledge-node:hover rect,.knowledge-node:focus-visible rect{stroke:var(--color-muted);stroke-width:2;fill:var(--color-soft)}.knowledge-node.is-selected rect{fill:var(--color-ink);stroke:var(--color-ink)}.knowledge-node.is-selected text{fill:var(--color-surface);font-weight:600}.knowledge-node:focus-visible{outline:none}.knowledge-node:focus-visible rect{stroke:var(--color-muted);stroke-width:3}.graph-inspector{height:560px;max-height:70dvh;overflow:auto;border-left:1px solid var(--border);background:var(--color-surface);scrollbar-width:thin}.graph-definition{padding:22px 20px;margin:0;border:0;border-bottom:1px solid var(--border);border-radius:0}.eyebrow{font-size:11px;letter-spacing:.08em;color:var(--muted)}.graph-definition h3{font-size:19px;margin:10px 0 12px;line-height:1.5;overflow-wrap:anywhere}.graph-definition p{font-size:13px;line-height:1.9;color:var(--color-muted);margin:0 0 12px}.graph-source{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 0;font-size:12px;color:var(--color-muted);background:none;text-align:left}.graph-source .icon{width:13px;height:13px}.graph-source span{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}.graph-source:hover{text-decoration:underline;text-underline-offset:3px}.graph-relations{padding:20px}.graph-relations h4{font-size:12px;font-weight:550;margin:0 0 8px}.graph-relations h4 span{margin-left:6px}.graph-relations article{padding:14px 0;border-bottom:1px solid var(--border)}.graph-relations article:last-child{border:0}.graph-relations p{display:flex;align-items:flex-start;flex-direction:column;gap:2px;margin:0}.graph-relations p button{font-size:13px;text-align:left;min-height:44px;line-height:1.6;color:var(--color-ink)}.graph-relations p button:hover{text-decoration:underline}.relation-verb{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--color-muted);margin:0 0 0 10px}.relation-verb .icon{width:13px;height:13px}.graph-directory{padding:0 20px;border-top:1px solid var(--border)}.graph-directory>summary{min-height:48px;cursor:pointer;font-size:12px;padding:14px 0}.graph-concepts{margin:0 0 16px;display:flex;flex-wrap:wrap;gap:6px}.graph-concepts .btn{white-space:normal;text-align:left;border:1px solid var(--border)}.graph-concepts .is-selected{background:var(--color-soft);border-color:var(--color-muted)}
@media(max-width:1100px){.graph-workspace{grid-template-columns:minmax(0,1fr) 246px}.material-document{padding:26px}.graph-definition,.graph-relations{padding:18px}}
@media(max-width:800px){.graph-workspace{grid-template-columns:minmax(0,1fr)}.knowledge-viewport{height:440px;max-height:60dvh}.graph-inspector{height:auto;max-height:none;overflow:visible;border-left:0;border-top:1px solid var(--border)}.graph-relations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.graph-relations h4{grid-column:1/-1}.graph-relations article:last-child{border-bottom:1px solid var(--border)}}
@media(max-width:700px){.material-document{border:0;padding:0;border-radius:0}.material-document>.section-title{gap:8px}.material-document .section-title .btn-row{gap:4px}.markdown-body h1{font-size:24px}.markdown-body h2{font-size:20px}.analysis-section>summary{padding:14px}.analysis-section-body{padding:0 16px 18px}.diagram-toolbar{padding:14px;gap:10px}.diagram-controls{gap:0;margin-left:auto}.diagram-controls .btn{padding:8px;font-size:12px}.diagram-toolbar h2{font-size:14px}.diagram-toolbar .small{font-size:11px}.diagram-toolbar .diagram-controls{flex-wrap:wrap}.mind-viewport{height:420px}.graph-relations{grid-template-columns:1fr}.knowledge-viewport{height:380px}.task-document{padding:0 16px}.task-document .todo-main{font-size:15px}.lesson-materials .tabs{display:flex;overflow:auto;position:static;gap:0;margin-bottom:24px}.lesson-materials .tab{padding:12px;min-height:48px}.lesson-materials>.section-title{flex-wrap:wrap}.diagram-footer{padding:12px 14px}}
@media(prefers-reduced-motion:reduce){.knowledge-node{transition:none}}
.graph-more{grid-column:1/-1}.graph-more>summary{font-size:12px;color:var(--muted);min-height:44px;padding:14px 0;cursor:pointer}.graph-more>summary:hover{color:var(--ink)}
