LLM-XRay / src /display /css_html_js.py
jmullings
Responsiveness update
2a92766
Raw
History Blame Contribute Delete
11.9 kB
custom_css = """
/* HF Space Native Theme Adaptation */
:root {
--xray-primary: #0284c7;
--xray-primary-hover: #0369a1;
--xray-accent: #38bdf8;
--xray-success: #10b981;
--xray-warning: #f59e0b;
--xray-danger: #ef4444;
}
/* Continuous Audit Loading Component - HF Native Variable Theme */
.audit-loading-container {
display: flex !important;
flex-direction: column !important;
gap: 12px !important;
background: var(--background-fill-secondary, #f8fafc) !important;
border: 1.5px solid var(--primary-500, #0284c7) !important;
border-radius: 12px !important;
padding: 16px 20px !important;
margin-top: 12px !important;
box-shadow: 0 4px 16px rgba(2, 132, 199, 0.15) !important;
animation: xrayPulse 2.5s infinite ease-in-out !important;
}
@keyframes xrayPulse {
0% { box-shadow: 0 0 0 0 rgba(2, 132, 199, 0.3); }
70% { box-shadow: 0 0 0 8px rgba(2, 132, 199, 0); }
100% { box-shadow: 0 0 0 0 rgba(2, 132, 199, 0); }
}
.loading-top-row {
display: flex !important;
align-items: center !important;
gap: 16px !important;
width: 100% !important;
}
.spinner-orbit {
position: relative !important;
width: 38px !important;
height: 38px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
flex-shrink: 0 !important;
}
.spinner-ring {
position: absolute !important;
width: 100% !important;
height: 100% !important;
border-radius: 50% !important;
border: 3px solid var(--border-color-primary, #e2e8f0) !important;
border-top-color: var(--primary-500, #0284c7) !important;
animation: xraySpin 0.85s linear infinite !important;
}
@keyframes xraySpin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.spinner-core {
font-size: 18px !important;
line-height: 1 !important;
}
.loading-text-stack {
display: flex !important;
flex-direction: column !important;
gap: 3px !important;
flex-grow: 1 !important;
overflow: hidden !important;
}
.loading-main-text {
font-size: 14px !important;
font-weight: 700 !important;
color: var(--primary-500, #0284c7) !important;
letter-spacing: 0.01em !important;
white-space: nowrap !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
}
.loading-sub-text {
font-size: 12.5px !important;
font-weight: 500 !important;
color: var(--body-text-color-subdued, #64748b) !important;
white-space: nowrap !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
}
.loading-pct-badge {
margin-left: auto !important;
font-family: monospace !important;
font-size: 15px !important;
font-weight: 800 !important;
color: var(--primary-500, #0284c7) !important;
background: rgba(2, 132, 199, 0.1) !important;
padding: 4px 10px !important;
border-radius: 8px !important;
border: 1px solid rgba(2, 132, 199, 0.25) !important;
flex-shrink: 0 !important;
}
.progress-bar-track {
width: 100% !important;
height: 10px !important;
background: var(--border-color-primary, #e2e8f0) !important;
border-radius: 99px !important;
overflow: hidden !important;
position: relative !important;
}
.progress-bar-fill {
height: 100% !important;
background: linear-gradient(90deg, #0284c7 0%, #38bdf8 50%, #10b981 100%) !important;
border-radius: 99px !important;
transition: width 0.35s ease-in-out !important;
position: relative !important;
}
.progress-bar-glow {
position: absolute !important;
top: 0 !important;
right: 0 !important;
bottom: 0 !important;
width: 20px !important;
background: #ffffff !important;
opacity: 0.6 !important;
filter: blur(3px) !important;
animation: glowShimmer 1.5s infinite !important;
}
@keyframes glowShimmer {
0% { opacity: 0.2; }
50% { opacity: 0.8; }
100% { opacity: 0.2; }
}
/* Section Header */
.section-eyebrow {
font-size: 11px !important;
font-weight: 700 !important;
letter-spacing: 0.08em !important;
color: var(--body-text-color-subdued, #64748b) !important;
text-transform: uppercase !important;
margin-bottom: 12px !important;
}
/* Top Cards Grid */
.top-cards-grid {
display: grid !important;
grid-template-columns: repeat(3, 1fr) !important;
gap: 16px !important;
}
@media (max-width: 1024px) {
.top-cards-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px) {
.top-cards-grid { grid-template-columns: 1fr !important; }
}
.top-eval-card {
background: var(--background-fill-secondary, #f8fafc) !important;
border: 1px solid var(--border-color-primary, #e2e8f0) !important;
border-radius: 12px !important;
padding: 16px !important;
display: flex !important;
flex-direction: column !important;
gap: 12px !important;
box-shadow: var(--shadow-drop-lg, 0 2px 8px rgba(0, 0, 0, 0.04)) !important;
transition: transform 0.2s ease, border-color 0.2s ease !important;
}
.top-eval-card:hover {
border-color: var(--primary-500, #0284c7) !important;
transform: translateY(-2px) !important;
}
.card-header-row {
display: flex !important;
align-items: center !important;
gap: 12px !important;
}
.provider-logo {
width: 36px !important;
height: 36px !important;
border-radius: 8px !important;
background: var(--background-fill-primary, #ffffff) !important;
border: 1.5px solid var(--primary-500, #0284c7) !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
font-weight: 800 !important;
font-size: 16px !important;
color: var(--primary-500, #0284c7) !important;
}
.card-titles {
display: flex !important;
flex-direction: column !important;
overflow: hidden !important;
}
.card-titles h3 {
font-size: 14px !important;
font-weight: 700 !important;
color: var(--body-text-color, #0f172a) !important;
margin: 0 !important;
white-space: nowrap !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
}
.card-titles span {
font-size: 11.5px !important;
color: var(--body-text-color-subdued, #64748b) !important;
font-weight: 500 !important;
}
.benchmark-sub {
font-size: 13px !important;
color: var(--body-text-color, #0f172a) !important;
font-weight: 600 !important;
}
/* Split Pills */
.metrics-stack {
display: flex !important;
flex-direction: column !important;
gap: 8px !important;
}
.metric-split-pill {
display: flex !important;
align-items: center !important;
justify-content: space-between !important;
border-radius: 8px !important;
padding: 4px 8px 4px 4px !important;
}
.metric-split-pill .badge {
padding: 3px 8px !important;
border-radius: 6px !important;
color: #ffffff !important;
font-weight: 700 !important;
font-size: 11px !important;
letter-spacing: 0.02em !important;
}
.metric-split-pill .sub-val {
font-size: 11px !important;
font-weight: 600 !important;
padding-right: 4px !important;
}
.metric-split-pill.green {
background: rgba(16, 185, 129, 0.1) !important;
border: 1px solid rgba(16, 185, 129, 0.25) !important;
}
.metric-split-pill.green .badge { background: #059669 !important; }
.metric-split-pill.green .sub-val { color: #059669 !important; }
.metric-split-pill.blue {
background: rgba(2, 132, 199, 0.1) !important;
border: 1px solid rgba(2, 132, 199, 0.25) !important;
}
.metric-split-pill.blue .badge { background: #0284c7 !important; }
.metric-split-pill.blue .sub-val { color: #0284c7 !important; }
.card-footer {
display: flex !important;
justify-content: space-between !important;
font-family: monospace !important;
font-size: 10px !important;
color: var(--body-text-color-subdued, #64748b) !important;
border-top: 1px solid var(--border-color-primary, #e2e8f0) !important;
padding-top: 8px !important;
margin-top: auto !important;
}
/* Dynamic Results / Audit Detail Panel */
.audit-result-panel {
background: var(--background-fill-secondary, #f8fafc) !important;
border: 1.5px solid var(--primary-500, #0284c7) !important;
border-radius: 12px !important;
padding: 18px 22px !important;
display: flex !important;
flex-direction: column !important;
gap: 14px !important;
box-shadow: var(--shadow-drop-lg, 0 4px 16px rgba(0, 0, 0, 0.05)) !important;
}
.result-panel-empty {
background: var(--background-fill-secondary, #f8fafc) !important;
border: 1.5px dashed var(--border-color-primary, #cbd5e1) !important;
border-radius: 12px !important;
padding: 36px 20px !important;
text-align: center !important;
color: var(--body-text-color-subdued, #64748b) !important;
}
.result-header-row {
display: flex !important;
justify-content: space-between !important;
align-items: flex-start !important;
gap: 16px !important;
border-bottom: 1px solid var(--border-color-primary, #e2e8f0) !important;
padding-bottom: 12px !important;
}
.panel-tag {
font-family: monospace !important;
font-size: 10px !important;
font-weight: 700 !important;
color: var(--primary-500, #0284c7) !important;
letter-spacing: 0.08em !important;
background: rgba(2, 132, 199, 0.1) !important;
padding: 2px 8px !important;
border-radius: 4px !important;
}
.result-model-title {
font-size: 17px !important;
font-weight: 800 !important;
color: var(--body-text-color, #0f172a) !important;
margin: 6px 0 2px 0 !important;
}
.result-meta-sub {
font-size: 12px !important;
color: var(--body-text-color-subdued, #64748b) !important;
}
.score-badge-box {
text-align: right !important;
display: flex !important;
flex-direction: column !important;
align-items: flex-end !important;
gap: 2px !important;
}
.score-label {
font-family: monospace !important;
font-size: 9.5px !important;
font-weight: 700 !important;
color: var(--body-text-color-subdued, #64748b) !important;
}
.score-number {
font-size: 28px !important;
font-weight: 800 !important;
color: var(--body-text-color, #0f172a) !important;
line-height: 1 !important;
}
.risk-badge {
display: inline-block !important;
padding: 3px 10px !important;
border-radius: 99px !important;
font-family: monospace !important;
font-size: 10px !important;
font-weight: 700 !important;
text-transform: uppercase !important;
}
.risk-low { background: #ecfdf5 !important; color: #059669 !important; border: 1px solid #a7f3d0 !important; }
.risk-moderate { background: #fffbeb !important; color: #d97706 !important; border: 1px solid #fde68a !important; }
.risk-high { background: #fff1f2 !important; color: #e11d48 !important; border: 1px solid #fecdd3 !important; }
/* 3-Layer Grid */
.layer-grid {
display: grid !important;
grid-template-columns: repeat(3, 1fr) !important;
gap: 12px !important;
}
@media (max-width: 860px) {
.layer-grid { grid-template-columns: 1fr !important; }
}
.layer-card {
background: var(--background-fill-primary, #ffffff) !important;
border: 1px solid var(--border-color-primary, #e2e8f0) !important;
border-radius: 8px !important;
padding: 12px !important;
display: flex !important;
flex-direction: column !important;
gap: 6px !important;
}
.layer-title {
font-size: 11px !important;
font-weight: 700 !important;
color: var(--body-text-color-subdued, #64748b) !important;
margin-bottom: 2px !important;
text-transform: uppercase !important;
font-family: monospace !important;
}
.stat-row {
display: flex !important;
justify-content: space-between !important;
font-size: 12px !important;
color: var(--body-text-color, #334155) !important;
}
.stat-row b {
color: var(--body-text-color, #0f172a) !important;
font-family: monospace !important;
}
.result-footer {
display: flex !important;
justify-content: space-between !important;
font-family: monospace !important;
font-size: 10.5px !important;
color: var(--body-text-color-subdued, #64748b) !important;
border-top: 1px solid var(--border-color-primary, #e2e8f0) !important;
padding-top: 10px !important;
}
"""