Spaces:
Sleeping
Sleeping
| @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;700&family=Inter:wght@300;400;500&display=swap'); | |
| body { | |
| background: | |
| linear-gradient(rgba(5,25,50,0.85), rgba(5,25,50,0.85)), | |
| url('https://images.unsplash.com/photo-1532187863486-abf9dbad1b69'); | |
| background-size: cover; | |
| background-attachment: fixed; | |
| font-family: 'Inter', sans-serif; | |
| color: white; | |
| } | |
| /* Main Panel */ | |
| .gradio-container { | |
| max-width: 1250px; | |
| margin: auto; | |
| background: rgba(10,25,45,0.75); | |
| backdrop-filter: blur(12px); | |
| border-radius: 18px; | |
| padding: 30px; | |
| box-shadow: 0px 25px 60px rgba(0,0,0,0.7); | |
| border: 1px solid rgba(255,255,255,0.15); | |
| } | |
| /* Title */ | |
| h1 { | |
| font-family: 'Montserrat', sans-serif; | |
| font-size: 48px; | |
| font-weight: 700; | |
| text-align: center; | |
| background: linear-gradient(90deg, #4fc3f7, #29b6f6, #81d4fa); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| letter-spacing: 2px; | |
| margin-bottom: 5px; | |
| } | |
| .subtitle-text, .subtitle-text * { | |
| color: white ; | |
| text-align: center; | |
| font-size: 18px; | |
| } | |
| .credits-text, .credits-text * { | |
| color: white ; | |
| text-align: center; | |
| font-size: 15px; | |
| } | |
| /* Cards */ | |
| .chem-card { | |
| background: rgba(20,40,70,0.9) ; | |
| border-radius: 16px ; | |
| padding: 20px ; | |
| box-shadow: 0px 10px 25px rgba(0,0,0,0.6) ; | |
| border: 1px solid rgba(120,180,255,0.3) ; | |
| transition: 0.3s; | |
| box-sizing: border-box ; | |
| } | |
| .chem-card:hover { | |
| transform: translateY(-3px); | |
| box-shadow: 0px 20px 40px rgba(0,0,0,0.8) ; | |
| } | |
| h3 { | |
| color: #4fc3f7; | |
| font-weight: 600; | |
| } | |
| textarea, input { | |
| background: #0d1b2a ; | |
| color: white ; | |
| border-radius: 10px ; | |
| border: 1px solid #4fc3f7 ; | |
| padding: 12px ; | |
| font-size: 15px ; | |
| } | |
| button { | |
| background: linear-gradient(45deg, #1976d2, #29b6f6) ; | |
| color: white ; | |
| border-radius: 10px ; | |
| font-weight: 600 ; | |
| padding: 12px 24px ; | |
| border: none ; | |
| box-shadow: 0px 5px 20px rgba(0,150,255,0.7); | |
| transition: 0.3s; | |
| } | |
| button:hover { | |
| background: linear-gradient(45deg, #42a5f5, #81d4fa) ; | |
| transform: translateY(-2px); | |
| box-shadow: 0px 10px 30px rgba(0,150,255,0.9); | |
| } | |
| .examples { | |
| background: rgba(30,60,100,0.7); | |
| border-radius: 12px; | |
| border: 1px solid rgba(100,180,255,0.3); | |
| padding: 10px; | |
| } | |
| .footer-text, .footer-text * { | |
| color: white ; | |
| text-align: center; | |
| font-size: 15px; | |
| } | |
| /* Cards stretch equally in the row */ | |
| #main-row { | |
| align-items: stretch ; | |
| } | |
| #left-card, | |
| #right-card { | |
| flex: 1 1 0 ; | |
| min-width: 0 ; | |
| display: flex ; | |
| flex-direction: column ; | |
| box-sizing: border-box ; | |
| } | |
| /* ============================================= | |
| REACTANT MOLECULE GRID | |
| The KEY fix: border-radius on the CONTAINER | |
| with overflow:hidden clips the cells cleanly. | |
| No per-cell radius needed at all. | |
| ============================================= */ | |
| .mol-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 2px; /* thin dark line between cells */ | |
| width: 100%; | |
| box-sizing: border-box; | |
| margin: 8px 0; | |
| background: rgba(10,25,45,0.9); /* gap colour matches card bg */ | |
| border-radius: 8px; /* rounds the whole grid as one unit */ | |
| overflow: hidden; /* clips cell corners — this is the fix */ | |
| } | |
| .mol-cell { | |
| background: white; | |
| aspect-ratio: 1 / 1; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| overflow: hidden; | |
| box-sizing: border-box; | |
| /* NO border-radius here — the container handles it */ | |
| } | |
| .mol-cell img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: contain; | |
| display: block; | |
| } | |
| .mol-invalid { | |
| color: #888; | |
| font-size: 12px; | |
| padding: 8px; | |
| text-align: center; | |
| } | |
| /* ============================================= | |
| PRODUCT IMAGE BOX | |
| ============================================= */ | |
| .product-box { | |
| width: 100%; | |
| box-sizing: border-box; | |
| background: white; | |
| border-radius: 8px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 300px; | |
| margin: 8px 0; | |
| overflow: hidden; | |
| } | |
| .product-box img { | |
| width: 100%; | |
| height: auto; | |
| display: block; | |
| object-fit: contain; | |
| } | |
| .product-placeholder { | |
| color: #aaa; | |
| font-size: 14px; | |
| } | |
| /* Strip Gradio wrapper chrome from HTML components */ | |
| .gr-html { | |
| padding: 0 ; | |
| margin: 0 ; | |
| background: transparent ; | |
| border: none ; | |
| box-shadow: none ; | |
| } |