/* Kisan-Sathi Premium Mobile UI Design */ @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Noto+Sans+Devanagari:wght@400;500;700&display=swap'); :root { --bg-gradient: linear-gradient(135deg, #0b1511 0%, #060a08 100%); --card-bg: rgba(18, 30, 25, 0.7); --card-border: rgba(255, 255, 255, 0.08); --accent-primary: #10b981; /* Emerald green */ --accent-hover: #059669; --accent-secondary: #f59e0b; /* Amber for calendars/warnings */ --text-primary: #f3f4f6; --text-muted: #9ca3af; --danger-red: #ef4444; } body, .gradio-container { background: var(--bg-gradient) !important; font-family: 'Outfit', 'Noto Sans Devanagari', -apple-system, sans-serif !important; color: var(--text-primary) !important; } /* Glassmorphism Cards */ .gradio-container .gr-box, .gradio-container .gr-panel, .gradio-container .gr-card { background: var(--card-bg) !important; border: 1px solid var(--card-border) !important; backdrop-filter: blur(12px) !important; border-radius: 16px !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37) !important; } /* Typography settings */ h1 { font-weight: 700 !important; letter-spacing: -0.02em !important; background: linear-gradient(to right, #10b981, #34d399, #f59e0b) !important; -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; font-size: 2.2rem !important; margin-bottom: 0.5rem !important; text-align: center !important; } p, span, label { color: var(--text-primary) !important; } /* Buttons Styling */ .gradio-container button.primary { background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important; border: none !important; color: white !important; font-weight: 600 !important; font-size: 1.1rem !important; border-radius: 12px !important; padding: 14px 24px !important; min-height: 54px !important; /* Touch target */ cursor: pointer !important; transition: all 0.3s ease !important; box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3) !important; } .gradio-container button.primary:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4) !important; } .gradio-container button.secondary { background: rgba(255, 255, 255, 0.08) !important; border: 1px solid var(--card-border) !important; color: var(--text-primary) !important; font-weight: 500 !important; border-radius: 12px !important; padding: 12px 20px !important; min-height: 50px !important; transition: all 0.3s ease !important; } .gradio-container button.secondary:hover { background: rgba(255, 255, 255, 0.15) !important; border-color: rgba(255, 255, 255, 0.2) !important; } /* Chat interface customization */ .chatbot-wrap { border-radius: 16px !important; overflow: hidden !important; } .message.user { background: rgba(16, 185, 129, 0.15) !important; border: 1px solid rgba(16, 185, 129, 0.3) !important; border-radius: 18px 18px 2px 18px !important; color: var(--text-primary) !important; } .message.bot { background: rgba(255, 255, 255, 0.05) !important; border: 1px solid var(--card-border) !important; border-radius: 18px 18px 18px 2px !important; color: var(--text-primary) !important; } /* Large Input Targets */ .gradio-container input, .gradio-container textarea, .gradio-container select { background: rgba(0, 0, 0, 0.2) !important; border: 1px solid var(--card-border) !important; border-radius: 10px !important; color: var(--text-primary) !important; padding: 12px !important; font-size: 1.05rem !important; } .gradio-container input:focus, .gradio-container textarea:focus, .gradio-container select:focus { border-color: var(--accent-primary) !important; box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2) !important; } /* Tabs layout styling */ .tabs { border-bottom: 1px solid var(--card-border) !important; margin-bottom: 20px !important; } .tab-nav button { font-size: 1.1rem !important; font-weight: 500 !important; padding: 12px 20px !important; color: var(--text-muted) !important; border: none !important; background: none !important; border-bottom: 3px solid transparent !important; transition: all 0.3s ease !important; } .tab-nav button.selected { color: var(--accent-primary) !important; border-bottom-color: var(--accent-primary) !important; font-weight: 600 !important; } /* Micro-animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .welcome-box { animation: fadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards; } /* Custom Table/DataFrame styling */ .gradio-container table { background: transparent !important; } .gradio-container th { background: rgba(16, 185, 129, 0.1) !important; color: var(--accent-primary) !important; font-weight: 600 !important; } .gradio-container td { border-bottom: 1px solid var(--card-border) !important; } /* Mobile responsive constraints */ @media (max-width: 600px) { h1 { font-size: 1.7rem !important; } .gradio-container button.primary { width: 100% !important; } }