diff --git a/src/player/player-page.template.html b/src/player/player-page.template.html
index 690b72e..40b7000 100644
--- a/src/player/player-page.template.html
+++ b/src/player/player-page.template.html
@@ -4,7 +4,7 @@
{{TITLE}}
-
+
diff --git a/src/player/public/favicon.png b/src/player/public/favicon.png
new file mode 100644
index 0000000..39d265f
Binary files /dev/null and b/src/player/public/favicon.png differ
diff --git a/src/player/public/favicon.svg b/src/player/public/favicon.svg
deleted file mode 100644
index 5a3da75..0000000
--- a/src/player/public/favicon.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
\ No newline at end of file
diff --git a/src/web/public/css/admin.css b/src/web/public/css/admin.css
index 7f6fa27..8e1321c 100644
--- a/src/web/public/css/admin.css
+++ b/src/web/public/css/admin.css
@@ -431,6 +431,10 @@ html[data-theme='dark'] .theme-toggle__icon--sun {
width: auto;
padding: 0;
justify-content: center;
+ position: fixed;
+ top: 16px;
+ right: 16px;
+ z-index: 90;
}
.theme-toggle--floating .theme-toggle__label {
@@ -442,13 +446,6 @@ html[data-theme='dark'] .theme-toggle__icon--sun {
height: 18px;
}
-.theme-toggle--floating {
- position: fixed;
- top: 16px;
- right: 16px;
- z-index: 90;
-}
-
.auth-shell-body .theme-toggle--floating {
top: auto;
bottom: 16px;
@@ -507,9 +504,6 @@ html[data-theme='dark'] .theme-toggle__icon--sun {
font-size: 13px;
font-weight: 700;
text-decoration: none;
-}
-
-.status-pill {
color: #0f5132;
background: rgba(16, 185, 129, 0.14);
}
@@ -903,8 +897,9 @@ html[data-theme='dark'] .theme-toggle__icon--sun {
.stats {
display: grid;
- gap: 16px;
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
+ gap: 12px;
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
+ margin-bottom: 0;
}
.stat {
@@ -912,9 +907,10 @@ html[data-theme='dark'] .theme-toggle__icon--sun {
overflow: hidden;
background: var(--stat-background);
border: 1px solid var(--border);
- border-radius: 20px;
- padding: 18px;
+ border-radius: 12px;
+ padding: 16px;
box-shadow: var(--shadow-sm);
+ margin-bottom: 0;
}
.stat::after {
@@ -963,6 +959,15 @@ html[data-theme='dark'] .theme-toggle__icon--sun {
letter-spacing: 0.08em;
}
+.stat span {
+ position: relative;
+ color: var(--muted);
+ font-size: 13px;
+ font-weight: 700;
+ text-transform: uppercase;
+ letter-spacing: 0.08em;
+}
+
.row {
display: flex;
gap: 12px;
@@ -1281,7 +1286,7 @@ thead th {
}
tbody tr:hover {
- background: var(--table-hover);
+ background: rgba(37, 99, 235, 0.07);
}
tbody tr:last-child td {
@@ -1719,10 +1724,6 @@ tbody tr:nth-child(even) {
background: var(--table-row-even);
}
-tbody tr:hover {
- background: rgba(37, 99, 235, 0.07);
-}
-
table input,
table select,
table textarea,
@@ -1851,28 +1852,6 @@ table td .actions form {
color: var(--muted);
}
-.stats {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
- gap: 12px;
- margin-bottom: 0;
-}
-
-.stat {
- background: var(--stat-background);
- border: 1px solid var(--border);
- border-radius: 12px;
- padding: 16px;
- box-shadow: var(--shadow-sm);
- margin-bottom: 0;
-}
-
-.stat strong {
- display: block;
- font-size: 28px;
- margin-bottom: 4px;
-}
-
.playlist-item-actions {
flex-wrap: nowrap;
align-items: center;
@@ -1900,7 +1879,7 @@ table td .actions form {
.empty {
color: var(--muted);
- padding: 12px 0;
+ padding: 12px 0 12px 24px;
}
.chip {
@@ -1913,7 +1892,6 @@ table td .actions form {
margin-left: 6px;
}
-/* Slide editor pages. */
.slide-editor-top {
display: grid;
grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
@@ -2100,6 +2078,13 @@ table td .actions form {
.slide-schedule-dialog button {
width: auto;
margin: 0;
+.theme-toggle--floating .theme-toggle__label {
+ display: none;
+}
+.theme-toggle--floating .theme-toggle__icon {
+ width: 18px;
+ height: 18px;
+}
}
.slide-schedule-dialog button.secondary {
@@ -2202,39 +2187,6 @@ table td .actions form {
font-weight: 700;
}
-.rich-editor {
- display: grid;
- gap: 8px;
-}
-
-.rich-toolbar {
- display: flex;
- flex-wrap: wrap;
- gap: 6px;
-}
-
-.rich-toolbar button {
- width: auto;
- margin-top: 0;
- padding: 8px 10px;
-}
-
-.rich-surface {
- min-height: 240px;
- padding: 12px;
- border: 1px solid #d1d5db;
- border-radius: 8px;
- background: #fff;
- color: var(--text);
- line-height: 1.4;
- overflow: auto;
-}
-
-.rich-surface:focus {
- outline: 2px solid rgba(37, 99, 235, 0.3);
- border-color: var(--primary);
-}
-
.ckeditor-holder {
min-height: 360px;
background: var(--editor-paper);
@@ -2341,6 +2293,7 @@ html[data-theme='dark'] .ckeditor-holder {
}
.ckeditor-holder .ck-font-size-input input[type='number'] {
+ appearance: textfield;
-moz-appearance: textfield;
}
diff --git a/src/web/public/favicon.png b/src/web/public/favicon.png
new file mode 100644
index 0000000..39d265f
Binary files /dev/null and b/src/web/public/favicon.png differ
diff --git a/src/web/public/favicon.svg b/src/web/public/favicon.svg
deleted file mode 100644
index 5a3da75..0000000
--- a/src/web/public/favicon.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
\ No newline at end of file
diff --git a/src/web/views/frame-layout.hbs b/src/web/views/frame-layout.hbs
index 17bc37f..e9d0704 100644
--- a/src/web/views/frame-layout.hbs
+++ b/src/web/views/frame-layout.hbs
@@ -4,7 +4,7 @@
{{title}} - Signage
-
+
{{#if stylesheets.length}}
diff --git a/src/web/views/layout.hbs b/src/web/views/layout.hbs
index 26fec23..b36fb55 100644
--- a/src/web/views/layout.hbs
+++ b/src/web/views/layout.hbs
@@ -4,7 +4,7 @@
{{title}} - Signage
-
+
{{#if stylesheets.length}}