/* Fit the complete navigation to the viewport; never hide entries behind a scrollbar. */
:root[data-interface] body #sidebar[data-sidebar-fit] {
 height:100dvh; max-height:100dvh; padding:12px; gap:8px; overflow:visible;
}
:root[data-interface] #sidebar[data-sidebar-fit] .brand {
 flex:0 0 auto; margin:0 4px; min-height:40px;
}
:root[data-interface] #sidebar[data-sidebar-fit] #collapse {
 margin:0; min-height:32px; flex:0 0 32px; top:16px;
}
:root[data-interface] #sidebar #primary-nav {
 display:flex; flex-direction:column; flex:1 1 0; min-height:0;
 gap:2px; overflow:visible;
}
:root[data-interface] #sidebar #primary-nav button {
 flex:1 1 44px; min-height:26px; max-height:44px; height:auto;
 min-width:0; width:100%; padding:0 10px; font-size:13px; line-height:1.25;
}
:root[data-interface] #sidebar #primary-nav button>span {
 min-width:0; overflow:hidden; text-overflow:ellipsis;
}
:root[data-interface] #sidebar #primary-nav button::after { display:none; }
:root[data-interface] #sidebar #primary-nav .nav-group-label {
 flex:0 0 18px; height:18px; padding:0 10px; line-height:18px;
 font-size:11px; letter-spacing:.03em;
}
:root[data-interface] #sidebar[data-sidebar-fit]>small {
 flex:0 0 auto; margin-top:0; font-size:11px; line-height:16px;
}
@media(min-width:601px) {
 :root[data-interface] body.sidebar-collapsed #sidebar[data-sidebar-fit] .brand { margin:0; }
 :root[data-interface] body.sidebar-collapsed #sidebar #primary-nav button { padding:0; }
 :root[data-interface] body.sidebar-collapsed #sidebar #primary-nav .nav-group-label { display:none; }
}
@media(min-width:601px) and (max-width:850px) {
 :root[data-interface] #sidebar #primary-nav .nav-group-label { display:none; }
 :root[data-interface] #sidebar #primary-nav button { padding:0; }
}
@media(max-height:800px) {
 :root[data-interface] #sidebar[data-sidebar-fit]>small { display:none; }
}
@media(min-width:601px) and (max-height:580px) {
 :root[data-interface] #sidebar #primary-nav {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:26px; gap:2px; align-content:start;
 }
 :root[data-interface] #sidebar #primary-nav button { height:26px; padding:0 4px; gap:4px; }
 :root[data-interface] #sidebar #primary-nav .nav-group-label { display:none; }
 :root[data-interface] body.sidebar-collapsed #sidebar #primary-nav button { padding:0; }
}
@media(min-width:601px) and (max-width:850px) and (max-height:580px) {
 :root[data-interface] #sidebar #primary-nav button { padding:0; }
}
@media(max-width:600px) {
 :root[data-interface] body #sidebar[data-sidebar-fit] { z-index:900; }
 :root[data-interface] body #mobile-nav-backdrop { z-index:890; }
 :root[data-interface] body.mobile-nav-open main>header:has(#global-search) { z-index:120; }
 :root[data-interface] #sidebar[data-sidebar-fit]>small,
 :root[data-interface] #sidebar #primary-nav .nav-group-label { display:none; }
 :root[data-interface] #sidebar #primary-nav button { min-height:44px; flex-basis:44px; }
}
/* Short phone viewports keep every touch target available in a compact grid. */
@media(max-width:600px) and (max-height:820px) {
 :root[data-interface] #sidebar #primary-nav {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:44px; gap:4px; align-content:start;
 }
 :root[data-interface] #sidebar #primary-nav button { height:44px; padding:0 5px; font-size:12px; }
 :root[data-interface] #sidebar #primary-nav button i { display:none; }
}
@media(max-width:600px) and (max-height:480px) {
 :root[data-interface] #sidebar #primary-nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
#sidebar-tooltip {
 position:fixed; z-index:1300; max-width:min(260px,calc(100vw - 16px));
 padding:8px 10px; border:1px solid var(--line); border-radius:6px;
 background:var(--surface); color:var(--text); box-shadow:var(--shadow-menu);
 font:500 13px/1.35 var(--font-ui); overflow-wrap:anywhere; pointer-events:none;
}
#sidebar-tooltip[hidden] { display:none; }
