diff --git a/src/index.html b/src/index.html
index 1f43581..58df13f 100644
--- a/src/index.html
+++ b/src/index.html
@@ -301,9 +301,9 @@
Hide downloaded
-
-
0 selected
-
+
+ 0 selected
+
diff --git a/src/styles.css b/src/styles.css
index af30b48..6913226 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -150,6 +150,44 @@ body {
font-weight: 600;
}
+/* ============================================
+ VOD BULK-ACTION BAR — slides in when 1+ VOD is selected
+ ============================================
+ Lives between the filter row and the VOD grid. Used to be all
+ inline-styled in HTML; extracted to a class so the slide-in
+ animation has somewhere to live and the styling stays consistent
+ with the rest of the action surfaces. */
+.vod-bulk-bar {
+ align-items: center;
+ gap: 10px;
+ padding: 10px 14px;
+ background: linear-gradient(135deg, rgba(145, 70, 255, 0.15) 0%, rgba(145, 70, 255, 0.08) 100%);
+ border: 1px solid rgba(145, 70, 255, 0.42);
+ border-radius: 8px;
+ margin-bottom: 12px;
+ flex-wrap: wrap;
+ box-shadow: 0 4px 16px rgba(145, 70, 255, 0.10);
+ /* Animation fires whenever the JS flips display:none -> display:flex,
+ because Animation events restart on each display change. */
+ animation: vod-bulk-bar-slide 0.22s cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+@keyframes vod-bulk-bar-slide {
+ from { opacity: 0; transform: translateY(-10px); }
+ to { opacity: 1; transform: translateY(0); }
+}
+
+.vod-bulk-count {
+ color: var(--text);
+ font-size: 13px;
+ font-weight: 600;
+ letter-spacing: 0.2px;
+}
+
+.vod-bulk-spacer {
+ flex: 1;
+}
+
.streamer-item .remove {
margin-left: auto;
opacity: 0;