100 lines
1.6 KiB
CSS
100 lines
1.6 KiB
CSS
:root {
|
|
color-scheme: light dark;
|
|
--fg: #1a1a1a;
|
|
--bg: #fafafa;
|
|
--muted: #555;
|
|
--border: #ddd;
|
|
--accent: #2563eb;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--fg: #e8e8e8;
|
|
--bg: #111;
|
|
--muted: #aaa;
|
|
--border: #333;
|
|
--accent: #60a5fa;
|
|
}
|
|
}
|
|
|
|
* { box-sizing: border-box; }
|
|
|
|
body {
|
|
font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
max-width: 1200px;
|
|
margin: 2em auto;
|
|
padding: 0 1em;
|
|
color: var(--fg);
|
|
background: var(--bg);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
header h1 {
|
|
font-size: 1.4em;
|
|
margin-bottom: 0.2em;
|
|
}
|
|
|
|
.subtitle {
|
|
color: var(--muted);
|
|
margin-top: 0;
|
|
}
|
|
|
|
.nodes {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 1.5em;
|
|
margin: 2em 0;
|
|
}
|
|
|
|
@media (max-width: 720px) {
|
|
.nodes { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
.node {
|
|
padding: 1em;
|
|
border: 1px solid var(--border);
|
|
border-radius: 8px;
|
|
background: color-mix(in srgb, var(--bg) 92%, var(--fg) 8%);
|
|
}
|
|
|
|
.node h2 {
|
|
margin-top: 0;
|
|
font-size: 1.15em;
|
|
}
|
|
|
|
.metrics .loading { color: var(--muted); font-style: italic; }
|
|
|
|
.metrics .row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 0.25em 0;
|
|
border-bottom: 1px dashed var(--border);
|
|
}
|
|
|
|
.metrics .row:last-child { border-bottom: none; }
|
|
|
|
.metrics .label { color: var(--muted); }
|
|
|
|
.metrics .value { font-variant-numeric: tabular-nums; }
|
|
|
|
.chart {
|
|
display: block;
|
|
width: 100%;
|
|
height: 180px;
|
|
margin-top: 1em;
|
|
}
|
|
|
|
.meta {
|
|
color: var(--muted);
|
|
font-size: 0.9em;
|
|
margin: 2em 0;
|
|
}
|
|
|
|
.footer-nav a {
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
margin-right: 1em;
|
|
}
|
|
|
|
.footer-nav a:hover { text-decoration: underline; }
|