Spaces:
Runtime error
Runtime error
| @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;700&family=Outfit:wght@300;400;600;700&display=swap'); | |
| /* P3 Off-Grid Field Repair Logbook — Premium Industrial Terminal UI */ | |
| :root { | |
| color-scheme: dark; | |
| --bg-gradient: linear-gradient(135deg, #020617 0%, #0b1329 50%, #0f172a 100%); | |
| --accent-color: #10b981; /* Emerald */ | |
| --accent-glow: rgba(16, 185, 129, 0.2); | |
| --warning-color: #f59e0b; /* Amber */ | |
| --warning-glow: rgba(245, 158, 11, 0.2); | |
| --border-color: rgba(16, 185, 129, 0.25); | |
| --card-bg: rgba(15, 23, 42, 0.65); | |
| --input-bg: rgba(3, 7, 18, 0.85); | |
| --text-main: #f1f5f9; | |
| --text-muted: #94a3b8; | |
| --text-green: #34d399; | |
| } | |
| .gradio-container { | |
| background: var(--bg-gradient) ; | |
| color: var(--text-main) ; | |
| font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif ; | |
| font-size: 16px; | |
| line-height: 1.6; | |
| } | |
| .gradio-container span, | |
| .gradio-container label, | |
| .gradio-container .markdown li { | |
| color: var(--text-main) ; | |
| } | |
| /* Custom Typography */ | |
| .gradio-container h1 { | |
| font-family: 'Outfit', sans-serif; | |
| font-weight: 700; | |
| letter-spacing: -0.02em; | |
| background: linear-gradient(135deg, #34d399 0%, #10b981 100%); | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| text-transform: uppercase; | |
| } | |
| .gradio-container h2, | |
| .gradio-container h3, | |
| .gradio-container h4 { | |
| font-family: 'Outfit', sans-serif; | |
| font-weight: 600; | |
| color: var(--text-green); | |
| letter-spacing: 0.05em; | |
| text-transform: uppercase; | |
| } | |
| /* Monospace overrides for technical details */ | |
| .gradio-container code, | |
| .gradio-container pre, | |
| .diagnosis-card, | |
| .pack-info, | |
| .status-bar { | |
| font-family: 'SFMono-Regular', 'JetBrains Mono', monospace ; | |
| } | |
| /* Glassmorphism Cards */ | |
| .gradio-container .block { | |
| background: var(--card-bg) ; | |
| border: 1px solid rgba(255, 255, 255, 0.05) ; | |
| backdrop-filter: blur(12px); | |
| border-radius: 12px ; | |
| box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37) ; | |
| } | |
| /* Inputs & Form Elements */ | |
| .gradio-container input, | |
| .gradio-container textarea, | |
| .gradio-container select, | |
| .gradio-container .dropdown { | |
| background: var(--input-bg) ; | |
| color: var(--text-main) ; | |
| border: 1px solid var(--border-color) ; | |
| border-radius: 8px ; | |
| transition: all 0.3s ease; | |
| } | |
| .gradio-container input:focus, | |
| .gradio-container textarea:focus, | |
| .gradio-container select:focus { | |
| border-color: var(--accent-color) ; | |
| box-shadow: 0 0 10px var(--accent-glow) ; | |
| outline: none; | |
| } | |
| /* Table Styling */ | |
| .gradio-container table { | |
| border-collapse: separate; | |
| border-spacing: 0; | |
| width: 100%; | |
| } | |
| .gradio-container th { | |
| background: rgba(16, 185, 129, 0.1) ; | |
| color: var(--text-green) ; | |
| font-family: 'SFMono-Regular', 'JetBrains Mono', monospace; | |
| font-size: 13px; | |
| text-transform: uppercase; | |
| padding: 10px ; | |
| border-bottom: 2px solid var(--accent-color) ; | |
| } | |
| .gradio-container td { | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.05) ; | |
| padding: 10px ; | |
| font-size: 14px; | |
| } | |
| /* Buttons and Micro-animations */ | |
| .gradio-container button { | |
| border-radius: 8px ; | |
| font-family: 'Outfit', sans-serif ; | |
| font-weight: 600 ; | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) ; | |
| } | |
| .gradio-container button:hover { | |
| transform: translateY(-2px); | |
| } | |
| .gradio-container button.primary { | |
| background: linear-gradient(135deg, #10b981, #059669) ; | |
| color: #020617 ; | |
| border: none ; | |
| box-shadow: 0 4px 14px var(--accent-glow) ; | |
| } | |
| .gradio-container button.primary:hover { | |
| box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4) ; | |
| } | |
| .gradio-container button.secondary { | |
| background: rgba(16, 185, 129, 0.05) ; | |
| color: var(--text-green) ; | |
| border: 1px solid var(--accent-color) ; | |
| } | |
| .gradio-container button.secondary:hover { | |
| background: rgba(16, 185, 129, 0.15) ; | |
| box-shadow: 0 0 12px var(--accent-glow) ; | |
| } | |
| /* Custom Components Styles */ | |
| /* Status Bar styling */ | |
| .status-bar { | |
| background: rgba(16, 185, 129, 0.04) ; | |
| border-left: 4px solid var(--accent-color) ; | |
| padding: 12px 16px ; | |
| border-radius: 6px; | |
| margin-bottom: 20px; | |
| color: var(--text-green) ; | |
| font-weight: 500; | |
| box-shadow: inset 0 0 8px rgba(16, 185, 129, 0.05); | |
| } | |
| /* Pack Info dashboard widget */ | |
| .pack-info { | |
| background: rgba(245, 158, 11, 0.03) ; | |
| border: 1px dashed var(--warning-color) ; | |
| padding: 12px 16px ; | |
| border-radius: 8px; | |
| margin-top: 10px; | |
| margin-bottom: 15px; | |
| color: var(--warning-color) ; | |
| } | |
| /* Diagnosis card representing a terminal screen */ | |
| .diagnosis-card { | |
| background: rgba(2, 6, 17, 0.9) ; | |
| border: 1px solid rgba(16, 185, 129, 0.4) ; | |
| padding: 20px ; | |
| border-radius: 10px; | |
| color: #a7f3d0 ; | |
| box-shadow: inset 0 0 20px rgba(16, 185, 129, 0.1), 0 0 15px rgba(0, 0, 0, 0.5); | |
| max-height: 400px; | |
| overflow-y: auto; | |
| } | |
| .diagnosis-card h1, .diagnosis-card h2, .diagnosis-card h3 { | |
| color: var(--warning-color) ; | |
| border-bottom: 1px solid rgba(245, 158, 11, 0.2); | |
| padding-bottom: 5px; | |
| margin-top: 15px; | |
| } | |
| .diagnosis-card strong { | |
| color: #f59e0b ; | |
| } | |
| /* File Upload drag-and-drop region styling */ | |
| .upload-area { | |
| border: 2px dashed rgba(16, 185, 129, 0.3) ; | |
| background: rgba(16, 185, 129, 0.02) ; | |
| border-radius: 10px ; | |
| padding: 30px ; | |
| text-align: center; | |
| transition: all 0.3s ease; | |
| } | |
| .upload-area:hover { | |
| border-color: var(--accent-color) ; | |
| background: rgba(16, 185, 129, 0.05) ; | |
| } | |
| /* Tab Active states */ | |
| .gradio-container .tab-nav button { | |
| color: var(--text-main) ; | |
| background-color: transparent ; | |
| } | |
| .gradio-container .tab-nav button.selected, | |
| .gradio-container .tabs .tab-button.selected { | |
| border-bottom: 2px solid var(--accent-color) ; | |
| background-color: var(--card-bg) ; | |
| color: var(--text-green) ; | |
| font-weight: bold; | |
| } | |
| /* Fix subtitle/description contrast on dark background */ | |
| .gradio-container .markdown p, | |
| .gradio-container .prose p, | |
| .gradio-container p { | |
| color: var(--text-muted) ; | |
| } | |
| .gradio-container .markdown strong, | |
| .gradio-container .prose strong { | |
| color: var(--text-main) ; | |
| } | |
| /* Status bar improvements */ | |
| .gradio-container .status-bar { | |
| background: rgba(16, 185, 129, 0.08) ; | |
| border: 1px solid rgba(16, 185, 129, 0.2) ; | |
| border-radius: 10px; | |
| padding: 10px 14px ; | |
| color: var(--text-green) ; | |
| font-family: 'SFMono-Regular', 'JetBrains Mono', monospace ; | |
| font-size: 0.85rem; | |
| } | |
| /* Dropdown improvements */ | |
| .gradio-container .wrap-inner .svelte-select, | |
| .gradio-container .svelte-select-list, | |
| .gradio-container select { | |
| color: var(--text-main) ; | |
| background: var(--input-bg) ; | |
| } | |