Files
stack/assets/css/inject.css
kert 5aa043daea chore: drop deprecated Woodpecker references
Woodpecker CI is gone from the runtime; this purges the stale
mentions in env/dev scripts, dashboards, homepages, CSS comments,
and READMEs. Renames the SSO admin env var WOODPECKER_ADMIN to
GITEA_ADMIN to match where the admin actually lives.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 16:56:34 -04:00

1075 lines
27 KiB
CSS

/* HTI-5 — Federal Register editorial design system
Universal injectable CSS.
Injected via Traefik rewrite-body plugin into:
Grafana, Traefik Dashboard, RustFS/MinIO, Jaeger, Prometheus, Trino
Palette matches: Gitea, Marimo, nginx dashboard themes */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,400&family=JetBrains+Mono:wght@400;500;600&display=swap');
/* ============================================
HTI-5 COLOR PALETTE
============================================ */
:root {
--background: #F7F5F0;
--foreground: #1A1A18;
--card: #FAFAF7;
--card-foreground: #1A1A18;
--primary: #1C2B3A;
--primary-foreground: #F7F5F0;
--secondary: #EDEBE6;
--secondary-foreground:#2D2D2B;
--muted: #EDEBE6;
--muted-foreground: #6B6B68;
--accent: #EDEBE6;
--accent-foreground: #1A1A18;
--destructive: #C0392B;
--destructive-foreground: #F7F5F0;
--border: #D4D0C8;
--input: #D4D0C8;
--ring: #1C2B3A;
--sidebar: #1C2B3A;
--sidebar-foreground: #B8C5D0;
--sidebar-accent: #253748;
--sidebar-accent-foreground: #EEE9E0;
--sidebar-border: #253748;
--chart-1: #6B7FD7;
--chart-2: #4A5CB8;
--chart-3: #2E3D8F;
--chart-4: #2E8B6E;
--chart-5: #C8702A;
--font-display: "Playfair Display", Georgia, serif;
--font-body: "Source Serif 4", Georgia, serif;
--font-mono: "JetBrains Mono", "Fira Code", monospace;
}
/* ============================================
BASE STYLES
============================================ */
body, html {
font-family: var(--font-body) !important;
background: var(--background) !important;
color: var(--foreground) !important;
}
/* ============================================
HEADINGS — Playfair Display editorial
============================================ */
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-display) !important;
font-weight: 600 !important;
line-height: 1.3 !important;
color: var(--foreground) !important;
}
h1 { font-size: 18px !important; }
h2 { font-size: 15px !important; color: var(--primary) !important; }
h3 { font-size: 13px !important; }
h4, h5, h6 { font-size: 12px !important; }
/* ============================================
NAVIGATION / HEADER BARS
============================================ */
nav,
header,
[class*="navbar"],
[class*="header"],
[class*="toolbar"],
[class*="topbar"],
[class*="top-bar"],
[class*="app-bar"] {
background: var(--sidebar) !important;
border-bottom: 3px solid var(--foreground) !important;
color: var(--sidebar-foreground) !important;
}
/* Nav links and items — serif body, not mono */
nav a,
nav li,
[class*="navbar"] a,
[class*="navbar"] li,
[class*="nav-item"],
[class*="NavItem"],
[class*="menu-item"],
[class*="MenuItem"] {
font-family: var(--font-body) !important;
}
/* ============================================
SIDEBAR / NAVIGATION MENUS
============================================ */
aside,
[class*="sidebar"],
[class*="sidenav"],
[class*="side-nav"],
[class*="drawer"],
[class*="menu-panel"] {
background: var(--sidebar) !important;
border-right: 3px solid var(--foreground) !important;
color: var(--sidebar-foreground) !important;
}
/* Sidebar text — serif body */
aside a,
aside li,
[class*="sidebar"] a,
[class*="sidebar"] li,
[class*="sidenav"] a,
[class*="sidenav"] li {
font-family: var(--font-body) !important;
}
/* ============================================
TABLES
Body cells use serif body; headers are metadata labels (mono)
============================================ */
table {
border-collapse: collapse !important;
font-family: var(--font-body) !important;
}
th {
background: var(--primary) !important;
color: var(--primary-foreground) !important;
font-family: var(--font-mono) !important;
font-size: 10px !important;
padding: 10px 12px !important;
text-transform: uppercase !important;
letter-spacing: 0.1em !important;
border: 1px solid var(--sidebar-accent) !important;
}
td {
background: var(--card) !important;
color: var(--foreground) !important;
font-family: var(--font-body) !important;
padding: 8px 12px !important;
border: 1px solid var(--border) !important;
font-size: 13px !important;
}
tr:nth-child(even) td {
background: var(--secondary) !important;
}
tr:hover td {
background: color-mix(in srgb, var(--primary) 8%, var(--background)) !important;
}
/* ============================================
BUTTONS — serif body for labels
============================================ */
button,
[role="button"],
.btn,
[class*="button"] {
font-family: var(--font-body) !important;
font-weight: 500 !important;
background: var(--secondary) !important;
color: var(--foreground) !important;
border: 1px solid var(--border) !important;
border-radius: var(--radius, 0.2rem) !important;
transition: all 0.15s ease !important;
}
button:hover,
[role="button"]:hover,
.btn:hover,
[class*="button"]:hover {
background: var(--primary) !important;
color: var(--primary-foreground) !important;
border-color: var(--primary) !important;
}
button:active,
[role="button"]:active {
transform: translate(1px, 1px) !important;
box-shadow: none !important;
}
/* Primary action buttons */
button[type="submit"],
[class*="primary"],
[class*="submit"] {
background: var(--primary) !important;
color: var(--primary-foreground) !important;
border: 1px solid var(--primary) !important;
}
button[type="submit"]:hover,
[class*="primary"]:hover {
background: var(--sidebar-accent) !important;
}
/* ============================================
INPUTS AND FORMS
Search/query inputs stay mono (user is typing expressions);
regular text inputs get serif body.
============================================ */
input,
textarea,
select,
[class*="input"],
[contenteditable="true"] {
font-family: var(--font-body) !important;
background: var(--card) !important;
color: var(--foreground) !important;
border: 1px solid var(--border) !important;
border-radius: var(--radius, 0.2rem) !important;
}
/* Query/expression inputs — mono (PromQL, SQL, search expressions) */
[class*="query-input"],
[class*="QueryInput"],
[class*="expression-input"],
[class*="ExpressionInput"],
[class*="search-input"][class*="query"],
textarea[class*="query"],
textarea[class*="Query"],
input[placeholder*="PromQL" i],
input[placeholder*="query" i],
input[placeholder*="Query" i] {
font-family: var(--font-mono) !important;
}
input:focus,
textarea:focus,
select:focus {
border-color: var(--primary) !important;
outline: none !important;
box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 25%, transparent) !important;
}
/* ============================================
CODE BLOCKS — always mono
============================================ */
pre, code {
font-family: var(--font-mono) !important;
}
code {
background: var(--secondary) !important;
color: var(--primary) !important;
padding: 2px 6px !important;
border-radius: 3px !important;
}
pre {
background: var(--secondary) !important;
border: 1px solid var(--border) !important;
border-radius: 4px !important;
padding: 12px !important;
}
pre code {
background: transparent !important;
padding: 0 !important;
}
/* ============================================
LINKS
============================================ */
a {
color: var(--primary) !important;
text-decoration: none !important;
transition: color 0.15s ease !important;
}
a:hover {
color: var(--foreground) !important;
text-decoration: underline !important;
}
a:visited {
color: var(--muted-foreground) !important;
}
/* ============================================
CARDS / PANELS / CONTAINERS
============================================ */
[class*="card"],
[class*="panel"],
[class*="widget"],
[class*="Paper"],
[class*="container"]:not(body):not(html) {
background: var(--card) !important;
border: 1px solid var(--border) !important;
color: var(--foreground) !important;
}
/* ============================================
DROPDOWNS / MENUS / POPOVERS
============================================ */
[role="menu"],
[role="listbox"],
[class*="dropdown"],
[class*="popover"],
[class*="tooltip"],
[class*="Popover"],
[class*="Menu-list"],
[class*="MenuList"] {
background: var(--card) !important;
border: 1px solid var(--border) !important;
color: var(--foreground) !important;
font-family: var(--font-body) !important;
}
[role="menuitem"]:hover,
[role="option"]:hover,
[class*="MenuItem"]:hover {
background: var(--secondary) !important;
color: var(--foreground) !important;
}
/* ============================================
BADGES / PILLS / CHIPS / TAGS
Metadata labels — mono small caps is correct here
============================================ */
[class*="badge"],
[class*="chip"],
[class*="tag"],
[class*="label"],
[class*="pill"] {
font-family: var(--font-mono) !important;
font-size: 11px !important;
background: var(--secondary) !important;
color: var(--foreground) !important;
border: 1px solid var(--border) !important;
}
/* Status indicators */
[class*="success"],
[class*="healthy"],
[class*="running"],
[class*="active"],
[class*="ok"] {
color: var(--chart-4) !important;
}
[class*="error"],
[class*="danger"],
[class*="failed"],
[class*="critical"] {
color: var(--destructive) !important;
}
[class*="warning"],
[class*="pending"] {
color: var(--chart-5) !important;
}
/* ============================================
SCROLLBARS
============================================ */
::-webkit-scrollbar {
width: 12px;
height: 12px;
}
::-webkit-scrollbar-track {
background: var(--secondary);
}
::-webkit-scrollbar-thumb {
background: var(--border);
border-radius: 6px;
border: 2px solid var(--secondary);
}
::-webkit-scrollbar-thumb:hover {
background: var(--muted-foreground);
}
/* ============================================
TEXT SELECTION
============================================ */
::selection {
background: var(--primary) !important;
color: var(--primary-foreground) !important;
}
/* ============================================
FOCUS STYLES
============================================ */
:focus-visible {
outline: 2px solid var(--primary) !important;
outline-offset: 2px !important;
}
/* ============================================
HIDE SERVICE LOGOS (universal)
============================================ */
[class*="logo"],
[class*="Logo"],
[class*="brand-logo"],
img[src*="logo"],
img[alt*="logo" i],
img[alt*="Logo" i] {
display: none !important;
}
/* ================================================================
GRAFANA-SPECIFIC
================================================================ */
/* Hide Grafana logo */
.grafana-app .preloader__logo,
.grafana-app [class*="Logo"],
.grafana-app img[src*="logo"],
.grafana-app [class*="branding"] img,
.grafana-app [class*="Branding"] img,
.grafana-app [class*="sidemenu"] img[class*="logo"],
.grafana-app [aria-label="Home"] img {
display: none !important;
}
/* Main app background */
.grafana-app,
.main-view,
.scroll-canvas {
background: transparent !important;
}
/* Top navbar */
.grafana-app .navbar,
.grafana-app nav,
.grafana-app [class*="NavBar"],
.grafana-app [class*="Topbar"],
.grafana-app [aria-label="Main menu"] {
background: var(--sidebar) !important;
border-bottom: 3px solid var(--foreground) !important;
}
/* Sidenav */
.grafana-app [class*="sidemenu"],
.grafana-app [class*="NavBar"][class*="wrapper"] {
background: var(--sidebar) !important;
border-right: 1px solid var(--sidebar-border) !important;
}
/* Dashboard container */
.grafana-app .dashboard-container,
.grafana-app [class*="DashboardPage"] {
background: transparent !important;
}
/* Panels */
.grafana-app .panel-container,
.grafana-app [class*="panel-content"],
.grafana-app [class*="PanelChrome"] {
background: var(--card) !important;
border: 1px solid var(--border) !important;
border-radius: 0 !important;
}
/* Panel headers — Playfair display for panel titles */
.grafana-app .panel-title,
.grafana-app [class*="panel-header"],
.grafana-app [class*="PanelHeader"] {
background: var(--secondary) !important;
font-family: var(--font-display) !important;
font-size: 13px !important;
color: var(--foreground) !important;
}
/* Explore page */
.grafana-app [class*="explore"],
.grafana-app [class*="Explore"] {
background: transparent !important;
}
/* Grafana query editor — mono for PromQL/LogQL expressions */
.grafana-app [class*="query-editor"],
.grafana-app [class*="QueryEditor"],
.grafana-app [class*="prom-query"],
.grafana-app [class*="PromQueryField"],
.grafana-app [class*="loki-query"],
.grafana-app textarea {
font-family: var(--font-mono) !important;
background: var(--secondary) !important;
border: 1px solid var(--border) !important;
}
/* Alert list */
.grafana-app [class*="AlertList"],
.grafana-app [class*="alert-rule"] {
background: var(--card) !important;
border: 1px solid var(--border) !important;
}
/* Grafana page toolbar */
.grafana-app [class*="page-toolbar"],
.grafana-app [class*="PageToolbar"] {
background: var(--secondary) !important;
}
/* ================================================================
JAEGER-SPECIFIC
================================================================ */
/* Hide Jaeger logo */
[class*="TracePageHeader--titleRow"] img,
[class*="TopNav"] img,
[class*="TopNav"] svg[class*="logo"],
[class*="jaeger-logo"],
header img[alt*="Jaeger" i] {
display: none !important;
}
/* Header bar */
.jaeger-ui .TopNav,
.jaeger-ui [class*="TopNav"],
[class*="jaeger"] [class*="TopNav"],
[data-testid="TopNav"] {
background: var(--sidebar) !important;
border-bottom: 3px solid var(--foreground) !important;
}
/* Trace page */
.TracePage,
[class*="TracePage"] {
background: transparent !important;
}
/* Timeline viewer */
.TraceTimelineViewer,
[class*="TraceTimelineViewer"] {
background: var(--card) !important;
border: 1px solid var(--border) !important;
}
/* Span bars */
[class*="SpanBar"] {
border-radius: 0 !important;
}
/* Search form */
.SearchForm,
[class*="SearchForm"],
[class*="search-form"] {
background: var(--secondary) !important;
border: 1px solid var(--border) !important;
padding: 12px !important;
}
/* Trace result list */
[class*="ResultItem"],
[class*="result-item"] {
background: var(--card) !important;
border: 1px solid var(--border) !important;
margin-bottom: 4px !important;
}
[class*="ResultItem"]:hover,
[class*="result-item"]:hover {
background: var(--secondary) !important;
}
/* Span detail — trace/span IDs, timestamps, tag values → mono */
[class*="SpanDetail"],
[class*="AccordianKeyValues"] {
background: var(--secondary) !important;
font-family: var(--font-mono) !important;
}
/* Trace IDs, span IDs — mono metadata */
[class*="traceId"],
[class*="spanId"],
[class*="trace-id"],
[class*="span-id"],
[class*="TraceId"],
[class*="SpanId"] {
font-family: var(--font-mono) !important;
}
/* Jaeger-specific selects */
.jaeger-ui select,
[class*="jaeger"] select {
background: var(--card) !important;
color: var(--foreground) !important;
border: 1px solid var(--border) !important;
}
/* ================================================================
PROMETHEUS-SPECIFIC
================================================================ */
/* Hide Prometheus logo */
nav.navbar img,
nav.navbar svg,
.navbar-brand img,
.navbar-brand svg {
display: none !important;
}
/* Main navbar */
.prometheus-app nav.navbar,
nav.navbar {
background: var(--sidebar) !important;
border-bottom: 3px solid var(--foreground) !important;
}
/* Navbar brand — Playfair for the service title */
nav.navbar .navbar-brand {
font-family: var(--font-display) !important;
font-size: 13px !important;
color: var(--sidebar-foreground) !important;
}
/* Expression input — mono for PromQL */
.prometheus-app .expression-input,
[class*="expression-input"],
.cm-expression-input {
background: var(--card) !important;
border: 1px solid var(--border) !important;
color: var(--foreground) !important;
font-family: var(--font-mono) !important;
}
/* Graph container */
.graph-container,
[class*="graph-container"],
.panel {
background: var(--card) !important;
border: 1px solid var(--border) !important;
border-radius: 0 !important;
}
/* Graph tab controls */
.graph-controls,
[class*="graph-controls"],
.nav-tabs {
background: var(--secondary) !important;
border-bottom: 1px solid var(--border) !important;
}
.nav-tabs .nav-link,
.nav-tabs a {
color: var(--muted-foreground) !important;
font-family: var(--font-body) !important;
}
.nav-tabs .nav-link.active,
.nav-tabs .active a {
color: var(--foreground) !important;
border-bottom: 3px solid var(--primary) !important;
background: transparent !important;
}
/* Alert/Rule manager */
.rules-head,
[class*="rules"] th {
background: var(--primary) !important;
}
/* Prometheus targets page — section headers in Playfair */
.target-head,
[class*="scrape-pool"] h2 {
font-family: var(--font-display) !important;
font-size: 15px !important;
}
/* Status badges */
.badge-success,
.label-success {
background: var(--chart-4) !important;
color: #fff !important;
}
.badge-danger,
.label-danger {
background: var(--destructive) !important;
color: #fff !important;
}
.badge-warning,
.label-warning {
background: var(--chart-5) !important;
color: #fff !important;
}
/* ================================================================
TRAEFIK DASHBOARD-SPECIFIC
================================================================ */
/* Hide Traefik logo */
#app img[src*="logo"],
#app img[alt*="Traefik" i],
#app [class*="logo"] img,
#app [class*="logo"] svg,
#app [class*="brand"] img {
display: none !important;
}
/* Vue app root */
#app {
background: transparent !important;
}
/* Traefik top nav */
#app nav,
#app [class*="nav-bar"],
#app .navbar {
background: var(--sidebar) !important;
border-bottom: 3px solid var(--foreground) !important;
}
/* Sidebar */
#app [class*="sidebar"],
#app [class*="side-menu"],
#app aside {
background: var(--sidebar) !important;
border-right: 1px solid var(--sidebar-border) !important;
}
/* Sidebar menu items — serif body */
#app [class*="sidebar"] a,
#app [class*="side-menu"] a {
color: var(--sidebar-foreground) !important;
font-family: var(--font-body) !important;
border-left: 3px solid transparent !important;
}
#app [class*="sidebar"] a:hover,
#app [class*="side-menu"] a:hover,
#app [class*="sidebar"] a.active,
#app [class*="side-menu"] a.active {
color: var(--sidebar-accent-foreground) !important;
background: var(--sidebar-accent) !important;
border-left-color: var(--sidebar-primary, #5B8FA8) !important;
}
/* Main content area */
#app main,
#app [class*="main-content"],
#app [class*="page-body"] {
background: transparent !important;
}
/* Status indicators */
#app [class*="status"][class*="positive"],
#app [class*="status"][class*="success"],
#app [class*="pill"][class*="green"],
#app [class*="positive"] {
background: var(--chart-4) !important;
color: #fff !important;
}
#app [class*="status"][class*="negative"],
#app [class*="status"][class*="error"],
#app [class*="pill"][class*="red"],
#app [class*="negative"] {
background: var(--destructive) !important;
color: #fff !important;
}
#app [class*="status"][class*="warning"],
#app [class*="pill"][class*="orange"] {
background: var(--chart-5) !important;
color: #fff !important;
}
/* Traefik table rows */
#app table tr:hover td {
background: var(--secondary) !important;
}
/* Service detail panels */
#app [class*="detail"],
#app [class*="panel-block"] {
background: var(--card) !important;
border: 1px solid var(--border) !important;
}
/* Route/service names — mono for identifiers */
#app [class*="route-name"],
#app [class*="service-name"],
#app [class*="router-name"],
#app [class*="middleware-name"] {
font-family: var(--font-mono) !important;
}
/* ================================================================
RUSTFS / MINIO CONSOLE-SPECIFIC (Material UI)
================================================================ */
/* Hide MinIO/RustFS logo */
#root img[src*="logo"],
#root img[alt*="MinIO" i],
#root img[alt*="RustFS" i],
#root [class*="logo"] img,
#root [class*="logo"] svg,
#root [class*="Logo"] img,
#root [class*="Logo"] svg {
display: none !important;
}
/* MUI root */
#root {
background: transparent !important;
}
/* App bar */
#root .MuiAppBar-root,
#root [class*="MuiAppBar"] {
background: var(--sidebar) !important;
border-bottom: 3px solid var(--foreground) !important;
box-shadow: none !important;
}
/* MUI Drawer / Sidebar */
#root .MuiDrawer-root,
#root .MuiDrawer-paper,
#root [class*="MuiDrawer"] {
background: var(--sidebar) !important;
border-right: 1px solid var(--sidebar-border) !important;
}
/* Drawer list items — serif body for nav labels */
#root .MuiListItem-root,
#root .MuiListItemButton-root,
#root [class*="MuiListItem"] {
color: var(--sidebar-foreground) !important;
font-family: var(--font-body) !important;
}
#root .MuiListItem-root:hover,
#root .MuiListItemButton-root:hover,
#root [class*="MuiListItem"]:hover {
background: var(--sidebar-accent) !important;
color: var(--sidebar-accent-foreground) !important;
}
#root .Mui-selected,
#root [class*="Mui-selected"] {
background: var(--sidebar-accent) !important;
color: var(--sidebar-accent-foreground) !important;
}
/* MUI Paper */
#root .MuiPaper-root,
#root [class*="MuiPaper"] {
background: var(--card) !important;
color: var(--foreground) !important;
border: 1px solid var(--border) !important;
}
/* MUI Buttons — serif body for button labels */
#root .MuiButton-root,
#root [class*="MuiButton"] {
font-family: var(--font-body) !important;
background: var(--secondary) !important;
color: var(--foreground) !important;
border: 1px solid var(--border) !important;
border-radius: var(--radius, 0.2rem) !important;
text-transform: none !important;
box-shadow: none !important;
}
#root .MuiButton-root:hover,
#root [class*="MuiButton"]:hover {
background: var(--primary) !important;
color: var(--primary-foreground) !important;
border-color: var(--primary) !important;
}
#root .MuiButton-containedPrimary,
#root [class*="MuiButton-containedPrimary"] {
background: var(--primary) !important;
color: var(--primary-foreground) !important;
border: 1px solid var(--primary) !important;
}
#root .MuiButton-containedPrimary:hover {
background: var(--sidebar-accent) !important;
}
/* MUI Table — body cells serif, headers mono */
#root .MuiTableCell-root,
#root [class*="MuiTableCell"] {
border-color: var(--border) !important;
color: var(--foreground) !important;
font-family: var(--font-body) !important;
}
#root .MuiTableCell-head,
#root [class*="MuiTableCell-head"] {
background: var(--primary) !important;
color: var(--primary-foreground) !important;
font-family: var(--font-mono) !important;
font-size: 10px !important;
text-transform: uppercase !important;
letter-spacing: 0.1em !important;
}
/* Object/bucket names — mono for identifiers */
#root [class*="bucket-name"],
#root [class*="object-name"],
#root [class*="file-name"],
#root [class*="BucketName"],
#root [class*="ObjectName"] {
font-family: var(--font-mono) !important;
}
#root .MuiTableRow-root:hover,
#root [class*="MuiTableRow"]:hover {
background: var(--secondary) !important;
}
/* MUI Inputs */
#root .MuiInputBase-root,
#root .MuiOutlinedInput-root,
#root [class*="MuiInputBase"],
#root [class*="MuiOutlinedInput"] {
background: var(--card) !important;
color: var(--foreground) !important;
font-family: var(--font-body) !important;
}
#root .MuiOutlinedInput-notchedOutline,
#root [class*="notchedOutline"] {
border-color: var(--border) !important;
}
#root .MuiInputLabel-root,
#root [class*="MuiInputLabel"] {
color: var(--muted-foreground) !important;
font-family: var(--font-body) !important;
}
/* MUI Dialogs */
#root .MuiDialog-paper,
#root [class*="MuiDialog-paper"] {
background: var(--card) !important;
border: 1px solid var(--border) !important;
}
/* MUI Tabs — serif for tab labels */
#root .MuiTab-root,
#root [class*="MuiTab"] {
color: var(--muted-foreground) !important;
font-family: var(--font-body) !important;
text-transform: none !important;
}
#root .MuiTab-root.Mui-selected,
#root [class*="MuiTab"][class*="Mui-selected"] {
color: var(--foreground) !important;
}
#root .MuiTabs-indicator,
#root [class*="MuiTabs-indicator"] {
background: var(--primary) !important;
}
/* MUI Breadcrumbs */
#root .MuiBreadcrumbs-root,
#root [class*="MuiBreadcrumbs"] {
color: var(--muted-foreground) !important;
font-family: var(--font-body) !important;
}
/* MUI Chips — mono for metadata labels */
#root .MuiChip-root,
#root [class*="MuiChip"] {
background: var(--secondary) !important;
color: var(--foreground) !important;
border: 1px solid var(--border) !important;
font-family: var(--font-mono) !important;
font-size: 11px !important;
}
/* MUI Icons */
#root .MuiSvgIcon-root,
#root [class*="MuiSvgIcon"],
#root svg {
color: var(--muted-foreground) !important;
fill: currentColor !important;
}
/* ================================================================
TRINO-SPECIFIC
================================================================ */
/* Trino has a simple UI - mostly tables and headers */
body > h2,
body > h3 {
font-family: var(--font-display) !important;
color: var(--foreground) !important;
padding: 10px 0 !important;
border-bottom: 3px solid var(--foreground) !important;
margin-bottom: 15px !important;
}
/* Trino status page tables */
body > table {
width: 100% !important;
margin: 15px 0 !important;
}
/* Trino worker status */
[class*="query-list"],
[class*="query-detail"] {
background: var(--card) !important;
border: 1px solid var(--border) !important;
}
/* Trino query IDs — mono for identifiers */
[class*="query-id"],
[class*="queryId"],
[class*="worker-id"],
[class*="workerId"] {
font-family: var(--font-mono) !important;
}
/* Progress bars used by various services */
progress,
[role="progressbar"],
[class*="progress-bar"],
[class*="ProgressBar"] {
background: var(--secondary) !important;
border: 1px solid var(--border) !important;
border-radius: 0 !important;
}
progress::-webkit-progress-bar {
background: var(--secondary) !important;
}
progress::-webkit-progress-value {
background: var(--primary) !important;
}
/* ── WCAG 2.2 AA — Accessibility ──────────────────────────── */
/* Focus indicators (2.4.7, 2.4.11) */
:focus-visible {
outline: 2px solid var(--primary) !important;
outline-offset: 2px !important;
}
/* Reduced motion (2.3.3) */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
/* Minimum target size (2.5.8) */
button, [role="button"], a, input, select, textarea {
min-height: 24px;
min-width: 24px;
}