diff --git a/src/server/request-handler.ts b/src/server/request-handler.ts
index 91f88d4..3f96c56 100644
--- a/src/server/request-handler.ts
+++ b/src/server/request-handler.ts
@@ -156,12 +156,14 @@ function htmlPage(): string {
html,
body {
margin: 0;
- height: 100%;
+ min-height: 100%;
}
body {
display: grid;
- grid-template-rows: auto 1fr;
+ grid-template-rows: auto minmax(0, 1fr);
+ height: 100dvh;
+ overflow: hidden;
font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: var(--text);
background:
@@ -208,7 +210,7 @@ function htmlPage(): string {
.layout {
min-height: 0;
display: grid;
- grid-template-columns: 360px 1fr;
+ grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
gap: 14px;
padding: 0 14px 14px;
}
@@ -225,18 +227,28 @@ function htmlPage(): string {
aside {
min-height: 0;
+ min-width: 0;
padding: 16px;
display: grid;
+ grid-template-rows: auto minmax(0, 1fr);
gap: 14px;
+ overflow: auto;
}
.card {
+ min-width: 0;
padding: 15px;
border-radius: var(--radius-lg);
border: 1px solid var(--card-border);
background: var(--surface);
}
+ .photo-card {
+ min-height: 0;
+ display: grid;
+ grid-template-rows: auto auto minmax(0, 1fr);
+ }
+
.card h2 {
font-size: 1rem;
margin-bottom: 8px;
@@ -329,6 +341,7 @@ function htmlPage(): string {
margin-top: 10px;
font-size: 0.9rem;
color: var(--muted);
+ overflow-wrap: anywhere;
}
.status-row {
@@ -336,6 +349,11 @@ function htmlPage(): string {
align-items: center;
gap: 10px;
margin-top: 10px;
+ min-width: 0;
+ }
+
+ .status-row .status {
+ margin-top: 0;
}
.spinner {
@@ -388,12 +406,18 @@ function htmlPage(): string {
gap: 12px;
font-size: 0.82rem;
color: var(--muted);
+ min-width: 0;
+ }
+
+ .progress-meta span {
+ min-width: 0;
+ overflow-wrap: anywhere;
}
.list {
display: grid;
gap: 10px;
- max-height: min(44vh, 380px);
+ min-height: 0;
overflow: auto;
padding-right: 2px;
}
@@ -407,6 +431,7 @@ function htmlPage(): string {
border-radius: var(--radius-md);
background: var(--photo-bg);
border: 1px solid var(--card-border);
+ min-width: 0;
}
.photo img {
@@ -419,11 +444,18 @@ function htmlPage(): string {
.photo strong {
display: block;
font-size: 0.95rem;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.photo span {
color: var(--muted);
font-size: 0.82rem;
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.photo.active {
@@ -443,6 +475,7 @@ function htmlPage(): string {
main {
position: relative;
min-height: 0;
+ min-width: 0;
overflow: hidden;
display: grid;
grid-template-rows: minmax(460px, 1fr) auto;
@@ -757,8 +790,23 @@ function htmlPage(): string {
}
@media (max-width: 920px) {
+ body {
+ height: auto;
+ min-height: 100dvh;
+ overflow: auto;
+ }
+
.layout {
grid-template-columns: 1fr;
+ min-height: 0;
+ }
+
+ aside {
+ overflow: visible;
+ }
+
+ .list {
+ max-height: min(52vh, 420px);
}
main {
@@ -846,7 +894,7 @@ function htmlPage(): string {
Public Nextcloud shares are read via WebDAV.
-