/* 展开浮层不挤动正文；锁定后才固定占位。 */
.sidebar-rail,.sidebar-controls{display:none}
body.sidebar-managed{--rail-width:52px}
body.sidebar-managed .sidebar{transform:translateX(-100%);visibility:hidden;transition:transform .22s ease,visibility .22s;overscroll-behavior:contain}
body.sidebar-managed.sidebar-visible .sidebar{transform:translateX(0);visibility:visible;transition:transform .22s ease;box-shadow:12px 0 40px #173e3512}
body.sidebar-managed.sidebar-pinned .sidebar{box-shadow:none}
body.sidebar-managed .app-main{margin-left:var(--rail-width);transition:margin-left .22s ease}
body.sidebar-managed.sidebar-pinned .app-main{margin-left:var(--sidebar)}
body.sidebar-managed .sidebar-rail{position:fixed;inset:0 auto 0 0;width:var(--rail-width);background:#f0f3ed;border-right:1px solid #e1e7dc;z-index:28;display:flex;align-items:center;flex-direction:column;gap:23px;padding-top:22px;transition:opacity .16s}
body.sidebar-managed.sidebar-visible .sidebar-rail{opacity:0;visibility:hidden;pointer-events:none}
.sidebar-reveal{width:34px;height:34px;display:grid;place-items:center;border:1px solid #d8e2d1;border-radius:8px;background:#e4ecdd;color:#4e7054;padding:7px}
.sidebar-reveal:hover{background:#dbe7d2}.sidebar-reveal svg{width:20px;height:20px}
.rail-caption{writing-mode:vertical-rl;letter-spacing:3px;font-size:10px;color:#7d8f73}.rail-arrow{color:#9aaa8d;font-size:20px}
body.sidebar-managed .sidebar-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-8px 8px 15px;padding-bottom:13px;border-bottom:1px solid #dfe7d7}
.sidebar-lock{display:flex;align-items:center;gap:6px;border:1px solid #cfddc5;border-radius:6px;background:#e7efdf;color:#637d56;padding:6px 9px;font-size:10px;line-height:1.4;white-space:nowrap}
.sidebar-lock svg{width:13px;height:13px;flex-shrink:0}.sidebar-lock:hover{background:#dce8d0;border-color:#b5c8a7}.sidebar-lock[aria-pressed=true]{background:#275542;color:#edf5e3;border-color:#275542}
.sidebar-behavior{font-size:8px;white-space:nowrap;color:#8a9a7d}
body.sidebar-managed .skip-link{left:calc(var(--rail-width) + 18px)}
body.sidebar-managed.sidebar-pinned .skip-link{left:calc(var(--sidebar) + 18px)}
@media(max-width:1180px) and (min-width:701px){body.sidebar-managed .sidebar-controls{margin-left:3px;margin-right:3px;gap:5px}.sidebar-lock{padding:6px 7px}.sidebar-behavior{font-size:7px}}
@media(max-width:700px){
  body.sidebar-managed .sidebar-rail{display:none}
  body.sidebar-managed .app-main,body.sidebar-managed.sidebar-pinned .app-main{margin-left:0}
  body.sidebar-managed.sidebar-pinned .sidebar{box-shadow:12px 0 40px #173e3512}
  body.sidebar-managed .skip-link,body.sidebar-managed.sidebar-pinned .skip-link{left:20px}
}
@media(max-width:700px) and (hover:none){body.sidebar-managed .sidebar-controls{display:none}}
@media(max-width:700px) and (hover:hover) and (pointer:fine){
  body.sidebar-managed{--rail-width:38px}
  body.sidebar-managed .sidebar-rail{display:flex;padding-top:16px}
  body.sidebar-managed .sidebar-reveal{width:28px;height:30px;padding:5px}
  body.sidebar-managed .app-main,body.sidebar-managed.sidebar-pinned .app-main{margin-left:var(--rail-width)}
  body.sidebar-managed .menu-button{display:none}
  body.sidebar-managed .skip-link,body.sidebar-managed.sidebar-pinned .skip-link{left:52px}
}
@media(prefers-reduced-motion:reduce){body.sidebar-managed .sidebar,body.sidebar-managed .app-main,body.sidebar-managed .sidebar-rail{transition:none}}
