Spaces:
Sleeping
Sleeping
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
| background: linear-gradient(135deg, #0f1419 0%, #1a1f2e 100%); | |
| min-height: 100vh; | |
| padding: 20px; | |
| } | |
| .container { | |
| max-width: 1400px; | |
| margin: 0 auto; | |
| } | |
| /* Floating Header */ | |
| .floating-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 15px; | |
| margin-bottom: 30px; | |
| padding: 15px 25px; | |
| background: rgba(255, 255, 255, 0.08); | |
| backdrop-filter: blur(20px); | |
| border-radius: 60px; | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); | |
| } | |
| /* Mobile Menu Toggle Button */ | |
| .menu-toggle { | |
| background: rgba(255, 255, 255, 0.1); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| color: white; | |
| font-size: 24px; | |
| width: 44px; | |
| height: 44px; | |
| border-radius: 50%; | |
| cursor: pointer; | |
| display: none; | |
| align-items: center; | |
| justify-content: center; | |
| transition: all 0.2s; | |
| margin: 0; | |
| } | |
| .menu-toggle:hover { | |
| background: rgba(255, 255, 255, 0.2); | |
| transform: scale(1.02); | |
| } | |
| /* Mobile Sidebar Overlay */ | |
| .mobile-sidebar-overlay { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(0, 0, 0, 0.6); | |
| z-index: 998; | |
| display: none; | |
| backdrop-filter: blur(4px); | |
| } | |
| /* Sidebar Header for Mobile */ | |
| .sidebar-header-mobile { | |
| display: none; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 18px 20px; | |
| background: rgba(20, 20, 30, 0.95); | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
| font-weight: 600; | |
| color: white; | |
| font-size: 16px; | |
| } | |
| .close-sidebar { | |
| background: rgba(255, 255, 255, 0.1); | |
| border: none; | |
| color: white; | |
| width: 32px; | |
| height: 32px; | |
| border-radius: 50%; | |
| cursor: pointer; | |
| font-size: 16px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin: 0; | |
| } | |
| .close-sidebar:hover { | |
| background: rgba(255, 255, 255, 0.2); | |
| } | |
| .logo-circle { | |
| width: 200px; | |
| height: 48px; | |
| border-radius: 0; | |
| background: transparent; | |
| border: none; | |
| box-shadow: none; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| overflow: visible; | |
| } | |
| .logo-img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: contain; | |
| object-position: left center; | |
| } | |
| .header-text h1 { | |
| color: white; | |
| font-size: 1.6em; | |
| margin-bottom: 5px; | |
| letter-spacing: 0.02em; | |
| text-shadow: 0 2px 4px rgba(0,0,0,0.1); | |
| } | |
| .header-text p { | |
| color: rgba(255, 255, 255, 0.7); | |
| font-size: 0.85em; | |
| letter-spacing: 0.02em; | |
| } | |
| /* Main Grid */ | |
| .main-grid { | |
| display: grid; | |
| grid-template-columns: 360px 1fr; | |
| gap: 24px; | |
| } | |
| /* Sidebar Panel */ | |
| .sidebar-panel { | |
| background: rgba(255, 255, 255, 0.06); | |
| backdrop-filter: blur(20px); | |
| border-radius: 24px; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| display: flex; | |
| flex-direction: column; | |
| height: calc(100vh - 140px); | |
| overflow: hidden; | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); | |
| transition: left 0.3s ease; | |
| } | |
| .sidebar-scroll { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 20px; | |
| } | |
| .sidebar-scroll::-webkit-scrollbar { | |
| width: 4px; | |
| } | |
| .sidebar-scroll::-webkit-scrollbar-track { | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: 10px; | |
| } | |
| .sidebar-scroll::-webkit-scrollbar-thumb { | |
| background: rgba(255, 255, 255, 0.3); | |
| border-radius: 10px; | |
| } | |
| /* Sidebar Footer */ | |
| .sidebar-footer { | |
| padding: 15px 20px; | |
| border-top: 1px solid rgba(255, 255, 255, 0.1); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| color: rgba(255, 255, 255, 0.5); | |
| font-size: 12px; | |
| letter-spacing: 0.02em; | |
| } | |
| .brain-icon { | |
| font-size: 18px; | |
| opacity: 0.7; | |
| } | |
| /* Accordion Modules */ | |
| .accordion-module { | |
| margin-bottom: 16px; | |
| background: rgba(255, 255, 255, 0.04); | |
| border-radius: 16px; | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| overflow: hidden; | |
| } | |
| .accordion-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 14px 18px; | |
| cursor: pointer; | |
| transition: background 0.2s; | |
| user-select: none; | |
| } | |
| .accordion-header:hover { | |
| background: rgba(255, 255, 255, 0.05); | |
| } | |
| .accordion-title { | |
| font-weight: 600; | |
| color: white; | |
| font-size: 14px; | |
| letter-spacing: 0.02em; | |
| } | |
| .accordion-icon { | |
| color: rgba(255, 255, 255, 0.6); | |
| font-size: 12px; | |
| transition: transform 0.3s; | |
| } | |
| .accordion-module.collapsed .accordion-icon { | |
| transform: rotate(-90deg); | |
| } | |
| .accordion-content { | |
| padding: 0 18px 18px 18px; | |
| transition: all 0.3s; | |
| } | |
| .accordion-module.collapsed .accordion-content { | |
| display: none; | |
| } | |
| /* Form Elements inside Sidebar */ | |
| .accordion-content label { | |
| display: block; | |
| margin: 12px 0 6px 0; | |
| font-weight: 500; | |
| color: rgba(255, 255, 255, 0.8); | |
| font-size: 12px; | |
| letter-spacing: 0.02em; | |
| } | |
| .accordion-content select, | |
| .accordion-content input { | |
| width: 100%; | |
| padding: 10px 14px; | |
| background: rgba(20, 20, 30, 0.6); | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| border-radius: 12px; | |
| font-size: 14px; | |
| color: white; | |
| transition: all 0.2s; | |
| } | |
| .accordion-content select:focus, | |
| .accordion-content input:focus { | |
| outline: none; | |
| border-color: #F97316; | |
| background: rgba(20, 20, 30, 0.8); | |
| } | |
| .accordion-content select option { | |
| background: #1a1f2e; | |
| color: white; | |
| } | |
| /* Location Row */ | |
| .location-row { | |
| display: flex; | |
| gap: 10px; | |
| margin-top: 5px; | |
| } | |
| .location-row input { | |
| flex: 1; | |
| } | |
| .forecast-btn { | |
| background: #3b82f6; | |
| margin-top: 0; | |
| padding: 10px 18px; | |
| white-space: nowrap; | |
| border-radius: 12px; | |
| } | |
| .forecast-btn:hover { | |
| background: #2563eb; | |
| } | |
| /* Weather Widget */ | |
| .weather-widget { | |
| margin-top: 15px; | |
| } | |
| .forecast-placeholder { | |
| text-align: center; | |
| padding: 20px; | |
| color: rgba(255, 255, 255, 0.5); | |
| font-size: 12px; | |
| } | |
| .forecast-cards { | |
| display: flex; | |
| gap: 8px; | |
| overflow-x: auto; | |
| padding-bottom: 5px; | |
| } | |
| .forecast-card { | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: 14px; | |
| padding: 8px 8px; | |
| min-width: 65px; | |
| text-align: center; | |
| transition: transform 0.2s, background 0.2s; | |
| } | |
| .forecast-card:hover { | |
| background: rgba(255, 255, 255, 0.18); | |
| transform: translateY(-2px); | |
| } | |
| .forecast-card .day { | |
| font-weight: bold; | |
| font-size: 11px; | |
| text-transform: uppercase; | |
| } | |
| .forecast-card .icon { | |
| font-size: 24px; | |
| margin: 5px 0; | |
| } | |
| .forecast-card .temp { | |
| font-size: 14px; | |
| font-weight: bold; | |
| } | |
| .forecast-card .rain { | |
| font-size: 10px; | |
| opacity: 0.7; | |
| } | |
| /* Toggle Switches */ | |
| .toggle-switch { | |
| margin: 12px 0; | |
| } | |
| .toggle-label { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| cursor: pointer; | |
| color: rgba(255, 255, 255, 0.8); | |
| font-size: 12px; | |
| } | |
| .switch { | |
| position: relative; | |
| display: inline-block; | |
| width: 44px; | |
| height: 22px; | |
| } | |
| .switch input { | |
| opacity: 0; | |
| width: 0; | |
| height: 0; | |
| } | |
| .slider { | |
| position: absolute; | |
| cursor: pointer; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background-color: rgba(255, 255, 255, 0.2); | |
| transition: 0.3s; | |
| border-radius: 22px; | |
| } | |
| .slider:before { | |
| position: absolute; | |
| content: ""; | |
| height: 18px; | |
| width: 18px; | |
| left: 2px; | |
| bottom: 2px; | |
| background-color: white; | |
| transition: 0.3s; | |
| border-radius: 50%; | |
| } | |
| input:checked + .slider { | |
| background-color: #F97316; | |
| } | |
| input:checked + .slider:before { | |
| transform: translateX(22px); | |
| } | |
| .toggle-status { | |
| font-size: 11px; | |
| padding: 2px 8px; | |
| border-radius: 20px; | |
| background: rgba(255, 255, 255, 0.1); | |
| } | |
| /* Chat Panel */ | |
| .chat-panel { | |
| background: rgba(255, 255, 255, 0.06); | |
| backdrop-filter: blur(20px); | |
| border-radius: 24px; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| display: flex; | |
| flex-direction: column; | |
| height: calc(100vh - 140px); | |
| overflow: hidden; | |
| } | |
| /* Utility Toolbar */ | |
| .utility-toolbar { | |
| padding: 18px 20px; | |
| display: flex; | |
| justify-content: flex-end; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.08); | |
| } | |
| .clear-btn-orange { | |
| background: #F97316; | |
| color: white; | |
| border: none; | |
| padding: 8px 20px; | |
| border-radius: 40px; | |
| cursor: pointer; | |
| font-size: 13px; | |
| font-weight: 500; | |
| transition: all 0.2s; | |
| margin: 0; | |
| } | |
| .clear-btn-orange:hover { | |
| background: #ea580c; | |
| transform: scale(1.02); | |
| } | |
| /* Chat Box */ | |
| .chat-box { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 20px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| } | |
| .chat-box::-webkit-scrollbar { | |
| width: 4px; | |
| } | |
| .chat-box::-webkit-scrollbar-track { | |
| background: rgba(255, 255, 255, 0.05); | |
| border-radius: 10px; | |
| } | |
| .chat-box::-webkit-scrollbar-thumb { | |
| background: rgba(255, 255, 255, 0.2); | |
| border-radius: 10px; | |
| } | |
| /* Chat Messages */ | |
| .user-message, .bot-message { | |
| padding: 14px 18px; | |
| border-radius: 20px; | |
| max-width: 80%; | |
| word-wrap: break-word; | |
| white-space: normal; | |
| line-height: 1.5; | |
| letter-spacing: 0.02em; | |
| font-size: 14px; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); | |
| } | |
| .user-message { | |
| background: #F97316; | |
| color: white; | |
| margin-left: auto; | |
| text-align: right; | |
| border-bottom-right-radius: 4px; | |
| } | |
| .bot-message { | |
| background: rgba(255, 255, 255, 0.1); | |
| color: rgba(255, 255, 255, 0.9); | |
| margin-right: auto; | |
| border-bottom-left-radius: 4px; | |
| } | |
| .bot-message strong { | |
| color: #F97316; | |
| font-weight: bold; | |
| } | |
| .bot-message br { | |
| margin-bottom: 5px; | |
| } | |
| /* Input Pill */ | |
| .input-pill { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| background: rgba(30, 30, 40, 0.8); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| border-radius: 60px; | |
| padding: 8px 8px 8px 18px; | |
| margin: 20px; | |
| } | |
| .pill-attach { | |
| background: transparent; | |
| color: #8E8E93; | |
| font-size: 20px; | |
| cursor: pointer; | |
| padding: 0; | |
| margin: 0; | |
| display: flex; | |
| align-items: center; | |
| transition: color 0.2s; | |
| } | |
| .pill-attach:hover { | |
| color: #F97316; | |
| } | |
| .pill-input { | |
| flex: 1; | |
| background: transparent; | |
| border: none; | |
| padding: 12px 0; | |
| font-size: 14px; | |
| color: white; | |
| font-family: inherit; | |
| } | |
| .pill-input::placeholder { | |
| color: rgba(255, 255, 255, 0.4); | |
| letter-spacing: 0.02em; | |
| } | |
| .pill-input:focus { | |
| outline: none; | |
| } | |
| .pill-send { | |
| background: #F97316; | |
| border: none; | |
| width: 44px; | |
| height: 44px; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| cursor: pointer; | |
| font-size: 20px; | |
| transition: all 0.2s; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| .pill-send:hover { | |
| background: #ea580c; | |
| transform: scale(1.05); | |
| } | |
| /* Image Preview Thumbnail inside Input Pill */ | |
| .image-preview-thumb { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| margin-left: 8px; | |
| } | |
| .thumb-img { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 8px; | |
| object-fit: cover; | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| background: rgba(0, 0, 0, 0.3); | |
| } | |
| .thumb-remove { | |
| position: absolute; | |
| top: -8px; | |
| right: -8px; | |
| width: 18px; | |
| height: 18px; | |
| background: #dc3545; | |
| color: white; | |
| border: none; | |
| border-radius: 50%; | |
| font-size: 11px; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: all 0.2s; | |
| } | |
| .thumb-remove:hover { | |
| background: #c82333; | |
| transform: scale(1.1); | |
| } | |
| /* Chat Bubble Image Thumbnail */ | |
| .user-message-image { | |
| margin-top: 10px; | |
| max-width: 150px; | |
| border-radius: 12px; | |
| overflow: hidden; | |
| } | |
| .user-message-image img { | |
| width: 100%; | |
| height: auto; | |
| display: block; | |
| border-radius: 12px; | |
| } | |
| /* Typing cursor animation */ | |
| .typing-cursor { | |
| display: inline-block; | |
| width: 2px; | |
| height: 1.2em; | |
| background-color: currentColor; | |
| margin-left: 2px; | |
| vertical-align: middle; | |
| animation: blink 1s step-end infinite; | |
| } | |
| @keyframes blink { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0; } | |
| } | |
| /* Password Overlay */ | |
| .password-overlay { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(0, 0, 0, 0.9); | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| z-index: 1000; | |
| backdrop-filter: blur(12px); | |
| } | |
| .password-modal { | |
| background: rgba(20, 20, 30, 0.95); | |
| backdrop-filter: blur(20px); | |
| border-radius: 28px; | |
| padding: 40px; | |
| text-align: center; | |
| max-width: 400px; | |
| width: 90%; | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| box-shadow: 0 25px 50px rgba(0,0,0,0.3); | |
| } | |
| .password-logo { | |
| text-align: center; | |
| margin-bottom: 20px; | |
| } | |
| .password-logo-img { | |
| width: 260px; | |
| height: auto; | |
| border-radius: 0; | |
| object-fit: contain; | |
| border: none; | |
| margin-bottom: 16px; | |
| display: block; | |
| margin-left: auto; | |
| margin-right: auto; | |
| } | |
| .password-modal h2 { | |
| color: white; | |
| margin-bottom: 15px; | |
| font-size: 24px; | |
| letter-spacing: 0.02em; | |
| font-family: 'Inter', 'Segoe UI', sans-serif; | |
| font-weight: 600; | |
| letter-spacing: -0.02em; | |
| } | |
| .password-modal p { | |
| color: rgba(255, 255, 255, 0.6); | |
| margin-bottom: 25px; | |
| font-family: 'Inter', 'Segoe UI', sans-serif; | |
| font-size: 14px; | |
| letter-spacing: 0.01em; | |
| } | |
| .password-modal input { | |
| width: 100%; | |
| padding: 14px 18px; | |
| background: rgba(255, 255, 255, 0.08); | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| border-radius: 16px; | |
| font-size: 16px; | |
| color: white; | |
| margin-bottom: 15px; | |
| } | |
| .password-modal input:focus { | |
| outline: none; | |
| border-color: #F97316; | |
| } | |
| .password-modal button { | |
| background: #F97316; | |
| color: white; | |
| border: none; | |
| padding: 14px 25px; | |
| border-radius: 40px; | |
| cursor: pointer; | |
| font-size: 16px; | |
| width: 100%; | |
| font-weight: 500; | |
| } | |
| .password-modal button:hover { | |
| background: #ea580c; | |
| } | |
| .password-error { | |
| color: #ef4444; | |
| margin-top: 15px; | |
| font-size: 13px; | |
| } | |
| /* ============================================ */ | |
| /* LOCATION MODE TOGGLE BUTTONS (ADDED) */ | |
| /* ============================================ */ | |
| .location-mode-toggle { | |
| margin: 15px 0 10px 0; | |
| } | |
| .mode-buttons { | |
| display: flex; | |
| gap: 10px; | |
| margin-top: 8px; | |
| } | |
| .mode-btn { | |
| flex: 1; | |
| background: rgba(255, 255, 255, 0.1); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| color: rgba(255, 255, 255, 0.7); | |
| padding: 8px 12px; | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-size: 13px; | |
| transition: all 0.2s; | |
| text-align: center; | |
| } | |
| .mode-btn:hover { | |
| background: rgba(255, 255, 255, 0.2); | |
| } | |
| .mode-btn.active { | |
| background: #F97316; | |
| border-color: #F97316; | |
| color: white; | |
| } | |
| .location-mode-input { | |
| margin-top: 10px; | |
| padding: 5px 0; | |
| } | |
| .location-mode-input label { | |
| font-size: 12px; | |
| color: rgba(255, 255, 255, 0.7); | |
| margin-bottom: 5px; | |
| display: block; | |
| } | |
| /* Coordinate Inputs */ | |
| #latitude, #longitude { | |
| width: 100%; | |
| margin-bottom: 10px; | |
| } | |
| #getForecastByCoordBtn { | |
| width: 100%; | |
| background: #3b82f6; | |
| margin-top: 5px; | |
| } | |
| #getForecastByCoordBtn:hover { | |
| background: #2563eb; | |
| } | |
| /* City Mode Input */ | |
| #cityMode .location-row { | |
| display: flex; | |
| gap: 10px; | |
| align-items: center; | |
| } | |
| #cityMode .location-row input { | |
| flex: 1; | |
| } | |
| /* Mobile Responsive */ | |
| @media (max-width: 768px) { | |
| body { | |
| padding: 12px; | |
| } | |
| .menu-toggle { | |
| display: flex; | |
| } | |
| .sidebar-panel { | |
| position: fixed; | |
| top: 0; | |
| left: -100%; | |
| width: 85%; | |
| max-width: 320px; | |
| height: 100vh; | |
| z-index: 999; | |
| border-radius: 0; | |
| margin: 0; | |
| background: rgba(20, 20, 30, 0.95); | |
| backdrop-filter: blur(20px); | |
| } | |
| .sidebar-panel.open { | |
| left: 0; | |
| } | |
| .sidebar-header-mobile { | |
| display: flex; | |
| } | |
| .header-text h1 { | |
| font-size: 1em; | |
| } | |
| .header-text p { | |
| display: none; | |
| } | |
| .logo-circle { | |
| width: 130px; | |
| height: 34px; | |
| } | |
| .main-grid { | |
| grid-template-columns: 1fr; | |
| gap: 16px; | |
| } | |
| .chat-panel { | |
| height: calc(100vh - 120px); | |
| } | |
| .user-message, .bot-message { | |
| max-width: 90%; | |
| } | |
| .input-pill { | |
| margin: 12px; | |
| } | |
| .pill-send { | |
| width: 40px; | |
| height: 40px; | |
| font-size: 18px; | |
| } | |
| .thumb-img { | |
| width: 32px; | |
| height: 32px; | |
| } | |
| } | |
| /* Tablet Responsive */ | |
| @media (min-width: 769px) and (max-width: 1024px) { | |
| .main-grid { | |
| grid-template-columns: 300px 1fr; | |
| gap: 20px; | |
| } | |
| .sidebar-panel { | |
| width: 300px; | |
| } | |
| } |