/* v1.8.11: shared mobile drawer and desktop sidebar. */
.skip-navigation{position:fixed;left:12px;top:-100px;z-index:150;padding:12px 18px;background:var(--panel);color:var(--text);border:2px solid var(--accent);border-radius:9px}
.skip-navigation:focus{top:12px}
.shell{grid-template-columns:240px minmax(0,1fr)}
.sidebar{width:auto;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:20px 14px}
.sidebar .brand{margin-bottom:18px;padding-right:22px}
.sidebar nav .nav-group{display:grid;gap:3px;padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.sidebar nav .nav-section-label{padding:12px 12px 6px;font-size:10px;letter-spacing:.12em;color:var(--muted)}
.sidebar nav a{display:flex;align-items:center;min-height:44px;padding:10px 12px;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.sidebar nav a.active{font-weight:700}
.sidebar-footer{display:flex;position:static;line-height:1.5;margin:20px 8px 8px}
.theme-picker{max-width:100%}
.navigation-bar{display:flex;align-items:center;gap:12px;margin-bottom:18px;min-width:0}
.compact-brand{display:flex;align-items:center;gap:10px;color:var(--text);font-size:15px;font-weight:750}
.compact-brand img{border-radius:8px;object-fit:contain;flex-shrink:0}
.nav-toggle,.nav-close{align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer}
.nav-toggle:not([hidden]),.nav-close:not([hidden]){display:inline-flex}
.nav-toggle:hover,.nav-close:hover{background:var(--panel2)}
.nav-toggle:focus-visible,.nav-close:focus-visible,.sidebar a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.nav-close{position:absolute;right:12px;top:14px;font-size:26px}
.nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.62);border:0;border-radius:0;padding:0;z-index:109;cursor:pointer}
.nav-backdrop[hidden],.nav-close[hidden],.nav-toggle[hidden]{display:none}
html.nav-ready.nav-collapsed .shell{grid-template-columns:minmax(0,1fr)}
html.nav-ready.nav-collapsed .sidebar{display:none}
.main{min-width:0}
@media(min-width:901px){.nav-close:not([hidden]){display:none}.navigation-bar{margin-bottom:16px}.compact-brand{font-size:14px}.sidebar .brand{padding-right:0}}
@media(max-width:900px){
 .shell{display:block}
 .main{padding:14px;max-width:100%;width:100%;box-sizing:border-box}
 .sidebar{position:relative;height:auto;width:auto}
 html.nav-ready .sidebar{display:block;position:fixed;inset:0 auto 0 0;width:min(330px,88vw);height:100vh;height:100dvh;box-sizing:border-box;z-index:110;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom));box-shadow:10px 0 50px rgba(0,0,0,.28);visibility:hidden;transform:translateX(-105%);transition:transform .2s ease,visibility .2s ease}
 html.nav-ready.nav-mobile-open .sidebar{visibility:visible;transform:translateX(0)}
 html.nav-ready.nav-collapsed .sidebar{display:block}
 html.nav-ready.nav-mobile-open,html.nav-ready.nav-mobile-open body{overflow:hidden}
 .navigation-bar{position:sticky;top:0;z-index:40;margin:-14px -14px 18px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));background:var(--sidebar,var(--panel));border-bottom:1px solid var(--line)}
 .sidebar nav a{min-height:46px;font-size:14px}
 .topbar{gap:12px;align-items:flex-start;flex-direction:column}
 .topbar h1{font-size:24px;overflow-wrap:anywhere}
 .sidebar .theme-picker select,.sidebar .owner-picker-label select{min-height:44px;max-width:100%;font-size:16px}
 .site-footer{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){html.nav-ready .sidebar{transition:none}}
