Spaces:
Sleeping
Sleeping
| /* | |
| * Custom Design System & Aesthetics for MiniCPM AI SaaS MVP | |
| * Features: Dark mode, glassmorphism, vibrant gradients, micro-animations, and Inter font. | |
| */ | |
| @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&display=swap'); | |
| :root { | |
| --bg-dark: #090a0f; | |
| --bg-card: rgba(18, 20, 32, 0.7); | |
| --bg-glass: rgba(255, 255, 255, 0.03); | |
| --border-glass: rgba(255, 255, 255, 0.08); | |
| --primary-gradient: linear-gradient(135deg, #6366f1 0%, #a855f7 50%, #ec4899 100%); | |
| --secondary-gradient: linear-gradient(135deg, #3b82f6 0%, #10b981 100%); | |
| --text-main: #f3f4f6; | |
| --text-muted: #9ca3af; | |
| --accent-glow: rgba(168, 85, 247, 0.25); | |
| } | |
| /* Global Typography & Background */ | |
| body, .gradio-container { | |
| font-family: 'Inter', sans-serif ; | |
| background-color: var(--bg-dark) ; | |
| color: var(--text-main) ; | |
| background-image: | |
| radial-gradient(circle at 15% 20%, rgba(99, 102, 241, 0.12) 0%, transparent 40%), | |
| radial-gradient(circle at 85% 80%, rgba(236, 72, 153, 0.1) 0%, transparent 40%) ; | |
| background-attachment: fixed ; | |
| } | |
| h1, h2, h3, h4, .font-outfit { | |
| font-family: 'Outfit', sans-serif ; | |
| letter-spacing: -0.02em ; | |
| } | |
| /* Glassmorphism Containers */ | |
| .glass-panel, .gradio-container .form, .gradio-container .block { | |
| background: var(--bg-card) ; | |
| backdrop-filter: blur(16px) ; | |
| -webkit-backdrop-filter: blur(16px) ; | |
| border: 1px solid var(--border-glass) ; | |
| border-radius: 16px ; | |
| box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37) ; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .glass-panel:hover { | |
| border-color: rgba(168, 85, 247, 0.3) ; | |
| box-shadow: 0 12px 40px 0 var(--accent-glow) ; | |
| } | |
| /* Header Banner Styling */ | |
| .header-banner { | |
| text-align: center; | |
| padding: 2.5rem 1rem 1.5rem; | |
| margin-bottom: 1.5rem; | |
| border-bottom: 1px solid var(--border-glass); | |
| } | |
| .header-title { | |
| font-size: 2.75rem ; | |
| font-weight: 700 ; | |
| background: var(--primary-gradient); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| margin-bottom: 0.5rem ; | |
| } | |
| .header-subtitle { | |
| font-size: 1.1rem ; | |
| color: var(--text-muted) ; | |
| max-width: 600px; | |
| margin: 0 auto ; | |
| } | |
| /* Tabs Navigation */ | |
| .tabs > .tab-nav { | |
| display: flex ; | |
| gap: 0.5rem ; | |
| background: rgba(0, 0, 0, 0.2) ; | |
| padding: 0.5rem ; | |
| border-radius: 12px ; | |
| border: 1px solid var(--border-glass) ; | |
| margin-bottom: 1.5rem ; | |
| } | |
| .tabs > .tab-nav > button { | |
| font-family: 'Outfit', sans-serif ; | |
| font-weight: 500 ; | |
| font-size: 1rem ; | |
| padding: 0.75rem 1.5rem ; | |
| border-radius: 10px ; | |
| border: none ; | |
| background: transparent ; | |
| color: var(--text-muted) ; | |
| transition: all 0.25s ease ; | |
| cursor: pointer; | |
| } | |
| .tabs > .tab-nav > button:hover { | |
| color: var(--text-main) ; | |
| background: rgba(255, 255, 255, 0.05) ; | |
| } | |
| .tabs > .tab-nav > button.selected { | |
| background: var(--primary-gradient) ; | |
| color: #ffffff ; | |
| font-weight: 600 ; | |
| box-shadow: 0 4px 15px rgba(168, 85, 247, 0.4) ; | |
| } | |
| /* Buttons & Micro-animations */ | |
| button.primary, .pro-btn { | |
| background: var(--primary-gradient) ; | |
| color: white ; | |
| font-weight: 600 ; | |
| border: none ; | |
| border-radius: 12px ; | |
| padding: 0.75rem 1.5rem ; | |
| cursor: pointer ; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease ; | |
| box-shadow: 0 4px 15px rgba(99, 102, 241, 0.3) ; | |
| } | |
| button.primary:hover, .pro-btn:hover { | |
| transform: translateY(-2px) ; | |
| box-shadow: 0 6px 20px rgba(236, 72, 153, 0.5) ; | |
| } | |
| button.primary:active, .pro-btn:active { | |
| transform: translateY(0) ; | |
| } | |
| /* Pricing Cards */ | |
| .pricing-grid { | |
| display: flex; | |
| gap: 2rem; | |
| justify-content: center; | |
| align-items: stretch; | |
| flex-wrap: wrap; | |
| margin: 2rem 0; | |
| } | |
| .pricing-card { | |
| flex: 1; | |
| min-width: 280px; | |
| max-width: 380px; | |
| background: rgba(20, 22, 35, 0.8) ; | |
| border: 1px solid var(--border-glass) ; | |
| border-radius: 20px ; | |
| padding: 2.5rem ; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: space-between; | |
| position: relative; | |
| overflow: hidden; | |
| transition: transform 0.3s ease, border-color 0.3s ease ; | |
| } | |
| .pricing-card.pro { | |
| border: 2px solid #a855f7 ; | |
| box-shadow: 0 10px 40px rgba(168, 85, 247, 0.2) ; | |
| } | |
| .pricing-card:hover { | |
| transform: translateY(-6px); | |
| } | |
| .pricing-title { | |
| font-size: 1.5rem; | |
| font-weight: 700; | |
| margin-bottom: 0.5rem; | |
| } | |
| .pricing-price { | |
| font-size: 3rem; | |
| font-weight: 700; | |
| background: var(--primary-gradient); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| margin: 1rem 0; | |
| } | |
| .pricing-features { | |
| list-style: none; | |
| padding: 0; | |
| margin: 1.5rem 0; | |
| color: var(--text-muted); | |
| line-height: 2; | |
| } | |
| .pricing-features li::before { | |
| content: "✨ "; | |
| color: #a855f7; | |
| } | |
| /* Badges and Alerts */ | |
| .badge-free { | |
| background: rgba(156, 163, 175, 0.2); | |
| color: #e5e7eb; | |
| padding: 4px 12px; | |
| border-radius: 20px; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| display: inline-block; | |
| } | |
| .badge-pro { | |
| background: var(--primary-gradient); | |
| color: white; | |
| padding: 4px 12px; | |
| border-radius: 20px; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| display: inline-block; | |
| box-shadow: 0 0 10px rgba(236, 72, 153, 0.5); | |
| } | |
| /* Chatbot customization */ | |
| #chatbot { | |
| border-radius: 16px ; | |
| border: 1px solid var(--border-glass) ; | |
| background: rgba(10, 12, 20, 0.5) ; | |
| min-height: 500px ; | |
| } | |