a a vibe-coded abomination experiment of a fragrance review platform built on the atmosphere. drydown.social
at main 1161 lines 21 kB view raw
1/* Component-specific styles for App */ 2 3:root { 4 --bg-color: #ffffff; 5 --text-color: #000000; 6 --text-secondary: #666666; 7 --border-color: #dddddd; 8 9 --card-border: #dddddd; 10 --card-border-dashed: #cccccc; 11 12 --card-bg: #f5f5f5; 13 --card-bg-interactive: #ffffff; 14 --card-bg-hover: #f0f8ff; 15 16 --status-ready: #0066cc; 17 --status-completed: #00aa00; 18 --status-inprogress: #666666; 19 20 --star-color: #ff9900; 21 22 --site-max-width: 720px; 23} 24 25@media (prefers-color-scheme: dark) { 26 :root { 27 --bg-color: #121212; 28 --text-color: #e0e0e0; 29 --text-secondary: #aaaaaa; 30 --border-color: #333333; 31 32 --card-border: #333333; 33 --card-border-dashed: #444444; 34 35 --card-bg: #1e1e1e; 36 --card-bg-interactive: #1e1e1e; 37 --card-bg-hover: #2a2a2a; 38 39 --status-ready: #4dabf5; 40 --status-completed: #66bb6a; 41 --status-inprogress: #aaaaaa; 42 } 43} 44 45body { 46 background-color: var(--bg-color); 47 color: var(--text-color); 48} 49 50a { 51 color: var(--text-color); 52} 53 54#app { 55 width: 100%; 56 max-width: var(--site-max-width); 57 margin: 0 auto; 58 padding: 0; 59 text-align: left; 60} 61 62/* Page container can just control padding/box-sizing now */ 63.page-container { 64 width: 100%; 65 padding: 1rem 1rem; 66 box-sizing: border-box; 67} 68 69/* Ensure images and other content resize properly */ 70.page-container img { 71 max-width: 100%; 72 height: auto; 73} 74 75.card { 76 padding: 2em; 77} 78 79/* Site Header */ 80.site-header { 81 display: flex; 82 justify-content: space-between; 83 align-items: center; 84 margin-bottom: 1.5rem; 85 padding: 0; 86 width: 100%; 87} 88 89.site-logo { 90 font-size: 1.5rem; 91 font-weight: 800; 92 letter-spacing: -0.02em; 93 color: var(--text-color); 94 text-decoration: none; 95} 96 97.site-nav { 98 display: flex; 99 gap: 1rem; 100 align-items: center; 101} 102 103.nav-link { 104 font-size: 0.9rem; 105 color: var(--text-secondary); 106 text-decoration: none; 107 transition: color 0.15s ease; 108} 109 110.nav-link:hover { 111 color: var(--text-color); 112} 113 114.nav-link-username { 115 color: var(--text-color); 116} 117 118/* Legacy header styles for page-specific headers */ 119header { 120 display: flex; 121 justify-content: space-between; 122 align-items: center; 123 margin-bottom: 1.5rem; 124 padding: 0; 125 width: 100%; 126} 127 128header h1 { 129 margin: 0; 130 font-size: 2.2rem; 131 letter-spacing: -0.02em; 132 font-weight: 800; 133 color: var(--text-color); 134} 135 136/* Profile Avatar */ 137.profile-avatar { 138 border: 2px solid var(--border-color); 139} 140 141/* Review List Styles */ 142.review-section { 143 margin-bottom: 2rem; 144} 145 146.review-section-header { 147 font-size: 1.2rem; 148 margin-bottom: 1rem; 149 color: var(--text-color); 150} 151 152.review-section-header.ready { 153 color: var(--status-ready); 154} 155 156.review-section-header.in-progress { 157 color: var(--status-inprogress); 158} 159 160.review-section-header.completed { 161 color: var(--status-completed); 162} 163 164.all-reviews-header-container { 165 display: flex; 166 justify-content: space-between; 167 align-items: center; 168 margin-bottom: 1rem; 169} 170 171.subtle-heading { 172 font-size: 0.9rem; 173 color: var(--text-secondary); 174 text-transform: uppercase; 175 letter-spacing: 0.05em; 176 font-weight: bold; 177} 178 179.sort-controls { 180 display: flex; 181 gap: 0.5rem; 182 align-items: center; 183 font-size: 0.85rem; 184 color: var(--text-secondary); 185} 186 187.sort-controls select { 188 background-color: var(--card-bg); 189 color: var(--text-color); 190 border: 1px solid var(--border-color); 191 border-radius: 4px; 192 padding: 0.2rem 0.4rem; 193 font-size: 0.85rem; 194} 195 196.reviews-empty { 197 text-align: center; 198 padding: 2rem; 199 color: var(--text-secondary); 200} 201 202/* Enhanced empty state for non-drydown users */ 203.empty-profile-state { 204 text-align: center; 205 padding: 3rem 2rem; 206 background: var(--surface-2); 207 border: 1px solid var(--border-color); 208 border-radius: var(--radius-lg); 209 margin: 2rem 0; 210} 211 212.empty-profile-state-title { 213 font-size: 1.25rem; 214 font-weight: 600; 215 margin-bottom: 1rem; 216 color: var(--text-primary); 217} 218 219.empty-profile-state-description { 220 font-size: 0.95rem; 221 color: var(--text-secondary); 222 line-height: 1.6; 223 margin-bottom: 1.5rem; 224 max-width: 480px; 225 margin-left: auto; 226 margin-right: auto; 227} 228 229.empty-profile-state-cta { 230 margin-top: 1.5rem; 231} 232 233/* Review Card Styles */ 234.review-card { 235 border: 1px solid var(--card-border); 236 border-radius: 8px; 237 padding: 1rem; 238 margin-bottom: 1rem; 239 background-color: var(--card-bg); 240 transition: background-color 0.2s, border-color 0.2s; 241} 242 243.review-card.inProgress { 244 border: 1px dashed var(--card-border-dashed); 245 opacity: 0.8; 246} 247 248.review-card.interactive { 249 cursor: pointer; 250 background-color: var(--card-bg-interactive); 251} 252 253.review-card.interactive:hover { 254 background-color: var(--card-bg-hover); 255} 256 257.review-card-title { 258 margin: 0 0 0.5rem 0; 259 font-size: 1.1rem; 260 color: var(--text-color); 261} 262 263.review-card-status { 264 font-size: 0.9rem; 265 font-weight: bold; 266} 267 268.review-card-status.ready { 269 color: var(--status-ready); 270} 271 272.review-card-status.in-progress { 273 color: var(--text-secondary); 274 font-weight: normal; 275} 276 277.review-card-rating { 278 font-size: 1.2rem; 279 color: var(--star-color); 280} 281 282.review-card-excerpt { 283 font-size: 0.9rem; 284 color: var(--text-secondary); 285 margin: 0.5rem 0 0 0; 286} 287 288/* Tab Bar Styles */ 289.tab-bar { 290 display: flex; 291 gap: 0.5rem; 292 border-bottom: 1px solid var(--border-color); 293 margin-bottom: 2rem; 294} 295 296.tab-item { 297 padding: 0.75rem 1rem; 298 font-size: 1rem; 299 text-decoration: none; 300 color: var(--text-color); 301 opacity: 0.5; 302 transition: opacity 0.2s ease; 303} 304 305.tab-item:hover { 306 opacity: 0.7; 307} 308 309.tab-item--active { 310 opacity: 1; 311 font-weight: 600; 312 border-bottom: 2px solid var(--text-color); 313} 314 315/* Shared Header/Nav Styles */ 316.main-nav { 317 display: flex; 318 justify-content: space-between; 319 align-items: center; 320 margin-bottom: 2rem; 321 border-bottom: 1px solid var(--border-color); 322 padding-bottom: 1rem; 323} 324 325.nav-logo { 326 text-decoration: none; 327 color: var(--text-color); 328 font-weight: 800; 329 font-size: 1.5rem; 330} 331 332/* Single Review Page Styles */ 333.back-link { 334 display: inline-block; 335 margin-bottom: 1rem; 336 color: var(--text-secondary); 337 text-decoration: none; 338} 339 340.review-header { 341 margin-bottom: 2rem; 342 display: flex; 343 justify-content: space-between; 344 align-items: flex-start; 345} 346 347.review-title { 348 margin: 0 0 0.25rem 0; 349 font-size: 2.2rem; 350 letter-spacing: -0.02em; 351 font-weight: 800; 352 color: var(--text-color); 353} 354 355.review-subtitle { 356 font-size: 1.2rem; 357 font-weight: normal; 358 color: var(--text-secondary); 359 margin: 0; 360} 361 362.review-meta { 363 display: flex; 364 flex-direction: column; 365 gap: 1.5rem; 366 margin-bottom: 2rem; 367} 368 369.rating-section { 370 display: flex; 371 flex-direction: column; 372 align-items: flex-start; 373 gap: 0.5rem; 374} 375 376.rating-stars { 377 font-size: 2.5rem; 378 color: var(--star-color); 379 line-height: 1; 380} 381 382.rating-note { 383 font-size: 0.9rem; 384 font-style: italic; 385 opacity: 0.8; 386 color: var(--text-secondary); 387} 388 389.review-info { 390 display: flex; 391 flex-direction: column; 392 gap: 0.35rem; 393 text-align: left; 394} 395 396.review-date { 397 font-size: 0.95rem; 398 color: var(--text-secondary); 399} 400 401.review-author { 402 font-size: 0.9rem; 403 opacity: 0.75; 404 color: var(--text-secondary); 405} 406 407/* Legacy class for backwards compatibility */ 408.rating-large { 409 font-size: 2.5rem; 410 color: var(--star-color); 411} 412 413.grid-scores { 414 display: grid; 415 grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); 416 gap: 1rem; 417 margin-bottom: 2rem; 418} 419 420.score-item { 421 background: var(--card-bg); 422 padding: 0.8rem; 423 border-radius: 8px; 424 border: 1px solid var(--card-border); 425} 426 427.score-label { 428 font-size: 0.8rem; 429 color: var(--text-secondary); 430} 431 432.score-value { 433 font-size: 1.2rem; 434 font-weight: bold; 435 color: var(--text-color); 436} 437 438.review-text { 439 font-size: 1.1rem; 440 line-height: 1.6; 441 color: var(--text-color); 442} 443 444.review-paragraph { 445 margin-bottom: 1rem; 446} 447 448/* Weather Opt-In Banner */ 449.weather-opt-in-banner { 450 background: var(--card-bg); 451 border: 1px solid var(--card-border); 452 border-radius: 8px; 453 padding: 1.5rem; 454 margin-bottom: 2rem; 455 display: flex; 456 flex-direction: column; 457 gap: 1rem; 458} 459 460.banner-icon { 461 font-size: 2rem; 462} 463 464.banner-content h3 { 465 margin: 0 0 0.5rem 0; 466 font-size: 1.125rem; 467 color: var(--text-color); 468} 469 470.banner-content p { 471 margin: 0; 472 color: var(--text-secondary); 473 font-size: 0.875rem; 474} 475 476.banner-actions { 477 display: flex; 478 gap: 1rem; 479 align-items: center; 480} 481 482.banner-actions button { 483 padding: 0.5rem 1rem; 484} 485 486.banner-actions a { 487 color: var(--text-secondary); 488 text-decoration: none; 489} 490 491.banner-actions a:hover { 492 text-decoration: underline; 493} 494 495.error-message { 496 color: #ef4444; 497 font-size: 0.875rem; 498 margin-top: 0.5rem; 499} 500 501@media (prefers-color-scheme: dark) { 502 .error-message { 503 color: #f87171; 504 } 505} 506 507/* Landing Page Hero */ 508.landing-hero { 509 text-align: center; 510 max-width: 400px; 511 margin: 0 auto 2rem; 512 padding: 1rem 0; 513} 514 515.landing-hero h1 { 516 font-size: 2.5rem; 517 font-weight: 800; 518 letter-spacing: -0.03em; 519 margin-bottom: 0.5rem; 520} 521 522.landing-hero p { 523 color: var(--text-secondary); 524 font-size: 1rem; 525 margin-bottom: 1.5rem; 526} 527 528/* Houses Ribbon */ 529.houses-section { 530 margin-bottom: 2rem; 531} 532 533.houses-section h2 { 534 font-size: 1.2rem; 535 margin-bottom: 0.75rem; 536 font-weight: 600; 537} 538 539.houses-ribbon { 540 display: flex; 541 gap: 0.75rem; 542 overflow-x: auto; 543 scroll-snap-type: x mandatory; 544 scroll-behavior: smooth; 545 padding-bottom: 0.5rem; 546 -webkit-overflow-scrolling: touch; /* iOS smooth scroll */ 547} 548 549.houses-ribbon::-webkit-scrollbar { 550 height: 6px; 551} 552 553.houses-ribbon::-webkit-scrollbar-track { 554 background: var(--card-bg); 555 border-radius: 3px; 556} 557 558.houses-ribbon::-webkit-scrollbar-thumb { 559 background: var(--border-color); 560 border-radius: 3px; 561} 562 563/* House Card */ 564.house-card { 565 min-width: 150px; 566 background: var(--card-bg); 567 border: 1px solid var(--card-border); 568 border-radius: 8px; 569 padding: 0.75rem; 570 scroll-snap-align: start; 571 flex-shrink: 0; 572 transition: background 0.2s ease; 573} 574 575.house-card:hover { 576 background: var(--card-bg-hover); 577} 578 579.house-card-name { 580 font-size: 1rem; 581 font-weight: 600; 582 margin-bottom: 0.5rem; 583 color: var(--text-color); 584} 585 586.house-card-count { 587 font-size: 0.85rem; 588 opacity: 0.7; 589 color: var(--text-secondary); 590} 591 592/* House Filter Toggle */ 593.house-filter { 594 display: flex; 595 gap: 0.5rem; 596 border-bottom: 1px solid var(--border-color); 597 margin-bottom: 2rem; 598} 599 600.house-filter-button { 601 background: none; 602 border: none; 603 padding: 0.75rem 1rem; 604 font-size: 1rem; 605 color: var(--text-color); 606 opacity: 0.5; 607 cursor: pointer; 608 transition: opacity 0.2s ease; 609 border-bottom: 2px solid transparent; 610} 611 612.house-filter-button:hover { 613 opacity: 0.7; 614} 615 616.house-filter-button.active { 617 opacity: 1; 618 font-weight: 600; 619 border-bottom-color: var(--text-color); 620} 621 622/* Reviews Section */ 623.landing-reviews { 624 margin-bottom: 1.5rem; 625} 626 627.landing-reviews h2 { 628 font-size: 1.2rem; 629 margin-bottom: 0.75rem; 630 font-weight: 600; 631} 632 633/* Mobile Adjustments */ 634@media (max-width: 480px) { 635 .landing-hero { 636 padding: 0.5rem 0; 637 } 638 639 .landing-hero h1 { 640 font-size: 2rem; 641 } 642 643 .house-card { 644 min-width: 140px; 645 } 646} 647 648/* Login Form Styles */ 649.login-form-card { 650 max-width: var(--site-max-width); 651 margin: 0 auto; 652 padding: 2rem 2rem 1.5rem; 653 border: 1px solid var(--border-color); 654 border-radius: 12px; 655 background: var(--card-bg-interactive); 656} 657 658.login-form-heading { 659 text-align: center; 660 font-size: 1rem; 661 font-weight: 700; 662 line-height: 1.4; 663 margin-bottom: 1.5rem; 664 color: var(--text-color); 665 text-transform: lowercase; 666 text-wrap: balance; 667} 668 669.login-form { 670 display: flex; 671 flex-direction: column; 672 gap: 1rem; 673 max-width: var(--site-max-width); 674 margin: 0 auto; 675} 676 677/* Primary Button Style */ 678/* Login form button */ 679.login-form-button { 680 width: 100%; 681} 682 683.login-form-providers { 684 text-align: center; 685 font-size: 0.875rem; 686 color: var(--text-color); 687 line-height: 1.5; 688} 689 690.login-form-providers a { 691 color: var(--text-color); 692 text-decoration: underline; 693} 694 695.login-form-providers a:hover { 696 opacity: 0.8; 697} 698 699/* Accessibility */ 700.sr-only { 701 position: absolute; 702 width: 1px; 703 height: 1px; 704 padding: 0; 705 margin: -1px; 706 overflow: hidden; 707 clip: rect(0, 0, 0, 0); 708 white-space: nowrap; 709 border-width: 0; 710} 711 712/* App Disclaimer - Very Subtle Footer */ 713.app-disclaimer { 714 margin-top: 3rem; 715 padding-top: 2rem; 716 border-top: 1px solid var(--border-color); 717 opacity: 0.7; 718 transition: opacity 0.2s ease; 719} 720 721.app-disclaimer:hover { 722 opacity: 0.9; 723} 724 725.app-disclaimer.minimal { 726 text-align: center; 727} 728 729.app-disclaimer.minimal p { 730 font-size: 0.75rem; 731 color: var(--text-secondary); 732 margin: 0; 733 line-height: 1.4; 734 text-wrap: pretty; 735} 736 737.app-disclaimer.detailed { 738 max-width: var(--site-max-width); 739 margin-left: auto; 740 margin-right: auto; 741} 742 743.app-disclaimer.detailed p { 744 font-size: 0.85rem; 745 color: var(--text-secondary); 746 margin: 0 0 0.75rem 0; 747 line-height: 1.6; 748 text-wrap: pretty; 749} 750 751.app-disclaimer.detailed p:last-child { 752 margin-bottom: 0; 753} 754 755.app-disclaimer a { 756 color: var(--text-secondary); 757 text-decoration: underline; 758} 759 760.app-disclaimer a:hover { 761 text-decoration-thickness: 2px; 762} 763 764/* App Footer */ 765.app-footer { 766 margin-top: 3rem; 767 padding: 2rem 0 1rem; 768 border-top: 1px solid var(--border-color); 769 text-align: center; 770} 771 772.footer-links { 773 font-size: 0.85rem; 774 color: var(--text-secondary); 775 line-height: 1.6; 776} 777 778.footer-links a { 779 color: var(--text-secondary); 780 text-decoration: none; 781 transition: opacity 0.2s ease; 782} 783 784.footer-links a:hover { 785 opacity: 0.7; 786 text-decoration: underline; 787} 788 789.footer-separator { 790 margin: 0 0.5rem; 791 opacity: 0.5; 792} 793 794/* Rubric Selector Styles */ 795.rubric-selector { 796 margin-bottom: 1.5rem; 797} 798 799.rubric-question { 800 font-size: 1rem; 801 font-weight: 600; 802 margin-bottom: 0.75rem; 803 color: var(--text-color); 804} 805 806.rubric-options { 807 display: flex; 808 flex-direction: column; 809 gap: 0.5rem; 810} 811 812.rubric-option { 813 display: flex; 814 align-items: center; 815 padding: 0.875rem 1rem; 816 border: 2px solid var(--card-border); 817 border-radius: 8px; 818 background: var(--card-bg); 819 cursor: pointer; 820 transition: border-color 0.15s ease, background-color 0.15s ease; 821 text-align: left; 822 width: 100%; 823 font-size: inherit; 824 font-family: inherit; 825 color: inherit; 826} 827 828.rubric-option:hover:not(.disabled) { 829 border-color: var(--status-ready); 830 background: var(--card-bg-hover); 831} 832 833.rubric-option.selected { 834 border-color: var(--status-ready); 835 background: var(--card-bg-hover); 836} 837 838.rubric-option:focus-visible { 839 outline: 2px solid var(--status-ready); 840 outline-offset: 2px; 841} 842 843.rubric-option.disabled { 844 opacity: 0.5; 845 cursor: not-allowed; 846} 847 848.rubric-option-text { 849 line-height: 1.4; 850 color: var(--text-color); 851} 852 853/* Touch targets - ensure 44x44px minimum for accessibility */ 854@media (pointer: coarse) { 855 .rubric-option { 856 min-height: 56px; 857 padding: 1rem; 858 } 859} 860 861/* Rubric Display (read-only) Styles */ 862.rubric-display { 863 display: flex; 864 flex-direction: column; 865 gap: 0.5rem; 866} 867 868.rubric-display-item { 869 display: flex; 870 justify-content: space-between; 871 align-items: flex-start; 872 padding: 0.5rem 0; 873 border-bottom: 1px solid var(--card-border); 874} 875 876.rubric-display-item:last-child { 877 border-bottom: none; 878} 879 880.rubric-display-label { 881 font-size: 0.85rem; 882 color: var(--text-secondary); 883 flex-shrink: 0; 884 margin-right: 1rem; 885} 886 887.rubric-display-value { 888 font-size: 0.9rem; 889 color: var(--text-color); 890 text-align: right; 891} 892 893.rubric-display-value.compact { 894 font-weight: 500; 895} 896 897.rubric-display-value.full { 898 max-width: 300px; 899} 900 901/* Settings Page Styles */ 902.settings-page { 903 width: 100%; 904} 905 906.settings-header { 907 margin-bottom: 2rem; 908} 909 910.settings-header h1 { 911 font-size: 2rem; 912 font-weight: 800; 913 letter-spacing: -0.02em; 914 margin: 0 0 0.75rem 0; 915 color: var(--text-color); 916} 917 918.settings-intro { 919 font-size: 0.8rem; 920 color: var(--text-secondary); 921 line-height: 1.5; 922 margin: 1rem 0 0 0; 923 width: 54ch; 924 padding-inline-start: 4em; 925} 926 927.settings-preferences { 928 display: flex; 929 flex-direction: column; 930 gap: 2.5rem; 931 margin-bottom: 2rem; 932} 933 934.settings-section { 935 margin-bottom: 2rem; 936 padding-top: 1.5rem; 937 border-top: 1px solid var(--border-color); 938} 939 940.settings-section-title { 941 font-size: 1.25rem; 942 font-weight: 600; 943 margin: 0 0 0.5rem 0; 944 color: var(--text-color); 945} 946 947.settings-section-description { 948 font-size: 0.9rem; 949 color: var(--text-secondary); 950 margin: 0 0 1rem 0; 951 line-height: 1.5; 952} 953 954.settings-actions { 955 display: flex; 956 gap: 1rem; 957 justify-content: flex-end; 958 padding-top: 1.5rem; 959 border-top: 1px solid var(--border-color); 960} 961 962/* Preference Selector Styles */ 963.preference-selector { 964 margin-bottom: 0; 965} 966 967.preference-header { 968 margin-bottom: 1rem; 969} 970 971.preference-question { 972 font-size: 1.1rem; 973 font-weight: 600; 974 margin-bottom: 0.25rem; 975 color: var(--text-color); 976} 977 978.preference-description { 979 font-size: 0.85rem; 980 color: var(--text-secondary); 981 line-height: 1.4; 982} 983 984.preference-options { 985 display: flex; 986 flex-direction: column; 987 gap: 0.5rem; 988} 989 990.preference-option { 991 display: flex; 992 align-items: center; 993 padding: 0.875rem 1rem; 994 border: 2px solid var(--card-border); 995 border-radius: 8px; 996 background: var(--card-bg); 997 cursor: pointer; 998 transition: border-color 0.15s ease, background-color 0.15s ease; 999 text-align: left; 1000 width: 100%; 1001 font-size: inherit; 1002 font-family: inherit; 1003 color: inherit; 1004} 1005 1006.preference-option:hover:not(.disabled) { 1007 border-color: var(--status-ready); 1008 background: var(--card-bg-hover); 1009} 1010 1011.preference-option.selected { 1012 border-color: var(--status-ready); 1013 background: var(--card-bg-hover); 1014} 1015 1016.preference-option:focus-visible { 1017 outline: 2px solid var(--status-ready); 1018 outline-offset: 2px; 1019} 1020 1021.preference-option.disabled { 1022 opacity: 0.5; 1023 cursor: not-allowed; 1024} 1025 1026.preference-option-text { 1027 line-height: 1.4; 1028 color: var(--text-color); 1029} 1030 1031/* Score Lens Toggle */ 1032.score-lens-options { 1033 display: flex; 1034 flex-direction: column; 1035 gap: 0.5rem; 1036} 1037 1038.score-lens-option { 1039 display: flex; 1040 flex-direction: column; 1041 align-items: flex-start; 1042 padding: 1rem; 1043 border: 2px solid var(--card-border); 1044 border-radius: 8px; 1045 background: var(--card-bg); 1046 cursor: pointer; 1047 transition: border-color 0.15s ease, background-color 0.15s ease; 1048 text-align: left; 1049 width: 100%; 1050 font-size: inherit; 1051 font-family: inherit; 1052 color: inherit; 1053} 1054 1055.score-lens-option:hover:not(:disabled) { 1056 border-color: var(--status-ready); 1057 background: var(--card-bg-hover); 1058} 1059 1060.score-lens-option.selected { 1061 border-color: var(--status-ready); 1062 background: var(--card-bg-hover); 1063} 1064 1065.score-lens-option:focus-visible { 1066 outline: 2px solid var(--status-ready); 1067 outline-offset: 2px; 1068} 1069 1070.score-lens-option:disabled { 1071 opacity: 0.5; 1072 cursor: not-allowed; 1073} 1074 1075.score-lens-label { 1076 font-weight: 600; 1077 color: var(--text-color); 1078 margin-bottom: 0.25rem; 1079} 1080 1081.score-lens-description { 1082 font-size: 0.85rem; 1083 color: var(--text-secondary); 1084 line-height: 1.4; 1085} 1086 1087/* Success Message */ 1088.success-message { 1089 background: #d4edda; 1090 color: #155724; 1091 padding: 0.75rem 1rem; 1092 border-radius: 8px; 1093 margin-bottom: 1.5rem; 1094 font-size: 0.9rem; 1095} 1096 1097@media (prefers-color-scheme: dark) { 1098 .success-message { 1099 background: #1e3a1e; 1100 color: #75d675; 1101 } 1102} 1103 1104/* Touch targets for preference options */ 1105@media (pointer: coarse) { 1106 .preference-option, 1107 .score-lens-option { 1108 min-height: 56px; 1109 padding: 1rem; 1110 } 1111} 1112 1113/* Personalized score indicator */ 1114.personalized-score-indicator { 1115 font-size: 0.75rem; 1116 color: var(--text-secondary); 1117 margin-top: 0.25rem; 1118 font-style: italic; 1119} 1120 1121/* Original score reference (shown alongside personalized) */ 1122.original-score-reference { 1123 font-size: 0.9rem; 1124 color: var(--text-secondary); 1125 opacity: 0.6; 1126 margin-top: 0.15rem; 1127 font-style: italic; 1128 line-height: 1.3; 1129} 1130 1131/* Smaller in compact card view */ 1132.review-card .original-score-reference { 1133 font-size: 0.75rem; 1134 line-height: 1.2; 1135} 1136 1137/* Styling for detailed view */ 1138.review-meta .original-score-reference { 1139 font-size: 0.8rem; 1140 margin-top: 0.25rem; 1141 margin-bottom: -0.25rem; 1142} 1143 1144/* Compatibility Score Styling */ 1145.compatibility-score { 1146 grid-column: span 2; 1147 opacity: 0.85; 1148} 1149 1150.compatibility-score .score-value { 1151 display: flex; 1152 flex-direction: column; 1153 align-items: center; 1154 gap: 0.25rem; 1155 font-size: 0.95rem; 1156} 1157 1158.compatibility-score .score-label { 1159 font-size: 0.8rem; 1160 text-align: center; 1161}