diff --git a/frontend/src/components/AnchoredPopover.tsx b/frontend/src/components/AnchoredPopover.tsx
index f4c173fe..bdce815e 100644
--- a/frontend/src/components/AnchoredPopover.tsx
+++ b/frontend/src/components/AnchoredPopover.tsx
@@ -327,7 +327,7 @@ export function PopoverItem({
tabIndex={focusActive ? 0 : -1}
data-active={visualActive ? "true" : undefined}
disabled={disabled}
- className={`${checked || selected ? HIGHLIGHT_SELECTED : HIGHLIGHT_UNSELECTED}${className ? ` ${className}` : ""}`}
+ className={`outline-hidden ${checked || selected ? HIGHLIGHT_SELECTED : HIGHLIGHT_UNSELECTED}${className ? ` ${className}` : ""}`}
>
{children}
diff --git a/frontend/src/components/NavSidebar.tsx b/frontend/src/components/NavSidebar.tsx
index 15c7d638..1f496586 100644
--- a/frontend/src/components/NavSidebar.tsx
+++ b/frontend/src/components/NavSidebar.tsx
@@ -168,7 +168,8 @@ export default function NavSidebar({
.filter((p) => sys.has(p))
.map((p) => ({ page: p, ...META(p) }));
- const rowBase = "w-full flex items-center gap-3 rounded-lg px-2.5 py-2 text-sm transition";
+ const rowBase =
+ "selectable w-full flex items-center gap-3 rounded-lg px-2.5 py-2 text-sm transition";
const name = me.display_name ?? me.email.split("@")[0];
// Role is surfaced as a plain title tooltip on the account row (no visual badge). Demo isn't a
// real role (it's a flag on a `user` row), so surface it first.
@@ -240,7 +241,7 @@ export default function NavSidebar({
{!slim && (
@@ -289,7 +290,7 @@ export default function NavSidebar({
onClick={onOpenAbout}
title={t("header.account.about")}
aria-label={t("header.account.about")}
- className="p-2 rounded-lg text-muted hover:text-fg hover:bg-card transition"
+ className="p-2 rounded-lg text-muted hover:text-fg hover:bg-card transition outline-hidden focus-visible:outline-2 focus-visible:outline-accent/60"
>
@@ -297,7 +298,7 @@ export default function NavSidebar({
onClick={logout}
title={t("header.account.signOut")}
aria-label={t("header.account.signOut")}
- className="p-2 rounded-lg text-muted hover:text-fg hover:bg-card transition"
+ className="p-2 rounded-lg text-muted hover:text-fg hover:bg-card transition outline-hidden focus-visible:outline-2 focus-visible:outline-accent/60"
>
@@ -322,7 +323,7 @@ export default function NavSidebar({
ref={acctPop.refs.setReference}
{...acctPop.getReferenceProps()}
title={slim ? `${name} ยท ${roleLabel}` : undefined}
- className={`${rowBase} selectable ${slim ? "justify-center px-0" : ""} text-muted hover:text-fg hover:bg-card`}
+ className={`${rowBase} ${slim ? "justify-center px-0" : ""} text-muted hover:text-fg hover:bg-card`}
>