/* BT-025: shared expansion progress, stable rail and persistent indicator. */
:root{--sidebar-rail:72px;--sidebar-wide:248px}
:root[data-sidebar] .sidebar{--sidebar-progress:1;--sidebar-label-opacity:1;width:calc(var(--sidebar-rail) + (var(--sidebar-wide) - var(--sidebar-rail))*var(--sidebar-progress));padding:24px 12px 20px;overflow-x:hidden;overflow-y:auto;transition:none}
.sidebar-head{position:relative;flex:none;height:88px;min-width:0}
:root[data-sidebar] .sidebar .brand{position:relative;display:block;height:44px;padding:0;letter-spacing:.07em}
:root[data-sidebar] .sidebar .brandmark{position:absolute;left:calc(var(--sidebar-rail)/2 - 32px);top:0;width:40px;height:40px;border-radius:12px;font-size:24px}
:root[data-sidebar] .sidebar .brand-label{position:absolute;left:52px;top:2px;display:block;white-space:nowrap;opacity:var(--sidebar-label-opacity);pointer-events:none}
:root[data-sidebar] .sidebar .brand strong{display:block;font-size:14px}
:root[data-sidebar] .sidebar .brand small{display:block;font-size:10px;letter-spacing:.1em;color:var(--muted);margin-top:3px}
:root[data-sidebar] .sidebar-toggle{position:absolute;top:46px;left:var(--sidebar-toggle-x,0px);display:grid;place-items:center;width:36px;height:36px;margin:0;padding:0;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--muted);font-size:22px;line-height:1;transition:color .16s,background-color .16s}
.sidebar-toggle span{transform:rotate(calc((1 - var(--sidebar-progress))*180deg))}
.sidebar-toggle:hover{color:var(--text);background:var(--nav-hover)}
.sidebar-toggle:focus-visible,.sidebar nav button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
:root[data-sidebar] .sidebar nav{position:relative;display:grid;gap:6px;isolation:isolate;padding:3px 0}
:root[data-sidebar] .sidebar nav button{position:relative;z-index:1;height:48px;min-height:48px;display:flex;align-items:center;padding:0;border:0;border-radius:14px;background:transparent;color:var(--nav-text);font-size:14px;text-align:left;overflow:hidden;transform:none;transition:color .16s,background-color .16s;touch-action:manipulation}
:root[data-sidebar] .sidebar nav button:hover{background:color-mix(in srgb,var(--nav-hover) 70%,transparent);color:var(--text);transform:none}
:root[data-sidebar] .sidebar nav button.active{color:var(--accent);background:transparent;border:0}
:root[data-sidebar] .sidebar nav .navicon{position:absolute;left:calc(var(--sidebar-rail)/2 - 23px);top:13px;width:22px;height:22px;display:grid;place-items:center;line-height:1;transform:none;transition:none}
.navicon svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
:root[data-sidebar] .sidebar nav .navtext{position:absolute;left:48px;display:block;white-space:nowrap;opacity:var(--sidebar-label-opacity);pointer-events:none;transform:none;transition:none}
:root[data-sidebar] .fluid-nav-indicator{display:none!important}
:root[data-sidebar] .sidebar-active-ring{display:block;position:absolute;top:0;left:0;z-index:0;width:42px;height:42px;border:1.5px solid color-mix(in srgb,var(--accent) 78%,transparent);border-radius:21px;background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 19%,transparent),inset 0 0 9px color-mix(in srgb,var(--accent) 7%,transparent);pointer-events:none;transition:border-color .16s,background-color .16s,box-shadow .16s}
.sidebar nav:has(button.active:hover) .sidebar-active-ring{box-shadow:0 0 14px color-mix(in srgb,var(--accent) 24%,transparent),inset 0 0 9px color-mix(in srgb,var(--accent) 9%,transparent)}
/* Reserved integration surface; existing profile controls stay in the top bar. */
:root[data-sidebar] .sidebar-bottom{position:relative;flex:none;height:64px;display:flex;align-items:flex-start;margin-top:auto;padding:18px 0 0;border-top:1px solid var(--line)}
:root[data-sidebar] .sidebar-bottom .status-dot{position:absolute;left:calc(var(--sidebar-rail)/2 - 15.5px)}
:root[data-sidebar] .sidebar-bottom span{position:absolute;left:32px;display:block;white-space:nowrap;font-size:12px;opacity:var(--sidebar-label-opacity)}
.sidebar-tooltip{position:fixed;z-index:110;max-width:calc(100vw - 16px);padding:9px 13px;border:1px solid var(--line);border-radius:10px;background:var(--card2);color:var(--text);box-shadow:0 6px 20px #0003;font-size:13px;line-height:1.4;pointer-events:none}
.sidebar-tooltip[hidden],.sidebar-backdrop[hidden]{display:none!important}
@media(max-width:840px){
 :root{--sidebar-rail:64px;--sidebar-wide:min(264px,calc(100vw - 64px))}
 .shell{padding-left:var(--sidebar-rail)}
 :root[data-sidebar] .sidebar{position:fixed;inset:0 auto 0 0;z-index:51;height:100dvh;margin:0;border-radius:0 18px 18px 0}
 :root[data-sidebar="expanded"] .sidebar-backdrop{position:fixed;inset:0;z-index:50;width:100vw;height:100dvh;border:0;background:#0009;cursor:default}
}
@media(max-width:600px){:root{--sidebar-rail:56px}}
@media(prefers-reduced-motion:reduce){:root[data-sidebar] .sidebar :is(button,.sidebar-active-ring){transition:none!important}}
@media print{.sidebar-backdrop,.sidebar-tooltip{display:none!important}.shell{padding-left:0}}
