.learn-map-page{--max-wide: 1180px;max-width:var(--max-wide);word-break:keep-all}.learn-map-page [hidden]{display:none!important}.learn-map-header{display:flex;align-items:end;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-5)}.learn-map-header .section-lede{max-width:var(--read-ko);margin-top:var(--s-2);color:var(--c-ink-2)}.learn-map-guide-link{display:grid;flex:0 0 auto;gap:var(--s-1);padding:var(--s-3) var(--s-4);border:var(--border);border-radius:var(--r-btn);color:var(--c-accent-text);font-weight:var(--w-semibold);line-height:var(--lh-tight)}.learn-map-guide-link span{color:var(--c-ink-3);font-family:var(--f-mono);font-size:var(--fs-2xs);font-weight:var(--w-regular)}.learn-map-guide-link:hover{opacity:1;background:var(--c-eucalyptus-tint)}.learn-map-shell{--learn-sidebar-width: 280px;display:grid;position:relative;grid-template-columns:var(--learn-sidebar-width) var(--s-2) minmax(0,1fr);height:min(76vh,760px);min-height:620px;overflow:hidden;border:var(--border);border-radius:var(--r-lg);background:var(--c-bg)}.learn-map-sidebar{min-width:0;overflow-y:auto;border-right:var(--border);background:var(--c-bg-2);scrollbar-gutter:stable}.learn-map-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:var(--s-4) var(--s-4) var(--s-2)}.learn-map-kicker,.learn-map-crumb,.learn-map-progress,.learn-map-relation-role{color:var(--c-ink-3);font-family:var(--f-body);font-size:var(--fs-2xs);letter-spacing:var(--ls-ko)}.learn-map-tree{padding-bottom:var(--s-4);font-size:var(--fs-sm)}.learn-map-tree details{min-width:0}.learn-map-tree summary{list-style:none}.learn-map-tree summary::-webkit-details-marker{display:none}.learn-map-tree-summary{display:grid;grid-template-columns:var(--s-3) minmax(0,1fr) auto;align-items:baseline;gap:var(--s-2);color:var(--c-ink-2);cursor:pointer;transition:color var(--t) var(--ease),background var(--t) var(--ease)}.learn-map-tree-summary:before{color:var(--c-ink-3);content:"›";font-family:var(--f-mono);transform:rotate(0);transform-origin:center;transition:transform var(--t) var(--ease)}.learn-map-tree details[open]>.learn-map-tree-summary:before{transform:rotate(90deg)}.learn-map-tree-summary:hover{background:var(--c-eucalyptus-tint);color:var(--c-ink)}.learn-map-tree-summary--course{padding:var(--s-2) var(--s-4);color:var(--c-ink);font-weight:var(--w-bold)}.learn-map-tree-summary--unit{padding:var(--s-2) var(--s-4) var(--s-2) var(--s-5);font-weight:var(--w-semibold)}.learn-map-tree-label{min-width:0;overflow-wrap:normal;word-break:keep-all}.learn-map-progress{font-variant-numeric:tabular-nums;white-space:nowrap}.learn-map-tree-atom{display:flex;min-height:var(--s-5);align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-4) var(--s-1) calc(var(--s-5) + var(--s-3));border-right:2px solid transparent;color:var(--c-ink-2);line-height:var(--lh-tight);transition:color var(--t) var(--ease),background var(--t) var(--ease)}.learn-map-tree-atom:hover{opacity:1;background:var(--c-eucalyptus-tint);color:var(--c-accent-text)}.learn-map-tree-atom.is-selected,.learn-map-tree-atom[aria-current=true]{border-right-color:var(--c-accent);background:var(--c-eucalyptus-tint);color:var(--c-accent-text);font-weight:var(--w-medium)}.learn-map-read-dot{width:7px;height:7px;flex:0 0 7px;border:var(--border-strong);border-radius:var(--r-circle)}.learn-map-read-dot.is-read{border-color:var(--c-accent);background:var(--c-accent)}.learn-map-resize{position:relative;z-index:var(--z-raised);width:var(--s-2);cursor:col-resize;touch-action:none}.learn-map-resize:after{position:absolute;top:50%;left:calc(50% - 1px);width:2px;height:var(--s-6);border-radius:var(--r-pill);background:var(--c-line);content:"";transform:translateY(-50%);transition:background var(--t) var(--ease)}.learn-map-resize:hover:after,.learn-map-resize:focus-visible:after{background:var(--c-accent)}.learn-map-workspace{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);background:var(--c-bg)}.learn-map-toolbar{display:flex;min-height:var(--s-7);align-items:center;justify-content:flex-end;padding:var(--s-2) var(--s-4);border-bottom:var(--border)}.learn-map-view-toggle{display:inline-flex;overflow:hidden;border:var(--border);border-radius:var(--r-btn)}.learn-map-view-button{min-width:76px;min-height:var(--s-6);padding:var(--s-2) var(--s-3);background:var(--c-bg);color:var(--c-ink-3);font-family:var(--f-body);font-size:var(--fs-2xs);letter-spacing:var(--ls-ko);transition:color var(--t) var(--ease),background var(--t) var(--ease)}.learn-map-view-button+.learn-map-view-button{border-left:var(--border)}.learn-map-view-button.is-active{background:var(--c-accent);color:var(--c-bg)}.learn-map-content-view,.learn-map-graph-view{min-width:0;min-height:0}.learn-map-content-view{overflow-y:auto;padding:var(--s-6) clamp(var(--s-4),5vw,var(--s-7))}.learn-map-empty,.learn-map-summary{max-width:var(--read-editorial)}.learn-map-empty h2,.learn-map-summary h2{margin-top:var(--s-2);font-family:var(--f-body);font-size:var(--fs-3xl);font-weight:var(--w-semibold);line-height:var(--lh-tight)}.learn-map-empty-copy{margin-top:var(--s-3);color:var(--c-ink-2);font-size:var(--fs-md);line-height:var(--lh-normal)}.learn-map-chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-5)}.learn-map-chip{min-height:var(--s-6);padding:var(--s-2) var(--s-3);border:var(--border);border-radius:var(--r-pill);background:var(--c-bg);color:var(--c-accent-text);font-size:var(--fs-sm);text-align:left;transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}.learn-map-chip:hover{border-color:var(--c-accent);background:var(--c-eucalyptus-tint)}.learn-map-recommendation-empty{margin-top:var(--s-4);color:var(--c-ink-2);font-size:var(--fs-sm)}.learn-map-crumb{text-transform:uppercase}.learn-map-summary-outcome{margin-top:var(--s-4);padding:var(--s-3) var(--s-4);border:var(--border);border-radius:var(--r-md);background:var(--c-bg-2)}.learn-map-summary-outcome>p:last-child{margin-top:var(--s-1);color:var(--c-ink-2);line-height:var(--lh-normal)}.learn-map-summary-status{margin-top:var(--s-3);color:var(--c-accent-text);font-size:var(--fs-xs)}.learn-map-summary-body{margin-top:var(--s-5)}.learn-map-summary-loading,.learn-map-summary-error{padding:var(--s-3) 0;color:var(--c-ink-3);font-size:var(--fs-sm)}.learn-map-summary-error{color:var(--c-warn)}.learn-map-summary-fragment{border-top:var(--border)}.learn-map-summary-fragment:empty{border-top:0}.learn-map-summary-fragment .lesson-section-content{padding:var(--s-4) 0}.learn-map-summary-relations{margin-top:var(--s-5)}.learn-map-summary-relations h3{font-size:var(--fs-base);font-weight:var(--w-semibold)}.learn-map-summary-relations li{border-top:var(--border)}.learn-map-relation-button{display:grid;width:100%;grid-template-columns:104px minmax(0,1fr);gap:var(--s-2);padding:var(--s-2) 0;color:var(--c-accent-text);font-size:var(--fs-sm);text-align:left;transition:padding-left var(--t) var(--ease)}.learn-map-relation-button:hover{padding-left:var(--s-2)}.learn-map-relation-role{text-transform:uppercase}.learn-map-summary-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-5)}.learn-map-action{display:inline-flex;min-height:var(--s-6);align-items:center;justify-content:center;padding:var(--s-2) var(--s-3);border:var(--border);border-radius:var(--r-btn);background:var(--c-bg);color:var(--c-ink-2);font-size:var(--fs-sm);transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}.learn-map-action:hover{opacity:1;border-color:var(--c-accent)}.learn-map-action--primary{border-color:var(--c-accent);background:var(--c-accent);color:var(--c-bg)}.learn-map-graph-view{display:grid;grid-template-rows:auto minmax(0,1fr);padding:var(--s-3);background:var(--c-bg-2)}.learn-map-help{padding:0 var(--s-1) var(--s-2);color:var(--c-ink-3);font-size:var(--fs-xs)}.learn-map-viewport{position:relative;min-height:0;overflow:hidden;border:var(--border);border-radius:var(--r-md);background:var(--c-bg-2)}.learn-map-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.learn-map-viewport.is-node-hovered .learn-map-canvas{cursor:pointer}.learn-map-viewport.is-panning .learn-map-canvas{cursor:grabbing}.learn-map-viewport.is-node-dragging .learn-map-canvas{cursor:move}.learn-map-drawer-open,.learn-map-drawer-close,.learn-map-drawer-backdrop{display:none}[data-theme=dark] .learn-map-sidebar,[data-theme=dark] .learn-map-graph-view,[data-theme=dark] .learn-map-viewport{background:var(--c-bg-2)}@media(max-width:640px){.learn-map-header{align-items:start;flex-direction:column}.learn-map-guide-link{width:100%}.learn-map-shell{display:block;height:auto;min-height:0;overflow:visible}.learn-map-workspace{height:min(78vh,720px);min-height:520px;overflow:hidden;border-radius:var(--r-lg)}.learn-map-toolbar{justify-content:space-between}.learn-map-drawer-open,.learn-map-drawer-close{display:inline-flex;min-height:var(--s-6);align-items:center;padding:var(--s-2);color:var(--c-accent-text);font-family:var(--f-body);font-size:var(--fs-2xs);letter-spacing:var(--ls-ko)}.learn-map-sidebar{position:fixed;z-index:var(--z-modal);top:0;bottom:0;left:0;width:min(88vw,360px);border-right:var(--border);box-shadow:var(--shadow-deep);transform:translate(-100%);transition:transform var(--t) var(--ease)}.learn-map-drawer-backdrop{display:block;position:fixed;z-index:var(--z-overlay);inset:0;background:var(--c-ink);opacity:0;pointer-events:none;transition:opacity var(--t) var(--ease)}.learn-map-shell.is-drawer-open .learn-map-sidebar{transform:translate(0)}.learn-map-shell.is-drawer-open .learn-map-drawer-backdrop{opacity:.35;pointer-events:auto}.learn-map-resize{display:none}.learn-map-content-view{padding:var(--s-4)}.learn-map-empty h2,.learn-map-summary h2{font-size:var(--fs-2xl)}.learn-map-relation-button{grid-template-columns:88px minmax(0,1fr)}.learn-map-graph-view{min-height:0}.learn-map-viewport{height:min(68vh,640px);min-height:440px}}@media(prefers-reduced-motion:reduce){.learn-map-tree-summary,.learn-map-tree-summary:before,.learn-map-tree-atom,.learn-map-resize:after,.learn-map-view-button,.learn-map-chip,.learn-map-relation-button,.learn-map-action,.learn-map-sidebar,.learn-map-drawer-backdrop{transition:none}}
