Index: src/views/pages/admin-stats.ejs
===================================================================
--- src/views/pages/admin-stats.ejs	(revision 8d32dcf6552ef4dcd02cb0465748921a55ac674b)
+++ src/views/pages/admin-stats.ejs	(revision 9b3e12c9a50437ea743c7b6c17d17a1e472da929)
@@ -35,5 +35,6 @@
     </div>
     <div class="stats-chart">
-      <% s.series.forEach(function(d){
+      <% var _step = s.days <= 14 ? 1 : (s.days <= 31 ? 4 : 10);
+         s.series.forEach(function(d, i){
            var pvPct = Math.round(d.pageviews / _max * 100);
            var visPct = Math.round(d.visitors / _max * 100);
@@ -44,5 +45,5 @@
             <span class="sc-vis" style="height: <%= visPct %>%"></span>
           </div>
-          <span class="sc-day"><%= d.day.slice(8) %></span>
+          <span class="sc-day"><%= (i % _step === 0) ? d.day.slice(8) : '' %></span>
         </div>
       <% }); %>
@@ -116,7 +117,8 @@
 .lg-vis::before { background: var(--accent); }
 .lg-pv::before { background: color-mix(in srgb, var(--accent) 28%, transparent); }
-.stats-chart { display: flex; align-items: flex-end; gap: 3px; height: 160px; margin-top: 1rem; }
-.sc-col { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end; }
-.sc-bar { position: relative; width: 70%; max-width: 26px; height: 140px; display: flex; align-items: flex-end; }
+.stats-chart { display: flex; align-items: flex-end; gap: 2px; height: 160px; margin-top: 1rem; overflow: hidden; }
+.sc-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end; }
+.sc-bar { position: relative; width: 70%; max-width: 26px; min-width: 2px; height: 140px; display: flex; align-items: flex-end; }
+.sc-day { white-space: nowrap; }
 .sc-pv, .sc-vis { position: absolute; bottom: 0; left: 0; width: 100%; border-radius: 3px 3px 0 0; min-height: 2px; }
 .sc-pv { background: color-mix(in srgb, var(--accent) 28%, transparent); }
