Spaces:
Sleeping
Sleeping
| /* ---- Light tokens (default) ---- */ | |
| :root { | |
| --cf-ink: #0b1220; | |
| --cf-body: #1e293b; | |
| --cf-muted: #475569; | |
| --cf-teal: #0f766e; | |
| --cf-teal-bright: #0d9488; | |
| --cf-surface: #ffffff; | |
| --cf-surface-2: #f1f5f9; | |
| --cf-page-bg: #f8fafc; | |
| --cf-border: #cbd5e1; | |
| --cf-ok: #047857; | |
| --cf-warn: #b45309; | |
| --cf-bad: #b91c1c; | |
| --cf-badge-bg: #ccfbf1; | |
| --cf-badge-fg: #115e59; | |
| --cf-badge-border: #5eead4; | |
| --cf-btn-fg: #ffffff; | |
| color-scheme: light; | |
| } | |
| /* ---- Dark tokens (Gradio .dark / ?__theme=dark) ---- */ | |
| .dark, | |
| html.dark, | |
| body.dark, | |
| .dark .gradio-container { | |
| --cf-ink: #f8fafc; | |
| --cf-body: #e2e8f0; | |
| --cf-muted: #94a3b8; | |
| --cf-teal: #2dd4bf; | |
| --cf-teal-bright: #5eead4; | |
| --cf-surface: #1e293b; | |
| --cf-surface-2: #0f172a; | |
| --cf-page-bg: #0b1220; | |
| --cf-border: #334155; | |
| --cf-ok: #34d399; | |
| --cf-warn: #fbbf24; | |
| --cf-bad: #f87171; | |
| --cf-badge-bg: #134e4a; | |
| --cf-badge-fg: #99f6e4; | |
| --cf-badge-border: #0d9488; | |
| --cf-btn-fg: #042f2e; | |
| color-scheme: dark; | |
| } | |
| html, body { | |
| background: var(--cf-page-bg) ; | |
| color: var(--cf-body) ; | |
| } | |
| .gradio-container { | |
| font-family: "IBM Plex Sans", "Source Sans 3", "Segoe UI", Helvetica, Arial, sans-serif ; | |
| color: var(--cf-body) ; | |
| background: | |
| radial-gradient(ellipse 70% 45% at 8% 0%, rgba(15, 118, 110, 0.14), transparent 55%), | |
| radial-gradient(ellipse 50% 35% at 92% 5%, rgba(14, 116, 144, 0.10), transparent 50%), | |
| linear-gradient(180deg, var(--cf-page-bg) 0%, var(--cf-surface-2) 100%) ; | |
| max-width: 1100px ; | |
| margin: 0 auto ; | |
| } | |
| .dark .gradio-container { | |
| background: | |
| radial-gradient(ellipse 70% 45% at 8% 0%, rgba(45, 212, 191, 0.10), transparent 55%), | |
| radial-gradient(ellipse 50% 35% at 92% 5%, rgba(56, 189, 248, 0.08), transparent 50%), | |
| linear-gradient(180deg, #0b1220 0%, #0f172a 100%) ; | |
| } | |
| /* Explicit text — use tokens, never inherit Gradio defaults */ | |
| .gradio-container, | |
| .gradio-container .prose, | |
| .gradio-container .markdown, | |
| .gradio-container label, | |
| .gradio-container span, | |
| .gradio-container p, | |
| .gradio-container li { | |
| color: var(--cf-body) ; | |
| } | |
| .gradio-container h1, | |
| .gradio-container h2, | |
| .gradio-container h3, | |
| .gradio-container .prose h1, | |
| .gradio-container .prose h2, | |
| .gradio-container .prose h3 { | |
| color: var(--cf-ink) ; | |
| } | |
| .gradio-container input, | |
| .gradio-container textarea, | |
| .gradio-container select { | |
| background: var(--cf-surface) ; | |
| color: var(--cf-ink) ; | |
| border-color: var(--cf-border) ; | |
| } | |
| .gradio-container button { | |
| color: var(--cf-ink) ; | |
| } | |
| .gradio-container button.primary, | |
| .gradio-container .primary { | |
| background: var(--cf-teal) ; | |
| color: var(--cf-btn-fg) ; | |
| border: none ; | |
| font-weight: 650 ; | |
| } | |
| .gradio-container button.primary:hover { | |
| background: var(--cf-teal-bright) ; | |
| color: var(--cf-btn-fg) ; | |
| } | |
| .dark .gradio-container button.primary, | |
| .dark .gradio-container .primary { | |
| color: #042f2e ; | |
| } | |
| /* Header + theme toggle */ | |
| #cf-header { | |
| text-align: center; | |
| padding: 1.75rem 1rem 0.85rem; | |
| position: relative; | |
| } | |
| #cf-header h1 { | |
| color: var(--cf-ink) ; | |
| font-weight: 800; | |
| font-size: clamp(1.85rem, 4vw, 2.45rem); | |
| letter-spacing: -0.03em; | |
| margin: 0 0 0.4rem; | |
| } | |
| #cf-header .cf-tagline { | |
| color: var(--cf-muted) ; | |
| font-size: 1.05rem; | |
| max-width: 36rem; | |
| margin: 0 auto 0.85rem; | |
| line-height: 1.5; | |
| } | |
| #cf-header .cf-meta { | |
| display: inline-flex; | |
| gap: 0.5rem; | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| font-size: 0.8rem; | |
| } | |
| #cf-header .cf-badge { | |
| background: var(--cf-badge-bg) ; | |
| color: var(--cf-badge-fg) ; | |
| border: 1px solid var(--cf-badge-border) ; | |
| border-radius: 999px; | |
| padding: 0.2rem 0.7rem; | |
| font-weight: 650; | |
| } | |
| .cf-theme-toggle { | |
| display: inline-flex; | |
| gap: 0; | |
| margin: 0.85rem auto 0; | |
| border: 1px solid var(--cf-border); | |
| border-radius: 999px; | |
| overflow: hidden; | |
| background: var(--cf-surface-2); | |
| } | |
| .cf-theme-toggle a { | |
| display: inline-block; | |
| padding: 0.35rem 0.9rem; | |
| font-size: 0.8rem; | |
| font-weight: 650; | |
| text-decoration: none ; | |
| color: var(--cf-muted) ; | |
| background: transparent ; | |
| border: none ; | |
| } | |
| .cf-theme-toggle a:hover { | |
| color: var(--cf-ink) ; | |
| background: var(--cf-surface) ; | |
| } | |
| .cf-theme-toggle a.active { | |
| color: var(--cf-btn-fg) ; | |
| background: var(--cf-teal) ; | |
| } | |
| .dark .cf-theme-toggle a.active { | |
| color: #042f2e ; | |
| } | |
| /* Panels */ | |
| .cf-panel { | |
| border: 1px solid var(--cf-border) ; | |
| border-radius: 16px ; | |
| box-shadow: 0 6px 24px rgba(15, 23, 42, 0.06) ; | |
| background: var(--cf-surface) ; | |
| padding: 0.35rem ; | |
| color: var(--cf-body) ; | |
| } | |
| .dark .cf-panel { | |
| box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35) ; | |
| } | |
| /* KPI cards */ | |
| .cf-kpi { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); | |
| gap: 0.65rem; | |
| margin: 0.75rem 0 1rem; | |
| } | |
| .cf-kpi .cell { | |
| background: var(--cf-surface-2) ; | |
| border: 1px solid var(--cf-border) ; | |
| border-radius: 12px; | |
| padding: 0.75rem 0.85rem; | |
| text-align: center; | |
| } | |
| .cf-kpi .cell .label { | |
| font-size: 0.72rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| color: var(--cf-muted) ; | |
| font-weight: 600; | |
| } | |
| .cf-kpi .cell .value { | |
| font-size: 1.35rem; | |
| font-weight: 750; | |
| color: var(--cf-ink) ; | |
| margin-top: 0.2rem; | |
| } | |
| .cf-kpi .ok .value { color: var(--cf-ok) ; } | |
| .cf-kpi .warn .value { color: var(--cf-warn) ; } | |
| .cf-kpi .bad .value { color: var(--cf-bad) ; } | |
| /* File upload / download rows */ | |
| .gradio-container .file-preview, | |
| .gradio-container .file-preview-holder, | |
| .gradio-container .upload-container, | |
| .gradio-container .uploaded-files, | |
| .gradio-container .file-name, | |
| .gradio-container .file-size, | |
| .gradio-container .wrap, | |
| .gradio-container .file .file-preview, | |
| .gradio-container .block .file-preview, | |
| .gradio-container .block .upload-container .wrap { | |
| background: var(--cf-surface-2) ; | |
| color: var(--cf-ink) ; | |
| border-color: var(--cf-border) ; | |
| } | |
| .gradio-container .file-preview *, | |
| .gradio-container .upload-container *, | |
| .gradio-container .uploaded-files *, | |
| .gradio-container .file-preview-holder * { | |
| color: var(--cf-ink) ; | |
| } | |
| .gradio-container .file-preview span, | |
| .gradio-container .file-preview a, | |
| .gradio-container .file-name, | |
| .gradio-container .file-size { | |
| background: transparent ; | |
| font-weight: 600 ; | |
| } | |
| .gradio-container .block.file, | |
| .gradio-container [data-testid="file-upload"] { | |
| background: var(--cf-surface) ; | |
| border-color: var(--cf-border) ; | |
| } | |
| .gradio-container .file button, | |
| .gradio-container .file a { | |
| color: var(--cf-ink) ; | |
| } | |
| .gradio-container .file .or { | |
| color: var(--cf-muted) ; | |
| } | |
| /* Audit / error reports */ | |
| .cf-report, | |
| .cf-error, | |
| .gradio-container pre.cf-report, | |
| .gradio-container pre.cf-error { | |
| display: block; | |
| width: 100%; | |
| box-sizing: border-box; | |
| margin: 0.75rem 0 1rem; | |
| padding: 1rem 1.1rem; | |
| overflow-x: auto; | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| font-family: "IBM Plex Mono", "Source Code Pro", ui-monospace, monospace ; | |
| font-size: 0.82rem; | |
| line-height: 1.45; | |
| color: var(--cf-ink) ; | |
| background: var(--cf-surface-2) ; | |
| border: 1px solid var(--cf-border) ; | |
| border-radius: 12px; | |
| } | |
| .gradio-container pre.cf-report span, | |
| .gradio-container pre.cf-error span, | |
| .gradio-container .markdown pre span, | |
| .gradio-container .prose pre span { | |
| background: transparent ; | |
| color: var(--cf-ink) ; | |
| } | |
| .gradio-container .markdown pre, | |
| .gradio-container .prose pre, | |
| .gradio-container .markdown pre code, | |
| .gradio-container .prose pre code { | |
| background: var(--cf-surface-2) ; | |
| color: var(--cf-ink) ; | |
| border: 1px solid var(--cf-border) ; | |
| border-radius: 12px; | |
| } | |
| .gradio-container .markdown code:not(pre code), | |
| .gradio-container .prose code:not(pre code) { | |
| background: var(--cf-surface-2) ; | |
| color: var(--cf-ink) ; | |
| padding: 0.1rem 0.35rem; | |
| border-radius: 4px; | |
| } | |
| /* Footer */ | |
| #cf-footer { | |
| margin: 1.5rem 0 0.5rem; | |
| padding: 1rem 0 0.25rem; | |
| border-top: 1px solid var(--cf-border); | |
| text-align: center; | |
| } | |
| #cf-footer .cf-footer-line { | |
| margin: 0 0 0.35rem; | |
| color: var(--cf-body) ; | |
| line-height: 1.6; | |
| word-wrap: break-word; | |
| } | |
| #cf-footer .cf-footer-note { | |
| margin: 0; | |
| font-size: 0.85rem; | |
| color: var(--cf-muted) ; | |
| } | |
| #cf-footer a { | |
| color: var(--cf-teal) ; | |
| font-weight: 650; | |
| text-decoration: none; | |
| } | |
| #cf-footer a:hover { | |
| text-decoration: underline; | |
| } | |
| #cf-footer .cf-install-cmd, | |
| #cf-footer code { | |
| display: inline-block; | |
| max-width: 100%; | |
| overflow-x: auto; | |
| background: var(--cf-surface-2) ; | |
| color: var(--cf-ink) ; | |
| border: 1px solid var(--cf-border); | |
| border-radius: 6px; | |
| padding: 0.15rem 0.55rem; | |
| font-family: "IBM Plex Mono", ui-monospace, monospace; | |
| font-size: 0.85rem; | |
| white-space: nowrap; | |
| } | |
| footer { visibility: hidden; } | |