.sidebar nav{display:block;overflow-y:auto;min-height:0;padding-bottom:14px}.sidebar nav>.nav-item{width:100%;margin-bottom:12px}.nav-group{border-top:1px solid #2a3b57;margin:6px 0;padding:7px 0}.nav-group summary{padding:9px 11px;cursor:pointer;color:#cdd9ec;font-size:15px;font-weight:600;list-style:none;display:flex;align-items:center;justify-content:space-between}.nav-group summary::after{content:'›';font-size:18px;transform:rotate(0);transition:transform .15s}.nav-group[open] summary::after{transform:rotate(90deg)}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:hover{color:#fff}.nav-links{display:grid;gap:4px}.sidebar .nav-item{width:100%;padding:10px 12px}.sidebar-foot{flex-shrink:0}.nav-group[hidden]{display:none}.sidebar .nav-item span{display:inline}.sidebar .brand strong{display:block}
@media(max-width:900px){.app-shell{grid-template-columns:clamp(172px,20vw,200px) minmax(0,1fr)}.sidebar{padding:20px 10px}.sidebar .brand{padding:0 8px 20px}.sidebar .brand strong{font-size:19px}.sidebar .nav-item{justify-content:flex-start}.sidebar-foot{display:block}.content{padding:20px}.topbar{padding:18px;height:auto;gap:16px}.topbar h1{font-size:20px}.topbar p{line-height:1.6}}
@media(max-width:640px){.app-shell{display:block}.sidebar{position:static;height:auto;padding:16px}.sidebar .brand{padding-bottom:12px}.sidebar nav{max-height:340px;overflow-y:auto}.sidebar-foot{display:flex;gap:16px;align-items:center;padding:12px 8px 0;margin-top:4px}.local-badge{margin:0}.topbar{position:static;align-items:flex-start;flex-wrap:wrap}.content{padding:16px}.sidebar .nav-item{padding:11px 12px}}
/* 群组内的子项目比群组标题低一级 */
.nav-group .nav-item>span{font-size:14px}
/* 侧栏可随视窗压缩，但每一列必须完整显示在一行：
   标签一律不换行，宽度下限由 clamp() 的 172px 守住。 */
.sidebar .nav-item span,.nav-group summary,.local-badge,.sidebar .text-button{white-space:nowrap}
.nav-group summary{gap:8px}
