diff --git a/apps/pwa/src/styles/index.css b/apps/pwa/src/styles/index.css
index 780b9b3..53b716c 100644
--- a/apps/pwa/src/styles/index.css
+++ b/apps/pwa/src/styles/index.css
@@ -22,9 +22,14 @@
* .sx__calendar – inner flex-column container (flex:1; height:100%)
* .sx__view-container – scrollable time-grid body (flex:1; overflow-y:auto)
*
- * The React adapter wraps everything in a single
with no class; we
- * target it via the .sx__calendar-wrapper descendant relationship.
+ * The React adapter (@schedule-x/react) wraps the calendar in a div with class
+ * `.sx-react-calendar-wrapper`. That element had no height, so .sx__calendar-wrapper's
+ * height:100% resolved against an auto-height parent and collapsed — killing the
+ * time-grid's internal scroll. Give the adapter wrapper height:100% too so the full
+ * chain (container → .sx-react-calendar-wrapper → .sx__calendar-wrapper → .sx__calendar
+ * → .sx__view-container[overflow-y:auto]) has a resolvable height end-to-end.
*/
+.sx-react-calendar-wrapper,
.sx__calendar-wrapper {
height: 100%;
}