PluginProbe ʕ •ᴥ•ʔ
Download Manager / 3.3.65
Download Manager v3.3.65
3.3.66 3.3.65 3.3.64 3.3.63 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 2 weeks ago admin-styles.min.css 2 weeks ago author-dashboard.css 2 weeks ago author-dashboard.min.css 2 weeks ago front-dark.css 5 months ago front-dark.min.css 5 months ago front.css 4 days ago front.min.css 4 days ago gutenberg-styles.css 5 years ago gutenberg-styles.min.css 7 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 2 weeks ago wpdm-dashboard.css 2 weeks ago wpdm-dashboard.min.css 2 weeks ago wpdm-elegant-history.css 2 weeks ago wpdm-elegant-history.min.css 2 weeks ago wpdm-elegant-insights.css 2 weeks ago wpdm-elegant-insights.min.css 2 weeks ago wpdm-elegant-overview.css 2 weeks ago wpdm-elegant-overview.min.css 2 weeks ago wpdm-gallery.css 2 weeks ago wpdm-lock-options.css 2 weeks ago
front.css
2967 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 /* --color-primary/--color-success are injected at runtime from user settings
2053 (see Apply.php); the fallbacks keep the changelog legible if they're absent. */
2054 .w3eden .wpdm-changelog {
2055 --wpdm-cl-primary: var(--color-primary, #4a8eff);
2056 --wpdm-cl-success: var(--color-success, #18ce0f);
2057 --wpdm-cl-success-soft: var(--color-success-light, rgba(24, 206, 15, 0.1));
2058 --wpdm-cl-bg: var(--bg-body);
2059 --wpdm-cl-bg-alt: var(--bg-secondary);
2060 --wpdm-cl-border: var(--border-color);
2061 --wpdm-cl-text: var(--text-primary);
2062 --wpdm-cl-muted: var(--text-muted);
2063 --wpdm-cl-dot: 12px;
2064 position: relative;
2065 /* Transparent: front-dark.css restyles only the border here, so the frame
2066 adapts to whatever surface the theme puts behind it. */
2067 padding: 0 20px 20px;
2068 border: 1px solid var(--wpdm-cl-border);
2069 border-radius: var(--radius-lg);
2070 }
2071
2072 .w3eden .wpdm-changelog__header {
2073 display: flex;
2074 align-items: center;
2075 padding: 16px 0;
2076 margin-bottom: 16px;
2077 border-bottom: 1px solid var(--wpdm-cl-border);
2078 }
2079
2080 .w3eden .wpdm-changelog__title {
2081 display: flex;
2082 align-items: center;
2083 gap: 8px;
2084 margin: 0;
2085 font-size: 1rem;
2086 font-weight: 700;
2087 line-height: 1.4;
2088 color: var(--wpdm-cl-text);
2089 }
2090
2091 .w3eden .wpdm-changelog__title svg {
2092 width: 18px;
2093 height: 18px;
2094 flex-shrink: 0;
2095 color: var(--wpdm-cl-primary);
2096 }
2097
2098 .w3eden .wpdm-changelog__list {
2099 display: flex;
2100 flex-direction: column;
2101 }
2102
2103 /* Each entry is a two-column row: timeline rail + content card */
2104 .w3eden .wpdm-changelog__item {
2105 display: flex;
2106 align-items: stretch;
2107 gap: 16px;
2108 }
2109
2110 .w3eden .wpdm-changelog__timeline {
2111 display: flex;
2112 flex: 0 0 auto;
2113 flex-direction: column;
2114 align-items: center;
2115 width: var(--wpdm-cl-dot);
2116 /* Aligns the dot with the middle of the item header row */
2117 padding-top: 18px;
2118 }
2119
2120 .w3eden .wpdm-changelog__dot {
2121 box-sizing: border-box;
2122 flex-shrink: 0;
2123 width: var(--wpdm-cl-dot);
2124 height: var(--wpdm-cl-dot);
2125 background: var(--wpdm-cl-bg);
2126 border: 2px solid var(--wpdm-cl-border);
2127 border-radius: 50%;
2128 }
2129
2130 .w3eden .wpdm-changelog__dot--latest {
2131 background: var(--wpdm-cl-success);
2132 border-color: var(--wpdm-cl-success);
2133 animation: wpdm-changelog-pulse 2s infinite;
2134 }
2135
2136 .w3eden .wpdm-changelog__line {
2137 flex: 1 1 auto;
2138 width: 2px;
2139 min-height: 8px;
2140 background: var(--wpdm-cl-border);
2141 }
2142
2143 .w3eden .wpdm-changelog__item:last-child .wpdm-changelog__line { display: none; }
2144
2145 @keyframes wpdm-changelog-pulse {
2146 0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); }
2147 50% { box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); }
2148 }
2149
2150 .w3eden .wpdm-changelog__content {
2151 flex: 1 1 auto;
2152 min-width: 0;
2153 margin-bottom: 16px;
2154 background: var(--wpdm-cl-bg);
2155 border: 1px solid var(--wpdm-cl-border);
2156 border-radius: var(--radius);
2157 overflow: hidden;
2158 transition: border-color var(--transition), box-shadow var(--transition);
2159 }
2160
2161 .w3eden .wpdm-changelog__content:hover {
2162 border-color: var(--wpdm-cl-primary);
2163 box-shadow: var(--shadow-sm);
2164 }
2165
2166 .w3eden .wpdm-changelog__item:last-child .wpdm-changelog__content { margin-bottom: 0; }
2167
2168 /* --color-success-light is translucent, so this reads correctly in dark mode too */
2169 .w3eden .wpdm-changelog__item--latest .wpdm-changelog__content {
2170 border-color: var(--wpdm-cl-success);
2171 }
2172
2173 .w3eden .wpdm-changelog__item--latest .wpdm-changelog__item-header {
2174 background: var(--wpdm-cl-success-soft);
2175 border-bottom-color: var(--wpdm-cl-success);
2176 }
2177
2178 .w3eden .wpdm-changelog__item-header {
2179 display: flex;
2180 align-items: center;
2181 justify-content: space-between;
2182 gap: 12px;
2183 padding: 12px 14px;
2184 background: var(--wpdm-cl-bg-alt);
2185 border-bottom: 1px solid var(--wpdm-cl-border);
2186 cursor: pointer;
2187 user-select: none;
2188 transition: background-color var(--transition), border-color var(--transition);
2189 }
2190
2191 .w3eden .wpdm-changelog__item-header:hover { background: var(--bg-tertiary); }
2192
2193 .w3eden .wpdm-changelog__item--collapsed .wpdm-changelog__item-header {
2194 border-bottom-color: transparent;
2195 }
2196
2197 .w3eden .wpdm-changelog__meta {
2198 display: flex;
2199 align-items: center;
2200 flex-wrap: wrap;
2201 gap: 8px 12px;
2202 min-width: 0;
2203 }
2204
2205 .w3eden .wpdm-changelog__version {
2206 display: inline-flex;
2207 align-items: center;
2208 gap: 6px;
2209 padding: 4px 10px;
2210 background: var(--wpdm-cl-bg);
2211 border: 1px solid var(--wpdm-cl-border);
2212 border-radius: var(--radius-full);
2213 font-size: 0.8125rem;
2214 font-weight: 700;
2215 line-height: 1.4;
2216 white-space: nowrap;
2217 color: var(--wpdm-cl-text);
2218 }
2219
2220 .w3eden .wpdm-changelog__version svg {
2221 width: 13px;
2222 height: 13px;
2223 flex-shrink: 0;
2224 color: var(--wpdm-cl-muted);
2225 }
2226
2227 .w3eden .wpdm-changelog__version--latest {
2228 border-color: var(--wpdm-cl-success);
2229 color: var(--wpdm-cl-success);
2230 }
2231
2232 .w3eden .wpdm-changelog__version--latest svg { color: var(--wpdm-cl-success); }
2233
2234 .w3eden .wpdm-changelog__badge {
2235 margin-left: 2px;
2236 padding: 2px 6px;
2237 background: var(--wpdm-cl-success);
2238 color: #fff;
2239 border-radius: var(--radius-full);
2240 font-size: 0.625rem;
2241 font-weight: 700;
2242 line-height: 1.4;
2243 letter-spacing: 0.04em;
2244 text-transform: uppercase;
2245 }
2246
2247 .w3eden .wpdm-changelog__date {
2248 display: inline-flex;
2249 align-items: center;
2250 gap: 6px;
2251 font-size: 0.75rem;
2252 white-space: nowrap;
2253 color: var(--wpdm-cl-muted);
2254 }
2255
2256 .w3eden .wpdm-changelog__date svg {
2257 width: 13px;
2258 height: 13px;
2259 flex-shrink: 0;
2260 }
2261
2262 .w3eden .wpdm-changelog__toggle {
2263 display: inline-flex;
2264 align-items: center;
2265 justify-content: center;
2266 flex: 0 0 auto;
2267 width: 26px;
2268 height: 26px;
2269 padding: 0;
2270 background: transparent;
2271 border: 1px solid var(--wpdm-cl-border);
2272 border-radius: var(--radius-full);
2273 color: var(--wpdm-cl-muted);
2274 cursor: pointer;
2275 transition: background-color var(--transition), border-color var(--transition), color var(--transition);
2276 }
2277
2278 .w3eden .wpdm-changelog__toggle:hover {
2279 background: var(--wpdm-cl-primary);
2280 border-color: var(--wpdm-cl-primary);
2281 color: #fff;
2282 }
2283
2284 .w3eden .wpdm-changelog__toggle svg {
2285 width: 14px;
2286 height: 14px;
2287 transform: rotate(180deg);
2288 transition: transform var(--transition);
2289 }
2290
2291 .w3eden .wpdm-changelog__item--collapsed .wpdm-changelog__toggle svg { transform: rotate(0deg); }
2292
2293 /* Collapsible body. 1fr -> 0fr animates to a fully clipped row; browsers without
2294 support simply leave the entry expanded, which stays readable. */
2295 .w3eden .wpdm-changelog__body {
2296 display: grid;
2297 grid-template-rows: 1fr;
2298 transition: grid-template-rows var(--transition-slow);
2299 }
2300
2301 .w3eden .wpdm-changelog__item--collapsed .wpdm-changelog__body { grid-template-rows: 0fr; }
2302
2303 .w3eden .wpdm-changelog__body > * {
2304 min-height: 0;
2305 overflow: hidden;
2306 }
2307
2308 .w3eden .wpdm-changelog__changes {
2309 padding: 14px;
2310 font-size: 0.875rem;
2311 line-height: 1.65;
2312 color: var(--text-secondary);
2313 transition: padding var(--transition-slow);
2314 }
2315
2316 /* __changes is itself the grid item, so its vertical padding would still paint a
2317 sliver at 0fr. Collapse the padding with the row. */
2318 .w3eden .wpdm-changelog__item--collapsed .wpdm-changelog__changes {
2319 padding-top: 0;
2320 padding-bottom: 0;
2321 }
2322
2323 .w3eden .wpdm-changelog__changes > *:first-child { margin-top: 0; }
2324 .w3eden .wpdm-changelog__changes > *:last-child { margin-bottom: 0; }
2325
2326 .w3eden .wpdm-changelog__changes p { margin: 0 0 8px; }
2327
2328 .w3eden .wpdm-changelog__changes ul,
2329 .w3eden .wpdm-changelog__changes ol {
2330 margin: 0 0 8px;
2331 padding-left: 20px;
2332 }
2333
2334 .w3eden .wpdm-changelog__changes li { margin-bottom: 4px; }
2335 .w3eden .wpdm-changelog__changes li:last-child { margin-bottom: 0; }
2336
2337 .w3eden .wpdm-changelog__changes strong {
2338 font-weight: 600;
2339 color: var(--wpdm-cl-text);
2340 }
2341
2342 .w3eden .wpdm-changelog__changes code {
2343 padding: 2px 5px;
2344 background: var(--bg-tertiary);
2345 border-radius: var(--radius-sm);
2346 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
2347 font-size: 0.8125em;
2348 color: var(--wpdm-cl-text);
2349 }
2350
2351 .w3eden .wpdm-changelog-empty {
2352 padding: 16px;
2353 background: var(--bg-secondary);
2354 border: 1px dashed var(--border-color);
2355 border-radius: var(--radius);
2356 font-size: 0.875rem;
2357 text-align: center;
2358 color: var(--text-muted);
2359 }
2360
2361 @media (max-width: 480px) {
2362 .w3eden .wpdm-changelog { padding: 0 12px 12px; }
2363 .w3eden .wpdm-changelog__item { gap: 10px; }
2364 }
2365
2366 @media (prefers-reduced-motion: reduce) {
2367 .w3eden .wpdm-changelog__dot--latest { animation: none; }
2368 .w3eden .wpdm-changelog__body { transition: none; }
2369 }
2370
2371 /* Filter toolbar */
2372 .w3eden .wpdm-filter-toolbar { margin-bottom: 1.5rem; }
2373
2374 .w3eden .wpdm-filter-toolbar .card-header {
2375 display: flex;
2376 align-items: center;
2377 gap: 1rem;
2378 }
2379
2380 .w3eden .wpdm-filter-toolbar__icon { flex-shrink: 0; }
2381
2382 .w3eden .wpdm-filter-toolbar__icon img {
2383 display: block;
2384 border-radius: var(--radius);
2385 }
2386
2387 .w3eden .wpdm-filter-toolbar__title {
2388 margin: 0;
2389 font-size: 1.125rem;
2390 font-weight: 600;
2391 }
2392
2393 .w3eden .wpdm-filter-toolbar__desc {
2394 margin: 0.25rem 0 0;
2395 color: var(--text-muted);
2396 font-size: 0.875rem;
2397 }
2398
2399 .w3eden .wpdm-filter-toolbar__search {
2400 position: relative;
2401 }
2402
2403 .w3eden .wpdm-filter-toolbar__search-icon {
2404 position: absolute;
2405 left: 12px;
2406 top: 50%;
2407 transform: translateY(-50%);
2408 width: 18px;
2409 height: 18px;
2410 color: var(--text-muted);
2411 pointer-events: none;
2412 }
2413
2414 .w3eden .wpdm-filter-toolbar__search input { padding-left: 40px; }
2415
2416 /* Header row (icon + title) inside the filter toolbar */
2417 .w3eden .wpdm-filter-toolbar .card-body {
2418 display: flex;
2419 align-items: center;
2420 gap: 1rem;
2421 }
2422
2423 /* Controls row (search + sort selects + button) */
2424 .w3eden .wpdm-filter-toolbar__controls { flex-wrap: wrap; width: 100%; }
2425
2426 /* Tablet & below: let the controls wrap onto multiple rows */
2427 @media (max-width: 767.98px) {
2428 .w3eden .wpdm-filter-toolbar__controls .wpdm-filter-toolbar__search {
2429 flex: 1 1 100%;
2430 }
2431 .w3eden .wpdm-filter-toolbar__controls select.form-control {
2432 flex: 1 1 calc(50% - 0.25rem);
2433 width: auto !important;
2434 }
2435 }
2436
2437 /* Phones: stack icon/title and make every control full width */
2438 @media (max-width: 575.98px) {
2439 .w3eden .wpdm-filter-toolbar .card-body {
2440 flex-direction: column;
2441 align-items: flex-start;
2442 text-align: left;
2443 }
2444 .w3eden .wpdm-filter-toolbar__controls select.form-control,
2445 .w3eden .wpdm-filter-toolbar__controls .btn {
2446 flex: 1 1 100%;
2447 width: 100% !important;
2448 }
2449 .w3eden .wpdm-filter-toolbar__controls .btn {
2450 justify-content: center;
2451 }
2452 }
2453
2454 /* File List Component */
2455 .w3eden .wpdm-filelist-container {
2456 margin: 1rem 0;
2457 }
2458
2459 .w3eden .wpdm-filelist-toolbar {
2460 display: flex;
2461 align-items: center;
2462 justify-content: space-between;
2463 gap: 1rem;
2464 padding: 0.75rem 1rem;
2465 background: var(--bg-secondary);
2466 border: 1px solid var(--border-color);
2467 border-radius: var(--radius);
2468 margin-bottom: 1rem;
2469 }
2470
2471 .w3eden .wpdm-filelist-toolbar__left {
2472 display: flex;
2473 align-items: center;
2474 gap: 0.5rem;
2475 }
2476
2477 .w3eden .wpdm-filelist-toolbar__right {
2478 display: flex;
2479 align-items: center;
2480 gap: 0.75rem;
2481 }
2482
2483 .w3eden .wpdm-filelist-count {
2484 font-size: 0.875rem;
2485 color: var(--text-muted);
2486 font-weight: 500;
2487 }
2488
2489 .w3eden .wpdm-filelist-search {
2490 position: relative;
2491 display: flex;
2492 align-items: center;
2493 }
2494
2495 .w3eden .wpdm-filelist-search__icon {
2496 position: absolute;
2497 left: 10px;
2498 color: var(--text-muted);
2499 pointer-events: none;
2500 }
2501
2502 .w3eden .wpdm-filelist-search__input {
2503 padding: 0.5rem 0.75rem 0.5rem 2.25rem;
2504 font-size: 0.875rem;
2505 border: 1px solid var(--border-color);
2506 border-radius: var(--radius);
2507 background: var(--bg-body);
2508 color: var(--text-primary);
2509 width: 180px;
2510 transition: border-color var(--transition), box-shadow var(--transition), width var(--transition);
2511 }
2512
2513 .w3eden .wpdm-filelist-search__input:focus {
2514 outline: none;
2515 border-color: var(--color-primary);
2516 box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
2517 width: 220px;
2518 }
2519
2520 .w3eden .wpdm-filelist-search__input::placeholder {
2521 color: var(--text-muted);
2522 }
2523
2524 .w3eden .wpdm-filelist-toggle {
2525 display: flex;
2526 gap: 2px;
2527 background: var(--bg-tertiary);
2528 padding: 3px;
2529 border-radius: var(--radius);
2530 }
2531
2532 .w3eden .wpdm-filelist-toggle__btn {
2533 display: flex;
2534 align-items: center;
2535 justify-content: center;
2536 width: 32px;
2537 height: 32px;
2538 padding: 0;
2539 border: none;
2540 background: transparent;
2541 color: var(--text-muted);
2542 border-radius: calc(var(--radius) - 2px);
2543 cursor: pointer;
2544 transition: all var(--transition);
2545 }
2546
2547 .w3eden .wpdm-filelist-toggle__btn:hover {
2548 color: var(--text-primary);
2549 background: var(--bg-body);
2550 }
2551
2552 .w3eden .wpdm-filelist-toggle__btn.active {
2553 color: var(--color-primary);
2554 background: var(--bg-body);
2555 box-shadow: var(--shadow-sm);
2556 }
2557
2558 /* File List Grid */
2559 .w3eden .wpdm-filelist-grid {
2560 display: grid;
2561 grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
2562 gap: 1rem;
2563 }
2564
2565 .w3eden .wpdm-filelist-grid--list {
2566 grid-template-columns: 1fr;
2567 }
2568
2569 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item {
2570 flex-direction: row;
2571 align-items: center;
2572 text-align: left;
2573 padding: 0.75rem 1rem;
2574 max-width: none;
2575 }
2576
2577 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__icon,
2578 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__thumb {
2579 width: 40px;
2580 height: 40px;
2581 flex-shrink: 0;
2582 }
2583
2584 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__info {
2585 flex: 1;
2586 min-width: 0;
2587 }
2588
2589 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__meta {
2590 justify-content: flex-start;
2591 }
2592
2593 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__actions {
2594 flex-shrink: 0;
2595 }
2596
2597 /* File List Item - Grid Card */
2598 .w3eden .wpdm-filelist-item {
2599 display: flex;
2600 flex-direction: column;
2601 align-items: center;
2602 text-align: center;
2603 gap: 0.75rem;
2604 padding: 1.25rem 1rem;
2605 width: 100%;
2606 background: var(--bg-body);
2607 border: 1px solid var(--border-color);
2608 border-radius: var(--radius);
2609 overflow: hidden;
2610 transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
2611 }
2612
2613 .w3eden .wpdm-filelist-item:hover {
2614 border-color: var(--color-primary);
2615 box-shadow: var(--shadow-md);
2616 transform: translateY(-2px);
2617 }
2618
2619 .w3eden .wpdm-filelist-item__icon {
2620 display: flex;
2621 align-items: center;
2622 justify-content: center;
2623 width: 56px;
2624 height: 56px;
2625 background: var(--bg-secondary);
2626 border-radius: var(--radius-lg);
2627 color: var(--text-muted);
2628 }
2629
2630 .w3eden .wpdm-filelist-item__icon svg {
2631 width: 28px;
2632 height: 28px;
2633 }
2634
2635 .w3eden .wpdm-filelist-item__icon--pdf { color: #dc2626; background: #fef2f2; }
2636 .w3eden .wpdm-filelist-item__icon--doc { color: #2563eb; background: #eff6ff; }
2637 .w3eden .wpdm-filelist-item__icon--xls { color: #16a34a; background: #f0fdf4; }
2638 .w3eden .wpdm-filelist-item__icon--ppt { color: #ea580c; background: #fff7ed; }
2639 .w3eden .wpdm-filelist-item__icon--zip { color: #7c3aed; background: #f5f3ff; }
2640 .w3eden .wpdm-filelist-item__icon--image { color: #0891b2; background: #ecfeff; }
2641 .w3eden .wpdm-filelist-item__icon--video { color: #db2777; background: #fdf2f8; }
2642 .w3eden .wpdm-filelist-item__icon--audio { color: #9333ea; background: #faf5ff; }
2643
2644 .w3eden .wpdm-filelist-item__thumb {
2645 width: 48px;
2646 height: 48px;
2647 border-radius: var(--radius);
2648 overflow: hidden;
2649 flex-shrink: 0;
2650 }
2651
2652 .w3eden .wpdm-filelist-item__thumb img {
2653 width: 100%;
2654 height: 100%;
2655 object-fit: cover;
2656 }
2657
2658 .w3eden .wpdm-filelist-item__info {
2659 flex: 1;
2660 min-width: 0;
2661 width: 100%;
2662 overflow: hidden;
2663 }
2664
2665 .w3eden .wpdm-filelist-item__title {
2666 font-weight: 600;
2667 font-size: 14px;
2668 color: var(--text-primary);
2669 margin-bottom: 0.25rem;
2670 overflow: hidden;
2671 text-overflow: ellipsis;
2672 white-space: nowrap;
2673 max-width: 100%;
2674 }
2675
2676 .w3eden .wpdm-filelist-item__meta {
2677 display: flex;
2678 flex-wrap: wrap;
2679 justify-content: center;
2680 gap: 0.5rem;
2681 font-size: 0.8125rem;
2682 color: var(--text-muted);
2683 }
2684
2685 .w3eden .wpdm-filelist-item__meta span {
2686 display: inline-flex;
2687 align-items: center;
2688 gap: 0.25rem;
2689 }
2690
2691 .w3eden .wpdm-filelist-item__meta span:not(:last-child)::after {
2692 content: '\00B7';
2693 margin-left: 0.5rem;
2694 color: var(--border-color);
2695 }
2696
2697 .w3eden .wpdm-filelist-item__version {
2698 font-weight: 500;
2699 color: var(--color-primary);
2700 }
2701
2702 .w3eden .wpdm-filelist-item__actions {
2703 display: flex;
2704 align-items: center;
2705 gap: 0.5rem;
2706 flex-wrap: nowrap;
2707 }
2708
2709 .w3eden .wpdm-filelist-item__actions .btn {
2710 flex-shrink: 0;
2711 }
2712
2713 .w3eden .wpdm-filelist-item__custom-actions {
2714 display: flex;
2715 align-items: center;
2716 gap: 0.5rem;
2717 }
2718
2719 /* File list hidden state for search */
2720 .w3eden .wpdm-filelist-item.wpdm-filelist-hidden {
2721 display: none;
2722 }
2723
2724 /* File list no results message */
2725 .w3eden .wpdm-filelist-no-results {
2726 grid-column: 1 / -1;
2727 padding: 2rem;
2728 text-align: center;
2729 color: var(--text-muted);
2730 font-size: 0.875rem;
2731 }
2732
2733 /* Responsive: Tablet */
2734 @media (max-width: 768px) {
2735 .w3eden .wpdm-filelist-grid {
2736 grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
2737 }
2738
2739 .w3eden .wpdm-filelist-grid--list {
2740 grid-template-columns: 1fr;
2741 }
2742 }
2743
2744 /* Responsive: Mobile */
2745 @media (max-width: 575px) {
2746 .w3eden .wpdm-filelist-toolbar {
2747 flex-direction: column;
2748 align-items: stretch;
2749 gap: 0.75rem;
2750 }
2751
2752 .w3eden .wpdm-filelist-toolbar__left,
2753 .w3eden .wpdm-filelist-toolbar__right {
2754 justify-content: space-between;
2755 }
2756
2757 .w3eden .wpdm-filelist-search__input {
2758 width: 100%;
2759 }
2760
2761 .w3eden .wpdm-filelist-search__input:focus {
2762 width: 100%;
2763 }
2764
2765 .w3eden .wpdm-filelist-grid {
2766 grid-template-columns: repeat(2, 1fr);
2767 gap: 0.75rem;
2768 }
2769
2770 .w3eden .wpdm-filelist-grid--list {
2771 grid-template-columns: 1fr;
2772 }
2773
2774 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item {
2775 flex-wrap: wrap;
2776 padding: 0.75rem;
2777 }
2778
2779 .w3eden .wpdm-filelist-grid--list .wpdm-filelist-item__actions {
2780 width: 100%;
2781 padding-top: 0.625rem;
2782 margin-top: 0.375rem;
2783 border-top: 1px solid var(--border-color);
2784 justify-content: flex-end;
2785 }
2786
2787 .w3eden .wpdm-filelist-item {
2788 max-width: none;
2789 padding: 1rem 0.75rem;
2790 }
2791
2792 .w3eden .wpdm-filelist-item__icon {
2793 width: 48px;
2794 height: 48px;
2795 }
2796
2797 .w3eden .wpdm-filelist-item__icon svg {
2798 width: 24px;
2799 height: 24px;
2800 }
2801
2802 .w3eden .wpdm-filelist-item__title {
2803 font-size: 0.8125rem;
2804 }
2805
2806 .w3eden .wpdm-filelist-item__meta {
2807 font-size: 0.75rem;
2808 }
2809
2810 .w3eden .wpdm-filelist-item__actions .btn {
2811 padding: 0.25rem 0.5rem;
2812 font-size: 0.75rem;
2813 min-height: 28px;
2814 }
2815 }
2816
2817 /* Responsive: Small Mobile */
2818 @media (max-width: 400px) {
2819 .w3eden .wpdm-filelist-grid {
2820 grid-template-columns: 1fr;
2821 }
2822
2823 .w3eden .wpdm-filelist-item {
2824 flex-direction: row;
2825 text-align: left;
2826 align-items: center;
2827 max-width: none;
2828 }
2829
2830 .w3eden .wpdm-filelist-item__icon,
2831 .w3eden .wpdm-filelist-item__thumb {
2832 width: 40px;
2833 height: 40px;
2834 flex-shrink: 0;
2835 }
2836
2837 .w3eden .wpdm-filelist-item__info {
2838 flex: 1;
2839 min-width: 0;
2840 }
2841 }
2842
2843 /* Block UI */
2844 svg#wpdm-loading path,
2845 svg#wpdm-loading rect {
2846 fill: #ff6700 !important;
2847 }
2848
2849 .w3eden .blockui {
2850 position: relative;
2851 }
2852
2853 .w3eden .blockui:before {
2854 content: "";
2855 position: absolute;
2856 width: 100%;
2857 height: 100%;
2858 left: 0;
2859 top: 0;
2860 z-index: 1;
2861 background: rgba(255, 255, 255, 0.8) url("../images/loader.svg") center center no-repeat;
2862 background-size: 64px;
2863 transition: ease-in-out 400ms;
2864 }
2865
2866 /* Block UI Ends */
2867
2868 /* Toast Notifications */
2869 [id^="wpdm-toast-"] {
2870 position: fixed;
2871 z-index: 999999;
2872 display: flex;
2873 flex-direction: column;
2874 gap: 8px;
2875 pointer-events: none;
2876 max-width: 380px;
2877 }
2878 #wpdm-toast-bottom-right { bottom: 20px; right: 20px; align-items: flex-end; }
2879 #wpdm-toast-bottom-left { bottom: 20px; left: 20px; align-items: flex-start; }
2880 #wpdm-toast-top-right { top: 20px; right: 20px; align-items: flex-end; }
2881 #wpdm-toast-top-left { top: 20px; left: 20px; align-items: flex-start; }
2882 #wpdm-toast-top-center { top: 20px; left: 50%; transform: translateX(-50%); align-items: center; }
2883 #wpdm-toast-bottom-center { bottom: 20px; left: 50%; transform: translateX(-50%); align-items: center; }
2884
2885 .wpdm-toast {
2886 display: flex;
2887 align-items: center;
2888 gap: 10px;
2889 padding: 12px 16px;
2890 border-radius: 8px;
2891 font-size: 14px;
2892 line-height: 1.4;
2893 pointer-events: auto;
2894 opacity: 0;
2895 transform: translateY(12px) scale(0.96);
2896 transition: opacity 0.3s, transform 0.3s;
2897 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
2898 background: #1e293b;
2899 color: #f1f5f9;
2900 }
2901 .wpdm-toast a{ color: #ffffff !important; font-weight: 700; text-decoration: underline; }
2902 [id^="wpdm-toast-top"] .wpdm-toast { transform: translateY(-12px) scale(0.96); }
2903 .wpdm-toast.wpdm-toast-show { opacity: 1; transform: translateY(0) scale(1); }
2904 .wpdm-toast-icon { display: flex; flex-shrink: 0; }
2905 .wpdm-toast-msg { flex: 1; }
2906 .wpdm-toast-close {
2907 background: none;
2908 border: none;
2909 color: inherit;
2910 opacity: 0.5;
2911 cursor: pointer;
2912 font-size: 18px;
2913 line-height: 1;
2914 padding: 0 0 0 4px;
2915 flex-shrink: 0;
2916 }
2917 .wpdm-toast-close:hover { opacity: 1; }
2918
2919 .wpdm-toast-success { background: #059669; color: #fff; }
2920 .wpdm-toast-error { background: #dc2626; color: #fff; }
2921 .wpdm-toast-warning { background: #d97706; color: #fff; }
2922 .wpdm-toast-info { background: #2563eb; color: #fff; }
2923
2924 /* ==========================================================================
2925 Accessibility utilities
2926 ========================================================================== */
2927
2928 /* Screen-reader-only text — visually hidden but announced by assistive tech.
2929 Use on icon-only controls that need an accessible label. */
2930 .w3eden .wpdm-sr-only {
2931 position: absolute !important;
2932 width: 1px !important;
2933 height: 1px !important;
2934 padding: 0 !important;
2935 margin: -1px !important;
2936 overflow: hidden !important;
2937 clip: rect(0, 0, 0, 0) !important;
2938 white-space: nowrap !important;
2939 border: 0 !important;
2940 }
2941
2942 /* Reveal on keyboard focus (e.g. skip links). */
2943 .w3eden .wpdm-sr-only.wpdm-sr-only--focusable:focus,
2944 .w3eden .wpdm-sr-only.wpdm-sr-only--focusable:focus-visible {
2945 position: static !important;
2946 width: auto !important;
2947 height: auto !important;
2948 margin: 0 !important;
2949 overflow: visible !important;
2950 clip: auto !important;
2951 white-space: normal !important;
2952 }
2953
2954 /* Clear keyboard-focus indicator for custom interactive elements that aren't
2955 covered by the component :focus rules (links-as-buttons, changelog headers,
2956 gallery/video toggles). Shown only for keyboard navigation. */
2957 .w3eden a:focus-visible,
2958 .w3eden [role="button"]:focus-visible,
2959 .w3eden .__wpdm_playvideo:focus-visible,
2960 .w3eden .wpdm-lightbox:focus-visible,
2961 .w3eden .wpdm-changelog__item-header:focus-visible,
2962 .w3eden .wpdm-changelog__toggle:focus-visible {
2963 outline: 2px solid var(--color-primary, #6366f1);
2964 outline-offset: 2px;
2965 border-radius: var(--radius-sm, 4px);
2966 }
2967