diff --git a/static/calendar.html b/static/calendar.html
index aa884fa..ced7b23 100644
--- a/static/calendar.html
+++ b/static/calendar.html
@@ -39,7 +39,7 @@
diff --git a/static/compare.html b/static/compare.html
index ce2c6c5..69b3297 100644
--- a/static/compare.html
+++ b/static/compare.html
@@ -40,7 +40,7 @@
diff --git a/static/day.html b/static/day.html
index 1eb7c11..033545d 100644
--- a/static/day.html
+++ b/static/day.html
@@ -40,7 +40,7 @@
diff --git a/static/index.html b/static/index.html
index 7b42da3..4197f33 100644
--- a/static/index.html
+++ b/static/index.html
@@ -43,7 +43,7 @@
diff --git a/static/legend.html b/static/legend.html
index 6e6ebea..f4be506 100644
--- a/static/legend.html
+++ b/static/legend.html
@@ -39,7 +39,7 @@
diff --git a/static/style.css b/static/style.css
index 4473e74..3124272 100644
--- a/static/style.css
+++ b/static/style.css
@@ -1340,10 +1340,9 @@ main { max-width: 1200px; margin: 0 auto; padding: 20px 24px 60px; }
never runs off-screen (this also fixes the SEO/city pages, whose only panel
item is the nav). Contents stack nav → °F/°C → account top-to-bottom. */
.nav-panel {
- display: flex; flex-direction: column; align-items: stretch; gap: 8px;
+ display: flex; flex-direction: column; align-items: stretch; gap: 6px;
position: absolute; right: 0; top: calc(100% + 8px); z-index: 60;
- margin: 0; padding: 10px; width: max-content; min-width: 224px;
- max-width: calc(100vw - 28px);
+ margin: 0; padding: 8px; width: min(208px, calc(100vw - 32px));
background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
box-shadow: 0 16px 40px rgba(0, 0, 0, .45);
}
@@ -1351,17 +1350,29 @@ main { max-width: 1200px; margin: 0 auto; padding: 20px 24px 60px; }
/* Reset the desktop cluster order — the dropdown wants plain DOM order. */
.nav-panel > .unit-toggle, .nav-panel > .acct, .nav-panel > .view-nav { order: 0; }
- /* Nav links: a full-width vertical list, hairline-separated from the controls
- below (the :not(:last-child) keeps SEO pages — nav only — divider-free). */
+ /* Nav links: a compact, left-aligned list with an inset hairline between each
+ entry (suppressed around the active pill so nothing crosses it). The whole
+ group is hairline-separated from the controls below — the :not(:last-child)
+ keeps SEO pages, which have nav only, divider-free. */
.view-nav {
- display: flex; flex-direction: column; align-items: stretch; gap: 2px; margin: 0;
+ display: flex; flex-direction: column; align-items: stretch; align-self: stretch;
+ gap: 0; margin: 0; width: auto;
background: transparent; border: 0; border-radius: 0; padding: 0;
}
.nav-panel > .view-nav:not(:last-child) {
- padding-bottom: 8px; margin-bottom: 2px; border-bottom: 1px solid var(--border);
+ padding-bottom: 6px; margin-bottom: 4px; border-bottom: 1px solid var(--border);
}
- .view-nav a { min-height: 44px; padding: 11px 12px; justify-content: flex-start; border-radius: 9px; }
- .view-nav a + a::before { display: none; }
+ .nav-panel .view-nav a {
+ min-height: 40px; padding: 8px 12px; justify-content: flex-start;
+ border-radius: 8px; position: relative;
+ }
+ .nav-panel .view-nav a + a::before { display: none; }
+ .nav-panel .view-nav a:not(:last-child)::after {
+ content: ""; position: absolute; left: 12px; right: 12px; bottom: 0;
+ height: 1px; background: var(--border);
+ }
+ .nav-panel .view-nav a.active::after,
+ .nav-panel .view-nav a:has(+ a.active)::after { display: none; }
/* °F/°C toggle: full-width segmented control inside the dropdown. */
.nav-panel > .unit-toggle { margin: 0; width: 100%; align-self: stretch; }
diff --git a/static/subscriptions.html b/static/subscriptions.html
index 7290323..2ee736c 100644
--- a/static/subscriptions.html
+++ b/static/subscriptions.html
@@ -37,7 +37,7 @@