diff --git a/modules/rtime/components/folk-timebank-app.ts b/modules/rtime/components/folk-timebank-app.ts index 0bd0311e..fda9aafd 100644 --- a/modules/rtime/components/folk-timebank-app.ts +++ b/modules/rtime/components/folk-timebank-app.ts @@ -4407,6 +4407,14 @@ const CSS_TEXT = ` .exec-step-checklist input[type="checkbox"] { accent-color: #8b5cf6; } @media (max-width: 768px) { + .tab-bar { gap: 0; } + .tab { padding: 0.45rem 1rem; font-size: 0.82rem; } + .stats-bar { padding: 0.35rem 0.75rem; gap: 0.75rem; } + .stat { font-size: 0.75rem; } + .stat-value { font-size: 0.85rem; } + .skill-bar { min-width: 80px; max-width: 160px; } + .skill-legend { gap: 0.5rem; } + .skill-legend-item { font-size: 0.68rem; } #canvas-view { flex-direction: column; } .pool-panel { width: 100% !important; min-width: unset; @@ -4426,6 +4434,9 @@ const CSS_TEXT = ` .task-edit-panel { width: 95vw; } } @media (max-width: 640px) { + .tab { padding: 0.4rem 0.75rem; font-size: 0.78rem; } + .stats-bar { padding: 0.3rem 0.5rem; gap: 0.5rem; } + .skill-legend { display: none; } .pool-panel.collapsed { width: 100% !important; } } `; diff --git a/server/shell.ts b/server/shell.ts index a9cc79fe..f8e9e77c 100644 --- a/server/shell.ts +++ b/server/shell.ts @@ -2323,6 +2323,9 @@ function renderModuleSubNav(moduleId: string, spaceSlug: string, modules: Module } } + // Skip subnav when there are no navigable items (module uses internal tabs) + if (items.length === 0 && !mod.externalApp) return ''; + const base = (isSubdomain ?? IS_PRODUCTION) ? `/${escapeAttr(moduleId)}` : `/${escapeAttr(spaceSlug)}/${escapeAttr(moduleId)}`; const minimizeBtn = ``;