.level-selector{margin:1rem 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}.level-selector summary{cursor:pointer;display:flex;justify-content:space-between;padding:1.2rem}.cycle-grid,.module-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px, calc((100% - 1rem) / 2));gap:1rem;padding:1rem;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;scrollbar-width:thin}.cycle-card,.module-card{scroll-snap-align:start;display:block;padding:1.2rem;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,0.02);color:var(--text)}.cycle-card:hover,.module-card:hover{border-color:var(--accent);color:var(--text)}.cycle-code{color:var(--accent);font-family:"IBM Plex Mono", monospace;font-size:.8rem;font-weight:700}.breadcrumbs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;color:var(--muted);font-family:"IBM Plex Mono", monospace;font-size:.8rem}.doc-layout{display:grid;grid-template-columns:280px minmax(0, 1fr);gap:2rem;align-items:start}.doc-sidebar{position:sticky;top:90px;max-height:calc(100vh - 110px);overflow-y:auto;padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.sidebar-kicker{color:var(--accent);font-family:"IBM Plex Mono", monospace;font-size:.75rem}.module-tree,.unit-tree{display:grid;gap:.2rem}.module-tree a{padding:.5rem .6rem;border-radius:8px;color:var(--muted)}.module-tree a:hover,.module-tree a.active{color:var(--text);background:rgba(88,166,255,0.08)}.module-tree a.active{border-left:2px solid var(--accent)}.unit-tree{margin:.2rem 0 .6rem .75rem;padding-left:.6rem;border-left:1px solid var(--line)}.unit-tree a{font-size:.86rem}.section-tree a{font-size:.78rem}.unit-index{margin-top:2rem}.unit-card{display:grid;grid-template-columns:40px 1fr auto;gap:1rem;align-items:center;margin:.5rem 0;padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;color:var(--text)}.unit-card:hover{border-color:var(--accent);color:var(--text)}.unit-card div{display:grid}.unit-card small{color:var(--muted)}.unit-order{color:var(--accent);font-family:"IBM Plex Mono", monospace}@media (max-width: 850px){.doc-layout{grid-template-columns:1fr}.doc-sidebar{position:static;max-height:none}.cycle-grid,.module-grid{grid-auto-columns:85%}}.section-tree a.is-current-section{color:var(--accent);font-weight:600;background:rgba(13,242,70,0.06)}.carousel{position:relative}.carousel-controls{display:flex;justify-content:flex-end;gap:.45rem;margin-bottom:.5rem}.carousel-button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--muted);cursor:pointer}.carousel-button:hover{border-color:var(--accent);color:var(--accent)}.carousel-button:disabled{opacity:.3;cursor:default}.callout,.activity{margin:1.25rem 0;padding:1rem 1.1rem;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,0.025)}.callout-note{border-left:4px solid var(--accent-2)}.callout-warning{border-left:4px solid #f5a623}.activity-lab{border-left:4px solid #9b7cff}.activity-practice{border-left:4px solid var(--accent)}.back-to-top{position:fixed;right:1.25rem;bottom:1.25rem;z-index:50;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--accent);font-family:"IBM Plex Mono", monospace;font-size:1.15rem;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .2s ease, transform .2s ease, border-color .2s ease}.back-to-top:hover{border-color:var(--accent)}.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}@media (max-width: 850px){.unit-pager{grid-template-columns:1fr}.unit-pager__next{justify-content:stretch}.unit-pager__link,.unit-pager__link--next{text-align:left}.back-to-top{right:1rem;bottom:1rem}}.unit-pager{display:grid;grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);gap:1rem;align-items:center;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line)}.unit-pager__center{display:flex;gap:.6rem;align-items:center;justify-content:center}.unit-pager__next{display:flex;justify-content:flex-end}.unit-pager__link{display:grid;gap:.25rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--panel)}.unit-pager__link:hover{border-color:var(--accent)}.unit-pager__link--next{text-align:right}.unit-pager__label{color:var(--muted);font-size:.75rem;font-family:"IBM Plex Mono", monospace}.unit-pager__module{padding:.55rem .75rem;border:1px solid var(--line);border-radius:8px;color:var(--muted)}.unit-pager__module:hover{border-color:var(--accent);color:var(--accent)}.unit-pager__disabled{color:var(--muted);font-size:.8rem}#unit-top{scroll-margin-top:90px}.module-classroom{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin:1.5rem 0;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.module-classroom p{margin:.35rem 0 0;color:var(--muted);font-size:.9rem}.module-classroom__button{flex-shrink:0}.chip--link{text-decoration:none;transition:border-color .2s ease, background .2s ease, color .2s ease}.chip--link:hover{border-color:var(--accent);color:var(--accent);background:rgba(88,166,255,0.14)}.chip--disabled{opacity:.45;cursor:default}@media (max-width: 700px){.module-classroom{align-items:stretch;flex-direction:column}.module-classroom__button{text-align:center}}.unit-meta{margin-top:3rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,0.02)}.unit-meta__title{margin:0 0 .85rem;font-size:1rem}.unit-meta__grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:.75rem 1.2rem;margin:0}.unit-meta dt{color:var(--muted);font-family:"IBM Plex Mono", monospace;font-size:.72rem;text-transform:uppercase}.unit-meta dd{margin:.15rem 0 0}.mobile-toc{display:none;margin:1.25rem 0 1.5rem;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.mobile-toc summary{padding:.8rem 1rem;font-weight:700;cursor:pointer}.mobile-toc nav{display:grid;gap:.2rem;padding:0 .7rem .8rem}.mobile-toc nav a{padding:.55rem .65rem;border-radius:8px}@media (max-width: 850px){.unit-page .doc-sidebar{display:none}.mobile-toc{display:block}.unit-meta__grid{grid-template-columns:1fr}}@media (min-width: 1600px){.doc-layout{grid-template-columns:300px minmax(0, 1fr);gap:2.5rem}}
