Spaces:
Running
Running
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| /* VeryWellMind-inspired Wellness Theme */ | |
| :root { | |
| /* Primary Colors */ | |
| --primary-teal: #0d9488; | |
| --primary-teal-light: #14b8a6; | |
| --primary-teal-dark: #0f766e; | |
| /* Accent Colors */ | |
| --accent-lavender: #a855f7; | |
| --accent-coral: #ff6b6b; | |
| --accent-sage: #7a8b63; | |
| /* Background Colors */ | |
| --bg-cream: #fdf9f3; | |
| --bg-soft: #fafaf9; | |
| --bg-white: #ffffff; | |
| /* Text Colors */ | |
| --text-primary: #1c1917; | |
| --text-secondary: #57534e; | |
| --text-muted: #78716c; | |
| /* Foreground/Background */ | |
| --foreground-rgb: 28, 25, 23; | |
| --background-rgb: 253, 249, 243; | |
| } | |
| @media (prefers-color-scheme: dark) { | |
| :root { | |
| --foreground-rgb: 250, 250, 249; | |
| --background-rgb: 28, 25, 23; | |
| } | |
| } | |
| * { | |
| box-sizing: border-box; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| color: rgb(var(--foreground-rgb)); | |
| background: rgb(var(--background-rgb)); | |
| font-feature-settings: 'rlig' 1, 'calt' 1; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| /* Wellness Typography */ | |
| @layer base { | |
| h1, h2, h3, h4, h5, h6 { | |
| @apply font-display tracking-tight; | |
| } | |
| h1 { | |
| @apply text-4xl md:text-5xl lg:text-6xl font-bold leading-tight; | |
| } | |
| h2 { | |
| @apply text-3xl md:text-4xl font-bold; | |
| } | |
| h3 { | |
| @apply text-xl md:text-2xl font-semibold; | |
| } | |
| p { | |
| @apply leading-relaxed; | |
| } | |
| } | |
| /* Custom Components */ | |
| @layer components { | |
| /* Wellness Card Style */ | |
| .wellness-card { | |
| @apply bg-white rounded-2xl p-6 shadow-soft transition-all duration-300; | |
| } | |
| .wellness-card:hover { | |
| @apply shadow-soft-lg -translate-y-1; | |
| } | |
| /* Soft Button Styles */ | |
| .btn-primary { | |
| @apply bg-teal-600 text-white px-6 py-3 rounded-full font-medium | |
| hover:bg-teal-700 transition-all duration-300 | |
| shadow-sm hover:shadow-md; | |
| } | |
| .btn-secondary { | |
| @apply bg-white text-teal-700 px-6 py-3 rounded-full font-medium | |
| border-2 border-teal-200 hover:border-teal-300 | |
| hover:bg-teal-50 transition-all duration-300; | |
| } | |
| .btn-soft { | |
| @apply bg-cream-100 text-warmgray-700 px-6 py-3 rounded-full font-medium | |
| hover:bg-cream-200 transition-all duration-300; | |
| } | |
| /* Category Pill */ | |
| .category-pill { | |
| @apply inline-flex items-center px-4 py-2 rounded-full text-sm font-medium | |
| transition-all duration-200; | |
| } | |
| .category-pill-teal { | |
| @apply bg-teal-100 text-teal-800 hover:bg-teal-200; | |
| } | |
| .category-pill-lavender { | |
| @apply bg-lavender-100 text-lavender-800 hover:bg-lavender-200; | |
| } | |
| .category-pill-coral { | |
| @apply bg-coral-100 text-coral-800 hover:bg-coral-200; | |
| } | |
| .category-pill-sage { | |
| @apply bg-sage-100 text-sage-800 hover:bg-sage-200; | |
| } | |
| /* Input Styles */ | |
| .input-wellness { | |
| @apply w-full px-4 py-3 rounded-xl border-2 border-warmgray-200 | |
| bg-white focus:outline-none focus:border-teal-400 | |
| focus:ring-4 focus:ring-teal-100 transition-all duration-200 | |
| placeholder:text-warmgray-400; | |
| } | |
| /* Section Styles */ | |
| .section-wellness { | |
| @apply py-16 md:py-24; | |
| } | |
| /* Gradient Backgrounds */ | |
| .bg-gradient-wellness { | |
| background: linear-gradient(135deg, #f0fdfa 0%, #faf5ff 50%, #fdf9f3 100%); | |
| } | |
| .bg-gradient-hero { | |
| background: | |
| radial-gradient(circle at 30% 20%, rgba(20, 184, 166, 0.08) 0%, transparent 50%), | |
| radial-gradient(circle at 70% 80%, rgba(168, 85, 247, 0.06) 0%, transparent 50%), | |
| linear-gradient(180deg, #fdf9f3 0%, #ffffff 100%); | |
| } | |
| /* Decorative Elements */ | |
| .blob-teal { | |
| @apply absolute rounded-full bg-teal-200/30 blur-3xl; | |
| } | |
| .blob-lavender { | |
| @apply absolute rounded-full bg-lavender-200/30 blur-3xl; | |
| } | |
| } | |
| @layer utilities { | |
| .text-balance { | |
| text-wrap: balance; | |
| } | |
| .animate-float { | |
| animation: float 6s ease-in-out infinite; | |
| } | |
| @keyframes float { | |
| 0%, 100% { transform: translateY(0px); } | |
| 50% { transform: translateY(-10px); } | |
| } | |
| .animate-pulse-soft { | |
| animation: pulse-soft 4s ease-in-out infinite; | |
| } | |
| @keyframes pulse-soft { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0.8; } | |
| } | |
| } | |
| /* Custom Scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #f5f5f4; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #d6d3d1; | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: #a8a29e; | |
| } | |
| /* Selection Color */ | |
| ::selection { | |
| background-color: rgba(20, 184, 166, 0.2); | |
| color: #0f766e; | |
| } | |
| /* ===== RESPONSIVE UTILITIES ===== */ | |
| /* Mobile-first responsive container */ | |
| .container-responsive { | |
| @apply w-full px-4 mx-auto; | |
| max-width: 100%; | |
| } | |
| @media (min-width: 640px) { | |
| .container-responsive { | |
| @apply px-6; | |
| max-width: 640px; | |
| } | |
| } | |
| @media (min-width: 768px) { | |
| .container-responsive { | |
| @apply px-8; | |
| max-width: 768px; | |
| } | |
| } | |
| @media (min-width: 1024px) { | |
| .container-responsive { | |
| max-width: 1024px; | |
| } | |
| } | |
| @media (min-width: 1280px) { | |
| .container-responsive { | |
| max-width: 1280px; | |
| } | |
| } | |
| /* Responsive Text */ | |
| .text-responsive-xs { | |
| @apply text-xs sm:text-sm; | |
| } | |
| .text-responsive-sm { | |
| @apply text-sm sm:text-base; | |
| } | |
| .text-responsive-base { | |
| @apply text-base sm:text-lg md:text-xl; | |
| } | |
| .text-responsive-lg { | |
| @apply text-lg sm:text-xl md:text-2xl; | |
| } | |
| .text-responsive-xl { | |
| @apply text-xl sm:text-2xl md:text-3xl lg:text-4xl; | |
| } | |
| .text-responsive-2xl { | |
| @apply text-2xl sm:text-3xl md:text-4xl lg:text-5xl; | |
| } | |
| /* Responsive Spacing */ | |
| .space-responsive { | |
| @apply space-y-4 sm:space-y-6 md:space-y-8; | |
| } | |
| .padding-responsive { | |
| @apply p-4 sm:p-6 md:p-8 lg:p-10; | |
| } | |
| .margin-responsive { | |
| @apply m-4 sm:m-6 md:m-8; | |
| } | |
| /* Responsive Grid */ | |
| .grid-responsive { | |
| @apply grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 sm:gap-6; | |
| } | |
| .grid-responsive-2 { | |
| @apply grid grid-cols-1 md:grid-cols-2 gap-4 sm:gap-6; | |
| } | |
| .grid-responsive-3 { | |
| @apply grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-6; | |
| } | |
| /* Hide/Show on devices */ | |
| .mobile-only { | |
| @apply block sm:hidden; | |
| } | |
| .tablet-up { | |
| @apply hidden sm:block; | |
| } | |
| .desktop-only { | |
| @apply hidden lg:block; | |
| } | |
| /* Responsive Card */ | |
| .card-responsive { | |
| @apply bg-white rounded-xl sm:rounded-2xl p-4 sm:p-6 shadow-sm hover:shadow-md transition-all; | |
| } | |
| /* Responsive Button */ | |
| .btn-responsive { | |
| @apply px-4 py-2 sm:px-6 sm:py-3 text-sm sm:text-base rounded-lg sm:rounded-xl; | |
| } | |
| /* Touch-friendly targets for mobile */ | |
| @media (max-width: 640px) { | |
| button, a, .clickable { | |
| min-height: 44px; | |
| min-width: 44px; | |
| } | |
| input, textarea, select { | |
| font-size: 16px ; /* Prevents zoom on iOS */ | |
| } | |
| } | |
| /* Responsive Navigation */ | |
| .nav-responsive { | |
| @apply flex flex-col sm:flex-row items-center gap-2 sm:gap-4; | |
| } | |
| /* Safe area for mobile notches */ | |
| .safe-area-top { | |
| padding-top: env(safe-area-inset-top); | |
| } | |
| .safe-area-bottom { | |
| padding-bottom: env(safe-area-inset-bottom); | |
| } | |
| /* Responsive Modal */ | |
| .modal-responsive { | |
| @apply w-[95vw] sm:w-[85vw] md:w-[75vw] lg:w-[60vw] max-w-4xl; | |
| max-height: 90vh; | |
| } | |
| /* Responsive Chat */ | |
| .chat-container { | |
| @apply h-[50vh] sm:h-[60vh] md:h-[70vh] overflow-y-auto; | |
| } | |
| .chat-input-container { | |
| @apply fixed bottom-0 left-0 right-0 sm:relative p-4 bg-white border-t sm:border-t-0; | |
| } | |
| /* Landscape mode adjustments */ | |
| @media (orientation: landscape) and (max-height: 500px) { | |
| .chat-container { | |
| height: 40vh; | |
| } | |
| .section-wellness { | |
| @apply py-8; | |
| } | |
| } | |