/* Copyright (c) 2026 OriginMind. All rights reserved. */
/* Full-height course directory, with a shared reveal distance for the reading pane. */
:root{--directory-width:min(300px,84vw)}
html,body{overflow-x:clip}
body{--directory-offset:0px}
#course-directory{position:fixed;inset:0 auto 0 0;z-index:50;display:flex;flex-direction:column;width:var(--directory-width);height:100vh;height:100dvh;max-height:100dvh;min-height:0;padding:0;background:#f7f8fa;border-right:1px solid #e3e7eb;box-shadow:none;overflow:hidden;transform:translateX(-100%);transition:transform 200ms ease;animation:none!important;touch-action:pan-y pinch-zoom}
#course-directory[data-open="true"]{transform:translateX(0)}
#course-directory .directory-heading{flex:none;height:72px;margin:0;padding:12px 16px 12px 20px;gap:8px;background:#f7f8fa;border-bottom:1px solid #e8ebee}
#course-directory .directory-heading strong{font-size:17px;line-height:1.5;color:var(--ink)}
#directory-close{display:flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:40px;min-height:40px;margin:0;padding:0;border-radius:10px;font-size:25px;font-weight:400;color:#526b7b;background:transparent;text-align:center}
#directory-close:hover{background:#e7ebef}
#course-directory>div:last-child{flex:1;min-height:0;padding:8px 14px max(18px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bec8cf transparent;-webkit-overflow-scrolling:touch}
#course-directory .track{margin:0;padding:10px 0;border-top:1px solid #e2e7eb}
#course-directory .track:first-child{border-top:0}
#course-directory summary{padding:8px 4px;font-size:14px;line-height:1.65;color:#354f60}
#course-directory .track[open]>summary{margin-bottom:4px}
#course-directory .track>p{margin:5px 5px 10px;font-size:12px;line-height:1.65}
#course-directory .stage{margin:5px 0;padding-left:8px}
#course-directory .stage summary{font-size:13px}
#course-directory nav{max-height:none;overflow:visible}
#course-directory nav button{display:block;width:100%;min-height:44px;margin:2px 0;padding:10px 12px;text-align:left;white-space:normal;border-radius:9px;background:transparent;font-size:14px;font-weight:500;line-height:1.6;color:#4a6070}
#course-directory nav button:hover{background:#edf0f3}
#course-directory nav button.active{background:#e3e9ee;color:#173e55}
#course-directory .directory-project strong{font-weight:750;color:var(--ink)}
#course-directory #fast-track-entry{margin:10px 0 4px;font-size:12px;padding:9px 12px;background:#eef2f5}
.layout,.layout:has(#course-directory:not([open])),.layout.directory-collapsed{display:block;max-width:none;margin:0 0 0 var(--directory-offset);width:calc(100% - var(--directory-offset));transition:margin-left 200ms ease,width 200ms ease}
.layout main,.layout.directory-collapsed main{max-width:1000px!important;margin:0 auto}
.course-header{position:relative;z-index:45;margin-left:var(--directory-offset);transition:margin-left 200ms ease;transform:none}
.tabs{left:var(--directory-offset);padding-left:max(12px,calc((100vw - var(--directory-offset) - 1000px)/2));padding-right:max(12px,calc((100vw - var(--directory-offset) - 1000px)/2));transition:left 200ms ease}
#directory-backdrop{z-index:40;background:#102c3e18;opacity:0;transition:opacity 200ms ease;touch-action:pan-y pinch-zoom}
#directory-backdrop[data-open="true"]{opacity:1}
.directory-dragging #course-directory,.directory-dragging .layout,.directory-dragging .course-header,.directory-dragging .tabs,.directory-dragging #directory-backdrop{transition:none!important}
.directory-dragging{user-select:none;-webkit-user-select:none}
@media(max-width:1100px){
 .layout,.layout:has(#course-directory:not([open])),.layout.directory-collapsed{width:100%;margin:0;transform:translateX(var(--directory-offset));transition:transform 200ms ease}
 .course-header{margin-left:0;transform:translateX(var(--directory-offset));transition:transform 200ms ease}
 .tabs{left:0;padding-left:12px;padding-right:12px;transform:translateX(var(--directory-offset));transition:transform 200ms ease}
 .drawer-open{overflow-y:hidden}
 .drawer-open .course-header{pointer-events:none}
 .drawer-open #directory-toggle{pointer-events:auto}
}
@media(max-width:620px){
 #course-directory .directory-heading{height:64px;padding-left:18px}
 #course-directory>div:last-child{padding-inline:12px}
 .tabs{padding-left:8px;padding-right:8px}
}
@media(prefers-reduced-motion:reduce){#course-directory,.layout,.course-header,.tabs,#directory-backdrop{transition:none!important}}
.reduce-motion #course-directory,.reduce-motion .layout,.reduce-motion .course-header,.reduce-motion .tabs,.reduce-motion #directory-backdrop{transition:none!important}
