@tailwind base; @tailwind components; @tailwind utilities; :root { /* Modern pastel-inspired color palette */ --background: hsl(240 20% 98%); --foreground: hsl(240 10% 20%); --card: hsl(0 0% 100%); --card-foreground: hsl(240 10% 20%); --popover: hsl(0 0% 100%); --popover-foreground: hsl(240 10% 20%); --primary: hsl(250 60% 65%); /* Modern purple */ --primary-foreground: hsl(0 0% 100%); --secondary: hsl(200 80% 80%); /* Soft blue */ --secondary-foreground: hsl(240 10% 20%); --muted: hsl(240 10% 96%); --muted-foreground: hsl(240 5% 60%); --accent: hsl(250 100% 98%); /* Very light purple */ --accent-foreground: hsl(240 10% 20%); --destructive: hsl(0 70% 70%); --destructive-foreground: hsl(0 0% 100%); --border: hsl(240 10% 92%); --input: hsl(0 0% 100%); --ring: hsl(250 60% 65%); --chart-1: hsl(250 60% 65%); --chart-2: hsl(200 80% 80%); --chart-3: hsl(320 70% 80%); --chart-4: hsl(150 60% 75%); --chart-5: hsl(40 80% 75%); --sidebar: hsl(0 0% 100%); --sidebar-foreground: hsl(240 10% 20%); --sidebar-primary: hsl(250 60% 65%); --sidebar-primary-foreground: hsl(0 0% 100%); --sidebar-accent: hsl(250 100% 98%); --sidebar-accent-foreground: hsl(240 10% 20%); --sidebar-border: hsl(240 10% 92%); --sidebar-ring: hsl(250 60% 65%); --font-sans: "Amazon Ember", Arial, sans-serif; --font-serif: Georgia, serif; --font-mono: "Courier New", monospace; --radius: 0.375rem; /* Amazon uses smaller radius */ --shadow-2xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25); --tracking-normal: 0em; --spacing: 0.25rem; --gradient-primary: linear-gradient(135deg, hsl(26 100% 55%) 0%, hsl(35 100% 60%) 100%); --gradient-secondary: linear-gradient(135deg, hsl(199 89% 48%) 0%, hsl(210 100% 60%) 100%); --gradient-hero: linear-gradient(135deg, hsl(200 100% 95%) 0%, hsl(36 100% 96%) 50%, hsl(26 100% 98%) 100%); --amazon-navy: hsl(210 29% 24%); /* Amazon dark blue */ --amazon-light-blue: hsl(195 100% 95%); --amazon-gray: hsl(0 0% 55%); --amazon-light-gray: hsl(0 0% 95%); } /* Mobile bottom navigation safe areas and spacing */ @supports (padding: max(0px)) { .safe-area-pb { padding-bottom: max(0.5rem, env(safe-area-inset-bottom)); } .h-safe-area-inset-bottom { height: env(safe-area-inset-bottom); } } /* Add padding to prevent overlap with fixed header and mobile bottom nav */ body { padding-top: 76px; /* Reduced header padding */ } @media (max-width: 768px) { body { padding-bottom: 80px; /* Height of bottom navigation */ } } .dark { /* Dark mode with glassy theme */ --background: linear-gradient(135deg, hsl(240 30% 10%) 0%, hsl(250 25% 12%) 100%); --foreground: hsl(240 10% 90%); --card: hsla(240 20% 15% / 0.8); --card-foreground: hsl(240 10% 90%); --popover: hsla(240 20% 10% / 0.95); --popover-foreground: hsl(240 10% 90%); --primary: hsl(250 60% 60%); --primary-foreground: hsl(240 20% 10%); --secondary: hsl(260 45% 40%); --secondary-foreground: hsl(240 10% 90%); --muted: hsla(240 10% 20% / 0.8); --muted-foreground: hsl(240 10% 60%); --accent: hsla(250 60% 20% / 0.9); --accent-foreground: hsl(250 60% 80%); --destructive: hsl(0 70% 55%); --destructive-foreground: hsl(0 0% 100%); --border: hsla(240 20% 30% / 0.6); --input: hsla(240 20% 15% / 0.8); --ring: hsl(250 60% 60%); --chart-1: hsl(250 60% 60%); --chart-2: hsl(260 55% 65%); --chart-3: hsl(270 50% 70%); --chart-4: hsl(240 65% 55%); --chart-5: hsl(280 45% 65%); --sidebar: hsla(240 20% 15% / 0.8); --sidebar-foreground: hsl(240 10% 90%); --sidebar-primary: hsl(250 60% 60%); --sidebar-primary-foreground: hsl(240 20% 10%); --sidebar-accent: hsla(250 60% 20% / 0.9); --sidebar-accent-foreground: hsl(250 60% 80%); --sidebar-border: hsla(240 20% 30% / 0.6); --sidebar-ring: hsl(250 60% 60%); --font-sans: 'Inter', system-ui, sans-serif; --font-serif: Georgia, serif; --font-mono: 'JetBrains Mono', monospace; --radius: 1rem; --shadow-2xs: 0px 1px 2px 0px hsla(250 60% 60% / 0.1); --shadow-xs: 0px 1px 3px 0px hsla(250 60% 60% / 0.1), 0px 1px 2px 0px hsla(250 60% 60% / 0.06); --shadow-sm: 0px 1px 3px 0px hsla(250 60% 60% / 0.1), 0px 1px 2px 0px hsla(250 60% 60% / 0.06); --shadow: 0px 4px 6px -1px hsla(250 60% 60% / 0.1), 0px 2px 4px -1px hsla(250 60% 60% / 0.06); --shadow-md: 0px 10px 15px -3px hsla(250 60% 60% / 0.1), 0px 4px 6px -2px hsla(250 60% 60% / 0.05); --shadow-lg: 0px 20px 25px -5px hsla(250 60% 60% / 0.1), 0px 10px 10px -5px hsla(250 60% 60% / 0.04); --shadow-xl: 0px 25px 50px -12px hsla(250 60% 60% / 0.25); --shadow-2xl: 0px 25px 50px -12px hsla(250 60% 60% / 0.25); --gradient-primary: linear-gradient(135deg, hsl(250 60% 60%) 0%, hsl(260 55% 65%) 100%); --gradient-secondary: linear-gradient(135deg, hsl(240 30% 15%) 0%, hsl(250 25% 17%) 100%); --glass-bg: hsla(240 20% 15% / 0.1); --glass-border: hsla(240 20% 30% / 0.2); --glass-backdrop: blur(15px); } /* Dark mode glass overrides for better visibility */ .dark .glass-card { background: rgb(255, 255, 255); backdrop-filter: none; border: 1px solid rgb(0, 0, 0); } .dark .glass-strong { background: rgba(15, 23, 42, 0.98); backdrop-filter: blur(15px); border: 1px solid rgba(148, 163, 184, 0.3); } .dark .glass-hero { background: rgba(30, 41, 59, 0.92); backdrop-filter: blur(20px); border: 1px solid rgba(148, 163, 184, 0.2); } @layer base { * { @apply border-border; } body { @apply font-sans antialiased text-foreground; background: var(--background); min-height: 100vh; } } @layer components { /* Enhanced Glass morphism utility classes */ .glass { background: var(--glass-bg); backdrop-filter: var(--glass-backdrop); border: 1px solid var(--glass-border); box-shadow: var(--shadow); } .glass-card { background: white; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); transition: all 0.2s ease; } .glass-card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); } .glass-strong { background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(15px); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: var(--shadow-xl); } .glass-hero { background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.4); box-shadow: var(--shadow-2xl); } /* Loading spinner */ .spinner { width: 20px; height: 20px; border: 2px solid transparent; border-top: 2px solid currentColor; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Amazon-style page backgrounds */ .page-gradient { background: var(--background); } .amazon-header { background: var(--amazon-navy); color: white; } .amazon-banner { background: var(--gradient-hero); } .amazon-card { background: white; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); transition: all 0.2s ease; } .amazon-card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); } .amazon-button { background: var(--primary); color: var(--primary-foreground); border: 1px solid rgba(0, 0, 0, 0.1); border-radius: var(--radius); font-weight: 400; transition: all 0.15s ease; } .amazon-button:hover { background: hsl(26 100% 50%); box-shadow: var(--shadow); } .amazon-section { background: var(--amazon-light-gray); border-bottom: 1px solid var(--border); } /* Hide scrollbars */ .scrollbar-hide { -ms-overflow-style: none; /* Internet Explorer 10+ */ scrollbar-width: none; /* Firefox */ } .scrollbar-hide::-webkit-scrollbar { display: none; /* Safari and Chrome */ } }