Spaces:
Sleeping
Sleeping
| @import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&family=Syne:wght@700;800&family=JetBrains+Mono:wght@400;500&display=swap'); | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| BubbleBusters β Iridescent Soap Bubble Design System | |
| Palette: Pearl White Β· Soft Lavender Β· Bubblegum Β· Mint | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| :root { | |
| /* backgrounds */ | |
| --bg: #f7f4ff; | |
| --bg-card: rgba(255,255,255,0.72); | |
| --bg-card-2: rgba(255,255,255,0.55); | |
| --bg-input: rgba(255,255,255,0.80); | |
| --bg-dark: #1a0e2e; | |
| /* palette */ | |
| --lavender: #c5b4f0; | |
| --lavender-mid: #a48de8; | |
| --violet: #7c5cbf; | |
| --violet-deep: #4b2d8a; | |
| --mint: #6ee7c7; | |
| --mint-mid: #3dcba8; | |
| --blush: #ffb3c8; | |
| --peach: #ffd6a5; | |
| --sky: #a8d8f0; | |
| --periwinkle: #8fa8f8; | |
| /* text */ | |
| --text: #2d1f4e; | |
| --text-mid: #6b5b8e; | |
| --text-muted: #9d8fc4; | |
| /* semantic */ | |
| --green: #3dcba8; | |
| --red: #ff6b8a; | |
| --amber: #ffb347; | |
| --blue: #7aa6f8; | |
| /* glass */ | |
| --glass-border: rgba(255,255,255,0.65); | |
| --glass-shadow: 0 8px 32px rgba(124,92,191,.12), 0 2px 8px rgba(124,92,191,.06); | |
| --font-display: 'Syne', sans-serif; | |
| --font-body: 'Nunito', sans-serif; | |
| --font-mono: 'JetBrains Mono', monospace; | |
| } | |
| /* ββ Base β aurora gradient background ββ */ | |
| body, .gradio-container { | |
| background: | |
| radial-gradient(ellipse at 15% 0%, rgba(197,180,240,.45) 0%, transparent 55%), | |
| radial-gradient(ellipse at 85% 10%, rgba(168,216,240,.40) 0%, transparent 50%), | |
| radial-gradient(ellipse at 50% 90%, rgba(110,231,199,.30) 0%, transparent 60%), | |
| radial-gradient(ellipse at 5% 80%, rgba(255,179,200,.25) 0%, transparent 45%), | |
| #f0ecff ; | |
| color: var(--text) ; | |
| font-family: var(--font-body) ; | |
| min-height: 100vh; | |
| } | |
| .gradio-container { max-width: 1520px ; } | |
| /* ββ Keyframes ββ */ | |
| @keyframes floatBubble { | |
| 0% { transform: translateY(0px) rotate(0deg) scale(1); opacity:.7; } | |
| 33% { transform: translateY(-14px) rotate(3deg) scale(1.04); opacity:.9; } | |
| 66% { transform: translateY(-8px) rotate(-2deg) scale(.97); opacity:.75; } | |
| 100% { transform: translateY(0px) rotate(0deg) scale(1); opacity:.7; } | |
| } | |
| @keyframes iridescent { | |
| 0% { filter: hue-rotate(0deg) brightness(1.0); } | |
| 50% { filter: hue-rotate(30deg) brightness(1.08); } | |
| 100% { filter: hue-rotate(0deg) brightness(1.0); } | |
| } | |
| @keyframes shimmerSlide { | |
| 0% { background-position: -600px 0; } | |
| 100% { background-position: 600px 0; } | |
| } | |
| @keyframes popIn { | |
| 0% { opacity:0; transform:scale(.92) translateY(8px); } | |
| 60% { opacity:1; transform:scale(1.02) translateY(-2px); } | |
| 100% { opacity:1; transform:scale(1) translateY(0); } | |
| } | |
| @keyframes pulseDot { | |
| 0%,100% { box-shadow: 0 0 0 0 rgba(61,203,168,.7); } | |
| 50% { box-shadow: 0 0 0 7px rgba(61,203,168,.0); } | |
| } | |
| /* ββ Header ββ */ | |
| #bb-header { | |
| position: relative; | |
| overflow: hidden; | |
| background: linear-gradient(135deg, | |
| rgba(255,255,255,.82) 0%, | |
| rgba(245,240,255,.88) 50%, | |
| rgba(240,248,255,.82) 100%); | |
| backdrop-filter: blur(24px); | |
| -webkit-backdrop-filter: blur(24px); | |
| border: 1.5px solid var(--glass-border); | |
| border-radius: 28px; | |
| padding: 28px 36px; | |
| margin-bottom: 20px; | |
| box-shadow: var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,.9); | |
| animation: popIn .55s cubic-bezier(.34,1.56,.64,1) both; | |
| } | |
| /* Top shimmer stripe */ | |
| #bb-header::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; left: 0; right: 0; height: 3px; | |
| background: linear-gradient(90deg, | |
| var(--lavender), var(--mint), var(--blush), | |
| var(--sky), var(--lavender)); | |
| background-size: 300% 100%; | |
| animation: shimmerSlide 4s linear infinite; | |
| border-radius: 28px 28px 0 0; | |
| } | |
| /* Subtle dot grid */ | |
| #bb-header::after { | |
| content: ''; | |
| position: absolute; inset: 0; | |
| background-image: radial-gradient(circle, rgba(124,92,191,.08) 1px, transparent 1px); | |
| background-size: 22px 22px; | |
| pointer-events: none; | |
| } | |
| /* ββ Tabs ββ */ | |
| .tab-nav { | |
| background: rgba(255,255,255,.55) ; | |
| backdrop-filter: blur(12px); | |
| border: 1.5px solid var(--glass-border) ; | |
| border-radius: 18px ; | |
| padding: 5px 5px ; | |
| margin-bottom: 14px ; | |
| box-shadow: 0 4px 16px rgba(124,92,191,.08); | |
| gap: 4px ; | |
| display: flex ; | |
| } | |
| .tab-nav button { | |
| background: transparent ; | |
| color: var(--text-mid) ; | |
| border: none ; | |
| border-radius: 13px ; | |
| font-family: var(--font-body) ; | |
| font-size: 13px ; | |
| font-weight: 700 ; | |
| padding: 10px 20px ; | |
| letter-spacing: .2px ; | |
| transition: all .22s ease ; | |
| flex: 1; | |
| } | |
| .tab-nav button.selected { | |
| background: linear-gradient(135deg, var(--violet), var(--lavender-mid)) ; | |
| color: #fff ; | |
| box-shadow: 0 4px 14px rgba(124,92,191,.35) ; | |
| } | |
| .tab-nav button:hover:not(.selected) { | |
| background: rgba(197,180,240,.25) ; | |
| color: var(--violet) ; | |
| } | |
| /* ββ Buttons ββ */ | |
| .btn-primary { | |
| background: linear-gradient(135deg, var(--violet), var(--lavender-mid)) ; | |
| color: #fff ; | |
| border: none ; | |
| border-radius: 50px ; | |
| font-family: var(--font-body) ; | |
| font-weight: 800 ; | |
| font-size: 13px ; | |
| padding: 12px 30px ; | |
| letter-spacing: .3px ; | |
| box-shadow: 0 6px 20px rgba(124,92,191,.35) ; | |
| transition: box-shadow .25s, transform .18s ; | |
| } | |
| .btn-primary:hover { | |
| box-shadow: 0 8px 28px rgba(124,92,191,.55) ; | |
| transform: translateY(-2px) ; | |
| } | |
| .btn-primary:active { transform: translateY(0) ; } | |
| .btn-secondary { | |
| background: rgba(255,255,255,.7) ; | |
| color: var(--violet) ; | |
| border: 1.5px solid rgba(197,180,240,.6) ; | |
| border-radius: 50px ; | |
| font-family: var(--font-body) ; | |
| font-weight: 700 ; | |
| font-size: 12px ; | |
| padding: 9px 18px ; | |
| transition: all .2s ; | |
| backdrop-filter: blur(8px) ; | |
| } | |
| .btn-secondary:hover { | |
| background: rgba(197,180,240,.3) ; | |
| border-color: var(--lavender-mid) ; | |
| box-shadow: 0 4px 14px rgba(124,92,191,.2) ; | |
| transform: translateY(-1px) ; | |
| } | |
| /* ββ Inputs / textareas ββ */ | |
| textarea, input[type="text"], | |
| .gr-textbox textarea, .gr-input input { | |
| background: var(--bg-input) ; | |
| color: var(--text) ; | |
| border: 1.5px solid rgba(197,180,240,.5) ; | |
| border-radius: 16px ; | |
| font-family: var(--font-body) ; | |
| font-size: 13.5px ; | |
| font-weight: 500 ; | |
| transition: border-color .2s, box-shadow .2s ; | |
| box-shadow: 0 2px 8px rgba(124,92,191,.06) ; | |
| } | |
| textarea:focus, input[type="text"]:focus { | |
| border-color: var(--lavender-mid) ; | |
| box-shadow: 0 0 0 4px rgba(197,180,240,.3), 0 2px 8px rgba(124,92,191,.1) ; | |
| outline: none ; | |
| } | |
| /* ββ Chatbot ββ */ | |
| .message { | |
| border-radius: 18px ; | |
| font-family: var(--font-body) ; | |
| font-size: 13.5px ; | |
| font-weight: 500 ; | |
| line-height: 1.65 ; | |
| } | |
| .message.user { | |
| background: linear-gradient(135deg, | |
| rgba(197,180,240,.25), rgba(168,216,240,.20)) ; | |
| border: 1.5px solid rgba(197,180,240,.45) ; | |
| } | |
| .message.assistant { | |
| background: linear-gradient(135deg, | |
| rgba(255,255,255,.85), rgba(245,240,255,.75)) ; | |
| border: 1.5px solid rgba(255,255,255,.7) ; | |
| box-shadow: 0 4px 16px rgba(124,92,191,.08) ; | |
| } | |
| /* ββ Pipeline log ββ */ | |
| #pipeline-log textarea { | |
| font-family: var(--font-mono) ; | |
| font-size: 11.5px ; | |
| background: #1a0e2e ; | |
| color: #c5b4f0 ; | |
| border: 1.5px solid rgba(197,180,240,.25) ; | |
| border-radius: 16px ; | |
| line-height: 1.75 ; | |
| box-shadow: inset 0 2px 12px rgba(0,0,0,.2) ; | |
| height: 340px ; | |
| min-height: 340px ; | |
| max-height: 340px ; | |
| overflow-y: scroll ; | |
| resize: vertical ; | |
| white-space: pre ; | |
| word-break: keep-all ; | |
| user-select: text ; | |
| -webkit-user-select: text ; | |
| } | |
| /* ββ Section labels ββ */ | |
| .section-label { | |
| font-family: var(--font-body); | |
| color: var(--violet); | |
| font-weight: 800; | |
| font-size: 10.5px; | |
| text-transform: uppercase; | |
| letter-spacing: 2.5px; | |
| margin-bottom: 12px; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .section-label::after { | |
| content: ''; | |
| flex: 1; | |
| height: 1.5px; | |
| background: linear-gradient(90deg, rgba(197,180,240,.7), transparent); | |
| border-radius: 2px; | |
| } | |
| /* ββ Accordion ββ */ | |
| .gr-accordion { | |
| background: var(--bg-card) ; | |
| backdrop-filter: blur(16px) ; | |
| border: 1.5px solid var(--glass-border) ; | |
| border-radius: 18px ; | |
| box-shadow: var(--glass-shadow) ; | |
| } | |
| .gr-accordion > div:first-child { | |
| border-radius: 18px 18px 0 0 ; | |
| } | |
| /* ββ Radio / checkbox ββ */ | |
| .gr-radio label, .gr-checkbox label { | |
| color: var(--text-mid) ; | |
| font-family: var(--font-body) ; | |
| font-size: 12px ; | |
| font-weight: 600 ; | |
| } | |
| /* ββ Misc cards / panels ββ */ | |
| .gr-form { background: transparent ; } | |
| label, .gr-form label { | |
| color: var(--text-mid) ; | |
| font-family: var(--font-body) ; | |
| font-size: 12px ; | |
| font-weight: 600 ; | |
| } | |
| .gr-box, .gr-panel { | |
| background: var(--bg-card) ; | |
| backdrop-filter: blur(16px) ; | |
| border: 1.5px solid var(--glass-border) ; | |
| border-radius: 20px ; | |
| box-shadow: var(--glass-shadow) ; | |
| } | |
| /* ββ Scrollbars ββ */ | |
| ::-webkit-scrollbar { width: 6px; height: 6px; } | |
| ::-webkit-scrollbar-track { background: transparent; } | |
| ::-webkit-scrollbar-thumb { | |
| background: linear-gradient(var(--lavender), var(--mint)); | |
| border-radius: 10px; | |
| } | |
| /* ββ Plotly override: white backgrounds look wrong on aurora bg ββ */ | |
| .js-plotly-plot .plotly .bg { fill: transparent ; } |