| |
| |
| |
| |
|
|
| |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); |
|
|
| |
| :root { |
| --primary: #1e7a8f; |
| --primary-light: #2a9db5; |
| --primary-dark: #145f70; |
| --accent: #0ea5a0; |
| --accent-light: #14b8b3; |
|
|
| --bg: #f0f7fa; |
| --bg-card: #ffffff; |
| --bg-sidebar: #e8f4f8; |
| --bg-hover: #d6edf4; |
|
|
| --text-primary: #1a2f38; |
| --text-secondary:#4a6b78; |
| --text-muted: #7a9aaa; |
| --text-on-accent:#ffffff; |
|
|
| --border: #c8dfe8; |
| --border-focus: #1e7a8f; |
|
|
| --success: #1a9a6e; |
| --warning: #d68c1a; |
| --danger: #c0392b; |
|
|
| --radius-sm: 6px; |
| --radius: 10px; |
| --radius-lg: 16px; |
|
|
| --shadow-sm: 0 1px 4px rgba(30,122,143,0.10); |
| --shadow: 0 4px 16px rgba(30,122,143,0.14); |
| --shadow-lg: 0 8px 32px rgba(30,122,143,0.18); |
|
|
| --transition: 0.18s ease; |
| } |
|
|
| |
| *, *::before, *::after { |
| box-sizing: border-box; |
| } |
|
|
| body, .gradio-container { |
| font-family: 'Inter', system-ui, -apple-system, sans-serif !important; |
| background-color: var(--bg) !important; |
| color: var(--text-primary) !important; |
| font-size: 15px; |
| line-height: 1.6; |
| } |
|
|
| |
| .status-banner { |
| background: linear-gradient(135deg, var(--primary-dark), var(--primary)); |
| color: #fff; |
| padding: 10px 20px; |
| border-radius: var(--radius); |
| font-size: 13px; |
| font-weight: 500; |
| letter-spacing: 0.02em; |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| margin-bottom: 12px; |
| box-shadow: var(--shadow-sm); |
| } |
|
|
| |
| .tab-nav { |
| background: var(--bg-card) !important; |
| border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important; |
| border-bottom: 2px solid var(--border) !important; |
| padding: 4px 8px 0 !important; |
| } |
|
|
| .tab-nav button { |
| font-family: 'Inter', sans-serif !important; |
| font-size: 14px !important; |
| font-weight: 500 !important; |
| color: var(--text-secondary) !important; |
| border-radius: var(--radius-sm) var(--radius-sm) 0 0 !important; |
| padding: 10px 18px !important; |
| transition: background var(--transition), color var(--transition) !important; |
| border: none !important; |
| } |
|
|
| .tab-nav button:hover { |
| background: var(--bg-hover) !important; |
| color: var(--primary) !important; |
| } |
|
|
| .tab-nav button.selected { |
| background: var(--bg) !important; |
| color: var(--primary) !important; |
| border-bottom: 3px solid var(--primary) !important; |
| font-weight: 600 !important; |
| } |
|
|
| |
| input[type="text"], |
| input[type="date"], |
| input[type="time"], |
| textarea, |
| select, |
| .gradio-textbox textarea, |
| .gradio-textbox input { |
| font-family: 'Inter', sans-serif !important; |
| border: 1.5px solid var(--border) !important; |
| border-radius: var(--radius-sm) !important; |
| background: #fff !important; |
| color: var(--text-primary) !important; |
| transition: border-color var(--transition), box-shadow var(--transition) !important; |
| padding: 8px 12px !important; |
| font-size: 14px !important; |
| } |
|
|
| input:focus, |
| textarea:focus, |
| select:focus, |
| .gradio-textbox textarea:focus, |
| .gradio-textbox input:focus { |
| border-color: var(--border-focus) !important; |
| box-shadow: 0 0 0 3px rgba(30,122,143,0.15) !important; |
| outline: none !important; |
| } |
|
|
| |
| button.primary, |
| .gradio-button.primary { |
| background: linear-gradient(135deg, var(--primary), var(--primary-light)) !important; |
| color: #fff !important; |
| border: none !important; |
| border-radius: var(--radius-sm) !important; |
| font-family: 'Inter', sans-serif !important; |
| font-weight: 600 !important; |
| font-size: 14px !important; |
| padding: 9px 20px !important; |
| cursor: pointer !important; |
| transition: transform var(--transition), box-shadow var(--transition) !important; |
| box-shadow: var(--shadow-sm) !important; |
| } |
|
|
| button.primary:hover, |
| .gradio-button.primary:hover { |
| transform: translateY(-1px) !important; |
| box-shadow: var(--shadow) !important; |
| } |
|
|
| button.secondary, |
| .gradio-button.secondary { |
| background: var(--bg-card) !important; |
| color: var(--primary) !important; |
| border: 1.5px solid var(--border) !important; |
| border-radius: var(--radius-sm) !important; |
| font-family: 'Inter', sans-serif !important; |
| font-weight: 500 !important; |
| font-size: 14px !important; |
| padding: 9px 20px !important; |
| cursor: pointer !important; |
| transition: background var(--transition), border-color var(--transition) !important; |
| } |
|
|
| button.secondary:hover, |
| .gradio-button.secondary:hover { |
| background: var(--bg-hover) !important; |
| border-color: var(--primary) !important; |
| } |
|
|
| |
| button.danger { |
| background: var(--bg-card) !important; |
| color: var(--danger) !important; |
| border: 1.5px solid var(--danger) !important; |
| border-radius: var(--radius-sm) !important; |
| font-family: 'Inter', sans-serif !important; |
| font-weight: 500 !important; |
| font-size: 14px !important; |
| padding: 9px 20px !important; |
| cursor: pointer !important; |
| transition: background var(--transition) !important; |
| } |
|
|
| button.danger:hover { background: #fdecea !important; } |
|
|
| |
| .card { |
| background: var(--bg-card); |
| border: 1px solid var(--border); |
| border-radius: var(--radius); |
| padding: 20px; |
| box-shadow: var(--shadow-sm); |
| transition: box-shadow var(--transition); |
| } |
|
|
| .card:hover { box-shadow: var(--shadow); } |
|
|
| |
| label, |
| .gradio-label { |
| font-family: 'Inter', sans-serif !important; |
| font-weight: 500 !important; |
| font-size: 13px !important; |
| color: var(--text-secondary) !important; |
| margin-bottom: 4px !important; |
| letter-spacing: 0.01em !important; |
| } |
|
|
| |
| .gradio-dataframe table { |
| border-collapse: collapse !important; |
| width: 100% !important; |
| font-size: 14px !important; |
| } |
|
|
| .gradio-dataframe th { |
| background: var(--bg-sidebar) !important; |
| color: var(--primary) !important; |
| font-weight: 600 !important; |
| padding: 10px 14px !important; |
| border-bottom: 2px solid var(--border) !important; |
| text-align: left !important; |
| } |
|
|
| .gradio-dataframe td { |
| padding: 9px 14px !important; |
| border-bottom: 1px solid var(--border) !important; |
| color: var(--text-primary) !important; |
| } |
|
|
| .gradio-dataframe tr:hover td { |
| background: var(--bg-hover) !important; |
| } |
|
|
| |
| table.allergy-table th { |
| background: #fef3e7 !important; |
| color: #b84a00 !important; |
| border-bottom-color: #f5cba7 !important; |
| } |
| table.allergy-table { |
| border: 1px solid #f5cba7 !important; |
| border-radius: var(--radius-sm) !important; |
| } |
|
|
| table.preferred-table th { |
| background: #e8f8ee !important; |
| color: #1a7a4a !important; |
| border-bottom-color: #a3d9b1 !important; |
| } |
| table.preferred-table { |
| border: 1px solid #a3d9b1 !important; |
| border-radius: var(--radius-sm) !important; |
| } |
|
|
| table.aversion-table th { |
| background: #fef0e6 !important; |
| color: #b45f2a !important; |
| border-bottom-color: #f0c9a3 !important; |
| } |
| table.aversion-table { |
| border: 1px solid #f0c9a3 !important; |
| border-radius: var(--radius-sm) !important; |
| } |
|
|
| |
| .gradio-chatbot { |
| background: var(--bg-card) !important; |
| border: 1px solid var(--border) !important; |
| border-radius: var(--radius) !important; |
| } |
|
|
| .message.user { |
| background: linear-gradient(135deg, var(--primary), var(--primary-light)) !important; |
| color: #fff !important; |
| border-radius: var(--radius) var(--radius-sm) var(--radius-sm) var(--radius) !important; |
| } |
|
|
| .message.bot { |
| background: var(--bg-sidebar) !important; |
| color: var(--text-primary) !important; |
| border: 1px solid var(--border) !important; |
| border-radius: var(--radius-sm) var(--radius) var(--radius) var(--radius-sm) !important; |
| } |
|
|
| |
| .gradio-accordion { |
| border: 1px solid var(--border) !important; |
| border-radius: var(--radius) !important; |
| overflow: hidden !important; |
| } |
|
|
| .gradio-accordion > .label-wrap { |
| background: var(--bg-sidebar) !important; |
| padding: 12px 16px !important; |
| font-weight: 600 !important; |
| color: var(--primary) !important; |
| } |
|
|
| |
| .status-ok { color: var(--success); font-weight: 600; } |
| .status-warn { color: var(--warning); font-weight: 600; } |
| .status-error { color: var(--danger); font-weight: 600; } |
|
|
| |
| .app-footer { |
| text-align: center; |
| padding: 16px; |
| color: var(--text-muted); |
| font-size: 12px; |
| border-top: 1px solid var(--border); |
| margin-top: 24px; |
| } |
|
|
| |
| .upload-zone { |
| border: 2px dashed var(--border) !important; |
| border-radius: var(--radius) !important; |
| background: var(--bg-sidebar) !important; |
| transition: border-color var(--transition), background var(--transition) !important; |
| } |
|
|
| .upload-zone:hover { |
| border-color: var(--primary) !important; |
| background: var(--bg-hover) !important; |
| } |
|
|
| |
| ::-webkit-scrollbar { width: 6px; height: 6px; } |
| ::-webkit-scrollbar-track { background: var(--bg); } |
| ::-webkit-scrollbar-thumb { |
| background: var(--border); |
| border-radius: 3px; |
| } |
| ::-webkit-scrollbar-thumb:hover { background: var(--primary-light); } |
|
|
| |
| @media (max-width: 768px) { |
| body, .gradio-container { font-size: 14px !important; } |
| .tab-nav button { padding: 8px 12px !important; font-size: 12px !important; } |
| } |
|
|