PluginProbe ʕ •ᴥ•ʔ
ECS – Ele Custom Skin for Elementor / 4.3.6
ECS – Ele Custom Skin for Elementor v4.3.6
4.3.6 4.3.5 4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.2.0 4.1.11 4.1.10 4.1.9 4.1.8 4.1.6 4.1.7 4.1.5 4.1.4 4.1.1 4.1.2 trunk 1.0.0 1.0.1 1.0.9 1.1.3 1.1.4 1.1.5 1.2.0 1.2.1 1.2.4 1.2.5 1.3.10 1.3.11 1.3.3 1.3.4 1.3.6 1.3.7 1.3.9 1.4.0 2.0.2 2.1.0 2.2.0 2.2.1 2.2.2 3.0.0 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 4.1.0
ele-custom-skin / assets / admin / css / ecs-admin.css
ele-custom-skin / assets / admin / css Last commit date
ecs-admin.css 2 months ago
ecs-admin.css
652 lines
1 /* ============================================================
2 ECS Admin Styles
3 ============================================================ */
4
5 .ecs-admin-wrap {
6 max-width: 960px;
7 }
8
9 .ecs-admin-header {
10 display: flex;
11 align-items: center;
12 gap: 12px;
13 margin-bottom: 24px;
14 padding-bottom: 16px;
15 border-bottom: 1px solid #e0e0e0;
16 }
17
18 .ecs-admin-header h1 {
19 margin: 0;
20 font-size: 22px;
21 font-weight: 600;
22 }
23
24 .ecs-version {
25 font-size: 12px;
26 color: #888;
27 background: #f0f0f0;
28 padding: 2px 8px;
29 border-radius: 10px;
30 }
31
32 /* ── Section headers ──────────────────────────────────────── */
33
34 .ecs-section-header {
35 display: flex;
36 align-items: center;
37 gap: 12px;
38 margin: 0 0 16px;
39 padding-bottom: 10px;
40 border-bottom: 2px solid #e0e0e0;
41 }
42
43 .ecs-section-header--pro {
44 margin-top: 32px;
45 border-bottom-color: #f0c050;
46 }
47
48 .ecs-section-title {
49 margin: 0;
50 font-size: 14px;
51 font-weight: 600;
52 text-transform: uppercase;
53 letter-spacing: 0.6px;
54 color: #50575e;
55 display: flex;
56 align-items: center;
57 gap: 12px;
58 }
59
60 .ecs-pro-cta {
61 font-size: 12px;
62 font-weight: 600;
63 text-transform: none;
64 letter-spacing: 0;
65 color: #fff;
66 background: #b8860b;
67 padding: 3px 10px;
68 border-radius: 10px;
69 text-decoration: none;
70 transition: background 0.15s;
71 }
72
73 .ecs-pro-cta:hover {
74 background: #9a6f00;
75 color: #fff;
76 }
77
78 .ecs-pro-cta--activate {
79 background: #2271b1;
80 }
81
82 .ecs-pro-cta--activate:hover {
83 background: #135e96;
84 }
85
86 .ecs-pro-active-badge {
87 font-size: 11px;
88 font-weight: 600;
89 text-transform: uppercase;
90 letter-spacing: 0.4px;
91 color: #3a7c3a;
92 background: #e9f6e9;
93 padding: 2px 8px;
94 border-radius: 10px;
95 }
96
97 /* ── Grid ─────────────────────────────────────────────────── */
98
99 .ecs-modules-grid {
100 display: grid;
101 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
102 gap: 20px;
103 margin-bottom: 24px;
104 }
105
106 /* ── Module Card ──────────────────────────────────────────── */
107
108 .ecs-module-card {
109 background: #fff;
110 border: 1px solid #e0e0e0;
111 border-radius: 8px;
112 padding: 20px;
113 display: flex;
114 flex-direction: column;
115 gap: 12px;
116 transition: box-shadow 0.2s;
117 }
118
119 .ecs-module-card:hover {
120 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
121 }
122
123 .ecs-module-card.is-active {
124 border-color: #2271b1;
125 }
126
127 .ecs-module-card.is-deprecated {
128 border-color: #dda0a0;
129 background: #fffafa;
130 }
131
132 .ecs-module-card.is-locked {
133 border-color: #d0d0d0;
134 background: #f8f8f8;
135 }
136
137 .ecs-module-card.is-locked:hover {
138 box-shadow: none;
139 }
140
141 .ecs-module-card.is-locked .ecs-module-card__title,
142 .ecs-module-card.is-locked .ecs-module-card__desc,
143 .ecs-module-card.is-locked .ecs-module-card__footer,
144 .ecs-module-card.is-locked .ecs-badge {
145 opacity: 0.45;
146 filter: grayscale(50%);
147 }
148
149 .ecs-module-card__header {
150 display: flex;
151 align-items: center;
152 justify-content: space-between;
153 gap: 8px;
154 }
155
156 .ecs-module-card__title {
157 font-size: 15px;
158 font-weight: 600;
159 color: #1e1e1e;
160 }
161
162 .ecs-module-card__badges {
163 display: flex;
164 gap: 4px;
165 flex-shrink: 0;
166 }
167
168 .ecs-module-card__desc {
169 font-size: 13px;
170 color: #666;
171 margin: 0;
172 line-height: 1.5;
173 }
174
175 .ecs-module-deprecated-notice {
176 font-size: 12px;
177 color: #a05252;
178 margin: 0;
179 font-style: italic;
180 line-height: 1.5;
181 }
182
183 .ecs-module-card__footer {
184 display: flex;
185 align-items: center;
186 margin-top: auto;
187 }
188
189 /* ── Badge ────────────────────────────────────────────────── */
190
191 .ecs-badge {
192 font-size: 10px;
193 font-weight: 700;
194 text-transform: uppercase;
195 padding: 2px 7px;
196 border-radius: 10px;
197 letter-spacing: 0.5px;
198 }
199
200 .ecs-badge--free {
201 background: #e9f6e9;
202 color: #3a7c3a;
203 }
204
205 .ecs-badge--pro {
206 background: #fff3cd;
207 color: #856404;
208 }
209
210 .ecs-badge--deprecated {
211 background: #fde8e8;
212 color: #a05252;
213 }
214
215 .ecs-module-locked {
216 font-size: 12px;
217 color: #888;
218 font-style: italic;
219 }
220
221 /* ── Toggle Switch ────────────────────────────────────────── */
222
223 .ecs-toggle {
224 display: flex;
225 align-items: center;
226 gap: 10px;
227 cursor: pointer;
228 user-select: none;
229 }
230
231 .ecs-toggle input[type="checkbox"] {
232 position: absolute;
233 opacity: 0;
234 width: 0;
235 height: 0;
236 }
237
238 .ecs-toggle__slider {
239 position: relative;
240 display: inline-block;
241 width: 40px;
242 height: 22px;
243 background: #ccc;
244 border-radius: 11px;
245 transition: background 0.2s;
246 flex-shrink: 0;
247 }
248
249 .ecs-toggle__slider::after {
250 content: '';
251 position: absolute;
252 top: 3px;
253 left: 3px;
254 width: 16px;
255 height: 16px;
256 background: #fff;
257 border-radius: 50%;
258 transition: transform 0.2s;
259 }
260
261 .ecs-toggle input:checked + .ecs-toggle__slider {
262 background: #2271b1;
263 }
264
265 .ecs-toggle input:checked + .ecs-toggle__slider::after {
266 transform: translateX(18px);
267 }
268
269 .ecs-toggle__label {
270 font-size: 13px;
271 }
272
273 .ecs-toggle__label--active {
274 display: none;
275 color: #2271b1;
276 font-weight: 500;
277 }
278
279 .ecs-toggle input:checked ~ .ecs-toggle__label--active {
280 display: inline;
281 }
282
283 .ecs-toggle__label--inactive {
284 display: inline;
285 color: #555;
286 }
287
288 .ecs-toggle input:checked ~ .ecs-toggle__label--inactive {
289 display: none;
290 }
291
292 /* ── Module Preview ───────────────────────────────────────── */
293
294 .ecs-preview-wrap {
295 position: relative;
296 }
297
298 .ecs-preview-btn {
299 background: none;
300 border: none;
301 cursor: pointer;
302 color: #aaa;
303 padding: 2px 4px;
304 border-radius: 4px;
305 display: flex;
306 align-items: center;
307 line-height: 1;
308 transition: color 0.15s, background 0.15s;
309 }
310
311 .ecs-preview-btn:hover,
312 .ecs-preview-btn.is-active {
313 color: #2271b1;
314 background: #e8f0f8;
315 }
316
317 /* Red play button for locked pro modules */
318 .ecs-preview-btn--locked {
319 color: #c0392b;
320 }
321
322 .ecs-preview-btn--locked:hover,
323 .ecs-preview-btn--locked.is-active {
324 color: #fff;
325 background: #c0392b;
326 }
327
328 .ecs-preview-btn .dashicons {
329 font-size: 16px;
330 width: 16px;
331 height: 16px;
332 }
333
334 .ecs-preview-popup {
335 display: none;
336 position: absolute;
337 right: 0;
338 top: calc(100% + 8px);
339 z-index: 100000;
340 background: #fff;
341 border: 1px solid #ddd;
342 border-radius: 8px;
343 box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
344 padding: 8px;
345 }
346
347 .ecs-preview-wrap.is-open .ecs-preview-popup {
348 display: block;
349 }
350
351 .ecs-preview-popup img {
352 display: block;
353 max-width: 320px;
354 height: auto;
355 border-radius: 4px;
356 }
357
358 /* ── Integrations ─────────────────────────────────────────── */
359
360 .ecs-section-header--integrations {
361 border-bottom-color: #78c87a;
362 }
363
364 .ecs-integration-card {
365 background: var(--ecs-int-bg, #fff);
366 }
367
368 /* Link-based toggle (no checkbox) */
369 .ecs-int-toggle {
370 text-decoration: none;
371 }
372
373 /* Active state: slider visually ON */
374 .ecs-int-toggle--active .ecs-toggle__slider {
375 background: #2271b1;
376 }
377
378 .ecs-int-toggle--active .ecs-toggle__slider::after {
379 transform: translateX(18px);
380 }
381
382 .ecs-int-toggle--active .ecs-toggle__label--active {
383 display: inline;
384 color: #2271b1;
385 font-weight: 500;
386 }
387
388 /* "Not installed" / "Inactive" label */
389 .ecs-int-status {
390 font-size: 13px;
391 color: #888;
392 font-style: italic;
393 }
394
395 .ecs-int-toggle--not-installed:hover .ecs-int-status {
396 color: #2271b1;
397 text-decoration: underline;
398 }
399
400 /* ── Save Button ──────────────────────────────────────────── */
401
402 .ecs-save-btn {
403 margin-top: 8px !important;
404 }
405
406 /* ── License Badge (inline in section header) ─────────────── */
407
408 .ecs-license-badge {
409 display: inline-flex;
410 align-items: center;
411 gap: 4px;
412 font-size: 11px;
413 font-weight: 600;
414 text-decoration: none;
415 padding: 2px 9px;
416 border-radius: 10px;
417 transition: background 0.15s, color 0.15s;
418 color: #3a7c3a;
419 background: #e9f6e9;
420 border: 1px solid #b8e0b8;
421 }
422
423 .ecs-license-badge:hover {
424 background: #d0efd0;
425 color: #2a5c2a;
426 }
427
428 .ecs-license-badge .dashicons {
429 font-size: 13px;
430 width: 13px;
431 height: 13px;
432 }
433
434 .ecs-license-badge--activate {
435 color: #9a6700;
436 background: #fff8e1;
437 border-color: #f0d080;
438 }
439
440 .ecs-license-badge--activate:hover {
441 background: #fef0b0;
442 color: #7a5000;
443 }
444
445 /* ── License Page Layout ──────────────────────────────────── */
446
447 .ecs-license-wrap {
448 display: flex;
449 gap: 24px;
450 align-items: flex-start;
451 }
452
453 .ecs-license-nav {
454 display: flex;
455 flex-direction: column;
456 gap: 4px;
457 min-width: 140px;
458 background: #fff;
459 border: 1px solid #e0e0e0;
460 border-radius: 8px;
461 padding: 8px;
462 }
463
464 .ecs-license-nav__item {
465 display: block;
466 padding: 8px 12px;
467 border-radius: 6px;
468 font-size: 13px;
469 font-weight: 500;
470 color: #50575e;
471 text-decoration: none;
472 transition: background 0.15s;
473 }
474
475 .ecs-license-nav__item:hover {
476 background: #f0f0f0;
477 color: #1e1e1e;
478 }
479
480 .ecs-license-nav__item.is-active {
481 background: #e8f0f8;
482 color: #2271b1;
483 font-weight: 600;
484 }
485
486 /* ── License Card ─────────────────────────────────────────── */
487
488 .ecs-license-card {
489 flex: 1;
490 max-width: 560px;
491 background: #fff;
492 border: 1px solid #e0e0e0;
493 border-radius: 8px;
494 padding: 32px;
495 display: flex;
496 flex-direction: column;
497 gap: 16px;
498 }
499
500 .ecs-license-card__icon {
501 font-size: 32px;
502 line-height: 1;
503 }
504
505 .ecs-license-card__title {
506 margin: 0;
507 font-size: 18px;
508 font-weight: 600;
509 color: #1e1e1e;
510 }
511
512 .ecs-license-card__desc {
513 margin: 0;
514 font-size: 13px;
515 color: #666;
516 line-height: 1.6;
517 }
518
519 /* ── License Status Badge ─────────────────────────────────── */
520
521 .ecs-license-status {
522 display: inline-flex;
523 align-items: center;
524 gap: 7px;
525 font-size: 12px;
526 font-weight: 600;
527 padding: 4px 12px;
528 border-radius: 20px;
529 align-self: flex-start;
530 }
531
532 .ecs-license-status__dot {
533 display: inline-block;
534 width: 7px;
535 height: 7px;
536 border-radius: 50%;
537 flex-shrink: 0;
538 }
539
540 .ecs-license-status--active {
541 background: #e9f6e9;
542 color: #2a6b2a;
543 }
544
545 .ecs-license-status--active .ecs-license-status__dot {
546 background: #3a9a3a;
547 box-shadow: 0 0 0 2px #b8e8b8;
548 }
549
550 .ecs-license-status--inactive {
551 background: #faf0e0;
552 color: #8a6000;
553 }
554
555 .ecs-license-status--inactive .ecs-license-status__dot {
556 background: #c08800;
557 box-shadow: 0 0 0 2px #f0d880;
558 }
559
560 /* ── License Key Display ──────────────────────────────────── */
561
562 .ecs-license-key-display {
563 display: flex;
564 align-items: center;
565 gap: 12px;
566 background: #f8f8f8;
567 border: 1px solid #e0e0e0;
568 border-radius: 6px;
569 padding: 10px 14px;
570 }
571
572 .ecs-license-key-display__label {
573 font-size: 11px;
574 font-weight: 600;
575 text-transform: uppercase;
576 letter-spacing: 0.5px;
577 color: #888;
578 white-space: nowrap;
579 }
580
581 .ecs-license-key-display__value {
582 font-family: monospace;
583 font-size: 13px;
584 color: #1e1e1e;
585 letter-spacing: 1px;
586 background: none;
587 padding: 0;
588 }
589
590 /* ── License Form ─────────────────────────────────────────── */
591
592 .ecs-license-form {
593 display: flex;
594 flex-direction: column;
595 gap: 10px;
596 }
597
598 .ecs-license-form__row {
599 display: flex;
600 gap: 8px;
601 align-items: center;
602 }
603
604 .ecs-license-form__input {
605 flex: 1;
606 font-family: monospace;
607 font-size: 13px;
608 letter-spacing: 1px;
609 padding: 6px 10px !important;
610 border: 1px solid #c0c0c0 !important;
611 border-radius: 4px !important;
612 box-shadow: inset 0 1px 2px rgba(0,0,0,.07) !important;
613 }
614
615 .ecs-license-form__input:focus {
616 border-color: #2271b1 !important;
617 box-shadow: 0 0 0 1px #2271b1, inset 0 1px 2px rgba(0,0,0,.07) !important;
618 }
619
620 .ecs-license-form__btn {
621 white-space: nowrap;
622 }
623
624 .ecs-license-form__hint {
625 margin: 0;
626 font-size: 12px;
627 color: #888;
628 }
629
630 .ecs-license-form__hint a {
631 color: #2271b1;
632 }
633
634 /* ── Deactivate Button ────────────────────────────────────── */
635
636 .ecs-license-deactivate-btn {
637 background: none;
638 border: 1px solid #d0d0d0;
639 border-radius: 4px;
640 padding: 6px 14px;
641 font-size: 12px;
642 color: #a05252;
643 cursor: pointer;
644 transition: background 0.15s, border-color 0.15s;
645 align-self: flex-start;
646 }
647
648 .ecs-license-deactivate-btn:hover {
649 background: #fde8e8;
650 border-color: #d09090;
651 }
652