PluginProbe
Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification / 5.5.0
Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification v5.5.0
5.5.0 5.4.0 5.3.2 5.3.1 5.1.6 5.1.5 trunk 2.1.5 2.11 2.12 2.13 2.15 3.0.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.51 3.0.60 3.0.61 3.0.62 3.0.70 3.0.71 3.0.72 3.1.0 All 34 releases
double-opt-in / assets / css / dashboard.css

dashboard.css in Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification 5.5.0, at assets/css/dashboard.css

340 lines 7.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Dashboard Styles
3 *
4 * Styles for the Double Opt-In Dashboard page.
5 *
6 * @package Forge12\DoubleOptIn
7 * @since 4.0.0
8 */
9
10 /* ==========================================================================
11 Dashboard Header
12 ========================================================================== */
13
14 .doi-dashboard-header {
15 margin-bottom: 30px;
16 }
17
18 .doi-dashboard-header h1 {
19 margin: 0 0 5px 0;
20 font-size: 28px;
21 font-weight: 600;
22 color: #1d2327;
23 }
24
25 .doi-dashboard-header p {
26 margin: 0;
27 color: #646970;
28 font-size: 14px;
29 }
30
31 /* ==========================================================================
32 Stats Grid
33 ========================================================================== */
34
35 .doi-stats-grid {
36 display: grid;
37 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
38 gap: 20px;
39 margin-bottom: 30px;
40 }
41
42 /* ==========================================================================
43 Stat Cards
44 ========================================================================== */
45
46 .doi-stat-card {
47 background: #fff;
48 border: 1px solid #c3c4c7;
49 border-radius: 8px;
50 padding: 24px;
51 text-align: center;
52 transition: all 0.2s ease;
53 position: relative;
54 overflow: hidden;
55 }
56
57 .doi-stat-card:hover {
58 border-color: #2271b1;
59 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
60 }
61
62 .doi-stat-card::before {
63 content: '';
64 position: absolute;
65 top: 0;
66 left: 0;
67 right: 0;
68 height: 4px;
69 background: #c3c4c7;
70 }
71
72 /* Stat Card Color Variants */
73 .doi-stat-card.doi-stat-primary::before {
74 background: linear-gradient(135deg, #2271b1, #135e96);
75 }
76
77 .doi-stat-card.doi-stat-success::before {
78 background: linear-gradient(135deg, #00a32a, #007017);
79 }
80
81 .doi-stat-card.doi-stat-warning::before {
82 background: linear-gradient(135deg, #dba617, #996800);
83 }
84
85 .doi-stat-card.doi-stat-info::before {
86 background: linear-gradient(135deg, #72aee6, #2271b1);
87 }
88
89 /* ==========================================================================
90 Stat Icons
91 ========================================================================== */
92
93 .doi-stat-icon {
94 width: 48px;
95 height: 48px;
96 margin: 0 auto 12px;
97 border-radius: 50%;
98 display: flex;
99 align-items: center;
100 justify-content: center;
101 font-size: 24px;
102 }
103
104 .doi-stat-primary .doi-stat-icon {
105 background: rgba(34, 113, 177, 0.1);
106 color: #2271b1;
107 }
108
109 .doi-stat-success .doi-stat-icon {
110 background: rgba(0, 163, 42, 0.1);
111 color: #00a32a;
112 }
113
114 .doi-stat-warning .doi-stat-icon {
115 background: rgba(219, 166, 23, 0.1);
116 color: #996800;
117 }
118
119 .doi-stat-info .doi-stat-icon {
120 background: rgba(114, 174, 230, 0.1);
121 color: #2271b1;
122 }
123
124 /* ==========================================================================
125 Stat Values
126 ========================================================================== */
127
128 .doi-stat-value {
129 font-size: 32px;
130 font-weight: 700;
131 color: #1d2327;
132 line-height: 1.2;
133 margin-bottom: 4px;
134 }
135
136 .doi-stat-label {
137 font-size: 13px;
138 color: #646970;
139 text-transform: uppercase;
140 letter-spacing: 0.5px;
141 font-weight: 500;
142 }
143
144 /* ==========================================================================
145 Section Boxes
146 ========================================================================== */
147
148 .doi-section {
149 background: #fff;
150 border: 1px solid #c3c4c7;
151 border-radius: 8px;
152 margin-bottom: 24px;
153 overflow: hidden;
154 }
155
156 .doi-section-header {
157 display: flex;
158 align-items: center;
159 justify-content: space-between;
160 padding: 16px 20px;
161 border-bottom: 1px solid #e0e0e0;
162 background: #f6f7f7;
163 }
164
165 .doi-section-header h2 {
166 margin: 0;
167 font-size: 15px;
168 font-weight: 600;
169 color: #1d2327;
170 display: flex;
171 align-items: center;
172 gap: 8px;
173 }
174
175 .doi-section-header h2 .dashicons {
176 color: #646970;
177 }
178
179 .doi-section-header .doi-view-all {
180 font-size: 13px;
181 text-decoration: none;
182 color: #2271b1;
183 font-weight: 500;
184 }
185
186 .doi-section-header .doi-view-all:hover {
187 color: #135e96;
188 }
189
190 /* ==========================================================================
191 Tables
192 ========================================================================== */
193
194 .doi-table {
195 width: 100% !important;
196 border-collapse: collapse;
197 }
198
199 .doi-table th {
200 text-align: left;
201 padding: 12px 20px;
202 font-size: 12px;
203 font-weight: 600;
204 color: #646970;
205 text-transform: uppercase;
206 letter-spacing: 0.5px;
207 background: #f9f9f9;
208 border-bottom: 1px solid #e0e0e0;
209 }
210
211 .doi-table td {
212 padding: 14px 20px;
213 font-size: 14px;
214 color: #1d2327;
215 border-bottom: 1px solid #f0f0f0;
216 vertical-align: middle;
217 }
218
219 .doi-table tr:last-child td {
220 border-bottom: none;
221 }
222
223 .doi-table tr:hover td {
224 background: #f9f9f9;
225 }
226
227 .doi-table a {
228 color: #2271b1;
229 text-decoration: none;
230 font-weight: 500;
231 }
232
233 .doi-table a:hover {
234 color: #135e96;
235 text-decoration: underline;
236 }
237
238 .doi-table .doi-number {
239 font-weight: 600;
240 font-variant-numeric: tabular-nums;
241 }
242
243 /* ==========================================================================
244 Badges
245 ========================================================================== */
246
247 .doi-badge {
248 display: inline-flex;
249 align-items: center;
250 padding: 4px 10px;
251 border-radius: 12px;
252 font-size: 12px;
253 font-weight: 500;
254 gap: 4px;
255 }
256
257 .doi-badge-confirmed {
258 background: rgba(0, 163, 42, 0.1);
259 color: #007017;
260 }
261
262 .doi-badge-pending {
263 background: rgba(219, 166, 23, 0.15);
264 color: #996800;
265 }
266
267 /* ==========================================================================
268 Rate Bar
269 ========================================================================== */
270
271 .doi-rate-bar {
272 display: flex;
273 align-items: center;
274 gap: 10px;
275 }
276
277 .doi-rate-bar-bg {
278 flex: 1;
279 height: 6px;
280 background: #e0e0e0;
281 border-radius: 3px;
282 overflow: hidden;
283 max-width: 80px;
284 }
285
286 .doi-rate-bar-fill {
287 height: 100%;
288 background: linear-gradient(90deg, #00a32a, #00c853);
289 border-radius: 3px;
290 transition: width 0.3s ease;
291 }
292
293 .doi-rate-value {
294 font-weight: 600;
295 font-size: 13px;
296 min-width: 40px;
297 }
298
299 /* ==========================================================================
300 Empty State
301 ========================================================================== */
302
303 .doi-empty-state {
304 padding: 40px 20px;
305 text-align: center;
306 color: #646970;
307 }
308
309 .doi-empty-state .dashicons {
310 font-size: 48px;
311 width: 48px;
312 height: 48px;
313 margin-bottom: 12px;
314 opacity: 0.3;
315 }
316
317 /* ==========================================================================
318 Grid Layouts
319 ========================================================================== */
320
321 .doi-grid-2 {
322 display: grid;
323 grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
324 gap: 24px;
325 }
326
327 /* ==========================================================================
328 Responsive
329 ========================================================================== */
330
331 @media (max-width: 782px) {
332 .doi-stats-grid {
333 grid-template-columns: repeat(2, 1fr);
334 }
335
336 .doi-grid-2 {
337 grid-template-columns: 1fr;
338 }
339 }
340