From 7d94ec0d18b46893e23680cf8438109a34cc2a10 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Sun, 22 Feb 2026 16:55:03 +0100
Subject: [PATCH] feat: promote/sync/rebuild UI, operations page, bidirectional sync, lifecycle ops
---
static/css/style.css | 124 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 124 insertions(+), 0 deletions(-)
diff --git a/static/css/style.css b/static/css/style.css
index d3deff7..9b1a219 100644
--- a/static/css/style.css
+++ b/static/css/style.css
@@ -401,3 +401,127 @@
overflow: hidden;
}
.mono { font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; }
+
+/* ---------- Backup Selection Bar ---------- */
+.selection-bar {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ padding: 0.75rem 1.25rem;
+ margin-bottom: 0.75rem;
+ background: rgba(59,130,246,0.1);
+ border: 1px solid rgba(59,130,246,0.3);
+ border-radius: 0.5rem;
+ font-size: 0.875rem;
+ color: #93c5fd;
+ animation: fadeIn 0.15s ease-out;
+}
+.selection-bar span {
+ font-weight: 600;
+ margin-right: 0.5rem;
+}
+.selection-bar .btn {
+ margin-left: 0.5rem;
+}
+
+/* ---------- Backup Date Groups ---------- */
+.date-group {
+ margin-bottom: 0.75rem;
+}
+
+.date-group-header {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ padding: 0.75rem 1rem;
+ background: #1f2937;
+ border: 1px solid #374151;
+ border-radius: 0.5rem;
+ cursor: pointer;
+ user-select: none;
+ transition: background 0.15s, border-color 0.15s;
+}
+.date-group-header:hover {
+ background: #263244;
+ border-color: #4b5563;
+}
+
+.date-group-header .chevron {
+ color: #6b7280;
+ font-size: 0.625rem;
+ transition: transform 0.2s ease;
+ flex-shrink: 0;
+ display: inline-block;
+}
+.date-group-header .chevron.open {
+ transform: rotate(90deg);
+ color: #60a5fa;
+}
+
+.date-group-title {
+ font-weight: 600;
+ color: #f3f4f6;
+ font-size: 0.9375rem;
+ flex: 1;
+}
+
+.date-group-meta {
+ font-size: 0.8125rem;
+ color: #9ca3af;
+ white-space: nowrap;
+}
+
+.date-group-size {
+ font-size: 0.8125rem;
+ color: #6b7280;
+ white-space: nowrap;
+}
+
+.date-group-body {
+ display: none;
+ margin-top: 0.25rem;
+ border-radius: 0 0 0.5rem 0.5rem;
+ overflow: hidden;
+}
+.date-group-body.open {
+ display: block;
+}
+
+/* ---------- Backup Location Badges ---------- */
+.badge-local {
+ background: rgba(16,185,129,0.12);
+ color: #34d399;
+ border: 1px solid rgba(52,211,153,0.25);
+}
+.badge-offsite {
+ background: rgba(139,92,246,0.12);
+ color: #a78bfa;
+ border: 1px solid rgba(167,139,250,0.25);
+}
+.badge-synced {
+ background: linear-gradient(90deg, rgba(16,185,129,0.15) 0%, rgba(139,92,246,0.15) 100%);
+ color: #a3e8d0;
+ border: 1px solid rgba(100,200,180,0.3);
+ text-transform: uppercase;
+ font-size: 0.7rem;
+ letter-spacing: 0.04em;
+}
+
+/* ---------- Restore modal info rows ---------- */
+.restore-info-row {
+ display: flex;
+ align-items: baseline;
+ gap: 0.75rem;
+ margin-bottom: 0.625rem;
+ font-size: 0.875rem;
+}
+.restore-info-label {
+ color: #9ca3af;
+ font-size: 0.8125rem;
+ font-weight: 500;
+ min-width: 5rem;
+}
+.restore-info-value {
+ color: #f3f4f6;
+ font-weight: 600;
+}
--
Gitblit v1.3.1