/* Shared navigation for the server and GitHub Pages versions. */
.app-shell{display:grid;grid-template-columns:264px minmax(0,1fr);align-items:start}
.sidebar{position:sticky;inset:auto;top:0;width:auto;height:100vh;height:100dvh;padding:26px 18px 18px;overflow-y:auto;overscroll-behavior:contain}
.sidebar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sidebar .brand{font-size:.9375rem;margin:0;padding:0 6px}
.sidebar .brand small{font-size:.5625rem;letter-spacing:1px}
.sidebar .brand-mark{width:42px;height:42px;font-size:1.9rem;flex-shrink:0}
.navigation-panel{display:flex;flex-direction:column;flex:1;min-height:0}
.workspace-role{margin:24px 0 22px;font-size:.6875rem;padding:10px 12px;flex-shrink:0}
.nav-label{padding:0 12px;line-height:1.5;font-size:.625rem}
.sidebar nav{display:grid;gap:6px;overflow:visible}
.sidebar .nav-item{display:flex;align-items:center;gap:10px;padding:13px 12px;min-height:48px;width:100%;margin:0;white-space:normal;font-size:.875rem;line-height:1.4;border:1px solid transparent}
.sidebar .nav-item>.nav-icon{flex:0 0 22px;width:22px;font-size:1.2rem;text-align:center}
.sidebar .nav-item>.nav-text{flex:1;width:auto;min-width:0;font-size:inherit;text-align:left}
.sidebar .nav-item>.nav-chevron{width:auto;flex:0 0 auto;font-size:1.25rem;opacity:0}
.sidebar .nav-item.active{border-color:#ddd3f8}
.trainer-space .nav-item.active{border-color:#cce5dc}
.sidebar .nav-item.active>.nav-chevron{opacity:1}
.sidebar-tip{margin-top:auto;margin-bottom:0;padding:16px;flex-shrink:0}
.sidebar nav{margin-bottom:28px}
.profile{position:static;display:flex;margin-top:20px;padding-top:18px;gap:10px;flex-shrink:0}
.profile>div{display:block}.profile .avatar{width:36px;height:36px;font-size:.75rem}
.session-button{display:flex;align-items:center;gap:10px;background:transparent;color:#657084;border-radius:8px;padding:12px;margin-top:10px;text-align:left;font-size:.8125rem;min-height:44px;flex-shrink:0}
.session-button:hover{background:#f6f3fb;color:#5f41be}.session-button>span:first-child{font-size:1.15rem}
.main{margin:0;width:100%;min-width:0}
.topbar{height:auto;min-height:76px;gap:16px;padding:18px 32px}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;line-height:1.5;font-size:.8125rem}
.breadcrumb>span{margin:0;color:inherit}.breadcrumb>span[aria-hidden]{color:#a4adbb}
.breadcrumb button{color:#69758a;background:transparent;padding:4px 0;text-align:left;min-height:32px;font-size:inherit}
.breadcrumb button:hover{color:var(--primary);text-decoration:underline}.breadcrumb [aria-current]{color:#28364d;font-weight:600}
.top-role{flex-shrink:0}.menu-toggle{display:none}
.skip-link{position:fixed;top:8px;left:16px;z-index:200;background:white;border:2px solid var(--primary);border-radius:8px;padding:12px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
#workspace:focus{outline:none}.tabs{overflow-x:auto}.tabs button{flex-shrink:0;min-height:48px}
@media(min-width:901px) and (max-height:760px){.sidebar-tip{display:none}.navigation-panel{min-height:auto}.sidebar nav{margin-bottom:auto}.profile{margin-top:24px}}
@media(max-width:1100px) and (min-width:901px){.app-shell{grid-template-columns:244px minmax(0,1fr)}.sidebar{padding:24px 14px 16px}}
@media(max-width:900px){
  .app-shell{display:block}.sidebar{position:relative;top:auto;inset:auto;width:100%;height:auto;padding:18px 20px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}
  .sidebar .brand{font-size:.9375rem;margin:0;padding:0}.sidebar .brand small{font-size:.5625rem;letter-spacing:1px}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;background:#f4f1fb;border:1px solid #e0d9ef;border-radius:9px;color:#59438f;font-size:.8125rem;flex-shrink:0}
  .trainer-space .menu-toggle{background:#edf6f2;border-color:#d6e8e0;color:#286d5e}
  .navigation-panel{display:none}.sidebar[data-open="true"] .navigation-panel{display:flex;padding-top:20px}
  .workspace-role{display:flex;align-self:flex-start;margin:0 0 16px}.nav-label{display:block;margin-bottom:10px}
  .sidebar nav{display:grid;gap:6px;margin:0;overflow:visible}.sidebar .nav-item{width:100%;min-height:48px;font-size:.875rem;padding:12px 14px}
  .sidebar-tip{display:none}.profile{position:static;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--line)}
  .profile>div{display:block}.session-button{align-self:flex-start;margin-top:6px}
  .main{margin:0;width:100%}.topbar{padding:14px 20px;min-height:60px}.top-role{display:none}.trainer-space .topbar .breadcrumb{font-size:.8125rem}
}
@media(max-width:380px){.sidebar{padding:16px}.sidebar .brand{gap:8px;font-size:.8125rem}.sidebar .brand small{font-size:.5rem}.sidebar .brand-mark{width:34px;height:36px}.menu-toggle{padding:10px;font-size:.75rem}}
