PluginProbe
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings / 7.1.1
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings v7.1.1
7.2.1 7.2 7.1.2 7.1.1 7.1 7.0.4 7.0.6 7.0.7 6.3.8 6.3.7 6.3.6 6.3.5 6.3.4 6.3.3 6.3.1 trunk 5.7.3 5.7.5 5.8.1 5.8.2 5.8.3 5.8.4 5.8.6 6.0.4 6.0.5 All 36 releases
mlsimport / admin / css / mlsimport-onboarding.css

mlsimport-onboarding.css in MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings 7.1.1, at admin/css/mlsimport-onboarding.css

1,235 lines 29.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * MLSImport Onboarding Wizard Styles - Modern Design
3 *
4 * Skins the 6-step onboarding wizard (admin.php?page=mlsimport-onboarding):
5 * a full-screen fixed overlay that sits above wp-admin, with a progress bar,
6 * numbered step indicators, forms, connection-test panels, an import log,
7 * field-mapping tables and a success screen.
8 *
9 * Colours/spacing come from CSS custom properties (--primary-color,
10 * --text-primary, --background-white, --shadow-sm, --transition-speed, etc.)
11 * that are defined elsewhere (the wizard partial / a shared variables sheet),
12 * NOT in this file — so most values here are token references.
13 */
14
15 /* Import Inter font (remote Google Fonts import — the wizard's base typeface). */
16 @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
17
18 /* Lock the wp-admin body from scrolling while the fixed wizard overlay is up. */
19 .admin_page_mlsimport-onboarding {
20 overflow: hidden;
21 }
22
23
24 /* Main Wrapper — full-viewport fixed overlay pinned above wp-admin chrome
25 (very high z-index), scrolls internally on the y-axis.
26
27 Column flex so the help/restart footer can be pushed to the bottom edge on
28 short steps (see .mlsimport-wizard-footer margin-top:auto) instead of ending
29 mid-screen with blank space under it. Flex items keep min-height:auto, so
30 tall steps still grow past the viewport and scroll normally. */
31 .mlsimport-wizard-wrap {
32 position: fixed;
33 top: 0;
34 left: 0;
35 right: 0;
36 bottom: 0;
37 width: 100%;
38 height: 100vh;
39 margin: 0;
40 display: flex;
41 flex-direction: column;
42 background: var(--background-white);
43 z-index: 999999;
44 overflow-y: auto;
45 font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
46 color: var(--text-primary);
47 line-height: 1.5;
48 }
49
50
51 .mlsimport-wizard-header-bar{
52 display: flex;
53 align-items: center;
54 justify-content: space-between;
55 padding: 0px 30px;
56 background: var(--background-soft);
57 }
58
59
60 .mlsimport-wizard-close {
61 display: flex;
62 align-items: center;
63 justify-content: center;
64 width: 36px;
65 height: 36px;
66 color: var(--text-secondary);
67 text-decoration: none;
68 transition: all var(--transition-speed) ease;
69 border-radius: 50%;
70 }
71
72 .mlsimport-wizard-close:hover {
73 background-color: var(--background-light);
74 color: var(--error-color);
75 }
76
77
78
79
80
81 /* Suppress stray wp-admin notices while the wizard is active.
82 NOTE: despite the "Hide" label these declarations set display:inline-block
83 (not none), so the effect here is cosmetic layout rather than true hiding. */
84 body.mlsimport-wizard-active .notice,
85 body.mlsimport-wizard-active .update-nag,
86 body.mlsimport-wizard-active #message,
87 body.mlsimport-wizard-active .updated,
88 body.mlsimport-wizard-active .error,
89 body.mlsimport-wizard-active .is-dismissible {
90 display: inline-block;
91 font-weight: 500;
92 margin-right: 0.5rem;
93 }
94
95 /* Import config styling */
96 .mlsimport-filter-group {
97 background-color: var(--background-light);
98 border-radius: var(--border-radius);
99 padding: 1.25rem;
100 margin-bottom: 1.25rem;
101 }
102
103
104 .mlsimport-config-intro,
105 .mlsimport-test-intro {
106 font-size: 0.938rem;
107 margin-bottom: 1.5rem;
108 }
109
110 .mlsimport-import-summary {
111 background-color: var(--background-light);
112 border-radius: var(--border-radius);
113 padding: 1rem;
114 margin-bottom: 1.25rem;
115 }
116
117 .mlsimport-import-summary p {
118 margin: 0.375rem 0;
119 }
120
121 .mlsimport-config-note {
122 background-color: rgba(28, 25, 23, 0.05);
123 border-left: 4px solid var(--primary-color);
124 padding: 1rem;
125 margin-top: 1.25rem;
126 border-radius: 10px;
127 }
128
129 .mlsimport-config-note p {
130 margin: 0;
131 color: var(--text-secondary);
132 }
133
134 /* Status indicators */
135 .mlsimport-status-success {
136 color: var(--success-deep);
137 font-weight: 600;
138 }
139
140 .mlsimport-status-progress {
141 color: var(--warning-color);
142 font-weight: 600;
143 }
144
145 .mlsimport-status-pending {
146 color: var(--text-light);
147 font-weight: 600;
148 }
149
150 /* Success page specific */
151 .mlsimport-summary-grid {
152 display: flex;
153 flex-wrap: wrap;
154 gap: 1.25rem;
155 margin-top: 1rem;
156 }
157
158 .mlsimport-summary-item {
159 flex: 1;
160 min-width: 150px;
161 text-align: center;
162 background-color: var(--background-white);
163 border-radius: var(--radius-card);
164 padding: 1rem;
165 box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05);
166 }
167
168 .mlsimport-summary-value {
169 font-size: 1.5rem;
170 font-weight: 600;
171 margin-bottom: 0.5rem;
172 color: var(--primary-color);
173 }
174
175 .mlsimport-summary-label {
176 color: var(--text-secondary);
177 font-size: 0.875rem;
178 }
179
180 .mlsimport-next-steps {
181 margin: 2rem 0;
182 }
183
184 .mlsimport-steps-list {
185 display: flex;
186 flex-direction: column;
187 gap: 1rem;
188 }
189
190 .mlsimport-next-step {
191 display: flex;
192 align-items: flex-start;
193 padding: 1rem;
194 background-color: var(--background-white);
195 border-radius: var(--radius-card);
196 border: 1px solid var(--border-color);
197 box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05);
198 }
199
200 .mlsimport-step-number {
201 display: flex;
202 align-items: center;
203 justify-content: center;
204 width: 30px;
205 height: 30px;
206 background-color: var(--accent-color);
207 color: white;
208 border-radius: 50%;
209 font-weight: 600;
210 margin-right: 1rem;
211 flex-shrink: 0;
212 }
213
214 .mlsimport-step-title {
215 font-weight: 600;
216 margin-bottom: 0.25rem;
217 color: var(--text-primary);
218 }
219
220 .mlsimport-step-description {
221 font-size: 0.875rem;
222 color: var(--text-secondary);
223 }
224
225 .mlsimport-finish-actions {
226 text-align: center;
227 margin-top: 2rem;
228 }
229
230 /* The closing CTA is the same pill, one size up on padding only - it is the
231 single action on that step, so it may sit wider, but not on a different
232 type scale than every other button in the plugin. */
233 .mlsimport-finish-button {
234 background-color: var(--primary-color) !important;
235 color: white !important;
236 border: 1px solid var(--primary-color) !important;
237 padding: 11px 32px !important;
238 border-radius: var(--radius-pill, 999px) !important;
239 font-size: 14px !important;
240 line-height: 1.5 !important;
241 min-height: 0 !important;
242 font-weight: 500 !important;
243 box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.08) !important;
244 transition: all var(--transition-speed) ease !important;
245 }
246
247 .mlsimport-finish-button:hover {
248 background-color: var(--primary-hover) !important;
249 border-color: var(--primary-hover) !important;
250 box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45) !important;
251 }
252
253 /* Error handling */
254 .mlsimport-error-notice {
255 background-color: var(--error-soft);
256 border-left: 4px solid var(--error-color);
257 padding: 1rem;
258 margin-bottom: 1.25rem;
259 border-radius: 10px;
260 }
261
262 .mlsimport-error-notice p {
263 margin: 0;
264 color: var(--error-color);
265 }
266
267 .mlsimport-field-error {
268 border-color: var(--error-color) !important;
269 box-shadow: 0 0 0 1px var(--error-color) !important;
270 }
271
272 /* Responsive adjustments */
273 @media (max-width: 782px) {
274 .mlsimport-wizard-step-title {
275 display: none;
276 }
277
278 .mlsimport-wizard-content {
279 padding: 1rem;
280 }
281
282 .mlsimport-content-body .form-table th {
283 padding-bottom: 0;
284 }
285
286 .mlsimport-links-grid,
287 .mlsimport-resources-grid,
288 .mlsimport-summary-grid {
289 flex-direction: column;
290 grid-template-columns: 1fr;
291 }
292
293
294 .mlsimport-quick-link,
295 .mlsimport-resource-link,
296 .mlsimport-summary-item {
297 min-width: auto;
298 }
299
300 .mlsimport-price-fields {
301 flex-direction: column;
302 gap: 0.5rem;
303 }
304
305 .mlsimport-wizard-actions {
306 flex-direction: column;
307 gap: 1rem;
308 }
309
310 .mlsimport-wizard-back,
311 .mlsimport-wizard-next,
312 .mlsimport-wizard-submit {
313 width: 100%;
314 text-align: center;
315 }
316 } none !important; /* NOTE: orphaned "none !important;" fragment after the media-query close brace — appears to be a leftover typo; browsers ignore it. Left as-is. */
317
318
319 /* Header bar styling */
320 .mlsimport-wizard-header-bar {
321 display: flex;
322 justify-content: space-between;
323 align-items: center;
324 border-bottom: 1px solid var(--border-color);
325 padding: 0 1.5rem;
326 background-color: var(--background-white);
327 box-shadow: var(--shadow-sm);
328 }
329
330
331
332 /* Progress bar and step indicators */
333 .mlsimport-wizard-header {
334 padding: 15px 30px;
335 background-color: var(--background-white);
336 border-bottom: 1px solid var(--border-color);
337 }
338
339 .mlsimport-wizard-progress-bar {
340 height: 6px;
341 background-color: var(--background-light);
342 margin-bottom: 24px;
343 border-radius: 10px;
344 overflow: hidden;
345 }
346
347 .mlsimport-wizard-progress-bar-inner {
348 height: 100%;
349 background-color: var(--accent-color);
350 transition: width 0.3s ease;
351 }
352
353 .mlsimport-wizard-steps {
354 display: flex;
355 justify-content: space-between;
356 margin-bottom: 20px;
357 position: relative;
358 }
359
360 /* Step indicators with connecting lines */
361 .mlsimport-wizard-steps::before {
362 content: "";
363 position: absolute;
364 top: 15px;
365 left: 0;
366 right: 0;
367 height: 1px;
368 background-color: var(--border-color);
369 z-index: 1;
370 }
371
372 .mlsimport-wizard-step {
373 text-align: center;
374 position: relative;
375 flex: 1;
376 cursor: pointer;
377 transition: all var(--transition-speed) ease;
378 z-index: 2;
379 }
380
381 .mlsimport-wizard-step-number {
382 display: flex;
383 align-items: center;
384 justify-content: center;
385 width: 30px;
386 height: 30px;
387 line-height: 30px;
388 text-align: center;
389 margin: 0 auto 8px;
390 border-radius: 50%;
391 background: var(--background-light);
392 color: var(--text-light);
393 font-weight: 600;
394 position: relative;
395 z-index: 2;
396 border: 2px solid var(--border-color);
397 transition: all var(--transition-speed) ease;
398 }
399
400 .mlsimport-wizard-step.active .mlsimport-wizard-step-number {
401 background: var(--accent-color);
402 color: white;
403 border-color: var(--accent-color);
404 box-shadow: 0 0 0 4px rgb(232 93 60 / 13%);
405 }
406
407 /* Mint surface with deep-green text, the portal's success pattern. The saturated
408 --success-color is a dot/glyph accent there, never a filled surface. */
409 .mlsimport-wizard-step.completed .mlsimport-wizard-step-number {
410 background: var(--success-soft);
411 color: var(--success-deep);
412 border-color: var(--success-soft);
413 }
414
415 /* Create checkmark for completed steps */
416 .mlsimport-wizard-step.completed .mlsimport-wizard-step-number::before {
417 content: "";
418 position: absolute;
419 top: 50%;
420 left: 50%;
421 transform: translate(-50%, -50%);
422 font-size: 14px;
423 }
424
425 .mlsimport-wizard-step.completed .mlsimport-wizard-step-number {
426 font-size: 0;
427 }
428
429 .mlsimport-wizard-step-title {
430 font-size: 0.75rem;
431 color: var(--text-light);
432 max-width: 170px;
433 margin: 0 auto;
434 overflow: hidden;
435 text-overflow: ellipsis;
436 white-space: nowrap;
437 transition: all var(--transition-speed) ease;
438 }
439
440 .mlsimport-wizard-step.active .mlsimport-wizard-step-title {
441 color: var(--accent-color);
442 font-weight: 600;
443 }
444
445 .mlsimport-wizard-step.completed .mlsimport-wizard-step-title {
446 color: var(--success-deep);
447 }
448
449 .mlsimport-wizard-step:hover .mlsimport-wizard-step-number {
450 transform: scale(1.1);
451 }
452
453 /* Content Area — the wrap is a flex column, so this card is a flex item:
454 width:100% or it would shrink-to-fit its text instead of filling out to
455 max-width, and flex-grow:0 to cancel the grow it inherits from
456 .mlsimport_2025_card (otherwise the card swallows the space that must go
457 under it to push the footer down). */
458 .mlsimport-wizard-content {
459 padding: 2rem;
460 width: 100%;
461 box-sizing: border-box;
462 flex-grow: 0;
463 max-width: 900px;
464 margin: 0 auto;
465 }
466
467 .mlsimport-wizard-content-30margin{
468 box-sizing: border-box;
469 margin: 30px auto;
470 }
471
472 .mlsimport-wizard-content-field-mapping{
473 width: 100%;
474 max-width: unset;
475 margin: 30px 0px;
476 }
477
478 .mlsimport-wizard-content-header {
479 margin-bottom: 1.5rem;
480 text-align: center;
481 }
482
483 .mlsimport-wizard-content-header h2 {
484 margin-top: 0;
485 margin-bottom: 0.5rem;
486 font-size: 1.5rem;
487 font-weight: 600;
488 color: var(--text-primary);
489 }
490
491 .mlsimport-wizard-description {
492 color: var(--text-secondary);
493 font-size: 0.875rem;
494 margin-top: 0;
495 }
496
497 /* Form Styling */
498 .mlsimport-wizard-title{
499 font-size: 25px;
500 }
501 .mlsimport-wizard-content-body .form-table {
502 margin-top: 0;
503 }
504
505 .mlsimport-wizard-content-body .form-table th {
506 width: 30%;
507 font-weight: 500;
508 color: var(--text-primary);
509 }
510
511 .mlsimport-wizard-content-body input[type="text"],
512 .mlsimport-wizard-content-body input[type="password"],
513 .mlsimport-wizard-content-body select {
514 width: 90%;
515 max-width: 100%;
516 border: 1px solid var(--border-color);
517 border-radius: 10px;
518 background-color: var(--background-white);
519 color: var(--text-primary);
520 transition: all var(--transition-speed) ease;
521 }
522
523 .mlsimport-wizard-content-body input[type="text"],
524 .mlsimport-wizard-content-body input[type="password"] {
525 padding: 0.5rem 0.75rem!important;
526 }
527
528 /* The dropdown cannot share the inputs' 8px vertical padding. wp-admin core
529 gives every select `line-height: 2.71429` - a 38px line box at 14px - inside
530 a 40px border-box control, so 8px top and bottom left the text only 22px to
531 sit in and the option label was clipped by the bottom border. Zero vertical
532 padding lets the 38px line box centre itself in the 38px content box; the
533 right padding keeps the chevron clear of the text. Multi-selects are
534 excluded - they size to their rows. */
535 .mlsimport-wizard-content-body select:not([multiple]) {
536 height: 40px;
537 min-height: 40px;
538 line-height: 38px;
539 padding: 0 2rem 0 0.75rem!important;
540 }
541
542 .mlsimport-wizard-content-body input[type="text"]:focus,
543 .mlsimport-wizard-content-body input[type="password"]:focus,
544 .mlsimport-wizard-content-body select:focus {
545 outline: none;
546 border-color: var(--accent-color);
547 box-shadow: 0 0 0 3px rgba(232, 93, 60, 0.2);
548 }
549
550 .mlsimport-wizard-field-group {
551 margin-bottom: 1.25rem;
552 }
553
554 .mlsimport-wizard-field-label {
555 font-weight: 500;
556 margin-bottom: 0.375rem;
557 display: block;
558 color: var(--text-primary);
559 }
560
561 .mlsimport-wizard-field-help {
562 color: var(--text-light);
563 font-size: 0.813rem;
564 margin-top: 0.375rem;
565 }
566
567 /* Action Buttons */
568 .mlsimport-wizard-actions {
569 display: flex;
570 justify-content: space-between;
571 margin-top: 1.875rem;
572 padding-top: 1.25rem;
573 border-top: 1px solid var(--border-color);
574 }
575
576 .mlsimport-wizard-back {
577 padding: 0.5rem 1rem;
578 background-color: var(--background-white);
579 color: var(--text-primary);
580 border: 1px solid var(--border-color);
581 border-radius: 999px;
582 font-weight: 500;
583 transition: all var(--transition-speed) ease;
584 }
585
586 .mlsimport-wizard-back:hover {
587 background-color: var(--background-soft);
588 }
589
590 .mlsimport-wizard-next,
591 .mlsimport-wizard-submit {
592 padding: 0.5rem 1.25rem;
593 background-color: var(--primary-color);
594 color: white;
595 border: none;
596 border-radius: 999px;
597 font-weight: 500;
598 transition: all var(--transition-speed) ease;
599 }
600
601 .mlsimport-wizard-next:hover,
602 .mlsimport-wizard-submit:hover {
603 background-color: var(--primary-hover);
604 box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45);
605 }
606
607 /* Footer — last flex child of the wrap. margin-top:auto eats the leftover
608 vertical space, so on short steps the bar sits on the bottom edge of the
609 viewport, and on tall steps it simply follows the content. */
610 .mlsimport-wizard-footer {
611 margin-top: auto;
612 padding: 1rem 1.5rem;
613 background-color: var(--background-light);
614 border-top: 1px solid var(--border-color);
615 display: flex;
616 justify-content: space-between;
617 align-items: center;
618 color: var(--text-light);
619 font-size: 0.813rem;
620 }
621
622 .mlsimport-wizard-restart {
623 color: var(--error-color);
624 font-size: 0.75rem;
625 }
626
627 .mlsimport-restart-link {
628 color: var(--error-color);
629 text-decoration: none;
630 }
631
632 .mlsimport-restart-link:hover {
633 text-decoration: underline;
634 }
635
636 /* Step-specific Styling */
637 .mlsimport-connection-test {
638 margin: 1.25rem 0;
639 padding: 1rem;
640 border-radius: var(--border-radius);
641 background-color: var(--background-light);
642 border-left: 4px solid rgba(28, 25, 23, 0.18);
643 }
644
645 .mlsimport-connection-test.success {
646 border-color: var(--success-deep);
647 background-color: var(--success-soft);
648 }
649
650 .mlsimport-connection-test.error {
651 border-color: var(--error-color);
652 background-color: var(--error-soft);
653 }
654
655 .mlsimport-connection-test p {
656 margin: 0;
657 }
658
659 .mlsimport-test-button {
660 margin-top: 0.625rem !important;
661 }
662
663 /* Log Display */
664 .mlsimport-log-container {
665 max-height: 300px;
666 overflow-y: auto;
667 background-color: var(--background-light);
668 border: 1px solid var(--border-color);
669 border-radius: var(--border-radius);
670 padding: 0.75rem;
671 font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
672 font-size: 0.75rem;
673 line-height: 1.5;
674 margin: 1rem 0;
675 }
676
677 .mlsimport-log-entry {
678 margin-bottom: 0.313rem;
679 padding-bottom: 0.313rem;
680 border-bottom: 1px dotted var(--border-color);
681 }
682
683 .mlsimport-log-entry:last-child {
684 border-bottom: none;
685 margin-bottom: 0;
686 padding-bottom: 0;
687 }
688
689 .mlsimport-log-success {
690 color: var(--success-deep);
691 }
692
693 .mlsimport-log-error {
694 color: var(--error-color);
695 }
696
697 .mlsimport-log-warning {
698 color: var(--warning-color);
699 }
700
701 /* Loading Spinner */
702 .mlsimport-loading {
703 display: inline-block;
704 width: 20px;
705 height: 20px;
706 margin-left: 0.625rem;
707 border: 2px solid rgba(28, 25, 23, 0.1);
708 border-radius: 50%;
709 border-top-color: var(--primary-color);
710 animation: mlsimport-spin 1s linear infinite;
711 }
712
713 @keyframes mlsimport-spin {
714 to {
715 transform: rotate(360deg);
716 }
717 }
718
719 /* Card Styling */
720 .mlsimport-card {
721 background-color: var(--background-white);
722 border-radius: var(--radius-card);
723 box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05);
724 padding: 1.5rem;
725 margin-bottom: 1.5rem;
726 border: 1px solid var(--border-color);
727 }
728
729 .mlsimport-card-header {
730 margin-bottom: 1rem;
731 border-bottom: 1px solid var(--border-color);
732 padding-bottom: 0.75rem;
733 }
734
735 .mlsimport-card-title {
736 margin: 0;
737 font-size: 1rem;
738 font-weight: 600;
739 color: var(--text-primary);
740 }
741
742 /* Notification messages */
743 .mlsimport-message {
744 padding: 1rem;
745 border-radius: var(--border-radius);
746 margin-bottom: 1rem;
747 }
748
749 .mlsimport-message-success {
750 background-color: var(--success-soft);
751 border-left: 4px solid var(--success-deep);
752 color: var(--success-deep);
753 }
754
755 .mlsimport-message-error {
756 background-color: var(--error-soft);
757 border-left: 4px solid var(--error-color);
758 color: var(--error-color);
759 }
760
761 .mlsimport-message-warning {
762 background-color: var(--warning-soft);
763 border-left: 4px solid var(--warning-color);
764 color: var(--warning-color);
765 }
766
767 .mlsimport-message-info {
768 background-color: rgba(28, 25, 23, 0.1);
769 border-left: 4px solid var(--primary-color);
770 color: var(--primary-color);
771 }
772
773 /* Autocomplete menu styling */
774 .mlsimport-autocomplete-menu {
775 border-radius: var(--border-radius);
776 box-shadow: var(--shadow-md);
777 border: 1px solid var(--border-color);
778 background-color: var(--background-white);
779 z-index: 999999;
780 }
781
782 .ui-menu-item {
783 padding: 0.5rem 0.75rem;
784 cursor: pointer;
785 font-size: 0.875rem;
786 transition: background-color var(--transition-speed) ease;
787 }
788
789 .ui-menu-item:hover {
790 background-color: var(--background-light);
791 }
792
793 .ui-menu-item.ui-state-focus {
794 background-color: var(--accent-soft);
795 color: var(--accent-color);
796 margin: 0;
797 }
798
799 /* Welcome page styling */
800
801
802 .mlsimport-welcome-intro {
803 font-size: 1rem;
804 line-height: 1.5;
805 margin-bottom: 1.5rem;
806 }
807
808 .mlsimport-welcome-note {
809 background-color: var(--background-light);
810 border-radius: var(--border-radius);
811 padding: 1.25rem;
812 margin: 1.5rem 0;
813 }
814
815 .mlsimport-requirements-check {
816 margin-top: 2rem;
817 }
818
819 .mlsimport-requirements-table {
820 width: 100%;
821 border-collapse: separate;
822 border-spacing: 0;
823 margin-bottom: 1.5rem;
824 border: 1px solid var(--border-color);
825 border-radius: var(--border-radius);
826 overflow: hidden;
827 }
828
829 .mlsimport-requirements-table th {
830 background-color: var(--background-light);
831 text-align: left;
832 padding: 0.75rem 1rem;
833 font-weight: 600;
834 color: var(--text-primary);
835 border-bottom: 1px solid var(--border-color);
836 }
837
838 .mlsimport-requirements-table td {
839 padding: 0.75rem 1rem;
840 border-bottom: 1px solid var(--border-color);
841 }
842
843 .mlsimport-requirements-table tr:last-child td {
844 border-bottom: none;
845 }
846
847 .mlsimport-requirement-status.success {
848 color: var(--success-deep);
849 }
850
851 .mlsimport-requirement-status.error {
852 color: var(--error-color);
853 }
854
855 .mlsimport-warning-message {
856 background-color: var(--warning-soft);
857 border-left: 4px solid var(--warning-color);
858 padding: 1rem;
859 margin: 1.25rem 0;
860 border-radius: 10px;
861 }
862
863 .mlsimport-success-message {
864 background-color: var(--success-soft);
865 border-left: 4px solid var(--success-deep);
866 padding: 1rem;
867 margin: 1.25rem 0;
868 border-radius: 10px;
869 }
870
871 /* Success page styling */
872 .mlsimport-success-header {
873 display: flex;
874 align-items: center;
875 margin-bottom: 2rem;
876 background-color: var(--success-soft);
877 padding: 1.5rem;
878 border-radius: var(--radius-card);
879 }
880
881 .mlsimport-success-icon {
882 margin-right: 1.25rem;
883 }
884
885 .mlsimport-success-icon .dashicons {
886 font-size: 3rem;
887 width: 3rem;
888 height: 3rem;
889 color: var(--success-deep);
890 }
891
892 .mlsimport-links-grid,
893 .mlsimport-resources-grid {
894 display: grid;
895 grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
896 gap: 1rem;
897 margin-bottom: 1.5rem;
898 }
899
900 .mlsimport-quick-link,
901 .mlsimport-resource-link {
902 text-decoration: none;
903 display: flex;
904 align-items: center;
905 padding: 1rem;
906 border-radius: var(--radius-card);
907 background-color: var(--background-white);
908 border: 1px solid var(--border-color);
909 transition: all var(--transition-speed) ease;
910 color: var(--text-primary);
911 }
912
913 .mlsimport-quick-link:hover,
914 .mlsimport-resource-link:hover {
915 border-color: var(--accent-color);
916 box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05);
917 }
918
919 .mlsimport-quick-link-icon .dashicons,
920 .mlsimport-resource-icon .dashicons {
921 color: var(--accent-color);
922 font-size: 1.5rem;
923 width: 1.5rem;
924 height: 1.5rem;
925 margin-right: 1rem;
926 }
927
928 /* Test import page styling */
929 .mlsimport-status-message {
930 padding: 1rem;
931 border-radius: var(--border-radius);
932 margin-bottom: 1.25rem;
933 }
934
935 .mlsimport-status-message.success {
936 background-color: var(--success-soft);
937 border-left: 4px solid var(--success-deep);
938 }
939
940 .mlsimport-status-message.error {
941 background-color: var(--error-soft);
942 border-left: 4px solid var(--error-color);
943 }
944
945 .mlsimport-status-message.warning {
946 background-color: var(--warning-soft);
947 border-left: 4px solid var(--warning-color);
948 }
949
950 .mlsimport-status-message.progress {
951 background-color: rgba(28, 25, 23, 0.1);
952 border-left: 4px solid var(--primary-color);
953 }
954
955 .mlsimport-progress-bar {
956 height: 8px;
957 background-color: var(--background-light);
958 border-radius: 4px;
959 overflow: hidden;
960 margin-top: 0.75rem;
961 margin-bottom: 15px;
962 }
963
964 .mlsimport-progress-bar-inner {
965 height: 100%;
966 background-color: var(--accent-color);
967 width: 0;
968 transition: width 0.3s ease;
969 }
970
971 /* Field mapping styling */
972 .mlsimport-mapping-intro {
973 font-size: 0.938rem;
974 margin-bottom: 1.5rem;
975 }
976
977 .mlsimport-section-inner {
978 margin-bottom: 2rem;
979 }
980
981 .mlsimport-section-inner h3 {
982 margin-top: 0;
983 padding-bottom: 0.625rem;
984 margin-bottom: 1rem;
985 border-bottom: 1px solid var(--border-color);
986 color: var(--text-primary);
987 }
988
989 .mlsimport-mapping-tips {
990 background-color: rgba(28, 25, 23, 0.05);
991 border-left: 4px solid var(--primary-color);
992 padding: 1rem;
993 margin-top: 1.25rem;
994 border-radius: 10px;
995 }
996
997 .mlsimport-mapping-tips h3 {
998 margin-top: 0;
999 margin-bottom: 0.75rem;
1000 font-size: 1rem;
1001 border-bottom: none;
1002 padding-bottom: 0;
1003 }
1004
1005 /* Field selection interface */
1006 .mlsimport-field-filters {
1007 display: flex;
1008 flex-wrap: wrap;
1009 gap: 0.75rem;
1010 margin-bottom: 1rem;
1011 }
1012
1013 .mlsimport-field-filters .button {
1014 background-color: var(--background-white);
1015 border: 1px solid var(--border-color);
1016 color: var(--text-primary);
1017 border-radius: 999px;
1018 transition: all var(--transition-speed) ease;
1019 }
1020
1021 .mlsimport-field-filters .button:hover {
1022 background-color: var(--background-soft);
1023 }
1024
1025 .mlsimport-field-filters .button.active {
1026 background-color: var(--accent-color);
1027 border-color: var(--accent-color);
1028 color: white;
1029 }
1030
1031 .mlsimport-field-search {
1032 margin-bottom: 1rem;
1033 }
1034
1035 .mlsimport-field-search input[type="text"] {
1036 width: 100%;
1037 padding: 0.5rem 0.75rem;
1038 border: 1px solid var(--border-color);
1039 border-radius: 10px;
1040 }
1041
1042 .mlsimport-field-table {
1043 border-collapse: separate;
1044 border-spacing: 0;
1045 width: 100%;
1046 margin-bottom: 1.5rem;
1047 border: 1px solid var(--border-color);
1048 border-radius: var(--border-radius);
1049 overflow: hidden;
1050 }
1051
1052 .mlsimport-field-table th {
1053 background-color: var(--background-light);
1054 text-align: left;
1055 padding: 0.75rem 1rem;
1056 font-weight: 600;
1057 color: var(--text-primary);
1058 border-bottom: 1px solid var(--border-color);
1059 }
1060
1061 .mlsimport-field-table td {
1062 padding: 0.75rem 1rem;
1063 border-bottom: 1px solid var(--border-color);
1064 vertical-align: middle;
1065 }
1066
1067 .mlsimport-field-table tr:last-child td {
1068 border-bottom: none;
1069 }
1070
1071 .mlsimport-field-table input[type="checkbox"] {
1072 border: 1px solid var(--border-color);
1073 border-radius: 3px;
1074 }
1075
1076 .mlsimport-field-table input[type="checkbox"]:checked {
1077 background-color: var(--accent-color);
1078 border-color: var(--accent-color);
1079 }
1080
1081 /* Account verification styling */
1082 .mlsimport_warning {
1083 padding: 0.75rem 1rem;
1084 margin-bottom: 1rem;
1085 border-radius: var(--border-radius);
1086 background-color: var(--error-soft);
1087 border-left: 4px solid var(--error-color);
1088 color: var(--text-primary);
1089 }
1090
1091 .mlsimport_warning.mlsimport_validated {
1092 background-color: var(--success-soft);
1093 border-left: 4px solid var(--success-deep);
1094 }
1095
1096 .mlsimport-fieldset {
1097 margin-bottom: 1.25rem;
1098 }
1099
1100
1101 .mlsimport-input {
1102 width: 100%;
1103 padding: 0.5rem 0.75rem;
1104 border: 1px solid var(--border-color);
1105 border-radius: 10px;
1106 transition: all var(--transition-speed) ease;
1107 }
1108
1109 .mlsimport-input:focus {
1110 outline: none;
1111 border-color: var(--accent-color);
1112 box-shadow: 0 0 0 3px rgba(232, 93, 60, 0.2);
1113 }
1114
1115 /* Same pill as .button.mlsimport_button everywhere else in the plugin. These
1116 buttons only carried .button.button-primary, so they kept wp-admin core's
1117 13px text and 38px line-height and rendered 54px tall - 13px taller than the
1118 Back / Continue pills in this wizard's own footer. Geometry (14px text, 1.5
1119 line-height, 9px 24px padding, 1px border, hairline shadow) is copied from
1120 the portal standard so the two match exactly. */
1121 .mlsimport-save-account,
1122 .mlsimport-save-mls-data {
1123 background-color: var(--primary-color) !important;
1124 color: white !important;
1125 border: 1px solid var(--primary-color) !important;
1126 padding: 9px 24px !important;
1127 border-radius: var(--radius-pill, 999px) !important;
1128 font-size: 14px !important;
1129 line-height: 1.5 !important;
1130 min-height: 0 !important;
1131 font-weight: 500 !important;
1132 box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.08) !important;
1133 transition: all var(--transition-speed) ease !important;
1134 margin-top: 0.5rem !important;
1135 }
1136
1137 .mlsimport-save-account:hover,
1138 .mlsimport-save-mls-data:hover {
1139 background-color: var(--primary-hover) !important;
1140 border-color: var(--primary-hover) !important;
1141 box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45) !important;
1142 }
1143
1144 /* Import configuration styling */
1145 .mlsimport-price-fields {
1146 display: flex;
1147 gap: 1rem;
1148 }
1149
1150 .mlsimport-min-price,
1151 .mlsimport-max-price {
1152 flex: 1;
1153 }
1154
1155
1156
1157 /* Legacy welcome/requirements overrides — a second pass of rules (plain hex,
1158 collapsed table borders) that re-declare selectors already styled above with
1159 design tokens. Later source order means these win where they overlap. */
1160 .mlsimport-welcome-intro {
1161 font-size: 16px;
1162 line-height: 1.5;
1163 }
1164
1165 .mlsimport-welcome-features {
1166 margin: 20px 0;
1167 }
1168
1169 .mlsimport-welcome-features ul {
1170 margin-left: 20px;
1171 }
1172
1173 .mlsimport-welcome-features li {
1174 margin-bottom: 10px;
1175 list-style: circle;
1176 }
1177
1178 .mlsimport-requirements-table {
1179 border-collapse: collapse;
1180 width: 100%;
1181 margin-bottom: 20px;
1182 }
1183
1184 .mlsimport-requirements-table th {
1185 text-align: left;
1186 padding: 10px;
1187 }
1188
1189 .mlsimport-requirements-table td {
1190 padding: 10px;
1191 }
1192
1193 .mlsimport-requirement-status.success {
1194 color: var(--success-deep);
1195 }
1196
1197 .mlsimport-requirement-status.error {
1198 color: var(--error-color);
1199 }
1200
1201 .mlsimport-requirement-help td {
1202 background-color: var(--background-soft);
1203 font-style: italic;
1204 padding-top: 0;
1205 }
1206
1207 .mlsimport-warning-message {
1208 background-color: var(--warning-soft);
1209 border-left: 4px solid var(--warning-color);
1210 padding: 12px;
1211 margin: 20px 0;
1212 }
1213
1214 .mlsimport-success-message {
1215 background-color: var(--success-soft);
1216 border-left: 4px solid var(--success-deep);
1217 padding: 12px;
1218 margin: 20px 0;
1219 }
1220
1221 .mlsimport-welcome-note {
1222 margin-top: 30px;
1223 background-color: var(--background-soft);
1224 padding: 15px;
1225 border-radius: 10px;
1226 }
1227
1228 .mlsimport-welcome-note ul {
1229 margin-left: 20px;
1230 }
1231
1232 .mlsimport-welcome-note li {
1233 margin-bottom: 5px;
1234 list-style: disc;
1235 }