| @@ -1,17 +1,34 @@ | ||
| 1 | 1 | /** |
| 2 | 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. | |
| 3 | 13 | */ |
| 4 | 14 | |
| 5 | -/* Import Inter font */ | |
| 15 | +/* Import Inter font (remote Google Fonts import — the wizard's base typeface). */ | |
| 6 | 16 | @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); |
| 7 | 17 | |
| 18 | +/* Lock the wp-admin body from scrolling while the fixed wizard overlay is up. */ | |
| 8 | 19 | .admin_page_mlsimport-onboarding { |
| 9 | 20 | overflow: hidden; |
| 10 | 21 | } |
| 11 | 22 | |
| 12 | 23 | |
| 13 | -/* Main Wrapper */ | |
| 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. */ | |
| 14 | 31 | .mlsimport-wizard-wrap { |
| 15 | 32 | position: fixed; |
| 16 | 33 | top: 0; |
| 17 | 34 | left: 0; |
| @@ -19,8 +36,10 @@ | ||
| 19 | 36 | bottom: 0; |
| 20 | 37 | width: 100%; |
| 21 | 38 | height: 100vh; |
| 22 | 39 | margin: 0; |
| 40 | + display: flex; | |
| 41 | + flex-direction: column; | |
| 23 | 42 | background: var(--background-white); |
| 24 | 43 | z-index: 999999; |
| 25 | 44 | overflow-y: auto; |
| 26 | 45 | font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; |
| @@ -33,9 +52,9 @@ | ||
| 33 | 52 | display: flex; |
| 34 | 53 | align-items: center; |
| 35 | 54 | justify-content: space-between; |
| 36 | 55 | padding: 0px 30px; |
| 37 | - background: #F9FAFB; | |
| 56 | + background: var(--background-soft); | |
| 38 | 57 | } |
| 39 | 58 | |
| 40 | 59 | |
| 41 | 60 | .mlsimport-wizard-close { |
| @@ -58,9 +77,11 @@ | ||
| 58 | 77 | |
| 59 | 78 | |
| 60 | 79 | |
| 61 | 80 | |
| 62 | -/* Hide WordPress notices when wizard is active */ | |
| 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. */ | |
| 63 | 84 | body.mlsimport-wizard-active .notice, |
| 64 | 85 | body.mlsimport-wizard-active .update-nag, |
| 65 | 86 | body.mlsimport-wizard-active #message, |
| 66 | 87 | body.mlsimport-wizard-active .updated, |
| @@ -97,13 +118,13 @@ | ||
| 97 | 118 | margin: 0.375rem 0; |
| 98 | 119 | } |
| 99 | 120 | |
| 100 | 121 | .mlsimport-config-note { |
| 101 | - background-color: rgba(79, 70, 229, 0.05); | |
| 122 | + background-color: rgba(28, 25, 23, 0.05); | |
| 102 | 123 | border-left: 4px solid var(--primary-color); |
| 103 | 124 | padding: 1rem; |
| 104 | 125 | margin-top: 1.25rem; |
| 105 | - border-radius: 0.25rem; | |
| 126 | + border-radius: 10px; | |
| 106 | 127 | } |
| 107 | 128 | |
| 108 | 129 | .mlsimport-config-note p { |
| 109 | 130 | margin: 0; |
| @@ -111,9 +132,9 @@ | ||
| 111 | 132 | } |
| 112 | 133 | |
| 113 | 134 | /* Status indicators */ |
| 114 | 135 | .mlsimport-status-success { |
| 115 | - color: var(--success-color); | |
| 136 | + color: var(--success-deep); | |
| 116 | 137 | font-weight: 600; |
| 117 | 138 | } |
| 118 | 139 | |
| 119 | 140 | .mlsimport-status-progress { |
| @@ -138,11 +159,11 @@ | ||
| 138 | 159 | flex: 1; |
| 139 | 160 | min-width: 150px; |
| 140 | 161 | text-align: center; |
| 141 | 162 | background-color: var(--background-white); |
| 142 | - border-radius: var(--border-radius); | |
| 163 | + border-radius: var(--radius-card); | |
| 143 | 164 | padding: 1rem; |
| 144 | - box-shadow: var(--shadow-sm); | |
| 165 | + box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05); | |
| 145 | 166 | } |
| 146 | 167 | |
| 147 | 168 | .mlsimport-summary-value { |
| 148 | 169 | font-size: 1.5rem; |
| @@ -170,11 +191,11 @@ | ||
| 170 | 191 | display: flex; |
| 171 | 192 | align-items: flex-start; |
| 172 | 193 | padding: 1rem; |
| 173 | 194 | background-color: var(--background-white); |
| 174 | - border-radius: var(--border-radius); | |
| 195 | + border-radius: var(--radius-card); | |
| 175 | 196 | border: 1px solid var(--border-color); |
| 176 | - box-shadow: var(--shadow-sm); | |
| 197 | + box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05); | |
| 177 | 198 | } |
| 178 | 199 | |
| 179 | 200 | .mlsimport-step-number { |
| 180 | 201 | display: flex; |
| @@ -181,9 +202,9 @@ | ||
| 181 | 202 | align-items: center; |
| 182 | 203 | justify-content: center; |
| 183 | 204 | width: 30px; |
| 184 | 205 | height: 30px; |
| 185 | - background-color: var(--primary-color); | |
| 206 | + background-color: var(--accent-color); | |
| 186 | 207 | color: white; |
| 187 | 208 | border-radius: 50%; |
| 188 | 209 | font-weight: 600; |
| 189 | 210 | margin-right: 1rem; |
| @@ -205,30 +226,38 @@ | ||
| 205 | 226 | text-align: center; |
| 206 | 227 | margin-top: 2rem; |
| 207 | 228 | } |
| 208 | 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. */ | |
| 209 | 233 | .mlsimport-finish-button { |
| 210 | 234 | background-color: var(--primary-color) !important; |
| 211 | 235 | color: white !important; |
| 212 | - border: none !important; | |
| 213 | - padding: 0.75rem 1.5rem !important; | |
| 214 | - border-radius: 0.375rem !important; | |
| 215 | - font-size: 1rem !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; | |
| 216 | 242 | font-weight: 500 !important; |
| 243 | + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.08) !important; | |
| 217 | 244 | transition: all var(--transition-speed) ease !important; |
| 218 | 245 | } |
| 219 | 246 | |
| 220 | 247 | .mlsimport-finish-button:hover { |
| 221 | 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; | |
| 222 | 251 | } |
| 223 | 252 | |
| 224 | 253 | /* Error handling */ |
| 225 | 254 | .mlsimport-error-notice { |
| 226 | - background-color: rgba(239, 68, 68, 0.1); | |
| 255 | + background-color: var(--error-soft); | |
| 227 | 256 | border-left: 4px solid var(--error-color); |
| 228 | 257 | padding: 1rem; |
| 229 | 258 | margin-bottom: 1.25rem; |
| 230 | - border-radius: 0.25rem; | |
| 259 | + border-radius: 10px; | |
| 231 | 260 | } |
| 232 | 261 | |
| 233 | 262 | .mlsimport-error-notice p { |
| 234 | 263 | margin: 0; |
| @@ -234,13 +263,8 @@ | ||
| 234 | 263 | margin: 0; |
| 235 | 264 | color: var(--error-color); |
| 236 | 265 | } |
| 237 | 266 | |
| 238 | -.mlsimport-field-error { | |
| 239 | - border-color: var(--error-color) !important; | |
| 240 | - box-shadow: 0 0 0 1px var(--error-color) !important; | |
| 241 | -} | |
| 242 | - | |
| 243 | 267 | /* Responsive adjustments */ |
| 244 | 268 | @media (max-width: 782px) { |
| 245 | 269 | .mlsimport-wizard-step-title { |
| 246 | 270 | display: none; |
| @@ -277,15 +301,14 @@ | ||
| 277 | 301 | flex-direction: column; |
| 278 | 302 | gap: 1rem; |
| 279 | 303 | } |
| 280 | 304 | |
| 281 | - .mlsimport-wizard-back, | |
| 282 | 305 | .mlsimport-wizard-next, |
| 283 | 306 | .mlsimport-wizard-submit { |
| 284 | 307 | width: 100%; |
| 285 | 308 | text-align: center; |
| 286 | 309 | } |
| 287 | -} none !important; | |
| 310 | +} | |
| 288 | 311 | |
| 289 | 312 | |
| 290 | 313 | /* Header bar styling */ |
| 291 | 314 | .mlsimport-wizard-header-bar { |
| @@ -316,9 +339,9 @@ | ||
| 316 | 339 | } |
| 317 | 340 | |
| 318 | 341 | .mlsimport-wizard-progress-bar-inner { |
| 319 | 342 | height: 100%; |
| 320 | - background-color: var(--primary-color); | |
| 343 | + background-color: var(--accent-color); | |
| 321 | 344 | transition: width 0.3s ease; |
| 322 | 345 | } |
| 323 | 346 | |
| 324 | 347 | .mlsimport-wizard-steps { |
| @@ -368,18 +391,20 @@ | ||
| 368 | 391 | transition: all var(--transition-speed) ease; |
| 369 | 392 | } |
| 370 | 393 | |
| 371 | 394 | .mlsimport-wizard-step.active .mlsimport-wizard-step-number { |
| 372 | - background: var(--primary-color); | |
| 395 | + background: var(--accent-color); | |
| 373 | 396 | color: white; |
| 374 | - border-color: var(--primary-color); | |
| 375 | - box-shadow: 0 0 0 4px rgb(79 70 229 / 13%); | |
| 397 | + border-color: var(--accent-color); | |
| 398 | + box-shadow: 0 0 0 4px rgb(232 93 60 / 13%); | |
| 376 | 399 | } |
| 377 | 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. */ | |
| 378 | 403 | .mlsimport-wizard-step.completed .mlsimport-wizard-step-number { |
| 379 | - background: var(--success-color); | |
| 380 | - color: white; | |
| 381 | - border-color: var(--success-color); | |
| 404 | + background: var(--success-soft); | |
| 405 | + color: var(--success-deep); | |
| 406 | + border-color: var(--success-soft); | |
| 382 | 407 | } |
| 383 | 408 | |
| 384 | 409 | /* Create checkmark for completed steps */ |
| 385 | 410 | .mlsimport-wizard-step.completed .mlsimport-wizard-step-number::before { |
| @@ -406,14 +431,14 @@ | ||
| 406 | 431 | transition: all var(--transition-speed) ease; |
| 407 | 432 | } |
| 408 | 433 | |
| 409 | 434 | .mlsimport-wizard-step.active .mlsimport-wizard-step-title { |
| 410 | - color: var(--primary-color); | |
| 435 | + color: var(--accent-color); | |
| 411 | 436 | font-weight: 600; |
| 412 | 437 | } |
| 413 | 438 | |
| 414 | 439 | .mlsimport-wizard-step.completed .mlsimport-wizard-step-title { |
| 415 | - color: var(--success-color); | |
| 440 | + color: var(--success-deep); | |
| 416 | 441 | } |
| 417 | 442 | |
| 418 | 443 | .mlsimport-wizard-step:hover .mlsimport-wizard-step-number { |
| 419 | 444 | transform: scale(1.1); |
| @@ -418,11 +443,18 @@ | ||
| 418 | 443 | .mlsimport-wizard-step:hover .mlsimport-wizard-step-number { |
| 419 | 444 | transform: scale(1.1); |
| 420 | 445 | } |
| 421 | 446 | |
| 422 | -/* Content Area */ | |
| 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). */ | |
| 423 | 452 | .mlsimport-wizard-content { |
| 424 | 453 | padding: 2rem; |
| 454 | + width: 100%; | |
| 455 | + box-sizing: border-box; | |
| 456 | + flex-grow: 0; | |
| 425 | 457 | max-width: 900px; |
| 426 | 458 | margin: 0 auto; |
| 427 | 459 | } |
| 428 | 460 | |
| @@ -474,22 +506,40 @@ | ||
| 474 | 506 | .mlsimport-wizard-content-body input[type="password"], |
| 475 | 507 | .mlsimport-wizard-content-body select { |
| 476 | 508 | width: 90%; |
| 477 | 509 | max-width: 100%; |
| 478 | - padding: 0.5rem 0.75rem!important; | |
| 479 | 510 | border: 1px solid var(--border-color); |
| 480 | - border-radius: 0.375rem; | |
| 511 | + border-radius: 10px; | |
| 481 | 512 | background-color: var(--background-white); |
| 482 | 513 | color: var(--text-primary); |
| 483 | 514 | transition: all var(--transition-speed) ease; |
| 484 | 515 | } |
| 485 | 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 | + | |
| 486 | 536 | .mlsimport-wizard-content-body input[type="text"]:focus, |
| 487 | 537 | .mlsimport-wizard-content-body input[type="password"]:focus, |
| 488 | 538 | .mlsimport-wizard-content-body select:focus { |
| 489 | 539 | outline: none; |
| 490 | - border-color: var(--primary-color); | |
| 491 | - box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.2); | |
| 540 | + border-color: var(--accent-color); | |
| 541 | + box-shadow: 0 0 0 3px rgba(232, 93, 60, 0.2); | |
| 492 | 542 | } |
| 493 | 543 | |
| 494 | 544 | .mlsimport-wizard-field-group { |
| 495 | 545 | margin-bottom: 1.25rem; |
| @@ -516,22 +566,8 @@ | ||
| 516 | 566 | padding-top: 1.25rem; |
| 517 | 567 | border-top: 1px solid var(--border-color); |
| 518 | 568 | } |
| 519 | 569 | |
| 520 | -.mlsimport-wizard-back { | |
| 521 | - padding: 0.5rem 1rem; | |
| 522 | - background-color: var(--background-light); | |
| 523 | - color: var(--text-secondary); | |
| 524 | - border: 1px solid var(--border-color); | |
| 525 | - border-radius: 0.375rem; | |
| 526 | - font-weight: 500; | |
| 527 | - transition: all var(--transition-speed) ease; | |
| 528 | -} | |
| 529 | - | |
| 530 | -.mlsimport-wizard-back:hover { | |
| 531 | - background-color: #E5E7EB; | |
| 532 | -} | |
| 533 | - | |
| 534 | 570 | .mlsimport-wizard-next, |
| 535 | 571 | .mlsimport-wizard-submit { |
| 536 | 572 | padding: 0.5rem 1.25rem; |
| 537 | 573 | background-color: var(--primary-color); |
| @@ -536,9 +572,9 @@ | ||
| 536 | 572 | padding: 0.5rem 1.25rem; |
| 537 | 573 | background-color: var(--primary-color); |
| 538 | 574 | color: white; |
| 539 | 575 | border: none; |
| 540 | - border-radius: 0.375rem; | |
| 576 | + border-radius: 999px; | |
| 541 | 577 | font-weight: 500; |
| 542 | 578 | transition: all var(--transition-speed) ease; |
| 543 | 579 | } |
| 544 | 580 | |
| @@ -544,12 +580,16 @@ | ||
| 544 | 580 | |
| 545 | 581 | .mlsimport-wizard-next:hover, |
| 546 | 582 | .mlsimport-wizard-submit:hover { |
| 547 | 583 | background-color: var(--primary-hover); |
| 584 | + box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45); | |
| 548 | 585 | } |
| 549 | 586 | |
| 550 | -/* Footer */ | |
| 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. */ | |
| 551 | 590 | .mlsimport-wizard-footer { |
| 591 | + margin-top: auto; | |
| 552 | 592 | padding: 1rem 1.5rem; |
| 553 | 593 | background-color: var(--background-light); |
| 554 | 594 | border-top: 1px solid var(--border-color); |
| 555 | 595 | display: flex; |
| @@ -578,19 +618,19 @@ | ||
| 578 | 618 | margin: 1.25rem 0; |
| 579 | 619 | padding: 1rem; |
| 580 | 620 | border-radius: var(--border-radius); |
| 581 | 621 | background-color: var(--background-light); |
| 582 | - border-left: 4px solid #ccc; | |
| 622 | + border-left: 4px solid rgba(28, 25, 23, 0.18); | |
| 583 | 623 | } |
| 584 | 624 | |
| 585 | 625 | .mlsimport-connection-test.success { |
| 586 | - border-color: var(--success-color); | |
| 587 | - background-color: rgba(16, 185, 129, 0.1); | |
| 626 | + border-color: var(--success-deep); | |
| 627 | + background-color: var(--success-soft); | |
| 588 | 628 | } |
| 589 | 629 | |
| 590 | 630 | .mlsimport-connection-test.error { |
| 591 | 631 | border-color: var(--error-color); |
| 592 | - background-color: rgba(239, 68, 68, 0.1); | |
| 632 | + background-color: var(--error-soft); | |
| 593 | 633 | } |
| 594 | 634 | |
| 595 | 635 | .mlsimport-connection-test p { |
| 596 | 636 | margin: 0; |
| @@ -626,9 +666,9 @@ | ||
| 626 | 666 | padding-bottom: 0; |
| 627 | 667 | } |
| 628 | 668 | |
| 629 | 669 | .mlsimport-log-success { |
| 630 | - color: var(--success-color); | |
| 670 | + color: var(--success-deep); | |
| 631 | 671 | } |
| 632 | 672 | |
| 633 | 673 | .mlsimport-log-error { |
| 634 | 674 | color: var(--error-color); |
| @@ -643,9 +683,9 @@ | ||
| 643 | 683 | display: inline-block; |
| 644 | 684 | width: 20px; |
| 645 | 685 | height: 20px; |
| 646 | 686 | margin-left: 0.625rem; |
| 647 | - border: 2px solid rgba(79, 70, 229, 0.1); | |
| 687 | + border: 2px solid rgba(28, 25, 23, 0.1); | |
| 648 | 688 | border-radius: 50%; |
| 649 | 689 | border-top-color: var(--primary-color); |
| 650 | 690 | animation: mlsimport-spin 1s linear infinite; |
| 651 | 691 | } |
| @@ -658,10 +698,10 @@ | ||
| 658 | 698 | |
| 659 | 699 | /* Card Styling */ |
| 660 | 700 | .mlsimport-card { |
| 661 | 701 | background-color: var(--background-white); |
| 662 | - border-radius: var(--border-radius); | |
| 663 | - box-shadow: var(--shadow-sm); | |
| 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); | |
| 664 | 704 | padding: 1.5rem; |
| 665 | 705 | margin-bottom: 1.5rem; |
| 666 | 706 | border: 1px solid var(--border-color); |
| 667 | 707 | } |
| @@ -686,27 +726,27 @@ | ||
| 686 | 726 | margin-bottom: 1rem; |
| 687 | 727 | } |
| 688 | 728 | |
| 689 | 729 | .mlsimport-message-success { |
| 690 | - background-color: rgba(16, 185, 129, 0.1); | |
| 691 | - border-left: 4px solid var(--success-color); | |
| 692 | - color: var(--success-color); | |
| 730 | + background-color: var(--success-soft); | |
| 731 | + border-left: 4px solid var(--success-deep); | |
| 732 | + color: var(--success-deep); | |
| 693 | 733 | } |
| 694 | 734 | |
| 695 | 735 | .mlsimport-message-error { |
| 696 | - background-color: rgba(239, 68, 68, 0.1); | |
| 736 | + background-color: var(--error-soft); | |
| 697 | 737 | border-left: 4px solid var(--error-color); |
| 698 | 738 | color: var(--error-color); |
| 699 | 739 | } |
| 700 | 740 | |
| 701 | 741 | .mlsimport-message-warning { |
| 702 | - background-color: rgba(245, 158, 11, 0.1); | |
| 742 | + background-color: var(--warning-soft); | |
| 703 | 743 | border-left: 4px solid var(--warning-color); |
| 704 | 744 | color: var(--warning-color); |
| 705 | 745 | } |
| 706 | 746 | |
| 707 | 747 | .mlsimport-message-info { |
| 708 | - background-color: rgba(79, 70, 229, 0.1); | |
| 748 | + background-color: rgba(28, 25, 23, 0.1); | |
| 709 | 749 | border-left: 4px solid var(--primary-color); |
| 710 | 750 | color: var(--primary-color); |
| 711 | 751 | } |
| 712 | 752 | |
| @@ -730,10 +770,10 @@ | ||
| 730 | 770 | background-color: var(--background-light); |
| 731 | 771 | } |
| 732 | 772 | |
| 733 | 773 | .ui-menu-item.ui-state-focus { |
| 734 | - background-color: rgba(79, 70, 229, 0.1); | |
| 735 | - color: var(--primary-color); | |
| 774 | + background-color: var(--accent-soft); | |
| 775 | + color: var(--accent-color); | |
| 736 | 776 | margin: 0; |
| 737 | 777 | } |
| 738 | 778 | |
| 739 | 779 | /* Welcome page styling */ |
| @@ -784,9 +824,9 @@ | ||
| 784 | 824 | border-bottom: none; |
| 785 | 825 | } |
| 786 | 826 | |
| 787 | 827 | .mlsimport-requirement-status.success { |
| 788 | - color: var(--success-color); | |
| 828 | + color: var(--success-deep); | |
| 789 | 829 | } |
| 790 | 830 | |
| 791 | 831 | .mlsimport-requirement-status.error { |
| 792 | 832 | color: var(--error-color); |
| @@ -792,21 +832,21 @@ | ||
| 792 | 832 | color: var(--error-color); |
| 793 | 833 | } |
| 794 | 834 | |
| 795 | 835 | .mlsimport-warning-message { |
| 796 | - background-color: rgba(245, 158, 11, 0.1); | |
| 836 | + background-color: var(--warning-soft); | |
| 797 | 837 | border-left: 4px solid var(--warning-color); |
| 798 | 838 | padding: 1rem; |
| 799 | 839 | margin: 1.25rem 0; |
| 800 | - border-radius: 0.25rem; | |
| 840 | + border-radius: 10px; | |
| 801 | 841 | } |
| 802 | 842 | |
| 803 | 843 | .mlsimport-success-message { |
| 804 | - background-color: rgba(16, 185, 129, 0.1); | |
| 805 | - border-left: 4px solid var(--success-color); | |
| 844 | + background-color: var(--success-soft); | |
| 845 | + border-left: 4px solid var(--success-deep); | |
| 806 | 846 | padding: 1rem; |
| 807 | 847 | margin: 1.25rem 0; |
| 808 | - border-radius: 0.25rem; | |
| 848 | + border-radius: 10px; | |
| 809 | 849 | } |
| 810 | 850 | |
| 811 | 851 | /* Success page styling */ |
| 812 | 852 | .mlsimport-success-header { |
| @@ -812,11 +852,11 @@ | ||
| 812 | 852 | .mlsimport-success-header { |
| 813 | 853 | display: flex; |
| 814 | 854 | align-items: center; |
| 815 | 855 | margin-bottom: 2rem; |
| 816 | - background-color: rgba(16, 185, 129, 0.1); | |
| 856 | + background-color: var(--success-soft); | |
| 817 | 857 | padding: 1.5rem; |
| 818 | - border-radius: var(--border-radius); | |
| 858 | + border-radius: var(--radius-card); | |
| 819 | 859 | } |
| 820 | 860 | |
| 821 | 861 | .mlsimport-success-icon { |
| 822 | 862 | margin-right: 1.25rem; |
| @@ -825,9 +865,9 @@ | ||
| 825 | 865 | .mlsimport-success-icon .dashicons { |
| 826 | 866 | font-size: 3rem; |
| 827 | 867 | width: 3rem; |
| 828 | 868 | height: 3rem; |
| 829 | - color: var(--success-color); | |
| 869 | + color: var(--success-deep); | |
| 830 | 870 | } |
| 831 | 871 | |
| 832 | 872 | .mlsimport-links-grid, |
| 833 | 873 | .mlsimport-resources-grid { |
| @@ -842,9 +882,9 @@ | ||
| 842 | 882 | text-decoration: none; |
| 843 | 883 | display: flex; |
| 844 | 884 | align-items: center; |
| 845 | 885 | padding: 1rem; |
| 846 | - border-radius: var(--border-radius); | |
| 886 | + border-radius: var(--radius-card); | |
| 847 | 887 | background-color: var(--background-white); |
| 848 | 888 | border: 1px solid var(--border-color); |
| 849 | 889 | transition: all var(--transition-speed) ease; |
| 850 | 890 | color: var(--text-primary); |
| @@ -851,15 +891,15 @@ | ||
| 851 | 891 | } |
| 852 | 892 | |
| 853 | 893 | .mlsimport-quick-link:hover, |
| 854 | 894 | .mlsimport-resource-link:hover { |
| 855 | - border-color: var(--primary-color); | |
| 856 | - box-shadow: var(--shadow-sm); | |
| 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); | |
| 857 | 897 | } |
| 858 | 898 | |
| 859 | 899 | .mlsimport-quick-link-icon .dashicons, |
| 860 | 900 | .mlsimport-resource-icon .dashicons { |
| 861 | - color: var(--primary-color); | |
| 901 | + color: var(--accent-color); | |
| 862 | 902 | font-size: 1.5rem; |
| 863 | 903 | width: 1.5rem; |
| 864 | 904 | height: 1.5rem; |
| 865 | 905 | margin-right: 1rem; |
| @@ -872,24 +912,24 @@ | ||
| 872 | 912 | margin-bottom: 1.25rem; |
| 873 | 913 | } |
| 874 | 914 | |
| 875 | 915 | .mlsimport-status-message.success { |
| 876 | - background-color: rgba(16, 185, 129, 0.1); | |
| 877 | - border-left: 4px solid var(--success-color); | |
| 916 | + background-color: var(--success-soft); | |
| 917 | + border-left: 4px solid var(--success-deep); | |
| 878 | 918 | } |
| 879 | 919 | |
| 880 | 920 | .mlsimport-status-message.error { |
| 881 | - background-color: rgba(239, 68, 68, 0.1); | |
| 921 | + background-color: var(--error-soft); | |
| 882 | 922 | border-left: 4px solid var(--error-color); |
| 883 | 923 | } |
| 884 | 924 | |
| 885 | 925 | .mlsimport-status-message.warning { |
| 886 | - background-color: rgba(245, 158, 11, 0.1); | |
| 926 | + background-color: var(--warning-soft); | |
| 887 | 927 | border-left: 4px solid var(--warning-color); |
| 888 | 928 | } |
| 889 | 929 | |
| 890 | 930 | .mlsimport-status-message.progress { |
| 891 | - background-color: rgba(79, 70, 229, 0.1); | |
| 931 | + background-color: rgba(28, 25, 23, 0.1); | |
| 892 | 932 | border-left: 4px solid var(--primary-color); |
| 893 | 933 | } |
| 894 | 934 | |
| 895 | 935 | .mlsimport-progress-bar { |
| @@ -902,9 +942,9 @@ | ||
| 902 | 942 | } |
| 903 | 943 | |
| 904 | 944 | .mlsimport-progress-bar-inner { |
| 905 | 945 | height: 100%; |
| 906 | - background-color: var(--primary-color); | |
| 946 | + background-color: var(--accent-color); | |
| 907 | 947 | width: 0; |
| 908 | 948 | transition: width 0.3s ease; |
| 909 | 949 | } |
| 910 | 950 | |
| @@ -926,13 +966,13 @@ | ||
| 926 | 966 | color: var(--text-primary); |
| 927 | 967 | } |
| 928 | 968 | |
| 929 | 969 | .mlsimport-mapping-tips { |
| 930 | - background-color: rgba(79, 70, 229, 0.05); | |
| 970 | + background-color: rgba(28, 25, 23, 0.05); | |
| 931 | 971 | border-left: 4px solid var(--primary-color); |
| 932 | 972 | padding: 1rem; |
| 933 | 973 | margin-top: 1.25rem; |
| 934 | - border-radius: 0.25rem; | |
| 974 | + border-radius: 10px; | |
| 935 | 975 | } |
| 936 | 976 | |
| 937 | 977 | .mlsimport-mapping-tips h3 { |
| 938 | 978 | margin-top: 0; |
| @@ -952,16 +992,20 @@ | ||
| 952 | 992 | |
| 953 | 993 | .mlsimport-field-filters .button { |
| 954 | 994 | background-color: var(--background-white); |
| 955 | 995 | border: 1px solid var(--border-color); |
| 956 | - color: var(--text-secondary); | |
| 957 | - border-radius: 0.375rem; | |
| 996 | + color: var(--text-primary); | |
| 997 | + border-radius: 999px; | |
| 958 | 998 | transition: all var(--transition-speed) ease; |
| 959 | 999 | } |
| 960 | 1000 | |
| 1001 | +.mlsimport-field-filters .button:hover { | |
| 1002 | + background-color: var(--background-soft); | |
| 1003 | +} | |
| 1004 | + | |
| 961 | 1005 | .mlsimport-field-filters .button.active { |
| 962 | - background-color: var(--primary-color); | |
| 963 | - border-color: var(--primary-color); | |
| 1006 | + background-color: var(--accent-color); | |
| 1007 | + border-color: var(--accent-color); | |
| 964 | 1008 | color: white; |
| 965 | 1009 | } |
| 966 | 1010 | |
| 967 | 1011 | .mlsimport-field-search { |
| @@ -971,9 +1015,9 @@ | ||
| 971 | 1015 | .mlsimport-field-search input[type="text"] { |
| 972 | 1016 | width: 100%; |
| 973 | 1017 | padding: 0.5rem 0.75rem; |
| 974 | 1018 | border: 1px solid var(--border-color); |
| 975 | - border-radius: 0.375rem; | |
| 1019 | + border-radius: 10px; | |
| 976 | 1020 | } |
| 977 | 1021 | |
| 978 | 1022 | .mlsimport-field-table { |
| 979 | 1023 | border-collapse: separate; |
| @@ -1009,10 +1053,10 @@ | ||
| 1009 | 1053 | border-radius: 3px; |
| 1010 | 1054 | } |
| 1011 | 1055 | |
| 1012 | 1056 | .mlsimport-field-table input[type="checkbox"]:checked { |
| 1013 | - background-color: var(--primary-color); | |
| 1014 | - border-color: var(--primary-color); | |
| 1057 | + background-color: var(--accent-color); | |
| 1058 | + border-color: var(--accent-color); | |
| 1015 | 1059 | } |
| 1016 | 1060 | |
| 1017 | 1061 | /* Account verification styling */ |
| 1018 | 1062 | .mlsimport_warning { |
| @@ -1018,16 +1062,16 @@ | ||
| 1018 | 1062 | .mlsimport_warning { |
| 1019 | 1063 | padding: 0.75rem 1rem; |
| 1020 | 1064 | margin-bottom: 1rem; |
| 1021 | 1065 | border-radius: var(--border-radius); |
| 1022 | - background-color:#fee4e2; | |
| 1066 | + background-color: var(--error-soft); | |
| 1023 | 1067 | border-left: 4px solid var(--error-color); |
| 1024 | 1068 | color: var(--text-primary); |
| 1025 | 1069 | } |
| 1026 | 1070 | |
| 1027 | 1071 | .mlsimport_warning.mlsimport_validated { |
| 1028 | - background-color: rgba(16, 185, 129, 0.1); | |
| 1029 | - border-left: 4px solid var(--success-color); | |
| 1072 | + background-color: var(--success-soft); | |
| 1073 | + border-left: 4px solid var(--success-deep); | |
| 1030 | 1074 | } |
| 1031 | 1075 | |
| 1032 | 1076 | .mlsimport-fieldset { |
| 1033 | 1077 | margin-bottom: 1.25rem; |
| @@ -1037,33 +1081,47 @@ | ||
| 1037 | 1081 | .mlsimport-input { |
| 1038 | 1082 | width: 100%; |
| 1039 | 1083 | padding: 0.5rem 0.75rem; |
| 1040 | 1084 | border: 1px solid var(--border-color); |
| 1041 | - border-radius: 0.375rem; | |
| 1085 | + border-radius: 10px; | |
| 1042 | 1086 | transition: all var(--transition-speed) ease; |
| 1043 | 1087 | } |
| 1044 | 1088 | |
| 1045 | 1089 | .mlsimport-input:focus { |
| 1046 | 1090 | outline: none; |
| 1047 | - border-color: var(--primary-color); | |
| 1048 | - box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.2); | |
| 1091 | + border-color: var(--accent-color); | |
| 1092 | + box-shadow: 0 0 0 3px rgba(232, 93, 60, 0.2); | |
| 1049 | 1093 | } |
| 1050 | 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. */ | |
| 1051 | 1101 | .mlsimport-save-account, |
| 1102 | +.mlsimport-create-account, | |
| 1052 | 1103 | .mlsimport-save-mls-data { |
| 1053 | 1104 | background-color: var(--primary-color) !important; |
| 1054 | 1105 | color: white !important; |
| 1055 | - border: none !important; | |
| 1056 | - padding: 0.5rem 1rem !important; | |
| 1057 | - border-radius: 0.375rem !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; | |
| 1058 | 1112 | font-weight: 500 !important; |
| 1113 | + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.08) !important; | |
| 1059 | 1114 | transition: all var(--transition-speed) ease !important; |
| 1060 | 1115 | margin-top: 0.5rem !important; |
| 1061 | 1116 | } |
| 1062 | 1117 | |
| 1063 | 1118 | .mlsimport-save-account:hover, |
| 1119 | +.mlsimport-create-account:hover, | |
| 1064 | 1120 | .mlsimport-save-mls-data:hover { |
| 1065 | 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; | |
| 1066 | 1124 | } |
| 1067 | 1125 | |
| 1068 | 1126 | /* Import configuration styling */ |
| 1069 | 1127 | .mlsimport-price-fields { |
| @@ -1077,8 +1135,11 @@ | ||
| 1077 | 1135 | } |
| 1078 | 1136 | |
| 1079 | 1137 | |
| 1080 | 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. */ | |
| 1081 | 1142 | .mlsimport-welcome-intro { |
| 1082 | 1143 | font-size: 16px; |
| 1083 | 1144 | line-height: 1.5; |
| 1084 | 1145 | } |
| @@ -1111,31 +1172,31 @@ | ||
| 1111 | 1172 | padding: 10px; |
| 1112 | 1173 | } |
| 1113 | 1174 | |
| 1114 | 1175 | .mlsimport-requirement-status.success { |
| 1115 | - color: #46b450; | |
| 1176 | + color: var(--success-deep); | |
| 1116 | 1177 | } |
| 1117 | 1178 | |
| 1118 | 1179 | .mlsimport-requirement-status.error { |
| 1119 | - color: #dc3232; | |
| 1180 | + color: var(--error-color); | |
| 1120 | 1181 | } |
| 1121 | 1182 | |
| 1122 | 1183 | .mlsimport-requirement-help td { |
| 1123 | - background-color: #f9f9f9; | |
| 1184 | + background-color: var(--background-soft); | |
| 1124 | 1185 | font-style: italic; |
| 1125 | 1186 | padding-top: 0; |
| 1126 | 1187 | } |
| 1127 | 1188 | |
| 1128 | 1189 | .mlsimport-warning-message { |
| 1129 | - background-color: #fff8e5; | |
| 1130 | - border-left: 4px solid #ffb900; | |
| 1190 | + background-color: var(--warning-soft); | |
| 1191 | + border-left: 4px solid var(--warning-color); | |
| 1131 | 1192 | padding: 12px; |
| 1132 | 1193 | margin: 20px 0; |
| 1133 | 1194 | } |
| 1134 | 1195 | |
| 1135 | 1196 | .mlsimport-success-message { |
| 1136 | - background-color: #ecf7ed; | |
| 1137 | - border-left: 4px solid #46b450; | |
| 1197 | + background-color: var(--success-soft); | |
| 1198 | + border-left: 4px solid var(--success-deep); | |
| 1138 | 1199 | padding: 12px; |
| 1139 | 1200 | margin: 20px 0; |
| 1140 | 1201 | } |
| 1141 | 1202 | |
| @@ -1140,11 +1201,11 @@ | ||
| 1140 | 1201 | } |
| 1141 | 1202 | |
| 1142 | 1203 | .mlsimport-welcome-note { |
| 1143 | 1204 | margin-top: 30px; |
| 1144 | - background-color: #f9f9f9; | |
| 1205 | + background-color: var(--background-soft); | |
| 1145 | 1206 | padding: 15px; |
| 1146 | - border-radius: 4px; | |
| 1207 | + border-radius: 10px; | |
| 1147 | 1208 | } |
| 1148 | 1209 | |
| 1149 | 1210 | .mlsimport-welcome-note ul { |
| 1150 | 1211 | margin-left: 20px; |
| @@ -1152,5 +1213,5 @@ | ||
| 1152 | 1213 | |
| 1153 | 1214 | .mlsimport-welcome-note li { |
| 1154 | 1215 | margin-bottom: 5px; |
| 1155 | 1216 | list-style: disc; |
| 1156 | -} | |
| 1217 | +} | |