Matthias Nott
2026-02-22 7d94ec0d18b46893e23680cf8438109a34cc2a10
static/css/style.css
....@@ -401,3 +401,127 @@
401401 overflow: hidden;
402402 }
403403 .mono { font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; }
404
+
405
+/* ---------- Backup Selection Bar ---------- */
406
+.selection-bar {
407
+ display: flex;
408
+ align-items: center;
409
+ gap: 1rem;
410
+ padding: 0.75rem 1.25rem;
411
+ margin-bottom: 0.75rem;
412
+ background: rgba(59,130,246,0.1);
413
+ border: 1px solid rgba(59,130,246,0.3);
414
+ border-radius: 0.5rem;
415
+ font-size: 0.875rem;
416
+ color: #93c5fd;
417
+ animation: fadeIn 0.15s ease-out;
418
+}
419
+.selection-bar span {
420
+ font-weight: 600;
421
+ margin-right: 0.5rem;
422
+}
423
+.selection-bar .btn {
424
+ margin-left: 0.5rem;
425
+}
426
+
427
+/* ---------- Backup Date Groups ---------- */
428
+.date-group {
429
+ margin-bottom: 0.75rem;
430
+}
431
+
432
+.date-group-header {
433
+ display: flex;
434
+ align-items: center;
435
+ gap: 0.75rem;
436
+ padding: 0.75rem 1rem;
437
+ background: #1f2937;
438
+ border: 1px solid #374151;
439
+ border-radius: 0.5rem;
440
+ cursor: pointer;
441
+ user-select: none;
442
+ transition: background 0.15s, border-color 0.15s;
443
+}
444
+.date-group-header:hover {
445
+ background: #263244;
446
+ border-color: #4b5563;
447
+}
448
+
449
+.date-group-header .chevron {
450
+ color: #6b7280;
451
+ font-size: 0.625rem;
452
+ transition: transform 0.2s ease;
453
+ flex-shrink: 0;
454
+ display: inline-block;
455
+}
456
+.date-group-header .chevron.open {
457
+ transform: rotate(90deg);
458
+ color: #60a5fa;
459
+}
460
+
461
+.date-group-title {
462
+ font-weight: 600;
463
+ color: #f3f4f6;
464
+ font-size: 0.9375rem;
465
+ flex: 1;
466
+}
467
+
468
+.date-group-meta {
469
+ font-size: 0.8125rem;
470
+ color: #9ca3af;
471
+ white-space: nowrap;
472
+}
473
+
474
+.date-group-size {
475
+ font-size: 0.8125rem;
476
+ color: #6b7280;
477
+ white-space: nowrap;
478
+}
479
+
480
+.date-group-body {
481
+ display: none;
482
+ margin-top: 0.25rem;
483
+ border-radius: 0 0 0.5rem 0.5rem;
484
+ overflow: hidden;
485
+}
486
+.date-group-body.open {
487
+ display: block;
488
+}
489
+
490
+/* ---------- Backup Location Badges ---------- */
491
+.badge-local {
492
+ background: rgba(16,185,129,0.12);
493
+ color: #34d399;
494
+ border: 1px solid rgba(52,211,153,0.25);
495
+}
496
+.badge-offsite {
497
+ background: rgba(139,92,246,0.12);
498
+ color: #a78bfa;
499
+ border: 1px solid rgba(167,139,250,0.25);
500
+}
501
+.badge-synced {
502
+ background: linear-gradient(90deg, rgba(16,185,129,0.15) 0%, rgba(139,92,246,0.15) 100%);
503
+ color: #a3e8d0;
504
+ border: 1px solid rgba(100,200,180,0.3);
505
+ text-transform: uppercase;
506
+ font-size: 0.7rem;
507
+ letter-spacing: 0.04em;
508
+}
509
+
510
+/* ---------- Restore modal info rows ---------- */
511
+.restore-info-row {
512
+ display: flex;
513
+ align-items: baseline;
514
+ gap: 0.75rem;
515
+ margin-bottom: 0.625rem;
516
+ font-size: 0.875rem;
517
+}
518
+.restore-info-label {
519
+ color: #9ca3af;
520
+ font-size: 0.8125rem;
521
+ font-weight: 500;
522
+ min-width: 5rem;
523
+}
524
+.restore-info-value {
525
+ color: #f3f4f6;
526
+ font-weight: 600;
527
+}