PluginProbe
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings / 7.2
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings v7.2
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.2, at admin/css/mlsimport-onboarding.css

1,218 lines 28.7 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 /* Responsive adjustments */
268 @media (max-width: 782px) {
269 .mlsimport-wizard-step-title {
270 display: none;
271 }
272
273 .mlsimport-wizard-content {
274 padding: 1rem;
275 }
276
277 .mlsimport-content-body .form-table th {
278 padding-bottom: 0;
279 }
280
281 .mlsimport-links-grid,
282 .mlsimport-resources-grid,
283 .mlsimport-summary-grid {
284 flex-direction: column;
285 grid-template-columns: 1fr;
286 }
287
288
289 .mlsimport-quick-link,
290 .mlsimport-resource-link,
291 .mlsimport-summary-item {
292 min-width: auto;
293 }
294
295 .mlsimport-price-fields {
296 flex-direction: column;
297 gap: 0.5rem;
298 }
299
300 .mlsimport-wizard-actions {
301 flex-direction: column;
302 gap: 1rem;
303 }
304
305 .mlsimport-wizard-next,
306 .mlsimport-wizard-submit {
307 width: 100%;
308 text-align: center;
309 }
310 }
311
312
313 /* Header bar styling */
314 .mlsimport-wizard-header-bar {
315 display: flex;
316 justify-content: space-between;
317 align-items: center;
318 border-bottom: 1px solid var(--border-color);
319 padding: 0 1.5rem;
320 background-color: var(--background-white);
321 box-shadow: var(--shadow-sm);
322 }
323
324
325
326 /* Progress bar and step indicators */
327 .mlsimport-wizard-header {
328 padding: 15px 30px;
329 background-color: var(--background-white);
330 border-bottom: 1px solid var(--border-color);
331 }
332
333 .mlsimport-wizard-progress-bar {
334 height: 6px;
335 background-color: var(--background-light);
336 margin-bottom: 24px;
337 border-radius: 10px;
338 overflow: hidden;
339 }
340
341 .mlsimport-wizard-progress-bar-inner {
342 height: 100%;
343 background-color: var(--accent-color);
344 transition: width 0.3s ease;
345 }
346
347 .mlsimport-wizard-steps {
348 display: flex;
349 justify-content: space-between;
350 margin-bottom: 20px;
351 position: relative;
352 }
353
354 /* Step indicators with connecting lines */
355 .mlsimport-wizard-steps::before {
356 content: "";
357 position: absolute;
358 top: 15px;
359 left: 0;
360 right: 0;
361 height: 1px;
362 background-color: var(--border-color);
363 z-index: 1;
364 }
365
366 .mlsimport-wizard-step {
367 text-align: center;
368 position: relative;
369 flex: 1;
370 cursor: pointer;
371 transition: all var(--transition-speed) ease;
372 z-index: 2;
373 }
374
375 .mlsimport-wizard-step-number {
376 display: flex;
377 align-items: center;
378 justify-content: center;
379 width: 30px;
380 height: 30px;
381 line-height: 30px;
382 text-align: center;
383 margin: 0 auto 8px;
384 border-radius: 50%;
385 background: var(--background-light);
386 color: var(--text-light);
387 font-weight: 600;
388 position: relative;
389 z-index: 2;
390 border: 2px solid var(--border-color);
391 transition: all var(--transition-speed) ease;
392 }
393
394 .mlsimport-wizard-step.active .mlsimport-wizard-step-number {
395 background: var(--accent-color);
396 color: white;
397 border-color: var(--accent-color);
398 box-shadow: 0 0 0 4px rgb(232 93 60 / 13%);
399 }
400
401 /* Mint surface with deep-green text, the portal's success pattern. The saturated
402 --success-color is a dot/glyph accent there, never a filled surface. */
403 .mlsimport-wizard-step.completed .mlsimport-wizard-step-number {
404 background: var(--success-soft);
405 color: var(--success-deep);
406 border-color: var(--success-soft);
407 }
408
409 /* Create checkmark for completed steps */
410 .mlsimport-wizard-step.completed .mlsimport-wizard-step-number::before {
411 content: "";
412 position: absolute;
413 top: 50%;
414 left: 50%;
415 transform: translate(-50%, -50%);
416 font-size: 14px;
417 }
418
419 .mlsimport-wizard-step.completed .mlsimport-wizard-step-number {
420 font-size: 0;
421 }
422
423 .mlsimport-wizard-step-title {
424 font-size: 0.75rem;
425 color: var(--text-light);
426 max-width: 170px;
427 margin: 0 auto;
428 overflow: hidden;
429 text-overflow: ellipsis;
430 white-space: nowrap;
431 transition: all var(--transition-speed) ease;
432 }
433
434 .mlsimport-wizard-step.active .mlsimport-wizard-step-title {
435 color: var(--accent-color);
436 font-weight: 600;
437 }
438
439 .mlsimport-wizard-step.completed .mlsimport-wizard-step-title {
440 color: var(--success-deep);
441 }
442
443 .mlsimport-wizard-step:hover .mlsimport-wizard-step-number {
444 transform: scale(1.1);
445 }
446
447 /* Content Area — the wrap is a flex column, so this card is a flex item:
448 width:100% or it would shrink-to-fit its text instead of filling out to
449 max-width, and flex-grow:0 to cancel the grow it inherits from
450 .mlsimport_2025_card (otherwise the card swallows the space that must go
451 under it to push the footer down). */
452 .mlsimport-wizard-content {
453 padding: 2rem;
454 width: 100%;
455 box-sizing: border-box;
456 flex-grow: 0;
457 max-width: 900px;
458 margin: 0 auto;
459 }
460
461 .mlsimport-wizard-content-30margin{
462 box-sizing: border-box;
463 margin: 30px auto;
464 }
465
466 .mlsimport-wizard-content-field-mapping{
467 width: 100%;
468 max-width: unset;
469 margin: 30px 0px;
470 }
471
472 .mlsimport-wizard-content-header {
473 margin-bottom: 1.5rem;
474 text-align: center;
475 }
476
477 .mlsimport-wizard-content-header h2 {
478 margin-top: 0;
479 margin-bottom: 0.5rem;
480 font-size: 1.5rem;
481 font-weight: 600;
482 color: var(--text-primary);
483 }
484
485 .mlsimport-wizard-description {
486 color: var(--text-secondary);
487 font-size: 0.875rem;
488 margin-top: 0;
489 }
490
491 /* Form Styling */
492 .mlsimport-wizard-title{
493 font-size: 25px;
494 }
495 .mlsimport-wizard-content-body .form-table {
496 margin-top: 0;
497 }
498
499 .mlsimport-wizard-content-body .form-table th {
500 width: 30%;
501 font-weight: 500;
502 color: var(--text-primary);
503 }
504
505 .mlsimport-wizard-content-body input[type="text"],
506 .mlsimport-wizard-content-body input[type="password"],
507 .mlsimport-wizard-content-body select {
508 width: 90%;
509 max-width: 100%;
510 border: 1px solid var(--border-color);
511 border-radius: 10px;
512 background-color: var(--background-white);
513 color: var(--text-primary);
514 transition: all var(--transition-speed) ease;
515 }
516
517 .mlsimport-wizard-content-body input[type="text"],
518 .mlsimport-wizard-content-body input[type="password"] {
519 padding: 0.5rem 0.75rem!important;
520 }
521
522 /* The dropdown cannot share the inputs' 8px vertical padding. wp-admin core
523 gives every select `line-height: 2.71429` - a 38px line box at 14px - inside
524 a 40px border-box control, so 8px top and bottom left the text only 22px to
525 sit in and the option label was clipped by the bottom border. Zero vertical
526 padding lets the 38px line box centre itself in the 38px content box; the
527 right padding keeps the chevron clear of the text. Multi-selects are
528 excluded - they size to their rows. */
529 .mlsimport-wizard-content-body select:not([multiple]) {
530 height: 40px;
531 min-height: 40px;
532 line-height: 38px;
533 padding: 0 2rem 0 0.75rem!important;
534 }
535
536 .mlsimport-wizard-content-body input[type="text"]:focus,
537 .mlsimport-wizard-content-body input[type="password"]:focus,
538 .mlsimport-wizard-content-body select:focus {
539 outline: none;
540 border-color: var(--accent-color);
541 box-shadow: 0 0 0 3px rgba(232, 93, 60, 0.2);
542 }
543
544 .mlsimport-wizard-field-group {
545 margin-bottom: 1.25rem;
546 }
547
548 .mlsimport-wizard-field-label {
549 font-weight: 500;
550 margin-bottom: 0.375rem;
551 display: block;
552 color: var(--text-primary);
553 }
554
555 .mlsimport-wizard-field-help {
556 color: var(--text-light);
557 font-size: 0.813rem;
558 margin-top: 0.375rem;
559 }
560
561 /* Action Buttons */
562 .mlsimport-wizard-actions {
563 display: flex;
564 justify-content: space-between;
565 margin-top: 1.875rem;
566 padding-top: 1.25rem;
567 border-top: 1px solid var(--border-color);
568 }
569
570 .mlsimport-wizard-next,
571 .mlsimport-wizard-submit {
572 padding: 0.5rem 1.25rem;
573 background-color: var(--primary-color);
574 color: white;
575 border: none;
576 border-radius: 999px;
577 font-weight: 500;
578 transition: all var(--transition-speed) ease;
579 }
580
581 .mlsimport-wizard-next:hover,
582 .mlsimport-wizard-submit:hover {
583 background-color: var(--primary-hover);
584 box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45);
585 }
586
587 /* Footer — last flex child of the wrap. margin-top:auto eats the leftover
588 vertical space, so on short steps the bar sits on the bottom edge of the
589 viewport, and on tall steps it simply follows the content. */
590 .mlsimport-wizard-footer {
591 margin-top: auto;
592 padding: 1rem 1.5rem;
593 background-color: var(--background-light);
594 border-top: 1px solid var(--border-color);
595 display: flex;
596 justify-content: space-between;
597 align-items: center;
598 color: var(--text-light);
599 font-size: 0.813rem;
600 }
601
602 .mlsimport-wizard-restart {
603 color: var(--error-color);
604 font-size: 0.75rem;
605 }
606
607 .mlsimport-restart-link {
608 color: var(--error-color);
609 text-decoration: none;
610 }
611
612 .mlsimport-restart-link:hover {
613 text-decoration: underline;
614 }
615
616 /* Step-specific Styling */
617 .mlsimport-connection-test {
618 margin: 1.25rem 0;
619 padding: 1rem;
620 border-radius: var(--border-radius);
621 background-color: var(--background-light);
622 border-left: 4px solid rgba(28, 25, 23, 0.18);
623 }
624
625 .mlsimport-connection-test.success {
626 border-color: var(--success-deep);
627 background-color: var(--success-soft);
628 }
629
630 .mlsimport-connection-test.error {
631 border-color: var(--error-color);
632 background-color: var(--error-soft);
633 }
634
635 .mlsimport-connection-test p {
636 margin: 0;
637 }
638
639 .mlsimport-test-button {
640 margin-top: 0.625rem !important;
641 }
642
643 /* Log Display */
644 .mlsimport-log-container {
645 max-height: 300px;
646 overflow-y: auto;
647 background-color: var(--background-light);
648 border: 1px solid var(--border-color);
649 border-radius: var(--border-radius);
650 padding: 0.75rem;
651 font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
652 font-size: 0.75rem;
653 line-height: 1.5;
654 margin: 1rem 0;
655 }
656
657 .mlsimport-log-entry {
658 margin-bottom: 0.313rem;
659 padding-bottom: 0.313rem;
660 border-bottom: 1px dotted var(--border-color);
661 }
662
663 .mlsimport-log-entry:last-child {
664 border-bottom: none;
665 margin-bottom: 0;
666 padding-bottom: 0;
667 }
668
669 .mlsimport-log-success {
670 color: var(--success-deep);
671 }
672
673 .mlsimport-log-error {
674 color: var(--error-color);
675 }
676
677 .mlsimport-log-warning {
678 color: var(--warning-color);
679 }
680
681 /* Loading Spinner */
682 .mlsimport-loading {
683 display: inline-block;
684 width: 20px;
685 height: 20px;
686 margin-left: 0.625rem;
687 border: 2px solid rgba(28, 25, 23, 0.1);
688 border-radius: 50%;
689 border-top-color: var(--primary-color);
690 animation: mlsimport-spin 1s linear infinite;
691 }
692
693 @keyframes mlsimport-spin {
694 to {
695 transform: rotate(360deg);
696 }
697 }
698
699 /* Card Styling */
700 .mlsimport-card {
701 background-color: var(--background-white);
702 border-radius: var(--radius-card);
703 box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05);
704 padding: 1.5rem;
705 margin-bottom: 1.5rem;
706 border: 1px solid var(--border-color);
707 }
708
709 .mlsimport-card-header {
710 margin-bottom: 1rem;
711 border-bottom: 1px solid var(--border-color);
712 padding-bottom: 0.75rem;
713 }
714
715 .mlsimport-card-title {
716 margin: 0;
717 font-size: 1rem;
718 font-weight: 600;
719 color: var(--text-primary);
720 }
721
722 /* Notification messages */
723 .mlsimport-message {
724 padding: 1rem;
725 border-radius: var(--border-radius);
726 margin-bottom: 1rem;
727 }
728
729 .mlsimport-message-success {
730 background-color: var(--success-soft);
731 border-left: 4px solid var(--success-deep);
732 color: var(--success-deep);
733 }
734
735 .mlsimport-message-error {
736 background-color: var(--error-soft);
737 border-left: 4px solid var(--error-color);
738 color: var(--error-color);
739 }
740
741 .mlsimport-message-warning {
742 background-color: var(--warning-soft);
743 border-left: 4px solid var(--warning-color);
744 color: var(--warning-color);
745 }
746
747 .mlsimport-message-info {
748 background-color: rgba(28, 25, 23, 0.1);
749 border-left: 4px solid var(--primary-color);
750 color: var(--primary-color);
751 }
752
753 /* Autocomplete menu styling */
754 .mlsimport-autocomplete-menu {
755 border-radius: var(--border-radius);
756 box-shadow: var(--shadow-md);
757 border: 1px solid var(--border-color);
758 background-color: var(--background-white);
759 z-index: 999999;
760 }
761
762 .ui-menu-item {
763 padding: 0.5rem 0.75rem;
764 cursor: pointer;
765 font-size: 0.875rem;
766 transition: background-color var(--transition-speed) ease;
767 }
768
769 .ui-menu-item:hover {
770 background-color: var(--background-light);
771 }
772
773 .ui-menu-item.ui-state-focus {
774 background-color: var(--accent-soft);
775 color: var(--accent-color);
776 margin: 0;
777 }
778
779 /* Welcome page styling */
780
781
782 .mlsimport-welcome-intro {
783 font-size: 1rem;
784 line-height: 1.5;
785 margin-bottom: 1.5rem;
786 }
787
788 .mlsimport-welcome-note {
789 background-color: var(--background-light);
790 border-radius: var(--border-radius);
791 padding: 1.25rem;
792 margin: 1.5rem 0;
793 }
794
795 .mlsimport-requirements-check {
796 margin-top: 2rem;
797 }
798
799 .mlsimport-requirements-table {
800 width: 100%;
801 border-collapse: separate;
802 border-spacing: 0;
803 margin-bottom: 1.5rem;
804 border: 1px solid var(--border-color);
805 border-radius: var(--border-radius);
806 overflow: hidden;
807 }
808
809 .mlsimport-requirements-table th {
810 background-color: var(--background-light);
811 text-align: left;
812 padding: 0.75rem 1rem;
813 font-weight: 600;
814 color: var(--text-primary);
815 border-bottom: 1px solid var(--border-color);
816 }
817
818 .mlsimport-requirements-table td {
819 padding: 0.75rem 1rem;
820 border-bottom: 1px solid var(--border-color);
821 }
822
823 .mlsimport-requirements-table tr:last-child td {
824 border-bottom: none;
825 }
826
827 .mlsimport-requirement-status.success {
828 color: var(--success-deep);
829 }
830
831 .mlsimport-requirement-status.error {
832 color: var(--error-color);
833 }
834
835 .mlsimport-warning-message {
836 background-color: var(--warning-soft);
837 border-left: 4px solid var(--warning-color);
838 padding: 1rem;
839 margin: 1.25rem 0;
840 border-radius: 10px;
841 }
842
843 .mlsimport-success-message {
844 background-color: var(--success-soft);
845 border-left: 4px solid var(--success-deep);
846 padding: 1rem;
847 margin: 1.25rem 0;
848 border-radius: 10px;
849 }
850
851 /* Success page styling */
852 .mlsimport-success-header {
853 display: flex;
854 align-items: center;
855 margin-bottom: 2rem;
856 background-color: var(--success-soft);
857 padding: 1.5rem;
858 border-radius: var(--radius-card);
859 }
860
861 .mlsimport-success-icon {
862 margin-right: 1.25rem;
863 }
864
865 .mlsimport-success-icon .dashicons {
866 font-size: 3rem;
867 width: 3rem;
868 height: 3rem;
869 color: var(--success-deep);
870 }
871
872 .mlsimport-links-grid,
873 .mlsimport-resources-grid {
874 display: grid;
875 grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
876 gap: 1rem;
877 margin-bottom: 1.5rem;
878 }
879
880 .mlsimport-quick-link,
881 .mlsimport-resource-link {
882 text-decoration: none;
883 display: flex;
884 align-items: center;
885 padding: 1rem;
886 border-radius: var(--radius-card);
887 background-color: var(--background-white);
888 border: 1px solid var(--border-color);
889 transition: all var(--transition-speed) ease;
890 color: var(--text-primary);
891 }
892
893 .mlsimport-quick-link:hover,
894 .mlsimport-resource-link:hover {
895 border-color: var(--accent-color);
896 box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05);
897 }
898
899 .mlsimport-quick-link-icon .dashicons,
900 .mlsimport-resource-icon .dashicons {
901 color: var(--accent-color);
902 font-size: 1.5rem;
903 width: 1.5rem;
904 height: 1.5rem;
905 margin-right: 1rem;
906 }
907
908 /* Test import page styling */
909 .mlsimport-status-message {
910 padding: 1rem;
911 border-radius: var(--border-radius);
912 margin-bottom: 1.25rem;
913 }
914
915 .mlsimport-status-message.success {
916 background-color: var(--success-soft);
917 border-left: 4px solid var(--success-deep);
918 }
919
920 .mlsimport-status-message.error {
921 background-color: var(--error-soft);
922 border-left: 4px solid var(--error-color);
923 }
924
925 .mlsimport-status-message.warning {
926 background-color: var(--warning-soft);
927 border-left: 4px solid var(--warning-color);
928 }
929
930 .mlsimport-status-message.progress {
931 background-color: rgba(28, 25, 23, 0.1);
932 border-left: 4px solid var(--primary-color);
933 }
934
935 .mlsimport-progress-bar {
936 height: 8px;
937 background-color: var(--background-light);
938 border-radius: 4px;
939 overflow: hidden;
940 margin-top: 0.75rem;
941 margin-bottom: 15px;
942 }
943
944 .mlsimport-progress-bar-inner {
945 height: 100%;
946 background-color: var(--accent-color);
947 width: 0;
948 transition: width 0.3s ease;
949 }
950
951 /* Field mapping styling */
952 .mlsimport-mapping-intro {
953 font-size: 0.938rem;
954 margin-bottom: 1.5rem;
955 }
956
957 .mlsimport-section-inner {
958 margin-bottom: 2rem;
959 }
960
961 .mlsimport-section-inner h3 {
962 margin-top: 0;
963 padding-bottom: 0.625rem;
964 margin-bottom: 1rem;
965 border-bottom: 1px solid var(--border-color);
966 color: var(--text-primary);
967 }
968
969 .mlsimport-mapping-tips {
970 background-color: rgba(28, 25, 23, 0.05);
971 border-left: 4px solid var(--primary-color);
972 padding: 1rem;
973 margin-top: 1.25rem;
974 border-radius: 10px;
975 }
976
977 .mlsimport-mapping-tips h3 {
978 margin-top: 0;
979 margin-bottom: 0.75rem;
980 font-size: 1rem;
981 border-bottom: none;
982 padding-bottom: 0;
983 }
984
985 /* Field selection interface */
986 .mlsimport-field-filters {
987 display: flex;
988 flex-wrap: wrap;
989 gap: 0.75rem;
990 margin-bottom: 1rem;
991 }
992
993 .mlsimport-field-filters .button {
994 background-color: var(--background-white);
995 border: 1px solid var(--border-color);
996 color: var(--text-primary);
997 border-radius: 999px;
998 transition: all var(--transition-speed) ease;
999 }
1000
1001 .mlsimport-field-filters .button:hover {
1002 background-color: var(--background-soft);
1003 }
1004
1005 .mlsimport-field-filters .button.active {
1006 background-color: var(--accent-color);
1007 border-color: var(--accent-color);
1008 color: white;
1009 }
1010
1011 .mlsimport-field-search {
1012 margin-bottom: 1rem;
1013 }
1014
1015 .mlsimport-field-search input[type="text"] {
1016 width: 100%;
1017 padding: 0.5rem 0.75rem;
1018 border: 1px solid var(--border-color);
1019 border-radius: 10px;
1020 }
1021
1022 .mlsimport-field-table {
1023 border-collapse: separate;
1024 border-spacing: 0;
1025 width: 100%;
1026 margin-bottom: 1.5rem;
1027 border: 1px solid var(--border-color);
1028 border-radius: var(--border-radius);
1029 overflow: hidden;
1030 }
1031
1032 .mlsimport-field-table th {
1033 background-color: var(--background-light);
1034 text-align: left;
1035 padding: 0.75rem 1rem;
1036 font-weight: 600;
1037 color: var(--text-primary);
1038 border-bottom: 1px solid var(--border-color);
1039 }
1040
1041 .mlsimport-field-table td {
1042 padding: 0.75rem 1rem;
1043 border-bottom: 1px solid var(--border-color);
1044 vertical-align: middle;
1045 }
1046
1047 .mlsimport-field-table tr:last-child td {
1048 border-bottom: none;
1049 }
1050
1051 .mlsimport-field-table input[type="checkbox"] {
1052 border: 1px solid var(--border-color);
1053 border-radius: 3px;
1054 }
1055
1056 .mlsimport-field-table input[type="checkbox"]:checked {
1057 background-color: var(--accent-color);
1058 border-color: var(--accent-color);
1059 }
1060
1061 /* Account verification styling */
1062 .mlsimport_warning {
1063 padding: 0.75rem 1rem;
1064 margin-bottom: 1rem;
1065 border-radius: var(--border-radius);
1066 background-color: var(--error-soft);
1067 border-left: 4px solid var(--error-color);
1068 color: var(--text-primary);
1069 }
1070
1071 .mlsimport_warning.mlsimport_validated {
1072 background-color: var(--success-soft);
1073 border-left: 4px solid var(--success-deep);
1074 }
1075
1076 .mlsimport-fieldset {
1077 margin-bottom: 1.25rem;
1078 }
1079
1080
1081 .mlsimport-input {
1082 width: 100%;
1083 padding: 0.5rem 0.75rem;
1084 border: 1px solid var(--border-color);
1085 border-radius: 10px;
1086 transition: all var(--transition-speed) ease;
1087 }
1088
1089 .mlsimport-input:focus {
1090 outline: none;
1091 border-color: var(--accent-color);
1092 box-shadow: 0 0 0 3px rgba(232, 93, 60, 0.2);
1093 }
1094
1095 /* Same pill as .button.mlsimport_button everywhere else in the plugin. These
1096 buttons only carried .button.button-primary, so they kept wp-admin core's
1097 13px text and 38px line-height and rendered 54px tall - 13px taller than the
1098 Back / Continue pills in this wizard's own footer. Geometry (14px text, 1.5
1099 line-height, 9px 24px padding, 1px border, hairline shadow) is copied from
1100 the portal standard so the two match exactly. */
1101 .mlsimport-save-account,
1102 .mlsimport-create-account,
1103 .mlsimport-save-mls-data {
1104 background-color: var(--primary-color) !important;
1105 color: white !important;
1106 border: 1px solid var(--primary-color) !important;
1107 padding: 9px 24px !important;
1108 border-radius: var(--radius-pill, 999px) !important;
1109 font-size: 14px !important;
1110 line-height: 1.5 !important;
1111 min-height: 0 !important;
1112 font-weight: 500 !important;
1113 box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.08) !important;
1114 transition: all var(--transition-speed) ease !important;
1115 margin-top: 0.5rem !important;
1116 }
1117
1118 .mlsimport-save-account:hover,
1119 .mlsimport-create-account:hover,
1120 .mlsimport-save-mls-data:hover {
1121 background-color: var(--primary-hover) !important;
1122 border-color: var(--primary-hover) !important;
1123 box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45) !important;
1124 }
1125
1126 /* Import configuration styling */
1127 .mlsimport-price-fields {
1128 display: flex;
1129 gap: 1rem;
1130 }
1131
1132 .mlsimport-min-price,
1133 .mlsimport-max-price {
1134 flex: 1;
1135 }
1136
1137
1138
1139 /* Legacy welcome/requirements overrides — a second pass of rules (plain hex,
1140 collapsed table borders) that re-declare selectors already styled above with
1141 design tokens. Later source order means these win where they overlap. */
1142 .mlsimport-welcome-intro {
1143 font-size: 16px;
1144 line-height: 1.5;
1145 }
1146
1147 .mlsimport-welcome-features {
1148 margin: 20px 0;
1149 }
1150
1151 .mlsimport-welcome-features ul {
1152 margin-left: 20px;
1153 }
1154
1155 .mlsimport-welcome-features li {
1156 margin-bottom: 10px;
1157 list-style: circle;
1158 }
1159
1160 .mlsimport-requirements-table {
1161 border-collapse: collapse;
1162 width: 100%;
1163 margin-bottom: 20px;
1164 }
1165
1166 .mlsimport-requirements-table th {
1167 text-align: left;
1168 padding: 10px;
1169 }
1170
1171 .mlsimport-requirements-table td {
1172 padding: 10px;
1173 }
1174
1175 .mlsimport-requirement-status.success {
1176 color: var(--success-deep);
1177 }
1178
1179 .mlsimport-requirement-status.error {
1180 color: var(--error-color);
1181 }
1182
1183 .mlsimport-requirement-help td {
1184 background-color: var(--background-soft);
1185 font-style: italic;
1186 padding-top: 0;
1187 }
1188
1189 .mlsimport-warning-message {
1190 background-color: var(--warning-soft);
1191 border-left: 4px solid var(--warning-color);
1192 padding: 12px;
1193 margin: 20px 0;
1194 }
1195
1196 .mlsimport-success-message {
1197 background-color: var(--success-soft);
1198 border-left: 4px solid var(--success-deep);
1199 padding: 12px;
1200 margin: 20px 0;
1201 }
1202
1203 .mlsimport-welcome-note {
1204 margin-top: 30px;
1205 background-color: var(--background-soft);
1206 padding: 15px;
1207 border-radius: 10px;
1208 }
1209
1210 .mlsimport-welcome-note ul {
1211 margin-left: 20px;
1212 }
1213
1214 .mlsimport-welcome-note li {
1215 margin-bottom: 5px;
1216 list-style: disc;
1217 }
1218