← Back to task

Commit 35b07978

commit 35b0797843baf4a1d2e13967b210df9ef629141e
Author: Ben Sima <ben@bensima.com>
Date:   Thu Nov 27 10:28:51 2025

    Denser layout - Gerrit-style CSS overhaul
    
    Build passes. The CSS has been updated with the denser, Gerrit-style
    lay
    
    - **Border-radius**: Reduced from 8px to 2px - **Padding**:
    Reduced from 16px to 8px/10px - **Gaps**: Reduced from 8-12px to
    2-6px - **Shadows**: Replaced with subtle 1px borders (`#d0d0d0`)
    - **Line-height**: Tightened from 1.5em to 1.3em - **Font sizes**:
    Reduced across the board (body 16→14px, headers smalle - **Button
    heights**: Reduced from 44px to 32px - **List row heights**: Made
    denser with smaller padding and gaps
    
    Task-Id: t-149.7

diff --git a/Omni/Jr/Web/Style.hs b/Omni/Jr/Web/Style.hs
index f91fb02e..140d4bb7 100644
--- a/Omni/Jr/Web/Style.hs
+++ b/Omni/Jr/Web/Style.hs
@@ -14,7 +14,6 @@ import Clay
 import qualified Clay.Flexbox as Flexbox
 import qualified Clay.Media as Media
 import qualified Clay.Stylesheet as Stylesheet
-import qualified Data.List.NonEmpty as NE
 import qualified Data.Text.Lazy as LazyText
 
 css :: LazyText.Text
@@ -51,25 +50,25 @@ baseStyles = do
         "sans-serif"
       ]
       [sansSerif]
-    fontSize (px 16)
-    lineHeight (em 1.5)
+    fontSize (px 14)
+    lineHeight (em 1.3)
     color "#1f2937"
-    backgroundColor "#f3f4f6"
+    backgroundColor "#f5f5f5"
     minHeight (vh 100)
   "h1" ? do
-    fontSize (px 24)
+    fontSize (px 20)
     fontWeight bold
-    margin (px 0) (px 0) (em 0.5) (px 0)
+    margin (px 0) (px 0) (em 0.3) (px 0)
   "h2" ? do
-    fontSize (px 18)
+    fontSize (px 16)
     fontWeight (weight 600)
     color "#374151"
-    margin (em 1.5) (px 0) (em 0.75) (px 0)
+    margin (em 1) (px 0) (em 0.5) (px 0)
   "h3" ? do
-    fontSize (px 16)
+    fontSize (px 14)
     fontWeight (weight 600)
     color "#374151"
-    margin (em 1) (px 0) (em 0.5) (px 0)
+    margin (em 0.75) (px 0) (em 0.25) (px 0)
   a ? do
     color "#0066cc"
     textDecoration none
@@ -78,15 +77,15 @@ baseStyles = do
     fontFamily ["SF Mono", "Monaco", "Consolas", "monospace"] [monospace]
     fontSize (em 0.9)
     backgroundColor "#f3f4f6"
-    padding (px 2) (px 6) (px 2) (px 6)
-    borderRadius (px 4) (px 4) (px 4) (px 4)
+    padding (px 1) (px 4) (px 1) (px 4)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
   pre ? do
     fontFamily ["SF Mono", "Monaco", "Consolas", "monospace"] [monospace]
-    fontSize (px 13)
+    fontSize (px 12)
     backgroundColor "#1e1e1e"
     color "#d4d4d4"
-    padding (px 16) (px 16) (px 16) (px 16)
-    borderRadius (px 6) (px 6) (px 6) (px 6)
+    padding (px 8) (px 8) (px 8) (px 8)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
     overflow auto
     whiteSpace preWrap
     maxHeight (px 500)
@@ -95,46 +94,47 @@ layoutStyles :: Css
 layoutStyles = do
   ".container" ? do
     width (pct 100)
-    maxWidth (px 900)
+    maxWidth (px 960)
     margin (px 0) auto (px 0) auto
-    padding (px 16) (px 16) (px 16) (px 16)
+    padding (px 8) (px 12) (px 8) (px 12)
   main_ ? do
     Stylesheet.key "flex" ("1 0 auto" :: Text)
   ".page-content" ? do
     padding (px 0) (px 0) (px 0) (px 0)
   ".stats-grid" ? do
     display grid
-    Stylesheet.key "grid-template-columns" ("repeat(auto-fit, minmax(100px, 1fr))" :: Text)
-    Stylesheet.key "gap" ("12px" :: Text)
+    Stylesheet.key "grid-template-columns" ("repeat(auto-fit, minmax(80px, 1fr))" :: Text)
+    Stylesheet.key "gap" ("6px" :: Text)
   ".task-list" ? do
     display flex
     flexDirection column
-    Stylesheet.key "gap" ("8px" :: Text)
+    Stylesheet.key "gap" ("2px" :: Text)
   ".detail-row" ? do
     display flex
     flexWrap Flexbox.wrap
-    padding (px 10) (px 0) (px 10) (px 0)
+    padding (px 6) (px 0) (px 6) (px 0)
     borderBottom (px 1) solid "#e5e7eb"
   ".detail-row" # lastChild ? borderBottom (px 0) none transparent
   ".detail-label" ? do
     fontWeight (weight 600)
-    width (px 120)
+    width (px 100)
     color "#6b7280"
-    minWidth (px 100)
+    minWidth (px 80)
+    fontSize (px 13)
   ".detail-value" ? do
     Stylesheet.key "flex" ("1" :: Text)
     minWidth (px 0)
   ".detail-section" ? do
-    marginTop (em 1)
-    paddingTop (em 1)
+    marginTop (em 0.75)
+    paddingTop (em 0.75)
     borderTop (px 1) solid "#e5e7eb"
   ".dep-list" <> ".child-list" ? do
-    margin (px 8) (px 0) (px 8) (px 0)
-    paddingLeft (px 24)
-  (".dep-list" ** li) <> (".child-list" ** li) ? margin (px 6) (px 0) (px 6) (px 0)
+    margin (px 4) (px 0) (px 4) (px 0)
+    paddingLeft (px 16)
+  (".dep-list" ** li) <> (".child-list" ** li) ? margin (px 2) (px 0) (px 2) (px 0)
   ".dep-type" <> ".child-status" ? do
     color "#6b7280"
-    fontSize (px 13)
+    fontSize (px 12)
   ".child-title" ? color "#374151"
   ".priority-desc" ? do
     color "#6b7280"
@@ -144,31 +144,31 @@ navigationStyles :: Css
 navigationStyles = do
   ".navbar" ? do
     backgroundColor white
-    padding (px 12) (px 20) (px 12) (px 20)
-    boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.08) (shadow (px 0) (px 2))))
-    marginBottom (px 16)
+    padding (px 6) (px 12) (px 6) (px 12)
+    borderBottom (px 1) solid "#d0d0d0"
+    marginBottom (px 8)
     display flex
     alignItems center
     justifyContent spaceBetween
     flexWrap Flexbox.wrap
-    Stylesheet.key "gap" ("12px" :: Text)
+    Stylesheet.key "gap" ("8px" :: Text)
   ".navbar-brand" ? do
-    fontSize (px 22)
+    fontSize (px 18)
     fontWeight bold
     color "#0066cc"
     textDecoration none
   ".navbar-brand" # hover ? textDecoration none
   ".navbar-links" ? do
     display flex
-    Stylesheet.key "gap" ("4px" :: Text)
+    Stylesheet.key "gap" ("2px" :: Text)
     flexWrap Flexbox.wrap
   ".navbar-link" ? do
     display inlineBlock
-    padding (px 8) (px 14) (px 8) (px 14)
+    padding (px 4) (px 10) (px 4) (px 10)
     color "#374151"
     textDecoration none
-    borderRadius (px 6) (px 6) (px 6) (px 6)
-    fontSize (px 14)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    fontSize (px 13)
     fontWeight (weight 500)
     transition "background-color" (ms 150) ease (sec 0)
   ".navbar-link" # hover ? do
@@ -176,32 +176,32 @@ navigationStyles = do
     textDecoration none
   header ? do
     backgroundColor white
-    padding (px 12) (px 16) (px 12) (px 16)
-    boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.08) (shadow (px 0) (px 2))))
-    marginBottom (px 16)
+    padding (px 6) (px 12) (px 6) (px 12)
+    borderBottom (px 1) solid "#d0d0d0"
+    marginBottom (px 8)
   ".nav-content" ? do
-    maxWidth (px 900)
+    maxWidth (px 960)
     margin (px 0) auto (px 0) auto
     display flex
     alignItems center
     justifyContent spaceBetween
     flexWrap Flexbox.wrap
-    Stylesheet.key "gap" ("12px" :: Text)
+    Stylesheet.key "gap" ("8px" :: Text)
   ".nav-brand" ? do
-    fontSize (px 20)
+    fontSize (px 16)
     fontWeight bold
     color "#1f2937"
     textDecoration none
   ".nav-brand" # hover ? textDecoration none
   ".nav-links" ? do
     display flex
-    Stylesheet.key "gap" ("8px" :: Text)
+    Stylesheet.key "gap" ("4px" :: Text)
     flexWrap Flexbox.wrap
   ".actions" ? do
     display flex
     flexWrap Flexbox.wrap
-    Stylesheet.key "gap" ("8px" :: Text)
-    marginBottom (px 16)
+    Stylesheet.key "gap" ("6px" :: Text)
+    marginBottom (px 8)
 
 cardStyles :: Css
 cardStyles = do
@@ -216,17 +216,17 @@ cardStyles = do
     <> ".review-actions"
     ? do
       backgroundColor white
-      borderRadius (px 8) (px 8) (px 8) (px 8)
-      padding (px 16) (px 16) (px 16) (px 16)
-      boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.1) (shadow (px 0) (px 1))))
+      borderRadius (px 2) (px 2) (px 2) (px 2)
+      padding (px 8) (px 10) (px 8) (px 10)
+      border (px 1) solid "#d0d0d0"
   ".stat-card" ? textAlign center
   ".stat-count" ? do
-    fontSize (px 28)
+    fontSize (px 22)
     fontWeight bold
   ".stat-label" ? do
-    fontSize (px 12)
+    fontSize (px 11)
     color "#6b7280"
-    marginTop (px 4)
+    marginTop (px 2)
   ".stat-card.badge-open" ? do
     borderLeft (px 4) solid "#f59e0b"
   (".stat-card.badge-open" |> ".stat-count") ? color "#92400e"
@@ -239,9 +239,9 @@ cardStyles = do
   ".stat-card.badge-done" ? borderLeft (px 4) solid "#10b981"
   (".stat-card.badge-done" |> ".stat-count") ? color "#065f46"
   ".task-card" ? do
-    transition "box-shadow" (ms 150) ease (sec 0)
+    transition "border-color" (ms 150) ease (sec 0)
   ".task-card" # hover ? do
-    boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.15) (shadow (px 0) (px 4))))
+    borderColor "#999"
   ".task-card-link" ? do
     display block
     textDecoration none
@@ -252,100 +252,103 @@ cardStyles = do
     display flex
     flexWrap Flexbox.wrap
     alignItems center
-    Stylesheet.key "gap" ("8px" :: Text)
-    marginBottom (px 8)
+    Stylesheet.key "gap" ("6px" :: Text)
+    marginBottom (px 4)
   ".task-id" ? do
     fontFamily ["SF Mono", "Monaco", "monospace"] [monospace]
     color "#0066cc"
     textDecoration none
-    fontSize (px 14)
-    padding (px 4) (px 0) (px 4) (px 0)
+    fontSize (px 12)
+    padding (px 2) (px 0) (px 2) (px 0)
   ".task-id" # hover ? textDecoration underline
   ".priority" ? do
-    fontSize (px 12)
+    fontSize (px 11)
     color "#6b7280"
   ".task-title" ? do
-    fontSize (px 16)
+    fontSize (px 14)
     margin (px 0) (px 0) (px 0) (px 0)
   ".empty-msg" ? do
     color "#6b7280"
     fontStyle italic
   ".ready-link" ? do
-    fontSize (px 14)
+    fontSize (px 13)
     color "#0066cc"
   ".count-badge" ? do
     backgroundColor "#0066cc"
     color white
-    padding (px 4) (px 10) (px 4) (px 10)
-    borderRadius (px 12) (px 12) (px 12) (px 12)
-    fontSize (px 14)
+    padding (px 2) (px 8) (px 2) (px 8)
+    borderRadius (px 10) (px 10) (px 10) (px 10)
+    fontSize (px 12)
     verticalAlign middle
   ".description" ? do
     backgroundColor "#f9fafb"
-    padding (px 12) (px 12) (px 12) (px 12)
-    borderRadius (px 4) (px 4) (px 4) (px 4)
+    padding (px 8) (px 8) (px 8) (px 8)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
     margin (px 0) (px 0) (px 0) (px 0)
     color "#374151"
+    fontSize (px 13)
   ".diff-block" ? do
     maxHeight (px 600)
     overflowY auto
   ".progress-bar" ? do
-    height (px 8)
+    height (px 6)
     backgroundColor "#e5e7eb"
-    borderRadius (px 4) (px 4) (px 4) (px 4)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
     overflow hidden
-    marginTop (px 8)
+    marginTop (px 6)
   ".progress-fill" ? do
     height (pct 100)
     backgroundColor "#0066cc"
-    borderRadius (px 4) (px 4) (px 4) (px 4)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
     transition "width" (ms 300) ease (sec 0)
   ".stats-section" ? do
     backgroundColor white
-    borderRadius (px 8) (px 8) (px 8) (px 8)
-    padding (px 16) (px 16) (px 16) (px 16)
-    boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.1) (shadow (px 0) (px 1))))
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    padding (px 8) (px 10) (px 8) (px 10)
+    border (px 1) solid "#d0d0d0"
   ".stats-row" ? do
     display flex
     alignItems center
-    Stylesheet.key "gap" ("12px" :: Text)
-    padding (px 8) (px 0) (px 8) (px 0)
+    Stylesheet.key "gap" ("8px" :: Text)
+    padding (px 4) (px 0) (px 4) (px 0)
     borderBottom (px 1) solid "#e5e7eb"
   ".stats-row" # lastChild ? borderBottom (px 0) none transparent
   ".stats-label" ? do
-    minWidth (px 100)
+    minWidth (px 80)
     fontWeight (weight 500)
+    fontSize (px 13)
   ".stats-bar-container" ? do
     Stylesheet.key "flex" ("1" :: Text)
   ".stats-count" ? do
-    minWidth (px 40)
+    minWidth (px 32)
     textAlign (alignSide sideRight)
     fontWeight (weight 500)
+    fontSize (px 13)
   ".summary-section" ? do
     backgroundColor white
-    borderRadius (px 8) (px 8) (px 8) (px 8)
-    padding (px 16) (px 16) (px 16) (px 16)
-    boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.1) (shadow (px 0) (px 1))))
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    padding (px 8) (px 10) (px 8) (px 10)
+    border (px 1) solid "#d0d0d0"
   ".no-commit-msg" ? do
     backgroundColor "#fff3cd"
     border (px 1) solid "#ffc107"
-    borderRadius (px 8) (px 8) (px 8) (px 8)
-    padding (px 16) (px 16) (px 16) (px 16)
-    margin (px 16) (px 0) (px 16) (px 0)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    padding (px 8) (px 10) (px 8) (px 10)
+    margin (px 8) (px 0) (px 8) (px 0)
   ".conflict-warning" ? do
     backgroundColor "#fee2e2"
     border (px 1) solid "#ef4444"
-    borderRadius (px 8) (px 8) (px 8) (px 8)
-    padding (px 16) (px 16) (px 16) (px 16)
-    margin (px 16) (px 0) (px 16) (px 0)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    padding (px 8) (px 10) (px 8) (px 10)
+    margin (px 8) (px 0) (px 8) (px 0)
 
 statusBadges :: Css
 statusBadges = do
   ".badge" ? do
     display inlineBlock
-    padding (px 4) (px 10) (px 4) (px 10)
-    borderRadius (px 20) (px 20) (px 20) (px 20)
-    fontSize (px 12)
+    padding (px 2) (px 6) (px 2) (px 6)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    fontSize (px 11)
     fontWeight (weight 500)
     whiteSpace nowrap
   ".badge-open" ? do
@@ -375,11 +378,11 @@ buttonStyles = do
     <> ".review-link-btn"
     ? do
       display inlineBlock
-      minHeight (px 44)
-      padding (px 10) (px 20) (px 10) (px 20)
-      borderRadius (px 6) (px 6) (px 6) (px 6)
+      minHeight (px 32)
+      padding (px 6) (px 12) (px 6) (px 12)
+      borderRadius (px 2) (px 2) (px 2) (px 2)
       border (px 0) none transparent
-      fontSize (px 14)
+      fontSize (px 13)
       fontWeight (weight 500)
       textDecoration none
       cursor pointer
@@ -415,77 +418,77 @@ buttonStyles = do
   ".reject-btn" # hover ? backgroundColor "#dc2626"
   ".clear-btn" ? do
     display inlineBlock
-    minHeight (px 44)
-    padding (px 10) (px 16) (px 10) (px 16)
+    minHeight (px 32)
+    padding (px 6) (px 10) (px 6) (px 10)
     backgroundColor "#6b7280"
     color white
-    borderRadius (px 6) (px 6) (px 6) (px 6)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
     textDecoration none
-    fontSize (px 14)
+    fontSize (px 13)
     cursor pointer
   ".clear-btn" # hover ? backgroundColor "#4b5563"
   ".review-link-btn" ? do
     backgroundColor "#8b5cf6"
     color white
   ".review-link-btn" # hover ? backgroundColor "#7c3aed"
-  ".review-link-section" ? margin (px 16) (px 0) (px 16) (px 0)
+  ".review-link-section" ? margin (px 8) (px 0) (px 8) (px 0)
 
 formStyles :: Css
 formStyles = do
   ".filter-row" ? do
     display flex
     flexWrap Flexbox.wrap
-    Stylesheet.key "gap" ("12px" :: Text)
+    Stylesheet.key "gap" ("8px" :: Text)
     alignItems flexEnd
   ".filter-group" ? do
     display flex
     flexDirection column
-    Stylesheet.key "gap" ("4px" :: Text)
+    Stylesheet.key "gap" ("2px" :: Text)
   (".filter-group" |> label) ? do
-    fontSize (px 12)
+    fontSize (px 11)
     color "#6b7280"
     fontWeight (weight 500)
   ".filter-select" <> ".filter-input" <> ".status-select" ? do
-    minHeight (px 44)
-    padding (px 10) (px 14) (px 10) (px 14)
+    minHeight (px 32)
+    padding (px 6) (px 10) (px 6) (px 10)
     border (px 1) solid "#d1d5db"
-    borderRadius (px 6) (px 6) (px 6) (px 6)
-    fontSize (px 14)
-    minWidth (px 120)
-  ".filter-input" ? minWidth (px 150)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    fontSize (px 13)
+    minWidth (px 100)
+  ".filter-input" ? minWidth (px 120)
   ".inline-form" ? display inlineBlock
   ".reject-form" ? do
     display flex
-    Stylesheet.key "gap" ("8px" :: Text)
+    Stylesheet.key "gap" ("6px" :: Text)
     Stylesheet.key "flex" ("1" :: Text)
-    minWidth (px 250)
+    minWidth (px 200)
     flexWrap Flexbox.wrap
   ".reject-notes" ? do
     Stylesheet.key "flex" ("1" :: Text)
-    minWidth (px 200)
-    minHeight (px 44)
-    padding (px 10) (px 14) (px 10) (px 14)
+    minWidth (px 160)
+    minHeight (px 32)
+    padding (px 6) (px 10) (px 6) (px 10)
     border (px 1) solid "#d1d5db"
-    borderRadius (px 6) (px 6) (px 6) (px 6)
-    fontSize (px 14)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    fontSize (px 13)
     Stylesheet.key "resize" ("vertical" :: Text)
 
 activityTimelineStyles :: Css
 activityTimelineStyles = do
   ".activity-section" ? do
-    marginTop (em 1.5)
+    marginTop (em 1)
     backgroundColor white
-    borderRadius (px 8) (px 8) (px 8) (px 8)
-    padding (px 16) (px 16) (px 16) (px 16)
-    boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.1) (shadow (px 0) (px 1))))
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    padding (px 8) (px 10) (px 8) (px 10)
+    border (px 1) solid "#d0d0d0"
   ".activity-timeline" ? do
     position relative
-    paddingLeft (px 24)
-    marginTop (px 12)
+    paddingLeft (px 20)
+    marginTop (px 8)
   ".activity-timeline" # before ? do
     Stylesheet.key "content" ("''" :: Text)
     position absolute
-    left (px 8)
+    left (px 6)
     top (px 0)
     bottom (px 0)
     width (px 2)
@@ -493,20 +496,20 @@ activityTimelineStyles = do
   ".activity-item" ? do
     position relative
     display flex
-    Stylesheet.key "gap" ("12px" :: Text)
-    paddingBottom (px 16)
+    Stylesheet.key "gap" ("8px" :: Text)
+    paddingBottom (px 10)
     marginBottom (px 0)
   ".activity-item" # lastChild ? paddingBottom (px 0)
   ".activity-icon" ? do
     position absolute
-    left (px (-20))
-    width (px 18)
-    height (px 18)
+    left (px (-16))
+    width (px 14)
+    height (px 14)
     borderRadius (pct 50) (pct 50) (pct 50) (pct 50)
     display flex
     alignItems center
     justifyContent center
-    fontSize (px 10)
+    fontSize (px 8)
     fontWeight bold
     backgroundColor white
     border (px 2) solid "#e5e7eb"
@@ -515,31 +518,31 @@ activityTimelineStyles = do
   ".activity-header" ? do
     display flex
     alignItems center
-    Stylesheet.key "gap" ("8px" :: Text)
-    marginBottom (px 4)
+    Stylesheet.key "gap" ("6px" :: Text)
+    marginBottom (px 2)
   ".activity-stage" ? do
     fontWeight (weight 600)
-    fontSize (px 14)
-  ".activity-time" ? do
     fontSize (px 12)
+  ".activity-time" ? do
+    fontSize (px 11)
     color "#6b7280"
   ".activity-message" ? do
-    margin (px 4) (px 0) (px 0) (px 0)
-    fontSize (px 14)
+    margin (px 2) (px 0) (px 0) (px 0)
+    fontSize (px 12)
     color "#374151"
   ".activity-metadata" ? do
-    marginTop (px 8)
+    marginTop (px 4)
   (".activity-metadata" |> "summary") ? do
-    fontSize (px 12)
+    fontSize (px 11)
     color "#6b7280"
     cursor pointer
   ".metadata-json" ? do
-    fontSize (px 11)
+    fontSize (px 10)
     backgroundColor "#f3f4f6"
-    padding (px 8) (px 8) (px 8) (px 8)
-    borderRadius (px 4) (px 4) (px 4) (px 4)
-    marginTop (px 4)
-    maxHeight (px 200)
+    padding (px 4) (px 6) (px 4) (px 6)
+    borderRadius (px 2) (px 2) (px 2) (px 2)
+    marginTop (px 2)
+    maxHeight (px 150)
     overflow auto
   ".stage-claiming" |> ".activity-icon" ? do
     borderColor "#3b82f6"
@@ -563,12 +566,12 @@ activityTimelineStyles = do
 responsiveStyles :: Css
 responsiveStyles = do
   query Media.screen [Media.maxWidth (px 600)] <| do
-    body ? fontSize (px 15)
-    ".container" ? padding (px 12) (px 12) (px 12) (px 12)
+    body ? fontSize (px 13)
+    ".container" ? padding (px 6) (px 8) (px 6) (px 8)
     ".navbar" ? do
       flexDirection column
       alignItems flexStart
-      padding (px 12) (px 12) (px 12) (px 12)
+      padding (px 6) (px 8) (px 6) (px 8)
     ".navbar-links" ? do
       width (pct 100)
       justifyContent center
@@ -579,7 +582,7 @@ responsiveStyles = do
       Stylesheet.key "grid-template-columns" ("repeat(2, 1fr)" :: Text)
     ".detail-row" ? do
       flexDirection column
-      Stylesheet.key "gap" ("4px" :: Text)
+      Stylesheet.key "gap" ("2px" :: Text)
     ".detail-label" ? width auto
     ".filter-row" ? flexDirection column
     ".filter-group" ? width (pct 100)
@@ -610,13 +613,13 @@ darkModeStyles =
       <> ".review-actions"
       ? do
         backgroundColor "#1f2937"
-        boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.3) (shadow (px 0) (px 2))))
+        borderColor "#374151"
     header ? do
       backgroundColor "#1f2937"
-      boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.3) (shadow (px 0) (px 2))))
+      borderColor "#374151"
     ".navbar" ? do
       backgroundColor "#1f2937"
-      boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.3) (shadow (px 0) (px 2))))
+      borderColor "#374151"
     ".navbar-brand" ? color "#60a5fa"
     ".navbar-link" ? color "#d1d5db"
     ".navbar-link" # hover ? backgroundColor "#374151"
@@ -664,13 +667,13 @@ darkModeStyles =
       color "#f3f4f6"
     ".stats-section" <> ".summary-section" ? do
       backgroundColor "#1f2937"
-      boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.3) (shadow (px 0) (px 2))))
+      borderColor "#374151"
     ".stats-row" ? borderBottomColor "#374151"
     ".progress-bar" ? backgroundColor "#374151"
     ".progress-fill" ? backgroundColor "#60a5fa"
     ".activity-section" ? do
       backgroundColor "#1f2937"
-      boxShadow (NE.singleton (bsColor (rgba 0 0 0 0.3) (shadow (px 0) (px 2))))
+      borderColor "#374151"
     ".activity-timeline" # before ? backgroundColor "#374151"
     ".activity-icon" ? do
       backgroundColor "#1f2937"