PluginProbe ʕ •ᴥ•ʔ
Download Manager / 3.3.62
Download Manager v3.3.62
3.3.62 3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / assets / css / front.css
download-manager / assets / css Last commit date
admin-styles.css 1 week ago admin-styles.min.css 1 week ago author-dashboard.css 1 week ago author-dashboard.min.css 1 week ago front-dark.css 5 months ago front-dark.min.css 5 months ago front.css 1 week ago front.min.css 1 week ago gutenberg-styles.css 5 years ago gutenberg-styles.min.css 6 months ago jquery.dataTables.css 6 years ago jquery.dataTables.min.css 1 year ago jqueryFileTree.css 5 years ago jqueryFileTree.min.css 5 years ago kitchen-sink.html 1 week ago wpdm-dashboard.css 1 week ago wpdm-dashboard.min.css 1 week ago wpdm-elegant-history.css 1 week ago wpdm-elegant-history.min.css 1 week ago wpdm-elegant-insights.css 1 week ago wpdm-elegant-insights.min.css 1 week ago wpdm-elegant-overview.css 1 week ago wpdm-elegant-overview.min.css 1 week ago wpdm-gallery.css 1 week ago wpdm-lock-options.css 1 week ago
front.css
2762 lines
1 /**
2 * WordPress Download Manager - Front-End Styles
3 * Version: 7.0.0
4 * Bootstrap 5 Compatible Classes
5 *
6 * Table of Contents:
7 * 1. CSS Variables
8 * 2. Base & Reset
9 * 3. Typography
10 * 4. Grid System
11 * 5. Form Controls
12 * 6. Buttons
13 * 7. Cards
14 * 8. List Groups
15 * 9. Alerts & Badges
16 * 10. Media Objects
17 * 11. Modals
18 * 12. Pagination
19 * 13. Tables
20 * 14. Progress Bars
21 * 15. Navigation & Tabs
22 * 16. Utilities
23 * 17. WPDM Specific Components
24 * 18. Dark Mode
25 */
26
27 /* ==========================================================================
28 1. CSS Variables
29 Color variables (--color-primary, --clr-sec, etc.) are declared by
30 Apply::uiColors() in <head>. Only non-color variables defined here.
31 ========================================================================== */
32
33 .w3eden {
34 /* Light variants – computed from uiColors RGB values */
35 --color-primary-light: rgba(var(--color-primary-rgb), 0.1);
36 --clr-sec-light: rgba(var(--clr-sec-rgb), 0.1);
37 --color-success-light: rgba(var(--color-success-rgb), 0.1);
38 --color-info-light: rgba(var(--color-info-rgb), 0.1);
39 --color-warning-light: rgba(var(--color-warning-rgb), 0.1);
40 --color-danger-light: rgba(var(--color-danger-rgb), 0.1);
41
42 /* Light Colors */
43 --color-light: #f8fafc;
44 --color-light-hover: #f1f5f9;
45
46 /* Dark Colors */
47 --color-dark: #1e293b;
48 --color-dark-hover: #0f172a;
49
50 /* Backgrounds */
51 --bg-body: #ffffff;
52 --bg-secondary: #f8fafc;
53 --bg-tertiary: #f1f5f9;
54
55 /* Text Colors */
56 --text-primary: #1e293b;
57 --text-secondary: #475569;
58 --text-muted: #94a3b8;
59 --text-light: #cbd5e1;
60
61 /* Borders */
62 --border-color: #e2e8f0;
63 --border-light: #f1f5f9;
64
65 /* Sizing */
66 --radius-sm: 4px;
67 --radius: 8px;
68 --radius-lg: 12px;
69 --radius-xl: 16px;
70 --radius-full: 9999px;
71
72 /* Shadows */
73 --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
74 --shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
75 --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
76 --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
77
78 /* Transitions */
79 --transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);
80 --transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
81
82 /* Dark Mode Variables */
83 --dm-bg: #0f172a;
84 --dm-bg-secondary: #1e293b;
85 --dm-bg-tertiary: #334155;
86 --dm-text: #f1f5f9;
87 --dm-text-secondary: #cbd5e1;
88 --dm-text-muted: #94a3b8;
89 --dm-border: rgba(255, 255, 255, 0.1);
90 --dm-border-light: rgba(255, 255, 255, 0.05);
91 }
92
93 /* ==========================================================================
94 2. Base & Reset
95 ========================================================================== */
96
97 .w3eden {
98 -webkit-font-smoothing: antialiased;
99 -moz-osx-font-smoothing: grayscale;
100 }
101
102 .w3eden *,
103 .w3eden *::before,
104 .w3eden *::after {
105 box-sizing: border-box;
106 }
107
108 /* Smooth Scrollbar */
109 .w3eden,
110 .w3eden * {
111 scrollbar-width: thin;
112 scrollbar-color: rgba(148, 163, 184, 0.6) transparent;
113 }
114
115 .w3eden::-webkit-scrollbar,
116 .w3eden *::-webkit-scrollbar {
117 width: 8px;
118 height: 8px;
119 }
120
121 .w3eden::-webkit-scrollbar-track,
122 .w3eden *::-webkit-scrollbar-track {
123 background: transparent;
124 border-radius: 4px;
125 }
126
127 .w3eden::-webkit-scrollbar-thumb,
128 .w3eden *::-webkit-scrollbar-thumb {
129 background: rgba(148, 163, 184, 0.5);
130 border-radius: 4px;
131 border: 2px solid transparent;
132 background-clip: padding-box;
133 }
134
135 .w3eden::-webkit-scrollbar-thumb:hover,
136 .w3eden *::-webkit-scrollbar-thumb:hover {
137 background: rgba(100, 116, 139, 0.7);
138 border: 2px solid transparent;
139 background-clip: padding-box;
140 }
141
142 .w3eden img {
143 max-width: 100%;
144 height: auto;
145 }
146
147 .w3eden .wpdm_icon,
148 .w3eden .img-48{
149 width: 48px !important;
150 height: auto;
151 }
152
153 .w3eden hr {
154 margin: 1rem 0;
155 color: inherit;
156 border: 0;
157 border-top: 1px solid var(--border-color);
158 opacity: 1;
159 }
160
161 /* ==========================================================================
162 3. Typography
163 ========================================================================== */
164
165 .w3eden h1, .w3eden .h1,
166 .w3eden h2, .w3eden .h2,
167 .w3eden h3, .w3eden .h3,
168 .w3eden h4, .w3eden .h4,
169 .w3eden h5, .w3eden .h5,
170 .w3eden h6, .w3eden .h6 {
171 margin: 0 !important;
172 font-weight: 600;
173 line-height: 1.3;
174 }
175
176 .w3eden h1, .w3eden .h1 { font-size: 2.25rem; }
177 .w3eden h2, .w3eden .h2 { font-size: 1.875rem; }
178 .w3eden h3, .w3eden .h3 { font-size: 1.5rem; }
179 .w3eden h4, .w3eden .h4 { font-size: 1.25rem; }
180 .w3eden h5, .w3eden .h5 { font-size: 1.125rem; }
181 .w3eden h6, .w3eden .h6 { font-size: 1rem; }
182
183 .w3eden p {
184 margin-top: 0;
185 margin-bottom: 1rem;
186 }
187
188 .w3eden small, .w3eden .small {
189 font-size: 0.875em;
190 }
191
192 .w3eden .lead {
193 font-size: 1.125rem;
194 font-weight: 400;
195 line-height: 1.6;
196 }
197
198 /* ==========================================================================
199 4. Grid System
200 ========================================================================== */
201
202 .w3eden .container {
203 width: 100%;
204 padding-right: 15px;
205 padding-left: 15px;
206 margin-right: auto;
207 margin-left: auto;
208 }
209
210 .w3eden .container-fluid {
211 width: 100%;
212 padding-right: 15px;
213 padding-left: 15px;
214 margin-right: auto;
215 margin-left: auto;
216 }
217
218 .w3eden .row {
219 display: flex;
220 flex-wrap: wrap;
221 margin-right: -15px;
222 margin-left: -15px;
223 }
224
225 .w3eden .row > * {
226 flex-shrink: 0;
227 width: 100%;
228 max-width: 100%;
229 padding-right: 15px;
230 padding-left: 15px;
231 }
232
233 /* Column classes */
234 .w3eden .col { flex: 1 0 0%; }
235 .w3eden .col-auto { flex: 0 0 auto; width: auto; }
236
237 .w3eden .col-1 { flex: 0 0 auto; width: 8.33333%; }
238 .w3eden .col-2 { flex: 0 0 auto; width: 16.66667%; }
239 .w3eden .col-3 { flex: 0 0 auto; width: 25%; }
240 .w3eden .col-4 { flex: 0 0 auto; width: 33.33333%; }
241 .w3eden .col-5 { flex: 0 0 auto; width: 41.66667%; }
242 .w3eden .col-6 { flex: 0 0 auto; width: 50%; }
243 .w3eden .col-7 { flex: 0 0 auto; width: 58.33333%; }
244 .w3eden .col-8 { flex: 0 0 auto; width: 66.66667%; }
245 .w3eden .col-9 { flex: 0 0 auto; width: 75%; }
246 .w3eden .col-10 { flex: 0 0 auto; width: 83.33333%; }
247 .w3eden .col-11 { flex: 0 0 auto; width: 91.66667%; }
248 .w3eden .col-12 { flex: 0 0 auto; width: 100%; }
249
250 /* Small devices (576px and up) */
251 @media (min-width: 576px) {
252 .w3eden .col-sm { flex: 1 0 0%; }
253 .w3eden .col-sm-auto { flex: 0 0 auto; width: auto; }
254 .w3eden .col-sm-1 { flex: 0 0 auto; width: 8.33333%; }
255 .w3eden .col-sm-2 { flex: 0 0 auto; width: 16.66667%; }
256 .w3eden .col-sm-3 { flex: 0 0 auto; width: 25%; }
257 .w3eden .col-sm-4 { flex: 0 0 auto; width: 33.33333%; }
258 .w3eden .col-sm-5 { flex: 0 0 auto; width: 41.66667%; }
259 .w3eden .col-sm-6 { flex: 0 0 auto; width: 50%; }
260 .w3eden .col-sm-7 { flex: 0 0 auto; width: 58.33333%; }
261 .w3eden .col-sm-8 { flex: 0 0 auto; width: 66.66667%; }
262 .w3eden .col-sm-9 { flex: 0 0 auto; width: 75%; }
263 .w3eden .col-sm-10 { flex: 0 0 auto; width: 83.33333%; }
264 .w3eden .col-sm-11 { flex: 0 0 auto; width: 91.66667%; }
265 .w3eden .col-sm-12 { flex: 0 0 auto; width: 100%; }
266 }
267
268 /* Medium devices (768px and up) */
269 @media (min-width: 768px) {
270 .w3eden .col-md { flex: 1 0 0%; }
271 .w3eden .col-md-auto { flex: 0 0 auto; width: auto; }
272 .w3eden .col-md-1 { flex: 0 0 auto; width: 8.33333%; }
273 .w3eden .col-md-2 { flex: 0 0 auto; width: 16.66667%; }
274 .w3eden .col-md-3 { flex: 0 0 auto; width: 25%; }
275 .w3eden .col-md-4 { flex: 0 0 auto; width: 33.33333%; }
276 .w3eden .col-md-5 { flex: 0 0 auto; width: 41.66667%; }
277 .w3eden .col-md-6 { flex: 0 0 auto; width: 50%; }
278 .w3eden .col-md-7 { flex: 0 0 auto; width: 58.33333%; }
279 .w3eden .col-md-8 { flex: 0 0 auto; width: 66.66667%; }
280 .w3eden .col-md-9 { flex: 0 0 auto; width: 75%; }
281 .w3eden .col-md-10 { flex: 0 0 auto; width: 83.33333%; }
282 .w3eden .col-md-11 { flex: 0 0 auto; width: 91.66667%; }
283 .w3eden .col-md-12 { flex: 0 0 auto; width: 100%; }
284 }
285
286 /* Large devices (992px and up) */
287 @media (min-width: 992px) {
288 .w3eden .col-lg { flex: 1 0 0%; }
289 .w3eden .col-lg-auto { flex: 0 0 auto; width: auto; }
290 .w3eden .col-lg-1 { flex: 0 0 auto; width: 8.33333%; }
291 .w3eden .col-lg-2 { flex: 0 0 auto; width: 16.66667%; }
292 .w3eden .col-lg-3 { flex: 0 0 auto; width: 25%; }
293 .w3eden .col-lg-4 { flex: 0 0 auto; width: 33.33333%; }
294 .w3eden .col-lg-5 { flex: 0 0 auto; width: 41.66667%; }
295 .w3eden .col-lg-6 { flex: 0 0 auto; width: 50%; }
296 .w3eden .col-lg-7 { flex: 0 0 auto; width: 58.33333%; }
297 .w3eden .col-lg-8 { flex: 0 0 auto; width: 66.66667%; }
298 .w3eden .col-lg-9 { flex: 0 0 auto; width: 75%; }
299 .w3eden .col-lg-10 { flex: 0 0 auto; width: 83.33333%; }
300 .w3eden .col-lg-11 { flex: 0 0 auto; width: 91.66667%; }
301 .w3eden .col-lg-12 { flex: 0 0 auto; width: 100%; }
302 }
303
304 /* Extra large devices (1200px and up) */
305 @media (min-width: 1200px) {
306 .w3eden .col-xl { flex: 1 0 0%; }
307 .w3eden .col-xl-auto { flex: 0 0 auto; width: auto; }
308 .w3eden .col-xl-1 { flex: 0 0 auto; width: 8.33333%; }
309 .w3eden .col-xl-2 { flex: 0 0 auto; width: 16.66667%; }
310 .w3eden .col-xl-3 { flex: 0 0 auto; width: 25%; }
311 .w3eden .col-xl-4 { flex: 0 0 auto; width: 33.33333%; }
312 .w3eden .col-xl-5 { flex: 0 0 auto; width: 41.66667%; }
313 .w3eden .col-xl-6 { flex: 0 0 auto; width: 50%; }
314 .w3eden .col-xl-7 { flex: 0 0 auto; width: 58.33333%; }
315 .w3eden .col-xl-8 { flex: 0 0 auto; width: 66.66667%; }
316 .w3eden .col-xl-9 { flex: 0 0 auto; width: 75%; }
317 .w3eden .col-xl-10 { flex: 0 0 auto; width: 83.33333%; }
318 .w3eden .col-xl-11 { flex: 0 0 auto; width: 91.66667%; }
319 .w3eden .col-xl-12 { flex: 0 0 auto; width: 100%; }
320 }
321
322 /* Gutter utilities */
323 .w3eden .g-0, .w3eden .gx-0 { --bs-gutter-x: 0; }
324 .w3eden .g-0, .w3eden .gy-0 { --bs-gutter-y: 0; }
325 .w3eden .g-0 > *, .w3eden .gx-0 > * { padding-right: 0; padding-left: 0; }
326
327 .w3eden .g-1, .w3eden .gx-1 { --bs-gutter-x: 0.25rem; }
328 .w3eden .g-1, .w3eden .gy-1 { --bs-gutter-y: 0.25rem; }
329
330 .w3eden .g-2, .w3eden .gx-2 { --bs-gutter-x: 0.5rem; }
331 .w3eden .g-2, .w3eden .gy-2 { --bs-gutter-y: 0.5rem; }
332
333 .w3eden .g-3, .w3eden .gx-3 { --bs-gutter-x: 1rem; }
334 .w3eden .g-3, .w3eden .gy-3 { --bs-gutter-y: 1rem; }
335
336 .w3eden .g-4, .w3eden .gx-4 { --bs-gutter-x: 1.5rem; }
337 .w3eden .g-4, .w3eden .gy-4 { --bs-gutter-y: 1.5rem; }
338
339 .w3eden .g-5, .w3eden .gx-5 { --bs-gutter-x: 3rem; }
340 .w3eden .g-5, .w3eden .gy-5 { --bs-gutter-y: 3rem; }
341
342 /* ==========================================================================
343 5. Form Controls
344 ========================================================================== */
345
346 .w3eden .form-control {
347 display: block;
348 width: 100%;
349 height: 42px;
350 padding: 0.5rem 0.875rem;
351 font-size: 0.9375rem;
352 font-weight: 400;
353 line-height: 1.5;
354 color: var(--text-primary);
355 background-color: var(--bg-body);
356 background-clip: padding-box;
357 border: 1px solid var(--border-color);
358 border-radius: var(--radius);
359 transition: border-color var(--transition), box-shadow var(--transition);
360 appearance: none;
361 }
362
363 .w3eden .form-control:hover {
364 border-color: var(--text-light);
365 }
366
367 .w3eden .form-control:focus {
368 border-color: var(--color-primary);
369 outline: 0;
370 box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
371 }
372
373 .w3eden .form-control::placeholder {
374 color: var(--text-muted);
375 opacity: 1;
376 }
377
378 .w3eden .form-control:disabled,
379 .w3eden .form-control[readonly] {
380 background-color: var(--bg-secondary);
381 opacity: 1;
382 }
383
384 /* Textarea */
385 .w3eden textarea.form-control {
386 min-height: calc(1.5em + 0.75rem + 2px);
387 height: auto;
388 }
389
390 /* Form control sizes */
391 .w3eden .form-control-sm {
392 height: 34px;
393 padding: 0.375rem 0.75rem;
394 font-size: 0.8125rem;
395 border-radius: var(--radius-sm);
396 }
397
398 .w3eden .form-control-lg {
399 height: 50px;
400 padding: 0.625rem 1rem;
401 font-size: 1.0625rem;
402 border-radius: var(--radius);
403 }
404
405 /* Select */
406 .w3eden .form-select,
407 .w3eden select.form-control {
408 display: block;
409 width: 100%;
410 height: 42px;
411 padding: 0.5rem 2.5rem 0.5rem 0.875rem;
412 font-size: 0.9375rem;
413 font-weight: 400;
414 line-height: 1.5;
415 color: var(--text-primary);
416 background-color: var(--bg-body);
417 background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
418 background-repeat: no-repeat;
419 background-position: right 0.75rem center;
420 background-size: 16px 12px;
421 border: 1px solid var(--border-color);
422 border-radius: var(--radius);
423 transition: border-color var(--transition), box-shadow var(--transition);
424 appearance: none;
425 cursor: pointer;
426 }
427
428 .w3eden .form-select:hover,
429 .w3eden select.form-control:hover {
430 border-color: var(--text-light);
431 }
432
433 .w3eden .form-select:focus,
434 .w3eden select.form-control:focus {
435 border-color: var(--color-primary);
436 outline: 0;
437 box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
438 }
439
440 /* Custom checkboxes and radios */
441 .w3eden .form-check {
442 display: block;
443 min-height: 1.5rem;
444 padding-left: 1.5rem;
445 margin-bottom: 0.125rem;
446 }
447
448 .w3eden .form-check-input {
449 width: 1.125em;
450 height: 1.125em;
451 margin-top: 0.125em;
452 margin-left: -1.5rem;
453 vertical-align: top;
454 background-color: var(--bg-body);
455 background-repeat: no-repeat;
456 background-position: center;
457 background-size: contain;
458 border: 1px solid var(--border-color);
459 appearance: none;
460 cursor: pointer;
461 transition: background-color var(--transition), border-color var(--transition), box-shadow var(--transition);
462 }
463
464 .w3eden .form-check-input[type="checkbox"] {
465 border-radius: 0.25em;
466 }
467
468 .w3eden .form-check-input[type="radio"] {
469 border-radius: 50%;
470 }
471
472 .w3eden .form-check-input:focus {
473 border-color: var(--color-primary);
474 outline: 0;
475 box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
476 }
477
478 .w3eden .form-check-input:checked {
479 background-color: var(--color-primary);
480 border-color: var(--color-primary);
481 }
482
483 .w3eden .form-check-input:checked[type="checkbox"] {
484 background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
485 }
486
487 .w3eden .form-check-input:checked[type="radio"] {
488 background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
489 }
490
491 .w3eden .form-check-label {
492 cursor: pointer;
493 }
494
495 .w3eden .form-check-inline {
496 display: inline-block;
497 margin-right: 1rem;
498 }
499
500 /* Form labels */
501 .w3eden .form-label {
502 margin-bottom: 0.5rem;
503 font-weight: 500;
504 }
505
506 /* Form text/help */
507 .w3eden .form-text {
508 margin-top: 0.25rem;
509 font-size: 0.8125rem;
510 color: var(--text-muted);
511 }
512
513 /* Input group */
514 .w3eden .input-group {
515 position: relative;
516 display: flex;
517 flex-wrap: wrap;
518 align-items: stretch;
519 width: 100%;
520 }
521
522 .w3eden .input-group > .form-control,
523 .w3eden .input-group > .form-select {
524 position: relative;
525 flex: 1 1 auto;
526 width: 1%;
527 min-width: 0;
528 }
529
530 .w3eden .input-group > .form-control:focus,
531 .w3eden .input-group > .form-select:focus {
532 z-index: 3;
533 }
534
535 .w3eden .input-group .form-control:not(:first-child),
536 .w3eden .input-group .form-select:not(:first-child) {
537 border-top-left-radius: 0;
538 border-bottom-left-radius: 0;
539 }
540
541 .w3eden .input-group .form-control:not(:last-child),
542 .w3eden .input-group .form-select:not(:last-child) {
543 border-top-right-radius: 0;
544 border-bottom-right-radius: 0;
545 }
546
547 .w3eden .input-group-text {
548 display: flex;
549 align-items: center;
550 padding: 0.5rem 0.875rem;
551 font-size: 0.9375rem;
552 font-weight: 400;
553 line-height: 1.5;
554 color: var(--text-secondary);
555 text-align: center;
556 white-space: nowrap;
557 background-color: var(--bg-secondary);
558 border: 1px solid var(--border-color);
559 border-radius: var(--radius);
560 }
561
562 .w3eden .input-group > :not(:first-child) {
563 margin-left: -1px;
564 }
565
566 .w3eden .input-group-text:first-child {
567 border-top-right-radius: 0;
568 border-bottom-right-radius: 0;
569 }
570
571 .w3eden .input-group-text:last-child {
572 border-top-left-radius: 0;
573 border-bottom-left-radius: 0;
574 }
575
576 .input-group-btn.input-group-append .btn {
577 border-radius: 0 var(--radius) var(--radius) 0;
578 height: 100%;
579 }
580
581 /* ==========================================================================
582 6. Buttons
583 ========================================================================== */
584
585 .w3eden .btn {
586 display: inline-flex;
587 align-items: center;
588 justify-content: center;
589 gap: 0.5rem;
590 padding: 0.5rem 1rem;
591 min-height: 38px;
592 font-family: inherit;
593 font-size: 0.875rem;
594 font-weight: 500;
595 line-height: 1;
596 text-align: center;
597 text-decoration: none;
598 vertical-align: middle;
599 cursor: pointer;
600 user-select: none;
601 border: 1px solid transparent;
602 border-radius: var(--radius);
603 box-sizing: border-box;
604 text-decoration:none !important;
605 transition: color var(--transition), background-color var(--transition), border-color var(--transition), box-shadow var(--transition);
606 }
607
608 .w3eden .btn:focus {
609 outline: 0;
610 box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.25);
611 }
612
613 .w3eden .btn:disabled,
614 .w3eden .btn.disabled {
615 pointer-events: none;
616 opacity: 0.65;
617 }
618
619 /* Button variants */
620 .w3eden .btn-primary {
621 color: #fff;
622 background-color: var(--color-primary);
623 border-color: var(--color-primary);
624 }
625
626 .w3eden .btn-primary:hover {
627 color: #fff;
628 background-color: var(--color-primary-hover);
629 border-color: var(--color-primary-hover);
630 }
631
632 .w3eden .btn-primary:focus {
633 box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.35);
634 }
635
636 .w3eden .btn-secondary {
637 color: #fff;
638 background-color: var(--clr-sec);
639 border-color: var(--clr-sec);
640 }
641
642 .w3eden .btn-secondary:hover {
643 color: #fff;
644 background-color: var(--clr-sec-hover);
645 border-color: var(--clr-sec-hover);
646 }
647
648 .w3eden .btn-secondary:focus {
649 box-shadow: 0 0 0 3px rgba(var(--clr-sec-rgb), 0.35);
650 }
651
652 .w3eden .btn-success {
653 color: #fff;
654 background-color: var(--color-success);
655 border-color: var(--color-success);
656 }
657
658 .w3eden .btn-success:hover {
659 color: #fff;
660 background-color: var(--color-success-hover);
661 border-color: var(--color-success-hover);
662 }
663
664 .w3eden .btn-success:focus {
665 box-shadow: 0 0 0 3px rgba(var(--color-success-rgb), 0.35);
666 }
667
668 .w3eden .btn-info {
669 color: #fff;
670 background-color: var(--color-info);
671 border-color: var(--color-info);
672 }
673
674 .w3eden .btn-info:hover {
675 color: #fff;
676 background-color: var(--color-info-hover);
677 border-color: var(--color-info-hover);
678 }
679
680 .w3eden .btn-info:focus {
681 box-shadow: 0 0 0 3px rgba(var(--color-info-rgb), 0.35);
682 }
683
684 .w3eden .btn-warning {
685 color: #fff;
686 background-color: var(--color-warning);
687 border-color: var(--color-warning);
688 }
689
690 .w3eden .btn-warning:hover {
691 color: #fff;
692 background-color: var(--color-warning-hover);
693 border-color: var(--color-warning-hover);
694 }
695
696 .w3eden .btn-warning:focus {
697 box-shadow: 0 0 0 3px rgba(var(--color-warning-rgb), 0.35);
698 }
699
700 .w3eden .btn-danger {
701 color: #fff;
702 background-color: var(--color-danger);
703 border-color: var(--color-danger);
704 }
705
706 .w3eden .btn-danger:hover {
707 color: #fff;
708 background-color: var(--color-danger-hover);
709 border-color: var(--color-danger-hover);
710 }
711
712 .w3eden .btn-danger:focus {
713 box-shadow: 0 0 0 3px rgba(var(--color-danger-rgb), 0.35);
714 }
715
716 .w3eden .btn-light {
717 color: var(--text-primary);
718 background-color: var(--color-light);
719 border-color: var(--border-color);
720 }
721
722 .w3eden .btn-light:hover {
723 color: var(--text-primary);
724 background-color: var(--color-light-hover);
725 border-color: var(--border-color);
726 }
727
728 .w3eden .btn-dark {
729 color: #fff;
730 background-color: var(--color-dark);
731 border-color: var(--color-dark);
732 }
733
734 .w3eden .btn-dark:hover {
735 color: #fff;
736 background-color: var(--color-dark-hover);
737 border-color: var(--color-dark-hover);
738 }
739
740 /* Outline buttons */
741 .w3eden .btn-outline-primary {
742 color: var(--color-primary);
743 border-color: var(--color-primary);
744 background-color: transparent;
745 }
746
747 .w3eden .btn-outline-primary:hover {
748 color: #fff;
749 background-color: var(--color-primary);
750 border-color: var(--color-primary);
751 }
752
753 .w3eden .btn-outline-secondary {
754 color: var(--clr-sec);
755 border-color: var(--clr-sec);
756 background-color: transparent;
757 }
758
759 .w3eden .btn-outline-secondary:hover {
760 color: #fff;
761 background-color: var(--clr-sec);
762 border-color: var(--clr-sec);
763 }
764
765 .w3eden .btn-outline-success {
766 color: var(--color-success);
767 border-color: var(--color-success);
768 background-color: transparent;
769 }
770
771 .w3eden .btn-outline-success:hover {
772 color: #fff;
773 background-color: var(--color-success);
774 border-color: var(--color-success);
775 }
776
777 .w3eden .btn-outline-danger {
778 color: var(--color-danger);
779 border-color: var(--color-danger);
780 background-color: transparent;
781 }
782
783 .w3eden .btn-outline-danger:hover {
784 color: #fff;
785 background-color: var(--color-danger);
786 border-color: var(--color-danger);
787 }
788
789 /* Link button */
790 .w3eden .btn-link {
791 font-weight: 400;
792 color: var(--color-primary);
793 text-decoration: none;
794 background-color: transparent;
795 border-color: transparent;
796 }
797
798 .w3eden .btn-link:hover {
799 color: var(--color-primary-hover);
800 text-decoration: underline;
801 }
802
803 /* Button sizes */
804 .w3eden .btn-xs {
805 padding: 0.125rem 0.5rem;
806 min-height: 24px;
807 font-size: 0.75rem;
808 border-radius: var(--radius-sm);
809 }
810
811 .w3eden .btn-sm {
812 padding: 0.25rem 0.75rem;
813 min-height: 32px;
814 font-size: 0.8125rem;
815 border-radius: var(--radius-sm);
816 }
817
818 .w3eden .btn-lg {
819 padding: 0.625rem 1.5rem;
820 min-height: 48px;
821 font-size: 1rem;
822 border-radius: var(--radius-lg);
823 }
824
825 /* Block button */
826 .w3eden .btn-block {
827 display: flex;
828 width: 100%;
829 }
830
831 /* Button group */
832 .w3eden .btn-group {
833 position: relative;
834 display: inline-flex;
835 vertical-align: middle;
836 }
837
838 .w3eden .btn-group > .btn {
839 position: relative;
840 flex: 1 1 auto;
841 }
842
843 .w3eden .btn-group > .btn:not(:first-child) {
844 margin-left: -1px;
845 border-top-left-radius: 0;
846 border-bottom-left-radius: 0;
847 }
848
849 .w3eden .btn-group > .btn:not(:last-child) {
850 border-top-right-radius: 0;
851 border-bottom-right-radius: 0;
852 }
853
854 /* Loading state */
855 .w3eden .btn-loading {
856 pointer-events: none;
857 position: relative;
858 color: transparent !important;
859 }
860
861 .w3eden .btn-loading::after {
862 content: "";
863 position: absolute;
864 width: 16px;
865 height: 16px;
866 top: calc(50% - 8px);
867 left: calc(50% - 8px);
868 border: 2px solid rgba(255, 255, 255, 0.3);
869 border-radius: 50%;
870 border-top-color: #fff;
871 animation: wpdm-spinner 0.6s linear infinite;
872 }
873
874 @keyframes wpdm-spinner {
875 to { transform: rotate(360deg); }
876 }
877
878 /* Spin animation for icons */
879 .w3eden .btn.wpdm-spin {
880 animation: wpdm-spin 2s infinite linear;
881 }
882
883 @keyframes wpdm-spin {
884 from { transform: rotate(0deg); }
885 to { transform: rotate(359deg); }
886 }
887
888 /* ==========================================================================
889 7. Cards
890 ========================================================================== */
891
892 .w3eden .card {
893 position: relative;
894 display: flex;
895 flex-direction: column;
896 min-width: 0;
897 word-wrap: break-word;
898 background-color: var(--bg-body);
899 background-clip: border-box;
900 border: 1px solid var(--border-color);
901 border-radius: var(--radius-lg);
902 }
903
904 .w3eden .card > hr {
905 margin-right: 0;
906 margin-left: 0;
907 }
908
909 .w3eden .card-body {
910 flex: 1 1 auto;
911 padding: 1.25rem;
912 }
913
914 .w3eden .card-title {
915 margin-bottom: 0.75rem;
916 font-weight: 600;
917 }
918
919 .w3eden .card-subtitle {
920 margin-top: -0.375rem;
921 margin-bottom: 0;
922 color: var(--text-muted);
923 }
924
925 .w3eden .card-text:last-child {
926 margin-bottom: 0;
927 }
928
929 .w3eden .card-link + .card-link {
930 margin-left: 1rem;
931 }
932
933 .w3eden .card-header {
934 padding: 1rem 1.25rem;
935 margin-bottom: 0;
936 background-color: var(--bg-secondary);
937 border-bottom: 1px solid var(--border-color);
938 }
939
940 .w3eden .card-header:first-child {
941 border-radius: calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0;
942 }
943
944 .w3eden .card-footer {
945 padding: 1rem 1.25rem;
946 background-color: var(--bg-secondary);
947 border-top: 1px solid var(--border-color);
948 }
949
950 .w3eden .card-footer:last-child {
951 border-radius: 0 0 calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px);
952 }
953
954 /* Card image */
955 .w3eden .card-img,
956 .w3eden .card-img-top,
957 .w3eden .card-img-bottom {
958 width: 100%;
959 }
960
961 .w3eden .card-img,
962 .w3eden .card-img-top {
963 border-top-left-radius: calc(var(--radius-lg) - 1px);
964 border-top-right-radius: calc(var(--radius-lg) - 1px);
965 }
966
967 .w3eden .card-img,
968 .w3eden .card-img-bottom {
969 border-bottom-right-radius: calc(var(--radius-lg) - 1px);
970 border-bottom-left-radius: calc(var(--radius-lg) - 1px);
971 }
972
973 /* Card overlay */
974 .w3eden .card-img-overlay {
975 position: absolute;
976 top: 0;
977 right: 0;
978 bottom: 0;
979 left: 0;
980 padding: 1.25rem;
981 border-radius: calc(var(--radius-lg) - 1px);
982 }
983
984 /* Card groups */
985 .w3eden .card-group {
986 display: flex;
987 flex-flow: row wrap;
988 }
989
990 .w3eden .card-group > .card {
991 flex: 1 0 0%;
992 margin-bottom: 0;
993 }
994
995 .w3eden .card-group > .card + .card {
996 margin-left: 0;
997 border-left: 0;
998 }
999
1000 .w3eden .card-group > .card:not(:last-child) {
1001 border-top-right-radius: 0;
1002 border-bottom-right-radius: 0;
1003 }
1004
1005 .w3eden .card-group > .card:not(:first-child) {
1006 border-top-left-radius: 0;
1007 border-bottom-left-radius: 0;
1008 }
1009
1010 /* ==========================================================================
1011 8. List Groups
1012 ========================================================================== */
1013
1014 .w3eden .list-group {
1015 display: flex;
1016 flex-direction: column;
1017 padding-left: 0;
1018 margin-bottom: 0;
1019 border-radius: var(--radius);
1020 }
1021
1022 .w3eden .list-group-item {
1023 position: relative;
1024 display: block;
1025 padding: 0.75rem 1rem;
1026 color: var(--text-primary);
1027 text-decoration: none;
1028 background-color: var(--bg-body);
1029 border: 1px solid var(--border-color);
1030 margin: 0px !important;
1031 }
1032
1033 .w3eden .list-group-item:first-child {
1034 border-top-left-radius: inherit;
1035 border-top-right-radius: inherit;
1036 }
1037
1038 .w3eden .list-group-item:last-child {
1039 border-bottom-right-radius: inherit;
1040 border-bottom-left-radius: inherit;
1041 }
1042
1043 .w3eden .list-group-item + .list-group-item {
1044 border-top-width: 0;
1045 }
1046
1047 .w3eden .list-group-item.disabled,
1048 .w3eden .list-group-item:disabled {
1049 color: var(--text-muted);
1050 pointer-events: none;
1051 background-color: var(--bg-body);
1052 }
1053
1054 .w3eden .list-group-item.active {
1055 z-index: 2;
1056 color: #fff;
1057 background-color: var(--color-primary);
1058 border-color: var(--color-primary);
1059 }
1060
1061 /* Interactive list group */
1062 .w3eden a.list-group-item,
1063 .w3eden button.list-group-item {
1064 width: 100%;
1065 text-align: inherit;
1066 }
1067
1068 .w3eden a.list-group-item:hover,
1069 .w3eden a.list-group-item:focus,
1070 .w3eden button.list-group-item:hover,
1071 .w3eden button.list-group-item:focus {
1072 z-index: 1;
1073 text-decoration: none;
1074 background-color: var(--bg-secondary);
1075 }
1076
1077 /* Flush list group */
1078 .w3eden .list-group-flush {
1079 border-radius: 0;
1080 }
1081
1082 .w3eden .list-group-flush > .list-group-item {
1083 border-width: 0 0 1px;
1084 }
1085
1086 .w3eden .list-group-flush > .list-group-item:last-child {
1087 border-bottom-width: 0;
1088 }
1089
1090 /* Horizontal list group */
1091 .w3eden .list-group-horizontal {
1092 flex-direction: row;
1093 }
1094
1095 .w3eden .list-group-horizontal > .list-group-item:first-child {
1096 border-bottom-left-radius: var(--radius);
1097 border-top-right-radius: 0;
1098 }
1099
1100 .w3eden .list-group-horizontal > .list-group-item:last-child {
1101 border-top-right-radius: var(--radius);
1102 border-bottom-left-radius: 0;
1103 }
1104
1105 .w3eden .list-group-horizontal > .list-group-item + .list-group-item {
1106 border-top-width: 1px;
1107 border-left-width: 0;
1108 }
1109
1110 /* Numbered list group */
1111 .w3eden .list-group-numbered {
1112 list-style-type: none;
1113 counter-reset: section;
1114 }
1115
1116 .w3eden .list-group-numbered > .list-group-item::before {
1117 content: counters(section, ".") ". ";
1118 counter-increment: section;
1119 }
1120
1121 /* Color variants */
1122 .w3eden .list-group-item-primary { color: #3730a3; background-color: var(--color-primary-light); }
1123 .w3eden .list-group-item-success { color: #065f46; background-color: var(--color-success-light); }
1124 .w3eden .list-group-item-info { color: #0369a1; background-color: var(--color-info-light); }
1125 .w3eden .list-group-item-warning { color: #92400e; background-color: var(--color-warning-light); }
1126 .w3eden .list-group-item-danger { color: #991b1b; background-color: var(--color-danger-light); }
1127
1128 /* ==========================================================================
1129 9. Alerts & Badges
1130 ========================================================================== */
1131
1132 /* Alerts */
1133 .w3eden .alert {
1134 position: relative;
1135 padding: 1rem 1.25rem;
1136 margin-bottom: 1rem;
1137 border: 1px solid transparent;
1138 border-radius: var(--radius);
1139 }
1140
1141 .w3eden .alert-heading {
1142 color: inherit;
1143 font-weight: 600;
1144 }
1145
1146 .w3eden .alert-link {
1147 font-weight: 600;
1148 }
1149
1150 .w3eden .alert-dismissible {
1151 padding-right: 3rem;
1152 }
1153
1154 .w3eden .alert-dismissible .btn-close {
1155 position: absolute;
1156 top: 0;
1157 right: 0;
1158 z-index: 2;
1159 padding: 1.25rem 1rem;
1160 }
1161
1162 .w3eden .alert-primary { color: var(--color-primary-active); background-color: var(--color-primary-light); border-color: var(--color-primary); }
1163 .w3eden .alert-secondary { color: var(--clr-sec); background-color: var(--clr-sec-light); border-color: var(--border-color); }
1164 .w3eden .alert-success { color: var(--color-success-active); background-color: var(--color-success-light); border-color: var(--color-success); }
1165 .w3eden .alert-info { color: var(--color-info-active); background-color: var(--color-info-light); border-color: var(--color-info); }
1166 .w3eden .alert-warning { color: var(--color-warning-active); background-color: var(--color-warning-light); border-color: var(--color-warning); }
1167 .w3eden .alert-danger { color: var(--color-danger-active); background-color: var(--color-danger-light); border-color: var(--color-danger); }
1168
1169 /* Badges */
1170 .w3eden .badge {
1171 display: inline-block;
1172 padding: 0.35em 0.65em;
1173 font-size: 0.75em;
1174 font-weight: 600;
1175 line-height: 1;
1176 background-color: var(--color-primary);
1177 color: #fff;
1178 text-align: center;
1179 white-space: nowrap;
1180 vertical-align: baseline;
1181 border-radius: var(--radius-sm);
1182 }
1183
1184 .w3eden .badge:empty { display: none; }
1185
1186 .w3eden .badge-primary, .w3eden .bg-primary { background-color: var(--color-primary) !important; }
1187 .w3eden .badge-secondary, .w3eden .bg-secondary { background-color: var(--clr-sec) !important; }
1188 .w3eden .badge-success, .w3eden .bg-success { background-color: var(--color-success) !important; }
1189 .w3eden .badge-info, .w3eden .bg-info { background-color: var(--color-info) !important; }
1190 .w3eden .badge-warning, .w3eden .bg-warning { background-color: var(--color-warning) !important; }
1191 .w3eden .badge-danger, .w3eden .bg-danger { background-color: var(--color-danger) !important; }
1192 .w3eden .badge-light, .w3eden .bg-light { background-color: var(--color-light) !important; color: var(--text-primary); }
1193 .w3eden .badge-dark, .w3eden .bg-dark { background-color: var(--color-dark) !important; }
1194
1195 .w3eden .rounded-pill { border-radius: var(--radius-full) !important; }
1196
1197 .w3eden .well { padding: 20px; border-radius: var(--radius); background-color: rgba(var(--clr-sec-rgb), .06); margin-bottom: 20px; }
1198
1199 /* ==========================================================================
1200 10. Media Objects
1201 ========================================================================== */
1202
1203 .w3eden .media {
1204 display: flex;
1205 align-items: flex-start;
1206 gap: 1rem;
1207 }
1208
1209 .w3eden .media-body {
1210 flex: 1;
1211 min-width: 0;
1212 }
1213
1214 .w3eden .media-left { flex-shrink: 0; }
1215 .w3eden .media-right { flex-shrink: 0; order: 1; }
1216
1217 .w3eden .media-stacked {
1218 flex-direction: column;
1219 align-items: stretch;
1220 }
1221
1222 .w3eden .media-stacked .media-left,
1223 .w3eden .media-stacked .media-right {
1224 order: 0;
1225 margin-bottom: 1rem;
1226 }
1227
1228 .w3eden .media-list {
1229 padding-left: 0;
1230 list-style: none;
1231 }
1232
1233 .w3eden .media-list .media { margin-bottom: 1rem; }
1234 .w3eden .media-list .media:last-child { margin-bottom: 0; }
1235
1236 .w3eden .media img { border-radius: var(--radius); }
1237
1238 .w3eden .media-center { align-items: center; }
1239 .w3eden .media-bottom { align-items: flex-end; }
1240
1241 /* Two-column media grid */
1242 .w3eden .media-grid {
1243 display: grid;
1244 grid-template-columns: auto 1fr;
1245 gap: 1rem;
1246 align-items: start;
1247 }
1248
1249 .w3eden .media-grid--right {
1250 grid-template-columns: 1fr auto;
1251 }
1252
1253 .w3eden .media-grid--right .media-image { order: 1; }
1254
1255 .w3eden .media-grid .media-image img {
1256 display: block;
1257 max-width: 100%;
1258 height: auto;
1259 border-radius: var(--radius);
1260 }
1261
1262 .w3eden .media-grid .media-content { min-width: 0; }
1263
1264 /* ==========================================================================
1265 11. Modals
1266 ========================================================================== */
1267
1268 .w3eden .modal {
1269 position: fixed;
1270 top: 0;
1271 left: 0;
1272 z-index: 1055;
1273 display: none;
1274 width: 100%;
1275 height: 100%;
1276 overflow-x: hidden;
1277 overflow-y: auto;
1278 outline: 0;
1279 }
1280
1281 .w3eden .modal.show { display: block; }
1282
1283 .w3eden .modal-dialog {
1284 position: relative;
1285 width: auto;
1286 margin: 1.75rem auto;
1287 pointer-events: none;
1288 max-width: 500px;
1289 }
1290
1291 .w3eden .modal.fade .modal-dialog {
1292 transition: transform 0.3s ease-out;
1293 transform: translateY(-50px);
1294 }
1295
1296 .w3eden .modal.show .modal-dialog { transform: none; }
1297
1298 .w3eden .modal-dialog-centered {
1299 display: flex;
1300 align-items: center;
1301 min-height: calc(100% - 3.5rem);
1302 }
1303
1304 .w3eden .modal-dialog-scrollable {
1305 height: calc(100% - 3.5rem);
1306 }
1307
1308 .w3eden .modal-dialog-scrollable .modal-content {
1309 max-height: 100%;
1310 overflow: hidden;
1311 }
1312
1313 .w3eden .modal-dialog-scrollable .modal-body {
1314 overflow-y: auto;
1315 }
1316
1317 .w3eden .modal-content {
1318 position: relative;
1319 display: flex;
1320 flex-direction: column;
1321 width: 100%;
1322 pointer-events: auto;
1323 background-color: var(--bg-body);
1324 background-clip: padding-box;
1325 border: 1px solid var(--border-color);
1326 border-radius: var(--radius-lg);
1327 outline: 0;
1328 box-shadow: var(--shadow-lg);
1329 }
1330
1331 .w3eden .wpdm-modal-close{
1332 border: none;
1333 background: none;
1334 padding: 6px;
1335 width: 28px;
1336 height: 28px;
1337 border-radius: 4px;
1338 cursor: pointer;
1339 }
1340 .w3eden .wpdm-modal-close:hover{
1341 background: rgba(var(--color-danger-rgb), 0.1);
1342 }
1343 .w3eden .wpdm-modal-close svg{
1344 width: 16px;
1345 }
1346
1347 .modal-backdrop {
1348 position: fixed;
1349 top: 0;
1350 left: 0;
1351 z-index: 1050;
1352 width: 100vw;
1353 height: 100vh;
1354 background-color: rgba(0, 0, 0, 0.5);
1355 }
1356
1357 .w3eden .modal-backdrop.fade { opacity: 0; }
1358 .w3eden .modal-backdrop.show { opacity: 1; }
1359
1360 .w3eden .modal-header {
1361 display: flex;
1362 flex-shrink: 0;
1363 align-items: center;
1364 justify-content: space-between;
1365 padding: 1rem 1.5rem;
1366 border-bottom: 1px solid var(--border-color);
1367 border-top-left-radius: calc(var(--radius-lg) - 1px);
1368 border-top-right-radius: calc(var(--radius-lg) - 1px);
1369 }
1370
1371 .w3eden .modal-title {
1372 margin-bottom: 0;
1373 line-height: 1.5;
1374 font-weight: 600;
1375 font-size: 1.125rem;
1376 }
1377
1378 .w3eden .modal-body {
1379 position: relative;
1380 flex: 1 1 auto;
1381 padding: 1.5rem;
1382 }
1383
1384 .w3eden .modal-footer {
1385 display: flex;
1386 flex-wrap: wrap;
1387 flex-shrink: 0;
1388 align-items: center;
1389 justify-content: flex-end;
1390 padding: 1rem 1.5rem;
1391 border-top: 1px solid var(--border-color);
1392 border-bottom-right-radius: calc(var(--radius-lg) - 1px);
1393 border-bottom-left-radius: calc(var(--radius-lg) - 1px);
1394 gap: 0.5rem;
1395 }
1396
1397 /* Close button */
1398 .w3eden .btn-close {
1399 box-sizing: content-box;
1400 width: 1em;
1401 height: 1em;
1402 padding: 0.25em 0.25em;
1403 color: var(--text-primary);
1404 background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
1405 border: 0;
1406 border-radius: 0.375rem;
1407 opacity: 0.5;
1408 cursor: pointer;
1409 transition: opacity var(--transition);
1410 }
1411
1412 .w3eden .btn-close:hover { opacity: 1; }
1413
1414 /* Modal sizes */
1415 .w3eden .modal-sm { max-width: 300px; }
1416 .w3eden .modal-lg { max-width: 800px; }
1417 .w3eden .modal-xl { max-width: 1140px; }
1418
1419 .w3eden .modal-fullscreen {
1420 width: 100vw;
1421 max-width: none;
1422 height: 100%;
1423 margin: 0;
1424 }
1425
1426 .w3eden .modal-fullscreen .modal-content {
1427 height: 100%;
1428 border: 0;
1429 border-radius: 0;
1430 }
1431
1432 /* ==========================================================================
1433 12. Pagination
1434 ========================================================================== */
1435
1436 .w3eden .pagination {
1437 display: flex;
1438 padding-left: 0;
1439 list-style: none;
1440 gap: 0.25rem;
1441 }
1442
1443 .w3eden .page-link {
1444 position: relative;
1445 display: flex;
1446 align-items: center;
1447 justify-content: center;
1448 padding: 0.5rem 0.875rem;
1449 color: var(--text-primary);
1450 text-decoration: none;
1451 background-color: var(--bg-body);
1452 border: 1px solid var(--border-color);
1453 border-radius: var(--radius);
1454 transition: color var(--transition), background-color var(--transition), border-color var(--transition);
1455 min-width: 38px;
1456 }
1457
1458 .w3eden .page-link:hover {
1459 z-index: 2;
1460 color: var(--color-primary);
1461 background-color: var(--bg-secondary);
1462 border-color: var(--border-color);
1463 }
1464
1465 .w3eden .page-link:focus {
1466 z-index: 3;
1467 color: var(--color-primary);
1468 background-color: var(--bg-secondary);
1469 outline: 0;
1470 box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
1471 }
1472
1473 .w3eden .page-item.active .page-link {
1474 z-index: 3;
1475 color: #fff;
1476 background-color: var(--color-primary);
1477 border-color: var(--color-primary);
1478 }
1479
1480 .w3eden .page-item.disabled .page-link {
1481 color: var(--text-muted);
1482 pointer-events: none;
1483 background-color: var(--bg-body);
1484 border-color: var(--border-color);
1485 }
1486
1487 /* Pagination sizes */
1488 .w3eden .pagination-sm .page-link {
1489 padding: 0.375rem 0.625rem;
1490 font-size: 0.8125rem;
1491 min-width: 32px;
1492 }
1493
1494 .w3eden .pagination-lg .page-link {
1495 padding: 0.625rem 1rem;
1496 font-size: 1.0625rem;
1497 min-width: 44px;
1498 }
1499
1500 /* WPDM Pagination (page-numbers style) */
1501 .w3eden .wpdm-pagination {
1502 justify-content: center;
1503 flex-wrap: wrap;
1504 }
1505
1506 .w3eden .pagination-centered {
1507 justify-content: center;
1508 }
1509
1510 .w3eden .pagination li {
1511 list-style: none;
1512 }
1513
1514 .w3eden .pagination .page-numbers {
1515 display: flex;
1516 align-items: center;
1517 justify-content: center;
1518 padding: 0.5rem 0.875rem;
1519 min-width: 38px;
1520 min-height: 38px;
1521 color: var(--text-primary);
1522 text-decoration: none;
1523 background-color: var(--bg-body);
1524 border: 1px solid var(--border-color);
1525 border-radius: var(--radius);
1526 transition: color var(--transition), background-color var(--transition), border-color var(--transition);
1527 font-size: 0.9375rem;
1528 font-weight: 500;
1529 }
1530
1531 .w3eden .pagination .page-numbers:hover {
1532 color: var(--color-primary);
1533 background-color: var(--bg-secondary);
1534 border-color: var(--border-color);
1535 text-decoration: none;
1536 }
1537
1538 .w3eden .pagination .page-numbers.current,
1539 .w3eden .pagination .page-numbers.current-page {
1540 color: #fff;
1541 background-color: var(--color-primary);
1542 border-color: var(--color-primary);
1543 }
1544
1545 .w3eden .pagination .page-numbers.dots {
1546 border: none;
1547 background: transparent;
1548 color: var(--text-muted);
1549 pointer-events: none;
1550 }
1551
1552 .w3eden .pagination .page-numbers.prev,
1553 .w3eden .pagination .page-numbers.next {
1554 padding: 0.5rem;
1555 }
1556
1557 /* ==========================================================================
1558 13. Tables
1559 ========================================================================== */
1560
1561 .w3eden .table {
1562 width: 100%;
1563 margin-bottom: 1rem;
1564 color: var(--text-primary);
1565 vertical-align: top;
1566 border-color: var(--border-color);
1567 }
1568
1569 .w3eden .table > :not(caption) > * > * {
1570 padding: 0.75rem;
1571 background-color: var(--bg-body);
1572 border-bottom-width: 1px;
1573 box-shadow: inset 0 0 0 9999px transparent;
1574 }
1575
1576 .w3eden .table > tbody { vertical-align: inherit; }
1577 .w3eden .table > thead { vertical-align: bottom; }
1578
1579 .w3eden .table > thead > * > * {
1580 font-weight: 600;
1581 background-color: var(--bg-secondary);
1582 }
1583
1584 /* Bordered table */
1585 .w3eden .table-bordered { border: 1px solid var(--border-color); }
1586 .w3eden .table-bordered > :not(caption) > * { border-width: 1px 0; }
1587 .w3eden .table-bordered > :not(caption) > * > * { border-width: 0 1px; }
1588
1589 /* Borderless table */
1590 .w3eden .table-borderless > :not(caption) > * > * { border-bottom-width: 0; }
1591 .w3eden .table-borderless > :not(:first-child) { border-top-width: 0; }
1592
1593 /* Striped table */
1594 .w3eden .table-striped > tbody > tr:nth-of-type(odd) > * { background-color: rgba(0, 0, 0, 0.02); }
1595
1596 /* Hover table */
1597 .w3eden .table-hover > tbody > tr:hover > * { background-color: var(--bg-secondary); }
1598
1599 /* Small table */
1600 .w3eden .table-sm > :not(caption) > * > * { padding: 0.5rem; }
1601
1602 /* Responsive table */
1603 .w3eden .table-responsive {
1604 overflow-x: auto;
1605 -webkit-overflow-scrolling: touch;
1606 }
1607
1608 /* ==========================================================================
1609 14. Progress Bars
1610 ========================================================================== */
1611
1612 .w3eden .progress {
1613 display: flex;
1614 height: 1rem;
1615 overflow: hidden;
1616 font-size: 0.75rem;
1617 background-color: var(--bg-tertiary);
1618 border-radius: var(--radius-full);
1619 }
1620
1621 .w3eden .progress-bar {
1622 display: flex;
1623 flex-direction: column;
1624 justify-content: center;
1625 overflow: hidden;
1626 color: #fff;
1627 text-align: center;
1628 white-space: nowrap;
1629 background-color: var(--color-primary);
1630 transition: width 0.6s ease;
1631 }
1632
1633 .w3eden .progress-bar-striped {
1634 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1635 background-size: 1rem 1rem;
1636 }
1637
1638 .w3eden .progress-bar-animated {
1639 animation: progress-bar-stripes 1s linear infinite;
1640 }
1641
1642 @keyframes progress-bar-stripes {
1643 0% { background-position-x: 1rem; }
1644 }
1645
1646 .w3eden .progress-sm { height: 0.5rem; }
1647 .w3eden .progress-lg { height: 1.5rem; }
1648
1649 /* ==========================================================================
1650 15. Navigation & Tabs
1651 ========================================================================== */
1652
1653 .w3eden .nav {
1654 display: flex;
1655 flex-wrap: wrap;
1656 padding-left: 0;
1657 margin-bottom: 0;
1658 list-style: none;
1659 }
1660
1661 .w3eden .nav-link {
1662 display: block;
1663 padding: 0.5rem 1rem;
1664 color: var(--text-secondary);
1665 text-decoration: none;
1666 transition: color var(--transition), background-color var(--transition), border-color var(--transition);
1667 }
1668
1669 .w3eden .nav-link:hover,
1670 .w3eden .nav-link:focus {
1671 color: var(--color-primary);
1672 }
1673
1674 .w3eden .nav-link.disabled {
1675 color: var(--text-muted);
1676 pointer-events: none;
1677 cursor: default;
1678 }
1679
1680 /* Tabs */
1681 .w3eden .nav-tabs { border-bottom: 1px solid var(--border-color); }
1682
1683 .w3eden .nav-tabs .nav-link {
1684 margin-bottom: -1px;
1685 background: none;
1686 border: 1px solid transparent;
1687 border-top-left-radius: var(--radius);
1688 border-top-right-radius: var(--radius);
1689 }
1690
1691 .w3eden .nav-tabs .nav-link:hover,
1692 .w3eden .nav-tabs .nav-link:focus {
1693 border-color: var(--bg-tertiary) var(--bg-tertiary) var(--border-color);
1694 isolation: isolate;
1695 }
1696
1697 .w3eden .nav-tabs .nav-link.active,
1698 .w3eden .nav-tabs .nav-item.show .nav-link {
1699 color: var(--text-primary);
1700 background-color: var(--bg-body);
1701 border-color: var(--border-color) var(--border-color) var(--bg-body);
1702 }
1703
1704 /* Pills */
1705 .w3eden .nav-pills .nav-link {
1706 background: none;
1707 border: 0;
1708 border-radius: var(--radius);
1709 }
1710
1711 .w3eden .nav-pills .nav-link.active,
1712 .w3eden .nav-pills .show > .nav-link {
1713 color: #fff;
1714 background-color: var(--color-primary);
1715 }
1716
1717 /* Fill and justify */
1718 .w3eden .nav-fill > .nav-link,
1719 .w3eden .nav-fill .nav-item {
1720 flex: 1 1 auto;
1721 text-align: center;
1722 }
1723
1724 .w3eden .nav-justified > .nav-link,
1725 .w3eden .nav-justified .nav-item {
1726 flex-basis: 0;
1727 flex-grow: 1;
1728 text-align: center;
1729 }
1730
1731 /* Tab content */
1732 .w3eden .tab-content > .tab-pane { display: none; }
1733 .w3eden .tab-content > .active { display: block; }
1734
1735 /* ==========================================================================
1736 16. Utilities
1737 ========================================================================== */
1738
1739 /* Display */
1740 .w3eden .d-none { display: none !important; }
1741 .w3eden .d-inline { display: inline !important; }
1742 .w3eden .d-inline-block { display: inline-block !important; }
1743 .w3eden .d-block { display: block !important; }
1744 .w3eden .d-flex { display: flex !important; }
1745 .w3eden .d-inline-flex { display: inline-flex !important; }
1746 .w3eden .d-grid { display: grid !important; }
1747
1748 /* Flexbox */
1749 .w3eden .flex-row { flex-direction: row !important; }
1750 .w3eden .flex-column { flex-direction: column !important; }
1751 .w3eden .flex-row-reverse { flex-direction: row-reverse !important; }
1752 .w3eden .flex-column-reverse { flex-direction: column-reverse !important; }
1753 .w3eden .flex-wrap { flex-wrap: wrap !important; }
1754 .w3eden .flex-nowrap { flex-wrap: nowrap !important; }
1755 .w3eden .flex-grow-0 { flex-grow: 0 !important; }
1756 .w3eden .flex-grow-1 { flex-grow: 1 !important; }
1757 .w3eden .flex-shrink-0 { flex-shrink: 0 !important; }
1758 .w3eden .flex-shrink-1 { flex-shrink: 1 !important; }
1759
1760 /* Justify content */
1761 .w3eden .justify-content-start { justify-content: flex-start !important; }
1762 .w3eden .justify-content-end { justify-content: flex-end !important; }
1763 .w3eden .justify-content-center { justify-content: center !important; }
1764 .w3eden .justify-content-between { justify-content: space-between !important; }
1765 .w3eden .justify-content-around { justify-content: space-around !important; }
1766 .w3eden .justify-content-evenly { justify-content: space-evenly !important; }
1767
1768 /* Align items */
1769 .w3eden .align-items-start { align-items: flex-start !important; }
1770 .w3eden .align-items-end { align-items: flex-end !important; }
1771 .w3eden .align-items-center { align-items: center !important; }
1772 .w3eden .align-items-baseline { align-items: baseline !important; }
1773 .w3eden .align-items-stretch { align-items: stretch !important; }
1774
1775 /* Align self */
1776 .w3eden .align-self-auto { align-self: auto !important; }
1777 .w3eden .align-self-start { align-self: flex-start !important; }
1778 .w3eden .align-self-end { align-self: flex-end !important; }
1779 .w3eden .align-self-center { align-self: center !important; }
1780 .w3eden .align-self-baseline { align-self: baseline !important; }
1781 .w3eden .align-self-stretch { align-self: stretch !important; }
1782
1783 /* Gap */
1784 .w3eden .gap-0 { gap: 0 !important; }
1785 .w3eden .gap-1 { gap: 0.25rem !important; }
1786 .w3eden .gap-2 { gap: 0.5rem !important; }
1787 .w3eden .gap-3 { gap: 1rem !important; }
1788 .w3eden .gap-4 { gap: 1.5rem !important; }
1789 .w3eden .gap-5 { gap: 3rem !important; }
1790
1791 /* Margin */
1792 .w3eden .m-0 { margin: 0 !important; }
1793 .w3eden .m-1 { margin: 0.25rem !important; }
1794 .w3eden .m-2 { margin: 0.5rem !important; }
1795 .w3eden .m-3 { margin: 1rem !important; }
1796 .w3eden .m-4 { margin: 1.5rem !important; }
1797 .w3eden .m-5 { margin: 3rem !important; }
1798 .w3eden .m-auto { margin: auto !important; }
1799
1800 .w3eden .mt-0 { margin-top: 0 !important; }
1801 .w3eden .mt-1 { margin-top: 0.25rem !important; }
1802 .w3eden .mt-2 { margin-top: 0.5rem !important; }
1803 .w3eden .mt-3 { margin-top: 1rem !important; }
1804 .w3eden .mt-4 { margin-top: 1.5rem !important; }
1805 .w3eden .mt-5 { margin-top: 3rem !important; }
1806 .w3eden .mt-auto { margin-top: auto !important; }
1807
1808 .w3eden .mb-0 { margin-bottom: 0 !important; }
1809 .w3eden .mb-1 { margin-bottom: 0.25rem !important; }
1810 .w3eden .mb-2 { margin-bottom: 0.5rem !important; }
1811 .w3eden .mb-3 { margin-bottom: 1rem !important; }
1812 .w3eden .mb-4 { margin-bottom: 1.5rem !important; }
1813 .w3eden .mb-5 { margin-bottom: 3rem !important; }
1814 .w3eden .mb-auto { margin-bottom: auto !important; }
1815
1816 .w3eden .ms-0 { margin-left: 0 !important; }
1817 .w3eden .ms-1 { margin-left: 0.25rem !important; }
1818 .w3eden .ms-2 { margin-left: 0.5rem !important; }
1819 .w3eden .ms-3 { margin-left: 1rem !important; }
1820 .w3eden .ms-4 { margin-left: 1.5rem !important; }
1821 .w3eden .ms-5 { margin-left: 3rem !important; }
1822 .w3eden .ms-auto { margin-left: auto !important; }
1823
1824 .w3eden .me-0 { margin-right: 0 !important; }
1825 .w3eden .me-1 { margin-right: 0.25rem !important; }
1826 .w3eden .me-2 { margin-right: 0.5rem !important; }
1827 .w3eden .me-3 { margin-right: 1rem !important; }
1828 .w3eden .me-4 { margin-right: 1.5rem !important; }
1829 .w3eden .me-5 { margin-right: 3rem !important; }
1830 .w3eden .me-auto { margin-right: auto !important; }
1831
1832 .w3eden .mx-0 { margin-right: 0 !important; margin-left: 0 !important; }
1833 .w3eden .mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; }
1834 .w3eden .mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; }
1835 .w3eden .mx-3 { margin-right: 1rem !important; margin-left: 1rem !important; }
1836 .w3eden .mx-4 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; }
1837 .w3eden .mx-5 { margin-right: 3rem !important; margin-left: 3rem !important; }
1838 .w3eden .mx-auto { margin-right: auto !important; margin-left: auto !important; }
1839
1840 .w3eden .my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
1841 .w3eden .my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; }
1842 .w3eden .my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
1843 .w3eden .my-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
1844 .w3eden .my-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
1845 .w3eden .my-5 { margin-top: 3rem !important; margin-bottom: 3rem !important; }
1846 .w3eden .my-auto { margin-top: auto !important; margin-bottom: auto !important; }
1847
1848 /* Padding */
1849 .w3eden .p-0 { padding: 0 !important; }
1850 .w3eden .p-1 { padding: 0.25rem !important; }
1851 .w3eden .p-2 { padding: 0.5rem !important; }
1852 .w3eden .p-3 { padding: 1rem !important; }
1853 .w3eden .p-4 { padding: 1.5rem !important; }
1854 .w3eden .p-5 { padding: 3rem !important; }
1855
1856 .w3eden .pt-0 { padding-top: 0 !important; }
1857 .w3eden .pt-1 { padding-top: 0.25rem !important; }
1858 .w3eden .pt-2 { padding-top: 0.5rem !important; }
1859 .w3eden .pt-3 { padding-top: 1rem !important; }
1860 .w3eden .pt-4 { padding-top: 1.5rem !important; }
1861 .w3eden .pt-5 { padding-top: 3rem !important; }
1862
1863 .w3eden .pb-0 { padding-bottom: 0 !important; }
1864 .w3eden .pb-1 { padding-bottom: 0.25rem !important; }
1865 .w3eden .pb-2 { padding-bottom: 0.5rem !important; }
1866 .w3eden .pb-3 { padding-bottom: 1rem !important; }
1867 .w3eden .pb-4 { padding-bottom: 1.5rem !important; }
1868 .w3eden .pb-5 { padding-bottom: 3rem !important; }
1869
1870 .w3eden .ps-0 { padding-left: 0 !important; }
1871 .w3eden .ps-1 { padding-left: 0.25rem !important; }
1872 .w3eden .ps-2 { padding-left: 0.5rem !important; }
1873 .w3eden .ps-3 { padding-left: 1rem !important; }
1874 .w3eden .ps-4 { padding-left: 1.5rem !important; }
1875 .w3eden .ps-5 { padding-left: 3rem !important; }
1876
1877 .w3eden .pe-0 { padding-right: 0 !important; }
1878 .w3eden .pe-1 { padding-right: 0.25rem !important; }
1879 .w3eden .pe-2 { padding-right: 0.5rem !important; }
1880 .w3eden .pe-3 { padding-right: 1rem !important; }
1881 .w3eden .pe-4 { padding-right: 1.5rem !important; }
1882 .w3eden .pe-5 { padding-right: 3rem !important; }
1883
1884 .w3eden .px-0 { padding-right: 0 !important; padding-left: 0 !important; }
1885 .w3eden .px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; }
1886 .w3eden .px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; }
1887 .w3eden .px-3 { padding-right: 1rem !important; padding-left: 1rem !important; }
1888 .w3eden .px-4 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; }
1889 .w3eden .px-5 { padding-right: 3rem !important; padding-left: 3rem !important; }
1890
1891 .w3eden .py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
1892 .w3eden .py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
1893 .w3eden .py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
1894 .w3eden .py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
1895 .w3eden .py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
1896 .w3eden .py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; }
1897
1898 /* Width & Height */
1899 .w3eden .w-25 { width: 25% !important; }
1900 .w3eden .w-50 { width: 50% !important; }
1901 .w3eden .w-75 { width: 75% !important; }
1902 .w3eden .w-100 { width: 100% !important; }
1903 .w3eden .w-auto { width: auto !important; }
1904
1905 .w3eden .h-25 { height: 25% !important; }
1906 .w3eden .h-50 { height: 50% !important; }
1907 .w3eden .h-75 { height: 75% !important; }
1908 .w3eden .h-100 { height: 100% !important; }
1909 .w3eden .h-auto { height: auto !important; }
1910
1911 /* Text alignment */
1912 .w3eden .text-start { text-align: left !important; }
1913 .w3eden .text-end { text-align: right !important; }
1914 .w3eden .text-center { text-align: center !important; }
1915
1916 /* Text transform */
1917 .w3eden .text-lowercase { text-transform: lowercase !important; }
1918 .w3eden .text-uppercase { text-transform: uppercase !important; }
1919 .w3eden .text-capitalize { text-transform: capitalize !important; }
1920
1921 /* Font weight */
1922 .w3eden .fw-light { font-weight: 300 !important; }
1923 .w3eden .fw-normal { font-weight: 400 !important; }
1924 .w3eden .fw-medium { font-weight: 500 !important; }
1925 .w3eden .fw-semibold { font-weight: 600 !important; }
1926 .w3eden .fw-bold { font-weight: 700 !important; }
1927
1928 /* Font style */
1929 .w3eden .fst-italic { font-style: italic !important; }
1930 .w3eden .fst-normal { font-style: normal !important; }
1931
1932 /* Text colors */
1933 .w3eden .text-primary { color: var(--color-primary) !important; }
1934 .w3eden .text-secondary { color: var(--clr-sec) !important; }
1935 .w3eden .text-success { color: var(--color-success) !important; }
1936 .w3eden .text-info { color: var(--color-info) !important; }
1937 .w3eden .text-warning { color: var(--color-warning) !important; }
1938 .w3eden .text-danger { color: var(--color-danger) !important; }
1939 .w3eden .text-muted { color: var(--text-muted) !important; }
1940 .w3eden .text-white { color: #fff !important; }
1941 .w3eden .text-dark { color: var(--color-dark) !important; }
1942
1943 /* Background colors */
1944 .w3eden .bg-white { background-color: #fff !important; }
1945 .w3eden .bg-transparent { background-color: transparent !important; }
1946
1947 /* Borders */
1948 .w3eden .border { border: 1px solid var(--border-color) !important; }
1949 .w3eden .border-0 { border: 0 !important; }
1950 .w3eden .border-top { border-top: 1px solid var(--border-color) !important; }
1951 .w3eden .border-top-0 { border-top: 0 !important; }
1952 .w3eden .border-end { border-right: 1px solid var(--border-color) !important; }
1953 .w3eden .border-end-0 { border-right: 0 !important; }
1954 .w3eden .border-bottom { border-bottom: 1px solid var(--border-color) !important; }
1955 .w3eden .border-bottom-0 { border-bottom: 0 !important; }
1956 .w3eden .border-start { border-left: 1px solid var(--border-color) !important; }
1957 .w3eden .border-start-0 { border-left: 0 !important; }
1958
1959 /* Border radius */
1960 .w3eden .rounded { border-radius: var(--radius) !important; }
1961 .w3eden .rounded-0 { border-radius: 0 !important; }
1962 .w3eden .rounded-1 { border-radius: var(--radius-sm) !important; }
1963 .w3eden .rounded-2 { border-radius: var(--radius) !important; }
1964 .w3eden .rounded-3 { border-radius: var(--radius-lg) !important; }
1965 .w3eden .rounded-circle { border-radius: 50% !important; }
1966
1967 /* Shadow */
1968 .w3eden .shadow-none { box-shadow: none !important; }
1969 .w3eden .shadow-sm { box-shadow: var(--shadow-sm) !important; }
1970 .w3eden .shadow { box-shadow: var(--shadow) !important; }
1971 .w3eden .shadow-lg { box-shadow: var(--shadow-lg) !important; }
1972
1973 /* Position */
1974 .w3eden .position-static { position: static !important; }
1975 .w3eden .position-relative { position: relative !important; }
1976 .w3eden .position-absolute { position: absolute !important; }
1977 .w3eden .position-fixed { position: fixed !important; }
1978 .w3eden .position-sticky { position: sticky !important; }
1979
1980 /* Visibility */
1981 .w3eden .visible { visibility: visible !important; }
1982 .w3eden .invisible { visibility: hidden !important; }
1983
1984 /* Overflow */
1985 .w3eden .overflow-auto { overflow: auto !important; }
1986 .w3eden .overflow-hidden { overflow: hidden !important; }
1987 .w3eden .overflow-visible { overflow: visible !important; }
1988 .w3eden .overflow-scroll { overflow: scroll !important; }
1989
1990 /* Clearfix */
1991 .w3eden .clearfix::after {
1992 display: block;
1993 clear: both;
1994 content: "";
1995 }
1996
1997 /* Float (legacy) */
1998 .w3eden .pull-left, .w3eden .float-start { float: left !important; }
1999 .w3eden .pull-right, .w3eden .float-end { float: right !important; }
2000 .w3eden .float-none { float: none !important; }
2001
2002 /* ==========================================================================
2003 17. WPDM Specific Components
2004 ========================================================================== */
2005
2006 /* Package info list */
2007 .w3eden .wpdm-package-info {
2008 list-style: none;
2009 padding: 0;
2010 margin: 0;
2011 }
2012
2013 .w3eden .wpdm-package-info li {
2014 display: flex;
2015 align-items: center;
2016 gap: 0.5rem;
2017 padding: 0.5rem 0;
2018 border-bottom: 1px solid var(--border-color);
2019 }
2020
2021 .w3eden .wpdm-package-info li:last-child { border-bottom: none; }
2022
2023 .w3eden .wpdm-package-info li strong {
2024 color: var(--text-secondary);
2025 min-width: 100px;
2026 }
2027
2028 /* Social lock buttons */
2029 .w3eden .wpdm-social-lock {
2030 margin: 0 3px;
2031 text-transform: none;
2032 }
2033
2034 .w3eden .wpdm-social-lock .fa { margin-right: 5px; }
2035
2036 .w3eden .wpdm-social-lock.btn {
2037 border-radius: var(--radius-sm);
2038 margin-bottom: 5px;
2039 }
2040
2041 /* Social platform colors */
2042 .w3eden .btn-facebook { background-color: #1877f2; border-color: #1877f2; color: #fff; }
2043 .w3eden .btn-facebook:hover { background-color: #166fe5; border-color: #166fe5; color: #fff; }
2044
2045 .w3eden .btn-twitter { background-color: #1da1f2; border-color: #1da1f2; color: #fff; }
2046 .w3eden .btn-twitter:hover { background-color: #0c85d0; border-color: #0c85d0; color: #fff; }
2047
2048 .w3eden .btn-linkedin { background-color: #0a66c2; border-color: #0a66c2; color: #fff; }
2049 .w3eden .btn-linkedin:hover { background-color: #004182; border-color: #004182; color: #fff; }
2050
2051 /* Changelog styles */
2052 .w3eden .wpdm-changelog {
2053 --wpdm-cl-primary: var(--color-primary);
2054 --wpdm-cl-bg: var(--bg-body);
2055 --wpdm-cl-border: var(--border-color);
2056 --wpdm-cl-text: var(--text-primary);
2057 --wpdm-cl-muted: var(--text-muted);
2058 position: relative;
2059 padding-left: 24px;
2060 }
2061
2062 .w3eden .wpdm-changelog__timeline {
2063 position: absolute;
2064 left: 6px;
2065 top: 0;
2066 bottom: 0;
2067 width: 2px;
2068 background: var(--wpdm-cl-border);
2069 }
2070
2071 .w3eden .wpdm-changelog__entry {
2072 position: relative;
2073 margin-bottom: 16px;
2074 }
2075
2076 .w3eden .wpdm-changelog__entry:last-child { margin-bottom: 0; }
2077
2078 .w3eden .wpdm-changelog__dot {
2079 position: absolute;
2080 left: -24px;
2081 top: 4px;
2082 width: 14px;
2083 height: 14px;
2084 background: var(--wpdm-cl-bg);
2085 border: 2px solid var(--wpdm-cl-border);
2086 border-radius: 50%;
2087 z-index: 1;
2088 }
2089
2090 .w3eden .wpdm-changelog__entry--latest .wpdm-changelog__dot {
2091 background: var(--color-success);
2092 border-color: var(--color-success);
2093 animation: wpdm-changelog-pulse 2s infinite;
2094 }
2095
2096 @keyframes wpdm-changelog-pulse {
2097 0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); }
2098 50% { box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); }
2099 }
2100
2101 .w3eden .wpdm-changelog__header {
2102 display: flex;
2103 align-items: center;
2104 gap: 8px;
2105 cursor: pointer;
2106 padding: 8px 12px;
2107 background: var(--bg-secondary);
2108 border-radius: var(--radius);
2109 transition: background-color var(--transition);
2110 }
2111
2112 .w3eden .wpdm-changelog__header:hover { background: var(--bg-tertiary); }
2113
2114 .w3eden .wpdm-changelog__version {
2115 font-weight: 600;
2116 color: var(--wpdm-cl-text);
2117 }
2118
2119 .w3eden .wpdm-changelog__date {
2120 font-size: 0.8125rem;
2121 color: var(--wpdm-cl-muted);
2122 }
2123
2124 .w3eden .wpdm-changelog__badge {
2125 font-size: 0.6875rem;
2126 padding: 2px 6px;
2127 background: var(--color-success-light);
2128 color: #065f46;
2129 border-radius: var(--radius-full);
2130 font-weight: 600;
2131 text-transform: uppercase;
2132 }
2133
2134 .w3eden .wpdm-changelog__toggle {
2135 margin-left: auto;
2136 width: 20px;
2137 height: 20px;
2138 color: var(--wpdm-cl-muted);
2139 transition: transform var(--transition);
2140 }
2141
2142 .w3eden .wpdm-changelog__entry.is-expanded .wpdm-changelog__toggle {
2143 transform: rotate(180deg);
2144 }
2145
2146 .w3eden .wpdm-changelog__content {
2147 display: none;
2148 padding: 12px 16px;
2149 margin-top: 8px;
2150 background: var(--wpdm-cl-bg);
2151 border: 1px solid var(--wpdm-cl-border);
2152 border-radius: var(--radius);
2153 }
2154
2155 .w3eden .wpdm-changelog__entry.is-expanded .wpdm-changelog__content {
2156 display: block;
2157 }
2158
2159 .w3eden .wpdm-changelog__content ul {
2160 margin: 0;
2161 padding-left: 20px;
2162 }
2163
2164 .w3eden .wpdm-changelog__content li { margin-bottom: 4px; }
2165 .w3eden .wpdm-changelog__content li:last-child { margin-bottom: 0; }
2166
2167 /* Filter toolbar */
2168 .w3eden .wpdm-filter-toolbar { margin-bottom: 1.5rem; }
2169
2170 .w3eden .wpdm-filter-toolbar .card-header {
2171 display: flex;
2172 align-items: center;
2173 gap: 1rem;
2174 }
2175
2176 .w3eden .wpdm-filter-toolbar__icon { flex-shrink: 0; }
2177
2178 .w3eden .wpdm-filter-toolbar__icon img {
2179 display: block;
2180 border-radius: var(--radius);
2181 }
2182
2183 .w3eden .wpdm-filter-toolbar__title {
2184 margin: 0;
2185 font-size: 1.125rem;
2186 font-weight: 600;
2187 }
2188
2189 .w3eden .wpdm-filter-toolbar__desc {
2190 margin: 0.25rem 0 0;
2191 color: var(--text-muted);
2192 font-size: 0.875rem;
2193 }
2194
2195 .w3eden .wpdm-filter-toolbar__search {
2196 position: relative;
2197 }
2198
2199 .w3eden .wpdm-filter-toolbar__search-icon {
2200 position: absolute;
2201 left: 12px;
2202 top: 50%;
2203 transform: translateY(-50%);
2204 width: 18px;
2205 height: 18px;
2206 color: var(--text-muted);
2207 pointer-events: none;
2208 }
2209
2210 .w3eden .wpdm-filter-toolbar__search input { padding-left: 40px; }
2211
2212 /* Header row (icon + title) inside the filter toolbar */
2213 .w3eden .wpdm-filter-toolbar .card-body {
2214 display: flex;
2215 align-items: center;
2216 gap: 1rem;
2217 }
2218
2219 /* Controls row (search + sort selects + button) */
2220 .w3eden .wpdm-filter-toolbar__controls { flex-wrap: wrap; width: 100%; }
2221
2222 /* Tablet & below: let the controls wrap onto multiple rows */
2223 @media (max-width: 767.98px) {
2224 .w3eden .wpdm-filter-toolbar__controls .wpdm-filter-toolbar__search {
2225 flex: 1 1 100%;
2226 }
2227 .w3eden .wpdm-filter-toolbar__controls select.form-control {
2228 flex: 1 1 calc(50% - 0.25rem);
2229 width: auto !important;
2230 }
2231 }
2232
2233 /* Phones: stack icon/title and make every control full width */
2234 @media (max-width: 575.98px) {
2235 .w3eden .wpdm-filter-toolbar .card-body {
2236 flex-direction: column;
2237 align-items: flex-start;
2238 text-align: left;
2239 }
2240 .w3eden .wpdm-filter-toolbar__controls select.form-control,
2241 .w3eden .wpdm-filter-toolbar__controls .btn {
2242 flex: 1 1 100%;
2243 width: 100% !important;
2244 }
2245 .w3eden .wpdm-filter-toolbar__controls .btn {
2246 justify-content: center;
2247 }
2248 }
2249
2250 /* File List Component */
2251 .w3eden .wpdm-filelist-container {
2252 margin: 1rem 0;
2253 }
2254
2255 .w3eden .wpdm-filelist-toolbar {
2256 display: flex;
2257 align-items: center;
2258 justify-content: space-between;
2259 gap: 1rem;
2260 padding: 0.75rem 1rem;
2261 background: var(--bg-secondary);
2262 border: 1px solid var(--border-color);
2263 border-radius: var(--radius);
2264 margin-bottom: 1rem;
2265 }
2266
2267 .w3eden .wpdm-filelist-toolbar__left {
2268 display: flex;
2269 align-items: center;
2270 gap: 0.5rem;
2271 }
2272
2273 .w3eden .wpdm-filelist-toolbar__right {
2274 display: flex;
2275 align-items: center;
2276 gap: 0.75rem;
2277 }
2278
2279 .w3eden .wpdm-filelist-count {
2280 font-size: 0.875rem;
2281 color: var(--text-muted);
2282 font-weight: 500;
2283 }
2284
2285 .w3eden .wpdm-filelist-search {
2286 position: relative;
2287 display: flex;
2288 align-items: center;
2289 }
2290
2291 .w3eden .wpdm-filelist-search__icon {
2292 position: absolute;
2293 left: 10px;
2294 color: var(--text-muted);
2295 pointer-events: none;
2296 }
2297
2298 .w3eden .wpdm-filelist-search__input {
2299 padding: 0.5rem 0.75rem 0.5rem 2.25rem;
2300 font-size: 0.875rem;
2301 border: 1px solid var(--border-color);
2302 border-radius: var(--radius);
2303 background: var(--bg-body);
2304 color: var(--text-primary);
2305 width: 180px;
2306 transition: border-color var(--transition), box-shadow var(--transition), width var(--transition);
2307 }
2308
2309 .w3eden .wpdm-filelist-search__input:focus {
2310 outline: none;
2311 border-color: var(--color-primary);
2312 box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
2313 width: 220px;
2314 }
2315
2316 .w3eden .wpdm-filelist-search__input::placeholder {
2317 color: var(--text-muted);
2318 }
2319
2320 .w3eden .wpdm-filelist-toggle {
2321 display: flex;
2322 gap: 2px;
2323 background: var(--bg-tertiary);
2324 padding: 3px;
2325 border-radius: var(--radius);
2326 }
2327
2328 .w3eden .wpdm-filelist-toggle__btn {
2329 display: flex;
2330 align-items: center;
2331 justify-content: center;
2332 width: 32px;
2333 height: 32px;
2334 padding: 0;
2335 border: none;
2336 background: transparent;
2337 color: var(--text-muted);
2338 border-radius: calc(var(--radius) - 2px);
2339 cursor: pointer;
2340 transition: all var(--transition);
2341 }
2342
2343 .w3eden .wpdm-filelist-toggle__btn:hover {
2344 color: var(--text-primary);
2345 background: var(--bg-body);
2346 }
2347
2348 .w3eden .wpdm-filelist-toggle__btn.active {
2349 color: var(--color-primary);
2350 background: var(--bg-body);
2351 box-shadow: var(--shadow-sm);
2352 }
2353
2354 /* File List Grid */
2355 .w3eden .wpdm-filelist-grid {
2356 display: grid;
2357 grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
2358 gap: 1rem;
2359 }
2360
2361 .w3eden .wpdm-filelist-grid--list {
2362 grid-template-columns: 1fr;
2363 }
2364
2365 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item {
2366 flex-direction: row;
2367 align-items: center;
2368 text-align: left;
2369 padding: 0.75rem 1rem;
2370 max-width: none;
2371 }
2372
2373 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__icon,
2374 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__thumb {
2375 width: 40px;
2376 height: 40px;
2377 flex-shrink: 0;
2378 }
2379
2380 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__info {
2381 flex: 1;
2382 min-width: 0;
2383 }
2384
2385 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__meta {
2386 justify-content: flex-start;
2387 }
2388
2389 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__actions {
2390 flex-shrink: 0;
2391 }
2392
2393 /* File List Item - Grid Card */
2394 .w3eden .wpdm-filelist-item {
2395 display: flex;
2396 flex-direction: column;
2397 align-items: center;
2398 text-align: center;
2399 gap: 0.75rem;
2400 padding: 1.25rem 1rem;
2401 width: 100%;
2402 background: var(--bg-body);
2403 border: 1px solid var(--border-color);
2404 border-radius: var(--radius);
2405 overflow: hidden;
2406 transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
2407 }
2408
2409 .w3eden .wpdm-filelist-item:hover {
2410 border-color: var(--color-primary);
2411 box-shadow: var(--shadow-md);
2412 transform: translateY(-2px);
2413 }
2414
2415 .w3eden .wpdm-filelist-item__icon {
2416 display: flex;
2417 align-items: center;
2418 justify-content: center;
2419 width: 56px;
2420 height: 56px;
2421 background: var(--bg-secondary);
2422 border-radius: var(--radius-lg);
2423 color: var(--text-muted);
2424 }
2425
2426 .w3eden .wpdm-filelist-item__icon svg {
2427 width: 28px;
2428 height: 28px;
2429 }
2430
2431 .w3eden .wpdm-filelist-item__icon--pdf { color: #dc2626; background: #fef2f2; }
2432 .w3eden .wpdm-filelist-item__icon--doc { color: #2563eb; background: #eff6ff; }
2433 .w3eden .wpdm-filelist-item__icon--xls { color: #16a34a; background: #f0fdf4; }
2434 .w3eden .wpdm-filelist-item__icon--ppt { color: #ea580c; background: #fff7ed; }
2435 .w3eden .wpdm-filelist-item__icon--zip { color: #7c3aed; background: #f5f3ff; }
2436 .w3eden .wpdm-filelist-item__icon--image { color: #0891b2; background: #ecfeff; }
2437 .w3eden .wpdm-filelist-item__icon--video { color: #db2777; background: #fdf2f8; }
2438 .w3eden .wpdm-filelist-item__icon--audio { color: #9333ea; background: #faf5ff; }
2439
2440 .w3eden .wpdm-filelist-item__thumb {
2441 width: 48px;
2442 height: 48px;
2443 border-radius: var(--radius);
2444 overflow: hidden;
2445 flex-shrink: 0;
2446 }
2447
2448 .w3eden .wpdm-filelist-item__thumb img {
2449 width: 100%;
2450 height: 100%;
2451 object-fit: cover;
2452 }
2453
2454 .w3eden .wpdm-filelist-item__info {
2455 flex: 1;
2456 min-width: 0;
2457 width: 100%;
2458 overflow: hidden;
2459 }
2460
2461 .w3eden .wpdm-filelist-item__title {
2462 font-weight: 600;
2463 font-size: 14px;
2464 color: var(--text-primary);
2465 margin-bottom: 0.25rem;
2466 overflow: hidden;
2467 text-overflow: ellipsis;
2468 white-space: nowrap;
2469 max-width: 100%;
2470 }
2471
2472 .w3eden .wpdm-filelist-item__meta {
2473 display: flex;
2474 flex-wrap: wrap;
2475 justify-content: center;
2476 gap: 0.5rem;
2477 font-size: 0.8125rem;
2478 color: var(--text-muted);
2479 }
2480
2481 .w3eden .wpdm-filelist-item__meta span {
2482 display: inline-flex;
2483 align-items: center;
2484 gap: 0.25rem;
2485 }
2486
2487 .w3eden .wpdm-filelist-item__meta span:not(:last-child)::after {
2488 content: '\00B7';
2489 margin-left: 0.5rem;
2490 color: var(--border-color);
2491 }
2492
2493 .w3eden .wpdm-filelist-item__version {
2494 font-weight: 500;
2495 color: var(--color-primary);
2496 }
2497
2498 .w3eden .wpdm-filelist-item__actions {
2499 display: flex;
2500 align-items: center;
2501 gap: 0.5rem;
2502 flex-wrap: nowrap;
2503 }
2504
2505 .w3eden .wpdm-filelist-item__actions .btn {
2506 flex-shrink: 0;
2507 }
2508
2509 .w3eden .wpdm-filelist-item__custom-actions {
2510 display: flex;
2511 align-items: center;
2512 gap: 0.5rem;
2513 }
2514
2515 /* File list hidden state for search */
2516 .w3eden .wpdm-filelist-item.wpdm-filelist-hidden {
2517 display: none;
2518 }
2519
2520 /* File list no results message */
2521 .w3eden .wpdm-filelist-no-results {
2522 grid-column: 1 / -1;
2523 padding: 2rem;
2524 text-align: center;
2525 color: var(--text-muted);
2526 font-size: 0.875rem;
2527 }
2528
2529 /* Responsive: Tablet */
2530 @media (max-width: 768px) {
2531 .w3eden .wpdm-filelist-grid {
2532 grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
2533 }
2534
2535 .w3eden .wpdm-filelist-grid--list {
2536 grid-template-columns: 1fr;
2537 }
2538 }
2539
2540 /* Responsive: Mobile */
2541 @media (max-width: 575px) {
2542 .w3eden .wpdm-filelist-toolbar {
2543 flex-direction: column;
2544 align-items: stretch;
2545 gap: 0.75rem;
2546 }
2547
2548 .w3eden .wpdm-filelist-toolbar__left,
2549 .w3eden .wpdm-filelist-toolbar__right {
2550 justify-content: space-between;
2551 }
2552
2553 .w3eden .wpdm-filelist-search__input {
2554 width: 100%;
2555 }
2556
2557 .w3eden .wpdm-filelist-search__input:focus {
2558 width: 100%;
2559 }
2560
2561 .w3eden .wpdm-filelist-grid {
2562 grid-template-columns: repeat(2, 1fr);
2563 gap: 0.75rem;
2564 }
2565
2566 .w3eden .wpdm-filelist-grid--list {
2567 grid-template-columns: 1fr;
2568 }
2569
2570 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item {
2571 flex-wrap: wrap;
2572 padding: 0.75rem;
2573 }
2574
2575 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__actions {
2576 width: 100%;
2577 padding-top: 0.625rem;
2578 margin-top: 0.375rem;
2579 border-top: 1px solid var(--border-color);
2580 justify-content: flex-end;
2581 }
2582
2583 .w3eden .wpdm-filelist-item {
2584 max-width: none;
2585 padding: 1rem 0.75rem;
2586 }
2587
2588 .w3eden .wpdm-filelist-item__icon {
2589 width: 48px;
2590 height: 48px;
2591 }
2592
2593 .w3eden .wpdm-filelist-item__icon svg {
2594 width: 24px;
2595 height: 24px;
2596 }
2597
2598 .w3eden .wpdm-filelist-item__title {
2599 font-size: 0.8125rem;
2600 }
2601
2602 .w3eden .wpdm-filelist-item__meta {
2603 font-size: 0.75rem;
2604 }
2605
2606 .w3eden .wpdm-filelist-item__actions .btn {
2607 padding: 0.25rem 0.5rem;
2608 font-size: 0.75rem;
2609 min-height: 28px;
2610 }
2611 }
2612
2613 /* Responsive: Small Mobile */
2614 @media (max-width: 400px) {
2615 .w3eden .wpdm-filelist-grid {
2616 grid-template-columns: 1fr;
2617 }
2618
2619 .w3eden .wpdm-filelist-item {
2620 flex-direction: row;
2621 text-align: left;
2622 align-items: center;
2623 max-width: none;
2624 }
2625
2626 .w3eden .wpdm-filelist-item__icon,
2627 .w3eden .wpdm-filelist-item__thumb {
2628 width: 40px;
2629 height: 40px;
2630 flex-shrink: 0;
2631 }
2632
2633 .w3eden .wpdm-filelist-item__info {
2634 flex: 1;
2635 min-width: 0;
2636 }
2637 }
2638
2639 /* Block UI */
2640 svg#wpdm-loading path,
2641 svg#wpdm-loading rect {
2642 fill: #ff6700 !important;
2643 }
2644
2645 .w3eden .blockui {
2646 position: relative;
2647 }
2648
2649 .w3eden .blockui:before {
2650 content: "";
2651 position: absolute;
2652 width: 100%;
2653 height: 100%;
2654 left: 0;
2655 top: 0;
2656 z-index: 1;
2657 background: rgba(255, 255, 255, 0.8) url("../images/loader.svg") center center no-repeat;
2658 background-size: 64px;
2659 transition: ease-in-out 400ms;
2660 }
2661
2662 /* Block UI Ends */
2663
2664 /* Toast Notifications */
2665 [id^="wpdm-toast-"] {
2666 position: fixed;
2667 z-index: 999999;
2668 display: flex;
2669 flex-direction: column;
2670 gap: 8px;
2671 pointer-events: none;
2672 max-width: 380px;
2673 }
2674 #wpdm-toast-bottom-right { bottom: 20px; right: 20px; align-items: flex-end; }
2675 #wpdm-toast-bottom-left { bottom: 20px; left: 20px; align-items: flex-start; }
2676 #wpdm-toast-top-right { top: 20px; right: 20px; align-items: flex-end; }
2677 #wpdm-toast-top-left { top: 20px; left: 20px; align-items: flex-start; }
2678 #wpdm-toast-top-center { top: 20px; left: 50%; transform: translateX(-50%); align-items: center; }
2679 #wpdm-toast-bottom-center { bottom: 20px; left: 50%; transform: translateX(-50%); align-items: center; }
2680
2681 .wpdm-toast {
2682 display: flex;
2683 align-items: center;
2684 gap: 10px;
2685 padding: 12px 16px;
2686 border-radius: 8px;
2687 font-size: 14px;
2688 line-height: 1.4;
2689 pointer-events: auto;
2690 opacity: 0;
2691 transform: translateY(12px) scale(0.96);
2692 transition: opacity 0.3s, transform 0.3s;
2693 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
2694 background: #1e293b;
2695 color: #f1f5f9;
2696 }
2697 .wpdm-toast a{ color: #ffffff !important; font-weight: 700; text-decoration: underline; }
2698 [id^="wpdm-toast-top"] .wpdm-toast { transform: translateY(-12px) scale(0.96); }
2699 .wpdm-toast.wpdm-toast-show { opacity: 1; transform: translateY(0) scale(1); }
2700 .wpdm-toast-icon { display: flex; flex-shrink: 0; }
2701 .wpdm-toast-msg { flex: 1; }
2702 .wpdm-toast-close {
2703 background: none;
2704 border: none;
2705 color: inherit;
2706 opacity: 0.5;
2707 cursor: pointer;
2708 font-size: 18px;
2709 line-height: 1;
2710 padding: 0 0 0 4px;
2711 flex-shrink: 0;
2712 }
2713 .wpdm-toast-close:hover { opacity: 1; }
2714
2715 .wpdm-toast-success { background: #059669; color: #fff; }
2716 .wpdm-toast-error { background: #dc2626; color: #fff; }
2717 .wpdm-toast-warning { background: #d97706; color: #fff; }
2718 .wpdm-toast-info { background: #2563eb; color: #fff; }
2719
2720 /* ==========================================================================
2721 Accessibility utilities
2722 ========================================================================== */
2723
2724 /* Screen-reader-only text — visually hidden but announced by assistive tech.
2725 Use on icon-only controls that need an accessible label. */
2726 .w3eden .wpdm-sr-only {
2727 position: absolute !important;
2728 width: 1px !important;
2729 height: 1px !important;
2730 padding: 0 !important;
2731 margin: -1px !important;
2732 overflow: hidden !important;
2733 clip: rect(0, 0, 0, 0) !important;
2734 white-space: nowrap !important;
2735 border: 0 !important;
2736 }
2737
2738 /* Reveal on keyboard focus (e.g. skip links). */
2739 .w3eden .wpdm-sr-only.wpdm-sr-only--focusable:focus,
2740 .w3eden .wpdm-sr-only.wpdm-sr-only--focusable:focus-visible {
2741 position: static !important;
2742 width: auto !important;
2743 height: auto !important;
2744 margin: 0 !important;
2745 overflow: visible !important;
2746 clip: auto !important;
2747 white-space: normal !important;
2748 }
2749
2750 /* Clear keyboard-focus indicator for custom interactive elements that aren't
2751 covered by the component :focus rules (links-as-buttons, changelog headers,
2752 gallery/video toggles). Shown only for keyboard navigation. */
2753 .w3eden a:focus-visible,
2754 .w3eden [role="button"]:focus-visible,
2755 .w3eden .__wpdm_playvideo:focus-visible,
2756 .w3eden .wpdm-lightbox:focus-visible,
2757 .w3eden .wpdm-changelog__header:focus-visible {
2758 outline: 2px solid var(--color-primary, #6366f1);
2759 outline-offset: 2px;
2760 border-radius: var(--radius-sm, 4px);
2761 }
2762