Spaces:
Running
Running
| /* === App shell ============================================================ */ | |
| .gradio-container { | |
| max-width: 1400px ; | |
| margin: 0 auto ; | |
| } | |
| .gradio-container, .gradio-container .prose { | |
| font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; | |
| } | |
| body, .gradio-container { | |
| background: linear-gradient(180deg, #eef7ee 0%, #f7f4ec 100%) ; | |
| } | |
| /* === Header ================================================================ */ | |
| #header-bar { | |
| align-items: center; | |
| padding: 0.25rem 0 0.75rem 0; | |
| } | |
| #header-bar h1 { | |
| margin: 0 ; | |
| } | |
| /* === Floating "add plant" button ========================================== */ | |
| #add-plant-fab { | |
| position: fixed; | |
| top: 1.25rem; | |
| right: 1.5rem; | |
| z-index: 1000; | |
| width: 56px; | |
| height: 56px; | |
| min-width: 56px; | |
| border-radius: 50% ; | |
| font-size: 1.6rem; | |
| line-height: 1; | |
| box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25); | |
| background: #4caf50 ; | |
| color: #ffffff ; | |
| border: none ; | |
| } | |
| #add-plant-fab:hover { | |
| background: #43a047 ; | |
| } | |
| /* === Add-plant drawer (inline card) ========================================= */ | |
| #add-drawer { | |
| background: #fffdf8; | |
| border-radius: 16px; | |
| box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); | |
| padding: 1.5rem; | |
| margin-bottom: 1rem; | |
| } | |
| #close-drawer-btn { | |
| margin-top: 0.5rem; | |
| } | |
| /* === Garden board (gallery) ================================================ */ | |
| #garden-grid { | |
| background: repeating-linear-gradient( | |
| to bottom, | |
| #e7f3e3 0px, #e7f3e3 96px, #d9ecd2 96px, #d9ecd2 100px | |
| ); | |
| border-radius: 16px ; | |
| padding: 12px ; | |
| } | |
| #garden-grid img { | |
| image-rendering: pixelated; | |
| image-rendering: -moz-crisp-edges; | |
| image-rendering: crisp-edges; | |
| } | |
| #garden-grid .thumbnail-item { | |
| background: transparent ; | |
| border: none ; | |
| } | |
| /* === Detail card =========================================================== */ | |
| #plant-detail { | |
| background: #ffffffcc; | |
| border-radius: 12px; | |
| padding: 0.5rem 1rem; | |
| margin-top: 0.5rem; | |
| } | |
| /* === Sidebar ================================================================ */ | |
| #sidebar { | |
| background: #ffffffaa; | |
| border-radius: 16px; | |
| padding: 1rem ; | |
| } | |
| #sidebar h3 { | |
| margin-top: 0.25rem; | |
| margin-bottom: 0.5rem; | |
| } | |
| /* Card-ify the recommendation / forecast tables */ | |
| #watering-cards .table-wrap, #forecast-strip .table-wrap { | |
| border: none ; | |
| background: transparent ; | |
| } | |
| #watering-cards .header-table thead, #forecast-strip .header-table thead { | |
| display: none; | |
| } | |
| #watering-cards .virtual-body, #forecast-strip .virtual-body { | |
| width: 100% ; | |
| } | |
| #watering-cards .virtual-row, #forecast-strip .virtual-row { | |
| background: transparent ; | |
| width: 100% ; | |
| } | |
| #watering-cards .body-cell, #forecast-strip .body-cell { | |
| border: none ; | |
| background: #f3f9f1 ; | |
| border-radius: 8px ; | |
| flex: 1 1 0% ; | |
| width: auto ; | |
| min-width: 0 ; | |
| } | |
| #watering-cards .cell-wrap, #forecast-strip .cell-wrap { | |
| padding: 0.4rem 0.5rem ; | |
| width: auto ; | |
| } | |
| /* === Location gate (welcome card) ========================================== */ | |
| #location-gate { | |
| max-width: 480px; | |
| margin: 4rem auto ; | |
| text-align: center; | |
| background: #ffffffcc; | |
| border-radius: 16px; | |
| padding: 2rem ; | |
| box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); | |
| } | |